What problem does it solve?
Extending the amy CLI in the Amethyst repository requires following strict architectural rules: the cli/ module must stay a thin assembly layer, output must follow a dual text/JSON contract, and business logic must live in commons/ or quartz/. This Skill encodes those rules so new commands are added without breaking the CLI's public API or interop test harnesses.
Core Features & Use Cases
- Command scaffolding: Provides a standard command-file template, the shared route() dispatcher pattern, and a wire-up checklist covering Main.kt dispatch, printUsage(), README, and ROADMAP updates.
- Output contract enforcement: Documents the dual-output rules (human text by default, single-line JSON under --json, exit codes 0/1/2/124) and the Output.emit/Output.error APIs.
- Extract-from-Android recipe: Gives a step-by-step process for moving logic out of amethyst/ into commons/ (handling Context, SharedPreferences, WorkManager dependencies) so CLI commands can call it.
- Use Case: When asked to add an
amy note publish command, use this Skill to place the event-building logic in commons/, write the command file from the template, wire it into Main.kt, and emit results via Output.emit with the correct JSON shape.
Quick Start
Use the amy-expert skill to add a new amy subcommand that publishes a text note, following the command template and wiring it into Main.kt.