feat(persona): add autonomous-actor persona for delegated cutover-class work#127
Conversation
…ss work Adds the autonomous-actor persona under .agentworkforce/workforce/ — an orchestrator persona for delegated, multi-PR, multi-day, cutover-class infra and feature deliveries. The persona encodes the operating contract pattern proven on the WS-OPTION-B run in the cloud repo (Nango ingestion cutover from SQS to Cloudflare Queue, dark-launched, single-switch flip). The persona ships six bundled skills: - autonomous-run-contract — the binding contract every run starts with (grants, per-PR auto-merge bar, numbered pre-flip gates, the one-switch flip mechanism, pre-authorized rollback triggers, standing constraints, named escalate-to-human conditions). - auto-merge-and-composition-safety — per-PR auto-merge bar (live CI verification, substantive review by area, stale-vs-actionable bot triage, worktree hygiene, never-merge-on-red) plus cross-PR composition discipline (serialize through green main, force-reset over half-merged commits). - dormant-flip-and-rollback — dark-launch + single-switch cutover pattern; AMBER never flippable; rollback is mechanical and pre-authorized. - instrument-dont-guess — after two failed fixes for the same symptom, the third action is a temporary diagnostic, not another fix. - swarm-blockers-and-gate-scoreboard — dispatches codex-impl + claude-review pairs (never codex-lead-with-codex-impl) and maintains the live RED/AMBER/GREEN gate scoreboard; file-based reporting that survives 150-char channel truncation. - tiered-acceptance — splits deep proof from smoke proof for high-volume variant sets (e.g. 44 models x 10 providers); variant lists generated, not hand-maintained. Modeled after relayfile's integration-verifier persona pattern (bundled SKILL.md operating manual loaded at startup; persona prompt is thin; skills are the live ledger that get updated as new failure modes appear). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR introduces a complete autonomous actor persona and six foundational operational skills for contract-first, delegated multi-PR cutover delivery. A new JSON persona configuration wires together bound operator contracts, per-PR auto-merge gates, dormant production switching with pre-authorized rollback, concurrent work orchestration via gate scoreboard, diagnostic discipline for failure handling, and tiered acceptance strategies for variant coverage. ChangesAutonomous Delivery System Framework
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (3)
.agentworkforce/workforce/skills/swarm-blockers-and-gate-scoreboard/SKILL.md (1)
43-54: 💤 Low valueOptional: Consider adding language identifiers to fenced code blocks.
The code blocks at lines 43-54 (sub-contract template) and lines 85-93 (scoreboard table) could specify a language identifier for better tooling support and syntax highlighting.
♻️ Optional formatting improvement
For the template at line 43:
-``` +```text WS-<name> sub-contractFor the table example at line 85:
-``` +```markdown | # | Gate | State | Evidence | Last verified | Owner |Also applies to: 85-93
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.agentworkforce/workforce/skills/swarm-blockers-and-gate-scoreboard/SKILL.md around lines 43 - 54, The fenced code blocks in the SKILL.md template (notably the "WS-<name> sub-contract" block and the scoreboard table block around the scoreboard example) lack language identifiers which hurts syntax highlighting and tooling; update those fenced blocks to include explicit language tags such as "text" for the sub-contract template (the block that begins with "WS-<name> sub-contract" and references "Status file: /tmp/ws-<name>-status.md") and "markdown" for the scoreboard table block (the block that contains the table header "| # | Gate | State | Evidence | Last verified | Owner |") so editors and linters can apply appropriate highlighting and rendering..agentworkforce/workforce/skills/dormant-flip-and-rollback/SKILL.md (1)
65-72: 💤 Low valueOptional: Consider adding language identifiers to template code blocks.
The template blocks at lines 65-72 (pre-flip statement) and lines 81-89 (rollback report) could specify a language identifier for better tooling support.
♻️ Optional formatting improvement
For the pre-flip statement at line 65:
- ``` + ```text Pre-flip statement, <run-name>, <ISO-utc>For the rollback report at line 81:
-``` +```text Rollback executed, <run-name>, <ISO-utc>Also applies to: 81-89
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.agentworkforce/workforce/skills/dormant-flip-and-rollback/SKILL.md around lines 65 - 72, Update the two template code fences in SKILL.md so they include a language identifier for tooling (e.g., change the triple-backtick fences around the "Pre-flip statement, <run-name>, <ISO-utc>" block and the "Rollback executed, <run-name>, <ISO-utc>" / "Rollback report" block to use ```text); locate the blocks by the literal phrases "Pre-flip statement" and "Rollback executed" (or "Rollback report") and add the language tag immediately after the opening ``` for each fence..agentworkforce/workforce/personas/autonomous-actor.json (1)
57-57: ⚡ Quick winConsider externalizing the long instruction content.
The
claudeMdContentfield contains ~2700 characters of embedded content. While valid, this makes maintenance more difficult (reviewing diffs, editing without JSON escaping issues, version control).♻️ Suggested refactor to improve maintainability
Create a separate instruction file:
.agentworkforce/workforce/personas/autonomous-actor.mdThen reference it in the JSON:
- "claudeMdContent": "# Autonomous Actor\n\nYou are the autonomous orchestrator...", + "claudeMdContentPath": ".agentworkforce/workforce/personas/autonomous-actor.md",This assumes the harness supports a path-based field (verify schema). If not available, the current approach is acceptable but consider feature request.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.agentworkforce/workforce/personas/autonomous-actor.json at line 57, The claudeMdContent field in autonomous-actor.json is embedding a very large instruction body; extract its text into a standalone markdown file (e.g., .agentworkforce/workforce/personas/autonomous-actor.md) and replace the claudeMdContent value with a path or lightweight reference according to the persona schema; update any loader/consumer that reads claudeMdContent (persona loader or harness) to resolve and load the external file when a path-reference is present, and verify the schema supports path-based references or add a small adapter to map the new field into the existing in-memory persona text.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.agentworkforce/workforce/personas/autonomous-actor.json:
- Line 57: The claudeMdContent field in autonomous-actor.json is embedding a
very large instruction body; extract its text into a standalone markdown file
(e.g., .agentworkforce/workforce/personas/autonomous-actor.md) and replace the
claudeMdContent value with a path or lightweight reference according to the
persona schema; update any loader/consumer that reads claudeMdContent (persona
loader or harness) to resolve and load the external file when a path-reference
is present, and verify the schema supports path-based references or add a small
adapter to map the new field into the existing in-memory persona text.
In @.agentworkforce/workforce/skills/dormant-flip-and-rollback/SKILL.md:
- Around line 65-72: Update the two template code fences in SKILL.md so they
include a language identifier for tooling (e.g., change the triple-backtick
fences around the "Pre-flip statement, <run-name>, <ISO-utc>" block and the
"Rollback executed, <run-name>, <ISO-utc>" / "Rollback report" block to use
```text); locate the blocks by the literal phrases "Pre-flip statement" and
"Rollback executed" (or "Rollback report") and add the language tag immediately
after the opening ``` for each fence.
In
@.agentworkforce/workforce/skills/swarm-blockers-and-gate-scoreboard/SKILL.md:
- Around line 43-54: The fenced code blocks in the SKILL.md template (notably
the "WS-<name> sub-contract" block and the scoreboard table block around the
scoreboard example) lack language identifiers which hurts syntax highlighting
and tooling; update those fenced blocks to include explicit language tags such
as "text" for the sub-contract template (the block that begins with "WS-<name>
sub-contract" and references "Status file: /tmp/ws-<name>-status.md") and
"markdown" for the scoreboard table block (the block that contains the table
header "| # | Gate | State | Evidence | Last verified | Owner |") so editors and
linters can apply appropriate highlighting and rendering.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 53bb288a-5f4d-41a8-ba4a-8d2c4441cfa9
📒 Files selected for processing (7)
.agentworkforce/workforce/personas/autonomous-actor.json.agentworkforce/workforce/skills/auto-merge-and-composition-safety/SKILL.md.agentworkforce/workforce/skills/autonomous-run-contract/SKILL.md.agentworkforce/workforce/skills/dormant-flip-and-rollback/SKILL.md.agentworkforce/workforce/skills/instrument-dont-guess/SKILL.md.agentworkforce/workforce/skills/swarm-blockers-and-gate-scoreboard/SKILL.md.agentworkforce/workforce/skills/tiered-acceptance/SKILL.md
What
Adds the
autonomous-actorpersona under.agentworkforce/workforce/— an orchestrator persona for delegated, multi-PR, multi-day, cutover-class infra and feature deliveries. The orchestrator operates under an explicit written contract that grants (each requires explicit operator acknowledgement):codex-impl + claude-reviewpairs to self-unblock from repo ground truth,It holds standing constraints (no manual prod deploy; no direct prod SQL; instrument-don't-guess after two failed fixes; battle-tested means concurrent+sustained, never works-once; serialize merges through green main) and has explicit escalate-to-human conditions. It refuses to flip while any gate is AMBER.
Where it came from
This persona encodes the lessons-learned from the WS-OPTION-B run in the
cloudrepo (the in-flight Nango ingestion cutover from SQS to a Cloudflare Queue, dark-launched, single-switch flip). Concretely it bakes in:The six bundled skills
autonomous-run-contractauto-merge-and-composition-safetydormant-flip-and-rollbackinstrument-dont-guess/_diagendpoint or enriched structured log that captures literal runtime values. Read literally, form the next fix from the data, revert in the same cycle.swarm-blockers-and-gate-scoreboardcodex-impl + claude-reviewpairs (never codex-lead-with-codex-impl) under written sub-contracts; prefers structural proofs over runtime tests for invariants. Maintains the live RED/AMBER/GREEN gate scoreboard in/tmp/<run-name>-scoreboard.mdplus the file-based reporting convention.tiered-acceptanceModeled after
The shape (thin persona prompt + bundled
SKILL.mdfiles loaded together at startup, with the skills as the live ledger that gets updated as new failure modes appear) follows relayfile'sintegration-verifierpersona pattern.Files
.agentworkforce/workforce/personas/autonomous-actor.json.agentworkforce/workforce/skills/autonomous-run-contract/SKILL.md.agentworkforce/workforce/skills/auto-merge-and-composition-safety/SKILL.md.agentworkforce/workforce/skills/dormant-flip-and-rollback/SKILL.md.agentworkforce/workforce/skills/instrument-dont-guess/SKILL.md.agentworkforce/workforce/skills/swarm-blockers-and-gate-scoreboard/SKILL.md.agentworkforce/workforce/skills/tiered-acceptance/SKILL.md🤖 Generated with Claude Code