docs(v0): decisions D21 — M2 gate amendment for dogfood wiring #57

Merged
pdurlej merged 1 commit from claude/patchwarden-decisions-d21-m2-amendment into main 2026-05-27 15:18:25 +02:00
Collaborator

What

Records operator decision (2026-05-27) że M2 gate jest amended: defense hardening + end-to-end wiring of existing capabilities are permitted; new core features remain parked.

This is PR D1 of 4 in the Wizji-Wartości Wave. D21 must merge first to legalize PRs D2-D4 of this wave.

Why this matters (operator-side discovery this session)

M2 gate (D16 + M2 milestone) originally read as "park all v0 code work until M2 closes 5-7 discovery interviews." Operator's mental-model conversation today revealed that reading blocks legitimate value delivery:

Real situation Strict M2 reading
Swiss Cheese hardening (#54+#55+#56) closes existing gaps "code change → blocked"
Wire Ollama into platform workflow (capability already in main from #49) "any wiring is feature → blocked"
Document actual-vs-aspirational state "any change is change → blocked"

Per Cagan kill criteria: when a gate stops delivering value, kill the gate, not the value.

What D21 changes

Permitted under amended M2

  • Defense hardening of existing v0 (Swiss Cheese fixes, lint, soft-fail handling)
  • End-to-end wiring of existing CLI capabilities into platform workflow
  • Documentation of actual-vs-aspirational state
  • ADRs/decisions records

Still parked under M2 gate

  • New core product features (webhook listener, audit storage, multi-tenant Cloud)
  • Pyfallow/fallow-ts runtime dep in Patchwarden (plan doc permitted; binding the dep is not)
  • Expansion of dogfood lane beyond safe_docs_status classification
  • Schema-version bumps on spec/schemas/*.schema.json

Hard manual classes (force operator decision regardless of amendment)

  • New runtime dep in pyproject.toml → parked
  • New CLI subcommand with fundamentally new behavior (e.g. serve for webhook) → parked
  • Schema-version bump → parked
  • New policy class in policies/*.toml schema → parked

Mitigation against amendment-drift

  1. Hard manual classes codify exactly what stays parked.
  2. M3 quarterly review (2026-10-15) re-evaluates amendment. If wiring PRs grew into capability creep, amendment rolls back.
  3. D20 operator merge gate still binding: amendment changes what's permitted to propose, not what merges unilaterally.

Test impact

None — docs-only. 152/152 tests still green.

Atomic per ADR-0017

  • 1 file edited (docs/decisions.md), +39 lines, 0 deletions.
  • 0 src changes, 0 test changes.
  • base=main, no stacking.

Wizji-Wartości Wave sequence

PR What Gate effect
D1 (this PR) D21 amendment legalizes D2-D4
D2 docs/operations/dogfood-actual-vs-mental-model.md docs
D3 pdurlej/platform workflow wiring (Ollama + post-findings) wiring of existing capability
D4 docs/operations/pyfallow-integration-plan.md (PLAN, not code) architectural decision doc

Merge order is sequential (D1 first to legalize the rest).

## What Records operator decision (2026-05-27) że M2 gate jest **amended**: defense hardening + end-to-end wiring of existing capabilities are **permitted**; new core features remain **parked**. This is **PR D1 of 4** in the Wizji-Wartości Wave. **D21 must merge first** to legalize PRs D2-D4 of this wave. ## Why this matters (operator-side discovery this session) M2 gate (D16 + M2 milestone) originally read as "park all v0 code work until M2 closes 5-7 discovery interviews." Operator's mental-model conversation today revealed that reading **blocks legitimate value delivery**: | Real situation | Strict M2 reading | |---|---| | Swiss Cheese hardening (#54+#55+#56) closes existing gaps | "code change → blocked" | | Wire Ollama into platform workflow (capability already in `main` from #49) | "any wiring is feature → blocked" | | Document actual-vs-aspirational state | "any change is change → blocked" | Per **Cagan kill criteria**: when a gate stops delivering value, kill the gate, not the value. ## What D21 changes ### ✅ Permitted under amended M2 - Defense hardening of existing v0 (Swiss Cheese fixes, lint, soft-fail handling) - **End-to-end wiring** of existing CLI capabilities into platform workflow - Documentation of actual-vs-aspirational state - ADRs/decisions records ### ❌ Still parked under M2 gate - New core product features (webhook listener, audit storage, multi-tenant Cloud) - Pyfallow/fallow-ts **runtime dep** in Patchwarden (plan doc permitted; binding the dep is not) - Expansion of dogfood lane beyond `safe_docs_status` classification - Schema-version bumps on `spec/schemas/*.schema.json` ### Hard manual classes (force operator decision regardless of amendment) - New runtime dep in `pyproject.toml` → parked - New CLI subcommand with fundamentally new behavior (e.g. `serve` for webhook) → parked - Schema-version bump → parked - New policy class in `policies/*.toml` schema → parked ## Mitigation against amendment-drift 1. Hard manual classes codify exactly what stays parked. 2. M3 quarterly review (2026-10-15) re-evaluates amendment. If wiring PRs grew into capability creep, amendment rolls back. 3. D20 operator merge gate still binding: amendment changes *what's permitted to propose*, not *what merges unilaterally*. ## Test impact **None — docs-only.** 152/152 tests still green. ## Atomic per ADR-0017 - 1 file edited (`docs/decisions.md`), +39 lines, 0 deletions. - 0 src changes, 0 test changes. - `base=main`, no stacking. ## Wizji-Wartości Wave sequence | PR | What | Gate effect | |---|---|---| | **D1 (this PR)** | D21 amendment | **legalizes D2-D4** | | D2 | `docs/operations/dogfood-actual-vs-mental-model.md` | docs | | D3 | `pdurlej/platform` workflow wiring (Ollama + post-findings) | wiring of existing capability | | D4 | `docs/operations/pyfallow-integration-plan.md` (PLAN, not code) | architectural decision doc | Merge order is sequential (D1 first to legalize the rest).
Records operator decision (2026-05-27) that M2 gate is amended:
defense hardening + end-to-end wiring of existing capabilities are
permitted; new core features remain parked.

## Why

M2 gate (D16 + M2 milestone) originally read as "park all v0 code work
until M2 closes 5-7 discovery interviews." Operator-side discovery this
session showed that reading blocks legitimate value delivery:

1. Defense hardening (Swiss Cheese PRs #54 + #55 + #56) doesn't expand
   scope — it closes real gaps in existing v0.
2. Workflow wiring on pdurlej/platform doesn't add new Patchwarden
   capability — it activates capability already in main (Ollama via
   review-run, post-findings --execute).
3. Operator's mental model assumed end-to-end flow that doesn't exist
   in current dogfood loop; closing those gaps is "wire what we have",
   not "build what we don't have".

Cagan kill criteria: when a gate stops delivering value, kill the gate,
not the value. M2 amendment formalizes the pattern already validated by
the Swiss Cheese wave.

## What changes (D21 body)

- Permitted under amended M2: defense hardening; end-to-end wiring of
  existing capabilities into platform workflow; documentation; ADRs.
- Still parked: new core features (webhook, audit storage, Cloud);
  pyfallow runtime dep binding; expansion of dogfood lane beyond
  safe_docs_status classification; schema-version bumps.

Hard manual classes codify exactly what stays parked (new runtime dep,
new schema, new policy class, new fundamentally-different subcommand).

## Mitigation against amendment-drift

- Hard manual classes pause anything that touches parked surface.
- M3 quarterly review (2026-10-15) re-evaluates whether wiring PRs
  stayed wiring or grew into capability creep. If creep, amendment is
  rolled back.
- D20 operator merge gate still binding: amendment changes what's
  permitted to propose, not what can be merged unilaterally.

## Test impact

None — docs-only. 152/152 tests still green.

## Atomic per ADR-0017

- 1 file edited, +49 lines, 0 deletions.
- 0 src changes, 0 test changes.
- base=main, no stacking.

## Wave context

This is PR D1 of 4 in the Wizji-Wartości Wave:
- D1 (this PR): D21 amendment — LEGALIZES the wave
- D2: docs/operations/dogfood-actual-vs-mental-model.md
- D3: platform workflow wiring (Ollama + post-findings)
- D4: docs/operations/pyfallow-integration-plan.md (PLAN, not code)

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!57
No description provided.