Skip to content

Commit 104219e

Browse files
author
Your Name
committed
chore: sync constitution to v1.4.0
1 parent 301a979 commit 104219e

1 file changed

Lines changed: 65 additions & 14 deletions

File tree

constitution.md

Lines changed: 65 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1-
# Constitution v1.1.0
1+
# Constitution v1.4.0
22

33
# home-baseline Constitution
44

5+
## Beschreibung / Description
6+
7+
Diese Verfassung definiert die verbindlichen Prinzipien und Standards für alle home-baseline Workspaces.
8+
9+
*This constitution defines the non-negotiable principles and standards for all home-baseline workspaces.*
10+
511
## Core Principles
612

713
### I. Security-First (NON-NEGOTIABLE)
@@ -40,19 +46,23 @@ incident. Automated prevention at push time is the last reliable gate. The
4046
surgical subdirectory exception enables Spec-Kit tool definitions to be
4147
synchronized across devices without exposing any credentials.
4248

43-
### II. Cross-Platform Parity
49+
### II. Cross-Platform Parity & Documentation
4450

4551
Every critical script MUST exist in two variants:
4652
- Bash (`.sh`) for macOS/Linux
4753
- PowerShell Core 7+ (`.ps1`) for Windows
4854

4955
Both variants MUST provide identical functionality and produce equivalent output.
50-
A new script is not considered complete until both variants exist, pass manual
51-
verification, and are committed together in the same commit.
56+
A new script is not considered complete until:
57+
1. Both variants exist and pass manual verification.
58+
2. A corresponding Unix man-page is provided for the Bash variant (stored in `docs/man/`).
59+
3. Complete bilingual comment-based help is provided for the PowerShell variant.
60+
4. PowerShell scripts MUST also be available as Cmdlets (Advanced Functions) using the `Verb-Noun` naming convention (e.g., `New-HBWorkspace`).
61+
5. Help switches (`-h`, `--help`) point to the man-page or internal help.
5262

53-
**Rationale**: The workspace is used on macOS (Mac Mini M4 Pro, MacBook Air M2)
54-
and may be used on Windows. Bash-only or PowerShell-only scripts create a
55-
second-class experience on one platform.
63+
All files MUST be committed together in the same commit.
64+
65+
**Rationale**: The workspace is used on macOS and Windows. Bash-only or PowerShell-only scripts create a second-class experience. Professional documentation ensures maintainability and ease of use across platforms.
5666

5767
### III. Bootstrap Automation
5868

@@ -64,6 +74,15 @@ Manual `git init` + `gh repo create` outside the bootstrap flow is prohibited
6474
for new workspaces. The bootstrap script is the single authoritative source of
6575
the correct workspace setup sequence.
6676

