11// SPDX-License-Identifier: CC-BY-SA-4.0
2- // Template: QUICKSTART-DEV.adoc — clone → build → test → PR
3- // Replace wokelangiser, {{BUILD_CMD}}, {{TEST_CMD}}, {{LANG_STACK}} with actuals
2+ // QUICKSTART-DEV.adoc — clone -> build -> test -> PR
43= wokelangiser — Quick Start for Developers
54:toc:
65:toclevels: 2
76
87== Tech Stack
98
10- {{LANG_STACK}}
9+ * **Rust** — CLI host and codegen (`src/main.rs`, `src/codegen/`, `src/manifest/`)
10+ * **Idris2** — formal ABI proofs (`src/interface/abi/*.idr`)
11+ * **Zig** — C-ABI FFI bridge (`src/interface/ffi/`)
12+ * **Just** — task runner; **Guix/Nix** — reproducible dev environment
1113
1214== Set Up Development Environment
1315
1416=== Option A: Guix (preferred)
1517
1618[source,bash]
1719----
18- guix shell
20+ guix shell -D -f guix.scm
1921----
2022
2123=== Option B: Nix (fallback)
@@ -31,81 +33,86 @@ nix develop
3133----
3234git clone https://github.com/hyperpolymath/wokelangiser.git
3335cd wokelangiser
34- just setup-dev
36+ just doctor # check required tools (just, git, cargo, ...)
3537----
3638
39+ You will need a Rust toolchain (`cargo`) and — for the ABI/FFI layers — `idris2` and `zig`.
40+
3741== Build
3842
3943[source,bash]
4044----
41- {{BUILD_CMD}}
45+ just build # cargo build --release
4246----
4347
4448== Test
4549
4650[source,bash]
4751----
48- {{TEST_CMD}}
52+ just test # cargo test
53+ # FFI tests:
54+ cd src/interface/ffi && zig build test
4955----
5056
5157== Project Structure
5258
5359[source]
5460----
5561wokelangiser/
56- ├── src/ # Source code
57- ├── src/abi / # Idris2 ABI definitions (if applicable)
58- ├── ffi/zig / # Zig FFI bridge (if applicable )
59- ├── tests/ # Test suite
60- ├── docs/ # Documentation
61- ├── .machine_readable / # Checkpoint files (STATE, META, ECOSYSTEM )
62- ├── Justfile # Task runner recipes
63- ├── guix.scm # Guix environment
64- ├── flake.nix # Nix environment ( fallback)
65- └── 0-AI-MANIFEST.a2ml # AI agent entry point
62+ ├── src/main.rs # Rust CLI entry (init/validate/generate/build/run/info)
63+ ├── src/manifest / # wokelangiser.toml parser
64+ ├── src/codegen / # target-language emission (WIP — stubs )
65+ ├── src/interface/abi/ # Idris2 ABI proofs (Types/Layout/Foreign)
66+ ├── src/interface/ffi/ # Zig C-ABI bridge + tests
67+ ├── docs / # Human documentation (canonical )
68+ ├── .machine_readable/ # Machine docs: 6a2/, contractiles/, anchors/
69+ ├── Justfile # Task runner recipes
70+ ├── guix.scm / flake.nix # Dev environments (Guix primary, Nix fallback)
71+ └── 0-AI-MANIFEST.a2ml # AI agent entry point
6672----
6773
6874== Key Recipes
6975
7076[source,bash]
7177----
72- just build # Build the project
73- just test # Run tests
74- just doctor # Self-diagnostic
75- just lint # Lint and format
76- just panic-scan # Security scan via panic-attacker
77- just tour # Guided tour of the codebase
78+ just # build + test (default)
79+ just build # release build
80+ just test # run tests
81+ just lint # clippy (-D warnings)
82+ just fmt # format
83+ just quality # fmt-check + lint + test
84+ just validate ARGS # validate a manifest
85+ just generate ARGS # run the codegen pipeline (WIP)
86+ just doctor # self-diagnostic
87+ just assail # panic-attacker security scan
88+ just tour # guided tour
7889----
7990
91+ Run `just --list` to see every recipe.
92+
8093== Before Submitting a PR
8194
8295[source,bash]
8396----
84- just lint # Format and lint
85- just test # All tests pass
86- just panic-scan # No new security issues
97+ just quality # fmt-check + lint + test must pass
98+ just assail # no new security findings (if panic-attack installed)
8799----
88100
89- == Contractile Invariants
90-
91- Read `.machine_readable/MUST.contractile` before making changes.
92- Key invariants that must never be violated:
93-
94- {{MUST_INVARIANTS}}
101+ Branch from `main`, use Conventional-Commits-style messages, then open a PR — see
102+ link:CONTRIBUTING.md[CONTRIBUTING.md].
95103
96- == LLM/AI Agent Development
104+ == Contractile Invariants
97105
98- If using an AI assistant, load the warmup context first:
106+ Before changing code, read the contractiles under `.machine_readable/contractiles/`
107+ — especially `must/Mustfile.a2ml` (critical invariants: no banned licences, no
108+ unsafe FFI, tests must pass). The matching CI gate is the Governance workflow.
99109
100- [source,bash]
101- ----
102- just llm-context # Outputs role-appropriate context
103- ----
110+ == LLM / AI Agent Development
104111
105- Or read `0-AI-MANIFEST.a2ml` and `.claude/CLAUDE.md` directly.
112+ If using an AI assistant, load context first by reading `0-AI-MANIFEST.a2ml`
113+ (repo entry point) and `.claude/CLAUDE.md` (language and policy rules).
106114
107115== Get Help
108116
109- * **Architecture**: link:EXPLAINME.adoc[EXPLAINME.adoc]
110- * **Wiki**: https://github.com/hyperpolymath/wokelangiser/wiki
111- * **Report issue**: `just help-me`
117+ * **Architecture**: link:EXPLAINME.adoc[EXPLAINME.adoc] and link:docs/developer/ABI-FFI-README.adoc[docs/developer/ABI-FFI-README.adoc]
118+ * **Report an issue**: `just help-me`, or https://github.com/hyperpolymath/wokelangiser/issues
0 commit comments