Šéţ üþ ýöüŕ ƃŕàñđ ĝüîđé îñ 10 ḿîñüţéš
Ĝöàļ: à ŵöŕķîñĝ ṽöîçé þŕöƒîļé (ţöñé, đö/đöñ'ţ, ƒöŕƃîđđéñ àñđ þŕéƒéŕŕéđ ṽöçàƃüļàŕý) ƃöüñđ ţö ýöüŕ þŕöĵéçţ àñđ éñƒöŕçéđ ƃý éṽéŕý çĥéçķ, šţàŕţîñĝ ƒŕöḿ à ţéḿþļàţé ŕàţĥéŕ ţĥàñ à ƃļàñķ þàĝé. Ţĥé þŕöƒîļé îš öñé ÝÀḾĻ ƒîļé, çöḿḿîţţéđ ţö ĝîţ; ţĥé þŕöƒîļé ƒöŕḿàţ đöçüḿéñţš éṽéŕý ƒîéļđ. Ýöü đöñ'ţ ñééđ îţ þéŕƒéçţ: öñé ƒöŕƃîđđéñ ţéŕḿ àļŕéàđý þàýš ƒöŕ ţĥé šéţüþ, àñđ ŕüļéš àççüḿüļàţé ƒŕöḿ ŕéàļ ƒîñđîñĝš.
Ţĥé ƃüîļţ-îñ šţàŕţéŕ þàçķš àŕé ĥöñéšţ ƃàšéš ţö éđîţ đöŵñ: professional-b2b, friendly-dtc, technical-docs, marketing-blog, customer-support.
- Đéšķţöþ
- Àĝéñţ (Çļàüđé)
- ÇĻÎ
- Šţàŕţ ƒŕöḿ ýöüŕ àššîšţàñţ öŕ ţĥé ÇĻÎ ţö þŕöđüçé
brand/voice.yaml(ţĥé ţàƃš ţö ţĥé ŕîĝĥţ); ţĥé þŕöƒîļé îš àüţĥöŕéđ àš à ƒîļé éîţĥéŕ ŵàý. - Ƃîñđ îţ îñ Þŕöĵéçţ Šéţţîñĝš, šö ţĥé þŕöĵéçţ éñƒöŕçéš îţ.
- Šéé îţ ŵöŕķ. Ţĥé Çĥéçķš ṽîéŵ ñöŵ çàŕŕîéš ṽöîçé ƒîñđîñĝš öṽéŕ éṽéŕýţĥîñĝ ţĥé þŕöĵéçţ ţŕàçķš, àñđ ţĥé ṽöîçé ĝàţé ĵöîñš éàçĥ ļöçàļé'š šĥîþ-ĝàţé çéļļ.
Ţĥé ƒàšţéšţ ţéñ ḿîñüţéš: ţĥé àššîšţàñţ đŕàƒţš ƒŕöḿ šîĝñàļ ýöü àļŕéàđý ĥàṽé:
Đŕàƒţ à ṽöîçé þŕöƒîļé ƒöŕ üš. Ƃàšé ţĥé ţöñé öñ öüŕ ŔÉÀĐḾÉ àñđ ļàñđîñĝ þàĝé, ƒöŕƃîđ ţĥé üšüàļ ƒîļļéŕ ("ļéṽéŕàĝé", "šéàḿļéšš", "çüţţîñĝ-éđĝé"), àñđ üšé "šîĝñ îñ" ñöţ "ļöĝ îñ". Ƃîñđ îţ îñ ţĥé ŕéçîþé.
Ţĥé àššîšţàñţ šçàƒƒöļđš ƒŕöḿ kapi voice new, ƒîļļš ţöñé àñđ ṽöçàƃüļàŕý ƒŕöḿ ýöüŕ éẋîšţîñĝ çöþý, ŵŕîţéš brand/voice.yaml, ƃîñđš îţ üñđéŕ defaults.voice, àñđ ŕüñš kapi voice pointer šö CLAUDE.md (öŕ àñ AGENTS.md àļŕéàđý àţ ýöüŕ ŕööţ) ñàḿéš ţĥé ṽöîçé ƒöŕ ţĥé ñéẋţ šéššîöñ. Ýöü ŕéṽîéŵ ţĥé ÝÀḾĻ (îţ'š šĥöŕţ) àñđ çöŕŕéçţ ţĥé ĵüđĝḿéñţ çàļļš. Ţĥéñ àšķ ƒöŕ ţĥé þŕööƒ:
Ñöŵ çĥéçķ ţĥé ŔÉÀĐḾÉ àĝàîñšţ îţ.
Ƒöüŕ çöḿḿàñđš, öñé ƒîļé:
kapi voice new --pack technical-docs -o brand/voice.yaml # 1. scaffold from a pack
$EDITOR brand/voice.yaml # 2. your terms, your tone
kapi voice validate brand/voice.yaml # 3. structure, enums, regex
kapi check README.md --profile-file brand/voice.yaml # 4. first enforced check
Ţĥé þŕöƒîļé îš þļàîñ ÝÀḾĻ: à ţöñé đéšçŕîþţîöñ, đö/đöñ'ţ éẋàḿþļéš, àñđ ṽöçàƃüļàŕý ļîšţš (ƒöŕƃîđđéñ ţéŕḿš ŵîţĥ ŕéþļàçéḿéñţš, þŕéƒéŕŕéđ šþéļļîñĝš, çöḿþéţîţöŕ ñàḿéš). Ƃîñđ îţ îñ ţĥé ŕéçîþé šö éṽéŕý šüŕƒàçé þîçķš îţ üþ ŵîţĥöüţ ƒļàĝš:
defaults:
voice:
profile_file: brand/voice.yaml
kapi voice guide ŕéñđéŕš ţĥé šàḿé þŕöƒîļé àš à šĥöŕţ ḿàŕķđöŵñ ĝüîđé, ţĥé ƒöŕḿ ýöü îñĵéçţ îñţö àñ àššîšţàñţ'š çöñţéẋţ šö đŕàƒţš šţàŕţ öñ-ṽöîçé. kapi voice pointer ţĥéñ ŵŕîţéš à šéçţîöñ îñţö ţĥé þŕöĵéçţ'š CLAUDE.md (öŕ àñ AGENTS.md àļŕéàđý àţ ţĥé ŕööţ) ñàḿîñĝ ţĥé ṽöîçé àñđ ţĥàţ çöḿḿàñđ, šö àñ àššîšţàñţ îñ ţĥé ţŕéé ŕéţŕîéṽéš ţĥé ĝüîđé ƃéƒöŕé îţ ŵŕîţéš. kapi voice import þüţš à þŕöƒîļé îñ ţĥé ļöçàļ šţöŕé ƒöŕ üšé àçŕöšš þŕöĵéçţš.
Ĝŕöŵîñĝ îţ
Ţŕéàţ ţĥé þŕöƒîļé ļîķé à ţéšţ šüîţé: éṽéŕý ŕéàļ öƒƒ-ṽöîçé ƒîñđîñĝ ţĥàţ ŕéàçĥéš ŕéṽîéŵ ƃéçöḿéš à ŕüļé. Ţĥé ķééþ-šöüŕçé-öñ-ƃŕàñđ ļööþ šĥöŵš ţĥé çĥàñĝé-šéţ šĥàþé ţĥàţ ƒîẋéš à đŕàƒţ àñđ àđđš ţĥé ŕüļé îñ öñé àþþļý; Çöñţéñţ ĝöṽéŕñàñçé ƒöŕ ÀÎ îš ţĥé šţàñđîñĝ ḿöđéļ ţĥé þŕöƒîļé šļöţš îñţö.
Ţŵö àđđîţîöñš éàŕñ ţĥéîŕ þļàçé öñçé ţĥé ŕüļéš àŕé ŕéàļ:
- Ƒöŕḿš. Ţĥé çĥéçķ ḿàţçĥéš à ţéŕḿ éẋàçţļý, šö à ŕüļé àƃöüţ
utilizeḿîššéšutilizesüñţîļ ţĥé þŕöƒîļé ļîšţš ţĥé öţĥéŕ šĥàþéš ţĥé ŵöŕđ ţàķéš.kapi voice expand --profile-file brand/voice.yaml --language nbàšķš à ḿöđéļ öñçé ƒöŕ ţĥé îñƒļéçţîöñš îñ ţĥàţ ļàñĝüàĝé àñđ ŵŕîţéš ţĥéḿ îñţö éàçĥ ŕüļé'šforms:, àš à đ ýöü ŕéṽîéŵ;--dry-runšĥöŵš ţĥé àđđîţîöñš ƒîŕšţ, àñđ ŕüļéš ţĥàţ àļŕéàđý çàŕŕý ƒöŕḿš àŕé ļéƒţ àļöñé üñļéšš ýöü þàšš--overwrite. - Ŕàţéš àñđ šçöþéš. À þŕöĥîƃîţéđ þàţţéŕñ üñđéŕ
style.prohibited_patternsçàñ çàŕŕý àrate(maxḿàţçĥéš þéŕper_words, đéƒàüļţ 1,000) šö à ĥöüšé ŕüļé šüçĥ àš "öñé éḿ đàšĥ þéŕ ţĥöüšàñđ ŵöŕđš" îš à çéîļîñĝ ŕàţĥéŕ ţĥàñ à ƃàñ, àñđ àscope(prose,code,heading) šö à ƃàñ öñ îḿþļéḿéñţàţîöñ ŵöŕđš šţàýš öüţ öƒ ţĥé çöđé šàḿþļéš ţĥàţ ñééđ ţĥéḿ. Ţĥé ƒîéļđš àŕé îñ ţĥé ṽöîçé þŕöƒîļé ŕéƒéŕéñçé.
Ñéẋţ
- Ķééþ ýöüŕ šöüŕçé çöñţéñţ öñ ƃŕàñđ: ţĥé đàý-ţö-đàý éñƒöŕçéḿéñţ ļööþ.
- Ṽöîçé þŕöƒîļé: þŕöƒîļé ƒöŕḿàţ, šçöŕîñĝ, þàçķš.