This document explains how to contribute to dictask. We follow a "Dual-Track"
architecture where human-readable documentation lives in the root and
machine-readable policies live in .machine_readable/.
We welcome contributions in many forms:
-
Rust code: Improving ingest, transcription, store, or review components.
-
Haskell parser: Enhancing NLP task extraction patterns.
-
Idris2 proofs: Strengthening formal verification of task schema.
-
Documentation: Improving AsciiDoc manuals or AI manifests.
-
Testing: Adding property-based tests or integration tests.
-
Read the AI Manifest: Start with
0-AI-MANIFEST.a2mlto understand the repository structure. -
Environment: Use
nix developordirenv allowto set up tools (Rust, Haskell/GHC, Idris2, Zig). -
Task Runner: Use
justto see available commands (just --list).
| Allowed | Use Case |
|---|---|
Rust |
Ingest, transcription, store, review, CLI |
Haskell |
NLP parsing (megaparsec) |
Idris2 |
ABI definitions, formal proofs |
Zig |
FFI bridge |
Bash |
Scripts, automation |
Not allowed: Python, TypeScript, Node.js, Go, Java.
For detailed rules on branch naming, commit messages, and the PR process, please refer to the machine-readable manual at CONTRIBUTING.md.
All contributors are expected to adhere to our ethical standards. See CODE_OF_CONDUCT.md for details.