|
1 | 1 | <!-- |
2 | 2 | Sync Impact Report |
3 | | -Version change: none → 1.0.0 |
| 3 | +Version change: 1.0.0 → 1.0.1 |
4 | 4 | Modified principles: |
5 | | -- NEW: Code Quality & Style (PowerShell-centric) |
6 | | -- NEW: Testing Standards (Pester & CI gates) |
| 5 | +- UPDATED: Code Quality & Style (explicit PSScriptAnalyzer enforcement & Microsoft PowerShell scripting best practices) |
| 6 | +- NEW/CLARIFY: Testing Standards (Pester & CI gates clarified to include static analysis gating) |
7 | 7 | - NEW: User Experience Consistency (cmdlet UX, help, output contracts) |
8 | 8 | - NEW: Performance Requirements (benchmarks, memory/latency goals) |
9 | | -Added sections: |
| 9 | +Added/clarified sections: |
10 | 10 | - Development Constraints (PowerShell module rules, compatibility targets) |
11 | | -- Development Workflow (TDD, PR review checklist, PSScriptAnalyzer gating) |
| 11 | +- Development Workflow (TDD, PR review checklist, explicit PSScriptAnalyzer gating) |
12 | 12 | Removed sections: none |
13 | | -Templates requiring updates: |
14 | | -- .specify/templates/plan-template.md ✅ inspected (Constitution Check placeholder present; aligns with new principles) |
| 13 | +Templates requiring updates / inspection: |
| 14 | +- .specify/templates/plan-template.md ✅ inspected (Constitution Check placeholder present; aligns with updated principles) |
15 | 15 | - .specify/templates/spec-template.md ✅ inspected (requirements gating aligns) |
16 | 16 | - .specify/templates/tasks-template.md ✅ inspected (task rules align) |
17 | 17 | Follow-up TODOs: |
18 | | -- TODO(RATIFICATION_DATE): Confirm historical ratification date if this is not the first adoption (left as ratified today) |
| 18 | +- None deferred. RATIFICATION_DATE retained as original adoption date. |
19 | 19 | --> |
20 | 20 |
|
21 | 21 | # PSSpecKit Constitution |
22 | 22 |
|
23 | 23 | ## Core Principles |
24 | 24 |
|
25 | 25 | ### I. Code Quality & Style (PowerShell-centric) |
26 | | -All authored PowerShell code MUST follow Microsoft PowerShell best practices. This includes: |
27 | | -- Consistent, discoverable names following Verb-Noun cmdlet conventions (approved verbs from Microsoft). Module, function, and parameter names MUST be clear and purpose-driven. |
28 | | -- Script and module layout MUST follow common PowerShell module structure (ExportedFunctions, Public/Private separation, module manifest when applicable). |
29 | | -- Static analysis using PSScriptAnalyzer with a project baseline is REQUIRED; rules MAY be tightened per-module. Violations MUST be addressed before merging. |
30 | | -- Code MUST be idempotent where applicable and avoid implicit global state; side-effects MUST be explicit and documented. |
| 26 | +All authored PowerShell code MUST meet Microsoft PowerShell scripting best practices and pass the project's PSScriptAnalyzer quality checks. This is a mandatory, CI-enforced gate. Specifically: |
| 27 | +- All code MUST adhere to Microsoft-approved naming conventions (Verb-Noun) and use discoverable, purpose-driven names for modules, functions and parameters. |
| 28 | +- Script and module layouts MUST follow common PowerShell module structure (ExportedFunctions, Public/Private separation, and a module manifest when applicable). |
| 29 | +- Static analysis using PSScriptAnalyzer against a project baseline configuration is REQUIRED; module-level rules MAY be tightened. CI MUST fail if PSScriptAnalyzer violations are present and violations MUST be addressed before merging. |
| 30 | +- All scripts and modules MUST document any accepted deviations from the baseline (with rationale) in the PR; exceptions are time-limited and require maintainer approval. |
| 31 | +- Code MUST be idempotent where applicable, avoid implicit global state, and make side-effects explicit and documented. |
31 | 32 |
|
32 | 33 | Path usage policy: NO absolute filesystem paths are permitted inside committed scripts or modules. All filesystem paths referenced by scripts MUST be relative to the script/module root and must be resolved at runtime using the script's location (for example, $PSScriptRoot) or a small, documented repository-root resolution helper called from the script root. Hard-coded absolute paths will fail review and MUST be removed before merge. |
33 | 34 |
|
@@ -73,4 +74,4 @@ The Constitution defines mandatory practices for development and review. Amendme |
73 | 74 | - Versioning Policy: The Constitution uses semantic versioning: MAJOR for breaking governance changes (removals or redefinitions), MINOR for new principles or material expansions, PATCH for wording/clarity fixes. The author of the PR MUST indicate the expected bump and rationale. |
74 | 75 | - Compliance: The `Constitution Check` step in `.specify/templates/plan-template.md` and related templates MUST be evaluated during planning. CI tooling and reviewers are responsible for enforcing gates. |
75 | 76 |
|
76 | | -**Version**: 1.0.0 | **Ratified**: 2025-10-01 | **Last Amended**: 2025-10-01 |
| 77 | +**Version**: 1.0.1 | **Ratified**: 2025-10-01 | **Last Amended**: 2025-10-02 |
0 commit comments