Skip to content

Commit fc0ef94

Browse files
authored
Merge pull request #313 from flyingrobots/feat/delivery-cycle-governance
Docs/governance cycle landed; next enabling cycle is #312 git-warp audit and upgrade.
2 parents 8bc192e + 55be077 commit fc0ef94

11 files changed

Lines changed: 484 additions & 21 deletions

AGENTS.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
- Documentation map and canonical docs: [docs/README.md](docs/README.md)
77
- Product frame: [docs/design/git-mind.md](docs/design/git-mind.md)
88
- Planning governance: [docs/adr/ADR-0005.md](docs/adr/ADR-0005.md)
9+
- Delivery governance: [docs/adr/ADR-0006.md](docs/adr/ADR-0006.md)
10+
- Repo fixture strategy: [docs/design/repo-fixture-strategy.md](docs/design/repo-fixture-strategy.md)
911
- CLI/user reference: [GUIDE.md](GUIDE.md)
1012

1113
## FORBIDDEN ACTIONS
@@ -28,6 +30,8 @@
2830
- **YOU MUST** use IBM Design Thinking when framing substantial product work
2931
- **YOU MUST** identify the sponsor user, job to be done, and relevant Hill(s) when planning
3032
- **YOU MUST** use Playbacks to judge whether work actually moved a Hill
33+
- **YOU MUST** treat tests as the executable form of design acceptance criteria for substantial work
34+
- **YOU MUST** prefer canonical repo fixtures over ad hoc temp-repo setup when testing repository-shaped behavior
3135
- **YOU MUST** tag all memories saved to your memory banks with at least `#git-mind`
3236
- **YOU MUST** include the POSIX timestamp (via `$(date +%s)`) in memory file names
3337
- **YOU MUST** document significant decisions or events
@@ -63,19 +67,23 @@
6367
### 2.2. DO THE JOB
6468

6569
1. Green the builds, green the tests
66-
2. Drop micro-commits as you complete steps — always use conventional commit format
67-
3. Drop a SITREP if you hit a snag or need input
68-
4. Drop a DEVLOG for ideas, observations, or anything you want to remember
69-
5. Use your memory banks freely
70+
2. Translate design acceptance criteria into failing tests before implementation when behavior is changing substantially
71+
3. Prefer shared repo fixtures (base repos + overlays) where repository history or artifact shape matters
72+
4. Drop micro-commits as you complete steps — always use conventional commit format
73+
5. Drop a SITREP if you hit a snag or need input
74+
6. Drop a DEVLOG for ideas, observations, or anything you want to remember
75+
7. Use your memory banks freely
7076

7177
> **ALWAYS** overwrite files, **NEVER** create secondary copies — that creates confusion and tech debt.
7278
7379
### 2.3. FINISH THE JOB
7480

7581
1. Green the builds, green the tests
76-
2. Git commit (do NOT use `git add -A`)
77-
3. Ask the user if they want you to push and open a PR
78-
4. Drop a SITREP as you finish
82+
2. Run a playback / retrospective and capture backlog items or COOL IDEAS explicitly
83+
3. Update `README.md` if shipped reality changed
84+
4. Git commit (do NOT use `git add -A`)
85+
5. Ask the user if they want you to push and open a PR
86+
6. Drop a SITREP as you finish
7987

8088
---
8189

CLAUDE.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
- Documentation map and canonical docs: [docs/README.md](docs/README.md)
77
- Product frame: [docs/design/git-mind.md](docs/design/git-mind.md)
88
- Planning governance: [docs/adr/ADR-0005.md](docs/adr/ADR-0005.md)
9+
- Delivery governance: [docs/adr/ADR-0006.md](docs/adr/ADR-0006.md)
10+
- Repo fixture strategy: [docs/design/repo-fixture-strategy.md](docs/design/repo-fixture-strategy.md)
911
- CLI/user reference: [GUIDE.md](GUIDE.md)
1012

