PAS (Pascal's Discrete Attractor) - Agent Instructions
Build & Test
cargo build --release # Build CLI binary
cargo test # Run all tests
cargo test -p attractor-dot # Test a single crate
cargo clippy --workspace # Lint
cargo fmt --all -- --check # Format check
The CLI binary is pas. Install with ./install.sh or cargo install --path crates/attractor-cli.
Versioning
All crates share a single version in workspace root Cargo.toml under [workspace.package]. Each crate inherits via version.workspace = true. Never set versions directly in individual crates. Bump only in the workspace root, then run cargo check.
Key Gotchas
- The default
codergenhandler shells out to the localclaudeCLI β it requires Claude Code installed, no API key needed - Direct LLM handlers (OpenAI/Anthropic/Gemini) need their respective
*_API_KEYenv vars - Pipeline files use a strict DOT subset β see
docs/dot-dialect.mdfor the grammar, supported features, and what breaks the parser. Read this before generating or editing.dotfiles. - Integration tests are in
crates/attractor-pipeline/tests/integration.rs
Docs Reference
| Doc | Contents |
|---|---|
docs/dot-dialect.md | Attractor DOT dialect β grammar, value types, supported/unsupported features, pipeline semantics |
docs/guide.md | Pipeline patterns, planning workflow, handler dispatch |
docs/cli-reference.md | CLI commands, flags, environment setup |
docs/task-verification.md | Handler dispatch, goal gates, edge routing, budget guards |
Beads Issue Tracker
This project uses bd (beads) for issue tracking. Run bd prime to see full workflow context and commands.
Quick Reference
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work
bd close <id> # Complete work
Rules
- Use
bdfor ALL task tracking β do NOT use TodoWrite, TaskCreate, or markdown TODO lists - Run
bd primefor detailed command reference and session close protocol - Use
bd rememberfor persistent knowledge β do NOT use MEMORY.md files
Architecture in one line: issues live in a local Dolt DB; sync uses refs/dolt/data on your git remote; .beads/issues.jsonl is a passive export. See https://github.com/gastownhall/beads/blob/main/docs/SYNC_CONCEPTS.md for details and anti-patterns.
Session Completion
When ending a work session, you MUST complete ALL steps below. Work is NOT complete until git push succeeds.
MANDATORY WORKFLOW:
- File issues for remaining work - Create issues for anything that needs follow-up
- Run quality gates (if code changed) - Tests, linters, builds
- Update issue status - Close finished work, update in-progress items
- PUSH TO REMOTE - This is MANDATORY:
git pull --rebase git push git status # MUST show "up to date with origin" - Clean up - Clear stashes, prune remote branches
- Verify - All changes committed AND pushed
- Hand off - Provide context for next session
CRITICAL RULES:
- Work is NOT complete until
git pushsucceeds - NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds