Šķîþ ţö ḿàîñ çöñţéñţ

Ýöüŕ ƒîŕšţ þŕöĵéçţ

Àţ ţĥé éñđ öƒ ţĥîš þàĝé, öñé ŵöŕđ îš šþéļļéđ öñé ŵàý àçŕöšš à ƒöļđéŕ öƒ đöçüḿéñţš, àñđ éṽéŕý éđîţ îš çĥéçķéđ àĝàîñšţ ţĥàţ ŕüļé. Ţĥé ŕüļé îš ķéþţ öñçé, àñđ Ķàþî Đéšķţöþ, ýöüŕ àššîšţàñţ àñđ ţĥé ÇĻÎ àļļ éñƒöŕçé îţ.

À þŕöĵéçţ îš à çöḿḿîţţéđ ŕéçîþé (kapi.yaml) ţĥàţ šàýš ŵĥîçĥ ƒîļéš çöüñţ àš çöñţéñţ, þļüš ţĥé ŵîŕîñĝ ţĥàţ ļéţš ţĥé çöđîñĝ àĝéñţš îñ ýöüŕ ŕéþöšîţöŕý ŕéàçĥ ķàþî. Ýöüŕ ƒîŕšţ þŕöĵéçţ ĥàš öñé ļàñĝüàĝé. Ýöü öþéñ ţĥé ƒöļđéŕ, šéé ŵĥàţ ķàþî ƒîñđš, đéçîđé ŵĥàţ ƃéçöḿéš à ŕüļé, çĥéçķ àñđ ƒîẋ ţĥé ƒîļéš, þüţ àñ àššîšţàñţ öñ ţĥé þŕöĵéçţ àñđ šĥàŕé ţĥé ŕüļéš. Ļàñĝüàĝéš àŕé à ļàţéŕ šţéþ.

Ţĥé éẋàḿþļéš çöḿé ƒŕöḿ acme-docs, à ĝîţ ŕéþöšîţöŕý ŵîţĥ à README.md àñđ ƒîṽé Ḿàŕķđöŵñ ƒîļéš üñđéŕ docs/. Ţŵö öƒ îţš ƃļöçķš üšé é-ḿàîļ ŵĥéŕé ţĥé öţĥéŕš üšé éḿàîļ.

1. Öþéñ ţĥé ƒöļđéŕ​

Îñšţàļļ Ķàþî Đéšķţöþ àñđ öþéñ îţ. Çļîçķ Çĥööšé à ƒöļđéŕ, öŕ đŕöþ ţĥé ƒöļđéŕ öñ ţĥé ŵîñđöŵ. Ţö ļööķ àŕöüñđ ƒîŕšţ, Ţŕý ŵîţĥ ĶàþîḾàŕţ öþéñš à šàḿþļé þŕöĵéçţ ŵîţĥ ŕüļéš, ţéŕḿš àñđ àñ àššîšţàñţ'š ñöţéš ţö đéçîđé àƃöüţ.

Ţĥé Öþéñ šçŕééñ ŵîţĥ Çĥööšé à ƒöļđéŕ àñđ Ţŕý ŵîţĥ ĶàþîḾàŕţŢĥé Öþéñ šçŕééñ ŵîţĥ Çĥööšé à ƒöļđéŕ àñđ Ţŕý ŵîţĥ ĶàþîḾàŕţ

Ķàþî Đéšķţöþ ŕéàđš ţĥé ƒîļéš àñđ çĥàñĝéš ñöţĥîñĝ üñţîļ ýöü àšķ. Ţĥé þŕöĵéçţ öþéñš öñ îţš Öṽéŕṽîéŵ, ţĥé đéšķţöþ ƒöŕḿ öƒ kapi look. Ƒŕöḿ ţĥéŕé:

  • Ŵĥàţ ýöüŕ ƒîļéš đö ļîšţš ţĥé šüĝĝéšţîöñš, àñđ Đéçîđé àšķš àƃöüţ éàçĥ öñé ŵîţĥ Ķééþ, Ñöţ à ŕüļé öŕ Ļàţéŕ.
  • À ŕöŵ üñđéŕ Ƒîļéš öþéñš ţĥé ƒîļé îñ ţĥé Ŕéàđéŕ, ŵîţĥ éàçĥ ƒîñđîñĝ îñ þļàçé, ţĥé ŕüļéš îñ ţĥé ḿàŕĝîñ àñđ Ƒîẋ ŵĥéŕé ķàþî çàñ ƒîẋ à ƒîñđîñĝ.
  • Ţĥé þŕöĵéçţ'š Þŕöĵéçţ Šéţţîñĝš ĥöļđ ţĥé Àššîšţàñţš ţàƃ, ŵĥîçĥ çöññéçţš àñ àššîšţàñţ, àñđ ţĥé Šĥàŕé ţàƃ.
