From ab01f39842949c23ea4690658b4fe03c66086236 Mon Sep 17 00:00:00 2001 From: "m2 (AI Agent)" Date: Thu, 2 Jul 2026 04:53:51 +0200 Subject: [PATCH] =?UTF-8?q?wedge(T047):=20scenario=20sweep=20+=20VERIFICAT?= =?UTF-8?q?ION.md=20=E2=80=94=20A-E=20verified=20(B/C=20live),=20F/G=20ope?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- specs/001-market-first-wedge/VERIFICATION.md | 45 ++++++++++++++++++++ specs/001-market-first-wedge/tasks.md | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 specs/001-market-first-wedge/VERIFICATION.md diff --git a/specs/001-market-first-wedge/VERIFICATION.md b/specs/001-market-first-wedge/VERIFICATION.md new file mode 100644 index 0000000..37f18d6 --- /dev/null +++ b/specs/001-market-first-wedge/VERIFICATION.md @@ -0,0 +1,45 @@ +# Verification — 001-market-first-wedge + +Date: 2026-07-02 · Verifier: orchestrator (Claude Fable, factory loop) · State: master `c52f968`+ + +## Success criteria (spec.md) + +| SC | Status | Evidence | +|----|--------|----------| +| SC-001 one real paid install between two operators | ✅ PASSED | m2bd bought sdjs-operator's `lst_mm-pdf-report` (40 cr) on m2bd-m2o, 2026-07-02T02:15:53Z. Ledger: m2bd 100→60, sdjs-operator 100→136, platform +4. Grant `gr_3697fd…` → paying tx 8. Skill applied + entrypoint executable. | +| SC-002 ≥3 evidence-backed listings | ⏸ PARTIAL (2/3) | `lst_mm-pdf-report`, `lst_agent-scaffold` published via PR+approve+merge with real evidence. Third BLOCKED on operator (T031: no real competitor-scan evidence exists; email-triage substitute needs owner-initiation + double-scrub). | +| SC-003 100% installs have tx + grant; zero applies without debit | ✅ | Live ledger: every apply preceded by `/tx/install` (409 duplicate-ref guard); property tests (`no grant without paying tx`); audit snapshots `audit/2026-07-02.json` in m2/market-registry. | +| SC-004 derived balances == fold(log) | ✅ | Hypothesis state machine (50 examples × 25 steps) + live snapshot recomputation. Refund-overdraw recorded as an accepted economic rule (data-model §Transaction). | +| SC-005 search→installed <10 min | ✅ | Gate install: 0.88 s wall (plus seconds of search/confirm). | +| SC-006 Scout v0 ≥1 correct proposal on canary | ⏳ OPEN | Spike done (T041, DECISION: Hermes plugin); v0 implementation T042–T044 pending. | +| SC-007 install telemetry queryable as evidence | ✅ | Gate install outcome in `market:evidence` (id `e87d0516…`); CLI now auto-posts (T045, fire-and-forget). | + +## Quickstart scenarios + +| Scenario | Status | Notes | +|---|---|---| +| A publish with evidence (+negative) | ✅ | PRs #1/#2 → CI validate → approved → merged → discoverable. Negative: evidence-stripped bundle → exit 5 with field-precise error. | +| B funded install | ✅ | The SC-001 gate run. | +| C refusal / idempotency / refund | ✅ | Unfunded operator → exit 3, no side effects. Re-run → no-op exit 0, no second debit. Refund: live-proven by the first gate attempt (bind-mount guard bug) — compensating pair tx 6/7 restored buyer to 100 before retry. | +| D ledger audit properties | ✅ | 9 ledger tests green; two committed snapshots (commits `bc5e00b`, `d550f85`). | +| E catalog rebuildability | ✅ | Fresh-partition rebuild (`market:catalog-e2e`) from registry returned identical results; runbook documents the switch (memory-api has no delete — as-built amendment recorded). | +| F Store on canary | ⏳ OPEN | M2 Store BUILT (cargstore `m2-store` branch: catalog source, install backend shelling the CLI, detail page, rebrand; AppImage builds). Canary deploy = T040. | +| G Scout on canary | ⏳ OPEN | After T042–T044. | + +## Known gaps / follow-ups + +1. T031 third seed — operator decision (email-triage commercialization or alternative). +2. T040 Store canary deploy (chris-m2o, gunnar-m2o) + Scenario F. +3. T042–T044 Scout v0 as a Hermes plugin per scout/SPIKE.md + Scenario G. +4. Publish status flow (analyze I2): merge doesn't auto-flip `status: published` — manual + step documented in runbook until automated. +5. memory-api partition CRUD (fedlearn T13 follow-up) unlocks true in-place reindex, + listing updates, and delist removal. +6. m2bd-m2o runs the pre-telemetry CLI build; operators get T045 telemetry on next + `uv tool install --force` update. + +## Verdict + +The wedge's commercial loop is CLOSED and verified (SC-001). Remaining work is +surface expansion (Store deploy, Scout v0), one operator decision (third seed), and +recorded platform follow-ups — none block the gate. diff --git a/specs/001-market-first-wedge/tasks.md b/specs/001-market-first-wedge/tasks.md index a6df5ff..7690151 100644 --- a/specs/001-market-first-wedge/tasks.md +++ b/specs/001-market-first-wedge/tasks.md @@ -137,7 +137,7 @@ branch `m2-store`; contracts referenced from this repo) - [x] T045 [P] Install telemetry write-back (FR-014): CLI posts install outcome records to `market:evidence`; indexer folds into listing `stats.installs` — `cli/src/m2_market/telemetry.py` + indexer pass - [x] T046 [P] `reindex` operational check task: run Scenario E, document recovery runbook in `docs/runbook.md` (incl. memory-api split-brain caveat from research.md R4) -- [ ] T047 Run full quickstart.md scenario sweep A–E on canaries; fix gaps; tick spec.md acceptance boxes in a verification note `specs/001-market-first-wedge/VERIFICATION.md` +- [x] T047 Run full quickstart.md scenario sweep A–E on canaries; fix gaps; tick spec.md acceptance boxes in a verification note `specs/001-market-first-wedge/VERIFICATION.md` ---