forked from jason/echo
Phase 5: group-voice docs, onboarding runbook, CHORUS icon — v2.0.0-rc.1
The final phase of CHORUS-PLAN.md. Code- and doc-complete for group use; rc pends live deployment at chorusapi.mpm.to. - Repo README rewritten for CHORUS: group model (schema 5), concurrency posture, configuration, baked-build onboarding, layout, testing, 2.0 version history (ECHO history referenced at the fork tag). - Operator→member voice sweep across SKILL.md (incl. the trigger description, now group-aware), all references, 8 command docs, plugin README; member preferences / semantic layer / triage guidance describe the group model. - docs/ONBOARDING.md: member runbook — vault stand-up, per-member config, bake, deliver, self-onboarding first load, norms, offboarding. - docs/USAGE.md rewritten as the member usage guide. - New icon: chorus-icon.svg + 1024/512/64 PNGs (three voices, one center). - Removed ECHO-era assets (icons, spec PDF, perf briefs); ECHO planning docs retired to docs/history/. All preserved at echo-fork-point. - eval/README documents test_multimember.py. Manifest -> 2.0.0-rc.1; rebuilt chorus-memory.plugin. Verified: routing-sync, 25/25 unit, scaffold, 5 mock e2e suites, run_eval metrics green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# echo-memory — v1.6 TODO
|
||||
|
||||
> Working list for the next minor release. Started 2026-07-03, right after 1.5.1
|
||||
> shipped. **Add findings from 1.5.x live testing to the "Surfaced in testing"
|
||||
> section as they come up** — that's what this doc is for.
|
||||
|
||||
## 1. Migrate the eight slash commands to the skills format
|
||||
|
||||
The installer flags the plugin's `commands/` directory as the legacy format
|
||||
("Both formats work — consider migrating to skills/*/SKILL.md"). Confirmed against
|
||||
the official docs (code.claude.com/docs/en/skills.md, plugins.md):
|
||||
|
||||
- **Non-breaking.** `commands/echo-save.md` → `skills/echo-save/SKILL.md` keeps the
|
||||
invocation name: `/echo-save` works identically. No deprecation date on `commands/`;
|
||||
this is future-proofing, not a fire.
|
||||
- **Do it for the features, not the notice:**
|
||||
- [ ] `allowed-tools` per skill — pre-authorize the resolved `python3 "$ECHO" …`
|
||||
invocations so `/echo-load`, `/echo-health`, `/echo-recall` stop prompting
|
||||
(1.4.2 hand-broadened two commands; the skill format does this properly).
|
||||
- [ ] `disable-model-invocation: true` on the write-heavy entry points
|
||||
(`/echo-sweep`, `/echo-triage`) so only the operator triggers them; leave the
|
||||
read-side ones model-invocable.
|
||||
- [ ] De-duplicate the CoWork `$ECHO` path-resolution block currently copy-pasted
|
||||
into all eight command bodies — each skill folder can carry a shared snippet.
|
||||
- [ ] `argument-hint` carries over as-is; `$ARGUMENTS` substitution unchanged.
|
||||
- [ ] Verify a migrated build installs cleanly on desktop **and** in a CoWork session
|
||||
before deleting `commands/` (deleting the legacy dir is a 2.0 item —
|
||||
see `ROADMAP-2.0.md`; in 1.6 both may coexist).
|
||||
|
||||
## 2. plugin.json completeness (from the old MAINTENANCE checklist)
|
||||
|
||||
- [ ] Add `homepage` / repository URL — now decided: `https://git.alwisp.com/jason/echo`.
|
||||
|
||||
## 3. Vault follow-ups (noticed during the 1.5.0 dead-link cleanup)
|
||||
|
||||
Three of the 27 unwrapped "dead" links were actually **typos pointing at real notes**;
|
||||
they were unwrapped per instruction but repointing them would restore real graph edges:
|
||||
|
||||
- [ ] `projects/active/forgerunner.md` + `_agent/sessions/2026-06-29-2200-forgerunner-v010-ship.md`:
|
||||
"Gitea CI Docker jobs run on the host label" → the decision
|
||||
`decisions/by-date/2026-06-29-gitea-ci-docker-jobs-run-on-the-host-lab.md` ("lab", not "label").
|
||||
- [ ] `projects/active/mpm-brand-voice.md`: "Message Point Media (MPM)" ×3 → the company
|
||||
note `resources/companies/mpm.md` (or whatever is canonical for MPM).
|
||||
|
||||
## 4. Surfaced in 1.5.x testing
|
||||
|
||||
*(add items here as the new plugin gets real use)*
|
||||
|
||||
- [ ] **Lint blind spot: retired dirs masked by the leaf-README route** (found 2026-07-03).
|
||||
`archive/` and `_agent/outputs/` are retired/unrouted pre-0.6 leftovers that survived
|
||||
in the live vault holding only their seed READMEs — and the permissive `leaf-readme`
|
||||
route (`^(.+/)?README\.md$`) matches first, so `vault_lint` never flagged them.
|
||||
Fix: in the path-membership check, test the *directory* against retired/unknown
|
||||
patterns even when the only file in it is a README (e.g. evaluate `dirname(path) + "/"`
|
||||
against retired patterns before letting `leaf-readme` absolve the file), or drop the
|
||||
seed-README exemption inside retired trees. Add a lint test seeding
|
||||
`archive/notes/README.md` → must flag `retired-path`.
|
||||
*Related learning (same cleanup, 2026-07-03):* the REST API **cannot delete
|
||||
directories** — removing a folder's last file orphans the empty folder on disk
|
||||
(the REST listing 404s, falsely reading as gone; Obsidian still shows it — manual
|
||||
deletion required). Documented in `references/api-reference.md` › Deleting Files
|
||||
and in the vault's `resources/references/obsidian-local-rest-api.md`. Any future
|
||||
"remove retired tree" guidance must include the manual folder-cleanup step.
|
||||
Reference in New Issue
Block a user