Context
PR #2003 (merged) shipped ADR-0020's autonomy levels 0–2: the manifest 3.4.0 automation block, the level-1 deterministic runner (scripts/blueprint-autorun.sh + SessionStart probe), the on-change feature-tracker sync, quiet interaction_mode, and the level-2 /blueprint:autopilot skill with work-order-draft proposal issues.
Level 3 — the scheduled out-of-band pipeline — was deliberately deferred. It is designed in docs/adrs/0020-blueprint-autonomy-levels.md but not implemented. This issue tracks it.
Scope (from ADR-0020)
Two workflows, following existing repo conventions:
-
blueprint-autorun.yml — daily scheduled run, patterned on the blueprint-health job in .github/workflows/scheduled-audits.yml:
- deterministic tasks via
blueprint-autorun.sh (commit or PR the writeback)
- due agent-judgment tasks via
anthropics/claude-code-action with --model opus --effort pinned per .claude/rules/workflow-model-effort.md
- dedupe-check → pre-compute → issue/PR pattern; label-based dedupe
-
blueprint-wo-execute.yml — triggered when a human relabels a draft work-order-draft → work-order-approved:
- reconstruct the WO packet from the issue body (local WO files are gitignored and absent in CI — the issue is the WO carrier)
- execute TDD-style on a branch, open a PR (
Fixes #N); human PR review is the final gate
Preconditions (hard requirements before shipping)
.claude/rules/loop-integrity.md machinery: an independent verifier judges "done" (CI suite + a fresh reviewer agent — never the executing agent), and each iteration writes a compact state packet as issue comments (objective / ref / files in scope / exit condition / verifier result / changed-since)
- Budgets: per-run and per-day WO execution caps;
--max-cycles-style ceiling with "same failure N× = stuck → surface to human"
- Gating:
automation.autonomy_level >= 3 AND work_orders.auto_execute: true in the target repo's manifest; both default off
- Security baseline:
.claude/rules/github-actions-security.md (least-privilege GITHUB_TOKEN, env-var indirection for issue-body content — the WO packet is untrusted run context)
- A consumer repo that actually wants it — this repo dogfoods at level 1 (constrained mode) and cannot exercise level 3 itself; ship only when a downstream blueprint repo opts in
References
🤖 Generated with Claude Code
https://claude.ai/code/session_01Y98JSyiJLti5ckFnpBwstw
Context
PR #2003 (merged) shipped ADR-0020's autonomy levels 0–2: the manifest 3.4.0
automationblock, the level-1 deterministic runner (scripts/blueprint-autorun.sh+ SessionStart probe), the on-change feature-tracker sync, quietinteraction_mode, and the level-2/blueprint:autopilotskill withwork-order-draftproposal issues.Level 3 — the scheduled out-of-band pipeline — was deliberately deferred. It is designed in
docs/adrs/0020-blueprint-autonomy-levels.mdbut not implemented. This issue tracks it.Scope (from ADR-0020)
Two workflows, following existing repo conventions:
blueprint-autorun.yml— daily scheduled run, patterned on theblueprint-healthjob in.github/workflows/scheduled-audits.yml:blueprint-autorun.sh(commit or PR the writeback)anthropics/claude-code-actionwith--model opus --effortpinned per.claude/rules/workflow-model-effort.mdblueprint-wo-execute.yml— triggered when a human relabels a draftwork-order-draft→work-order-approved:Fixes #N); human PR review is the final gatePreconditions (hard requirements before shipping)
.claude/rules/loop-integrity.mdmachinery: an independent verifier judges "done" (CI suite + a fresh reviewer agent — never the executing agent), and each iteration writes a compact state packet as issue comments (objective / ref / files in scope / exit condition / verifier result / changed-since)--max-cycles-style ceiling with "same failure N× = stuck → surface to human"automation.autonomy_level >= 3ANDwork_orders.auto_execute: truein the target repo's manifest; both default off.claude/rules/github-actions-security.md(least-privilegeGITHUB_TOKEN, env-var indirection for issue-body content — the WO packet is untrusted run context)References
docs/adrs/0020-blueprint-autonomy-levels.md(Options Considered Add configure command for README generation #3, Phase 5 in the design).claude/rules/loop-integrity.md,.claude/rules/workflow-model-effort.md,.claude/rules/github-actions-security.md,.claude/rules/workflow-naming.md🤖 Generated with Claude Code
https://claude.ai/code/session_01Y98JSyiJLti5ckFnpBwstw