AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
A structured, validated knowledge corpus that people and AI sessions both read from and contribute to, and the tool that holds it to its shape.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Knowledge as Code (KaC) is a framework for knowledge that people and AI sessions both read from and contribute to. It is
plain Markdown in git, reviewed by pull request. But every document has a type, and every type declares a schema.
kac is the tool that checks each document against the schema its type declares. It reports every fault against the
file that caused it. A broken cross-reference fails CI. kac writes the indexes and tables nobody should be keeping by
hand. It also writes the documents out as an export: data an agent can read.README 전문 보기 ↗Knowledge as Code (KaC) keeps your engineering knowledge in git, where people and AI coding sessions can both find it. Standards, decisions, runbooks, known fixes and the glossary each become a record: a Markdown document with a declared type, reviewed by pull request like any other change.
kac is the command-line tool that checks every record against the schema its type declares. It reports each fault
against the file that caused it, and a broken cross-reference fails CI. It writes the indexes nobody should keep by
hand. It also packages the records as a Claude Code plugin, so an agent can look up a standard before it writes
code.
A repository of records, with the schema it runs, is a corpus. People read it as a wiki. Agents read the plugin, built from the same files, so nothing has to be kept true twice.
An agent writes back by filing an issue on your tracker. A person decides whether what it found becomes a record.
std-SECRET.STORE.Compared with alternatives says what KaC adds to a
CLAUDE.md, an organisation's managed instructions, a documentation server or a wiki, and when one of those is enough.
kac validate reportsThis is a standard from examples/engineering, cut short.
kac checks the frontmatter against the schema for standard. Each heading under ## Rules becomes one rule an agent
can search and cite.
---
id: std-SECRET
type: standard
tier: normative
status: draft
implements: [ pol-SCRT.STORE, pol-SCRT.EMBED ]
applies-to:
- all
review-by: "2027-08-26"
owner: human:paul.law
---
# A secret is read from the store at run time
## Rules
### A secret comes from the store
- A service **MUST** read every secret from the managed store, through an identity granted to the workload.
A type, such as a standard or a runbook, declares its fields and rules in a YAML file under .schema/. Adding a
type to your corpus means adding a YAML file. kac itself does not change.
When a record breaks its schema, kac validate reports the file, the check and the line, and exits 1:
services/catalogue-web.md
error [link-resolves] link target 'missing-runbook.md' does not resolve. (services/catalogue-web.md:76)
validated 28 document(s) and 9 template(s), skipped 0 without frontmatter. 1 error(s), 0 warning(s)
You need the .NET 10 SDK and git.
dotnet tool install --global KnowledgeAsCode.Tool
mkdir my-corpus && cd my-corpus
kac new # asks what the corpus is called and which types it adopts, each with a default
kac validate # checks every record against the schema its type declares
kac new writes the framework files and a .corpus.yaml that names your corpus. It runs generate and validate,
then stages what it wrote. The first commit is yours to make.
To give the corpus to an agent, build the plugin:
kac export # writes the records out as data under .dist/export/
kac bundle # packages that export as a Claude Code plugin under .dist/plugin/
bundle ends by printing the command that adds the plugin to Claude Code.
Read next:
examples/ has worked corpora. Read them to see real records, and start your own with
kac new.Later, kac update takes a newer framework. It leaves
every change in the working tree, so git diff is your review.
Early. The tool is tested and published on nuget.org, below
1.0.0 because its commands may still change shape.
The set of types is the part least proven. examples/library and
examples/engineering record which types have met real content.
Every document here describes what exists today, except Design intent, which states the direction. The issue tracker lists everything considered and not yet built.
Stated openly, because each one shapes the design:
.order
drives navigation, and /-rooted links resolve from the corpus root. Everything degrades to plain markdown elsewhere,
but the sharp edges were filed against ADO.kac arrives from nuget.org as a version they pin.Pull requests open once kac reaches version 1.0.0. Until then, an issue is the way to help: a bug, a question or a
correction is welcome, and each one is read.
Contributing to kac says what a pull request
owes and which checks gate it. To publish a version of your own,
Forking kac lists what to replace.
This repository contains the tool, the framework a corpus receives, the corpora that prove both, and the trials that measure its documentation.
| Path | What it contains |
|---|---|
tooling/ | kac, and the tests behind it |
.schema/ | the schema for every type, read by every corpus in this repository |
template/ | the framework documentation, plugin tree and pages a corpus starts from |
manifest.yaml | which files a corpus receives, and where each one lands |
examples/ | the worked corpora, which CI validates on every commit |
docs/ | the documentation site |
trials/ | repeatable experiments on the documentation, with every run kept |
Run the tool this checkout contains from inside one of the example corpora:
cd examples/library
dotnet run --project ../../tooling/kac -- validate
To change kac, read:
kac on the documentation site, for how
kac is put together, built, tested and released, and how to add a check in C# or a report.tooling/README.md for what to know while changing the code.tooling/kac/CHANGELOG.md for what each version brought.Released under the MIT licence, so that any organisation adopting this keeps an unencumbered copy.