Skip to content

Plugin guidance states migration checks and handoffs directly - #568

Open
Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
mainfrom
plugin-instruction-writing
Open

Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
mainfrom
plugin-instruction-writing

Conversation

@MariusStorhaug

@MariusStorhaug Marius Storhaug (MariusStorhaug) commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Plugin guidance states Pester migration checks, development handoffs, and stop conditions directly. The instructions retain the supported test behavior, Pester/runtime versions, commands, ownership boundaries, and source links. No consumer configuration or test change is required.

Changed: Plugin instructions state verifiable actions and conditions

The Pester migration skill replaces test-status idioms with explicit pass conditions and identifies Pester v6 as the actor that evaluates name templates. The orchestration and authoring skills separate draft, commit, validation, and report actions. Their existing handoff fields, ordering, ownership, and stop conditions remain intact.

The obsolete action-revision claim is removed, not preserved as an arbitrary example or replaced with another moving pin. The skill requires separate checks of the action revision and its Pester installation policy. This is a factual guidance correction; no action reference, dependency, Pester version, runtime constraint, or framework behavior changes.

Technical details

Delivery and scope. Full manual review covers all three assigned skills. Exactly these paths change:

Reviewed and changed path Standards checked Framework/source guidance checked Result
.github\plugin\psmodule\skills\psmodule-module-development-orchestration\SKILL.md Pinned MSX Natural Language, Writing Guide, Markdown, Documentation Model, and applicable guide/playbook templates; STE procedural rules Shared module-development orchestration guide and bootstrap exception Fixed in this PR
.github\plugin\psmodule\skills\psmodule-pester-migration\SKILL.md Same pinned writing baseline; STE vocabulary, active voice, conditions, and descriptive rules Official Pester v5-to-v6 migration; module-local workflow; test-action path selection; module test guide Fixed in this PR
.github\plugin\psmodule\skills\psmodule-skill-authoring\SKILL.md Same pinned writing baseline; STE imperative actions and conditions Shared plugin-skill authoring guide and plugin metadata conventions Fixed in this PR

The scoped comparison is 64ffb1d87f86bd5d487891fdb140b78385a00531 to 9c191e2669957ff5b3a9c4649222a07191b462ee: 3 files, 42 added lines, 42 removed lines. The draft opened immediately after the first coherent Pester commit, 780422b18ea87059bc870852e144215b5846a9d3. Small follow-ups are fe6a441517e94f09296a10e0c83df18b75697dfc (agent actions/conditions) and 9c191e2669957ff5b3a9c4649222a07191b462ee (review correction). All three commits are pushed. The worktree is clean.

Before/after acceptance evidence. The Task records the expected wording before each edit, source citations, full read-only inventory, no-change rationale, and check outcomes: PSModule/Process-PSModule#555.

Before After Meaning retained
Pester: "after compatibility is green" "after the required compatibility checks pass" Optional v6 adoption follows required compatibility work.
Pester: "A green workflow" "A workflow that passes" One workflow does not establish coverage of every test set.
Pester: template contents "are now expressions" Pester v6 evaluates contents as PowerShell expressions. Literal-text escapes and version-specific name-template behavior.
Pester: "The current Process-PSModule flow" Process-PSModule downloads and imports the built module before module-local tests. Prepared module state and separate framework path selection.
Pester: a "current" v5.1.0 action claim The obsolete revision example is absent; check the action revision and Pester installation policy separately. Independent action/module-version verification, with no copied moving pin.
Orchestration: draft, push, and co-author actions in one sentence Three direct sentences inside the same numbered step. Early draft, small commits, and the required trailer.
Orchestration: a long stop-condition sentence Separate conditional stop-and-report sentences. All six ambiguity conditions, ownerless validation failure, and unrelated integration changes.
Authoring: draft, commit, and report actions in one sentence Three direct sentences; unclear-scope condition precedes the stop instruction. All report fields, ownership boundaries, and the instruction not to guess.

Factual correction and protected-token exception. At the common source snapshot, the module-local workflow and test action pin action v5.1.1 at c5494aba3c07d7bfd81bdbbc9f301e8fa4a729fb and Pester [6.1.0,7.0.0). Early draft review rejected the first edit's arbitrary v5.1.0 example. The follow-up removes exactly that obsolete inline action-revision token. The regression check fails before the correction and passes after it. Every other inline syntax token and version-token count remains exact.

Reviewed no-change contracts. All skill names, descriptions/triggers, front-matter keys and values, headings/anchors, link labels and destinations, table rows, and 17 fenced examples are unchanged. The Pester 6.1.0 target, Windows PowerShell 5.1 / PowerShell 7.4+ support, one-major-version-at-a-time migration, required/optional distinction, prepared-module/public-interface contract, explicit fixture ownership, import-test exception, failure handling, acceptance run order, report fields, and source references remain unchanged. The generic version-specific migration procedure remains in the skill. The parent/child contract, default-branch policy, bootstrap exception, genuine-dependency rule, integration gates, handoffs, and stop conditions remain unchanged in meaning. No assigned file is a no-change outcome; the retained contracts are reviewed within each changed file.