1113
## FORBIDDEN ACTIONS
@@ -28,6 +30,8 @@
2830
- **YOU MUST** use IBM Design Thinking when framing substantial product work
2931
- **YOU MUST** identify the sponsor user, job to be done, and relevant Hill(s) when planning
3032
- **YOU MUST** use Playbacks to judge whether work actually moved a Hill
33+
- **YOU MUST** treat tests as the executable form of design acceptance criteria for substantial work
34+
- **YOU MUST** prefer canonical repo fixtures over ad hoc temp-repo setup when testing repository-shaped behavior
3135
- **YOU MUST** tag all memories saved to your memory banks with at least `#git-mind`
3236
- **YOU MUST** include the POSIX timestamp (via `$(date +%s)`) in memory file names
3337
- **YOU MUST** document significant decisions or events
@@ -63,19 +67,23 @@
6367
### 2.2. DO THE JOB
6468

6569
1. Green the builds, green the tests
66-
2. Drop micro-commits as you complete steps — always use conventional commit format
67-
3. Drop a SITREP if you hit a snag or need input
68-
4. Drop a DEVLOG for ideas, observations, or anything you want to remember
69-
5. Use your memory banks freely
70+
2. Translate design acceptance criteria into failing tests before implementation when behavior is changing substantially
71+
3. Prefer shared repo fixtures (base repos + overlays) where repository history or artifact shape matters
72+
4. Drop micro-commits as you complete steps — always use conventional commit format
73+
5. Drop a SITREP if you hit a snag or need input
74+
6. Drop a DEVLOG for ideas, observations, or anything you want to remember
75+
7. Use your memory banks freely
7076

7177
> **ALWAYS** overwrite files, **NEVER** create secondary copies — that creates confusion and tech debt.
7278
7379
### 2.3. FINISH THE JOB
7480

7581
1. Green the builds, green the tests
76-
2. Git commit (do NOT use `git add -A`)
77-
3. Ask the user if they want you to push and open a PR
78-
4. Drop a SITREP as you finish
82+
2. Run a playback / retrospective and capture backlog items or COOL IDEAS explicitly
83+
3. Update `README.md` if shipped reality changed
84+
4. Git commit (do NOT use `git add -A`)
85+
5. Ask the user if they want you to push and open a PR
86+
6. Drop a SITREP as you finish
7987

8088
---
8189

CONTRIBUTING.md

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,24 @@ Canonical planning references:
3131
- [docs/design/git-mind.md](docs/design/git-mind.md)
3232
- [ROADMAP.md](ROADMAP.md)
3333
- [docs/adr/ADR-0005.md](docs/adr/ADR-0005.md)
34+
- [docs/adr/ADR-0006.md](docs/adr/ADR-0006.md)
35+
36+
## Delivery Cycle
37+
38+
Git Mind uses a design-to-test delivery cycle.
39+
40+
For substantial work:
41+
42+
1. write or update the relevant design artifact
43+
2. make the acceptance criteria explicit
44+
3. translate those acceptance criteria into failing tests
45+
4. implement until the tests are green
46+
5. run a playback / retrospective and capture backlog follow-ups
47+
6. update [README.md](README.md) if user-facing reality changed
48+
7. open the PR, land it, and capture review-cycle learnings back into the backlog
49+
50+
This is not just for happy paths.
51+
Tests should cover edge cases, failure modes, and fuzz/stress behavior when the design risk justifies it.
3452

3553
GitHub issues are the execution backlog.
3654
GitHub milestones are not the primary planning surface for this repository.
@@ -53,16 +71,18 @@ npm test
5371
## Making changes
5472

