Repository navigation
Description
Context and request
Contributors need precise reference text that separates required module and test rules from general advice. This delivery owns six files under docs/content/reference/: dependencies.md, framework-test-ids.md, guidance-scripts.md, module-development-foundations.md, module-types.md, and test-specification.md.
Evidence and expected result
module-types.md says modules of the same kind should "feel the same to use", calls integration modules the "PowerShell face" of a service, and says conversions "go through" a "pivot". test-specification.md says "The goal is to ensure consistency" and "This ensures our tests are structured, maintainable, and adhere to best practices." These phrases conceal the concrete model or describe an intent rather than the rule. Use direct technical descriptions without changing required behavior or the intended no-mocks policy.
Apply MSX Documentation Model, Natural Language, Writing Guide, and its applicable reference/standard templates. Use official STEMG guidance and Issue 9 where rule or dictionary details matter.
Acceptance criteria
- Every assigned file has a manual changed/no-change/blocked result tied to actual text.
- Prose uses clear, present-tense en-US descriptions and direct instructions, without metaphors, vague assurances, or obsolete status.
- Exact framework IDs, dependency/version constraints, paths, names, samples, test hierarchy, technical contracts, and normative force remain unchanged.
- Normative rules do not become claims of existing CI enforcement without evidence. Substantive contradictions remain explicit and do not trigger runtime changes.
- Existing headings and anchors remain stable where possible; necessary link repairs are complete.
- The focused draft PR carries before/after evidence, small commits, and relevant existing Markdown/link/site check results. No new tooling or dependency is introduced.
Technical decisions
Other reference files and all framework specification pages remain with existing release, repository, and trigger proposal owners. Test fixture documentation is functional input and is excluded. #551 owns no documentation. This change is prose-only and does not add or modify tests or claim a framework upgrade.
Pre-edit review, source criteria, checks, and exclusions: #556 (comment). The no-mocks prohibition conflicts with the reserved PowerShell module standard's unit-test mocking rule. This delivery preserves both passages' normative force and leaves that policy decision unresolved.
The first coherent commit is 8d148a49fa24915dc6bbb5b5acd92bd93e27c2f9 in draft PSModule/Process-PSModule#566. The non-closing policy exception is PSModule/Process-PSModule#563.
Final delivery evidence: #556 (comment). The pushed head is 5ee3e9393c6bd47f78def6b5841cf22ecacad86f. All six pages have a final manual review: five changed, and dependencies.md remains unchanged. Local checks pass; all 132 baseline HTML IDs remain and all 41 rendered local links resolve. Final-head GitHub checks report 22 passed and the expected Docs Publish skip. The requested final-head review is approved with no inline comments. The PR remains in draft; #563 remains an unresolved, non-closing policy exception.
Implementation plan
- Read all six files, relevant source rules, and repository evidence; record acceptance expectations before editing.
- Establish existing checks and identify any pre-existing failures.
- Replace confirmed module-type metaphors, preserve the conversion anchor, push the first coherent commit, and open the focused draft PR.
- Clarify
test-specification.mdwhile preserving the sample, hierarchy, recommendations, and requirements; push the focused commit. - Clarify confirmed prose in
framework-test-ids.md,guidance-scripts.md, andmodule-development-foundations.mdin a small commit. - Compare required rules, examples, identifiers, and links before and after the edit.
- Run the applicable existing checks and record all acceptance evidence and limitations in the issue and draft PR; leave the PR in draft.
Activity
MariusStorhaug commentedon Nov 4, 2026
Pre-edit review and acceptance evidence
The six assigned reference pages were read in full at
PSModule/Process-PSModule@64ffb1d87f86bd5d487891fdb140b78385a00531. The worktree was clean. The open-PR check inspected 10 PRs and found no overlap with the six assigned paths.docs/content/reference/dependencies.mdframework-test-ids.mdguidance-scripts.mdguidance/as the script destination instead of the ambiguous "this directory". Preserve the complete-file import instruction and every script name.module-development-foundations.mdmodule-types.mdtest-specification.mdSource-based criteria
9c720341c350ed77943b2c73d01c716f, which matches the official Zenodo record. Rules 1.1-1.3, 3.2, 3.6, 5.1-5.4, 6.1-6.5, and 9.1-9.4 were consulted in the local extraction, together with relevant dictionary material. The PDF and extraction stay local.Checks established before editing
npx --no-install markdownlint-cli2 --config .github\linters\.markdown-lint.yml docs\content\reference\dependencies.md docs\content\reference\framework-test-ids.md docs\content\reference\guidance-scripts.md docs\content\reference\module-development-foundations.md docs\content\reference\module-types.md docs\content\reference\test-specification.md: passed; six files, zero issues; markdownlint-cli2 0.24.0, markdownlint 0.42.0.docs\,zensical build --clean: passed; "No issues found". An initial attempt to redirect output with--site-dirfailed because this Zensical CLI does not support that option. The unmodified repository command passed. No tool was installed.module-types.mdandtest-specification.mdbefore editing.Test-DocumentationLink.ps1orTest-CrossRepositoryLink.ps1exists. The site build and manual link review are applicable; they do not prove external URL availability.Policy gap and scope exclusions
The baseline test specification says: "No Mocks: We do not use mocks in tests."
The reserved PowerShell module standard says: "Unit tests mock boundaries owned by the module, not third-party APIs or SDKs directly."
These policies conflict. This prose delivery preserves the no-mocks prohibition and does not change the reserved page, select a testing policy, or claim runtime enforcement.
All unassigned reference pages remain read-only, including
powershell-module-standard.md,repository-standard.md,versioning.md,workflow-inputs.md,pipeline-stages.md,settings.md, andscenario-matrix.md. All specification pages, guides, indexes, skills, source code, native help, tests, test-fixture Markdown, configuration, and site design remain excluded. No cross-owner link edit is expected; the conversion heading's legacy anchor is retained.This delivery follows the pinned Task and PR formats. The PR stays in draft. It does not merge, enable auto-merge or Agent merge, introduce tools or dependencies, or delegate work.
MariusStorhaug commentedon Nov 4, 2026
The first coherent prose commit is pushed in draft #566. Module-type metaphors are replaced, and the previous conversion anchor remains valid. Markdownlint, the site build, and the six-page HTML-ID comparison pass. The remaining assigned prose edits stay in the same draft. The mock-policy conflict is tracked as the non-closing exception #563.
MariusStorhaug commentedon Nov 4, 2026
Commit
b158a5312295ec0271c6d967aca24bd81b3d6772is pushed to the draft. The Pester hierarchy uses direct instructions, and vague coverage assurances are removed. A baseline comparison confirms that the complete Pester sample and hierarchy headings are unchanged. The no-mocks prohibition, real-input recommendation, and full-coverage requirement retain their force. Markdownlint and whitespace checks pass. The contradiction remains open in #563.MariusStorhaug commentedon Nov 4, 2026
Commit
5ee3e9393c6bd47f78def6b5841cf22ecacad86fis pushed to the draft. The last slice names test jobs as actors, states the module-import assertion as a no-throw check, identifiesguidance/as the script destination, and separates reference conventions from enforcement claims. All six pages have a final manual review. Five pages changed;dependencies.mdremains unchanged. All baseline-generated HTML IDs remain, and 41 rendered local links and fragments resolve. Source-code test rows, IDs, skip examples, dependency text, script table, REST mapping, command patterns, Pester sample, hierarchy, and link targets retain their checked baseline content. Local checks pass; the final-head GitHub checks and explicitly requested review are in progress. #563 remains a non-closing policy exception.MariusStorhaug commentedon Nov 4, 2026
Module reference prose delivery
The focused draft PSModule/Process-PSModule#566 is pushed at
5ee3e9393c6bd47f78def6b5841cf22ecacad86f. It delivers the prose scope of PSModule/Process-PSModule#556. The PR remains open and in draft. No merge, auto-merge, or Agent merge action was taken.The immutable comparison is
64ffb1d87f86bd5d487891fdb140b78385a00531to5ee3e9393c6bd47f78def6b5841cf22ecacad86f. The remote branch and PR head both match the delivered SHA. The branch has three small commits:8d148a49fa24915dc6bbb5b5acd92bd93e27c2f9b158a5312295ec0271c6d967aca24bd81b3d67725ee3e9393c6bd47f78def6b5841cf22ecacad86fOpen-PR ownership was rechecked immediately before each commit. Those checks inspected 11, 14, and 16 open PRs, respectively. No other PR owned an assigned path.
Complete reviewed scope
All six assigned pages were read in full before editing and after the final edits.
docs\content\reference\dependencies.md04e3e15b239a7e9390bed9d91e043d70ed2ce5bf.docs\content\reference\framework-test-ids.mddocs\content\reference\guidance-scripts.mdguidance/as the destination. The script table and environment caution remain.docs\content\reference\module-development-foundations.mddocs\content\reference\module-types.mddocs\content\reference\test-specification.mdThe exact changed-path set is the five rows marked "changed". There are no other repository changes.
Excluded scope
The complete machine-readable inventory is the session artifact
reference-path-scope.json. It lists all five reviewed/changed paths, the one reviewed/no-change path, and every one of the 330 excluded tracked paths. No excluded tracked path changed.The complete excluded reference-page list is:
docs\content\reference\pipeline-stages.mddocs\content\reference\powershell-module-standard.mddocs\content\reference\repository-standard.mddocs\content\reference\scenario-matrix.mddocs\content\reference\settings.mddocs\content\reference\versioning.mddocs\content\reference\workflow-inputs.mdAll specification pages remain excluded:
docs\content\specification\design.mddocs\content\specification\index.mddocs\content\specification\principles-and-practices.mddocs\content\specification\spec.mdAll other tracked paths are excluded. This includes guides, getting-started pages, indexes, glossary and module pages, plugin skills, source code, native help, tests, test-fixture Markdown, configuration, site design, README files, and guidance-script source. The functional fixture Markdown is not a writing target. #551 remains outside this delivery.
Acceptance evidence
The pre-edit evidence records actual text and acceptance expectations before any reference edit.
Get-Uritests under theUrimodule and uses separate contexts for direct and pipeline input."Should -Not -Throwassertion rather than claiming more enforcement.guidance/.The conversion heading is "Conversions use the neutral object model". An explicit HTML anchor preserves
#the-neutral-object-is-the-pivot. Both that anchor and#conversions-use-the-neutral-object-modelresolve in the generated site. No cross-owner link change is required.Authoritative writing sources
The MSX source revision is fixed at
1b0d4893c8fefabe604d04393068a8ff6f848082:The official STE description, FAQ, and ASD-STE100 Issue 9 were available. The review consulted rules 1.1-1.3, 3.2, 3.6, 5.1-5.4, 6.1-6.5, and 9.1-9.4 and relevant dictionary material. The applicable practices include approved technical terminology, active voice, imperative instructions, short sentences, one topic per paragraph, and consistent wording.
The supplied PDF's MD5 is
9c720341c350ed77943b2c73d01c716f, which matches the official Zenodo record. The PDF and extraction stay local and read-only. This delivery does not claim complete STE conformance or certification. Lint and sentence lengths are not substitutes for the full rules and dictionary.Validation commands and results
HTMLParserPublishjob is skipped for a PR, as specified by the existing workflow. No checks are pending or failing.5ee3e9393c6bd47f78def6b5841cf22ecacad86f; no inline comments.An initial site-build attempt with
--site-dirfailed because the installed CLI does not support that option. The unmodified repository command passed. No tool or dependency was installed or added. No repository-localTest-DocumentationLink.ps1orTest-CrossRepositoryLink.ps1exists. External URL availability is not asserted. Runtime Pester tests were not run because no executable source or sample changed.Policy exception and blockers
PSModule/Process-PSModule#563 owns the unresolved testing-policy contradiction:
powershell-module-standard.md#testssays: "Unit tests mock boundaries owned by the module, not third-party APIs or SDKs directly."The delivered test specification says: "No Mocks: Do not use mocks in tests." The prohibition is not weakened. The reserved page is unchanged. This PR does not select a testing policy, resolve the Bug, or claim runtime enforcement.
There is no blocker to this focused prose draft. The policy exception remains open. No cross-owner link change is required.
The scoped issue-convergence search covered the documentation-writing delivery leaves and open issues whose bodies name
module-typesortest-specification. #479 requires data-module audits, #483 requires a resilience contract, #338 requires DSC support, and #471 requires dependency-versioning guidance. This prose diff does not deliver those outcomes. Only #556 is a closing reference; #563 is a non-closing exception.