À þŕöĵéçţ'š Öṽéŕṽîéŵ: ţĥé ƒîļéš, ƃļöçķš, ŕüļéš àñđ ƒîñđîñĝš çöüñţš, Ŵĥàţ ýöüŕ ƒîļéš đö ŵîţĥ ţĥé šüĝĝéšţîöñš, àñđ ţĥé Ƒîļéš ļîšţÀ þŕöĵéçţ'š Öṽéŕṽîéŵ: ţĥé ƒîļéš, ƃļöçķš, ŕüļéš àñđ ƒîñđîñĝš çöüñţš, Ŵĥàţ ýöüŕ ƒîļéš đö ŵîţĥ ţĥé šüĝĝéšţîöñš, àñđ ţĥé Ƒîļéš ļîšţ

Ŕéṽîéŵ ŵĥàţ ýöüŕ àššîšţàñţ ñöţîçéđ ŵàļķš ţĥŕöüĝĥ Đéçîđé öñ ţĥé šàḿþļé.

Walkthrough videoPending recording

Çŕéàţîñĝ à þŕöĵéçţ ƒŕöḿ ţĥé Ñéŵ Þŕöĵéçţ đîàļöĝ, öþéñîñĝ ţĥé ĶàþîḾàŕţ šàḿþļé, àđđîñĝ à çöñţéñţ çöļļéçţîöñ, àñđ ŕéàđîñĝ ţĥé ţŵö-àẋîš šţàñđîñĝ àñđ ŵĥéŕé çöñţéñţ šîţš.

View scene script ↗

2. Šéé ŵĥàţ àþþļîéš​

kapi look, öŕ kapi öñ îţš öŵñ, þŕîñţš ţĥé þŕöĵéçţ àš ķàþî ŕéàđš îţ:

$ kapi look
acme-docs · read 6 files just now

6 files · 18 blocks · 0 rules · 2 findings · kapi suggests 1

What your files do
Name email, not e-mail, e mail 5 of 7 uses

Files
docs/guide.md 5 blocks · 2 findings
docs/faq.md 3 blocks
docs/installation.md 3 blocks
docs/reference/api.md 3 blocks
docs/release-notes.md 2 blocks
README.md 2 blocks

Decide with `kapi rules`. See a file with `kapi look <path>`.

À ñéŵ þŕöĵéçţ ĥàš ñö ŕüļéš, šö ţĥé ƒîŕšţ ļööķ ŕéçöŕđš ŵĥàţ ķàþî šééš îñ ţĥé ƒîļéš àš šüĝĝéšţîöñš. Îţ üšéš ñö ḿöđéļ ƒöŕ ţĥîš. Ĥéŕé ţĥé ƒîļéš ŵŕîţé éḿàîļ ƒîṽé ţîḿéš àñđ é-ḿàîļ ţŵîçé. Ţĥé ţŵö ƒîñđîñĝš àŕé ţĥé üšéš öƒ é-ḿàîļ, ŕéþöŕţéđ àĝàîñšţ ţĥé šüĝĝéšţîöñ àñđ ƒàîļîñĝ ñöţĥîñĝ. kapi look docs/guide.md þŕîñţš ţĥàţ ƒîļé'š ƃļöçķš ŵîţĥ éàçĥ ƒîñđîñĝ ḿàŕķéđ üñđéŕ ţĥé ŵöŕđš îţ îš àƃöüţ. Îñ Ķàþî Đéšķţöþ, ţĥé þŕöĵéçţ'š Öṽéŕṽîéŵ šĥöŵš ţĥé šàḿé ṽîéŵ.

3. Đéçîđé ŵĥàţ ƃéçöḿéš à ŕüļé​

kapi rules àšķš àƃöüţ éàçĥ šüĝĝéšţîöñ, ŵîţĥ ţĥé éṽîđéñçé àñđ ŵĥàţ ķééþîñĝ îţ đöéš. Îñ Ķàþî Đéšķţöþ, Đéçîđé àšķš ţĥé šàḿé ǫüéšţîöñš:

$ kapi rules
[1/1] Which one do your files use? #0rbnyk4bjm
* 1) email 5 blocks in 4 files
2) e-mail 2 blocks in 1 file
3) e mail 0 blocks in 0 files
4) Other…
If you keep "email": the other 2 forms become findings in 2 blocks. Applies to the whole project.
Seen "Create a workspace, then invite your team by e-mail address." in docs/guide.md

Decide with: kapi rules --keep <id>, --drop <id> or --later <id>

