Skip to content

Standardize module README + repository, agent, and module-type defaults#61

Open
Marius Storhaug (MariusStorhaug) wants to merge 9 commits into
mainfrom
docs/readme-content-standard
Open

Standardize module README + repository, agent, and module-type defaults#61
Marius Storhaug (MariusStorhaug) wants to merge 9 commits into
mainfrom
docs/readme-content-standard

Conversation

@MariusStorhaug

@MariusStorhaug Marius Storhaug (MariusStorhaug) commented Jul 9, 2026

Copy link
Copy Markdown
Member

What Updates the module README default in PowerShell/Modules/Repository-Defaults.md so that standardizing a README does not delete unique information. The README is published as the module's landing page on the docs site (for example psmodule.io/<ModuleName>); the per-command reference is generated separately from comment-based help. So the README is often the only published home for prerequisites, platform/dependency notes, authentication and setup guidance, operational behavior (caching, state, update/versioning), and upstream attribution. Deleting it to shorten the README removes it from the site entirely. ## Changes to the standard - Content preservation (keep / trim / relocate, never drop). Preserve unique content; only remove what is genuinely duplicated by the generated command reference. - Publishing model made explicit. The README publishes as the landing page. Content may move out of the README only into another published home — a command group's overview page under src/functions/public/<Group>/<Group>.md, or comment-based help. A bare top-level docs/ folder is not published, so moving content there drops it from the site. A longer README is acceptable for feature-rich modules; do not shorten by deleting. - Capabilities showcase is mandatory for implemented modules. - Upstream attribution exception. Credit, acknowledgements, donation notes, and third-party license notices are retained. - Fixed the copy/paste-hostile help example and extended README validation. ## Gauge Applied on two content-rich repos so the resulting READMEs can be used to judge the definition: - PSModule/NerdFonts#85 — keeps the full README (prerequisites, attribution, usage, caching, update semantics, uninstall) and adds a Documentation pointer. - PSModule/GitHub#638 — keeps the full README (use-cases, platforms, complete authentication guide incl. Azure Key Vault) and adds a Documentation pointer. Follow-up: apply the definition to the remaining standardization PRs, and sync Template-PSModule's README.


Round 2 additions (scope expanded)

Following review of all 55 rollout PRs, the standard now also:

  • Renames the README showcase heading Capabilities -> Usage (Examples allowed); Capabilities is disallowed and checked in README validation.
  • States each repository stands on its own feet — carries its own governance files, no reliance on the org .github fallback; the README has no ## Contributing section (repo ships a self-contained CONTRIBUTING.md).
  • Requires agent onboarding files AGENTS.md / CLAUDE.md (@AGENTS.md) / .github/copilot-instructions.md pointing to PSModule/docs + MSXOrg/docs (added to required-files tables and Distributor mandatory sets).
  • Adds a placeholder guard (a module exporting any real command is not a placeholder).
  • Tightens the PowerShell version policy to modern-only: minimum 7.6, track current + LTS, drop 5.1 accommodation (PowerShell/index.md).
  • Adds Modules/Module-Types.md (integration/API + data modules) and Naming.md rules: REST-method -> verb mapping; ConvertTo/ConvertFrom + Format/Import/Export; Hashtable as the data-module reference; Context for user and module settings.

Follow-ups filed as separate issues: framework 5.1-compat rules vs modern-only; Distributor rollout of the new mandatory files; data-module naming conformance (Toml/Hashtable).


Round 3: resolve the scope conflict and adopt the standard here

Resolve the scope contradiction in Repository-Defaults.md. The Scope section excluded documentation repositories such as PSModule/docs, while the Agent onboarding files and Required common files sections require every repository to carry agent onboarding files and to stand on its own. Scope now states that two baseline expectations — agent onboarding files and repository self-sufficiency — apply to every PSModule repository regardless of type, while the concrete file set and layout on the rest of the page stay module-specific.

Dogfood the standard in this repository. PSModule/docs previously carried none of the required agent onboarding files. This PR adds them so the repo that defines the standard follows it:

  • AGENTS.md — cross-tool entry point pointing to psmodule.io and the MSX documentation.
  • CLAUDE.md@AGENTS.md import.
  • .github/copilot-instructions.md — points to AGENTS.md.

Copilot review addressed. examples/ is no longer described as a published surface in the README-validation note (aligned with the "relocate only to a published home" rule), and the data round-trip sentence in Naming.md / Module-Types.md was completed.

Follow-up (out of scope here): an organization-wide rollout of the agent onboarding files is needed — an audit of the org shows 0/58 module repos and 0/4 docs repos currently carry AGENTS.md or CLAUDE.md, and only 1 carries .github/copilot-instructions.md. That rollout should go through Distributor's mandatory file sets as this standard describes.

Trimming a module README must not delete unique information. Adds a content-preservation rule (keep/trim/relocate, never drop), makes the capabilities showcase mandatory for implemented modules, carves out an upstream attribution and licensing exception, fixes the copy/paste-hostile Get-Help example, and extends README validation.
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Super-linter summary

