1
0
forked from jason/echo

Move field report to docs/history; refresh README repository layout

- docs/history/echo-improvements-prompt.md (ROADMAP-2.0 §5 box ticked)
- README repository layout brought to 1.5.1 reality: root docs
  (CHANGELOG/TODO-1.6/ROADMAP-2.0/docs/history), build.py + dist/
  (gitignored, secret-bearing), current eval harness contents, hooks/,
  and the full scripts/ roster (recall/reflect/triage/queue/
  concurrency/quality/output/doctor/hook modules) with the legacy
  commands/ dir annotated as the TODO-1.6 migration target. Also
  restores the eval-descriptor fix lost in the prior commit (edit was
  applied in memory but never written back).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jason Stedwell
2026-07-03 13:32:07 -05:00
parent 993abdc846
commit 46e4b18a00
3 changed files with 33 additions and 15 deletions
+31 -12
View File
@@ -62,16 +62,26 @@ Vault paths are addressed **at the root** (e.g. `GET /vault/_agent/context/curre
``` ```
echo-v.05/ echo-v.05/
├── README.md · CHANGELOG.md ← this file + per-release change log
├── TODO-1.6.md · ROADMAP-2.0.md ← next-minor working list · packaging/structure major plan
├── docs/history/ ← historical inputs (e.g. the 1.5.0 frontmatter field report)
├── build.py ← deterministic .plugin builder (--bake-key/--strip-key/--label/--outdir)
├── echo-memory.plugin ← built, installable plugin (zip artifact, rebuilt on version bump) ├── echo-memory.plugin ← built, installable plugin (zip artifact, rebuilt on version bump)
├── echo-memory-<version>.plugin ← versioned build artifacts (history) ├── echo-memory-<version>.plugin ← versioned build artifacts (history; moves to Gitea releases in 2.0)
├── eval/ ← credential-free A/B eval harness (0.6 vs 0.7); not bundled ├── dist/ ← per-user baked artifacts (secret-bearing) — GITIGNORED, never committed
├── eval/ ← credential-free eval + test harness; not bundled
│ ├── mock_olrapi.py ← deterministic mock of the REST API + fault injection │ ├── mock_olrapi.py ← deterministic mock of the REST API + fault injection
│ ├── run_eval.py orchestrator (runs the real echo.py vs modeled raw curl) │ ├── mock_olrapi_hifi.pyhigher-fidelity mock (real PATCH heading/frontmatter semantics)
│ ├── run_eval.py ← current-version metrics (retrieval / dedup / write-safety / durability)
│ ├── test_*.py ← end-to-end suites (features, reflect, offline queue, PATCH semantics)
│ ├── results/latest.json ← machine-readable output of the last eval run
│ └── README.md │ └── README.md
└── echo-memory.plugin.src/ ← tracked source tree (the plugin) └── echo-memory.plugin.src/ ← tracked source tree (the plugin — single canonical tree)
├── .claude-plugin/plugin.json ← manifest (name, version, description) ├── .claude-plugin/plugin.json ← manifest (name, version, description)
├── README.md ← plugin-level README ├── README.md ← plugin-level README
├── commands/ ← slash commands: echo-load, echo-save, echo-recall, echo-triage, echo-health, echo-sweep, echo-reflect, echo-doctor ├── hooks/hooks.json ← session hooks: SessionStart auto-load · Stop reflection nudge
├── commands/ ← slash commands (legacy format; skills-format migration = TODO-1.6):
│ echo-load|save|recall|triage|health|sweep|reflect|doctor
└── skills/echo-memory/ └── skills/echo-memory/
├── SKILL.md ← operating procedure (authoritative) ├── SKILL.md ← operating procedure (authoritative)
├── references/ ├── references/
@@ -82,18 +92,27 @@ echo-v.05/
│ ├── api-reference.md ← REST endpoint patterns + routing map │ ├── api-reference.md ← REST endpoint patterns + routing map
│ └── session-log-template.md │ └── session-log-template.md
├── scripts/ ← executable logic — pure Python (run: python3, or python / py -3) ├── scripts/ ← executable logic — pure Python (run: python3, or python / py -3)
│ ├── echo.py ← validated client + high-level CLI (capture/resolve/recall/link/load/scope/lock/config) │ ├── echo.py ← validated client + CLI (capture/resolve/recall/link/triage/load/scope/lock/config/reflect/flush/doctor)
│ ├── echo_config.py ← resolves owner/endpoint/key from the machine-local config (env-overridable) │ ├── echo_config.py ← owner/endpoint/key resolution (baked > env > machine-local config file)
│ ├── echo_index.py ← entity index (registry, resolve, name->path map) │ ├── echo_index.py ← entity index + kind maps (KIND_STATUS/KIND_REQUIRED_FM) + duplicate-gate scoring
│ ├── echo_links.py ← cross-link primitives (Related parsing, bidirectional linking) │ ├── echo_links.py ← cross-link primitives (Related parsing, bidirectional linking)
│ ├── echo_ops.py ← high-level ops (capture, recall, resolve, link, agent-log) │ ├── echo_ops.py ← high-level ops (capture with dup-gate, resolve, link, agent-log)
│ ├── echo_recall.py ← hybrid BM25 + graph recall over entities + sessions/journal (freshness/status priors)
│ ├── echo_reflect.py ← session-reflection pipeline (validate/classify/preview/apply)
│ ├── echo_triage.py ← one-tap inbox triage (reflect pipeline + processing-log audit)
│ ├── echo_queue.py ← offline write-ahead outbox + last-known-good read cache
│ ├── echo_concurrency.py ← advisory-lock context manager + atomic index updates
│ ├── echo_quality.py ← auto-link confidence + slug-collision guards
│ ├── echo_output.py ← --json result envelopes
│ ├── echo_doctor.py ← one-call readiness check (/echo-doctor)
│ ├── echo_hook_session_start.py · echo_hook_stop.py ← the session hooks (fail-safe)
│ ├── routing.json ← canonical machine-readable route manifest (linter enforces it) │ ├── routing.json ← canonical machine-readable route manifest (linter enforces it)
│ ├── vault_lint.py ← read-only invariant + graph-health checker (Vault Health) │ ├── vault_lint.py ← read-only invariant + graph-health + frontmatter-completeness checker
│ ├── check_routing.py ← verifies routing docs stay in sync with routing.json (offline) │ ├── check_routing.py ← verifies routing docs stay in sync with routing.json (offline)
│ ├── test_echo_client.py ← offline regression tests + the routing-sync guard │ ├── test_echo_client.py ← offline unit tests + the routing-sync guard
│ ├── bootstrap.py ← deterministic, idempotent vault setup/repair │ ├── bootstrap.py ← deterministic, idempotent vault setup/repair
│ ├── migrate.py ← deterministic schema migration (dry-run by default) │ ├── migrate.py ← deterministic schema migration (dry-run by default)
│ └── sweep.py ← bring an upgraded vault up to spec (build index + symmetrize links) │ └── sweep.py ← bring a vault up to spec (indexes + frontmatter backfill + link symmetrize)
└── scaffold/ ← verbatim files the bootstrap writes into the vault └── scaffold/ ← verbatim files the bootstrap writes into the vault
├── echo-vault.md ← bootstrap marker ├── echo-vault.md ← bootstrap marker
├── README.vault.md ← thin human signpost ├── README.vault.md ← thin human signpost
+2 -3
View File
@@ -69,9 +69,8 @@ the README. Re-run it per release and refresh the README table.
- [x] Retire `ROADMAP-1.0.md` (fully shipped; in git history) — **done 2026-07-03**. - [x] Retire `ROADMAP-1.0.md` (fully shipped; in git history) — **done 2026-07-03**.
- [ ] Root README "Repository layout" section updated for the post-2.0 tree - [ ] Root README "Repository layout" section updated for the post-2.0 tree
(no versioned zips, no codex tree, skills-only plugin). (no versioned zips, no codex tree, skills-only plugin).
- [ ] Confirm `echo-improvements-prompt.md` (the 1.5.0 field report) either moves to a - [x] `echo-improvements-prompt.md` (the 1.5.0 field report) moved to `docs/history/`
`docs/history/` folder or is deleted — its content is preserved in **done 2026-07-03**.
CHANGELOG 1.5.0 and the git history.
--- ---