Skip to content

⚙️ [Maintenance]: Remove instruction files colocated into the docs site#349

Merged
Marius Storhaug (MariusStorhaug) merged 1 commit into
mainfrom
maintenance/remove-colocated-instructions
Jul 5, 2026
Merged

⚙️ [Maintenance]: Remove instruction files colocated into the docs site#349
Marius Storhaug (MariusStorhaug) merged 1 commit into
mainfrom
maintenance/remove-colocated-instructions

Conversation

@MariusStorhaug

@MariusStorhaug Marius Storhaug (MariusStorhaug) commented Jun 1, 2026

Copy link
Copy Markdown
Member

The Markdown and PowerShell style instruction files have been removed from this repository. Their content now lives in the PSModule documentation site under the new Style Guides section, giving contributors and agents a single, browsable source of truth for coding conventions.

Changed: Instruction files moved to the docs site

The .github/instructions/md.instructions.md and .github/instructions/pwsh.instructions.md files (and the now-empty instructions folder) have been removed. The same guidance is published — and expanded with a new GitHub Actions guide — at the docs site:

This is an internal maintenance change. It does not affect the shipped artifact or any workflow behavior.

Technical Details

  • Deleted .github/instructions/md.instructions.md and .github/instructions/pwsh.instructions.md.
  • Content migrated verbatim to src/docs/Style-Guides/Markdown.md and src/docs/Style-Guides/PowerShell.md in PSModule/docs.

Downstream coverage

The MSX documentation site consumes this guidance and adds the few authoring conventions that were not carried over verbatim — image alt text, PowerShell matching operators (-like/-match/-c) and read-only constants, and requirement-identifier formatting — in MSXOrg/docs#16.

Marius Storhaug (MariusStorhaug) added a commit to PSModule/docs that referenced this pull request Jul 2, 2026
The PSModule coding style guides now live in the documentation site
under a new **Style Guides** menu section. Contributors and agents can
browse the GitHub Actions, Markdown, and PowerShell conventions directly
on the docs site instead of digging through editor instruction files in
another repository.

## New: Style Guides section in the docs

A new **Style Guides** entry appears in the top navigation, containing:

- **GitHub Actions** — workflow and composite action authoring
conventions: job/step naming, quoting, SHA pinning, minimal permissions,
OIDC and secrets handling, untrusted-input safety, trigger isolation,
runner pinning, and a zizmor security checklist.
- **Markdown** — headings, lists, code blocks, links, tables, emphasis,
whitespace, and filename conventions.
- **PowerShell** — One True Brace Style, naming, parameters, error
handling, pipeline design, performance, and Pester testing conventions.

Each guide states the rule, shows good and bad examples, and explains
how to apply it. The Markdown and PowerShell guides are migrated
verbatim from the editor instruction files that previously lived in the
`Process-PSModule` repository; the GitHub Actions guide is new and
aligns with the existing GitHub Actions Standard.

## Technical Details

- Added `src/docs/Style-Guides/` with `index.md`, `GitHub-Actions.md`,
`Markdown.md`, and `PowerShell.md`.
- Editor-specific frontmatter (`applyTo`) was replaced with docs
frontmatter (`title`/`description`).
- Registered the new `Style Guides` section in the `nav` array in
`src/zensical.toml`, placed between **GitHub Actions** and
**Solutions**.
- Companion PR: `PSModule/Process-PSModule#349` removes the now-migrated
instruction files.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Removes the repository-scoped Markdown and PowerShell instruction files that previously lived under .github/instructions/, aligning with the move to a centralized “Style Guides” section in the external documentation site.

Changes:

  • Deleted .github/instructions/md.instructions.md (Markdown style guidance).
  • Deleted .github/instructions/pwsh.instructions.md (PowerShell style guidance).

Reviewed changes

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

File Description
.github/instructions/md.instructions.md Removes in-repo Markdown style instructions (content now maintained in docs site per PR description).
.github/instructions/pwsh.instructions.md Removes in-repo PowerShell style instructions (content now maintained in docs site per PR description).

