All four items shipped together in v1.30.0 (2026-08-19).
Lifecycle note: like E06 and E07, this epic ran active → done inside one maintainer-directed
session. That direction is what satisfies the T2 / maintainer-authored requirement — human-
directed, not loop-initiated. Both WIP slots stayed free in practice.
Shared verification: repo-wide rendering-link check across all 105 tracked markdown files —
1,001 links, zero broken. The checker models fenced blocks and inline code so it measures what a
reader can actually click, per the method note in v1.28.1; the adopter-relative links in
templates/CLAUDE.md and templates/AGENTS.md are excluded by design, as that release established.
Line caps: README.md 331 (cap 350), templates/ROLE_BRIEFS.md 197 (self-imposed 200), longest
methodology doc 04_backlog_items.md 1,020 (cap 1,050). Markdown-only diff.
Post-release review note (v1.30.1). The counts above were wrong when first written — the archive said 100 files / 966 links and the CHANGELOG said 105 / 994, against an actual 105 / 1,001. Both were snapshots taken while the work was still in progress, and every subsequent edit added links. Nothing was mis-verified; the check itself was clean each time it ran. But a verification record that does not match what a reader can reproduce is a defect in the record, and this repo’s whole claim rests on those records being trustworthy. Routing it by layer puts the fix in process, not wording: take the count last, after the final edit, or the number is stale before it ships. Corrected in v1.30.1.
templates/ROLE_BRIEFS.md| Field | Value |
|---|---|
| Epic | E08-role-briefs |
| Pillar | P1 |
| Priority | P2 |
| Effort | M |
| Status | done |
| Test | pass — six briefs present; cold read confirms every brief links to its rules doc and restates none |
| Deps | — |
| Lock | — |
Why / Description: Six lifecycle phases had documented rules but no paste-able prompt. Only
AGENT_KICKOFF.md and AUTONOMOUS_LOOP.md existed as prompts, so every other phase was entered by
reconstructing its stance from memory.
Done means:
Files (actual): templates/ROLE_BRIEFS.md (new).
Resolution: Shipped in v1.30.0. The design decision that makes it safe is negative: a brief
carries no rules of its own. Each one names a stance and hands off. That is what keeps it from
becoming a second copy of the methodology that goes stale silently — the failure 07 names as
when all the docs disagree, the docs all lose. Two briefs carry a constraint that is not obvious
from their source doc and would otherwise be re-litigated: the review brief routes findings by
layer, not severity (severity tiers were rejected in E07), and the evaluation brief forbids
fixing anything in the same session that scored it.
Personas stayed rejected for the third time. The distinction held throughout: a brief describes a stance a phase requires; a persona describes a character an agent adopts.
| Field | Value |
|---|---|
| Epic | E08-role-briefs |
| Pillar | P1 |
| Priority | P2 |
| Effort | S |
| Status | done |
| Test | pass — 966-link repo-wide check clean; every new reference resolves |
| Deps | BL-0030 |
| Lock | — |
Done means:
README.md repo tree and a usage pointer after the autonomous-loop line.methodology/00_README.md gains a reading-path row for working one phase at a time.templates/AGENT_KICKOFF.md and templates/AUTONOMOUS_LOOP.md link to it reciprocally —
kickoff points forward to the ordinary phases, the loop points sideways for single-phase work.FUTURE.md both record the question as resolved and chartered here.
Outcome and Exit criteria untouched.Files (actual): README.md, methodology/00_README.md, templates/AGENT_KICKOFF.md,
templates/AUTONOMOUS_LOOP.md,
self-development/backlog/epics/E07-agentic-workflow-pass/README.md and FUTURE.md.
Resolution: Shipped in v1.30.0. E07’s FUTURE.md was the easy miss — it asserted the thread was
open and unscoped, which two separate sentences elsewhere would have contradicted. Closing an open
question means closing every place that describes it as open, not just the charter.
| Field | Value |
|---|---|
| Epic | E08-role-briefs |
| Pillar | P9 |
| Priority | P1 |
| Effort | S |
| Status | done |
| Test | pass — seventh dimension and checklist line present; 10 at 782 lines, under the 1,050 cap |
| Deps | — |
| Lock | — |
Why / Description: The six required verification dimensions were all states of the surface you changed. Nothing made “what else consumes what I changed, and did I check one of each?” a standing question, so shared code reached through a different configuration profile, platform build, feature flag, or tenant went unverified by default.
Done means:
10_testing_and_verification.md, in the same shape as the six above it.10 stays under the cap (754 → 782).Files (actual): methodology/10_testing_and_verification.md. CHEATSHEET.md deliberately
untouched — it does not enumerate the dimensions, so there was nothing to extend, and it is already
over its own 100-line target at 144.
Resolution: Shipped in v1.30.0. Sourced from a re-read of E07’s source transcript rather than a new landscape pass — E07 extracted five ideas and this was in the residue. Written as a row on an existing list, not a new named convention, deliberately: this is the third convention-adding pass in a short window and the repo still has zero external adopters, so anything that costs a reader a new concept had to justify itself. A dimension costs nothing extra to learn once the other six are known.
The honest limit is stated inline rather than buried, because the failure mode of this dimension is over-trust: it is only as good as your ability to enumerate consumers, and when they are not enumerable it degrades into “run the full suite,” which the doc already required. The real protection in that case is contract tests at the boundary, and the section says so.
| Field | Value |
|---|---|
| Epic | E08-role-briefs |
| Pillar | P9 |
| Priority | P2 |
| Effort | XS |
| Status | done |
| Test | pass — caution present in both loop files, phrased as an operational test |
| Deps | — |
| Lock | — |
Why / Description: Observed, not theorized. Running with approvals bypassed, the source’s agent produced good clarifying questions and then resolved them itself. The existing guard — “make only bounded safe assumptions” — does not catch it, because each self-answer is locally reasonable and the loss is only visible in aggregate.
Done means:
templates/AUTONOMOUS_LOOP.md, beside
the existing cadence, not a bypass line.self-development/AUTONOMOUS_LOOP.md, which has the same section.Files (actual): templates/AUTONOMOUS_LOOP.md, self-development/AUTONOMOUS_LOOP.md.
Resolution: Shipped in v1.30.0. One line in each file. It earns its place because the failure is invisible by construction: by the time a human reads the run output, the decisions have been reformatted as findings, and nothing in the artifact distinguishes a question that was answered by the maintainer from one the agent answered for itself. The closing line is the part that changes behavior — a run that surfaces five real questions is worth more than one that silently resolved them — because it removes the incentive to appear productive by not asking.