docs(v0): add platform dogfood playbook (closes #32) #51

Merged
pdurlej merged 1 commit from claude/patchwarden-platform-dogfood-playbook into main 2026-05-27 12:12:51 +02:00
Collaborator

What

One new file: docs/operations/platform-dogfood.md (+121 lines). Pure docs — zero src changes, zero test count change (still 133/133 green).

Captures the proven vs not-proven boundary for Patchwarden's first dogfood client (pdurlej/platform), so any cousin (claude / codex / glm / iskra / hermes / gemini) can pick up a W6d calibration PR cold without reconstructing context from chat.

Structure

  • What IS proven — table of every CLI subcommand currently used in the platform dry-run loop. Each row anchored to a recent PR (#49 for live Ollama call, #50 for post-findings --execute).
  • What is NOT proven — explicit table (webhook mode, end-to-end LLM reviewer wiring, non-docs scope, auto issue selection, anything that Patchwarden would merge or APPROVE). Each row grounded in D20.
  • How to run ONE boring calibration PR — 12-step checklist from picking a candidate through operator merge. Each step gated by an explicit human or policy action.
  • When to break the loop — escalation triggers (false eligible_clean on blocked path, three consecutive red signals = ADR-0018 trigger, Iskra disagrees = D20 operator arbitration).
  • Reference materials — anchors to README, decisions.md, roadmap.md, architecture.md, policies/platform.v0.toml + canonical platform workflow + cycle notes.
  • Anti-playbook — explicit "this document is NOT" section so the next cousin doesn't over-extend scope.

Why this scope (and not more)

Per codex's issue #32 spec ("concise enough for a fresh cousin to use"):

  • No architecture essay — docs/architecture.md already covers L1-L6.
  • No product-strategy expansion — docs/product/strategy.md owns that.
  • No webhook-mode design — issue #31 owns that.
  • No CLI reference dump — README + --help own that.

Calibration references

Platform PRs #496-#499 (W6d-automerge-calibration-2026-05-25), per codex spec in #32. The cycle notes file pdurlej/platform:state/cycle/W6d-automerge-calibration-2026-05-25.md is the source of truth for what actually happened in those PRs.

D20 + ADR alignment

Constraint Where restated
Merge actor is always the operator (D20) Step 11 of the 12-step checklist
Patchwarden never APPROVED reviews (D20) NOT-proven table, second-last row
Fail-closed default of resolve-findings (D20) "When to break the loop" section
No workaround outcomes after 3 red signals (ADR-0018) "When to break the loop" section
Atomic, single-file PR (ADR-0017) This PR itself

Test impact

None. Docs-only addition. 133/133 tests still green locally on the branch.

ADR-0017 atomic

  • 1 file, 1 new directory (docs/operations/), 0 src changes.
  • base=main, no stacking.

Token-accounting (agent-kanban)

Opus directly. Pure docs at Opus is slightly wasteful in theory, but the boundary content (D20 references, calibration anchors, escalation triggers) needed deep project context I had already loaded. A Sonnet sub-agent would have needed a 2-3K-token brief just to get to parity. Net: marginal, ~2% weekly Opus.

Closes #32.

## What One new file: `docs/operations/platform-dogfood.md` (+121 lines). Pure docs — zero src changes, zero test count change (still 133/133 green). Captures the **proven vs not-proven** boundary for Patchwarden's first dogfood client (`pdurlej/platform`), so any cousin (claude / codex / glm / iskra / hermes / gemini) can pick up a W6d calibration PR cold without reconstructing context from chat. ## Structure - **What IS proven** — table of every CLI subcommand currently used in the platform dry-run loop. Each row anchored to a recent PR (#49 for live Ollama call, #50 for `post-findings --execute`). - **What is NOT proven** — explicit table (webhook mode, end-to-end LLM reviewer wiring, non-docs scope, auto issue selection, anything that Patchwarden would merge or APPROVE). Each row grounded in **D20**. - **How to run ONE boring calibration PR** — 12-step checklist from picking a candidate through operator merge. Each step gated by an explicit human or policy action. - **When to break the loop** — escalation triggers (false `eligible_clean` on blocked path, three consecutive red signals = **ADR-0018 trigger**, Iskra disagrees = D20 operator arbitration). - **Reference materials** — anchors to README, decisions.md, roadmap.md, architecture.md, policies/platform.v0.toml + canonical platform workflow + cycle notes. - **Anti-playbook** — explicit "this document is NOT" section so the next cousin doesn't over-extend scope. ## Why this scope (and not more) Per codex's issue #32 spec ("concise enough for a fresh cousin to use"): - ❌ No architecture essay — `docs/architecture.md` already covers L1-L6. - ❌ No product-strategy expansion — `docs/product/strategy.md` owns that. - ❌ No webhook-mode design — issue #31 owns that. - ❌ No CLI reference dump — README + `--help` own that. ## Calibration references Platform PRs #496-#499 (W6d-automerge-calibration-2026-05-25), per codex spec in #32. The cycle notes file `pdurlej/platform:state/cycle/W6d-automerge-calibration-2026-05-25.md` is the source of truth for what actually happened in those PRs. ## D20 + ADR alignment | Constraint | Where restated | |---|---| | Merge actor is always the operator (D20) | Step 11 of the 12-step checklist | | Patchwarden never APPROVED reviews (D20) | NOT-proven table, second-last row | | Fail-closed default of `resolve-findings` (D20) | "When to break the loop" section | | No workaround outcomes after 3 red signals (ADR-0018) | "When to break the loop" section | | Atomic, single-file PR (ADR-0017) | This PR itself | ## Test impact None. Docs-only addition. **133/133 tests still green** locally on the branch. ## ADR-0017 atomic - 1 file, 1 new directory (`docs/operations/`), 0 src changes. - `base=main`, no stacking. ## Token-accounting (agent-kanban) Opus directly. Pure docs at Opus is slightly wasteful in theory, but the boundary content (D20 references, calibration anchors, escalation triggers) needed deep project context I had already loaded. A Sonnet sub-agent would have needed a 2-3K-token brief just to get to parity. Net: marginal, ~2% weekly Opus. Closes #32.
One markdown file (`docs/operations/platform-dogfood.md`) capturing the
proven vs not-proven boundary for Patchwarden's first dogfood client
(`pdurlej/platform`). Audience: any cousin (claude / codex / glm /
iskra / hermes / gemini / etc.) who picks up a W6d calibration PR cold.

## What's in it

- **What IS proven** — table of every CLI subcommand currently used in
  the platform dry-run loop, with status anchors (PR #49 for live Ollama
  call, PR #50 for `post-findings --execute`).
- **What is NOT proven** — explicit list (webhook mode, end-to-end LLM
  reviewer wiring, non-docs scope, auto issue selection, anything that
  Patchwarden would merge or APPROVE). Each row is grounded in D20.
- **How to run ONE boring calibration PR** — 12-step checklist from
  picking a candidate through operator merge. Each step gated by an
  explicit human or policy action.
- **When to break the loop** — escalation triggers (false eligible_clean
  on blocked path, three consecutive red signals, Iskra disagrees).
- **Reference materials** — anchors to README, decisions.md, roadmap.md,
  architecture.md, policies/platform.v0.toml, and the canonical platform
  workflow + cycle notes.

## Calibration references

Platform PRs #496-#499 (W6d-automerge-calibration-2026-05-25) — per
codex spec in issue #32.

## D20 alignment

- "merge actor is always the operator" — restated in step 11.
- "Patchwarden never APPROVED reviews" — listed in NOT-proven table.
- Fail-closed defaults of `resolve-findings` mentioned as the safety
  net that catches the worst failure mode (false eligible_clean on a
  blocked path).

## Anti-playbook

Explicit "this document is NOT" section so the next cousin doesn't
over-extend scope (no architecture essay, no strategy expansion, no
webhook roadmap, no CLI reference).

## Test impact

None — docs-only addition. 133/133 tests still green.

## ADR-0017 atomic

One file, one new directory, zero src changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
agent/claude-code
agent/codex
agent/gemini
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
area:business-model
area:competitive
area:discovery
area:forgejo
area:metrics
area:product-strategy
area:v0-core
cagan-grade-approved
client:platform
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
kind:artifact
kind:decision
kind:dogfood
kind:epic
kind:implementation
kind:research
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
priority:p0
priority:p1
priority:p2
priority:p3
ready-for-agent
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
size/large
size/medium
size/small
size/tiny
size/unknown
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:blocked-on-discovery
status:cagan-grade-review-pending
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:needs-operator-decision
status:operator-needed
status:parked
tier:0-anchor
tier:0-platform-substrate
tier:1-core
tier:1-iskra-value-layer
tier:2-supporting
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
wave:1-foundation
wave:2-positioning
wave:3-validation
wave:4-economics
wave:5-operating
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pdurlej/patchwarden!51
No description provided.