# Faction — Copilot Instructions
## Meaning
`Crap4Rust` is self-contained.
Do not assume or rely on any other sibling repository or crate.
## Boundary Rule
This repository is **SELF-CONTAINED**.
The LLM **SHALL NOT cross its boundaries without asking**.
That means:
- do not inspect, edit, or rely on files outside `crap4rust/` unless the user explicitly asks
- do not pull assumptions from sibling repositories or crates
- do not propose cross-repository changes by default
## Quality Gates
### Mandatory after every change to `src/` or `tests/` of any crate in the workspace
Run gates:
`powershell -File scripts\run_stage_1.ps1`
### User coding standards
- one struct per file
- no unnecessary comments in code
- unit tests are not allowed. Only integration tests are
- consolidate scattered functions inside structs as appropriate-
- no `&mut` input parameters; prefer return values
- only use `pub mod` in `mod.rs` and `lib.rs`
- split test files so there is one test file per source file, named `<source file name>_tests.rs`
- in `all_tests.rs`, reference test files one by one without `#[path = ...]`
- apply AAA (`Arrange`, `Act`, `Assert`) structure to tests with blank-line separation between the three sections
- use `// Arrange & Act` if there is no separate `Arrange`
- use `// Act & Assert` if there is no separate `Act`
- add the repository copyright and license header to every Rust source file