77+
Workspace removal MUST be performed exclusively via the teardown scripts:
78+
- `bash ~/scripts/teardown-workspace.sh <WorkspaceName>` (macOS/Linux)
79+
- `pwsh ~/scripts/teardown-workspace.ps1 -WorkspaceName <Name>` (Windows)
80+
- or the alias: `bash ~/scripts/bootstrap-workspace.sh --teardown <WorkspaceName>`
81+
82+
Manual `rm -rf` without teardown is prohibited because it orphans remote
83+
repositories, `~/README.md` table entries, `~/.gitignore` entries, and
84+
`~/.gitconfig` `[includeIf]` blocks.
85+
6786
`~/README.md` MUST be updated (automatically or manually) whenever a new
6887
workspace is added. The workspace table anchor `<!-- workspace-table-end -->`
6988
MUST be preserved.
@@ -83,7 +102,7 @@ are excluded by the whitelist `.gitignore`):
83102
| Category | Tracked paths |
84103
|----------|--------------|
85104
| Infrastructure scripts | `scripts/` |
86-
| Documentation | `README.md`, `.gitignore`, `.gitconfig` |
105+
| Documentation | `README.md`, `.gitignore`, `.gitconfig`, `docs/` |
87106
| AI agent guidance | `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `.github/copilot-instructions.md` |
88107
| Spec-Kit tooling | `.specify/` (config, templates, memory/constitution), `.agents/skills/`, `.github/agents/`, `.github/prompts/` |
89108
| Agent Spec-Kit commands | `.claude/commands/`, `.gemini/commands/` |
@@ -99,12 +118,16 @@ Rules:
99118
**Rationale**: Submodules create fragile cross-repo coupling. Independent repos
100119
give each workspace its own clean history and deployment lifecycle. Tracking
101120
AI agent guidance files and Spec-Kit tooling ensures consistent development
102-
environments across all devices (Mac Mini M4 Pro, MacBook Air M2).
121+
environments across all devices.
103122

104123
### V. Manual-First Verification
105124

106-
There is no automated CI/CD pipeline for `home-baseline` scripts. Verification
107-
is manual and MUST follow the safe-mode-first rule:
125+
`home-baseline` uses a blended verification model: manual verification remains
126+
mandatory for script changes, and lightweight automated CI/CD guardrails on
127+
GitHub MAY complement it. GitLab release automation is also maintained in this
128+
repository as reusable baseline logic and MUST be validated through real
129+
project pipelines before it is treated as production-ready. Verification MUST
130+
follow the safe-mode-first rule:
108131

109132
- Bootstrap changes: always test with `--dry-run` (Bash) / `-WhatIf` (PowerShell)
110133
before running for real.
@@ -116,8 +139,29 @@ is manual and MUST follow the safe-mode-first rule:
116139
Automated test tooling MUST NOT be added to this repository unless a formal
117140
decision is made and documented in this constitution (Governance section).
118141

119-
**Rationale**: The scripts are low-churn infrastructure. The overhead of a test
120-
framework would exceed the benefit for the current scope.
142+
**Rationale**: The scripts are low-churn infrastructure. Manual dry-runs and
143+
real pipeline validation catch the most relevant operational risks with less
144+
maintenance overhead than a broad scripted test framework.
145+
146+
### VI. Observability & Continuous Measurement
147+
148+
Every repository — including `home-baseline` and every Level-2 workspace — MUST maintain a living statistics ledger at `docs/project-statistics.md`.
149+
150+
Mandatory content and update rules:
151+
152+
- **Fortschreibungsprotokoll**: chronological table (oldest entry first, newest last) recording cumulative lines, active days, and commit count at each milestone.
153+
- **Gesamtstatistik**: always the final top-level section; includes compact ASCII-only diagrams (artefakt mix, phase volume, speedup factors, manual-reference comparison).
154+
- **Update triggers**: after each completed Spec-Kit implementation phase, after each merged feature, or when explicitly requested.
155+
- **Reference baselines**:
156+
- Manual reference: `80` lines/workday (conservative) — project-specific Thorsten-Solo baseline documented in `AGENTS.md`.
157+
- TVöD workday: `7.8 h` (`7h 48m`). Month: `21.5` workdays. Vacation: 30 days until end of 2026, 31 days from 2027 onwards.
158+
- **Acceleration factor** = blended repository speedup — delivery density against manual reference, **not** stopwatch time.
159+
- **Diagram format**: compact ASCII-only; each diagram followed by a CEFR-B2 bilingual explanation (DE + EN).
160+
- **Consistency rule**: When statistics methodology or shared guidance changes, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, and `.github/copilot-instructions.md` MUST be updated together in the same commit.
161+
162+
The bootstrap scripts (`bootstrap-project.sh` / `.ps1`) MUST create an initial `docs/project-statistics.md` stub at project creation time. `docs/` MUST be whitelisted in every project `.gitignore`.
163+
164+
**Rationale**: Blended speedup metrics are educational for developers and apprentices. They make the productivity impact of AI-assisted workflows visible and comparable across projects. A living ledger that accumulates over the project lifetime is the only reliable source of this data.
121165

122166
## Script & Code Conventions
123167

@@ -129,10 +173,16 @@ Coding style rules that apply to all scripts in this repository:
129173
- **Indentation**: 2 spaces in Bash, 4 spaces in PowerShell
130174
- **Filenames**: kebab-case (e.g., `bootstrap-workspace.sh`)
131175
- **PowerShell parameters**: PascalCase (e.g., `-WorkspaceName`, `-WhatIf`)
176+
- **PowerShell naming**: Use the standard `Verb-Noun` pattern for functions and Cmdlets (e.g., `New-HBWorkspace`, `Set-HBSettings`).
132177
- **Bash variables**: lowercase_underscore (e.g., `repo_name`)
178+
- **Documentation**:
179+
- Bash scripts MUST have a corresponding man-page in `docs/man/` (section 1).
180+
- PowerShell scripts MUST include complete comment-based help (`.SYNOPSIS`, `.DESCRIPTION`, etc.).
181+
- Both MUST be bilingual (DE / EN) or consistent with existing script headers.
133182
- **User-facing messages**: German primary (`Fehler:`, `Verzeichnis nicht gefunden`);
134183
English is acceptable in code comments
135184
- **Visual output**: box-drawing characters (╔, ║, ╚, ✓, →) for structured console blocks
185+
- **End-of-options sentinel**: Bash scripts that accept positional arguments MUST support `--` to terminate option parsing, allowing names that start with `-` (e.g., `teardown-workspace.sh -- -myworkspace`)
136186

137187
## Commit & Pull Request Standards
138188

@@ -147,6 +197,7 @@ Coding style rules that apply to all scripts in this repository:
147197
- Manual verification commands run (with `--dry-run` / `-WhatIf` output)
148198
- Sample console output when user-visible output changes
149199
- Explicit security risk statement for any change touching hook or scanner logic
200+
- **Lastenheft rename on feature completion**: When a feature's implementation is fully merged, the corresponding `Lastenheft_*.md` MUST be renamed via `bash scripts/rename-lastenheft.sh <LH-file> <branch-name>` (macOS/Linux) or `pwsh scripts/rename-lastenheft.ps1 -File <LH-file> -BranchName <branch-name>` (Windows). This stamps the feature branch name onto the filename and marks the Lastenheft as archived. The rename commit MUST be included in the final tasks.md as the last step of the Polish phase.
150201

151202
## Governance
152203

@@ -182,7 +233,7 @@ allowed path.
182233
per-agent operational guidance. This constitution is the authoritative policy
183234
layer above all agent-specific files.
184235

185-
**Version**: 1.1.0 | **Ratified**: 2026-03-31 | **Last Amended**: 2026-03-31
236+
**Version**: 1.4.0 | **Ratified**: 2026-03-31 | **Last Amended**: 2026-04-12
186237

187238
<!-- EN: constitution.md placeholder
188239
[DE-Zusammenfassung: constitution.md beschreibt die Prinzipien und Standards für alle home-baseline Workspaces.]

0 commit comments

Comments
 (0)