Plan: A DORA Elite AI Enterprise Operating Model
Plan: A DORA Elite AI Enterprise Operating Model
Vision
Build an operating model so well-documented and well-scoped that work flows from plan to production with minimal friction. Management owns the process — SOPs, plans, boards, enforcement hooks. Agents own the implementation — they get a well-scoped Forgejo issue, write the code, submit a PR. The system produces DORA Elite performance not because agents are autonomous, but because the scoping pipeline (projects → plans → phases → kanban items → issues) eliminates the coordination overhead that prevents elite delivery. Proven through three pillars: SRE observability (deployment metrics), value stream tracking (idea-to-production traceability), and enforcement architecture (hooks that make compliance deterministic, not aspirational).
Projects & Repos Touched
| Project/Repo | Platform | Role in this plan |
|---|---|---|
| pal-e-agency | Forgejo | Primary — process and operating model |
| claude-custom | Forgejo | Enforcement layer — hooks, skills, agent configs |
| forgejo-mcp | Forgejo | Agent tooling — missing capabilities |
| pal-e-docs (notes) | Forgejo | SOPs, conventions, agent definitions |
Context
pal-e-agency was created during the 2026-03-13 project taxonomy cleanup. It inherited 19 repos (MCP servers, SDKs, hooks) and ~80 notes (SOPs, conventions, agents, templates, skills). The three-pillar model (platform=DevOps/SRE, docs=product, agency=process+enforcement) is the organizational taxonomy. Originally a four-pillar model including config as compliance; Phase 7 folded config back into agency — enforcement without process is meaningless. This plan establishes agency as the process pillar — the layer that defines how work moves through the system, how agents are scoped and dispatched, and how enforcement turns SOPs from documents into guarantees.
What's already done:
- [x] 14 SOPs active (9 operational + 5 error recovery)
- [x] 7 conventions active (spawn, block-first, subphase, TODO lifecycle, etc.)
- [x] 4 agents defined (Ava, Dev, QA, Dottie)
- [x] 6 skills defined (plan, implement-phase, review-pr, fix-review, create-issue, update-docs)
- [x] 9 templates active (plan, phase, issue, PR, project-page, agent, skill, bug)
- [x] Hook enforcement live (spawn gate, PR template, ruff, block-docs-writes, Closes #N)
- [x] Error recovery SOPs — 6 SOPs covering CI, deploy, hook, MCP, PR rejection, DB migration
- [x] Agent autonomy protocol — autonomy levels, escalation triggers, self-correction patterns
- [x] pal-e-config split — COMPLETED then folded back. Three-pillar model adopted: enforcement is Agency's implementation arm.
Previous Plan
Multiple completed plans contributed to current state:
plan-2026-02-24-sop-enforcement, plan-2026-02-25-template-enforcement, plan-2026-02-25-agent-profiles, plan-2026-03-07-note-hierarchy-conventions. This is the first unified plan for pal-e-agency as a project.Depends On
None. This plan is self-contained.
Decisions Made
| Decision | Rationale |
|---|---|
| Keep pal-e-config split as a later phase, not immediate | Structural taxonomy change with cascading effects (board, note reassignment, repo moves). Get the process foundation right first. |
| Triage TODOs into phases rather than keeping a separate backlog | Per convention-todo-lifecycle: TODOs are transient intake, not permanent work units. Graduate or close. |
| Error recovery SOPs before agent autonomy protocol | Agents need documented recovery paths before we can tell them "keep going." Recovery SOPs are the prerequisite for autonomy. |
| Management owns process, agents own implementation | Dev/QA agents see only Forgejo issues and repo code — no pal-e-docs, no plans, no boards. The issue is the contract. Wasting tokens on broader context degrades agent output quality. |
| "DORA Elite AI Enterprise" replaces "Autonomous Agency" | The system produces elite performance through clean scoping and enforcement, not agent autonomy. The word "autonomous" centered agents; the new framing centers the system and its measurable outcomes. |
| Enforcement pyramid: conventions → SOPs → hooks | Conventions are agreements. SOPs are procedures. Hooks are code that rejects non-compliance. Each layer makes the previous one enforceable. The hook is the teeth. |
| Three pillars: platform (DF/MTTR), docs (LT), agency (CFR — process + enforcement) | Config folded back into Agency per Phase 7 decision. Enforcement without process is meaningless — they share a DORA metric (CFR). Each pillar maps to a measurable DORA outcome. |
| Execution agents action-biased, QA agents quality-biased with domain expertise | Dev/DevOps agents ship fast — hooks enforce SOP compliance mechanically. QA agents (Dev-QA, DevOps-QA) are domain experts that review quality, flag process gaps, and drive pipeline automation. Frontend design is write-time exception (Impeccable). Maps to DORA CFR: specialized review catches more failures before production. |
Phases
Phase 1: Project foundation (COMPLETED)
Goal: Create project page, this plan, and populate the board.
Owner: Main session (Betty Sue)
Repo: n/a (pal-e-docs notes only)
Deliverables: project-pal-e-agency note, plan-pal-e-agency note, board populated.
Phase 2: Enforcement nits (COMPLETED)
Goal: Fix broken/incomplete hooks and agent configs in claude-custom.
Owner: Dev agent
Repo: forgejo_admin/claude-custom
Absorbs TODOs:
todo-dottie-agent-type-missing— Add "dottie" to agent-spawn-requirements.jsontodo-dottie-config-nits— Dottie agent config wording fix + PreToolUse hooktodo-fix-remind-mcp-review-loop-paldocs-ref— Fix stale pal-e-docs reference in hookbug-plan-template-hook-large-content— Plan template hook fails on large HTMLtodo-delete-note-warning-hook— PreToolUse hook for delete_note warningtodo-worktree-cleanup— Post-merge worktree cleanup automation
Phase 3: Forgejo MCP completeness (COMPLETED)
Goal: Add missing tools to forgejo-mcp so agents can fully manage workflow state.
Owner: Dev agent
Repo: forgejo_admin/forgejo-mcp
Absorbs TODOs:
todo-forgejo-mcp-label-comment-tools— Add set_label and comment_on_issue toolsbug-forgejo-mcp-missing-create-repo— Add create_repo tool
Why this matters for autonomy: The label signaling protocol (agent-workflow) requires agents to set status labels. Without
set_label, the protocol is manual. This is the #1 blocker for autonomous workflow.Phase 4: Doc alignment (COMPLETED)
Goal: Fix contradictory agent access docs and move cross-cutting conventions to correct project.
Owner: Main session (Dottie)
Repo: n/a (pal-e-docs notes only)
Absorbs TODOs:
todo-agent-access-docs-contradictory— Agent access docs are contradictorytodo-move-conventions-to-agency— Move cross-cutting conventions from pal-e-docs to pal-e-agency
Phase 5: Error recovery SOPs (COMPLETED)
Goal: Create recovery SOPs for every failure mode in the pipeline so agents can self-correct instead of stopping.
Owner: Main session (Betty Sue + Dottie)
Repo: n/a (pal-e-docs SOPs)
Scope:
- SOP: CI pipeline failure recovery (test fail, build fail, push fail)
- SOP: Deploy failure recovery (ArgoCD sync fail, pod crash, image pull fail)
- SOP: Hook block recovery (what to do when a PreToolUse hook blocks you)
- SOP: MCP server failure recovery (absorbs
bug-mcp-silent-load-failure) - SOP: PR rejection recovery (QA nits, merge conflicts, CI regression)
- SOP: Database migration recovery (failed migration, data inconsistency)
Depends on: Phase 4 (clean docs are prerequisite for writing new ones)
Phase 6: Agent autonomy protocol (COMPLETED)
Goal: Define the rules for "keep moving forward" — what agents can do without asking, what requires escalation, and how to self-correct.
Owner: Main session (Betty Sue)
Repo: n/a (convention note + SOP)
Scope:
- Convention: Agent Autonomy Levels (what's auto-approved vs. needs Lucas)
- Convention: Escalation Triggers (when to stop and ask)
- Convention: Self-Correction Patterns (when something breaks, what to try before escalating)
- Update agent-workflow SOP with autonomy rules
- Update agent definitions (Betty Sue, Dev, QA, Dottie) with recovery behaviors
Depends on: Phase 5 (recovery SOPs must exist before agents can reference them)
Phase 7: pal-e-config project split (COMPLETED — then folded back)
Goal: Split the enforcement/compliance layer into its own project, completing the four-pillar model.
Owner: Main session (Betty Sue)
Repo: n/a (pal-e-docs project + note management)
Absorbs TODOs:
todo-finish-rename-cleanup— Finish pal-e-agency / pal-e-config rename + cleanup
Scope:
- Created pal-e-config project, project page, board — DONE then REVERSED
- Moved 30 notes to pal-e-config — DONE then moved ALL back to pal-e-agency
- Decision: Three-pillar model. Config folded back into Agency. Enforcement without process is meaningless — Agency owns the full stack from convention definition to hook enforcement. The four-pillar separation made Agency feel hollow (just prompts and diagrams).
- DORA test: Config has no independent DORA metric — it's a subsystem of Agency's change failure rate. Three pillars each map to a DORA metric: Platform=deployment frequency/MTTR, Docs=change lead time, Agency=change failure rate.
- pal-e-config project entity (id: 18) left empty — delete in future cleanup
- project-pal-e-config page archived under pal-e-agency
- claude-custom repo stays under pal-e-agency
Depends on: Phase 4 (doc alignment must be clean before splitting)
Phase 8: MCP reliability (DEFERRED — upstream issue, detection deployed)
Goal: Address MCP server silent load failures and improve health monitoring. DEFERRED (2026-03-14): Root cause is upstream (Claude Code silently drops MCP servers that fail to initialize). Detection hook (
check-mcp-servers.sh) and recovery SOP (sop-mcp-server-recovery) already deployed. Defer until upstream fix lands or failure frequency increases beyond current mitigation tolerance.Owner: Dev agent
Repo: TBD (may span multiple MCP repos)
Absorbs TODOs:
bug-mcp-silent-load-failure— MCP servers silently fail to load in Claude Code sessions- Precursor merged:
check-mcp-servers.shSessionStart hook (claude-custom PR #88) — detects missing servers, fail-open. Root cause fix still needed.
Phase 9: CI-Driven Operating Model (COMPLETED)
Goal: Update the agency operating model to reflect CI-driven infrastructure deploys and establish cross-pillar feedback loops. Ten deliverables: ALL 10 COMPLETED. Conventions (apply-before-merge, cross-pillar-triggers, arch-SOP pairing), SOP/architecture updates (agent-workflow, CI pipeline recovery, post-merge docs, autonomy levels, project page), Woodpecker trigger step (PR #63 merged), secrets SOP cross-pillar review. See
phase-pal-e-agency-9-ci-driven-operating-model.Owner: Betty Sue + Dottie (docs), Dev agent (9h trigger implementation)
Repo: n/a (docs-only for 9a-9g;
forgejo_admin/pal-e-platform for 9h)Key Files
| Phase | File | Repo | Change |
|---|---|---|---|
| 2 | hooks/*.sh, agents/dottie.md | claude-custom | Fix hooks, add agent config |
| 3 | src/forgejo_mcp/tools/ | forgejo-mcp | Add set_label, comment_on_issue, create_repo |
| 5-6 | pal-e-docs notes | n/a | New SOPs and conventions |
Verification
- [x] Phase 1: Project page exists, plan exists, board populated
- [x] Phase 2: All hooks pass, Dottie config works
- [x] Phase 3:
set_label,comment_on_issue,create_repotools available in sessions - [x] Phase 4: No contradictory docs, conventions in correct project
- [x] Phase 5: Recovery SOP exists for each pipeline failure mode
- [x] Phase 6: Agent definitions updated with recovery behaviors, autonomy conventions created
- [x] Phase 7: pal-e-config split attempted, folded back to three-pillar model. Decision documented.
- [~] Phase 8: DEFERRED — upstream MCP issue. Detection hook + recovery SOP deployed as mitigation.
- [x] Phase 9: CI-Driven Operating Model — all 10 deliverables done. Cross-pillar triggers live.
- [x] Phase 10:
hook-catalogmaps all 34 hooks. Enforcement pyramid architecturally documented. 10b-10c DORMANT. - [x] Phase 11: Board Workflow Enforcement — SOP, skill rename, session-start auto-sync, post-merge auto-board-update.
- [x] Phase 12: Agent model determined via L1+L2 validation. 5-agent model deployed (PR #108).
convention-agent-designcodified. 12d DORMANT, 12e DESCOPED. - [x] Phase 13: Post-Merge Workflow Modernization — SOP + skill aligned to continuous kanban. PR #104 merged.
Epilogue
QA nits from approved PRs. Tracked here per convention — not blocking, not forgotten. Previous batch COMPLETED (2026-03-14) — 17 nits resolved across 4 PRs (forgejo-mcp #12, #14; claude-custom #87, #92). New nits from PR #63 (pal-e-platform) + PR #2 (pal-e-playground) + PR #19 (pal-e-deployments):
| # | Source | Nit | Repo | Status |
|---|---|---|---|---|
| 1 | PR #10 QA | <code>set_label</code> has 100-label pagination limit — will miss labels on repos with 100+ labels | forgejo-mcp | merged (PR #12) |
| 2 | PR #10 QA | Generic test filename <code>test_new_tools.py</code> — should match tool names | forgejo-mcp | merged (PR #12) |
| 3 | PR #10 QA | Semantic overlap between <code>comment_on_issue</code> and <code>comment_on_pr</code> — consider unifying or documenting distinction | forgejo-mcp | merged (PR #12) |
| 4 | PR #10 QA | No pytest in Woodpecker CI pipeline — tests exist but don't run in CI | forgejo-mcp | merged (PR #12) |
| 5 | PR #85 QA | <code>block-docs-writes.sh</code> missing board tools (<code>delete_project</code>, <code>delete_board</code>) and has stale sprint tool refs | claude-custom | merged (PR #87) |
| 6 | PR #85 QA | dottie and general-purpose agent types are functionally identical in spawn schema — dual maintenance surface | claude-custom | merged (PR #87) |
| 7 | PR #85 QA | Dottie context injection missing <code>get_note(slug="agent-dottie")</code> and block-first convention reference | claude-custom | merged (PR #87) |
| 8 | PR #85 scope | Dottie PreToolUse hook for code write blocking (deferred from Phase 2) | claude-custom | merged (PR #87) |
| 9 | PR #85 scope | Worktree cleanup automation (deferred from Phase 2) | claude-custom | merged (PR #87) |
| 10 | PR #87 scope | <code>create_note_from_template</code> missing from <code>block-docs-writes.sh</code> (pre-existing gap) | claude-custom | merged (PR #87) |
| 11 | PR #12 QA | Redundant <code>when</code> clause on test step in <code>.woodpecker.yml</code> | forgejo-mcp | merged (PR #14) |
| 12 | PR #12 QA | <code>test_single_page_no_extra_calls</code> uses <code>return_value</code> instead of <code>side_effect</code> (style preference) | forgejo-mcp | merged (PR #14) |
| 13 | PR #12 QA | Integration test setup uses <code>limit=100</code> directly (awareness only) | forgejo-mcp | closed (informational) |
| 14 | PR #87 QA | <code>commands/update-docs.md</code> has stale sprint tool references | claude-custom | merged (PR #92) |
| 15 | PR #88 QA | Scoped npm packages without <code>@version</code> suffix produce empty fingerprint — false negative | claude-custom | merged (PR #92) |
| 16 | PR #90 QA | Unnecessary <code>-r</code> flag on <code>jq ... | length</code> call in <code>check-agent-spawn.sh</code> | claude-custom | merged (PR #92) |
| 17 | PR #90 QA | Hook header comment still says 'no issue, no agent' axiom — misleading after capability-based pass-through | claude-custom | merged (PR #92) |
| 18 | PR #63 QA | <code>forgejo_token</code> secret event scope prerequisite should be documented inline in <code>.woodpecker.yaml</code> | pal-e-platform | open |
| 19 | PR #63 QA | <code>terraform/modules/*/main.tf</code> pattern matches no current files (forward-looking but inert) | pal-e-platform | open (informational) |
| 20 | PR #63 QA | No deduplication guard against duplicate issues from consecutive merges | pal-e-platform | open |
| 21 | PR #63 QA | <code>curl -s</code> with <code>|| true</code> hides HTTP errors from pipeline logs | pal-e-platform | open |
| 22 | PR #2 QA | Inline styles in guide demo elements — should use classes or CSS custom properties | pal-e-playground | open |
| 23 | PR #2 QA | Duplicated CSS design tokens across <code>index.html</code> and <code>guide/index.html</code> — extract to shared stylesheet | pal-e-playground | open |
| 24 | PR #2 QA | Issue #1 title still references westside migration after scope change | pal-e-playground | open |
| 25 | PR #19 QA | Unpinned <code>nginx:alpine</code> tag — consider pinning to SHA or specific version | pal-e-deployments | open |
| 26 | PR #19 QA | Missing NetworkPolicy — playground has no ingress restrictions | pal-e-deployments | open |
| 27 | PR #19 QA | Missing securityContext — container runs as root by default | pal-e-deployments | open |
| 28 | PR #19 QA | Namespace creation dependency — overlay assumes playground namespace already exists | pal-e-deployments | open |
Phase 10: Enforcement-as-Code (COMPLETED — 10a delivered, 10b-10c DORMANT)
Goal: Close the enforcement pyramid loop. COMPLETED (2026-03-15): 10a delivered
hook-catalog — maps all 34 hook scripts to their event, matcher, SOP/convention, and enforcement layer. Includes coverage gaps and statistics. The enforcement pyramid loop is architecturally closed: lessons → SOPs → hooks is a documented, repeatable pattern. 10b (/enforce skill) and 10c (PostToolUse auto-prompt) are DORMANT — automation optimizations on a working manual process, not blocking the operating model.| Subphase | Deliverable | Owner | Status |
|---|---|---|---|
| 10a | <code>hook-catalog</code> note — maps all 34 hook scripts to their event, matcher, SOP/convention, and enforcement layer. Includes coverage gaps (4 SOPs without hooks) and statistics (5/17 events used). Single architecture view of the entire enforcement surface. | Betty Sue | COMPLETED |
| 10b | <code>/enforce</code> skill — takes a rule/lesson, creates/updates SOP in pal-e-docs, generates hook script skeleton, creates Forgejo issue on claude-custom for dev agent, updates enforcement-architecture and sop-index. | Dev agent + Betty Sue | DORMANT — automation on a working manual process |
| 10c | PostToolUse hook on SOP creation — when a new SOP is created in pal-e-docs, prompt 'does this SOP need a hook?' Closes the enforcement pyramid loop. | Dev agent | DORMANT — automation on a working manual process |
Context: Discovered during Phase 9 work — the
tofu plan -lock=false lesson exposed the gap: we can write an SOP, but nothing enforces it without manually wiring a hook. Phase 10 closes this gap.Phase 11: Board Workflow Enforcement (COMPLETED)
Goal: Connect board infrastructure into continuous-flow kanban workflow. ALL 6 SUBPHASES COMPLETED: 11a (SOP:
sop-board-workflow), 11b (PR #94 — sprint→board skill rename), 11c (3 skill notes), 11d (PR #98 — session-start auto-sync), 11e (PR #98 — post-merge auto-board-update), 11f (project pages fixed). See phase-pal-e-agency-11-board-workflow-enforcement.Phase 12: Agent Specialization & Domain-Expert QA (COMPLETED — consolidated to 5-agent model)
Goal: Determine the right agent model through experimentation. COMPLETED (2026-03-15): 12a-12c built and deployed a 9-agent model (3 execution + 3 QA). 12v validation proved specialization constrained Claude Opus rather than helping — generic QA outperformed domain QA on blockers (6 vs 0). DECISION: Consolidated to 5-agent model (PR #108): Dev + QA + Betty Sue + Penny + Dottie. Convention codified in
convention-agent-design. 12d (QA write access) DORMANT — genuine capability improvement but separate concern from specialization. 12e (vector store) DESCOPED — invalidated by L2 data (model already has domain expertise, RAG adds nothing). Four follow-on PRs merged: #106 (config fixes), #108 (consolidation), #110 (Impeccable cleanup), #112 (skill flags).Owner: Betty Sue (docs/labels) + Dev agent (configs/hooks)
Repo:
forgejo_admin/claude-custom (primary) + cross-pillar for 12ePhase 13: Post-Merge Workflow Modernization (COMPLETED)
Goal: Align post-merge workflow with continuous kanban. COMPLETED. 13a:
sop-post-merge-docs and skill-update-docs fully modernized (zero sprint refs). 13b: PR #104 merged — commands/update-docs.md sync_board step + 6 Phase 12 QA nits fixed (profile slugs, schema, betty-sue refs, ERE, pagination, spawn gate). 3 minor nits remain (cosmetic). See phase-pal-e-agency-13-post-merge-modernization.Phase 14: Frontend Convention Overhaul (COMPLETED)
Goal: Establish frontend playground as a linked-repo model —
Owner: Betty Sue (docs) + Dev agent (repo)
Repo:
Forgejo Issues:
Deliverables — ALL COMPLETED:
Remaining: Companion ArgoCD Application resource in pal-e-services (one-off, not part of var.services loop). Then kubectl apply to go live.
Decision (2026-03-15): Linked-repo model, not folder model.
QA Nits (non-blocking): PR #2: inline styles in guide demos, duplicated CSS design tokens, issue title drift. PR #19: unpinned nginx:alpine tag, missing NetworkPolicy, missing securityContext, namespace creation dependency.
pal-e-playground is the hub (CSS guide + landing page only), each product project owns its own [project]-playground repo. Add CSS debugging playbook to convention. DORA impact: CFR reduction — agents get a canonical CSS reference + debugging checklist, fewer rework cycles on frontend PRs.Owner: Betty Sue (docs) + Dev agent (repo)
Repo:
forgejo_admin/pal-e-playgroundForgejo Issues:
forgejo_admin/pal-e-playground#1(closed) — PR #2 merged (hub repo scaffold: CSS guide + landing page)forgejo_admin/pal-e-deployments#18(closed) — PR #19 merged (kustomize overlay: nginx + hostPath + Tailscale funnel)
Deliverables — ALL COMPLETED:
- 14a: Created
pal-e-playgroundhub repo — guide/index.html + landing page. PR #2 merged. - 14b: Updated
convention-frontend-css— 3 Layout Systems, 5 Core Properties, Debugging Playbook. - 14c: Updated
sop-frontend-experiment— linked-repo model with subpath serving. - 14d: Updated
project-frontend-playground— linked-repo architecture, onboarding flow, repos table. - 14e: Kustomize overlay in
pal-e-deployments— nginx:alpine + hostPath mounts + Tailscale funnel. PR #19 merged.
Remaining: Companion ArgoCD Application resource in pal-e-services (one-off, not part of var.services loop). Then kubectl apply to go live.
Decision (2026-03-15): Linked-repo model, not folder model.
pal-e-playground = hub only. Project prototypes stay in their own repos. Repos can be listed under multiple projects.QA Nits (non-blocking): PR #2: inline styles in guide demos, duplicated CSS design tokens, issue title drift. PR #19: unpinned nginx:alpine tag, missing NetworkPolicy, missing securityContext, namespace creation dependency.
Phase 15: Capacitor Audit Agent (NOT STARTED)
Goal: Create a specialized agent whose job is to assess a playground project's readiness for Capacitor promotion. The agent reads all playground HTML files and their @-comment specs, cross-references against the target API's endpoint inventory, flags gaps (missing endpoints, incomplete state declarations, undefined interactivity), verifies the single-CSS/single-JS input contract, and produces a promotion readiness report. DORA impact: CFR reduction — catches integration gaps before any Svelte code is written, preventing rework cycles during promotion.
Owner: Dev agent (agent config + skill), Betty Sue (docs)
Repo:
Depends on:
Absorbs TODOs:
Scope:
Owner: Dev agent (agent config + skill), Betty Sue (docs)
Repo:
forgejo_admin/claude-customDepends on:
sop-capacitor-mobile-lifecycle (locked), mcd-tracker-playground @-comment annotations (in progress — first reference implementation of the pipeline).Absorbs TODOs:
todo-capacitor-audit-agent— the original TODO capturing this concept
Scope:
- Agent definition in claude-custom (personality, tools, boundaries)
- Audit workflow: read playground HTML → read API routes → cross-reference @api declarations → flag @gaps → verify input contract → produce report
- Skill or slash command to invoke the audit on a playground repo
- Reference: mcd-tracker-playground as first project through the pipeline
Phase 16: Agent Model Completion (COMPLETED)
Goal: Complete the 5-agent model so every agent can actually be spawned and operates cleanly. COMPLETED (2026-03-16): PR #119 merged —
Owner: Dev agent (configs), Betty Sue (docs)
Repo:
Forgejo Issue:
Absorbed:
QA Nits (non-blocking):
agents/penny.md created with full frontmatter (disallowedTools includes 20 pal-e-docs write tools), hooks/block-penny-writes.sh for defense-in-depth, CLAUDE.md worktree isolation instruction added. All 5 agent configs verified: betty-sue.md, dev.md, qa.md, dottie.md, penny.md. DORA impact: CFR reduction — complete agent model, clean worktree behavior.Owner: Dev agent (configs), Betty Sue (docs)
Repo:
forgejo_admin/claude-customForgejo Issue:
forgejo_admin/claude-custom#118 (closed) — PR #119 mergedAbsorbed:
todo-penny-claude-config— penny.md createdbug-claude-custom-worktree-pollution— CLAUDE.md instruction added (cheapest viable fix; symlink break is future option)
QA Nits (non-blocking):
settings.jsonSubagentStart matcher doesn't includepenny— she spawns without injected contextagents/betty-sue.mdRelated section references deprecated agent names, doesn't mention Penny
Phase 17: Pipeline Enforcement Gates (NOT STARTED)
Goal: Close the remaining enforcement gaps in the deploy pipeline. Infrastructure changes (Terraform, Kustomize) currently have no pre-merge validation — failures only surface after merge. Incidents have no board representation, so recovery work is invisible. DB migration recovery SOP is missing CI secrets verification. DORA impact: CFR reduction (pre-merge validation catches broken infra before production) + MTTR improvement (incident board items make recovery work visible and trackable).
Owner: Dev agent (hooks + CI), Betty Sue (SOPs)
Repo:
Absorbs TODOs:
Depends on: Phase 10a (hook catalog exists for mapping new hooks). No hard blockers.
Scope:
Owner: Dev agent (hooks + CI), Betty Sue (SOPs)
Repo:
forgejo_admin/claude-custom (hooks), forgejo_admin/pal-e-deployments (CI), pal-e-docs (SOPs)Absorbs TODOs:
todo-pre-merge-infra-validation— PreToolUse hook for infra PRs + CI validation in pal-e-deployments (.woodpecker.yaml withkubectl kustomizedry-run)todo-incident-board-workflow— Updatesop-incident-responseandsop-board-workflowwith incident item lifecycle (fix-action as board item, starts in in_progress)todo-db-migration-ci-secrets-checklist— Updatesop-db-migration-recoverywith CI secrets verification checklist
Depends on: Phase 10a (hook catalog exists for mapping new hooks). No hard blockers.
Scope:
- 17a: PreToolUse hook — remind/block merge of infra PRs (pal-e-services, pal-e-deployments) without pre-merge validation evidence
- 17b:
.woodpecker.yamlin pal-e-deployments — CI validates kustomize overlays on every PR - 17c: Incident board workflow — update SOPs, define incident item template, add to board conventions
- 17d: DB migration SOP update — add CI secrets verification to acceptance criteria
Related
agent-workflow— the current operating model this plan extendsagent-spawn-conventions— spawn rules this plan will updateconvention-todo-lifecycle— governs TODO triage in Phase 1plan-pal-e-platform— Platform Hardening (observability dependency for DORA)plan-pal-e-docs— Interactive Knowledge Platform (the product this agency operates)