5573
1. Create a branch from `main` (or the current development branch)
56-
2. Make your changes
57-
3. Run the tests: `npm test`
58-
4. Commit using [Conventional Commits](https://www.conventionalcommits.org/):
74+
2. For substantial work, start from a design artifact and acceptance criteria
75+
3. Add or update failing tests before implementation when behavior is changing
76+
4. Make your changes
77+
5. Run the tests: `npm test`
78+
6. Commit using [Conventional Commits](https://www.conventionalcommits.org/):
5979
- `feat:` — new feature
6080
- `fix:` — bug fix
6181
- `docs:` — documentation only
6282
- `chore:` — maintenance, tooling
6383
- `refactor:` — code change that neither fixes a bug nor adds a feature
6484
- `test:` — adding or updating tests
65-
5. Open a pull request
85+
7. Open a pull request
6686

6787
## Commit messages
6888

@@ -94,7 +114,15 @@ npm test # single run
94114
npm run test:watch # watch mode
95115
```
96116

97-
Each test creates a temporary Git repo in the OS temp directory and cleans up after itself.
117+
Testing doctrine:
118+
119+
- tests are the executable form of design acceptance criteria
120+
- cover golden paths, edge cases, failure cases, and fuzz/stress behavior where warranted
121+
- prefer repository-shaped fixtures for repository-shaped behavior
122+
- avoid copying `mkdtemp + git init + config` boilerplate across suites when a shared fixture helper would do better
123+
124+
Canonical fixture guidance lives in [docs/design/repo-fixture-strategy.md](docs/design/repo-fixture-strategy.md).
125+
The intended direction is a fluent repo builder with reusable base repos and scenario overlays.
98126

99127
## Project structure
100128

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,24 @@ Canonical planning sources:
3535
- [docs/design/git-mind.md](docs/design/git-mind.md)
3636
- [ROADMAP.md](ROADMAP.md)
3737
- [docs/adr/ADR-0005.md](docs/adr/ADR-0005.md)
38+
- [docs/adr/ADR-0006.md](docs/adr/ADR-0006.md)
39+
40+
## Delivery Cycle
41+
42+
Git Mind officially uses a design-to-test cycle.
43+
44+
That means:
45+
46+
1. frame the work in a design artifact using sponsor user, job to be done, Hill, and acceptance criteria
47+
2. translate those acceptance criteria into failing tests
48+
3. cover not only the golden path, but also edge cases, failure modes, and fuzz/stress when warranted
49+
4. implement until the tests are green
50+
5. run a playback / retrospective and capture backlog items and follow-on ideas explicitly
51+
6. update `README.md` if product reality changed
52+
7. land the PR, then capture review-cycle learnings back into the backlog
53+
54+
For repository-shaped behavior, prefer canonical repo fixtures over one-off temporary repo setup.
55+
See [docs/design/repo-fixture-strategy.md](docs/design/repo-fixture-strategy.md) and [docs/adr/ADR-0006.md](docs/adr/ADR-0006.md).
3856

3957
## What Git Mind Is For
4058

@@ -154,8 +172,10 @@ Canonical docs:
154172
- [GRAPH_SCHEMA.md](GRAPH_SCHEMA.md)
155173
- [ROADMAP.md](ROADMAP.md)
156174
- [docs/adr/ADR-0005.md](docs/adr/ADR-0005.md)
175+
- [docs/adr/ADR-0006.md](docs/adr/ADR-0006.md)
157176
- [docs/VISION_NORTH_STAR.md](docs/VISION_NORTH_STAR.md)
158177
- [docs/design/git-mind.md](docs/design/git-mind.md)
178+
- [docs/design/repo-fixture-strategy.md](docs/design/repo-fixture-strategy.md)
159179
- [docs/adr/](docs/adr/)
160180

161181
## License

ROADMAP.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ Git Mind now uses:
5050
- IBM Hills to define the strategic outcomes
5151
- Playbacks to assess whether recent work actually moved a Hill
5252
- GitHub issues to track concrete implementation work
53+
- the design-to-test delivery cycle in [ADR-0006](docs/adr/ADR-0006.md) to move work from design acceptance criteria into implementation
5354

5455
This is not an informal preference.
5556
It is the repository's official planning model per [ADR-0005](docs/adr/ADR-0005.md).
@@ -89,6 +90,20 @@ Before significant work is accepted into an active Hill or supporting lane, we s
8990

9091
If those answers are fuzzy, the work is not ready for planning commitment yet.
9192

93+
## Execution Cycle
94+
95+
Substantial delivery work should follow the repository's canonical cycle from [ADR-0006](docs/adr/ADR-0006.md):
96+
97+
1. write or revise the design artifact
98+
2. turn acceptance criteria into failing tests
99+
3. use canonical repo fixtures where repository-shaped behavior is under test
100+
4. implement until the tests are green
101+
5. run a playback / retrospective
102+
6. update `README.md` if shipped reality changed
103+
7. land the PR and capture review learnings back into the backlog
104+
105+
The first Hill 1 implementation cycles should explicitly invest in the testing substrate needed to make bootstrap behavior executable and trustworthy.
106+
92107
## Current Focus: Hill 1 Semantic Bootstrap
93108

94109
Status:
@@ -110,12 +125,14 @@ Goal:
110125
Deliverables:
111126

112127
- bootstrap command contract with default write behavior and `--dry-run`
128+
- canonical repo fixture substrate for repository-shaped bootstrap scenarios (issue [#311](https://github.com/flyingrobots/git-mind/issues/311))
113129
- repo-local artifact inventory and scan boundaries
114130
- first-pass entity extraction for files, docs, ADRs, modules, commits, and repo-local issue/PR references
115131
- first-pass relationship inference for `documents`, `references`, `touches`, `groups`, and conservative `implements`
116132
- provenance and confidence surfacing for inferred assertions
117133
- a reviewable follow-up path for weak-confidence bootstrap output
118-
- implementation issues `#304` through `#307` moved into merged runnable behavior
134+
- acceptance criteria translated into failing executable tests (issue [#310](https://github.com/flyingrobots/git-mind/issues/310))
135+
- implementation issues `#304` through `#307`, plus enabling test issues [#310](https://github.com/flyingrobots/git-mind/issues/310) and [#311](https://github.com/flyingrobots/git-mind/issues/311), moved into merged runnable behavior
119136

120137
Exit criteria:
121138

@@ -129,8 +146,9 @@ Primary references:
129146

130147
- [docs/design/git-mind.md](docs/design/git-mind.md)
131148
- [docs/design/h1-semantic-bootstrap.md](docs/design/h1-semantic-bootstrap.md)
149+
- [docs/design/repo-fixture-strategy.md](docs/design/repo-fixture-strategy.md)
132150
- issue [#303](https://github.com/flyingrobots/git-mind/issues/303)
133-
- issues [#304](https://github.com/flyingrobots/git-mind/issues/304), [#305](https://github.com/flyingrobots/git-mind/issues/305), [#306](https://github.com/flyingrobots/git-mind/issues/306), [#307](https://github.com/flyingrobots/git-mind/issues/307)
151+
- issues [#304](https://github.com/flyingrobots/git-mind/issues/304), [#305](https://github.com/flyingrobots/git-mind/issues/305), [#306](https://github.com/flyingrobots/git-mind/issues/306), [#307](https://github.com/flyingrobots/git-mind/issues/307), [#310](https://github.com/flyingrobots/git-mind/issues/310), and [#311](https://github.com/flyingrobots/git-mind/issues/311)
134152

135153
---
136154

docs/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ These describe what Git Mind is now and how work should be judged:
1414
- [Hill 1 Semantic Bootstrap Spec](./design/h1-semantic-bootstrap.md) — first executable Hill 1 slice
1515
- [Git Mind North Star](./VISION_NORTH_STAR.md) — longer-form strategic articulation
1616
- [ADR-0005](./adr/ADR-0005.md) — official planning and governance model
17+
- [ADR-0006](./adr/ADR-0006.md) — official delivery cycle and tests-as-spec model
1718

1819
## Canonical Engineering Guardrails
1920

@@ -22,6 +23,7 @@ These define constraints and contracts that remain in force:
2223
- [GRAPH_SCHEMA.md](../GRAPH_SCHEMA.md) — graph contract
2324
- [Architecture Laws](./ARCHITECTURE.md) — non-negotiable engineering laws
2425
- [Review Rubric](./REVIEW_RUBRIC.md) — architectural review gates
26+
- [Repo Fixture Strategy](./design/repo-fixture-strategy.md) — canonical repository-shaped test substrate strategy
2527
- [ADRs](./adr/README.md) — durable architecture decisions
2628
- [Contracts](./contracts/CLI_CONTRACTS.md) and related schemas — machine-facing contracts
2729

@@ -62,6 +64,11 @@ Hills and Playbacks live in:
6264
- [Git Mind Product Frame](./design/git-mind.md)
6365
- [ADR-0005](./adr/ADR-0005.md)
6466

67+
The execution cycle and tests-as-spec rules live in:
68+
69+
- [ADR-0006](./adr/ADR-0006.md)
70+
- [Repo Fixture Strategy](./design/repo-fixture-strategy.md)
71+
6572
GitHub milestones are not the primary planning system for this repository.
6673

6774
## Contributor Rule
@@ -74,3 +81,10 @@ When planning work, start with:
7481
4. playback evidence
7582

7683
Do not start with architecture breadth, an old milestone, or a flat pile of backlog items.
84+
85+
When implementing substantial work, continue with:
86+
87+
1. explicit acceptance criteria
88+
2. failing tests
89+
3. shared repo fixtures where repository behavior matters
90+
4. playback evidence and README reality updates before cycle close

0 commit comments

Comments
 (0)