Skip to content

Commit c19ffaf

Browse files
committed
chore(docs): decouple code/docs references from plans/ ahead of going private
The <= rc12 upgrade guide ships in the v0.10.0 release notes (paste-ready block added to the #616 PR body); plans/ is heading to a private location. Every reference from public, durable surfaces is now self-contained: - CLAUDE.md pitfall 16 + troubleshooting.md: full fix inline, pointer to the release notes instead of plans/volume-permission-hardening.md - flows/lib.sh: stale-binary pitfall described inline (was citing the deleted v1337 buy report) - agent_contract_integration_test.go: drops the deleted sell-agent-perf.md citation (the reasoning survives in the comment) - cmd/obol/sell_agent.go: demo-label TODO self-contained (was citing openapi-402-followups.md) - docs/observability.md: deleted QA reports referenced via git history Remaining plans/ mentions are intentional: the CLAUDE.md conventions line, observability's explicit git-history pointer, and the SKILL.md path table.
1 parent b9e5096 commit c19ffaf

6 files changed

Lines changed: 13 additions & 12 deletions

File tree

.agents/skills/obol-stack-dev/references/troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ state.db / config.yaml; x402-buyer exits `load state:` at startup, killing
4141
every `paid/<model>` route. Fix: recreate the cluster (`stack down`
4242
`purge -f``init``up`; back up agent wallets first), or for k3d chown
4343
the PV backing dirs to 1000:1000 from inside the node and restart the pods.
44-
See plans/volume-permission-hardening.md "Upgrading from <= v0.10.0-rc12".
44+
Full steps: v0.10.0 release notes, "Breaking changes".
4545

4646
### k3d port 80 privileged on macOS
4747

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ A registry digest pin instead of `:latest` on the verifier means your dev rewrit
389389
14. **First-request flake on freshly-deployed verifier** — the first request after `x402-verifier` becomes Ready can return an empty body / Bad Gateway from Traefik because the HTTPRoute is wired but the verifier's serviceoffer-source watcher has not loaded the route yet. `flows/flow-07-sell-verify.sh` and `flows/flow-08-buy.sh` wrap the 402-body fetch in a 12x5s retry loop. Do not extend retry loops elsewhere to mask intermittents — this one is a real first-request race.
390390

391391
15. **"0 spent" is not proof no money moved** — an error response (>= 400) carrying `X-PAYMENT-RESPONSE` with a tx hash means the facilitator settled on-chain and THEN failed; the buyer marks that auth consumed, buy.py prints a settled-on-chain warning. Chain is canonical; see `docs/observability.md` ("Verify settlement against the chain").
392-
16. **Clusters created on <= v0.10.0-rc12 keep hostPath-typed PVs** — kubelet ignores `fsGroup` there, and v0.10.0's non-root pods (UID 1000, no chown inits) cannot read the legacy 10000-owned data. Supported path: recreate the cluster (wallet backup/restore). See `plans/volume-permission-hardening.md` "Upgrading from <= v0.10.0-rc12".
392+
16. **Clusters created on <= v0.10.0-rc12 keep hostPath-typed PVs** — kubelet ignores `fsGroup` there, and v0.10.0's non-root pods (UID 1000, no chown inits) cannot read the legacy 10000-owned data. Supported path: recreate the cluster (wallet backup/restore); full steps in the v0.10.0 release notes (Breaking changes).
393393

394394
For a fuller debug catalog with symptom->fix mapping, see `.agents/skills/obol-stack-dev/references/release-smoke-debugging.md`.
395395

cmd/obol/sell_agent.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,9 @@ func runAgentBackedDemo(
426426
// "demo" from offer.namespace alone. The obol.org/demo
427427
// label is the explicit signal — keep it set here so quant
428428
// and friends show up under "Demo services" on the
429-
// storefront. Drop this once we relax the cross-namespace
430-
// guard (see plans/openapi-402-followups.md).
429+
// storefront. Drop this once the catalog renderer's
430+
// cross-namespace guard is relaxed to infer demo offers
431+
// from their namespace.
431432
"labels": map[string]any{"obol.org/demo": "true"},
432433
},
433434
"spec": specMap,

docs/observability.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,9 +418,9 @@ contributors: if you write a guarded division, the epsilon is `1e-9`.
418418

419419
### Reports
420420

421-
- The OBOL parity integration test report — see `plans/` for the most recent
422-
`release-smoke-hardening-*.md` and `post-490-integration-*.md` entries that
423-
reference the metric audits behind PRs #527 / #530 / #531.
421+
- The OBOL parity integration test reports (metric audits behind PRs #527 /
422+
#530 / #531) lived in `plans/release-smoke-hardening-*.md` and
423+
`plans/post-490-integration-*.md`; retrieve them from git history.
424424

425425
---
426426

flows/lib.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,8 @@ bootstrap_flow_workspace() {
531531
# Pick the freshest of the caller-supplied binary and the workspace binary.
532532
# During iteration on embedded skill content (e.g. buy-x402/scripts/buy.py)
533533
# it is easy to rebuild one and forget the other; copying the stale one
534-
# silently bakes pre-fix files into the cluster PVC. See pitfall in
535-
# plans/inference-v1337-buy-report-20260514.md (v1337 attempt 5).
534+
# silently bakes pre-fix files into the cluster PVC (root-caused during
535+
# the 2026-05-14 v1337 live-buy QA session).
536536
if [ -f "$obol_bin" ] && [ -f "$workspace_bin" ] && [ "$obol_bin" != "$workspace_bin" ]; then
537537
picked_mtime=$(stat -c %Y "$obol_bin" 2>/dev/null || stat -f %m "$obol_bin" 2>/dev/null || echo 0)
538538
other_mtime=$(stat -c %Y "$workspace_bin" 2>/dev/null || stat -f %m "$workspace_bin" 2>/dev/null || echo 0)

internal/agentcrd/agent_contract_integration_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,9 +270,9 @@ func containsListItem(yamlBody, item string) bool {
270270
// skills" / "no-bundled-skills" line: that string is owned by the external
271271
// nousresearch/hermes-agent image, is not referenced anywhere in this repo, and
272272
// could change wording or log level across image bumps without our knowledge —
273-
// grepping for it would be a brittle, unverifiable contract. The plan
274-
// (plans/sell-agent-perf.md, Verification) only ever treated the log line as an
275-
// eyeball aid, not an assertion.
273+
// grepping for it would be a brittle, unverifiable contract. Earlier
274+
// verification notes only ever treated the log line as an eyeball aid, not
275+
// an assertion.
276276
//
277277
// The reliable, image-version-independent signal is the pod's on-disk skills
278278
// layout: when the marker is honored, Hermes seeds NONE of its ~80 bundled

0 commit comments

Comments
 (0)