Skip to content

Commit 789f1c3

Browse files
authored
fix(docs): remove stale 2026-07-05 merge-order note from ROADMAP.md (#103)
## What Removes the dead "Merge order & shared-file coupling (2026-07-05)" note from `docs/features/ROADMAP.md`. ## Why The note was a one-time sequencing instruction for PRs #8, #9, #10 (features 01-03), which shared overlapping files during their initial merge window. All three merged on 2026-07-05, closing that window. The note has had zero forward-looking value since, yet was still being read on every `workflow-status`/`design-feature` invocation. ## Evidence - `gh pr view 8/9/10 --json state,mergedAt` — all three confirmed `MERGED` on 2026-07-05. ## Decision Chose to **delete** the note rather than relocate it to `CHANGELOG.md` or `docs/workflow/MIGRATION.md` (the issue left this to the maintainer's call): git history already preserves it verbatim, so relocating would only duplicate that history without adding value. ## SPEC `docs/fix/101-stale-roadmap-merge-order-note/SPEC.md` Closes #101
2 parents a2d7777 + 8d6eb25 commit 789f1c3

3 files changed

Lines changed: 152 additions & 12 deletions

File tree

docs/features/ROADMAP.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,6 @@ every row must have a folder (or be explicitly marked "scheduled").
2626
| 16 | `nan-model-guidance` | done · [#56](https://github.com/gtrabanco/agentic-workflow/pull/56) | — (docs-only touch on 04 10 12, all merged) | Opportunistic (not backlog-chained, S): corrects the README's NaN.builders/OpenAI-compatible provider guidance against that provider's own API reference — the prior "1:1 uniform effort dial" claim was false. Adds a per-model reasoning-control matrix + `effort:` mapping, demotes the model with unvalidated/XML-format tool calling out of the agentic-execution ladder, adds a GLM-5.2 catalog-verification caveat and per-key rate/concurrency limits. `orchestration-envelope` (1.2.0, minor) + `ORCHESTRATION.md` gain a structured-outputs shortcut for forcing the driver-injected envelope where the provider supports strict JSON schema, repair loop as fallback. `ship-roadmap` (2.2.1, patch) gains a Portability concurrency guardrail. `GOLDEN_FIXTURE.md` gains a tool-calling smoke test as a model precondition for the executor path |
2727
| 17 | `finding-severity-routing` | done · [#57](https://github.com/gtrabanco/agentic-workflow/pull/57) | — (soft: 37 docs the manual ladder) | Issue [#49](https://github.com/gtrabanco/agentic-workflow/issues/49) (M): surface per-finding severity so the fold cycle can route the fixing model per finding. `review-change`/`audit-pr` compute a `Sev` per finding but persist nothing; this adds a per-unit **fix-now fold ledger** (`review-findings.md`, schema `\| id \| file:line \| axis \| severity \| class \| route \| folded \|`) the writer skills append to (fix-now only; non-fix-now stays with `triage-issue`), `execute-phase`'s fold cycle ticks (`folded: no→yes`), and `workflow-status` reads (read-only) to emit `findings.fix_now[]` items carrying `severity` + a derived `suggested_tier` (severity `high` OR subtle axis → `strong`; else `cheap`, reusing `next.tier`'s vocabulary). `next.tier` unchanged. Schema package mirrored (item shape + version bump) same PR; `template/` mirrors the ledger convention. Resolves #49's two scope questions (D1 new ledger; D2 verbatim severity + derived tier) |
2828

29-
> **Merge order & shared-file coupling (2026-07-05).** Features 01–03 are
30-
> functionally independent (no `Depends on:`), but their PRs edit overlapping
31-
> files — `skills/init-workspace/SKILL.md` (01: Docs site round → 1.7.0; 02:
32-
> Performance tooling round → 1.8.0), `skills/execute-phase/SKILL.md` (01 →
33-
> 1.13.0; 03 → 1.13.1), `template/CLAUDE.md`, and both CHANGELOGs. **Merge in
34-
> PR order: [#8](https://github.com/gtrabanco/agentic-workflow/pull/8)
35-
> [#9](https://github.com/gtrabanco/agentic-workflow/pull/9)
36-
> [#10](https://github.com/gtrabanco/agentic-workflow/pull/10)**, resolving
37-
> conflicts by **keeping both sides' additions** (both interview rounds, both
38-
> changelog rows, the higher version number). A "take theirs/ours" resolution
39-
> silently drops one feature's content while other skills still reference it.
40-
4129
## Status legend
4230

4331
The pipeline's single ground-truth state machine — every sensor and executor
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# fix/101-stale-roadmap-merge-order-note
2+
3+
## Goal
4+
5+
Remove the dead "Merge order & shared-file coupling (2026-07-05)" note from
6+
`docs/features/ROADMAP.md` — a one-time sequencing instruction for PRs #8,
7+
#9, #10 (all merged long ago) that now has zero forward-looking value and is
8+
read on every `workflow-status`/`design-feature` invocation.
9+
10+
## Issue
11+
12+
`#101` — GitHub issue. The PR closes it via `Closes #101` in the body.
13+
14+
## Branch
15+
16+
`fix/101-stale-roadmap-merge-order-note`
17+
18+
## Depends on
19+
20+
— (independent)
21+
22+
## Root cause
23+
24+
The note was added as a one-time sequencing instruction for the initial
25+
three-feature merge window (2026-07-05, features 01-03 sharing overlapping
26+
files). It was never cleaned up once the window closed — no mechanism
27+
enforces removing a one-time note after its triggering PRs merge.
28+
29+
## Detected in
30+
31+
`/product-audit` run on 2026-07-19 (Roadmap coherence dimension). Confirmed
32+
via `gh pr view 8/9/10 --json state,mergedAt` — all three `MERGED` on
33+
2026-07-05, closing the file-coupling window the note existed to protect.
34+
35+
## Scope
36+
37+
### In scope
38+
39+
- Remove the "Merge order & shared-file coupling (2026-07-05)" note
40+
(`docs/features/ROADMAP.md` lines 29-39) in its entirety.
41+
42+
### Out of scope
43+
44+
- `docs/fix/README.md`'s 21 stale merged-PR rows — tracked separately in
45+
`docs/fix/100-stale-fix-index-rows/`.
46+
- Any other content in `docs/features/ROADMAP.md` (the Features table, the
47+
status legend, etc.) — untouched.
48+
49+
## Acceptance
50+
51+
- [x] `docs/features/ROADMAP.md` no longer contains the
52+
"Merge order & shared-file coupling (2026-07-05)" note.
53+
- [x] The Features table (rows 01-17) and Status legend are byte-for-byte
54+
unchanged aside from the removed note.
55+
- [x] The note remains recoverable from git history (no `--amend`/force-push
56+
involved in this fix).
57+
58+
## Phases
59+
60+
Execution ledger — `execute-phase --fix` runs **one phase per invocation**
61+
and ticks tasks here.
62+
63+
### Phase-lint (authoritative copy — keep in sync with `docs/features/_TEMPLATE/SPEC.md` `### Phases`)
64+
65+
Every implementation phase below must pass all 8 boxes before it is emitted
66+
(planner skills) or executed (`execute-phase` pre-flight). Fail-closed: any
67+
unticked box blocks emission/execution until the phase is re-cut or split.
68+
69+
- [ ] Title names ONE deliverable — FAIL if it joins nouns with `+`, `,`,
70+
`&`, `and`/`y`, or `/`.
71+
- [ ] One declared layer — each phase declares exactly one of the fixed enum
72+
`schema/db | domain | api | ui | config/infra | docs | hardening |
73+
close-out`; FAIL if any task's target file belongs to another. Tests
74+
for the phase's own layer belong to the phase; a test-only phase
75+
declares `hardening`.
76+
- [ ] ≤ 8 tasks (close-out phase: ≤ 10, only the literal close-out chain).
77+
- [ ] One checkbox = one deliverable — FAIL if a task contains a `` chain
78+
of implementation steps, enumerates > 3 cases/scenarios, or creates
79+
> 1 file of distinct concerns.
80+
- [ ] Zero decision words — FAIL on `Decide`, `choose`, `OR` between
81+
alternatives, `If … then <change scope>`.
82+
- [ ] No conditional scope mutation — a task may not move work between
83+
phases at runtime.
84+
- [ ] No external/manual gates inside implementation phases —
85+
human/out-of-repo verifications live in the hardening/close-out phase,
86+
marked `manual`.
87+
- [ ] Machine-checkable done-when — every phase ends with one verifiable
88+
invariant (a command + expected outcome).
89+
90+
### P1 — Remove the stale merge-order note
91+
92+
Layer: `docs`. Done-when:
93+
`grep -c 'Merge order & shared-file coupling' docs/features/ROADMAP.md`
94+
returns `0`.
95+
96+
- [x] Delete the "Merge order & shared-file coupling (2026-07-05)" blockquote
97+
from `docs/features/ROADMAP.md` (Features table and Status legend
98+
untouched) — evidence: `grep -c 'Merge order & shared-file coupling'
99+
docs/features/ROADMAP.md``0`
100+
101+
### P2 — Hardening & PR
102+
103+
- [ ] Re-run the project's full verification gate (commands + exit codes pasted)
104+
- [ ] Pending-docs check: `git status --porcelain -- docs/` → empty
105+
- [ ] Set the fix-index row status to `done` and commit the flip
106+
- [ ] `git push`
107+
- [ ] Open the PR (`gh pr create --body-file <path>` — body written as a
108+
Markdown file, real backticks, never inline `--body`/heredoc) and
109+
PRINT THE PR URL in the chat; the body includes `Closes #101`
110+
- [ ] Update the fix-index row to `done · [#<pr>](<pr-url>)`
111+
- [ ] Commit `docs: link PR #101` and push
112+
113+
## Testing
114+
115+
Docs-only change; no test layer applies. Verification is the `grep`
116+
done-when above plus a visual diff review confirming only the note block was
117+
removed.
118+
119+
## Rollback
120+
121+
Single `git revert` of the PR commit — the note is recoverable from git
122+
history at any time. No data-side cleanup (documentation-only).
123+
124+
## Status
125+
126+
`done`
127+
128+
## Cross-issue notes
129+
130+
None found blocking, blocked-by, overlapping, or absorbable via
131+
`gh issue list --state open` / `gh pr list --state open` at drafting time,
132+
other than sibling fix #100 (different file, different defect class — kept
133+
separate per the shared-root-cause checklist).
134+
135+
## Effort
136+
137+
XS (1 commit, ≤ 1h) — mechanical deletion of one dead blockquote.
138+
139+
## Decisions made during drafting
140+
141+
- Chose **delete** over **relocate** (the issue's acceptance criteria leaves
142+
this to the maintainer). The note is a one-time, closed-window instruction
143+
with zero remaining audience; git history and `git log -p` on this file
144+
already preserve it verbatim, so relocating it into `CHANGELOG.md` or
145+
`docs/workflow/MIGRATION.md` would only duplicate that history without
146+
adding value. If the user disagrees, this is trivially reverted /
147+
redirected before merge.
148+
- Did not merge with #100 into one unit: different files
149+
(`docs/features/ROADMAP.md` vs `docs/fix/README.md`) and different defect
150+
classes (a stale one-time merge-order note vs. stale merged-PR rows) —
151+
fails the shared-root-cause checklist's first box.

docs/fix/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ this table — history lives in git log + closed issues.
1515
| Folder | Topic | Status | Depends on | Issue |
1616
| ------ | ----- | ------ | ---------- | ----- |
1717
| `100-stale-fix-index-rows` | Drop 21 stale rows from this table pointing to already-merged PRs | done · [#102](https://github.com/gtrabanco/agentic-workflow/pull/102) || [#100](https://github.com/gtrabanco/agentic-workflow/issues/100) |
18+
| `101-stale-roadmap-merge-order-note` | Remove the dead 2026-07-05 merge-order note for PRs #8/#9/#10 (all merged) from `docs/features/ROADMAP.md` | done · [#103](https://github.com/gtrabanco/agentic-workflow/pull/103) || [#101](https://github.com/gtrabanco/agentic-workflow/issues/101) |
1819

1920
---
2021

0 commit comments

Comments
 (0)