Skip to content

Commit 09fc45f

Browse files
📖 [Docs]: Specification requirement anchors render correctly (#449)
The Process-PSModule specification now uses markdownlint-compatible explicit anchors for every functional and non-functional requirement, so direct links to FR1-FR6 and NFR1-NFR5 remain reliable. ## Changed: Requirement anchors render reliably All 11 requirement headings now use the canonical `{#id}` syntax. Requirement identifiers, heading text, link targets, and documented behavior are unchanged. --- <details> <summary>Technical details</summary> - Normalized the 11 explicit anchors in `docs/content/Modules/Process-PSModule/specification/spec.md` from `{ #id }` to `{#id}`. - Backward compatibility: all existing anchor identifiers are preserved. - Standards and framework alignment: | Changed surface | Standards checked | Framework docs checked | Result | | --- | --- | --- | --- | | `docs/content/Modules/Process-PSModule/specification/spec.md` | Markdownlint MD051 anchor syntax | Process-PSModule documentation structure | Aligned | - Issue convergence sweep: this focused documentation-only diff fully carries forward the still-applicable Process documentation portion of MSXOrg/docs#144; no additional issues are satisfied. </details> <details> <summary>Relevant issues (or links)</summary> - MSXOrg/docs#144 </details> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent 68696b6 commit 09fc45f

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

docs/content/specification/spec.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,53 +25,53 @@ Applies to any PowerShell module in the PSModule ecosystem that produces a versi
2525

2626
### Functional Requirements
2727

28-
### FR1 — Build the module from source { #fr1 }
28+
### FR1 — Build the module from source {#fr1}
2929

3030
The pipeline MUST compile the PowerShell module source code into a module artifact, stamping it with the resolved semantic version and making it available for downstream testing and publication.
3131

32-
### FR2 — Run cross-platform tests { #fr2 }
32+
### FR2 — Run cross-platform tests {#fr2}
3333

3434
The pipeline MUST execute the module's test suites against multiple platforms — at minimum Windows, Linux, and macOS — and fail the build if any platform's tests fail. Tests MUST include source-code validation (style, standards), framework tests (module structure, common issues), and module-local tests (user-written Pester tests).
3535

36-
### FR3 — Enforce code quality and coverage gates { #fr3 }
36+
### FR3 — Enforce code quality and coverage gates {#fr3}
3737

3838
The pipeline MUST measure and enforce code coverage thresholds and static-analysis results. A build MUST NOT proceed to publication if quality or coverage targets are missed; the gate MUST prevent merge unless explicitly overridden by a label.
3939

40-
### FR4 — Generate and publish documentation { #fr4 }
40+
### FR4 — Generate and publish documentation {#fr4}
4141

4242
The pipeline MUST generate module documentation from the source (cmdlet help, README, schema) and publish it to a static documentation site. Documentation MUST be versioned and deployable alongside the module release.
4343

44-
### FR5 — Support label-driven versioning and publication { #fr5 }
44+
### FR5 — Support label-driven versioning and publication {#fr5}
4545

4646
The pipeline MUST read pull-request labels (`Major`, `Minor`, `Patch`, `Prerelease`, `NoRelease`) to decide the
4747
semantic-version bump when the merged pull request exactly matches a default-branch push. It MUST compute the next
4848
version automatically, never reading or writing a hand-edited version file. An important push to the release branch
4949
MUST trigger publication to the PowerShell Gallery and documentation site; a prerelease label MUST result in a
5050
prerelease version available for testing before stable release.
5151

52-
### FR6 — Produce immutable, linkable releases { #fr6 }
52+
### FR6 — Produce immutable, linkable releases {#fr6}
5353

5454
Each publication MUST produce a GitHub Release, a git tag, and a PowerShell Gallery package version — all linked and versioned together so they are discoverable and pinnable for consumers.
5555

5656
### Non-Functional Requirements
5757

58-
### NFR1 — Semantic versioning compliance { #nfr1 }
58+
### NFR1 — Semantic versioning compliance {#nfr1}
5959

6060
Versions MUST follow [SemVer 2.0.0](https://semver.org/) (`vMAJOR.MINOR.PATCH` or `vMAJOR.MINOR.PATCH-prerelease.N`). Breaking changes MUST increment `MAJOR`; new functionality MUST increment `MINOR`; bugfixes MUST increment `PATCH`. Prerelease versions MUST be obtainable but not promoted as the latest stable release.
6161

62-
### NFR2 — Serialized releases { #nfr2 }
62+
### NFR2 — Serialized releases {#nfr2}
6363

6464
Only one release process MUST run against a given version of the codebase at a time. Concurrent releases to the same ref MUST be prevented, so the tag, version counter, and published artifact remain consistent.
6565

66-
### NFR3 — Single production authority { #nfr3 }
66+
### NFR3 — Single production authority {#nfr3}
6767

6868
Exactly one branch (typically `main`) MUST be authorized to publish stable releases. All other release branches MUST publish only prerelease versions. This ensures consumers have one unambiguous latest stable version.
6969

70-
### NFR4 — Rapid feedback on failure { #nfr4 }
70+
### NFR4 — Rapid feedback on failure {#nfr4}
7171

7272
Pipeline failures MUST be visible in the pull request and block merge. Contributors MUST know within minutes whether their changes pass quality and test gates, not hours or days later.
7373

74-
### NFR5 — Reproducible and auditable { #nfr5 }
74+
### NFR5 — Reproducible and auditable {#nfr5}
7575

7676
The entire pipeline and its decisions MUST be stored in git, so the build is reproducible and auditable from the commit alone. No external configuration, API calls, or out-of-band decisions.
7777

0 commit comments

Comments
 (0)