@MariusStorhaug Marius Storhaug (MariusStorhaug) marked this pull request as ready for review July 5, 2026 14:18
@MariusStorhaug Marius Storhaug (MariusStorhaug) requested a review from a team as a code owner July 5, 2026 14:18
@MariusStorhaug Marius Storhaug (MariusStorhaug) merged commit 0c90c32 into main Jul 5, 2026
17 checks passed
@MariusStorhaug Marius Storhaug (MariusStorhaug) deleted the maintenance/remove-colocated-instructions branch July 5, 2026 14:18
Marius Storhaug (MariusStorhaug) added a commit to MSXOrg/docs that referenced this pull request Jul 6, 2026
…, and requirement IDs (#16)

The coding and spec standards now answer four authoring questions they
were silent on: how to make images accessible, which PowerShell operator
to reach for when matching text, when to prefer .NET over cmdlets, and
how requirement identifiers are written. This closes the gaps left when
the PSModule instruction files were retired into a docs site, so
contributors and agents keep one complete source of truth.

## New: Image accessibility and link conventions in the Markdown
standard

The [Markdown
standard](https://github.com/MSXOrg/docs/blob/main/src/docs/Coding-Standards/Markdown.md)
now states that every image carries descriptive alt text — so it serves
screen readers and still says something when the image fails to load —
and that a repeated or long link may be written reference-style. It also
spells out that code, commands, filenames, and identifiers belong in
backticks rather than emphasis.

## New: PowerShell standard — matching, constants, and preferring .NET

The [PowerShell
standard](https://github.com/MSXOrg/docs/blob/main/src/docs/Coding-Standards/PowerShell/index.md)
now covers text matching — `-like` for wildcards, `-match` for regular
expressions, and the `-c` prefix for case-sensitive comparison — how to
declare a value that must not change with `Set-Variable -Option
ReadOnly`, and a **Prefer .NET for the actual work** principle: reach
for the .NET base class library on hot paths and where behaviour must be
exact, and keep cmdlets for readable glue. This mirrors the ai-platform
PowerShell standard.

## New: Requirement identifiers and normative language in Spec-Driven
Development

[Spec-Driven
Development](https://github.com/MSXOrg/docs/blob/main/src/docs/Ways-of-Working/Spec-Driven-Development.md)
now defines how requirements are identified and written: functional
requirements are `FR1`, `FR2`, `FR3` and non-functional ones `NFR1`,
`NFR2`, `NFR3`, each given its own heading with a stable, explicit
anchor (`### FR1 — <statement> { #fr1 }`) so it can be referenced as
`[FR1](#fr1)` and reworded without breaking the link. Identifiers are
append-only — never renumbered or reused, and a removed requirement
simply disappears (git holds the history). Requirements are written with
the BCP 14 keywords (MUST / SHOULD / MAY, and the rest of the set) so
obligations are unambiguous.

## Technical Details

Additions land in existing pages, so the standards stay navigable and
the generated index is unchanged:

- `src/docs/Coding-Standards/Markdown.md` — the "Style beyond the
linter" section.
- `src/docs/Coding-Standards/PowerShell/index.md` — the "Idioms and
pitfalls" section plus a new "Prefer .NET for the actual work" section.
- `src/docs/Ways-of-Working/Spec-Driven-Development.md` — the
"Requirements" section.
- `.github/scripts/Test-DocumentationLink.ps1` — the link checker now
recognises explicit `{ #id }` anchors and validates reference-style link
definitions, and it uses native .NET (`[System.IO.File]::Exists`,
`[System.IO.Path]::Combine`) on its per-link hot path, following the new
principle.

Requirement identifiers use the `FR`/`NFR` scheme with text-independent
[attr_list](https://python-markdown.github.io/extensions/attr_list/)
anchors (`{ #fr1 }`), which Zensical renders natively, and normative
language anchored to [BCP 14](https://www.rfc-editor.org/info/bcp14)
(RFC 2119 + RFC 8174). This supersedes the earlier `F1`/`N1` idea — the
PSModule `FR-001`/`NFR-001` non-breaking-hyphen rule does not apply,
since these anchors are text-independent. No lint configuration changes
— the deliberate markdownlint relaxations (line length, list-marker
style, blank-line rules) stand. Verified locally: markdownlint,
PSScriptAnalyzer, `Update-DocumentationIndex.ps1 -Check`, and
`Test-DocumentationLink.ps1` all pass.

<details>
<summary>Related issues</summary>

- Closes #15
- Origin PSModule/Process-PSModule#349
- Origin PSModule/docs#43

</details>
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