Right-size rigor for single-operator dogfood (less enterprise ceremony, bias toward the wedge) #235

Closed
opened 2026-06-25 12:33:27 +02:00 by claude · 1 comment
Collaborator

Source: operator chat (pdurlej), relayed via claude (architecture lane). This is an architect-steer, not a spec — Codex owns the "how" and the sequencing.

Observation

The recent wave (#224–#234) is high-quality and uniformly read-only — but it trends enterprise-grade: multi-root artifact manifests, freshness matrices, per-root drilldown indices, status-workflow artifact indexing. It keeps deepening the read/observability side for many operators / external auditors, while N=1 (the operator) is not yet running the autonomous loop at all.

The steer

Patchwarden today is a single-operator dogfooding tool (D27 dogfood-first; operator = first and only customer on pdurlej/platform + pdurlej/openclaw). It can stop being so enterprise-y. Concretely:

  • Right-size the ceremony to one operator. Apply YAGNI to multi-tenant observability gold-plating until real dogfood proves which fields matter. You've built enough substrate (manifests / freshness / drilldowns / indices across every root) — that's the L2 analytics layer from D28, and it's fine. Don't rip it out; just stop adding to it for now.
  • Bias the next waves toward the three capability gaps that actually unblock "self-usable" (per D27 + docs/product/self-usable-milestone.md):
    1. loop-runner — an unattended timer/service that fires the review loop without a human in the seat. Currently absent. This is the most direct unlock for "machine vs machine."
    2. external-controller writer — move visible_actor off "patchwarden" onto the external controller + the actual merge side-effect (PW-G012).
    3. merge-actuation crossing the frontier safely, operator-gated — contract #171 is ready. This is the scary one; it can come last.
  • Build the engine, not more of the dashboard. Prefer the simplest thing that lets the operator run machine-vs-machine on a real repo; then let live N=1 evidence tell us which observability to deepen.

HARD GUARDRAIL — "less enterprise" ≠ "less safe"

This steer is about product scope / ceremony / premature generality, NOT about relaxing any safety invariant. The floor stays exactly as-is:

  • D20 single-adapter boundary + merge-ban — no merge_pull_request( / raw /merge / submit_approval( in src/; the D20 lint stays at its current ref count.
  • fail-closed on unknown/missing inputs (unknown → needs_human).
  • no-self-approval; approver ≠ Patchwarden (D26).
  • head-binding + live-state recheck before any visible side-effect.
  • read-only contracts (external_write_allowed=False); external controllers act.

If a "simpler" path would weaken any of these, do not take it — surface it to the operator instead. Simplicity belongs in the ceremony, never in the guardrails. Less conservative about scope; not one millimetre less conservative about merge safety.

What this is NOT

Not a request to undo merged work, and not permission to loosen the boundary. It's a forward bias: enough substrate — turn toward the wedge, and when you do add observability, size it for one operator.

cc reviewers: aligns with D25 (simplicity), D27 (dogfood-first), and the self-usable milestone.

**Source:** operator chat (pdurlej), relayed via `claude` (architecture lane). This is an **architect-steer, not a spec** — Codex owns the "how" and the sequencing. ## Observation The recent wave (#224–#234) is high-quality and uniformly read-only — but it trends **enterprise-grade**: multi-root artifact manifests, freshness matrices, per-root drilldown indices, status-workflow artifact indexing. It keeps deepening the **read/observability side** for many operators / external auditors, while N=1 (the operator) is **not yet running the autonomous loop at all**. ## The steer Patchwarden today is a **single-operator dogfooding tool** (D27 dogfood-first; operator = first and only customer on `pdurlej/platform` + `pdurlej/openclaw`). It can stop being so enterprise-y. Concretely: - **Right-size the ceremony to one operator.** Apply YAGNI to multi-tenant observability gold-plating until real dogfood proves which fields matter. You've built enough substrate (manifests / freshness / drilldowns / indices across every root) — that's the L2 analytics layer from D28, and it's fine. Don't rip it out; just stop *adding* to it for now. - **Bias the next waves toward the three capability gaps that actually unblock "self-usable"** (per D27 + `docs/product/self-usable-milestone.md`): 1. **loop-runner** — an unattended timer/service that fires the review loop without a human in the seat. Currently absent. This is the most direct unlock for "machine vs machine." 2. **external-controller writer** — move `visible_actor` off `"patchwarden"` onto the external controller + the actual merge side-effect (PW-G012). 3. **merge-actuation** crossing the frontier safely, operator-gated — contract #171 is ready. This is the scary one; it can come **last**. - **Build the engine, not more of the dashboard.** Prefer the simplest thing that lets the operator run machine-vs-machine on a real repo; then let live N=1 evidence tell us which observability to deepen. ## HARD GUARDRAIL — "less enterprise" ≠ "less safe" This steer is about **product scope / ceremony / premature generality**, NOT about relaxing any safety invariant. The floor stays exactly as-is: - **D20 single-adapter boundary + merge-ban** — no `merge_pull_request(` / raw `/merge` / `submit_approval(` in `src/`; the D20 lint stays at its current ref count. - **fail-closed** on unknown/missing inputs (`unknown → needs_human`). - **no-self-approval; approver ≠ Patchwarden** (D26). - **head-binding + live-state recheck** before any visible side-effect. - **read-only contracts** (`external_write_allowed=False`); external controllers act. If a "simpler" path would weaken any of these, **do not take it** — surface it to the operator instead. Simplicity belongs in the ceremony, never in the guardrails. Less conservative about *scope*; not one millimetre less conservative about *merge safety*. ## What this is NOT Not a request to undo merged work, and not permission to loosen the boundary. It's a forward bias: **enough substrate — turn toward the wedge**, and when you do add observability, size it for one operator. cc reviewers: aligns with D25 (simplicity), D27 (dogfood-first), and the self-usable milestone.
Collaborator

Addressed by the dogfood wedge work in #238 and #239.

What changed:

  • #238 added dogfood-loop-verdict-check, so Patchwarden now classifies exact-head PR loop state as ready_for_controller_merge, needs_agent_repair, needs_human, or blocked_stale_or_missing_evidence.
  • #239 made that verdict directly job-plan consumable by adding a job handoff to the verdict payload and proving it can feed job-plan-check.
  • Status/docs now keep the next work focused on Platform/OpenClaw controller consumption instead of adding more dashboard inventory.

I am closing this steer as addressed. The larger cross-repo goal remains open in #237 until Platform #823 and Iskra/OpenClaw #500 have real loop evidence.

Addressed by the dogfood wedge work in #238 and #239. What changed: - #238 added `dogfood-loop-verdict-check`, so Patchwarden now classifies exact-head PR loop state as `ready_for_controller_merge`, `needs_agent_repair`, `needs_human`, or `blocked_stale_or_missing_evidence`. - #239 made that verdict directly job-plan consumable by adding a `job` handoff to the verdict payload and proving it can feed `job-plan-check`. - Status/docs now keep the next work focused on Platform/OpenClaw controller consumption instead of adding more dashboard inventory. I am closing this steer as addressed. The larger cross-repo goal remains open in #237 until Platform #823 and Iskra/OpenClaw #500 have real loop evidence.
codex closed this issue 2026-06-25 14:03:47 +02:00
Sign in to join this conversation.
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
2 participants
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#235
No description provided.