Read-only and excluded paths. The plugin README and manifests (.github\plugin\README.md, .github\plugin\marketplace.json, .github\plugin\psmodule\plugin.json) are inspected but unchanged. The v8 and Zensical skills (.github\plugin\psmodule\skills\psmodule-v8-upgrade\SKILL.md, .github\plugin\psmodule\skills\psmodule-zensical-migration\SKILL.md) are excluded. The shared docs\content\guides\writing-plugin-skills.md and docs\content\guides\module-development-orchestration.md are read in full but owned by another writing delivery; no cross-file edit is needed here. All other source, tests, native help, guides, references, indexes, workflows, and configuration are read-only/excluded. No metadata redesign, shared-policy copy, skill refactor, migration execution, or new repository enforcement tool is included. The Task lists every supporting file read in full, the one workflow excerpt, and the four link-target-only files. The pre-existing mock-policy contradiction remains with #563; this PR does not select or weaken a policy.

Validation commands and results. $SkillFiles is the three exact paths in the scope table. These commands run successfully at the final pushed head:

npx --no-install markdownlint-cli2 --config .github\linters\.markdown-lint.yml @SkillFiles
npx --no-install --package=textlint@15.8.0 --package=textlint-rule-terminology --package=textlint-filter-rule-comments textlint --config .github\linters\.textlintrc @SkillFiles
git diff --check 64ffb1d87f86bd5d487891fdb140b78385a00531 HEAD

All three commands pass. Markdown lint checks 3 files with 0 issues (markdownlint-cli2 0.24.0 / markdownlint 0.42.0). Existing-config textlint 15.8.0 passes. Its first baseline run fails because the configured terminology package is missing; restoring the existing rule/comments filter in the external tool cache resolves that failure. No repository dependency or configuration changes occur.

Read-only Python/PyYAML/JSON inspection passes: all 3 skill headers parse, both manifests parse unchanged, all 8 relative-link occurrences resolve, the exact protected comparisons pass with the single documented action-revision removal, the repository checklist and Step 7 acceptance/report/reference section remain exact, and only the 3 owned paths differ. The obsolete-revision regression (assert 'v5.1.0' not in text) fails before the review correction and passes after it. Open-PR path checks before every commit find no competing changes in the owned paths.

All GitHub checks pass at 9c191e2669957ff5b3a9c4649222a07191b462ee: repository Linter, Analyze (actions), and CodeQL. The Linter run's reported headSha matches that exact commit. No Pester suite, module migration, or site build is run for these skill-prose-only edits.

Sources and limits. The writing baseline is MSXOrg/docs@1b0d4893c8fefabe604d04393068a8ff6f848082. All five required writing chapters, applicable templates, and Task/PR formats are read. The official STE description, FAQ, and Issue 9 are available. Relevant manual rules cover approved meanings/technical terms, en-US, active voice, short clear sentences, imperative instructions, conditions, and descriptive paragraphs. The local PDF MD5 matches 9c720341c350ed77943b2c73d01c716f; no PDF or extraction is republished. Manual review and lint do not certify full ASD-STE100 conformance. The repository has no dedicated skill front-matter or documentation-link checker; ad hoc parsing/target inspection is not a claim that such CI enforcement exists.

Plan progress and convergence. The complete implementation plan is done: source review, before-edit acceptance evidence, baseline checks, the early draft, both planned prose edits, the review correction, protected-contract comparison, the standards/framework pass, final validation, and delivery evidence. The narrow convergence sweep covers open writing-alignment leaves, plugin-related titles/bodies, and Pester titles. Relevant asks in #534, #559, #561, and #563 are not fully delivered by this diff: they require skill refactoring, separately owned guides/skills, or a mock-policy decision. No additional issue closes. Only the assigned delivery leaf has a closing reference.

This path-only change does not match .github\workflows\Release.yml publication paths, so no release decision block or release:* label is applied. The PR stays in draft. GitHub auto-merge is unset; Agent merge is disabled and its merge action is false. No merge is performed. No content, source-access, implementation, or validation blocker remains. The delivery issue stays open for review and merge.

Related references

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@MariusStorhaug
Marius Storhaug (MariusStorhaug) marked this pull request as ready for review November 4, 2026 14:43
Copilot AI balanced review requested due to automatic review settings November 4, 2026 14:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

No active review issues are recorded for the documentation-only PSModule skill clarifications.

No open issues 🎉

What changed in this PR

This documentation-only PR makes three PSModule plugin skills more explicit and actionable, addressing issue #555 without changing framework behavior, supported versions, or consumer configuration.

Changes:

  • Replaces Pester migration status idioms with explicit checks and removes the obsolete action-revision claim.
  • Separates development and authoring actions into direct instructions while preserving handoffs, ownership, and stop conditions.
  • Retains existing commands, examples, metadata, and source links.
File Description
.github/​plugin/​psmodule/​skills/​psmodule-skill-authoring/​SKILL.md Clarifies draft, commit, reporting, and unclear-scope instructions.
.github/​plugin/​psmodule/​skills/​psmodule-pester-migration/​SKILL.md Clarifies migration checks and requires separate action-revision and Pester-policy verification.
.github/​plugin/​psmodule/​skills/​psmodule-module-development-orchestration/​SKILL.md Separates child and parent actions and makes stop conditions explicit.

Review effort: Balanced

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[documentation-writing-alignment] Give plugin agents precise executable instructions

2 participants