AsDecided
Engineering decisions your agents can follow. Build, as decided.
AsDecided keeps requirements, decisions, designs, roadmaps, and prompts astyped Markdown in your repository. Its native Rust engine validates thatknowledge, retrieves relevant decisions deterministically, and serves itread-only to agents over MCP.
No embeddings, model call, hosted index, or Python runtime is required. Thesame repository state produces the same answer.
Install
Install the native engine and MCP server through Homebrew:
brew install asdecided/tap/asdecided-core
Rust users can install the decided CLI directly from crates.io:
cargo install decided
cargo install decided-mcp
Windows users can install both native executables through Scoop:
scoop bucket add asdecided https://github.com/asdecided/scoop-bucket
scoop install asdecided
Native decided and decided-mcp archives are also published onGitHub Releases.
rac-core is no longer distributed through PyPI. Python API consumers shoulduse asdecided/sdk, which is aclient SDK rather than a second engine implementation.
Start a repository
decided quickstart
decided validate decisions/
decided gate decisions/
decided gate decisions/ --code --base origin/main
New repositories use:
.decided/config.yaml
decisions/
Existing artifact IDs such as RAC-ABC123DEF456 are durable identities and donot change with the product name.
Migrate an existing repository
Migration is explicit and never runs during an ordinary command:
decided migrate layout . --dry-run
decided migrate layout .
The migration moves .rac/ to .decided/ and rac/ to decisions/. Itrefuses to overwrite either destination.
MCP
The official MCP Registry identity is io.github.asdecided/core.
{
"mcpServers": {
"asdecided": {
"command": "decided-mcp",
"args": ["--root", "."]
}
}
}
Architecture
Rust is the product engine and the only CLI/MCP runtime in this repository.The authoritative language-neutral compatibility fixtures live inasdecided-spec. Live-corpus validation isbased on validity, determinism, freshness, and cache/no-cache equality.
Document ingestion remains an ancillary Python connector rather than part ofthe core engine. The retired Python engine is preserved for historical reviewat the immutablepython-engine-finaltag; it is not maintained or run in normal CI.
License
Apache-2.0. See LICENSE and NOTICE.