Before participating in team work for this repo, read:
docs/team-protocol.md
Always follow this sequence for every ATM message:
- Immediate acknowledgement
- Do the work
- Completion summary
- Immediate completion acknowledgement by receiver
No silent processing.
sc-compose is a standalone template-composition toolchain with no ATM
runtime dependencies.
Two crates:
crates/sc-composer— pure rendering library (minijinja, serde)crates/sc-compose— CLI wrapper over the library (clap, anyhow)
Dependency direction: sc-compose → sc-composer only.
docs/requirements.md— product requirementsdocs/architecture.md— crate architecture and boundariesdocs/project-plan.md— phase and sprint plandocs/git-workflows.md— branch and PR conventionsdocs/cross-platform-guidelines.md— portability rules.claude/skills/rust-development/guidelines.txt— Rust coding guidelines (read before writing code)
cargo build --workspace
cargo test --workspace
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --allViolations are blocking — no exceptions:
- No
agent-team-mail-*crate in anyCargo.toml - No
ATM_HOMEenv var referenced anywhere in source - No
use agent_team_mail::oruse atm_*::imports sc-composermust remain a pure library — no CLI parsing, no ATM code- Any ATM integration belongs in ATM, not here
pm/arch-comp.md— arch-comp (lead, Claude)pm/arch-ccomp.md— arch-ccomp (developer, Codex)