# Development
This page covers repository validation,
local wiki authoring commands,
and the publication path from the wiki submodule to GitHub Pages.
## Repository validation
Before sending changes,
run the repository checks that CRIEW development expects:
```bash
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets --all-features
./scripts/check-coverage.sh
```
## Local wiki workflow
Use the cargo entry points when you edit `docs/wiki` from a CRIEW checkout:
```bash
cargo wiki lint
cargo wiki build
cargo wiki serve
```
You can also run:
```bash
cargo wiki check
```
That runs the wiki copy lint and then the local site build.
## Local build behavior
- `cargo wiki lint` runs the copy check with `autocorrect`.
- If `autocorrect` is missing,
the first lint run downloads a local copy into `target/wiki-venv/bin/`.
- `cargo wiki build` stages `docs/wiki` into `target/wiki-docs`
and builds the local site into `target/wiki-site`.
- `cargo wiki serve` stages the wiki,
installs MkDocs into `target/wiki-venv`,
and starts a local preview server.
## Publish path
The publication path is:
`docs/wiki` source repo ->
`scripts/prepare-wiki-site.py` staging ->
`mkdocs.yml` build ->
`.github/workflows/wiki-pages.yml` deploy ->
GitHub Pages
`docs/wiki` is a submodule.
That means the main repository publishes the pinned wiki commit,
not the standalone wiki repository's latest remote state.
After a wiki change lands in the submodule,
the main repository still needs the updated gitlink.
## See also
- [Contribution](Contribution.md)
- [CRIEW wiki home](Home.md)
- [Repository source](https://github.com/ChenMiaoi/CRIEW)
- [Architecture design](https://github.com/ChenMiaoi/CRIEW/blob/develop/docs/architecture/design.md)