@@ -86,34 +86,96 @@ cd src/ffi/wasm && wasm-pack build --target web
8686
8787`` `bash
8888wokelang/
89- ├── docs/ # Theory docs (EBNF, semantics, etc.)
90- ├── src/
91- │ ├── lexer.mll # Lexer (OCaml)
92- │ ├── parser.mly # Parser (Menhir)
93- │ ├── ast.ml # Abstract Syntax Tree
94- │ ├── types.ml # Type checker
95- │ ├── eval.ml # Interpreter
96- │ ├── repl.ml # REPL
97- │ └── ffi/ # FFI bindings
98- │ ├── vyper/ # Vyper contracts + ABI bindings
99- │ │ ├── contracts/
100- │ │ ├── abi/
101- │ │ └── bindings/
102- │ └── wasm/ # WASM (wasm-pack)
103- ├── examples/
104- │ ├── hello.wl # Hello World
105- │ ├── fib.wl # Fibonacci
106- │ └── gratitude_blockchain.wl # Vyper integration
107- ├── tests/ # Test cases
89+ ├── .bot_directives/ # Bot constraint files for gitbot-fleet
90+ ├── .claude/ # Project-specific AI instructions
91+ ├── .github/workflows/ # CI/CD (Hypatia, CodeQL, Scorecard)
92+ ├── .machine_readable/ # Machine-readable metadata
93+ │ └── 6scm/ # SCM checkpoint files
94+ ├── contractiles/ # Contractile definitions
95+ │ ├── dust/ # External dependencies
96+ │ ├── k9/ # Security constraints
97+ │ ├── lust/ # Desired features
98+ │ ├── must/ # Required features & must runner
99+ │ └── trust/ # Trust boundaries
100+ ├── docs/ # Documentation
101+ │ ├── architecture/ # Architecture docs (COMPILER-ROADMAP.adoc)
102+ │ ├── sessions/ # Development session reports
103+ │ ├── ABI-FFI-README.adoc # ABI/FFI integration guide
104+ │ ├── DEPLOYMENT.adoc # Deployment documentation
105+ │ ├── GAP-ANALYSIS.adoc # Implementation gaps
106+ │ ├── NEXT-STEPS.adoc # Development roadmap
107+ │ ├── PALIMPSEST.adoc # License philosophy
108+ │ ├── PROVEN.md # proven library integration
109+ │ └── WORKERS.adoc # Worker documentation
110+ ├── examples/ # Example WokeLang programs
111+ ├── ffi/
112+ │ └── zig/ # Zig FFI implementation (C ABI)
113+ │ └── src/
114+ ├── license/ # License files
115+ │ └── PMPL-1.0-or-later.txt
108116├── scripts/
109- │ ├── setup.sh # Setup script
110- │ └── build.sh # Build script
111- ├── .devcontainer/ # VS Code Dev Container
112- ├── .github/workflows/ # GitHub Actions CI/CD
113- ├── Cargo.toml # Rust dependencies
114- ├── dune # OCaml build system
115- ├── dune-project
116- └── README.md # This file
117+ │ ├── install-hooks.sh # Install git hooks
118+ │ └── setup.sh # Setup script
119+ ├── site/ # wokelang.org website
120+ │ ├── content/ # Markdown content
121+ │ ├── templates/ # Tera templates
122+ │ └── config.yaml # Site configuration
123+ ├── src/
124+ │ ├── abi/ # Idris2 ABI definitions with formal proofs
125+ │ │ ├── Foreign.idr
126+ │ │ ├── Layout.idr
127+ │ │ └── Types.idr
128+ │ ├── ast/ # Abstract Syntax Tree
129+ │ ├── interpreter/ # Tree-walking interpreter
130+ │ ├── lexer/ # Token generation (logos)
131+ │ ├── parser/ # Parser (tokens → AST)
132+ │ ├── stdlib/ # Standard library modules
133+ │ │ ├── array.rs
134+ │ │ ├── chan.rs # Go-style channels
135+ │ │ ├── io.rs # File I/O with consent
136+ │ │ ├── math.rs
137+ │ │ ├── net.rs # HTTP with consent
138+ │ │ ├── string.rs
139+ │ │ └── time.rs
140+ │ ├── typechecker/ # Hindley-Milner type inference
141+ │ ├── vm/ # Bytecode VM
142+ │ │ ├── bytecode.rs
143+ │ │ ├── compiler.rs
144+ │ │ ├── machine.rs
145+ │ │ └── optimizer.rs
146+ │ ├── main.rs # CLI entry point
147+ │ └── repl.rs # REPL
148+ ├── tests/ # Test suite
149+ ├── .tool-versions # asdf tool versions (rust, deno, idris2, zig)
150+ ├── AI.a2ml # AI assistant instructions
151+ ├── Cargo.toml # Rust dependencies
152+ ├── ECOSYSTEM.scm # Ecosystem relationships
153+ ├── META.scm # Architectural decisions
154+ ├── STATE.scm # Current project state
155+ └── README.adoc # This file
156+
157+ ## 🛠 Development
158+
159+ ### Must Runner (Contractile Enforcement)
160+
161+ WokeLang uses a **Mustfile** (in `contractiles/must/` ) to enforce mandatory checks:
162+
163+ `` `bash
164+ # Run all mandatory checks (security, tests, format)
165+ must run
166+
167+ # Individual checks
168+ just lint # Security checks
169+ just test # Test suite
170+ just fmt # Code formatting
171+ ```
172+
173+ **Mustfile** defines requirements that MUST pass before commits/releases. See `contractiles/` for full contractile system:
174+ - `must/` - Mandatory requirements (MUST pass)
175+ - `lust/` - Desired features (WANT to have)
176+ - `dust/` - External dependencies
177+ - `trust/` - Trust boundaries
178+ - `k9/` - Security constraints
117179
118180## 🛠 Development
119181
0 commit comments