Development instructions for agents working on this repository.
- Standalone TypeScript package for the put.io CLI
- Main code lives in
src/* - Durable docs live in
docs/* - Consumer-facing skills live in
skills/*
- user docs: README.md
- contributor workflow: CONTRIBUTING.md
- architecture: docs/ARCHITECTURE.md
Primary:
pnpm run verify
Focused:
pnpm run checkpnpm run buildpnpm run testpnpm run coverage
Runtime proofs:
./dist/bin.mjs describe./dist/bin.mjs whoami --output json
- Keep
README.mduser-facing. Put contributor workflow inCONTRIBUTING.md, architecture indocs/*, and consumer usage patterns inskills/*. - Keep command modules thin and move shared behavior into internal Effect-native helpers and services.
- Prefer
Effect, services, layers,Schema, and tagged errors over ad hoc control flow. - Treat JSON output as the machine contract and terminal output as a separate adapter layer.
- Update docs when flags, command behavior, or architecture boundaries change.
- When the public CLI surface or agent-facing setup flow changes, update
README.mdandskills/putio-cli/SKILL.mdtogether so the copy-paste prompt and consumer guidance stay aligned. - Do not hardcode volatile metrics in docs.
- Prefer in-process tests unless the process boundary is the behavior under test.
- Add command-path coverage when the
@effect/cliboundary changes. - Run repo guardrails before closing work, then prove important command-surface changes with the built binary.
skills/*is for reusable consumer-facing skills, not repo onboarding.CLAUDE.mdshould remain a symlink to this file.