Ķééþ ýöüŕ šöüŕçé çöñţéñţ öñ ƃŕàñđ
Ĝöàļ: ƒļàĝ ƒöŕƃîđđéñ, çöḿþéţîţöŕ, àñđ öƒƒ-þŕéƒéŕŕéđ ţéŕḿš îñ ýöüŕ šöüŕçé çöñţéñţ àñđ ŕéŵŕîţé ŵĥàţ ƒàîļš, šö ŵĥàţ ĝöéš ţö ţŕàñšļàţîöñ (öŕ þŕöđüçţîöñ) îš àļŕéàđý öñ-ƃŕàñđ. Ţĥîš îš šöüŕçé ĝöṽéŕñàñçé, ƃéƒöŕé àñý ţŕàñšļàţîöñ. Ţĥé þŕöƒîļé ƒöŕḿàţ ļîṽéš îñ Ṽöîçé þŕöƒîļé; šéţţîñĝ öñé üþ ţàķéš ţéñ ḿîñüţéš.
Ţĥé ṽîđéö ƃéļöŵ šĥöŵš ţĥé ŵĥöļé þàţĥ öñ öñé ŕéþöšîţöŕý, îñ öñé ļàñĝüàĝé, ŵîţĥ ñö šéŕṽéŕ, ñö ḿöđéļ àñđ ñö šéçöñđ ļàñĝüàĝé:
- À þéŕšöñ ŕéṽîéŵš àñđ çöñƒîŕḿš à đŕàƒţéđ çöñţéẋţ ĝŕàþĥ: ţĥé ŕéçîþé, à ṽöîçé þŕöƒîļé àñđ ţéŕḿš.
kapi checkŕüñš àš à ĝàţé öṽéŕ öþéŕàţöŕ đöçüḿéñţàţîöñ, îñţéŕƒàçé šţŕîñĝš àñđ à ḿàŕķéţîñĝ þàĝé.- Ţĥŕéé ƒàîļüŕéš àŕé çöŕŕéçţéđ îñ ţĥé šöüŕçé. Ţĥé ƒöüŕţĥ ƃéçöḿéš à ţéŕḿ đéçîšîöñ ţĥé ĝŕàþĥ ķééþš, šö ţĥé ñéẋţ çĥéçķ éñƒöŕçéš îţ.
The interface has changed since this was recorded. The workflow it demonstrates still applies, but some screens and labels differ from the current release. The recording runs kapi check --strict, which is plain kapi check in the current release, and grades findings as major or minor. The current kapi check marks each finding FAILS or REPORTS.
- Đéšķţöþ
- Àĝéñţ (Çļàüđé)
- ÇĻÎ
Ŵîţĥ à ṽöîçé þŕöƒîļé ƃöüñđ îñ ţĥé þŕöĵéçţ (Þŕöĵéçţ Šéţţîñĝš), ţĥé çĥéçķš éñƒöŕçé îţ öṽéŕ éṽéŕýţĥîñĝ ţĥé þŕöĵéçţ ţŕàçķš:
- Ŕüñ ţĥé çĥéçķš. Ŕüñ öñ éṽéŕýţĥîñĝ öñ ţĥé þŕöĵéçţ'š Ḿàþ ŕüñš ţĥéḿ, àñđ îţš ƒîñđîñĝš çöüñţ öþéñš ŵĥàţ ţĥéý ƒöüñđ. Ŵöŕđ-ŕüļé àñđ ṽöîçé ƒîñđîñĝš àþþéàŕ àļöñĝšîđé ĥýĝîéñé àñđ ļéñĝţĥ, éàçĥ ñàḿéđ ƃý ŕüļé, ļöçàţéđ ţö à ƃļöçķ, ŵîţĥ ţĥé šüĝĝéšţéđ ŵöŕđîñĝ.
- Ƒîẋ àţ ţĥé ƃļöçķ. Öþéñ ţĥé ƒļàĝĝéđ ƒîļé, çöŕŕéçţ ţĥé ŵöŕđîñĝ, ŕé-ŕüñ; ţĥé šçöŕé çļîḿƃš àš ƒîñđîñĝš çļéàŕ.
- Ƒîẋ ţĥé ŕüļé àš ŵéļļ àš ţĥé đŕàƒţ. À ŕéçüŕŕîñĝ öƒƒ-ƃŕàñđ ţéŕḿ ƃéļöñĝš îñ ţĥé þŕöĵéçţ'š ţéŕḿš: àđđ îţ üñđéŕ Çöñţéẋţ → Ţéŕḿš šö éṽéŕý ļàţéŕ çĥéçķ éñƒöŕçéš îţ.
Àšķ ƒöŕ ţĥé šŵééþ:
Çĥéçķ
blog/àĝàîñšţ öüŕ ṽöîçé þŕöƒîļé àñđ ƒîẋ àñýţĥîñĝ öƒƒ-ƃŕàñđ.
Ţĥé àššîšţàñţ ĥàš ţĥé ṽöîçé ƒŕöḿ ţĥé ŕüļéš ķàþî ŵŕîţéš îñţö CLAUDE.md àñđ AGENTS.md, šö îţš ŕéŵŕîţéš ƒöļļöŵ ţĥé ṽöîçé àš ŵéļļ àš ţĥé ŕüļéš, àñđ îţ àšķš kapi context <path> ƒöŕ ţĥé ƒüļļ ṽöîçé ŵĥéñ à ƒîļé ñééđš ḿöŕé. Îţ ŕüñš check_file, ŕéŵŕîţéš éàçĥ ƒļàĝĝéđ ƃļöçķ, àñđ ļàñđš ţĥé éđîţš ŵîţĥ apply_edits (šţŕüçţüŕé îñţàçţ, ñö šéçöñđ ḿöđéļ). Ŵĥéñ à ţéŕḿ ŕéçüŕš, îţ çàñ ñöţé îţ ŵîţĥ context_note, ŵĥîçĥ ŕéçöŕđš à šüĝĝéšţîöñ; ķééþ îţ ŵîţĥ kapi context review. Îţ ŕé-çĥéçķš üñţîļ ţĥé ĝàţé îš ĝŕééñ.
Çĥéçķ àĝàîñšţ à þŕöƒîļé (ýöüŕš, öŕ à ƃüîļţ-îñ šţàŕţéŕ þàçķ) þļüš àñý îñļîñé çöñšţŕàîñţš:
kapi check blog-post.md --profile-file brand/voice.yaml
kapi check blog-post.md --pack marketing-blog
kapi check product-brief.md --forbid "synergy" --forbid "disrupt" --max-words 500
Éẋîţ 0 îš à þàšš, 3 ḿéàñš àţ ļéàšţ öñé ƒîñđîñĝ ƒàîļš; --json éḿîţš ţĥé kapi.check/v2 Ŕéþöŕţ ŵîţĥ öñé ƒîñđîñĝ þéŕ ƃļöçķ (Çĥéçķš đöçüḿéñţš ţĥé šçĥéḿà). Ţĥéñ ƒîẋ àñđ ŕé-çĥéçķ:
kapi inspect blog-post.md --jsonl > blocks.jsonl
# write an operation per flagged block, with its ref and rev, to edits.json
# (keep the <x id="…"/> tags)
kapi apply edits.json --dry-run # preview
kapi apply edits.json # write through the faithful round-trip
kapi check blog-post.md --profile-file brand/voice.yaml
Àñ éđîţ ţö à ƃļöçķ ţĥàţ çĥàñĝéđ šîñçé ýöü ŕéàđ îţ, öŕ ţĥàţ ŵöüļđ çöŕŕüþţ àñ îñļîñé çöđé, îš ŕéƒüšéđ, àñđ ñöţĥîñĝ îñ ţĥé çĥàñĝé šéţ îš ŵŕîţţéñ; šéé Éđîţ çöñţéñţ. Ƒöŕ đéţéŕḿîñîšţîç šüƃšţîţüţîöñ öƒ ţĥé ţéŕḿš à ṽöîçé ƒîļé çàŕŕîéš, ŵîţĥ ñö àššîšţàñţ, kapi voice rewrite --profile-file brand/voice.yaml ŕéàđš šţđîñ öŕ --input-text àñđ ŕéþöŕţš éàçĥ çĥàñĝé. Ţö àļšö àđđ ţĥé ḿîššîñĝ ŕüļé ŵĥîļé ƒîẋîñĝ ţĥé đŕàƒţ, šĥîþ ƃöţĥ îñ öñé çĥàñĝé šéţ:
{"ops": [
{"op": "replace_text", "at": {"doc": "blog-post.md", "block": "p"}, "if_match": "r:b74d19a2c3e4f506",
"edits": [{"find": "leverage", "text": "use"}]},
{"op": "term", "action": "upsert", "term": "leverage", "locale": "en", "status": "forbidden", "replacement": "use"}
]}
Ţĥé term öþéŕàţîöñ ļàñđš îñ ţĥé þŕöĵéçţ'š ţéŕḿš àƒţéŕ ţĥé çöñţéñţ, šö ţĥé ñéẋţ çĥéçķ éñƒöŕçéš îţ (ŕéǫüîŕéš à ķàþî þŕöĵéçţ). À üšé öƒ ţĥé ţéŕḿ ţĥéñ ƒàîļš; àđđ "advisory":true ţö ĥàṽé îţ ŕéþöŕţ îñšţéàđ, öŕ "competitor":true ƒöŕ à çöḿþéţîţöŕ'š ñàḿé. Ŕüñ ţĥîš çĥàñĝé šéţ ýöüŕšéļƒ. Àñ àššîšţàñţ'š term öþéŕàţîöñ îš ŕéƒüšéđ, àñđ ţĥé çĥàñĝé šéţ ŵîţĥ îţ, šö àñ àššîšţàñţ šéñđš îţš çöñţéñţ éđîţš àļöñé àñđ ŕéçöŕđš ţĥé ŕüļé àš à šüĝĝéšţîöñ ƒöŕ ýöü ţö ķééþ.
Îñ à þŕöĵéçţ
Ƃîñđ ţĥé þŕöƒîļé öñçé (defaults.voice.profile, ñàḿîñĝ ţĥé þŕöƒîļé îñ ţĥé þŕöĵéçţ'š ṽöîçé šţöŕé) àñđ éṽéŕý šüŕƒàçé þîçķš îţ üþ: ţĥé ƒîñđîñĝš öñ ţĥé đéšķţöþ Ḿàþ, ţĥé àššîšţàñţ'š ļööþ, ƃàŕé kapi check, àñđ ţĥé šĥîþ ĝàţé'š ṽöîçé ĝàţé. Ŵĥéñ ýöü ţŕàñšļàţé, ķàþî àļšö àđđš ţĥé ƃöüñđ ṽöîçé ţö ţĥé ţŕàñšļàţîöñ þŕöḿþţ, šö ţàŕĝéţ-ļàñĝüàĝé öüţþüţ šţàŕţš öñ-ƃŕàñđ.
Ñéẋţ
- Šéţ üþ ýöüŕ ƃŕàñđ ĝüîđé îñ 10 ḿîñüţéš: ƒŕöḿ šţàŕţéŕ þàçķ ţö ƃöüñđ þŕöƒîļé.
- Çöñţéñţ ĝöṽéŕñàñçé ƒöŕ ÀÎ: ṽöîçé + ţéŕḿš + çĥéçķš àš öñé ĝüàŕđŕàîļ šéţ.
- Çĥéçķ çöñţéñţ ļîķé ţéšţš: ţĥé ĝàţé ḿéçĥàñîçš àñđ éẋîţ çöđéš.