Skip to content

Commit bec4ac3

Browse files
⚙️ [Maintenance]: Consolidation guidance and PSModule capability docs refreshed (#50)
This update advances the docs consolidation by adding a clear migration plan and expanding the PSModule-related capability documentation so contributors can align content ownership and publishing structure consistently across repositories. > ⚠️ This PR has no linked issue. Consider creating one for traceability. ## Changed: Consolidation planning and capability documentation A consolidation plan is now included to define canonical ownership and migration direction between the docs repositories. Capability documentation for PowerShell on GitHub has been added/updated to clarify design, scope, and specification content used during consolidation. Initiative and capability index pages are updated so the new consolidation direction is visible from top-level navigation. ## Technical Details - Added `docs-consolidation-plan.md`. - Added/updated capability docs under `src/docs/Capabilities/powershell-on-github/` and capability index links. - Updated `src/docs/Initiatives/PSModule.md`. - Updated formatting/config support files: `.prettierrc.json`, `src/zensical.toml`, and `AGENTS.md`.
1 parent 7100932 commit bec4ac3

10 files changed

Lines changed: 166 additions & 47 deletions

File tree

AGENTS.md

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
11
# Agents
22

3-
This repository is the central documentation for the MSX ecosystem. Everything an agent needs to work here — and the roles agents play across the ecosystem — is documentation, read the same way a new teammate would.
3+
## Main directive
44

5-
## Start here
5+
Everything is a work in progress and can be updated and improved.
6+
If you find a problem, fix it if it's small; otherwise, register it as an issue in the respective repo.
67

7-
1. Read this file, then the [README](README.md) for what this repository is and how it builds.
8-
2. Read the [Ways of Working](https://msxorg.github.io/docs/Ways-of-Working/) — how work flows from idea to delivery.
9-
3. Load the [Coding Standards](https://msxorg.github.io/docs/Coding-Standards/) relevant to the change.
8+
## Install the ecosystem
109

11-
## Roles
10+
1. Create a folder in the home directory called `.msx`:
11+
2. Clone the ecosystem locally:
12+
1. <https://github.com/MSXOrg/docs> — requires PRs to be updated.
13+
- Clone as bare and use worktrees.
14+
- Create a worktree for all branches - worktree = name of the branch.
15+
2. <https://github.com/MSXOrg/memory/> — work directly towards main.
16+
- Simple clone, only main.
1217

13-
Agent behaviour is authored once, as documentation, in the [Agents](https://msxorg.github.io/docs/Agents/) section. Use the role that fits the task:
18+
To install:
19+
- Clone the repos in the users home folder under a sub-folder named `.msx`.
20+
- Set configs locally to each of these repos using the GitHub username and email.
1421

15-
- [Define](https://msxorg.github.io/docs/Agents/define/) — capture, refine, and plan a change into an issue.
16-
- [Implement](https://msxorg.github.io/docs/Agents/implement/) — deliver a planned issue as a review-ready pull request.
17-
- [Reviewer](https://msxorg.github.io/docs/Agents/reviewer/) — review a pull request for delivery, taste, and security.
18-
- [Security Reviewer](https://msxorg.github.io/docs/Agents/security-reviewer/) — a structured, defensive security pass.
19-
- [Agent Author](https://msxorg.github.io/docs/Agents/agent-author/) — create and maintain these roles and pointers.
22+
## Working with the ecosystem
2023

21-
## How work happens here
22-
23-
- [Branching and Merging](https://msxorg.github.io/docs/Ways-of-Working/Branching-and-Merging/) and [Git Worktrees](https://msxorg.github.io/docs/Ways-of-Working/Git-Worktrees/) — the branch model and where to work.
24-
- [Contribution Workflow](https://msxorg.github.io/docs/Ways-of-Working/Contribution-Workflow/) — the draft-first, Copilot-review loop through to a ready pull request.
25-
- [Definition of Ready and Done](https://msxorg.github.io/docs/Ways-of-Working/Definition-of-Ready-and-Done/) — when a change is ready for review and when it lands.
26-
- This repository's build and checks — see the [README](README.md).
27-
28-
## The rule
29-
30-
This file points; it never defines. Process knowledge lives in the docs and is referenced by canonical URL — never copied here. See [Agentic Development](https://msxorg.github.io/docs/Ways-of-Working/Agentic-Development/).
24+
1. Get to know this repo first:
25+
- [README](README.md) for what this repository is and how it builds.
26+
- [CONTRIBUTING](CONTRIBUTING.md) for how to contribute and the review process.
27+
2. Read the `.msx/main/docs` - start with the index to get an overview of what is here.
28+
3. Read the `.msx/memory` - start with the index to get an overview of what is here. Use this while working - commit your memories here for work inside the PSModule organization.
29+
4. While working with the code, do small micro commits and push on every commit. This will make it easier to review and merge your changes.

src/docs/Capabilities/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ and design relate and evolve.
2121
| [Merge Automation](merge-automation/index.md) | How a pull request's required status checks become the machine-readable signal that drives automated approval and merge — green merges, red holds, nothing bypasses the gate. |
2222
| [Downstream Release Propagation](downstream-release-propagation/index.md) | How a release in one repository propagates to the repositories that depend on it, via a delegated agent pull request. |
2323
| [VS Code Extension Framework](vscode-extension-framework/index.md) | How a VS Code extension is built, tested, versioned, packaged, and published — one GitHub-native pipeline, opt-in from a template and a single settings file. |
24+
| [PowerShell on GitHub](powershell-on-github/index.md) | How we make GitHub a first-class platform for PowerShell through reusable modules, actions, and capability gaps we close over time. |
2425

2526
<!-- INDEX:END -->
2627

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: Design
3+
description: Architecture and implementation model for making GitHub PowerShell-native through modules, actions, and gap-closing workflows.
4+
---
5+
6+
# Design
7+
8+
## Capability model
9+
10+
The model combines two tracks:
11+
12+
- Build it: implement missing behavior using available GitHub and ecosystem APIs.
13+
- Advocate it: document and escalate platform-native features that require vendor support.
14+
15+
## Architecture components
16+
17+
1. Module collection
18+
- reusable PowerShell modules grouped by domain (language helpers, data formats, networking, security, API clients)
19+
2. Automation collection
20+
- reusable GitHub Actions for prepare, build, test, lint, document, publish, and release stages
21+
3. Orchestration framework
22+
- Process-PSModule pipeline to drive module lifecycle and release behavior
23+
4. Parity gap backlog
24+
- capability gaps mapped to either implementation or advocacy tracks
25+
26+
## Operating pattern
27+
28+
- Keep component-level details in initiative/module docs.
29+
- Keep reusable architecture and decision rationale here.
30+
- Link initiative pages to this capability as canonical context.
31+
32+
## Current canonical references
33+
34+
- PSModule initiative overview: ../../Initiatives/PSModule.md
35+
- Process-PSModule framework: ../../Frameworks/Process-PSModule/index.md
36+
- Coding standards baseline: ../../Coding-Standards/index.md
37+
38+
## Planned evolution
39+
40+
- Add a capability-level parity matrix with status per gap.
41+
- Track implementation maturity for each build-it stream.
42+
- Add explicit ownership and review cadence for advocacy items.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: PowerShell on GitHub
3+
description: How we make GitHub a first-class platform for PowerShell through reusable modules, actions, and capability gaps we close over time.
4+
---
5+
6+
# PowerShell on GitHub
7+
8+
This capability captures the strategic and technical work of infusing GitHub with PowerShell.
9+
10+
It centralizes reusable architecture and platform-gap documentation previously spread across initiative-local docs.
11+
12+
<!-- INDEX:START -->
13+
14+
| Page | Description |
15+
| --- | --- |
16+
| [Spec](spec.md) | Requirements and boundaries for PowerShell parity on GitHub using reusable modules, actions, and platform advocacy. |
17+
| [Design](design.md) | Architecture and implementation model for making GitHub PowerShell-native through modules, actions, and gap-closing workflows. |
18+
19+
<!-- INDEX:END -->
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: Spec
3+
description: Requirements and boundaries for PowerShell parity on GitHub using reusable modules, actions, and platform advocacy.
4+
---
5+
6+
# Spec
7+
8+
## Problem
9+
10+
GitHub offers strong language-native experiences for mainstream ecosystems, but PowerShell still has capability gaps in dependency intelligence, security signals, publishing ergonomics, and first-party tooling support.
11+
12+
## Goal
13+
14+
Provide a PowerShell-first GitHub development experience that is easy, fast, and safe by default.
15+
16+
## Requirements
17+
18+
1. Reusable automation should be packaged as versioned, SHA-pinnable actions and modules.
19+
2. Module and action delivery must be orchestrated through standardized CI/CD workflows.
20+
3. Missing platform support should be addressed through either:
21+
- build-it paths (when APIs exist)
22+
- advocacy paths (when only platform vendors can close the gap)
23+
4. Documentation for this capability must remain canonical in MSXOrg/docs.
24+
5. Initiative repositories can reference this capability but not fork its canonical guidance.
25+
26+
## Scope
27+
28+
In scope:
29+
30+
- module and action architecture for PowerShell on GitHub
31+
- dependency, security, release, and publishing parity goals
32+
- implementation patterns and inventory-level framing
33+
34+
Out of scope:
35+
36+
- module-specific operational docs
37+
- repository-specific runbooks unrelated to reusable capability behavior
38+
39+
## Success criteria
40+
41+
- Capability guidance is discoverable under MSX capabilities.
42+
- Initiative-local copies are replaced with pointers.
43+
- PowerShell parity gaps are documented with a clear build-versus-advocate classification.

src/docs/Initiatives/PSModule.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,13 @@ It is two things at once:
1313
- **The modules themselves** — a growing collection of reusable PowerShell modules built with that workflow.
1414

1515
PSModule inherits the [Coding Standards](../Coding-Standards/index.md) and [Ways of Working](../Ways-of-Working/index.md) from this site and adds only what is specific to the framework. The end-to-end workflow that ships every module — Process-PSModule — is documented under [Frameworks](../Frameworks/Process-PSModule/index.md), and its module reference lives at [psmodule.io](https://psmodule.io).
16+
17+
## Canonical boundary
18+
19+
Cross-org standards and reusable architecture are canonical in MSXOrg/docs, including:
20+
21+
- [Coding Standards](../Coding-Standards/index.md)
22+
- [Capabilities](../Capabilities/index.md)
23+
- [PowerShell on GitHub capability](../Capabilities/powershell-on-github/index.md)
24+
25+
PSModule/docs is now intentionally scoped to module-specific operational details: module catalog pages, Process-PSModule repository anatomy, and template onboarding for module repositories.
Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
/* global document$, Tablesort */
22
document$.subscribe(function () {
3-
var tables = document.querySelectorAll("article table:not([class])");
4-
tables.forEach(function (table) {
5-
// If table doesn't have a thead, create one from the first row
6-
if (!table.querySelector("thead")) {
7-
var firstRow = table.querySelector("tr");
8-
if (firstRow) {
9-
var thead = document.createElement("thead");
10-
thead.appendChild(firstRow);
11-
table.insertBefore(thead, table.firstChild);
12-
}
13-
}
14-
new Tablesort(table);
3+
var tables = document.querySelectorAll("article table:not([class])");
4+
tables.forEach(function (table) {
5+
// If table doesn't have a thead, create one from the first row
6+
if (!table.querySelector("thead")) {
7+
var firstRow = table.querySelector("tr");
8+
if (firstRow) {
9+
var thead = document.createElement("thead");
10+
thead.appendChild(firstRow);
11+
table.insertBefore(thead, table.firstChild);
12+
}
13+
}
14+
new Tablesort(table);
1515

16-
// Tablesort makes header cells focusable (tabindex=0) and sorts on click,
17-
// but does not handle keyboard activation. Let Enter/Space sort too, so the
18-
// sortable headers are usable without a mouse. Cover both th and td header
19-
// cells, since a thead synthesized from the first row may hold td cells.
20-
table.querySelectorAll("thead th, thead td").forEach(function (header) {
21-
header.addEventListener("keydown", function (event) {
22-
if (event.key === "Enter" || event.key === " ") {
23-
event.preventDefault();
24-
header.click();
25-
}
26-
});
27-
});
16+
// Tablesort makes header cells focusable (tabindex=0) and sorts on click,
17+
// but does not handle keyboard activation. Let Enter/Space sort too, so the
18+
// sortable headers are usable without a mouse. Cover both th and td header
19+
// cells, since a thead synthesized from the first row may hold td cells.
20+
table.querySelectorAll("thead th, thead td").forEach(function (header) {
21+
header.addEventListener("keydown", function (event) {
22+
if (event.key === "Enter" || event.key === " ") {
23+
event.preventDefault();
24+
header.click();
25+
}
26+
});
2827
});
28+
});
2929
});

src/overrides/assets/javascripts/tablesort.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/zensical.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,11 @@ nav = [
118118
{"Spec" = "Capabilities/vscode-extension-framework/spec.md"},
119119
{"Design" = "Capabilities/vscode-extension-framework/design.md"},
120120
]},
121+
{"PowerShell on GitHub" = [
122+
"Capabilities/powershell-on-github/index.md",
123+
{"Spec" = "Capabilities/powershell-on-github/spec.md"},
124+
{"Design" = "Capabilities/powershell-on-github/design.md"},
125+
]},
121126
]},
122127
{"Frameworks" = [
123128
"Frameworks/index.md",

0 commit comments

Comments
 (0)