feat(status): operator-status SSoT (patchwarden status + status.html) + auto-heal + drift-guard #97

Merged
pdurlej merged 1 commit from claude/keystone-operator-status-ssot into main 2026-06-22 23:48:30 +02:00
Collaborator

What (docs-maturity keystone — merge first)

Lands the operator-facing status surface as the canonical "what is live today" source — the keystone fix from the 2026-06-16 docs-maturity audit (one drift-guarded source instead of the same fact restated in ~8 docs that each rot independently).

  • src/patchwarden/operator_status.py (+ docs/status.html, tests/test_status_html.py, tests/test_cli_status.py) — generated, tested status map; patchwarden status [--format json] [--output] wired into cli.py. Extracted from codex's integration-branch working tree (was uncommitted) — attribution via Co-Authored-By: codex.
  • ADDED auto-heal to the status data + status.html ("OpenClaw auto-heal gate", active) — the live gate (Slice C, 2026-06-10) was absent from the operator status surface (the gap I flagged when you pointed me at status.html).
  • docs/architecture.md — L4 status note (gate live; OSS extraction still D4-future), removed the stale "(when reviewer lanes land in #37 + #28-#30)" qualifier, and added a complete L2 module inventory (18 modules — 4+ shipped modules were missing).
  • tests/test_docs_module_inventory.py — NEW drift-guard: every src/patchwarden module must be named in docs/architecture.md (docs sibling of the D20 lint). Stops the "feature ships, docs rot" pattern.

Merge order / conflicts

  • Merge this before claude/cloud-review-enforcement (both touch cli.py, different regions).
  • Independent of the schema + docs-sweep PRs (disjoint files).

Safety

  • 312 tests green; stdlib-only; status surface is read-only, no network, never merges. patchwarden status + --format json smoke-confirmed (auto-heal gate present).

From the docs-maturity wave (items #1 + #2). Do not merge automatically — operator merge only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

## What (docs-maturity keystone — merge first) Lands the operator-facing status surface as the **canonical "what is live today" source** — the keystone fix from the 2026-06-16 docs-maturity audit (one drift-guarded source instead of the same fact restated in ~8 docs that each rot independently). - **`src/patchwarden/operator_status.py`** (+ `docs/status.html`, `tests/test_status_html.py`, `tests/test_cli_status.py`) — generated, tested status map; **`patchwarden status [--format json] [--output]`** wired into `cli.py`. Extracted from codex's integration-branch working tree (was uncommitted) — attribution via `Co-Authored-By: codex`. - **ADDED auto-heal to the status data + status.html** ("OpenClaw auto-heal gate", active) — the live gate (Slice C, 2026-06-10) was absent from the operator status surface (the gap I flagged when you pointed me at status.html). - **`docs/architecture.md`** — L4 status note (gate live; OSS extraction still D4-future), removed the stale "(when reviewer lanes land in #37 + #28-#30)" qualifier, and added a complete **L2 module inventory** (18 modules — 4+ shipped modules were missing). - **`tests/test_docs_module_inventory.py`** — NEW **drift-guard**: every `src/patchwarden` module must be named in `docs/architecture.md` (docs sibling of the D20 lint). Stops the "feature ships, docs rot" pattern. ## Merge order / conflicts - **Merge this before** `claude/cloud-review-enforcement` (both touch `cli.py`, different regions). - Independent of the schema + docs-sweep PRs (disjoint files). ## Safety - **312 tests green**; stdlib-only; status surface is read-only, no network, never merges. `patchwarden status` + `--format json` smoke-confirmed (auto-heal gate present). From the docs-maturity wave (items #1 + #2). **Do not merge automatically — operator merge only.** Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
feat(status): operator-status SSoT (patchwarden status + status.html) + auto-heal + drift-guard
All checks were successful
fallow-py / fallow-py-advisory (pull_request) Successful in 16s
873a08ea10
Lands the operator-facing status surface as the canonical "what is live today" source
(the keystone fix from the 2026-06-16 docs-maturity audit: one drift-guarded source
instead of the same fact restated in ~8 docs that each rot independently).

- src/patchwarden/operator_status.py (+ docs/status.html, tests) — generated, tested
  status map; `patchwarden status [--format json] [--output]` wired into cli.py.
  Extracted from codex's integration-branch working tree (was uncommitted); attribution
  preserved via the Co-Authored-By trailer.
- ADDED auto-heal to the status data + status.html ("OpenClaw auto-heal gate", active):
  the live gate (Slice C, 2026-06-10) was absent from the operator status surface.
- docs/architecture.md — L4 status note (gate live; OSS extraction still D4-future),
  removed the stale "(when reviewer lanes land in #37 + #28-#30)" qualifier, and added
  a complete "L2 module inventory" (18 modules) that was missing 4+ shipped modules.
- tests/test_docs_module_inventory.py — NEW drift-guard: every src/patchwarden module
  must be named in docs/architecture.md (docs sibling of the D20 lint).
- 4 vision/passage docs (june-2026-vision, original-vision-2026-05, pr-passage-contracts,
  clawsweeper-pin) the status page links — extracted with the package.

312 tests green. stdlib-only; status surface read-only, no network, never merges.

Co-Authored-By: codex <p+codex@durlej.me>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pdurlej deleted branch claude/keystone-operator-status-ssot 2026-06-22 23:48:30 +02:00
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!97
No description provided.