START_HERE
START_HERE.md
Start here before changing code.
First classify the task
Work out which kind of change this is:
bug fix
refactor
new feature
parser or grammar work
command-line behaviour
help text or docs
packaging or release work
performance work
Then answer these questions
What is the smallest correct layer for the change?
domain model
parser or grammar
CLI dispatch
formatter or renderer
filesystem boundary
shell integration
test only
docs only
What must remain true after the change?
command names
flags and arguments
exit codes
stdout and stderr expectations
machine-readable output format
documented examples
file format compatibility
What is the smallest patch that fully solves the problem?
Read before writing
Read:
the touched module
the nearest tests
the calling code
the help text or docs for that surface
agents/JMP_SPECIFIC.mdif the command line is involved
Choose the right role file
agents/ARCHITECTURE_ARCHIE.mdfor boundaries, naming, module layout, parsing strategyagents/BUILDER_BRIAN.mdfor implementationagents/UX_ARIA.mdfor CLI/TUI/help text/docsagents/RELIABILITY_SEAN.mdfor runtime, packaging, CI, performance, idempotenceagents/RED_TEAM_NORBERT.mdfor weird inputs, safety, shell, destructive operations, contract breakage
Repo bias
Bias toward:
explicit design
small modules
clear command semantics
deterministic tests
boring, durable code
Bias against:
speculative abstraction
global state
output churn
accidental breaking changes
convenience wrappers that obscure control flow