First entry in self-development/loop-notes/. Per AUTONOMOUS_LOOP.md Constraint 1 and Constraint 2a: the loop never auto-edits abstract methodology / templates / brief / strategy / pillars. Insights surfaced here are surfaced for the maintainer’s review cycle, not auto-applied.
_(empty)_ placeholders made it unambiguous where the Run-2 Opus agent should land output. Zero confusion at the Edit step.Agent role + write permission interaction. First Run-2 attempt spawned the Opus cold-read agent in the Explore role. Explore is read-only (no Edit/Write tools). The agent completed the cold-read correctly and returned ~43 findings as text, but couldn’t apply them to the file. Lost ~5 minutes plus the cost of one Opus agent run when the orchestrating session had to re-spawn in general-purpose role.
Root cause: `AUTONOMOUS_LOOP.md “fresh session” definition requires “no prior turns referencing this project” and “ideally a different model family,” but says nothing about agent role / tool availability. The loop’s prompt step 6 (“CROSS-AI VALIDATION”) implies fresh = read-only because cross-AI validation is non-destructive, but cold-reads need write permission to land findings. Cross-AI validation and cold-reads are not the same operation, but both use “fresh session” language.
Suggested methodology addition (surface for maintainer; not auto-applied per Constraint 1):
Add a sentence to
AUTONOMOUS_LOOP.md“Operational definition of fresh session” or tomethodology/10_testing_and_verification.md "Cross-AI validation":“Fresh-session agents that must land output in a file (e.g., cold-read findings, classification tables) need a role with Write/Edit tools — use
general-purposeor a project’s equivalent, not a read-only role likeExplore. Read-only roles are correct for verification (cross-AI Done-means checks) but wrong for production work.”
This is a one-sentence clarification, not a methodology rewrite. Ship in the next patch release or fold into BL-0009/0010’s classification + summary work.
These come from BL-0007’s cold-read findings + Run-2 operational observations. Each is a candidate for the next methodology release cycle (after E02 closes via BL-0010). None auto-applied.
The 25 findings sort into three rough tiers by maintainer-effort to fix:
Tier A — patch-release immediately (1 finding, mechanical):
\| \*\*Pillar\*\* +\| regex against **bold** field names; the canonical frontmatter template uses plain field names. The v1.12.0 C1 fix rewrote items to plain-table form without updating the grep examples. Returns zero matches against compliant items. Fix: drop the \*\* wrappers from all grep examples in that file. Estimated effort: XS.Tier B — clarify in a patch release (~6 findings, cross-doc agreement + missing default callouts):
Started: field misses — form for planned epics.Tier C — defer to a future eval pass or treat as known limitations (~18 findings):
parked → done "somehow" — explain or remove).BL-0009 (classification) is the formal disposition mechanism for all 25; the tiering above is a preview, not a substitute.
Fresh-session role guidance (described in “What didn’t work” above). Single-sentence addition to AUTONOMOUS_LOOP.md or methodology/10.
“No issues found” granularity in the cold-read pattern. BL-0007’s charter says “each doc gets at least one finding entry (even ‘no issues found’ is recorded)” but doesn’t specify per-category vs per-doc. The Run-2 cold-read used _(none)_ per-category (clearest signal: reviewer considered the category and found nothing). Worth pinning down for BL-0008 + future cold-read items so cross-AI validation has a deterministic “did the reviewer actually consider this?” check. Suggested charter addition for BL-0008 + future cold-read items: “For each category (stale/unclear/inconsistent) with no findings, write _(none)_ under that category heading. Omitting a category heading entirely fails the Done-means check.”
BL-0009 classification work scales linearly with findings count. 25 findings in BL-0007’s batch + ~25 expected in BL-0008’s batch = ~50 findings for BL-0009 to classify and disposition. Effort estimate (S) may be light. Worth re-estimating once BL-0008 lands. Not a methodology change — just a backlog-management observation.
Cold-read sessions consistently surface “cross-doc rule restatement” drift. Several findings flagged the same rule stated in 2–3 different docs with slightly different wording. This is a recurring pattern, not a one-off — could be worth adding to methodology/02_pillars.md or methodology/00_README.md as a “single-source-of-truth” guideline for canonical rules. Defer until BL-0008’s findings either confirm or contradict the pattern.
_(none)_ convention from Run 2 was applied throughout. Mechanical Done-means verification is now deterministic — every doc has all three category headings; absence is explicit, not implied. Recommend pinning the convention in the methodology’s cold-read template if/when one is added (currently lives only in BL-0007/0008 charters).29 findings + 4 cross-batch from Run 3. The two new v1.13.0 sub-sections (in 09 + 10) had real gaps — a useful signal that the same-release cold-read does catch its own additions. Highlights for BL-0009’s two-axis classification:
New v1.13.0 sub-section gaps (likely T1, surgical):
methodology/09_git_workflow.md patch-branch convention — area-prefix policy unspecified. The convention says <area>-patch/YYYY-MM-DD-NN with examples (methodology-patch, designsystem-patch, spec-patch) but doesn’t say how a project picks or documents its area prefixes. New adopter has no guidance on whether methodology-patch is canonical for this project or whether they’re free to pick their own. Recommend a single sentence: “Each project records its area prefixes in 09_git_workflow.md or equivalent project doc.”methodology/09_git_workflow.md — “never auto-merge” wording. Tier matrix says “loop never auto-merges a patch branch.” But the affirmative table at lines ~250-290 (the can/can’t list for AI agents in git) uses ⚠ for “Creates release tags only with explicit user OK” and “Opens GitHub Releases only with explicit user OK” — the same ⚠ that could plausibly read as “with permission, OK.” Cold reader could mistake patch-branch merging as ⚠ rather than ✗. Recommend explicit ✗ row: “Merges a patch branch into the trunk — always maintainer-led, even when cross-AI PASS on diff-verification.”methodology/10_testing_and_verification.md two-modes — ambiguous PASS/FAIL for partial diff-verifications. What happens when grounded=PASS, correct=PASS, scoped=CONCERN (e.g., diff touches the right region but also adds a stray whitespace change)? The doc doesn’t say. Recommend: “A PASS on all three axes is required; any FAIL or CONCERN blocks the patch branch from being offered for merge until resolved.”methodology/10_testing_and_verification.md two-modes — “Done-means” term collision. The two-modes section uses “Done means” loosely; the BL item template uses “Done means” as a load-bearing section header. Subtle but a cold reader could collapse the two. Recommend: rename the loose usage to “the validator confirms” or similar.Cross-batch findings (00–05 vs 06–11) — likely T1, surgical except where noted:
Lock: — field. The DoD checklist in 07_definition_of_done.md:410 uses ASCII hyphen Lock: - while every other location uses em-dash Lock: —. Copy-paste from the checklist produces non-matching items. T0 candidate — pure cosmetic fix in one location.08_lessons_and_memory.md) says lessons promote to durable rules when seen twice; doc 04 (04_backlog_items.md) doesn’t reference this in the item-pattern discussion where reused lessons would actually be invoked. Cross-link or briefly restate.00_README.md and the can/can’t table in 09_git_workflow.md and the human-roles ownership table in 11_human_roles.md all omit this. The rule is in one doc; three other docs that summarize “the inviolable rules” don’t surface it. T1 — add a row to each table.Cold-read pattern observations (potentially methodology-level):
#item-skeleton vs actual #item-heading--frontmatter-table-skeleton), 1 inaccurate inline paraphrase (XS = under one focused session vs canonical XS = under 2 hours), 1 typo (greppping). All three were mechanical mistakes Opus introduced but didn’t notice when authoring 30 patches. The diff-verification gate has now demonstrated it catches what the implementing agent misses.methodology-patch/2026-05-25-01) + single diff-verification pass + single commit per logical chunk worked at this volume. For a much larger batch (100+ patches across more files), the pattern would benefit from per-doc branches or sub-batches to keep verifier scope tractable.Per AUTONOMOUS_LOOP.md "Subsequent-run targets":
Run 5+: work in the now-active second epic per ROI heuristic; primary target is “close one epic per run” once the cadence is established.
After E02 closes (maintainer signoff on v1.14.0 → ARCHIVE move → EPICS rollup):
loop-notes/2026-05-25.md. The maintainer may file them as items in an appropriate epic (some belong to E03 “Trim 09_git_workflow.md”; some are stand-alone clarifications) OR defer until the next semi-annual eval cycle and re-surface alongside fresh findings. Maintainer’s call._(none)_ empty-marker convention from the start (now standard).general-purpose role (now standard).Run 4 has more work than Runs 1–3 individually:
methodology-patch/YYYY-MM-DD-NN branch + diff-verification before merge. The Tier-A grep fix shipped in v1.13.0 was a one-off; Run 4 is the first batch of multiple patches landing through the new mechanism.The Run 4 prompt should also incorporate any T0/T1 patches the maintainer wants prioritized for immediate ship vs. deferred to next minor release.
This file is loop-private — never read by methodology/ or templates/. It’s the surface where loop-detected methodology insights queue for maintainer review. Per AUTONOMOUS_LOOP.md reporting protocol, maintainer reads at next check-in, decides which suggestions to promote to actual methodology releases via normal human-reviewed cycle.