Skip to content

Commit 73bfa59

Browse files
jgravelleclaude
andcommitted
docs: CLAUDE.md version record for v1.108.142
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent a7c76d0 commit 73bfa59

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

CLAUDE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# jcodemunch-mcp — Project Brief
22

33
## Current State
4-
- **Version:** 1.108.141 — **Gold corpus v2: TS + Go join the channel-accuracy measurement.** Corpus `authored-scenarios-v2` (31 files): TS = extends-based Notifier subclasses + UI-toast homonym trap (AST), PushGateway.send conformer vs ConveyorBelt/ElevatorBank physical-dispatch traps (duck), @On("invoice_paid") handlers vs @Get/@Task substring traps (decorator; TS decorators only exist on class members — probed empirically before authoring, decorator capture confirmed). Go = duck-ONLY by design (implicit interfaces = no declared inheritance to walk; no decorators; Go method ids are unparented `file.go::Push#method`): RingBuffer/PriorityList Push conformers vs Lawnmower (physical) / Recruiter (advocacy) traps. **Round 2 aggregate: ast P=.818/R=1.0 (tp9 fp2), duck P=.5/R=1.0 (tp6 fp6), decorator P=.556/R=1.0 (tp5 fp4); artifact gains `per_language`.** Duck prior 0.65 now clearly optimistic vs 0.5 measured — the visibility the measured_ref exists for; constants STILL declared pending deliberate replay-gated recalibration. measure.py: sha covers .py/.ts/.go, per-language rollups. Registry/measured_refs updated to v2; tests auto-guard (40 green). NO INDEX_VERSION / tool-count / schema change. **Next corpus growth: larger n per channel (esp. duck), maybe Rust/Java; recalibration release stays gated on corpus maturity.**
4+
- **Version:** 1.108.142 — **Docs-only: tool descriptions catch up with the contracts.** `find_implementations` description gains the SCIP channel (missing since v1.108.96) and states the scores are declared priors with `_meta.confidence_provenance` carrying basis + measured P/R; `get_ranked_context` description + README document exact-name pinning (v1.108.137) incl. `_meta.query_shape`. Schema-budget guard forced two tightening rounds (4014→4001→<4000 compact core tier) — trim descriptions, never regenerate the baseline. Also committed the previously-untracked Odysseus works-with retrieval-layer benchmark (`benchmarks/harness/run_odysseus_compare.py` + results). NO behavior/INDEX_VERSION change.
5+
- **Prior (1.108.141):** **Gold corpus v2: TS + Go join the channel-accuracy measurement.** Corpus `authored-scenarios-v2` (31 files): TS = extends-based Notifier subclasses + UI-toast homonym trap (AST), PushGateway.send conformer vs ConveyorBelt/ElevatorBank physical-dispatch traps (duck), @On("invoice_paid") handlers vs @Get/@Task substring traps (decorator; TS decorators only exist on class members — probed empirically before authoring, decorator capture confirmed). Go = duck-ONLY by design (implicit interfaces = no declared inheritance to walk; no decorators; Go method ids are unparented `file.go::Push#method`): RingBuffer/PriorityList Push conformers vs Lawnmower (physical) / Recruiter (advocacy) traps. **Round 2 aggregate: ast P=.818/R=1.0 (tp9 fp2), duck P=.5/R=1.0 (tp6 fp6), decorator P=.556/R=1.0 (tp5 fp4); artifact gains `per_language`.** Duck prior 0.65 now clearly optimistic vs 0.5 measured — the visibility the measured_ref exists for; constants STILL declared pending deliberate replay-gated recalibration. measure.py: sha covers .py/.ts/.go, per-language rollups. Registry/measured_refs updated to v2; tests auto-guard (40 green). NO INDEX_VERSION / tool-count / schema change. **Next corpus growth: larger n per channel (esp. duck), maybe Rust/Java; recalibration release stays gated on corpus maturity.**
56
- **Version:** 1.108.140 — **Phase C of the self-attesting contract: first gold corpus + measured channel accuracy.** New `benchmarks/goldset/`: authored Python corpus (14 files: payments protocol + subclasses, duck conformers incl. test-double/adapter, event-bus decorator handlers) with DELIBERATE traps (module-homonym `PaymentProvider` base → AST FP; electrical/legal `charge` → duck FPs; `/user_created_report` route + `cleanup_user_created_exports` task substring-matches → decorator FPs); `gold.json` labels every pair with rationale + expected channel. `measure.py`: snapshot-to-tmp (dodges the git-identity contains-path trap — NEVER index a subtree of the host repo in place), index, run find_implementations per target, join to labels; UNLABELED surfaced pair = harness error (corpus must stay complete). **Measured round 1: ast P=0.833/R=1.0 (tp5 fp1), duck P=0.6/R=1.0 (tp3 fp2), decorator P=0.6/R=1.0 (tp3 fp2)** → `benchmarks/provenance/channel_accuracy.json` (carries corpus_sha256 + scope note). `tests/test_channel_accuracy.py` (7) RE-RUNS the measurement live in CI + hash-pins the corpus + chains registry↔artifact. provenance.py: `measured_ref` per heuristic channel beside the DECLARED operating constant (deliberately NOT recalibrated — small-n would jitter ranking for false precision; declared priors held up: 0.85/0.833, 0.65/0.6, 0.45 more conservative than 0.6); `MEASURED["implementation_channel_accuracy"]`; `channel_provenance()` surfaces measured_ref (schema already permits it — additionalProperties). LSP/SCIP stay declared, no measured_ref (they're the ground-truth side). README provenance section extended. NO INDEX_VERSION / tool-count / schema change. **Corpus growth path: add languages (TS/Go), grow n per channel, then a DELIBERATE recalibration release flips constants to measured values gated by replay. jMRI normative section still LAST.**
67
- **Version:** 1.108.139 — **Phase B of the self-attesting contract: measured provenance rides the REPORTING surfaces (never the hot path).** New `provenance.measured_provenance()` (fresh-copy of `MEASURED` + contract note) attached at 4 read-the-numbers surfaces: `receipt --export json` (`provenance` block in `render_json`), `receipt` text methodology footer (cites `benchmarks/provenance/measured.json` + "drift-guarded"), `get_session_stats` (`savings_provenance` — tool wrapper in `tools/get_session_stats.py`, storage layer untouched), `jcodemunch_guide` (`provenance` key beside the snippet; verified the guide response stays JSON so the block survives — no custom encoder). NO CLI-flag change (the duplicate receipt subparser surface in server.py NOT touched — output-only). Strengthens the Tim/QPoint verifiability story: an exported ledger now carries its own receipts. New `tests/test_v1_108_139.py` (6). NO INDEX_VERSION / tool-count / schema change. **OPEN PARITY ITEM ([[feedback_suite_parity_for_agent_contracts]]): jdoc/jdata session-stats should ship the same `savings_provenance` shape (needs sibling provenance registries + their own measured artifacts — do NOT copy jcm's numbers into them).** Phase C next: gold corpus per channel (Loc-Bench feeds it); jMRI normative section LAST.
78
- **Version:** 1.108.138 — **Confidence provenance, Phase A of the self-attesting retrieval contract (F-15 #1 from the 2026-07-18 sweep; competitor unnamed in shipped artifacts).** New `retrieval/provenance.py`: `CONFIDENCE_PROVENANCE` registry — every confidence constant carries `basis` ∈ {`declared` (engineering prior, honestly labeled), `measured` (backed by committed artifact `benchmarks/provenance/measured.json`)}. Load-bearing rule: **a prior is NEVER presented as a measurement** — Phase B/C (graduating find_implementations tiers to measured) requires building a gold corpus FIRST (Loc-Bench feeds this); jjg accepted this phased order after my reservations (measurement-validity, fixture-decay drift-guard policy, jMRI-obligation optics). Registry entries: find_implementations 5 channels (all declared), negative_evidence_threshold 0.5, exact_seed_verdict_floor 1.0. `MEASURED` = the two artifacts jcm actually has: token_reduction 99.6%/15 runs/cl100k_base (METHODOLOGY.md) + replay retrieval quality (self_v1_75_0 golden, ndcg/mrr/recall 1.0, CI-gated). ⚠ The 0.992/0.895 Hit@10/MRR figure floated during the sweep is OCTOCODE'S benchmark (versus.php grid cell), NOT ours — never cite it as jcm's. `find_implementations` attaches `_meta.confidence_provenance` (via `channel_provenance()`). Published JSON Schemas in `schemas/` (retrieval-verdict, confidence-provenance, ranked-context-response); `tests/test_provenance.py` (14) drift-guards registry↔code↔artifact↔underlying-benchmark in all directions + jsonschema-validates live responses. README gains "Confidence provenance" subsection. NO new tool / INDEX_VERSION / schema-budget change (JSON-only `_meta` addition; no custom encoder for find_implementations so compact path unaffected). **Phase B next: surface measured munch-bench/methodology numbers as in-band provenance; Phase C: gold corpus per channel; jMRI normative section LAST (SHOULD-with-conformance-path, after suite parity is demonstrable).**

0 commit comments

Comments
 (0)