Skip to content

feat(blueprint-plugin): autonomy level 3 — scheduled out-of-band pipeline with approved work-order execution #2005

Description

@laurigates

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:

  1. 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
  2. blueprint-wo-execute.yml — triggered when a human relabels a draft work-order-draftwork-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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions