docs: point README / DEVELOPMENT / amy-expert at cli/tests/

After the harness move from tools/marmot-interop/ to cli/tests/,
three doc locations were still describing the old layout:

- cli/DEVELOPMENT.md § Testing — the "round-trip" row pointed at a
  non-existent `cli/src/test/resources/scripts/`, and the "interop
  with other clients" row claimed it was out of scope. Both now name
  `cli/tests/marmot/` and `cli/tests/dm/` with what each covers, and
  the interop-script template points at the concrete test files
  rather than re-inventing a smaller example.

- cli/README.md — the "For an interop-test script template" pointer
  now links to `cli/tests/README.md` alongside the DEVELOPMENT.md
  section.

- .claude/skills/amy-expert/SKILL.md — the "Where things live" tree
  omitted the new `tests/` subtree entirely. Added it with a
  one-line description per suite. Also extended the wire-up checklist
  with a step 7: add a harness case when a new verb changes observable
  wire behaviour.

No content changes elsewhere; just path corrections.
This commit is contained in:
Claude
2026-04-23 21:36:52 +00:00
parent b8a642b406
commit bd88f68dcd
3 changed files with 23 additions and 4 deletions
+12 -1
View File
@@ -104,9 +104,15 @@ Wire-up checklist:
4. Extend `printUsage()` in `Main.kt`.
5. Add the row to `cli/README.md`'s command table.
6. Update `cli/ROADMAP.md` — move the row from 🆕 / 📦 to ✅.
7. If the verb changes observable wire behaviour (a new event kind,
a new relay-routing rule, a new JSON discriminator), add a case
in the appropriate harness under `cli/tests/``cli/tests/marmot/`
for MLS flows, `cli/tests/dm/` for NIP-17, or a new sibling suite
if it's neither.
If you change output shape: note it in the commit message, bump the
example in `README.md`, update any interop fixtures.
example in `README.md`, update any interop fixtures under
`cli/tests/`.
## Where things live
@@ -116,6 +122,11 @@ cli/
├── DEVELOPMENT.md # touch-the-code: architecture, conventions, testing
├── ROADMAP.md # parity matrix + ordered milestones
├── plans/ # dated design docs (use for new subsystems)
├── tests/ # end-to-end shell harnesses against a local relay
│ ├── lib.sh # shared logging + result tracking
│ ├── headless/ # shared amy wrappers + assertions
│ ├── marmot/ # MLS group-messaging interop (vs whitenoise-rs)
│ └── dm/ # NIP-17 DM interop (two amy clients)
└── src/main/kotlin/…/cli/
├── Main.kt # argv dispatch
├── Args.kt # flag parser