Plan: A DORA Elite AI Enterprise Operating Model

plan-pal-e-agency Plan

plan deprecated

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.json
  • todo-dottie-config-nits — Dottie agent config wording fix + PreToolUse hook
  • todo-fix-remind-mcp-review-loop-paldocs-ref — Fix stale pal-e-docs reference in hook
  • bug-plan-template-hook-large-content — Plan template hook fails on large HTML
  • todo-delete-note-warning-hook — PreToolUse hook for delete_note warning
  • todo-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 tools
  • bug-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 contradictory
  • todo-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.sh SessionStart 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_repo tools 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-catalog maps 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-design codified. 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 12e

Phase 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 — 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-playground
Forgejo 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-playground hub 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: forgejo_admin/claude-custom

Depends 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 — 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-custom
Forgejo Issue: forgejo_admin/claude-custom#118 (closed) — PR #119 merged

Absorbed:
  • todo-penny-claude-config — penny.md created
  • bug-claude-custom-worktree-pollution — CLAUDE.md instruction added (cheapest viable fix; symlink break is future option)

QA Nits (non-blocking):
  • settings.json SubagentStart matcher doesn't include penny — she spawns without injected context
  • agents/betty-sue.md Related 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: 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 with kubectl kustomize dry-run)
  • todo-incident-board-workflow — Update sop-incident-response and sop-board-workflow with incident item lifecycle (fix-action as board item, starts in in_progress)
  • todo-db-migration-ci-secrets-checklist — Update sop-db-migration-recovery with 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.yaml in 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
  • agent-workflow — the current operating model this plan extends
  • agent-spawn-conventions — spawn rules this plan will update
  • convention-todo-lifecycle — governs TODO triage in Phase 1
  • plan-pal-e-platform — Platform Hardening (observability dependency for DORA)
  • plan-pal-e-docs — Interactive Knowledge Platform (the product this agency operates)