Îñ à ţéŕḿîñàļ îţ ŵàîţš ƒöŕ ýöüŕ àñšŵéŕ: k ķééþš ţĥé ḿàŕķéđ ƒöŕḿ, à ñüḿƃéŕ þîçķš àñöţĥéŕ, n šàýš îţ îš ñöţ à ŕüļé, àñđ l ļéàṽéš îţ ƒöŕ ļàţéŕ. À šüĝĝéšţîöñ ļéƒţ ƒöŕ ļàţéŕ ķééþš àđṽîšîñĝ. Öüţšîđé à ţéŕḿîñàļ îţ ļîšţš ţĥé ǫüéšţîöñš, àñđ ýöü đéçîđé ƃý îđ ŵîţĥ kapi rules --keep 0rbnyk4bjm.

À ķéþţ šüĝĝéšţîöñ ƃéçöḿéš à ŕüļé îñ ţĥé þŕöĵéçţ'š ţéŕḿš šţöŕé, ƃéšîđé ţĥé éṽîđéñçé îţ ŕéšţéđ öñ. ķàþî ŕéŵŕîţéš îţš šéçţîöñ öƒ CLAUDE.md àñđ AGENTS.md, šö ţĥé ñéẋţ àĝéñţ šéššîöñ ŕéàđš ţĥé ŕüļé ţĥéŕé:

Say this, not that:
- email, not "e mail" or "e-mail"

--advisory ķééþš à ŕüļé ţĥàţ ŕéþöŕţš àñđ ñéṽéŕ ƒàîļš. kapi rules list ļîšţš ŵĥàţ ţĥé þŕöĵéçţ ķééþš, àñđ kapi rules drop <id> šéţš à ŕüļé àšîđé. Öñļý à þéŕšöñ ķééþš öŕ đŕöþš à šüĝĝéšţîöñ; šéé Ĝŕöŵîñĝ çöñţéẋţ.

4. Çĥéçķ​

Ƃéƒöŕé ýöü ķéþţ îţ, ţĥé šüĝĝéšţîöñ öñļý ŕéþöŕţéđ àñđ kapi check þàššéđ. Ñöŵ îţ ƒàîļš öñ éàçĥ üšé öƒ é-ḿàîļ:

$ kapi check docs/guide.md
outcome rule location message
FAILS terms.vocabulary docs/guide.md:getting-started/next-steps/p#2 Forbidden term "e-mail" found
↳ Use "email" instead
FAILS terms.vocabulary docs/guide.md:getting-started/p Forbidden term "e-mail" found
↳ Use "email" instead

FAIL configured checks: 2 failing, 0 reported · score 50/100
Coverage: 2 analyzer runs completed.
Context: docs/guide.md; voice none (project); terms loaded
Error: quality gate failed

Ţĥé Context: ļîñé ñàḿéš ţĥé ṽöîçé þŕöƒîļé ţĥàţ àþþļîéš àñđ ŵĥéţĥéŕ ţéŕḿš ŵéŕé ļöàđéđ. kapi check ŵîţĥ ñö þàţĥ çĥéçķš ţĥé ŵĥöļé þŕöĵéçţ, àñđ kapi check --ship éñƒöŕçéš ţĥé ŕéļéàšé þöļîçý. Ƃöţĥ éẋîţ 3 ŵĥéñ à ƒîñđîñĝ ƒàîļš, šö ýöü çàñ ŕüñ ţĥé çĥéçķ àš à ÇÎ šţéþ: šéé Šĥîþ ĝàţéš & ÇÎ.

5. Ƒîẋ​

kapi fix àþþļîéš ţĥé ŕéþļàçéḿéñţ éàçĥ ƒàîļîñĝ ŵöŕđ-ŕüļé ƒîñđîñĝ ñàḿéš, ţĥéñ çĥéçķš ţĥé ƒîļéš îţ ŵŕöţé àĝàîñ:

$ kapi fix
2 fixed in 1 file
docs/guide.md 2 fixed: e-mail → email, e-mail → email
kapi check: no failing findings

Éṽéŕý ƃýţé öüţšîđé ţĥé ŕéþļàçéđ ŵöŕđš šţàýš àš îţ ŵàš. Îñ Ķàþî Đéšķţöþ, Ƒîẋ öñ à ƒîñđîñĝ îñ ţĥé Ŕéàđéŕ àþþļîéš ţĥé šàḿé ŕéþļàçéḿéñţ. kapi fix --dry-run þŕîñţš ţĥé çĥàñĝé éàçĥ ƒîļé ŵöüļđ ĝéţ àñđ ŵŕîţéš ñöţĥîñĝ. À ƒîñđîñĝ àƃöüţ ţöñé öŕ šţýļé, öŕ öñé öṽéŕ ŵöŕđš ţĥàţ ĥöļđ à ļîñķ öŕ à þļàçéĥöļđéŕ, ĥàš ñö àüţöḿàţîç ƒîẋ, àñđ kapi fix ļîšţš îţ àš ñééđîñĝ à ŕéŵŕîţé.

6. Þüţ àñ àššîšţàñţ öñ îţ​

kapi connect ŵŕîţéš ŵĥàţ àñ àššîšţàñţ ñééđš ţö ƒöļļöŵ ţĥé ŕüļéš: ţĥé ŕüļéš šéçţîöñ îñ AGENTS.md àñđ CLAUDE.md, àñ ḾÇÞ šéŕṽéŕ éñţŕý ţĥàţ šţàŕţš kapi mcp ƒöŕ ţĥîš þŕöĵéçţ, àñđ ţĥé ķàþî šķîļļ. kapi init àļŕéàđý đîđ ţĥîš ƒöŕ Çļàüđé Çöđé, šö ĥéŕé éṽéŕý ƒîļé îš ķéþţ:

$ kapi connect
Claude Code connected · rules, MCP server, skill
.mcp.json kept
.claude/skills/kapi kept
Edit hook pending: in Claude Code, /plugin marketplace add neokapi/claude-plugins, then /plugin install kapi@neokapi-plugins
Stop hook pending: in Claude Code, /plugin marketplace add neokapi/claude-plugins, then /plugin install kapi@neokapi-plugins
Cursor not connected: no .cursor/ folder here (kapi connect cursor adds it)
VS Code not connected: no .vscode/ folder here (kapi connect vscode adds it)
Codex not connected: no .codex/ folder here (kapi connect codex adds it)

Project
kapi.yaml kept
AGENTS.md kept
CLAUDE.md kept

See what an assistant reads for a file: kapi context <path> --explain

Ţĥéñ ĝîṽé ţĥé àššîšţàñţ àñ öŕđîñàŕý ŵŕîţîñĝ ţàšķ. Îţ ŕéàđš ţĥé ŕüļéš àš îţ šţàŕţš, àšķš kapi context <path> ƃéƒöŕé îţ ŵŕîţéš à ƒîļé ţĥé ŕüļéš šéçţîöñ đöéš ñöţ çöṽéŕ, àñđ ŕüñš kapi check öñ éàçĥ ƒîļé îţ çĥàñĝéđ. Çļàüđé Çöđé àšķš ýöü ţö àþþŕöṽé ţĥé þŕöĵéçţ ḾÇÞ šéŕṽéŕ ţĥé ƒîŕšţ ţîḿé, šö ŕéṽîéŵ .mcp.json ţĥé ŵàý ýöü ŵöüļđ àñý ƒîļé à ŕéþöšîţöŕý šĥîþš.

Ŵĥîļé îţ ŵöŕķš, ţĥé àššîšţàñţ ñöţéš ŵĥàţ ţĥé ƒîļéš ķééþ ţö àñđ ţĥé ŵöŕđîñĝ ýöü çĥàñĝé îñ îţš đŕàƒţš. Éàçĥ ñöţé àŕŕîṽéš àš à šüĝĝéšţîöñ îñ kapi rules, àñđ šţéþ 3 đéçîđéš îţ. Šéé Üšé ŵîţĥ Çļàüđé.

7. Šĥàŕé ţĥé ŕüļéš​

Ţĥé ŕüļéš ļîṽé îñ ýöüŕ ŵöŕķšþàçé öñ ţĥîš ḿàçĥîñé, ķéýéđ öñ ţĥé þŕöĵéçţ'š id:, šö éṽéŕý çĥéçķöüţ ĥéŕé ŕéàđš ţĥé šàḿé öñéš. kapi share šĥàŕéš ţĥéḿ ŵîţĥ ţĥé þéöþļé ŵĥö ŵöŕķ öñ ţĥé þŕöĵéçţ. Îñ à ŕéþöšîţöŕý ŵîţĥ à ŕéḿöţé, --via git ķééþš ţĥéḿ îñ à ŕéƒ öüţšîđé éṽéŕý ƃŕàñçĥ:

$ kapi share --via git
kapi.yaml updated
With your team · through git (origin refs/kapi/context)
pushed 6 changes · pulled none · last sync just now

Çöḿḿîţ ţĥé çĥàñĝé ţö kapi.yaml šö éṽéŕý çĥéçķöüţ šĥàŕéš ţĥŕöüĝĥ ţĥé šàḿé þļàçé. Àƒţéŕ ţĥàţ, kapi share öñ îţš öŵñ ŕéàđš ŵĥàţ ţĥé öţĥéŕš šĥàŕéđ àñđ šĥàŕéš ŵĥàţ ŵàš ķéþţ ĥéŕé. Šéé Šĥàŕîñĝ çöñţéẋţ.

Ļàţéŕ: àđđ ļàñĝüàĝéš​

Ŵĥéñ ţĥé þŕöĵéçţ ñééđš à ţàŕĝéţ ļàñĝüàĝé, àđđ îţ ţö ţĥé ŕéçîþé àñđ ŕüñ kapi up. Šéé Àđđ ļàñĝüàĝéš.

Ñéẋţ​