Skip to content

Commit 94f2dfc

Browse files
montfortclaude
andauthored
docs: Framework 4.10.0 — follow-ups backlog pattern (governance docs) (#112)
Documents the follow-ups backlog convention contributed by the Sentinel adopter via issue #111. Empirically validated in StrangeDaysTech/sentinel CHARTER-12 (47 AILOGs across CHARTER-08 → CHARTER-11). Adopters reaching ~20+ AILOGs benefit from a central registry + per-AILOG drift detection script + agent integration block. This release is docs only — no CLI changes, no schema changes, no audit flow changes. Cristalization as a `devtrail followups` subcommand is deferred until a second adopter validates the pattern. Adds: - dist/.devtrail/00-governance/FOLLOW-UPS-BACKLOG-PATTERN.md (EN, ES, zh-CN) documenting the registry shape, 5 buckets, per-entry schema, drift detection (3 modes), agent integration, adoption walkthrough, reference implementation (Sentinel CHARTER-12 PRs #53/#54), and v0 open questions. - "Patterns" sections in AGENT-RULES.md and QUICK-REFERENCE.md (3 langs) pointing to the new document. Bumps: - dist/dist-manifest.yml to 4.10.0. - Footer versions and adopter doc references from v4.9.0 to v4.10.0 (skill version markers preserved as historical "since" annotations). Closes the upstream side of issue #111 (option A: docs-only adoption). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 9ff614c commit 94f2dfc

27 files changed

Lines changed: 674 additions & 43 deletions

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,28 @@ and this project uses [independent versioning](README.md#versioning) for Framewo
77

88
---
99

10+
## Framework 4.10.0 — Follow-ups backlog pattern (governance docs)
11+
12+
Documents the follow-ups backlog convention contributed by the Sentinel adopter via [issue #111](https://github.com/StrangeDaysTech/devtrail/issues/111). The pattern was empirically validated in `StrangeDaysTech/sentinel` CHARTER-12 (47 AILOGs accumulated across CHARTER-08 → CHARTER-11). Adopters reaching ~20+ AILOGs benefit from a central registry + per-AILOG drift detection script + agent integration in `CLAUDE.md` / `AGENT.md`.
13+
14+
This release is **docs only** — no CLI changes, no schema changes, no audit flow changes. Cristalization as a `devtrail followups` subcommand is deferred until a second adopter validates the pattern.
15+
16+
### Added (Framework)
17+
18+
- **NEW governance pattern document** `FOLLOW-UPS-BACKLOG-PATTERN.md` describing the reproducible convention: registry shape (`.devtrail/follow-ups-backlog.md` with `fully_extracted_ailogs` frontmatter), 5 buckets (`ready` / `time-triggered` / `charter-triggered` / `phase-blocked` / `operational`), per-entry schema (FU-NNN / Origin / Status / Trigger / Destination / Cost / Notes), drift detection script (3 modes: default / `--apply` / `--scan-all`), agent integration block, adoption walkthrough, reference implementation in Sentinel CHARTER-12 (PRs #53/#54), and open questions (bucket heuristic, schema validation, audit-cycle integration, cristalization path).
19+
- **Pointers** added in `AGENT-RULES.md` (new "Patterns" section) and `QUICK-REFERENCE.md` (new "Patterns" table) referencing the new pattern document.
20+
- **Translations** to ES and zh-CN under `dist/.devtrail/00-governance/i18n/{es,zh-CN}/FOLLOW-UPS-BACKLOG-PATTERN.md`.
21+
22+
### Changed (Framework)
23+
24+
- Footer version bumps from `v4.9.0` to `v4.10.0` across governance docs (EN + ES + zh-CN) and version-table references in adopter docs.
25+
26+
### Status
27+
28+
The pattern is **v0** — proven in N=1 domain (Sentinel). It may evolve into a CLI helper after a second-domain validation. Adopters who implement it now follow the documented convention; their local script + registry is fully portable and survives a future cristalization unchanged.
29+
30+
---
31+
1032
## Framework 4.9.0 / CLI 3.10.0 — Audit v1: zero copy/paste flow with auditor-side CLI tool use
1133

1234
Closes the four axes reported in [issue #102](https://github.com/StrangeDaysTech/devtrail/issues/102) by Sentinel during its first primary-adopter run of the v0 audit-skills (CHARTER-07 of CommsHub Etapa 2). The release is **one integrated iteration** rather than four separate patches — Sentinel re-runs CHARTER-07 once after this lands, with the full v1 flow, instead of multiple times against partial fixes.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ DevTrail uses independent version tags for each component:
259259

260260
| Component | Tag prefix | Example | Includes |
261261
|-----------|-----------|---------|----------|
262-
| Framework | `fw-` | `fw-4.9.0` | Templates (12 types), governance, directives, Charter template + schema |
262+
| Framework | `fw-` | `fw-4.10.0` | Templates (12 types), governance, directives, Charter template + schema |
263263
| CLI | `cli-` | `cli-3.10.0` | The `devtrail` binary |
264264

265265
Check installed versions with `devtrail status` or `devtrail about`.
@@ -292,7 +292,7 @@ See [CLI Reference](https://github.com/StrangeDaysTech/devtrail/blob/main/docs/a
292292
```bash
293293
# Download the latest framework release ZIP from GitHub
294294
# Go to https://github.com/StrangeDaysTech/devtrail/releases
295-
# and download the latest fw-* release (e.g., fw-4.9.0)
295+
# and download the latest fw-* release (e.g., fw-4.10.0)
296296
297297
# Extract and copy to your project
298298
unzip devtrail-fw-*.zip -d your-project/

dist/.devtrail/00-governance/AGENT-RULES.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,4 +351,10 @@ These are heuristics, not rigid rules — you are close to the context, refine t
351351
352352
---
353353
354-
*DevTrail v4.9.0 | [Strange Days Tech](https://strangedays.tech)*
354+
## Patterns
355+
356+
When a project accumulates a high volume of AILOGs across multiple Charters and follow-ups become hard to track, see [FOLLOW-UPS-BACKLOG-PATTERN.md](FOLLOW-UPS-BACKLOG-PATTERN.md) for a reproducible convention (central registry + drift detection script + agent integration). Adopters at ~20+ AILOGs benefit; below that threshold the per-AILOG `§Follow-ups` convention alone is sufficient.
357+
358+
---
359+
360+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*

dist/.devtrail/00-governance/C4-DIAGRAM-GUIDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,4 +234,4 @@ Use a Level 1 (Context) diagram to illustrate:
234234

235235
---
236236

237-
*DevTrail v4.9.0 | [Strange Days Tech](https://strangedays.tech)*
237+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*

dist/.devtrail/00-governance/DOCUMENTATION-POLICY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,4 +307,4 @@ See also [ADR-2025-01-20-001] for architectural context.
307307
308308
---
309309

310-
*DevTrail v4.9.0 | [Strange Days Tech](https://strangedays.tech)*
310+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
# Follow-ups Backlog Pattern - DevTrail
2+
3+
> Reproducible convention for managing accumulated `§Follow-ups` and `R<N> (new, not in Charter)` entries across many AILOGs and Charters.
4+
5+
**Languages**: English | [Español](i18n/es/FOLLOW-UPS-BACKLOG-PATTERN.md) | [简体中文](i18n/zh-CN/FOLLOW-UPS-BACKLOG-PATTERN.md)
6+
7+
---
8+
9+
## Status
10+
11+
**v0 — proven in N=1 domain** (`StrangeDaysTech/sentinel` CHARTER-12, 2026-05-06).
12+
13+
This is a **convention**, not a CLI feature. Adopters reproduce it locally with markdown + a portable bash script. The pattern may evolve into a `devtrail followups` subcommand once a second adopter validates it (see [Open questions](#open-questions)).
14+
15+
---
16+
17+
## When this pattern applies
18+
19+
DevTrail's per-AILOG `§Follow-ups` convention works at write time — when an AILOG is created, the implementer documents what is deferred to subsequent Charters or operational triggers. That works fine until the cumulative list grows past what an operator can scan from memory.
20+
21+
Adopt this pattern when **any** of these conditions hold:
22+
23+
- The project has accumulated **~20 or more AILOGs** with non-trivial `§Follow-ups` sections.
24+
- Operators repeatedly ask agents to "list what's pending across the project" and the answer requires a multi-file scan.
25+
- A "do this when X arrives" follow-up was almost lost because the originating AILOG was never re-read after X arrived.
26+
- A Charter retrospective surfaces follow-ups that should have been classified as `closed` weeks earlier but were never indexed.
27+
28+
Below that volume, the per-AILOG convention alone is sufficient — adopting this pattern early adds maintenance overhead without payoff.
29+
30+
---
31+
32+
## Shape
33+
34+
### Registry file
35+
36+
Single markdown file at the canonical path:
37+
38+
```
39+
.devtrail/follow-ups-backlog.md
40+
```
41+
42+
### Frontmatter (YAML)
43+
44+
```yaml
45+
---
46+
last_scan: 2026-05-06
47+
schema_version: v0
48+
buckets:
49+
- ready
50+
- time-triggered
51+
- charter-triggered
52+
- phase-blocked
53+
- operational
54+
fully_extracted_ailogs:
55+
- AILOG-2026-04-11-001
56+
- AILOG-2026-04-12-001
57+
# ... one entry per AILOG whose follow-ups have been processed
58+
---
59+
```
60+
61+
The `fully_extracted_ailogs` list is the **load-bearing metadata** for drift detection. Every AILOG whose `§Follow-ups` and `R<N>` entries have been transferred into the registry (or explicitly classified as superseded) belongs in this list. Drift detection compares this list against AILOGs that have follow-up content in the repo.
62+
63+
### Buckets
64+
65+
Five buckets organize entries by trigger type:
66+
67+
- `ready` — actionable now, no dependency on external trigger.
68+
- `time-triggered` — calendar-based trigger (audit cycle, periodic review).
69+
- `charter-triggered` — gated on a future Charter that touches the relevant area.
70+
- `phase-blocked` — gated on a future component or phase that does not yet exist.
71+
- `operational` — manual operator decision or external system action.
72+
73+
### Entry schema
74+
75+
Each entry inside a bucket follows this shape:
76+
77+
```markdown
78+
### FU-NNN — <short description>
79+
- **Origin**: AILOG-NNNN-NN-NN-NNN <pointer to source section>
80+
- **Status**: open | in-progress | closed | superseded
81+
- **Trigger**: ready | <calendar date> | when <X> | <other>
82+
- **Destination**: <Charter id, "operations", or future phase>
83+
- **Cost**: <effort estimate>
84+
- **Notes**: <free-form context>
85+
```
86+
87+
`FU-NNN` is monotonically increasing across the registry's lifetime; do not renumber when entries close.
88+
89+
### Status vocabulary
90+
91+
- `open` — pending, not yet acted on.
92+
- `in-progress` — a Charter has been declared or is executing that addresses this entry.
93+
- `closed` — entry resolved (Charter merged, operational task done, time elapsed and reviewed).
94+
- `superseded` — addressed by other work that did not reference this entry directly.
95+
96+
Closed and superseded entries stay in the file (auditable history). Operators may move them to a `## Bucket: closed` section at the bottom for visual decluttering, but they are never deleted.
97+
98+
---
99+
100+
## Drift detection
101+
102+
A small bash script is the verification layer that keeps the registry in sync with new AILOGs. The script lives in the adopter's repo (suggested path: `scripts/check-followups-drift.sh`) and has three modes.
103+
104+
### Modes
105+
106+
- **Default** — scan AILOGs modified in `git diff origin/main..HEAD` (with `HEAD~1..HEAD` fallback). Warn on any AILOG with `§Follow-ups` / `R<N> (new)` content that is not in `fully_extracted_ailogs`. Exit 1 on drift.
107+
- **`--apply`** — same scan, but auto-append new entries under `## Bucket: ready` with auto-generated `FU-NNN` ids and append the AILOG id to `fully_extracted_ailogs`. The operator reclassifies into the correct bucket later.
108+
- **`--scan-all`** — scan every AILOG in the project (periodic full sweep).
109+
110+
### Per-AILOG vs per-bullet granularity
111+
112+
Tracking is **per-AILOG**, not per-bullet. An AILOG is either fully extracted (its id is in `fully_extracted_ailogs` — trust the registry) or it is not (extract everything). Per-bullet matching would require fingerprinting (text hashing or fuzzy comparison), which produces false positives whenever a registry entry paraphrases the AILOG bullet — and curated entries always paraphrase.
113+
114+
The cost of per-AILOG granularity: when a follow-up is added to an already-extracted AILOG post-Charter close, drift detection misses it. The remediation is operator-driven — manually remove the AILOG from `fully_extracted_ailogs` and re-run with `--apply`. This trade-off is intentional for v0 because most AILOGs are write-once after Charter close.
115+
116+
### Script template
117+
118+
A reference implementation (~290 lines of POSIX bash) is in `StrangeDaysTech/sentinel` at `scripts/check-followups-drift.sh`. Copy it into your repo and adjust the constants at the top:
119+
120+
```bash
121+
BACKLOG_FILE=".devtrail/follow-ups-backlog.md"
122+
AILOG_DIR=".devtrail/07-ai-audit/agent-logs"
123+
```
124+
125+
The script uses `awk` and `grep` only — no jq, no yq, no heavyweight dependencies. Portable across Linux and macOS.
126+
127+
---
128+
129+
## Agent integration
130+
131+
The agent (Claude / Gemini / etc.) becomes the primary maintainer of the registry. Add to your `CLAUDE.md` / `AGENT.md`:
132+
133+
```markdown
134+
## Follow-ups backlog
135+
136+
- **Session start**: glance at `.devtrail/follow-ups-backlog.md` to know what is pending across the project.
137+
- **Pre-commit checklist**: created or modified any AILOG with `## Follow-ups` or `R<N> (new, not in Charter)` entries? → run `scripts/check-followups-drift.sh --apply` to extend the backlog in the same commit.
138+
- **Post-Charter close**: review entries the Charter resolved; mark them `closed` (with the closing Charter id in `Notes`) or `superseded`.
139+
```
140+
141+
This makes the agent the maintainer, the script the verification layer, and the operator the periodic reviewer (re-bucketing, marking closed, pruning superseded).
142+
143+
---
144+
145+
## Adoption walkthrough
146+
147+
For an adopter starting fresh:
148+
149+
1. Create `.devtrail/follow-ups-backlog.md` with the frontmatter above (empty `fully_extracted_ailogs:` list initially) and the five `## Bucket: <name>` headers.
150+
2. Copy the reference script from `StrangeDaysTech/sentinel` to `scripts/check-followups-drift.sh`. Adjust `AILOG_DIR` if your AILOGs live elsewhere.
151+
3. Run `scripts/check-followups-drift.sh --scan-all --apply` to seed the registry from existing AILOGs.
152+
4. Reclassify the auto-generated `## Bucket: ready` entries into the correct buckets manually. This is one-time triage, typically 30-60 min for a backlog of ~50 entries.
153+
5. Add the agent integration block to `CLAUDE.md` / `AGENT.md`.
154+
6. Optionally wire `scripts/check-followups-drift.sh` into a pre-commit hook for hard enforcement.
155+
156+
For an adopter migrating from ad-hoc tracking: the same flow, but step 4 may require deciding which entries are already `closed` or `superseded` — that classification is what makes the registry useful.
157+
158+
---
159+
160+
## Reference implementation
161+
162+
`StrangeDaysTech/sentinel` CHARTER-12, merged 2026-05-06:
163+
164+
- Implementation PR: [sentinel#53](https://github.com/StrangeDaysTech/sentinel/pull/53) (registry + script + CLAUDE.md additions).
165+
- Close-out PR: [sentinel#54](https://github.com/StrangeDaysTech/sentinel/pull/54) (post-merge verification + Charter close).
166+
167+
Empirical context: 47 entries seeded from CHARTER-08 → CHARTER-11 retrospective (~30 min of multi-agent triage). The chain demonstrated the gap that motivated the pattern — without the registry, the operator could not see "what is pending across the project" without re-classifying each Charter's follow-ups in isolation. With the registry, session-start glance is one file read.
168+
169+
---
170+
171+
## Open questions
172+
173+
These are not resolved in v0. Future revisions of this pattern, or a CLI helper, may address them:
174+
175+
- **Bucket classification heuristic**. Today `--apply` dumps every new entry into `## Bucket: ready`; the operator reclassifies manually. A heuristic using AILOG `tags` and Charter `effort_estimate` could suggest a bucket automatically.
176+
- **Schema validation**. The registry follows a tacit schema; no `.devtrail/schemas/follow-ups-backlog.schema.v0.json` exists yet. Validation today is human review.
177+
- **Integration with the audit cycle**. When `devtrail charter audit --merge-reports` produces real-debt findings that are not remediated atomically pre-close, those findings live only in `.devtrail/audits/<id>/review.md`. They do not auto-flow into the central registry. Surfacing them automatically would close a known gap.
178+
- **`closed` vs `superseded` semantics**. Today the difference is whether the resolving work explicitly referenced the entry. A stricter convention may emerge.
179+
- **Cristalization as `devtrail followups` CLI**. Once a second adopter validates the pattern, the framework may ship a subcommand mirroring the existing `devtrail charter` trio: `list` / `close` / `drift`. Adopters at v0 (this pattern) migrate by deleting their local script and switching the agent instruction.
180+
181+
---
182+
183+
## Credits
184+
185+
Contributed via [issue #111](https://github.com/StrangeDaysTech/devtrail/issues/111) by the Sentinel adopter. Empirical foundation: CHARTER-08 → CHARTER-11 chain in `StrangeDaysTech/sentinel`. Author: Claude Opus 4.7 on behalf of operator José Villaseñor Montfort.
186+
187+
---
188+
189+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*

dist/.devtrail/00-governance/QUICK-REFERENCE.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,4 +219,12 @@ Mark `review_required: true` when:
219219

220220
---
221221

222-
*DevTrail v4.9.0 | [Strange Days Tech](https://strangedays.tech)*
222+
## Patterns
223+
224+
| Pattern | Document |
225+
|---------|----------|
226+
| Follow-ups backlog (central registry + drift detection) *(fw-4.10.0+)* | [FOLLOW-UPS-BACKLOG-PATTERN.md](FOLLOW-UPS-BACKLOG-PATTERN.md) |
227+
228+
---
229+
230+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*

dist/.devtrail/00-governance/i18n/es/AGENT-RULES.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,4 +351,10 @@ Son heurísticas, no reglas rígidas — estás cerca del contexto, afínalas co
351351
352352
---
353353
354-
*DevTrail v4.9.0 | [Strange Days Tech](https://strangedays.tech)*
354+
## Patrones
355+
356+
Cuando un proyecto acumula un volumen alto de AILOGs a lo largo de múltiples Charters y los follow-ups se vuelven difíciles de rastrear, ver [FOLLOW-UPS-BACKLOG-PATTERN.md](FOLLOW-UPS-BACKLOG-PATTERN.md) para una convención reproducible (registro central + script de detección de drift + integración con agentes). Los adopters con ~20+ AILOGs se benefician; por debajo de ese umbral la convención per-AILOG `§Follow-ups` por sí sola es suficiente.
357+
358+
---
359+
360+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*

dist/.devtrail/00-governance/i18n/es/C4-DIAGRAM-GUIDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,4 +234,4 @@ Usar un diagrama de Nivel 1 (Contexto) para ilustrar:
234234

235235
---
236236

237-
*DevTrail v4.9.0 | [Strange Days Tech](https://strangedays.tech)*
237+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*

dist/.devtrail/00-governance/i18n/es/DOCUMENTATION-POLICY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,4 +300,4 @@ Ver también [ADR-2025-01-20-001] para contexto arquitectónico.
300300

301301
---
302302

303-
*DevTrail v4.9.0 | [Strange Days Tech](https://strangedays.tech)*
303+
*DevTrail v4.10.0 | [Strange Days Tech](https://strangedays.tech)*

0 commit comments

Comments
 (0)