/ AGENTS.md
AGENTS.md
 1  # Dawn Agents
 2  
 3  This file documents the specialized agents and workflows used in the Dawn project.
 4  
 5  ## Specialized Agents
 6  
 7  - **Generalist**: Handles broad tasks across the codebase.
 8  - **Codebase Investigator**: Specialized in deep analysis and dependency mapping.
 9  - **CLI Help**: Expert on Gemini CLI features and configuration.
10  
11  ## Workflows
12  
13  ### 1. Research
14  Systematically map the codebase and validate assumptions.
15  
16  ### 2. Strategy
17  Formulate a grounded plan based on research.
18  
19  ### 3. Execution
20  Iterative Plan -> Act -> Validate cycle for each sub-task.
21  
22  ## Quality Gates
23  The project uses `just` to enforce quality gates as defined in `GEMINI.md`.
24  
25  ## Technical Stack (Dark Factory)
26  
27  The Dawn project fuses the following tools for a "Dark Factory" operation:
28  
29  - **Nix Flake & Flakebox**: Provides a 100% reproducible development environment. All tools are pinned and managed via `flake.nix`.
30  - **Justfile**: The command proxy for all project operations. Direct use of `cargo` or `nix` (except `develop`) is discouraged.
31  - **Cargo Workspace**: Manages modular crates with dependency sovereignty.
32  - **Sovereign Dependencies**: All external dependencies are defined in the root `Cargo.toml` under `[workspace.dependencies]`.
33  - **Sccache**: Used for rapid recompilation. The cache is configured in `$HOME/.cache/sccache` with a large capacity.
34  - **Wild Linker**: Used on Linux targets for faster linking.
35  - **Bevy CLI**: Primary tool for Bevy-specific builds and lints, especially for Web (WASM).
36  - **Trunk**: Alternative/supporting tool for WASM assets.
37  - **Cargo NDK**: Used for Android compilation.
38  - **Cross-rs**: Used for cross-compiling to Windows and other platforms.
39  
40  ## Operational Procedures
41  
42  1.  **Enter Environment**: Use `nix develop` or `direnv`.
43  2.  **Execute Task**: Follow the Research -> Strategy -> Execution cycle.
44  3.  **Verify**: Run `just quality` or `just full-quality`.
45  4.  **Report**: Save a report in `reports/` for every task completion.
46  5.  **Commit**: Use the `autonomous:` prefix with diff stats.
47  6.  **Ship**: Use `just ship` to verify, commit, and sync.
48  
49  ## Large References Management
50  
51  To maintain a minimalist repository while providing agents with necessary external knowledge, the project employs the following strategy:
52  
53  - **External Refs**: Large projects and specifications are kept in `.config/refs`.
54  - **Submodule Pattern**: These references are maintained as Git submodules where possible.
55  - **Agent Awareness**: Agents should look in `.config/refs` for specialized specifications (e.g., `secretspec`).