Skip to content

Commit dde9b1c

Browse files
committed
chore: make version/issue/milestone/project tracking a standing rule across harnesses
1 parent bbfbc1a commit dde9b1c

5 files changed

Lines changed: 96 additions & 3 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
description: Version & issue tracking — every change gets a SemVer class, an issue with bug|enhancement label, a major/minor milestone, and a card on project 124
3+
alwaysApply: true
4+
---
5+
6+
## Version & Issue Tracking (mandatory)
7+
8+
Every change we work on is tracked. When you start a piece of work (and before you
9+
finish it):
10+
11+
1. **Classify the SemVer bump** — **major** (breaking), **minor** (new
12+
backward-compatible feature), or **patch** (bug fix / no API change).
13+
2. **Milestone — major & minor only.** Ensure a milestone `vX.Y.0` exists for the
14+
target minor/major; create it if missing. **Patches never get their own
15+
milestone** — attach them to their minor's milestone (`vX.Y.0`).
16+
3. **Issue — every change, patches included.** Create a GitHub issue, labelled
17+
**`bug`** (patch / fix) or **`enhancement`** (feature / minor / major), assigned
18+
to the target major/minor milestone.
19+
4. **Project board.** Add the issue to project **124**
20+
(`github.project_number` in `project.config.yaml`) and set **Status**
21+
(`In progress` while working, `Done` when shipped).
22+
5. **Link & close.** The PR references the issue (`Closes #N`); merging closes it.
23+
On release the milestone version equals the release tag.
24+
6. **No Claude/Anthropic attribution** anywhere — commits, PR bodies, issues,
25+
releases.
26+
27+
Mechanics live in the maple skills — use them, don't hand-roll:
28+
`gh-labels-milestones` (milestone/label upsert), `gh-issues` (create/label/
29+
milestone), `gh-projects` (board add + Status). Config: `project.config.yaml → github`.

.github/copilot-instructions.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,3 +203,16 @@ Insert design sub-pipeline before IMPLEMENT:
203203
| Design system | `docs/design/system/components/` |
204204

205205
Never write design artifacts to `docs/wireframes/`, `docs/identity/`, `docs/mockups/`, or any location outside `docs/design/`.
206+
207+
## Version & Issue Tracking (mandatory)
208+
209+
Every change is tracked automatically. When you start a piece of work (and before you finish it):
210+
211+
1. **Classify the SemVer bump** — major (breaking) / minor (new backward-compatible feature) / patch (bug fix, no API change).
212+
2. **Milestone — major & minor only.** Ensure `vX.Y.0` exists (create if missing). **Patches never get their own milestone** — attach to their minor's `vX.Y.0`.
213+
3. **Issue — every change, patches included.** Labelled **`bug`** (patch/fix) or **`enhancement`** (feature), assigned to the target major/minor milestone.
214+
4. **Project 124** — add the issue and set **Status** (`In progress``Done`). Board id in `project.config.yaml → github`.
215+
5. **Link & close** — the PR says `Closes #N`; on release the milestone version equals the release tag.
216+
6. **No Claude/Anthropic attribution** anywhere — commits, PR bodies, issues, releases.
217+
218+
Mechanics via the maple skills: `gh-labels-milestones`, `gh-issues`, `gh-projects`.

AGENTS.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,19 @@ All agents use: `make build`, `make test`, `make test-integration`, `make test-e
7373
- Branch naming: `feat/{slug}`, `fix/{slug}`
7474
- Squash merge to main
7575
- Humanized commit messages; **no `Co-Authored-By` lines**.
76+
- **No Claude/Anthropic attribution** anywhere — commits, PR bodies, issues, releases.
77+
78+
## Version & Issue Tracking (mandatory)
79+
Every change is tracked automatically. When you start a piece of work (and before you
80+
finish it):
81+
1. **Classify the SemVer bump** — major (breaking) / minor (new backward-compatible
82+
feature) / patch (bug fix, no API change).
83+
2. **Milestone — major & minor only.** Ensure `vX.Y.0` exists (create if missing).
84+
**Patches never get their own milestone** — attach to their minor's `vX.Y.0`.
85+
3. **Issue — every change, patches included.** Labelled **`bug`** (patch/fix) or
86+
**`enhancement`** (feature), assigned to the target major/minor milestone.
87+
4. **Project 124** — add the issue and set **Status** (`In progress``Done`).
88+
Board id in `project.config.yaml → github`.
89+
5. **Link & close** — PR says `Closes #N`; on release the milestone == the tag.
90+
91+
Mechanics via the maple skills: `gh-labels-milestones`, `gh-issues`, `gh-projects`.

CLAUDE.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Pipeline rules:
5050
4. QA writes failing tests. Implementation agents make them pass.
5151
5. 3 consecutive failures on any task → escalate to human.
5252
6. `make test-all` must pass before Phase 8 gate.
53-
7. Every feature gets a GitHub issue. Agents update it via `gh` CLI.
53+
7. Every change gets a GitHub issue, milestone, and project card — see **Version & Issue Tracking** below.
5454
8. Conventional Commits: `feat:`, `fix:`, `test:`, `docs:`, `infra:`, `refactor:`.
5555

5656
**Gate enforcement:**
@@ -68,6 +68,32 @@ Pipeline rules:
6868

6969
---
7070

71+
## Version & Issue Tracking (mandatory)
72+
73+
Every change we work on is tracked — this is automatic, not optional. When you start
74+
a piece of work (and before you finish it):
75+
76+
1. **Classify the SemVer bump****major** (breaking), **minor** (new
77+
backward-compatible feature), or **patch** (bug fix / no API change).
78+
2. **Milestone — major & minor only.** Ensure a milestone `vX.Y.0` exists for the
79+
target minor/major; create it if missing. **Patches never get their own
80+
milestone** — attach them to their minor's milestone (`vX.Y.0`).
81+
3. **Issue — every change, patches included.** Create a GitHub issue, labelled
82+
**`bug`** (patch / fix) or **`enhancement`** (feature / minor / major), assigned to
83+
the target major/minor milestone.
84+
4. **Project board.** Add the issue to project **124**
85+
(`github.project_number` in `project.config.yaml`) and set **Status**
86+
(`In progress` while working, `Done` when shipped).
87+
5. **Link & close.** The PR references the issue (`Closes #N`); merging closes it. On
88+
release the milestone version equals the release tag.
89+
6. **No Claude/Anthropic attribution** anywhere — commits, PR bodies, issues, releases.
90+
91+
Use the maple skills for the mechanics, don't hand-roll: `gh-labels-milestones`
92+
(milestone/label upsert), `gh-issues` (create/label/milestone), `gh-projects` (board
93+
add + Status). Board and label config live in `project.config.yaml → github`.
94+
95+
---
96+
7197
## Communication Style
7298

7399
- Short sentences. Structured formatting (bullets, tables, sections).

project.config.yaml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,14 @@ design:
2525
token_format: dtcg # W3C DTCG
2626

2727
github:
28-
project_number: null
29-
project_node_id: null
28+
project_number: 124
29+
project_node_id: "PVT_kwHOAAR2vs4BcZgS"
30+
status_field_id: "PVTSSF_lAHOAAR2vs4BcZgSzhXCpSM"
31+
# Versioning & tracking (mandatory — see the "Version & Issue Tracking" section in
32+
# CLAUDE.md / AGENTS.md). Every change = a GitHub issue, labelled bug|enhancement,
33+
# on project 124 with a Status. Milestones exist only for major/minor versions
34+
# (vX.Y.0); patches attach to their minor's milestone, never their own.
35+
labels:
36+
fix: "bug" # patch / bugfix
37+
feature: "enhancement" # minor / major
38+
milestone_granularity: "minor" # major & minor only — never per-patch

0 commit comments

Comments
 (0)