Skip to content

Commit d08fcad

Browse files
📖 [Docs]: Module repository page becomes the Repository Standard aligned with MSX (#96)
The PSModule module-repository page is now the organization's **Repository Standard**. It states plainly that it applies to the PSModule organization and is the standard for PowerShell module repositories, and that it operates at the same altitude as the MSX Enterprise Repository Standard: MSX sets the enterprise-wide default, and this standard adds to and adjusts that default for PowerShell module repositories. This builds on #101, which already reshaped the required-file baseline to match how PSModule repositories actually work; this PR completes the rename to `Repository-Standard.md`, adds the explicit MSX-altitude framing, and refines a few file descriptions. ## Changed: The page is now the Repository Standard The page previously titled "PowerShell module repository defaults" is now "Repository Standard". Its scope and intro say it is the PSModule organization's standard for PowerShell module repositories, and a new layering statement links to the [MSX Enterprise Repository Standard](https://msxorg.github.io/docs/Ways-of-Working/Repository-Standard/) so readers know which rules are inherited from MSX and which this standard adds or overrides. The file was renamed from `Repository-Defaults.md` to `Repository-Standard.md`, and every navigation entry and cross-page link now points to the new page. ## Changed: Clearer file descriptions The descriptions for `.github/dependabot.yml` (both tables), `.github/pull_request_template.md`, `.gitattributes`, and `.gitignore` are reworded to explain what each file does for a PowerShell module repository, and the "linters and release automation read repository-local files" line is softened to apply only when the module uses those linters or generates releases. The required-file baseline itself — MSX-aligned, without `.github/copilot-instructions.md`, `.github/release.yml`, or the linter files — already landed via #101; `AGENTS.md`, `CLAUDE.md`, and `.github/PSModule.yml` remain required. --- <details> <summary>Technical details</summary> - Renamed `src/docs/Modules/Repository-Defaults.md` → `src/docs/Modules/Repository-Standard.md` with `git mv` (rename preserved, history intact). - Updated references in `src/zensical.toml` (nav label + path), `src/docs/Modules/index.md`, `src/docs/Modules/Module-Types.md`, and `src/docs/Modules/Process-PSModule/module-build-validation.md`. - Rewrote the H1, scope, and added the altitude/layering statement; reconciled the prior "initiative implementation" framing with the MSX-altitude framing. - Merged `origin/main` (bringing in #101). Two content conflicts in the layout and required-files tables were resolved by keeping #101's corrected `Process-PSModule.yml` caller-workflow row, `.github/release.yml`, and `.github/linters/` rows in the descriptive layout table, and keeping this PR's more detailed `dependabot` rewording in both tables. No conflict markers remain; the required-files baseline matches #101. - Delivered as three micro-commits plus one merge commit (no conventional-commit prefixes, Copilot App co-author trailer). | Changed surface | Standards checked | Framework docs checked | Result | | --- | --- | --- | --- | | `src/docs/Modules/**` (docs) | MSX Repository Standard, PR Format | PSModule module docs | Aligned | | `src/zensical.toml` (nav) | Documentation Model | Zensical nav | Aligned | - Validation: `zensical build --clean` → "No issues found"; markdownlint (repo config) → clean. </details> <details> <summary>Relevant issues (or links)</summary> - Fixes #95 </details> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent abc50b3 commit d08fcad

5 files changed

Lines changed: 22 additions & 23 deletions

File tree

‎src/docs/Modules/Module-Types.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,4 @@ The `Hashtable` module demonstrates the full set: `ConvertFrom-Hashtable`, `Conv
103103
## Where this connects
104104

105105
- [PowerShell module standard](Standards.md): layout, private functions, and the mandatory context parameter.
106-
- [Repository Defaults](Repository-Defaults.md): repository files, README shape, and agent onboarding.
106+
- [Repository Standard](Repository-Standard.md): repository files, README shape, and agent onboarding.

‎src/docs/Modules/Process-PSModule/module-build-validation.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Do not repeat the shared workflow here. Follow the shared branch → draft PR
2929

3030
Check:
3131

32-
- `README.md` still answers the start-page questions and reflects any user-visible behavior, prerequisites, or setup changes from [Repository Defaults](../Repository-Defaults.md#readme-default)
32+
- `README.md` still answers the start-page questions and reflects any user-visible behavior, prerequisites, or setup changes from [Repository Standard](../Repository-Standard.md#readme-default)
3333
- the relevant public command-group overview page (`src/functions/public/<Group>/<Group>.md`) exists or is updated when the change affects that group's purpose or usage, per [PowerShell module standard](../Standards.md#repository-layout)
3434
- any module-level documentation under `docs/` or other published surfaces is updated when the change adds or changes guidance that should not live only in comment-based help
3535

@@ -90,5 +90,5 @@ Do not repeat the shared workflow here. Follow the shared branch → draft PR
9090
- [PowerShell module standard](../Standards.md)
9191
- [Module types](../Module-Types.md)
9292
- [Module Anatomy](module-anatomy.md)
93-
- [Repository Defaults](../Repository-Defaults.md)
93+
- [Repository Standard](../Repository-Standard.md)
9494
- [MSX Coding Standards](https://msxorg.github.io/docs/Coding-Standards/)
Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
1-
# PowerShell module repository defaults
1+
# Repository Standard
22

3-
This page defines the default repository contract for PowerShell module repositories in the PSModule organization. It describes what a newly created or maintained module repository should look like before module-specific code, tests, documentation, and managed repository files are considered.
3+
This is the PSModule organization's Repository Standard. It applies to the PSModule organization and is the standard for PowerShell module repositories. It describes what a newly created or maintained module repository should look like before module-specific code, tests, documentation, and managed repository files are considered.
44

5-
The implementation standard still lives in [PowerShell module standard](Standards.md). Type-specific conventions for integration (API) and data modules live in [Module types](Module-Types.md). This page covers repository defaults: files, metadata, README shape, release integration, placeholder handling, shared community files, and managed-file distribution.
5+
This standard operates at the same altitude as the [MSX Enterprise Repository Standard](https://msxorg.github.io/docs/Ways-of-Working/Repository-Standard/): MSX sets the enterprise-wide default, and this standard adds to and adjusts that default for PowerShell module repositories. Rules this standard does not change are inherited from the MSX default; where this standard adds or overrides a rule, it governs PowerShell module repositories.
6+
7+
The implementation standard still lives in [PowerShell module standard](Standards.md). Type-specific conventions for integration (API) and data modules live in [Module types](Module-Types.md). This page covers the repository standard for module repositories: files, metadata, README shape, release integration, placeholder handling, shared community files, and managed-file distribution.
68

79
## Scope
810

9-
These defaults apply to repositories whose primary artifact is a PowerShell module published through the PSModule framework.
11+
This standard applies to repositories whose primary artifact is a PowerShell module published through the PSModule framework.
1012

11-
They do not apply directly to:
13+
It does not apply directly to:
1214

1315
- GitHub Action repositories such as `Build-PSModule`, `Invoke-Pester`, or `Publish-PSModule`.
1416
- Documentation repositories such as `PSModule/docs`.
1517
- Template repositories other than `Template-PSModule`.
1618
- Test, archive, service, or infrastructure repositories that are not published as module artifacts.
1719

18-
Two baseline expectations still apply to every PSModule repository, including the types listed above. Each repository stands on its own: it carries its own governance and community files instead of relying on the organization `.github` fallback, and each repository ships the [agent onboarding files](#agent-onboarding-files) so an agent can work in it without prior context. What differs by type is the concrete file set and layout: the required files, README shape, and framework wiring on the rest of this page are module defaults, and non-module repositories keep only the equivalent baseline appropriate to their own type. This repository, `PSModule/docs`, follows those two baseline expectations itself.
20+
Two baseline expectations still apply to every PSModule repository, including the types listed above. Each repository stands on its own: it carries its own governance and community files instead of relying on the organization `.github` fallback, and each repository ships the [agent onboarding files](#agent-onboarding-files) so an agent can work in it without prior context. What differs by type is the concrete file set and layout: the required files, README shape, and framework wiring on the rest of this page are the module standard, and non-module repositories keep only the equivalent baseline appropriate to their own type. This repository, `PSModule/docs`, follows those two baseline expectations itself.
1921

2022
Each initiative should keep its own repository standards in its central documentation repository. For the PSModule organization, this repository is the source of truth.
2123

@@ -88,11 +90,11 @@ Module repositories use the PSModule framework layout:
8890
| `.github/workflows/Process-PSModule.yml` | Caller workflow that runs the module's CI/CD by calling the shared Process-PSModule workflow. |
8991
| `.github/release.yml` | Release-note and changelog categorization for GitHub releases. |
9092
| `.github/linters/` | Linter configuration used by the framework's linting stage, including `.markdown-lint.yml` and `.powershell-psscriptanalyzer.psd1`. |
91-
| `.github/dependabot.yml` | Dependency and supply-chain update configuration. |
93+
| `.github/dependabot.yml` | Configures ecosystem-appropriate dependency-update pull requests. For PowerShell module repositories the `github-actions` ecosystem is expected; add any other ecosystems the module actually develops in. |
9294
| `.github/CODEOWNERS` | Ownership routing for reviews and protected areas. |
93-
| `.github/pull_request_template.md` | PR Manager-compatible pull request template. |
94-
| `.gitattributes` | Git line-ending and file handling defaults. |
95-
| `.gitignore` | Shared ignore rules. |
95+
| `.github/pull_request_template.md` | Scaffolds pull requests in the MSX PR Format (PR Manager) style — an icon + change-type + user-facing-outcome title, user-facing description sections, an optional technical-details block, and a related-issues block. |
96+
| `.gitattributes` | Normalizes line endings and declares text/binary handling so the module can be developed and built consistently on Linux, macOS, and Windows. |
97+
| `.gitignore` | Ignores files that must never be committed, tailored to the PowerShell-module ecosystem: operating-system files, editor and developer-tooling files, PowerShell and Pester test-harness artifacts, and all local build outputs and files created during build and test. |
9698
| `src/` | Module source compiled into the shipped artifact. |
9799
| `src/functions/public/` | Exported commands, grouped by domain. |
98100
| `src/functions/private/` | Internal helper commands, grouped by domain. |
@@ -132,7 +134,7 @@ Name the caller file `Process-PSModule.yml`, matching [`PSModule/Template-PSModu
132134
Every module repository must carry the same baseline community, governance, and automation files. GitHub's organization-level `.github` community-file fallback is useful for display defaults, but it is not enough as the long-term PSModule standard because:
133135

134136
- agents and humans need the files in the repository they are changing, not only inherited through GitHub UI behavior;
135-
- tools such as Dependabot, linters, CODEOWNERS, and release automation read repository-local files;
137+
- tools such as Dependabot and CODEOWNERS read repository-local files — as do linters and release automation when the module uses those linters or generates releases;
136138
- reviews need diffs against the actual managed file in the target repository;
137139
- repository-local files make the standard portable to other initiatives such as MSXOrg, where each initiative should define its own standards and managed files;
138140
- central fallback files in `PSModule/.github` do not provide a reliable enforcement or update workflow across all repositories.
@@ -149,15 +151,12 @@ Required baseline files for module repositories:
149151
| `CODE_OF_CONDUCT.md` | Community participation rules. |
150152
| `AGENTS.md` | Cross-tool agent instructions pointing to the canonical guidance in `PSModule/docs`. |
151153
| `CLAUDE.md` | Claude Code entry point that imports `AGENTS.md`. |
152-
| `.github/dependabot.yml` | Supply-chain maintenance for GitHub Actions and any other Dependabot ecosystem the repository actually uses. |
154+
| `.github/dependabot.yml` | Configures ecosystem-appropriate dependency-update pull requests. For PowerShell module repositories the `github-actions` ecosystem is expected; add any other ecosystems the module actually develops in. |
153155
| `.github/CODEOWNERS` | Review routing for source, docs, and GitHub workflow files. |
154-
| `.github/pull_request_template.md` | Consistent PR Manager-style PR descriptions and change classification. |
155-
| `.github/release.yml` | Release-note and changelog categorization where the repository creates GitHub releases. |
156+
| `.github/pull_request_template.md` | Scaffolds pull requests in the MSX PR Format (PR Manager) style — an icon + change-type + user-facing-outcome title, user-facing description sections, an optional technical-details block, and a related-issues block. |
156157
| `.github/PSModule.yml` | Module workflow defaults and overrides. |
157-
| `.github/linters/.markdown-lint.yml` | Markdown linting defaults. |
158-
| `.github/linters/.powershell-psscriptanalyzer.psd1` | PSScriptAnalyzer defaults. |
159-
| `.gitattributes` | Git attribute defaults. |
160-
| `.gitignore` | Shared ignore rules. |
158+
| `.gitattributes` | Normalizes line endings and declares text/binary handling so the module can be developed and built consistently on Linux, macOS, and Windows. |
159+
| `.gitignore` | Ignores files that must never be committed, tailored to the PowerShell-module ecosystem: operating-system files, editor and developer-tooling files, PowerShell and Pester test-harness artifacts, and all local build outputs and files created during build and test. |
161160

162161
Repositories can add local files, but they should not remove these baseline files unless the repository is explicitly outside the module standard.
163162

‎src/docs/Modules/index.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This section is the local source of truth for:
1010

1111
## Sections
1212

13-
- [Repository Defaults](Repository-Defaults.md)
13+
- [Repository Standard](Repository-Standard.md)
1414
- [Standards](Standards.md)
1515
- [Module types](Module-Types.md)
1616
- [Test Specification](Test-Specification.md)

‎src/zensical.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ watch = ["includes"]
1919
nav = [
2020
{"Modules" = [
2121
"Modules/index.md",
22-
{"Repository Defaults" = "Modules/Repository-Defaults.md"},
22+
{"Repository Standard" = "Modules/Repository-Standard.md"},
2323
{"Standards" = "Modules/Standards.md"},
2424
{"Module types" = "Modules/Module-Types.md"},
2525
{"Test Specification" = "Modules/Test-Specification.md"},

0 commit comments

Comments
 (0)