Imported from meoyawn/clis (
AGENTS.md). Install upstream withnpx skills add meoyawn/clis. Copyright stays with the author.
CLI monorepo
- Shell:
fish. - Never undo unrelated worktree changes; they belong to concurrent work.
- When multiple commands need the same new approval prefix, finish the first approval before launching the remaining commands.
- Each CLI directory is a Go module at
github.com/meoyawn/clis/<cli>ingo.work. Read its own instructions before making changes. - Use the same layout: a root
main.gocallsinternal/cli.Main. Keep command code and its tests ininternal/cli, separate service packages ininternal/service, and domain types ininternal/domain. Keep fixtures beside the tests that use them. - Run
go run ./<cli> --helpfrom the workspace root, orgo run . --helpfrom a CLI directory. Follow the service's skill and discover flags through help. - Before handing off code changes, run
moon run <project>:checklocally for every affected CLI and fix failures. Runmoon run :checkwhen changing shared code, workspace dependencies, or CI/toolchain/lint configuration. These checks cover builds, race tests, and lint; report what ran and any blockers in the handoff. - Ensure new test fixtures and other required files are included in Git and
are not ignored (
git status --shortandgit check-ignore -v <path>). Local checks can pass with ignored files that will be missing in CI; verify fixture changes from a clean checkout when needed. - CI uses
moon cito select checks affected by changed files. Use the Go toolchain plugin and shared root.golangci.yml; keep Taskfiles and per-CLI lint configs out of this repo. - Never commit credentials, browser captures, private exports, or real account data. Keep fixtures synthetic or limited to anonymous public catalog data.
- Never send live messages, applications, or meter readings to test a change; use local fixtures and mocks.
