diff --git a/CLAUDE.md b/CLAUDE.md index 94b4ac7..f4e585c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,23 +9,27 @@ and agent composition. | | | |---|---| -| **Phase** | Phase 1 complete, Phase 2 next | +| **Phase** | Phases 0–2.5 complete; V1 shipped. Next: Phase 3 (stress testing) or Phase 5 (arxiv-rag) | | **Last worked on** | 2026-04-08 | -| **Last commit** | `7088f45` — Merge PR #7: M1.4 MCP server | +| **Last commit** | `af79358` — Merge PR #36: per-step durations in trace and operational logs | | **Branch** | `main` (clean) | -| **Tests** | 81 passing | +| **Tests** | 123 passing | | **Blocking issues** | None | ## Key Files | File | Purpose | |---|---| -| `researchers/web/models.py` | Research Contract v1 Pydantic models (9 types) | +| `researchers/web/models.py` | Research Contract v1 Pydantic models + `DEPTH_PRESETS` | | `researchers/web/tools.py` | Tavily search + URL fetch with content hashing | -| `researchers/web/trace.py` | JSONL trace logger | +| `researchers/web/trace.py` | JSONL trace logger + step-duration tracking + structlog mirror | | `researchers/web/agent.py` | WebResearcher — inner agentic loop | | `researchers/web/server.py` | FastMCP server wrapping the researcher | -| `cli/main.py` | CLI shim (not yet implemented) | +| `cli/main.py` | CLI: `ask` / `replay` / `costs` | +| `obs/__init__.py` | Structured operational logger (structlog) | +| `obs/costs.py` | Cost ledger + price table | +| `Makefile` | `make install` / `test` / `ask` / `costs` / `clean` | +| `Dockerfile` + `scripts/docker-test.sh` | Reproducible test environment | ## Architecture @@ -47,10 +51,13 @@ and agent composition. | Session | Date | Summary | |---|---|---| | 1 | 2026-04-08 | Project creation, naming, contract design, Phase 0 + Phase 1 complete (81 tests) | +| 2 | 2026-04-08 | Phase 2 (CLI shim) + Phase 2.5 (logging + cost tracking) shipped; V1 ships; depth presets; docker test env; per-step duration tracking; arxiv-rag scoped as M5.1; Phase 3/4/5/6 milestones populated (123 tests) | ## What's Next -**Phase 2: CLI Shim** -1. M2.1 — `marchwarden ask "question"` command (Click CLI, pretty-print) -2. M2.2 — `marchwarden replay ` command -3. M2.3 — First smoke test: "What are ideal crops for a garden in Utah?" +**Recommended next session: Phase 3 (Stress Testing & Calibration)** before Phase 5, since stress tests will likely tighten the contract before a second researcher has to implement it. + +- **Phase 3:** Issue #44 (M3.1 single-axis stress tests) → #45 (M3.2 multi-axis) → #46 (M3.3 confidence calibration) +- **Phase 5 alternative:** Issue #38 (M5.1.1 arxiv-rag ingest pipeline). New deps: pymupdf, chromadb, sentence-transformers, arxiv. Design lives at [wiki/ArxivRagProposal](https://forgejo.labbity.unbiasedgeek.com/archeious/marchwarden/wiki/ArxivRagProposal). + +Open milestones in Forgejo: Phase 3 (3 issues), Phase 4 (3 issues), Phase 5 (8 issues including arxiv-rag tracker), Phase 6 (2 issues).