Language Validation result
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
HTML Pass ✅
JAVASCRIPT_ES Pass ✅
JAVASCRIPT_PRETTIER Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

The README publishes as the module landing page; a bare top-level docs/ is not published by the docs build. Correct the relocation guidance to only published homes (README, group overview pages under src/functions/public, comment-based help) and state that a longer README is acceptable rather than deleting narrative content to shorten it.
…7.6+

- Rename README showcase heading Capabilities -> Usage (Examples allowed); disallow Capabilities and add to README validation.
- Each repo stands on its own: carries own governance files, no reliance on org .github fallback; README has no Contributing section (repo ships self-contained CONTRIBUTING.md).
- Add agent onboarding files (AGENTS.md, CLAUDE.md, .github/copilot-instructions.md) to required files + Distributor mandatory sets, pointing to PSModule/docs and MSXOrg/docs.
- Placeholder guard: a module exporting any real command is not a placeholder.
- Modern PowerShell only: minimum 7.6, track current + LTS; drop 5.1 accommodation.
- New Module-Types.md (integration/API + data modules) + Naming.md rules (REST->verb, ConvertTo/From + Format/Import/Export); Hashtable is the data-module reference; Context for user + module settings.
Clarify Repository-Defaults scope so agent onboarding files and repository self-sufficiency apply to every PSModule repository, while the module file set and layout stay type-specific. This removes the contradiction with the 'every repository' / 'stand on its own' requirements that had excluded PSModule/docs.

Dogfood the standard: add AGENTS.md, CLAUDE.md (@AGENTS.md import), and .github/copilot-instructions.md to PSModule/docs, which previously carried none of the required agent onboarding files.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Updates the PSModule PowerShell module standards to better preserve README content during standardization, formalize module archetype guidance (integration/API vs data), and establish consistent repository/agent onboarding defaults across repos.

Changes:

  • Adds a new “Module types” standards page and links it into the PowerShell Modules nav/index.
  • Expands repository defaults to require repo-local governance files plus agent onboarding entrypoints (AGENTS.md / CLAUDE.md / copilot-instructions).
  • Refines README and naming guidance (Usage showcase requirement, content preservation rules, REST→verb mapping, data-module verb vocabulary) and tightens the PowerShell support policy to modern-only (min 7.6).

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/zensical.toml Adds “Module types” to the docs navigation.
src/docs/PowerShell/Standard/Naming.md Adds verb conventions for data modules and integration/API modules.
src/docs/PowerShell/Modules/Repository-Defaults.md Updates README standardization rules + adds agent onboarding and repo self-sufficiency requirements.
src/docs/PowerShell/Modules/Module-Types.md New page defining integration/API vs data module conventions and cross-links.
src/docs/PowerShell/Modules/index.md Links to the new Module-Types page from the Modules landing page.
src/docs/PowerShell/index.md Updates the supported PowerShell version policy (modern-only, min 7.6).
CLAUDE.md Adds Claude entrypoint importing AGENTS.md.
AGENTS.md Adds agent onboarding instructions for this docs repository.
.github/copilot-instructions.md Adds Copilot instructions pointing to AGENTS.md.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/docs/PowerShell/Modules/Repository-Defaults.md
Comment thread src/docs/PowerShell/Modules/Repository-Defaults.md Outdated
Comment thread src/docs/PowerShell/Standard/Naming.md Outdated
…ound-trip grammar

- Repository-Defaults README validation no longer calls examples/ a published surface; it now aligns with the 'relocate only to a published home' rule (group overview page or comment-based help) and states repository-only locations such as examples/ must still be linked from the README.

- Naming.md and Module-Types.md: complete the 'so data round-trips' clause -> 'so data can round-trip between the format and the object model'.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Comment thread src/docs/PowerShell/Standard/Naming.md Outdated
…n Naming.md

Replace the ambiguous ellipsis in 'Remove-…Entry' with the explicit '<Noun>' placeholder so it matches the verb vocabulary in Module-Types.md and is copy/paste-safe.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Comment thread src/docs/PowerShell/Modules/Repository-Defaults.md Outdated
…> template placeholder

The README template uses 'Get-Help -Name <Command> -Examples' and the guidance
tells authors to replace <Command>, but the validation Select-String only matched
'-Name ''CommandName''' and <CommandName>, so a README shipping <Command>
unchanged would pass. Add <Command> to the pattern list.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Comment thread src/docs/PowerShell/Modules/Module-Types.md Outdated
…-modules sentence

Removed the commas after GitHub and after Domeneshop; the service-client list is
part of the subject, not a parenthetical, so 'GitHub and the service-client
modules such as ... are integration modules' now reads correctly.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Comment thread src/docs/PowerShell/Modules/Module-Types.md Outdated
…ble rows

'Read from a file or store into objects' read ambiguously (store-into adjacency).
Reworded to 'Read objects from a file or store' to parallel the Export- row
'Write objects to a file or store'.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants