Çöñţéẋţ
À þŕöĵéçţ'š çöñţéẋţ îš ŵĥàţ îţš ŵŕîţîñĝ ķééþš ţö: ţĥé ṽöîçé, ţĥé ŵöŕđš ţö
üšé àñđ ţö àṽöîđ, àñđ ŵöŕđîñĝ àļŕéàđý àþþŕöṽéđ. Ŵŕîţéŕš àñđ àĝéñţš ŕéàđ îţ
ƃéƒöŕé ţĥéý đŕàƒţ, àñđ kapi check šçöŕéš ţĥé ŕéšüļţ àĝàîñšţ ţĥé šàḿé çöñţéẋţ.
Ýöü ŵöŕķ ŵîţĥ ƒöüŕ ţĥîñĝš:
| Ŵĥàţ îţ îš | Ŵĥéŕé ţö ŕéàđ ḿöŕé | |
|---|---|---|
| à ŕüļé | šöḿéţĥîñĝ ţĥé þŕöĵéçţ ķééþš ţö, šüçĥ àš "ŵŕîţé Ǫüîçķçàšţ, ñöţ Ǫüîçķ çàšţ". À çĥéçķ ƒàîļš öñ îţ üñļéšš îţ îš àđṽîšöŕý. | Ĝŕöŵîñĝ çöñţéẋţ |
| à šüĝĝéšţîöñ | à ŕüļé šöḿéƃöđý ñöţîçéđ àñđ ñöƃöđý ĥàš đéçîđéđ àƃöüţ ýéţ. Çĥéçķš ŕéþöŕţ îţ àñđ ñöñé ƒàîļš öñ îţ. | Ĝŕöŵîñĝ çöñţéẋţ |
| ŵĥéŕé îţ àþþļîéš | ţĥé þàŕţ öƒ ţĥé þŕöĵéçţ à ŕüļé öŕ à ṽöîçé ĥöļđš ƒöŕ: öñé þŕöđüçţ, öñé çĥàññéļ, ţĥé ŵĥöļé þŕöĵéçţ, öŕ éṽéŕý þŕöĵéçţ ýöü ŵöŕķ öñ | ƃéļöŵ |
| šĥàŕîñĝ | kapi context sync, ŵĥîçĥ ĝîṽéš ţĥé ŕéšţ öƒ ţĥé ţéàḿ ŵĥàţ ýöü ŕéçöŕđéđ àñđ ţàķéš îñ ŵĥàţ ţĥéý đîđ | Šĥàŕîñĝ çöñţéẋţ |
Ţĥé šàḿé çöñţéẋţ šéŕṽéš ŵŕîţîñĝ îñ öñé ļàñĝüàĝé àñđ îñ ḿàñý. Ļàñĝüàĝé öṽéŕŕîđéš àđĵüšţ à ṽöîçé ƒöŕ öñé ļàñĝüàĝé àñđ ļéàṽé ţĥé ŕéšţ öƒ îţ àļöñé.
Àšķ ŵĥàţ àþþļîéš ĥéŕé
Ƃéƒöŕé ýöü ŵŕîţé à ƒîļé, àšķ ŵĥàţ àþþļîéš ţö îţ: ŕüñ kapi context <path>,
öþéñ ţĥé ƒîļé îñ Àšķ îñ Ķàþî Đéšķţöþ, öŕ ļéţ àñ àššîšţàñţ çàļļ
context_read öṽéŕ ḾÇÞ. Ţĥé àñšŵéŕ îš à šĥöŕţ ƃŕîéƒ:
ţĥé ṽöîçé ţö ŵŕîţé îñ, öñé ļîšţ öƒ ţĥé ŵöŕđš ţö üšé àñđ ţö àṽöîđ ţĥéŕé, àñđ
ŵĥàţ ĥàš ƃééñ šüĝĝéšţéđ ƃüţ ñöţ ýéţ đéçîđéđ. À þéŕšöñ çàñ ŕéàđ îţ, àñđ àñ
àššîšţàñţ ŕéàđš ţĥé šàḿé ţéẋţ.
kapi context docs/billing.md
# Writing docs/billing.md
Voice: Fernwell. Plain, second person, for studio owners who are not accountants. Short sentences.
Say this, not that:
- Fernwell Ledger, not "the Ledger": The product. Always the full name in prose.
- person, not "seat"
Suggested, not yet established:
- Quickcast, not "Quick cast", "Quick-cast", "QuickCast" (claude-code, seen in docs/billing.md)
Nothing else is recorded for this file. As you read the files around it, record with context_note (or `kapi context note`) what they do every time, including names your text does not use: each product, feature and plan name as written, the spelling variety, and a word chosen over a common alternative. Leave alone a word they write more than one way, with no note about it.
Ţĥé ŵöŕđ ļîšţ ĝàţĥéŕš éṽéŕý ŕüļé ţĥàţ ĥöļđš ƒöŕ ţĥé ƒîļé: ţĥé þŕöĵéçţ'š öŵñ
ţéŕḿš, ţĥé ŕüļéš ýöü àþþļîéđ ţö éṽéŕý þŕöĵéçţ, àñđ ţĥé ţéŕḿš öƒ à šţàŕţéŕ þàçķ
ţĥé þŕöĵéçţ üšéš àš îţš ṽöîçé. À ŕüļé ĥéļđ îñ ţŵö þļàçéš îš öñé ļîñé. Ţĥé ṽöîçé
šĥöŵš öñļý ŵĥàţ ţĥé ṽöîçé þŕöƒîļé šéţš; kapi voice show --profile <name>
þŕîñţš àļļ öƒ îţ.
À ñöţé îñ þŕöšé ţĥàţ à þéŕšöñ ķéþţ, šüçĥ àš ŵĥö ţĥé ţéẋţ àđđŕéššéš, îš ļîšţéđ üñđéŕ Éšţàƃļîšĥéđ ñöţéš îñ ţĥé àñšŵéŕ ƒöŕ éàçĥ ƒîļé ŵĥéŕé îţ ĥöļđš.
Ţĥé àñšŵéŕ îš ƒöŕ ţĥé ƒîļé'š çöñţéñţ. Àšķ ŵîţĥ --comments ƃéƒöŕé ýöü ŵŕîţé à
çöḿḿéñţ îñ à šöüŕçé ƒîļé: à þŕöĵéçţ çàñ ĝîṽé îţš çöđé çöḿḿéñţš ĝüîđàñçé öƒ
ţĥéîŕ öŵñ, àñđ ţĥé àñšŵéŕ ţĥéñ ļîšţš ţĥé ļîḿîţš ţĥàţ ĥöļđ ţĥéŕé.
kapi context cmd/main.go --comments
À ŕüļé ĥéļđ ƒöŕ öñé þàŕţ öƒ ţĥé þŕöĵéçţ šàýš ñöţĥîñĝ àƃöüţ ţĥé ŕéšţ, šö ţĥé àñšŵéŕ ƒöŕ à ƒîļé ŵĥéŕé îţ đöéš ñöţ ĥöļđ ñàḿéš ţĥé ŵöŕđîñĝ ţĥàţ šţàýš àš îţ îš. À ŕéñàḿé ķéþţ ƒöŕ ţĥé ĥéļþ þàĝéš ļéàṽéš ţĥé ÀÞÎ ŕéƒéŕéñçé ŵîţĥ ţĥé öļđ ñàḿé, àñđ ţĥé àñšŵéŕ ƒöŕ à ƒîļé ţĥéŕé šàýš šö:
Keep as it is in this file:
- "Workspace" is correct here; do not rename it to "Space". That rename holds only in changelog/ and help/.
kapi check ĥöļđš ţĥé šàḿé ļîñé. "Šþàçé" îñ à ƒîļé üñđéŕ legal/ îš à ƒîñđîñĝ
ţĥéŕé, àñđ îţ ƒàîļš ţĥé çĥéçķ üñļéšš ţĥé ŕüļé îš àđṽîšöŕý.
Ŵîţĥ ñö ƒîļé îñ ĥàñđ (àñ àđ-ĥöç đŕàƒţ, à šţàŕţéŕ þàçķ), ñàḿé à þŕöđüçţ ƒŕöḿ ţĥé ŕéçîþé, à šţöŕéđ ṽöîçé þŕöƒîļé öŕ à šţàŕţéŕ þàçķ îñšţéàđ:
kapi context --profile marketing
--json ĝîṽéš ţĥé ŵĥöļé àñšŵéŕ àš đàţà. --explain àđđš ĥöŵ ķàþî ŕéàçĥéđ îţ:
ŵĥîçĥ þàŕţ öƒ ţĥé þŕöĵéçţ ţĥé ƒîļé šîţš îñ, ŵĥîçĥ ŕéçîþé ļîñé çĥöšé ţĥé ṽöîçé,
ŵĥîçĥ þŕöĵéçţ àñđ ŵĥîçĥ šţàţé öƒ ýöüŕ çöñţéẋţ àñšŵéŕéđ, ŵĥéţĥéŕ ţĥé ƒîļéš öñ đîšķ šţîļļ ḿàţçĥ ŵĥàţ ķàþî ļàšţ ŕéàđ,
àñđ àñý ñöţéš. Ţŵö àñšŵéŕš ŕéàđ ƒŕöḿ ţĥé šàḿé šţàţé çàñ ƃé çöḿþàŕéđ đîŕéçţļý. À
stale àñšŵéŕ ḿéàñš ƒîļéš çĥàñĝéđ šîñçé ķàþî ļàšţ ŕéàđ ţĥéḿ, àñđ kapi up
ŕéàđš ţĥéḿ àĝàîñ.
Öṽéŕ ḾÇÞ ţĥé context_read ţööļ ŕéţüŕñš ţĥé šàḿé àñšŵéŕ ƒöŕ
à þàţĥ, àñđ ţĥé šàḿé ţéẋţ îš à ŕéšöüŕçé: context://docs/billing.md, ŵîţĥ
context://docs/billing.md?format=json ƒöŕ ţĥé đöçüḿéñţ --json þŕîñţš.
Šéàŕçĥ ŵĥàţ ţĥé þŕöĵéçţ šàýš àƃöüţ à ŵöŕđ
Ţĥé öţĥéŕ ǫüéšţîöñ ţàķéš à ŵöŕđ öŕ à þĥŕàšé àñđ àšķš éṽéŕýţĥîñĝ ţĥé þŕöĵéçţ ķééþš. Îñ Ķàþî Đéšķţöþ, šéàŕçĥ ƒöŕ ţĥé ŵöŕđ îñ Àšķ; öñ ţĥé çöḿḿàñđ ļîñé:
kapi context search "sign-in"
Öñé ǫüéšţîöñ ŕéàçĥéš ţĥé ṽöîçé, ţĥé ţéŕḿš àñđ ţĥé çöñţéñţ ḿéḿöŕý ţöĝéţĥéŕ.
Ţĥé àñšŵéŕ ļîšţš ţĥé ţéŕḿš ţö üšé, ţĥé ţéŕḿš ţö àṽöîđ ŵîţĥ ţĥéîŕ ŕéþļàçéḿéñţš,
àñđ ŵöŕđîñĝ àļŕéàđý àþþŕöṽéđ, ĝŕöüþéđ ƃý ķîñđ. Àþþŕöṽéđ ŵöŕđîñĝ ţĥàţ çöñţàîñš à
ţéŕḿ ţö àṽöîđ îš ƒļàĝĝéđ. Éàçĥ ţéŕḿ ŕéþöŕţš ĥöŵ öƒţéñ ýöüŕ çöñţéñţ üšéš îţ, àš
öƒ ţĥé ļàšţ kapi up, šö à ţéŕḿ àđđéđ šîñçé ţĥéñ šĥöŵš ñö üšéš üñţîļ ţĥé ñéẋţ
ŕüñ. Ţĥé đéšķţöþ éẋþļöŕéŕ šĥöŵš ţĥé šàḿé çöüñţš.
--locale ñàŕŕöŵš ţĥé ţéŕḿš ţö öñé ļàñĝüàĝé, àñđ --json þŕîñţš ţĥé šàḿé
đöçüḿéñţ ţĥé ḾÇÞ context_search ţööļ ŕéţüŕñš.
| Ǫüéšţîöñ | Àšķ | Öṽéŕ ḾÇÞ |
|---|---|---|
| ŵĥàţ àþþļîéš ĥéŕé? | kapi context <path> | çàļļ context_read, öŕ ŕéàđ context://<path> |
| ŵĥàţ đö ŵé ķñöŵ àƃöüţ ţĥîš? | kapi context search <query> | çàļļ context_search |
Àñ àñšŵéŕ ŵîţĥ ñöţĥîñĝ îñ îţ
À þŕöĵéçţ ŵîţĥ ñöţĥîñĝ ŕéçöŕđéđ šàýš šö:
# Writing docs/billing.md
Nothing is recorded for this file yet. Write as the surrounding files do.
As you read the files around it, record with context_note (or `kapi context note`) what they do every time, including names your text does not use: each product, feature and plan name as written, the spelling variety, and a word chosen over a common alternative. Leave alone a word they write more than one way, with no note about it.
Ţĥé ļàšţ þàŕàĝŕàþĥ àšķš àñ àššîšţàñţ ţö ñöţé ŵĥàţ îţ šééš, àñđ éàçĥ ñöţé
àŕŕîṽéš àš à šüĝĝéšţîöñ (Ĝŕöŵîñĝ çöñţéẋţ). Ŵĥéñ ţĥé
çĥéçķöüţ çàŕŕîéš çöñţéẋţ ƒîļéš ţĥàţ ķàþî ĥàš ñöţ ŕéàđ ýéţ, ţĥé àñšŵéŕ šţàŕţš
ŵîţĥ à ñöţîçé àšķîñĝ à þéŕšöñ ţö ŕüñ kapi store import.
Ţĥé ĴŠÖÑ çàŕŕîéš ţĥé šàḿé ƒàçţ àš à coverage ṽàļüé, šö à šçŕîþţ öŕ àñ
àššîšţàñţ çàñ àçţ öñ îţ. Îţ çöüñţš ŵĥàţ ĥöļđš ƒöŕ ţĥé ƒîļé: ţĥé ṽöîçé, ţĥé
ţéŕḿš àñđ ţĥé ŕüļéš ýöü ķéþţ. À šéàŕçĥ çöüñţš ţĥé ţéŕḿš îţ ḿàţçĥéđ àñđ ţĥé
àþþŕöṽéđ ŵöŕđîñĝ îţ ƒöüñđ.
coverage | Ŵĥàţ šţööđ ƃéĥîñđ ţĥé àñšŵéŕ |
|---|---|
covered | ţŵö öŕ ḿöŕé öƒ ţĥéḿ |
thin | öñé öƒ ţĥéḿ, öŕ šüĝĝéšţîöñš àļöñé |
empty | ñöţĥîñĝ |
Šüĝĝéšţîöñš çàñ ŕàîšé àñ àñšŵéŕ ƒŕöḿ empty ţö thin àñđ ñéṽéŕ ţö covered.
coverage đéšçŕîƃéš ţĥé àñšŵéŕ, šö à šéàŕçĥ ƒöŕ à ŵöŕđ ñöƃöđý ĥéŕé ĥàš ŵŕîţţéñ
àƃöüţ îš empty ĥöŵéṽéŕ ḿüçĥ ţĥé þŕöĵéçţ ĥöļđš éļšéŵĥéŕé.
Ŕüļéš àñđ šüĝĝéšţîöñš
À ñéŵ þŕöĵéçţ šţàŕţš ŵîţĥ ñö ŕüļéš. Ţĥéý ĝŕöŵ öüţ öƒ öŕđîñàŕý ŵöŕķ: àñ
àššîšţàñţ ñöţéš ţĥé ñàḿé ţĥé ƒîļéš àļŵàýš üšé, öŕ ţĥé ŵöŕđ ýöü çĥàñĝéđ îñ îţš
đŕàƒţ, àñđ éàçĥ ñöţé àŕŕîṽéš àš à šüĝĝéšţîöñ. À šüĝĝéšţîöñ àđṽîšéš ƒŕöḿ ţĥé
ḿöḿéñţ îţ îš ŕéçöŕđéđ. Çĥéçķš ŕéþöŕţ îţ, ñö çĥéçķ ƒàîļš öñ îţ, àñđ îţ ƃéçöḿéš à
ŕüļé ŵĥéñ ýöü ķééþ îţ ŵîţĥ kapi context review, öŕ ŵĥéñ ýöüŕ öŵñ ŵöŕķ ƃàçķš
îţ, šüçĥ àš à ḿéŕĝéđ çĥàñĝé ţĥàţ ŵŕîţéš îţ.
Üšé ţĥé çöñţéẋţ ƃéƒöŕé, đüŕîñĝ àñđ àƒţéŕ ŵŕîţîñĝ:
- Ƃéƒöŕé: àñ àĝéñţ ŕéàđš ţĥé þŕöĵéçţ'š ŕüļéš îñ ţĥé
AGENTS.mdöŕCLAUDE.mdöƒ ţĥé ƒöļđéŕ îţ ŵöŕķš îñ, ŵĥîçĥ ķàþî ŵŕîţéš ƒŕöḿ ţĥé çöñţéẋţ (ƃéļöŵ).kapi context <path>ĝîṽéš à þéŕšöñ, öŕ àñ àĝéñţ ţĥàţ ñééđš ḿöŕé ţĥàñ ţĥöšé ƒîļéš šţàţé, ţĥé ƒüļļ àñšŵéŕ ƒöŕ öñé ƒîļé. - Đüŕîñĝ: àñ àĝéñţ ñöţéš ŵĥàţ îţ šééš àñđ ŵĥàţ ýöü çĥàñĝé, àš šüĝĝéšţîöñš ƒöŕ ýöü ţö đéçîđé àƃöüţ. À ñöţé àþþļîéš öñļý ŵĥéŕé ţĥé àĝéñţ šàŵ îţ, îñ ţĥàţ ƒîļé'š þàŕţ öƒ ţĥé þŕöĵéçţ; àþþļýîñĝ îţ ḿöŕé ŵîđéļý îš ýöüŕ đéçîšîöñ îñ ŕéṽîéŵ, àñđ éṽîđéñçé àļöñé ñéṽéŕ ŵîđéñš îţ.
- Àƒţéŕ:
kapi checkšçöŕéš ţĥé ŕéšüļţ ƃļöçķ ƃý ƃļöçķ àĝàîñšţ ţĥé šàḿé ŕüļéš, ŵîţĥ àñ éẋîţ çöđé, šö ţĥéý ĥöļđ îñ ţĥé éđîţîñĝ ļööþ àñđ àĝàîñ îñ ÇÎ ŵîţĥ ñö àššîšţàñţ þŕéšéñţ.
Ĝŕöŵîñĝ çöñţéẋţ çöṽéŕš ñöţîñĝ, ŕéṽîéŵîñĝ, àñđ ĝöîñĝ ƃàçķ ţö àñ éàŕļîéŕ šţàţé.
Ŕüļéš ƒîļéš ƒöŕ àĝéñţš
Àñ àĝéñţ ļöàđš ţĥé AGENTS.md öŕ CLAUDE.md öƒ ţĥé ƒöļđéŕ îţ ŵöŕķš îñ ƃéƒöŕé
îţ ŕéàđš àñýţĥîñĝ éļšé, šö ķàþî ŵŕîţéš ţĥé þŕöĵéçţ'š ŕüļéš ţĥéŕé. Ţĥé ŕööţ'š
ƒîļéš šţàţé ţĥé ŕüļéš ţĥàţ ĥöļđ éṽéŕýŵĥéŕé àñđ ñàḿé ţĥé ƒöļđéŕš ŵîţĥ ŕüļéš öƒ
ţĥéîŕ öŵñ; éàçĥ öƒ ţĥöšé ƒöļđéŕš ĝéţš ƒîļéš ţĥàţ šţàţé öñļý ŵĥàţ ĥöļđš ţĥéŕé:
îţš ṽöîçé ŵĥéñ îţ ĥàš öñé öƒ îţš öŵñ, ŵĥàţ ţö ŵŕîţé àñđ ŵĥàţ ñöţ, ţĥé ŵöŕđîñĝ
ţĥàţ šţàýš àš îţ îš, ţĥé ñöţéš à þéŕšöñ ķéþţ ţĥàţ ĥöļđ ţĥéŕé, àñđ ţĥé
kapi check ļîñé ţĥàţ ṽéŕîƒîéš ţĥé ŕéšüļţ. Ƒöŕ à
þŕöĵéçţ ţĥàţ ŕéñàḿéđ Ŵöŕķšþàçéš ţö Šþàçéš îñ îţš ĥéļþ þàĝéš àñđ çĥàñĝéļöĝ, ţĥé
ļéĝàļ ţéŕḿš ĝéţ ţĥîš:
<!-- kapi:rules (written by kapi from this project's context; edit outside this section) -->
## Writing rules for legal/
These rules hold for the files in legal/, beside the project's rules in the root AGENTS.md. Where the two differ, follow this file. kapi writes this section from the project's context, so edit outside it.
Voice: Legal. Exact and formal.
This voice takes the place of the project's voice for these files.
Keep as it is:
- "Workspace" is correct here; do not rename it to "Space". That rename holds only in changelog/ and help/.
Before you finish, run `kapi check <file>` on each file you changed and fix what it reports. `kapi context legal/<file>` gives the full answer for one file when you need more than this section.
<!-- /kapi:rules -->
ķàþî öŵñš ţĥé ḿàŕķéđ šéçţîöñ àñđ ñöţĥîñĝ éļšé: ýöüŕ öŵñ ţéẋţ îñ ţĥé ƒîļé šţàýš
àš ýöü ŵŕöţé îţ, àñđ à CLAUDE.md ţĥàţ îḿþöŕţš @AGENTS.md ĝéţš ñö šéçţîöñ öƒ
îţš öŵñ. À ƒîļé ķàþî çŕéàţéđ îš ŕéḿöṽéđ öñçé îţš ƒöļđéŕ ĥàš ñö ŕüļéš öƒ îţš
öŵñ; à ƒîļé ŵîţĥ ýöüŕ ţéẋţ îñ îţ öñļý ļöšéš ţĥé šéçţîöñ. Éàçĥ ļîšţ îš çàþþéđ,
ḿöšţ îḿþöŕţàñţ ŕüļéš ƒîŕšţ, ŵîţĥ ţĥé çöḿḿàñđ ţĥàţ ļîšţš ţĥé ŕéšţ, àñđ ţĥé
öüţþüţ îš ţĥé šàḿé ƒöŕ ţĥé šàḿé çöñţéẋţ, šö ţĥé ƒîļéš àŕé šàƒé ţö çöḿḿîţ àñđ
ţĥéîŕ đš šĥöŵ ŵĥàţ çĥàñĝéđ îñ ţĥé ŕüļéš.
kapi init ŵŕîţéš ţĥé ƒîļéš, àñđ ķàþî ŕéŵŕîţéš ţĥéḿ ŵĥéñ ţĥé çöñţéẋţ çĥàñĝéš:
àƒţéŕ à đéçîšîöñ îñ kapi context review öŕ îñ Ķàþî Đéšķţöþ, àƒţéŕ
kapi context sync, àñđ àţ ţĥé éñđ öƒ kapi up. kapi context sync --files-only
ŵŕîţéš ţĥéḿ öñ đéḿàñđ, àñđ kapi init --no-rules-files ļéàṽéš à þŕöĵéçţ
ŵîţĥöüţ ţĥéḿ.
Ŵĥéŕé à ŕüļé àþþļîéš
Đéŕéñţ þàŕţš öƒ à þŕöĵéçţ çàñ ñééđ đéŕéñţ ĝüîđàñçé. À ƒŕàḿéŵöŕķ àñđ îţš çöḿþàñîöñ àþþ ḿàý ĥàṽé đîšţîñçţ ṽöîçéš; à ḿàŕķéţîñĝ þàĝé àñđ àñ ÀÞÎ ŕéƒéŕéñçé ḿàý üšé đéŕéñţ ŕéĝîšţéŕš. Ţĥé ŕéçîþé šàýš ŵĥîçĥ þàŕţ öƒ ţĥé þŕöĵéçţ éàçĥ ƒîļé ƃéļöñĝš ţö, àļöñĝ ţŵö šţŕüçţüŕàļ àẋéš:
| Àẋîš | Àñšŵéŕš | Îñ ţĥé ŕéçîþé |
|---|---|---|
| þŕöđüçţ | ŵĥîçĥ ţĥîñĝ ţĥîš ƃéļöñĝš ţö | à ķéý üñđéŕ profiles: |
| çĥàññéļ | ŵĥîçĥ šüŕƒàçé îţ šĥîþš öñ | à channel: öñ ţĥé çöļļéçţîöñ, àš product/channel |
Éàçĥ ķéý üñđéŕ profiles: îš à þŕöđüçţ, àñđ ţĥé çĥàññéļš îţ ļîšţš àŕé ţĥé
šüŕƒàçéš ţĥàţ þŕöđüçţ šĥîþš öñ. À çöļļéçţîöñ šàýš ŵĥéŕé îţš ƒîļéš ƃéļöñĝ ŵîţĥ
öñé channel:. À þŕöĵéçţ ŵîţĥ öñé ṽöîçé ƒöŕ éṽéŕýţĥîñĝ đéçļàŕéš ñö þŕöđüçţš
àţ àļļ, àñđ ţĥé þŕöĵéçţ đéƒàüļţš ĥöļđ ƒöŕ éṽéŕý ƒîļé.
profiles:
acme:
channels: [docs, app, landing]
voice:
profile: acme
collections:
- name: acme-docs
channel: acme/docs
base: web
content:
- path: "docs/**/*.md"
- name: acme-landing
channel: acme/landing
content:
- path: "site/pages/**/*.mdx"
Ţĥîš éẋàḿþļé đéƒîñéš öñé þŕöđüçţ ŵîţĥ ţĥŕéé çĥàññéļš. Àđđ àñöţĥéŕ ķéý üñđéŕ
profiles: ƒöŕ à šéçöñđ þŕöđüçţ. Çĥàññéļ ñàḿéš ƃéļöñĝ ţö ţĥéîŕ þŕöđüçţ, šö ţŵö
þŕöđüçţš çàñ éàçĥ ĥàṽé à docs çĥàññéļ ŵîţĥ đéŕéñţ ĝüîđàñçé.
À çöļļéçţîöñ'š channel: îš àļŵàýš ŵŕîţţéñ product/channel. À ƃàŕé çĥàññéļ
ñàḿé îš à ļöàđ éŕŕöŕ, éṽéñ ŵĥéñ éẋàçţļý öñé þŕöđüçţ đéçļàŕéš îţ, àñđ ţĥé éŕŕöŕ
ñàḿéš ţĥé ǫüàļîƒîéđ ƒöŕḿ ţö þàšţé. Þŕöđüçţš àñđ çĥàññéļš àŕé ļöŵéŕçàšé,
šţàƃļé îđéñţîƒîéŕš ţĥàţ àŕé ñéṽéŕ ţŕàñšļàţéđ, šö ĝüîđàñçé šţàýš àţţàçĥéđ ŵĥéñ
à ţéŕḿ îš ŕéŵöŕđéđ. Ţĥé þŕöĵéçţ ƒîļé
ŕéƒéŕéñçé çöṽéŕš ţĥé ƒîéļđ
šĥàþéš îñ ƒüļļ.
Ƒüŕţĥéŕ àẋéš
À þŕöĵéçţ çàñ ñàḿé ƒüŕţĥéŕ đîḿéñšîöñš îţš çöñţéñţ ṽàŕîéš àļöñĝ, üñđéŕ
defaults.coordinates. Éṽéŕý çöļļéçţîöñ îñĥéŕîţš ţĥéḿ, àñđ à çöļļéçţîöñ ţĥàţ
đéŕš öñ öñé àẋîš öṽéŕŕîđéš ţĥàţ àẋîš àļöñé ŵîţĥ îţš öŵñ coordinates:.
defaults:
coordinates:
brand: acme
collections:
- name: acme-docs
channel: acme/docs
coordinates:
mode: how-to
content:
- path: "docs/**/*.md"
Ţŵö àẋéš ĥàṽé à çöñṽéñţîöñàļ šþéļļîñĝ. brand îš çöàŕšéŕ ţĥàñ þŕöđüçţ: à
ŵöŕķšþàçé ĥàš ƃŕàñđš, à ƃŕàñđ ĥàš þŕöđüçţš, à þŕöđüçţ šĥîþš çĥàññéļš. mode îš
ţĥé ķîñđ öƒ đöçüḿéñţ, îñ ţĥé šéñšé öƒ ţĥé Đîáţàẋîš šçĥéḿé: tutorial,
how-to, reference öŕ explanation, ŵĥîçĥ ļéţš ţüţöŕîàļš àñđ àŕçĥîţéçţüŕé
ñöţéš ţàķé đéŕéñţ ĝüîđàñçé. Đéçļàŕé ŵĥàţéṽéŕ àẋîš ýöüŕ çöñţéñţ ñééđš.
Àñ àẋîš çàñ ƃé ĝîṽéñ à ķîñđ üñđéŕ axes:, àñđ ŵîţĥ à ķîñđ öñé ṽàļüé çàñ šîţ
îñšîđé àñöţĥéŕ. À ĝéö àẋîš ţàķéš þļàçéš: çöüñţŕîéš, ţĥéîŕ çöüñţîéš, àñđ ţĥé
çîţîéš àñđ ţéŕŕîţöŕîéš ýöüŕ ŕéçîþé đéçļàŕéš. À ŕüļé ķéþţ ƒöŕ Ñöŕŵàý ţĥéñ ĥöļđš
ƒöŕ çöñţéñţ ŵŕîţţéñ ƒöŕ Öšļö. Þļàçé çöñţéñţ îñ ḿàŕķéţš àñđ àŕéàš
ŵàļķš ţĥŕöüĝĥ îţ.
Þŕöđüçţ àñđ çĥàññéļ àŕé ñéṽéŕ ŵŕîţţéñ üñđéŕ coordinates:. Ţĥéý çöḿé ƒŕöḿ à
çöļļéçţîöñ'š channel:, àñđ à ŕéçîþé ţĥàţ ŕéþéàţš ţĥéḿ ţĥéŕé îš ŕéĵéçţéđ àţ
ļöàđ.
Ŵĥàţ ĥöļđš ƒöŕ à þŕöđüçţ
Ţĥé ṽöîçé, ţĥé ţéŕḿš àñđ ţĥé çöñţéñţ ḿéḿöŕý àŕé ķéþţ îñ ýöüŕ ŵöŕķšþàçé, öñé šéţ þéŕ þŕöĵéçţ. Ţĥé ŕéçîþé šàýš ŵĥîçĥ ṽöîçé àñđ ŵĥîçĥ ţéŕḿš ĥöļđ ƒöŕ éàçĥ þŕöđüçţ:
| Çöñţéẋţ | Ĥöļđš | Çĥöšéñ ƃý |
|---|---|---|
| ṽöîçé þŕöƒîļé | ţöñé, ŕéĝîšţéŕ, šţýļé ḿéàšüŕéš àñđ þàţţéŕñ ŕüļéš | defaults.voice, öŕ à þŕöđüçţ'š voice: |
| ţéŕḿš | ţĥé àþþŕöṽéđ ŵöŕđ ƒöŕ éàçĥ çöñçéþţ, þéŕ ļàñĝüàĝé, àñđ éṽéŕý ŵöŕđ ţö àṽöîđ | ţĥé þŕöĵéçţ'š öŵñ ţéŕḿš, öŕ à þŕöđüçţ'š termstore: |
| çöñţéñţ ḿéḿöŕý | ŵöŕđîñĝ àļŕéàđý þŕöđüçéđ àñđ àþþŕöṽéđ | ţĥé þŕöĵéçţ'š öŵñ çöñţéñţ ḿéḿöŕý |
profiles:
acme-labs:
channels: [docs]
voice:
profile: acme-labs # this product's voice
termstore: labs-terms # this product's terms
Éṽéŕý ŵöŕđîñĝ ŕüļé ("ŵŕîţé ţĥîš, ñöţ ţĥàţ") îš à ţéŕḿ, ŵîţĥ ţĥé šàḿé šĥàþé àš
ţĥé term_rules: à çĥéçķ öŕ à ţŕàñšļàţîöñ šţéþ ţàķéš: à ţéŕḿ, îţš ŕéþļàçéḿéñţ
àñđ ŵĥéţĥéŕ à ṽîöļàţîöñ ƒàîļš ţĥé çĥéçķ. À ṽöîçé ƒîļé ḿàý çàŕŕý šüçĥ ŕüļéš
üñđéŕ terms:, àš ţĥé šţàŕţéŕ þàçķš đö, àñđ kapi store import ḿöṽéš ţĥéḿ îñţö
ţĥé þŕöĵéçţ'š ţéŕḿš. Ţĥé ṽöîçé þŕöƒîļé
ŕéƒéŕéñçé ļîšţš ţĥé ƒîéļđš.
À çöļļéçţîöñ ŵîţĥ ñö ţàŕĝéţ ļàñĝüàĝé çàñ šàý šö ŵîţĥ source_only: true, šö à
ŕüñ ŕéàđš àñđ çĥéçķš îţ àñđ ŵŕîţéš ñöţĥîñĝ ƃàçķ; ţĥé þŕöĵéçţ ƒîļé
ŕéƒéŕéñçé çöṽéŕš îţ.
Ŵĥéñ ḿöŕé ţĥàñ öñé ṽöîçé çöüļđ àþþļý
Ţĥé ḿöšţ šþéçîƒîç ĝüîđàñçé ŵîñš:
À ƒîļé ţàķéš ţĥé ḿöšţ šþéçîƒîç ĝüîđàñçé ţĥé ŕéçîþé ĝîṽéš îţ; à çöļļéçţîöñ ŵîţĥ ñö çĥàññéļ ţàķéš ţĥé þŕöĵéçţ đéƒàüļţ.
- À þŕöđüçţ çĥööšéš à ṽöîçé àñđ ţéŕḿš. Îţš
voice:ŵîñš àš ŵŕîţţéñ; ƒàîļîñĝ ţĥàţ, à ṽöîçé þŕöƒîļé šţöŕéđ üñđéŕ ţĥé þŕöđüçţ'š öŵñ ñàḿé; ƒàîļîñĝ ţĥàţ,defaults.voice. Ţéŕḿš çöḿé ƒŕöḿ ţĥé þŕöđüçţ'štermstore:, éļšé ƒŕöḿ ţĥé þŕöĵéçţ'š öŵñ ţéŕḿš. - À çĥàññéļ àđĵüšţš ţĥàţ ṽöîçé. À çĥàññéļ éñţŕý îñšîđé ţĥé ṽöîçé þŕöƒîļé ŕéþļàçéš ţĥé ţöñé, ţĥé šţýļé, öŕ ƃöţĥ, šö à ļàñđîñĝ-þàĝé ŕéĝîšţéŕ îš ŵŕîţţéñ öñçé ƃéšîđé ţĥé ṽöîçé îţ ṽàŕîéš. À çĥàññéļ ŵîţĥ ñö éñţŕý ţàķéš ţĥé ƃàšé ṽöîçé.
Ţéŕḿš ĥöļđ öñ éṽéŕý çĥàññéļ. Ţĥé ŵöŕđš à þŕöđüçţ üšéš àñđ àṽöîđš àŕé ţĥé šàḿé öñ éṽéŕý šüŕƒàçé îţ šĥîþš öñ, šö à çĥàññéļ çĥàñĝéš ţĥé ŕéĝîšţéŕ àñđ ļéàṽéš ţĥé ţéŕḿš àļöñé.
ķàþî çĥéçķš ţĥéšé đéçļàŕàţîöñš ŵĥéñ îţ ļöàđš ţĥé ŕéçîþé, àñđ ŕéĵéçţš üñķñöŵñ çĥàññéļš, üñǫüàļîƒîéđ çĥàññéļ ŕéƒéŕéñçéš, îñṽàļîđ îđéñţîƒîéŕš àñđ à ṽöîçé ñàḿéđ ţŵö ŵàýš.
kapi context <path> --explain šàýš ŵĥîçĥ öƒ ţĥéšé çĥöšé ţĥé ṽöîçé ƒöŕ ţĥàţ
ƒîļé.
Ĝüîđàñçé ŵîţĥ đàţéš
À þŕöđüçţ'š ĝüîđàñçé çàñ ĥöļđ ƒöŕ à þéŕîöđ, ĝîṽéñ àš à đàţé öŕ àñ ŔƑÇ3339
îñšţàñţ. valid_from îš îñçļüšîṽé àñđ valid_to éẋçļüšîṽé, šö à valid_to
đàţé éẋçļüđéš ţĥàţ ŵĥöļé đàý.
profiles:
acme-relaunch:
channels: [landing]
voice:
profile: acme-relaunch
valid_from: 2026-09-01
valid_to: 2026-12-01
Öüţšîđé îţš đàţéš ţĥé þŕöđüçţ'š ĝüîđàñçé šţöþš ĥöļđîñĝ, àñđ ţĥé ƒîļéš ƒàļļ ƃàçķ ţö ţĥé ñéẋţ ĝüîđàñçé üþ, àš îƒ ţĥé þŕöđüçţ ŵéŕé ñöţ đéçļàŕéđ. Öñé ŕüñ üšéš öñé îñšţàñţ ţĥŕöüĝĥöüţ, šö à ļöñĝ ŕüñ çàññöţ çŕöšš à ƃöüñđàŕý ĥàļƒŵàý. Ţĥé ƒîŕšţ ŕüñ, çĥéçķ öŕ þüšĥ ţĥàţ ƒàļļš ƃàçķ šàýš šö:
governance: profile "acme-relaunch" expired 2026-12-01; governing with the project default
kapi context search ļàƃéļš éàçĥ đàţéđ þŕöđüçţ active, upcoming öŕ
expired, šö à ŵŕîţéŕ çàñ šéé ţĥàţ ĝüîđàñçé ĥàš àñ éñđ đàţé ƃéƒöŕé îţ ļàþšéš.
À šîñĝļé ţéŕḿ çàñ çàŕŕý ţĥé šàḿé đàţéš. Đüŕîñĝ à ŕéñàḿé, à đàţéđ ţéŕḿ çàñ šàý ŕéçöĝñîšé ţĥé öļđ ñàḿé üñţîļ Ḿàŕçĥ, ŵĥéŕé àñ üñđàţéđ öñé šàýš ñéṽéŕ üšé îţ.
Öñé ḿöŕé àẋîš: ļàñĝüàĝé
Àđđîñĝ target_languages ţö ţĥé ŕéçîþé çĥàñĝéš ñöţĥîñĝ àƃöüţ ŵĥéŕé ĝüîđàñçé
ĥöļđš. À ţŕàñšļàţéđ ƃļöçķ ţàķéš ţĥé ĝüîđàñçé öƒ îţš šöüŕçé: ţĥé ṽöîçé öƒ
acme/landing îš ţĥé ṽöîçé îţš Ñöŕŵéĝîàñ ļàñđîñĝ þàĝé îš ŵŕîţţéñ îñ, àñđ ţĥé
ţéŕḿš öƒ acme/docs àŕé ţĥé ţéŕḿš îţš Ĝéŕḿàñ đöçüḿéñţàţîöñ üšéš.
À ļàñĝüàĝé àđđš àñ öṽéŕŕîđé îñšîđé ţĥé ṽöîçé þŕöƒîļé, ñéẋţ ţö ţĥé çĥàññéļ
öṽéŕŕîđéš: à locales: éñţŕý çàŕŕîéš ţĥé ƒöŕḿàļîţý, ţĥé þöîñţ öƒ ṽîéŵ, ţĥé
çüļţüŕàļ ñöţéš àñđ ţĥé éẋàḿþļéš ƒöŕ ţĥàţ ļàñĝüàĝé. Ţéŕḿš çàŕŕý ţĥéîŕ
ŕéñđéŕîñĝš þéŕ ļàñĝüàĝé. Ţĥé ĝüîđàñçé ýöü ŵŕîţé ƒöŕ ţĥé šöüŕçé ĝöṽéŕñš éṽéŕý
ļàñĝüàĝé, àñđ ţĥé ķàþî ļööþ ķééþš ţĥé ļàñĝüàĝéš îñ šţéþ.
Šĥàŕîñĝ çöñţéẋţ
Ţĥé çöñţéẋţ ļîṽéš îñ ýöüŕ ŵöŕķšþàçé öñ ţĥîš ḿàçĥîñé, šĥàŕéđ ƃý éṽéŕý çļöñé àñđ
ŵöŕķţŕéé öƒ ţĥé þŕöĵéçţ. Ţö šĥàŕé îţ ŵîţĥ ţĥé ŕéšţ öƒ ţĥé ţéàḿ, ñàḿé à þļàçé îñ
kapi.yaml àñđ ŕüñ kapi context sync:
context:
backend: git
Šĥàŕîñĝ çöñţéẋţ çöṽéŕš ţĥé þļàçéš ýöü çàñ ñàḿé, ƃàçķüþš, àñđ ŕéàđîñĝ çöñţéẋţ ƒîļéš îñţö à þŕöĵéçţ.
Ŕéļàţéđ
- Ĝŕöŵîñĝ çöñţéẋţ: ñöţîñĝ à ŕüļé ŵîţĥ ţĥé éṽîđéñçé ƃéĥîñđ îţ, ŕéṽîéŵîñĝ šüĝĝéšţîöñš, àñđ ĝöîñĝ ƃàçķ ţö àñ éàŕļîéŕ šţàţé.
- Šĥàŕîñĝ çöñţéẋţ:
kapi context sync, àñđ çàŕŕýîñĝ à þŕöĵéçţ'š çöñţéẋţ îñ öñé ƒîļé. - Çöñţéñţ ĝöṽéŕñàñçé ƒöŕ ÀÎ: ţĥé ĥöŵ-ţö; šéţ üþ ţĥé çöñţéẋţ àñđ ĝàţé öñ îţ.
- Ķééþ ţéŕḿš çöñšîšţéñţ: ƃüîļđîñĝ àñđ éñƒöŕçîñĝ ţĥé ţéŕḿš.
- Ţĥé þŕöĵéçţ šţöŕé: ŵĥéŕé ţĥé çöñţéẋţ îš ķéþţ öñ ţĥîš ḿàçĥîñé.
- Þŕöĵéçţ ƒîļé ŕéƒéŕéñçé: ţĥé
profiles:,channel:àñđcoordinates:ƒîéļđš îñ ƒüļļ. kapi contextàñđkapi context search: éàçĥ çöḿḿàñđ'š ƒļàĝš àñđ öüţþüţ.