You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,8 @@
2
2
3
3
Process-PSModule is the corner-stone of the PSModule framework — an end-to-end GitHub Actions workflow that builds, tests, versions, documents, and publishes PowerShell modules to the PowerShell Gallery.
4
4
5
-
Documentation site generation is powered by Zensical. Repositories define site configuration in `zensical.toml`.
5
+
Documentation site generation is powered by Zensical. Module repositories
6
+
inherit the canonical `.github/zensical.toml` from `Template-PSModule`.
Copy file name to clipboardExpand all lines: docs/content/guides/structuring-your-module.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,7 +61,9 @@ These names describe repository conventions, not settings. `.github/PSModule.yml
61
61
Key expectations:
62
62
63
63
- Keep at least one exported function under `src/functions/public/` and corresponding tests in `tests/` using a [documented test profile](https://msx.no/docs/Coding-Standards/PowerShell/Testing/#module-test-profiles).
64
-
- Keep documentation site configuration in `.github/zensical.toml`.
64
+
- Keep documentation site configuration aligned with
65
+
`Template-PSModule/.github/zensical.toml`. Omit `nav`; Zensical follows the
66
+
generated folder structure and sorts pages alphabetically.
65
67
- Optional folders (`assemblies`, `formats`, `types`, `variables`, and others) are processed automatically when present.
66
68
- Markdown files in `src/functions/public` subfolders become documentation pages alongside generated help.
67
69
- A group's overview page (`<Category>/<Category>.md` named after the folder, or `<Category>/index.md`) becomes that group's section landing page in the docs navigation.
Copy file name to clipboardExpand all lines: docs/content/reference/repository-standard.md
+77-10Lines changed: 77 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,11 +19,18 @@ It does not apply directly to:
19
19
20
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 documentation project, maintained in `PSModule/Process-PSModule`, follows those two baseline expectations itself.
21
21
22
-
Each initiative should keep its own repository standards in its central documentation repository. For the PSModule organization, this repository is the source of truth.
22
+
Each initiative should keep its own repository standards in its central
23
+
documentation repository. For the PSModule organization, this repository owns
24
+
the requirements and `Template-PSModule` owns their executable file
25
+
implementations.
23
26
24
27
## Repository creation
25
28
26
-
Create new module repositories from [`PSModule/Template-PSModule`](https://github.com/PSModule/Template-PSModule). The template provides the framework wiring, starter layout, and CI/CD expectations.
|`.github/workflows/Process-PSModule.yml`| Caller workflow that runs the module's CI/CD by calling the shared Process-PSModule workflow. |
98
+
|`.github/zensical.toml`| Canonical generated-site configuration copied from `Template-PSModule`. |
91
99
|`.github/release.yml`| Release-note and changelog categorization for GitHub releases. |
92
100
|`.github/linters/`| Linter configuration used by the framework's linting stage, including `.markdown-lint.yml` and `.powershell-psscriptanalyzer.psd1`. |
93
101
|`.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. |
@@ -179,15 +187,50 @@ Runtime-specific adapter files such as `.github/copilot-instructions.md` and `.g
179
187
180
188
These files are the agent equivalent of the README: pointers, not copies. Keep them short so the linked documentation stays the single source of truth. Like the other governance files, they live in the repository itself so it can stand on its own.
181
189
182
-
## Managed file distribution
190
+
## Template ownership and reconciliation
183
191
184
-
**Policy ownership and distribution runtime are separate concerns.** This page — and this documentation project in [`PSModule/Process-PSModule`](https://github.com/PSModule/Process-PSModule) — defines *what* files must exist in module repositories and *what standards they must meet*. The distribution runtime is handled by [`MSXOrg/Custo`](https://github.com/MSXOrg/Custo).
192
+
Policy ownership, executable templates, and distribution are separate
193
+
concerns:
185
194
186
-
For PSModule module repositories, the requirements are:
187
-
188
-
- Repositories must contain the required baseline files defined on this page.
189
-
- Managed copies of those files are treated as generated distribution artifacts, not repository-specific source.
190
-
- Standard changes to managed-file content are made in the distribution engine, not by patching generated copies in receiving repositories.
Keep its repository placeholders: Process-PSModule resolves them while staging
421
+
the generated site. The template carries the portable subset of the MSXorg and
422
+
Process-PSModule documentation design, with the MSXorg design taking precedence
423
+
when they differ.
424
+
425
+
Do not declare `nav` in a standard module repository. Zensical derives
426
+
navigation from the staged folder structure, places index pages first, and
427
+
sorts the remaining pages alphabetically. Organize generated function
428
+
references through their source folders instead of maintaining a second
429
+
navigation tree in TOML.
430
+
431
+
Repository-specific documentation content remains repository-owned. A module
432
+
may depart from the template's site configuration only for a documented
433
+
requirement that the shared generated-site profile cannot satisfy.
434
+
373
435
## Release and PR defaults
374
436
375
437
Module repositories use the Process-PSModule workflow. Version and release behavior is driven by PR labels and workflow settings.
@@ -385,6 +447,11 @@ See [Versioning](versioning.md) for semantic version rules and [PowerShell modul
385
447
386
448
## Template maintenance
387
449
388
-
`Template-PSModule` defines the default README shape and starter repository contract. When this page changes a default, update `Template-PSModule` in the same work item when practical.
450
+
`Template-PSModule` contains the concrete files for the complete starter
451
+
repository contract. Every Process-PSModule change includes an impact
452
+
evaluation that determines whether the template must change. When a framework
453
+
contract or this page changes a default, update the template in the same work
454
+
item before aligning consumer repositories. A standard is not complete while
455
+
its required implementation is absent from the template.
389
456
390
457
The template README may contain tokens, but generated module repositories should not keep them after the initial setup commit.
0 commit comments