Ţĥé þŕöĵéçţ šţöŕé
À kapi þŕöĵéçţ ĥàš ţĥŕéé ţĥîñĝš, àñđ îţ ĥéļþš ţö ķééþ ţĥéḿ šţŕàîĝĥţ:
- ţĥé ŕéçîþé (
kapi.yaml), ýöüŕ çöñƒîĝ: çöñţéñţ, ĝöṽéŕñàñçé ƃîñđîñĝš, ƒļöŵš, đéƒàüļţš, ļàñĝüàĝéš; - ţĥé ƒîļéš, ýöüŕ đéļîṽéŕàƃļé: ţĥé šöüŕçé àñđ ţàŕĝéţ ƒîļéš öñ đîšķ;
- ţĥé þŕöĵéçţ šţöŕé, ýöüŕ ŵöŕķ: ŵĥàţ kapi đéŕîṽéš üñđéŕ
.kapi/work/ŵĥîļé ýöü ƃüîļđ, þļüš ţĥé çöḿḿîţţéđ ŕéçöŕđ öƒ ţĥé ŕéṽîéŵš ýöü ḿàķé àļöñĝ ţĥé ŵàý.
Ţĥîš þàĝé îš àƃöüţ ţĥé ţĥîŕđ öñé. Ţĥé ĝüîđîñĝ ŕüļé:
Ƒîļéš àñđ ţĥé çöḿḿîţţéđ çöñţéẋţ àŕé ţĥé šöüŕçé öƒ ţŕüţĥ.
.kapi/work/store.dbîš à đéŕîṽéđ îñđéẋ öṽéŕ ţĥéḿ, þļüš ţĥé üñîţ šţàţé ýöü ĥàṽé šţàĝéđ ƃüţ ñöţ ýéţ çöḿḿîţţéđ.
Ŵĥàţ'š îñ ţĥé šţöŕé
| Ļàýéŕ | Ļîṽéš îñ | Ķîñđ | Ļöšé îţ? |
|---|---|---|---|
| çöḿḿîţţéđ çöñţéẋţ | .kapi/: ţĥé ţéŕḿš àñđ ḿéḿöŕý ƃüñđļéš, ţĥé ṽöîçé þŕöƒîļé, àñđ state/*.jsonl | àüţĥöŕéđ: üñîţ šţàţé, àþþŕöṽéđ ţéŕḿš, ḿéḿöŕý þàîŕš | çöḿḿîţţéđ; ķééþ îţ îñ ĝîţ |
| ļöçàļ šţöŕé | .kapi/work/store.db | đéŕîṽéđ îñđéẋ öṽéŕ ţĥé çöḿḿîţţéđ çöñţéẋţ àñđ ýöüŕ çöñţéñţ, þļüš ţĥé ŵöŕķîñĝ šéţ öƒ šţàĝéđ üñîţ šţàţé | ŕéƃüîļđš, éẋçéþţ üñîţ šţàţé šţàĝéđ šîñçé ţĥé ļàšţ kapi commit |
| çàçĥé | .kapi/work/cache/ | đéŕîṽéđ: þàŕšé çàçĥé, éẋţŕàçţîöñš, çöļļéçţîöñš, šýñç çàçĥé | ŕéƃüîļđš öñ ñéẋţ ŕüñ |
À þŕöĵéçţ ķééþš öñé ļöçàļ đàţàƃàšé. .kapi/work/store.db ĥöļđš éṽéŕý šüƃšýšţéḿ'š
ţàƃļéš îñ à šîñĝļé ŠǪĻîţé ƒîļé, öñ à šîñĝļé çöññéçţîöñ, éàçĥ ŵîţĥ îţš öŵñ
ḿîĝŕàţîöñ ļéđĝéŕ: ţĥé ƃļöçķ çàçĥé, ţĥé ţéŕḿš šţöŕé, ţĥé çöñţéñţ ḿéḿöŕý, ţĥé
ṽöîçé šţöŕé, ţĥé üñîţ-šţàţé ŵöŕķîñĝ šéţ, àñđ ţĥé þŕöþéŕţý ĝŕàþĥ
(graph_nodes / graph_edges)
ţĥàţ ļîñķš à ţéŕḿ ţö ţĥé ƃļöçķš ţĥàţ üšé îţ, à šţàţé ŕéçöŕđ ţö ţĥé üñîţ îţ ƃļéššéš,
àñđ ƃöţĥ ţö ţĥéîŕ
çöñţéẋţ çööŕđîñàţéš.
Îţ šîţš àţ ţĥé ţöþ öƒ .kapi/work/ ŕàţĥéŕ ţĥàñ üñđéŕ cache/, àñđ ţĥé
đîšţîñçţîöñ ḿàţţéŕš: rm -rf .kapi/work/cache îš çöḿþļéţéļý ƒŕéé, ŵĥîļé
store.db çàŕŕîéš ţĥé ŵöŕķîñĝ šéţ. Ƃéţŵééñ à ŕéṽîéŵ ļàñđîñĝ àñđ kapi commit, ţĥàţ ŵöŕķîñĝ šéţ ĥöļđš ţĥé öñļý çöþý öƒ ţĥé šţàĝéđ üñîţ šţàţé. Đéļéţé
store.db àñđ ýöü ļöšé àţ ḿöšţ ŵĥàţ ýöü šţàĝéđ šîñçé ţĥé ļàšţ çöḿḿîţ;
éṽéŕýţĥîñĝ éļšé îš ŕéƃüîļţ ƒŕöḿ ţĥé çöḿḿîţţéđ çöñţéẋţ àñđ ýöüŕ ƒîļéš.
Ţĥé çöḿḿîţţéđ šîđé îš þļàîñ ţéẋţ, àñđ îţ îš ŵĥàţ à þéŕšöñ ŕéàđš îñ à þüļļ ŕéǫüéšţ:
.kapi/state/*.jsonl: ţĥé üñîţ-šţàţé ŕéçöŕđ, öñé ĴŠÖÑ Ļîñéš šĥàŕđ þéŕ đöçüḿéñţ (šéŕîàļîžàţîöñ);- ţĥé ţéŕḿš ƃüñđļé ţĥé ŕéçîþé ƃîñđš ŵîţĥ
defaults.terms_source(à.terms.json) àñđ ţĥé çöñţéñţ-ḿéḿöŕý ƃüñđļé îţ ƃîñđš ŵîţĥdefaults.memory_source(à.memory.json), çöñṽéñţîöñàļļý.kapi/terms.jsonàñđ.kapi/memory/memory.json, ţĥöüĝĥ ƃöţĥ ķéýš ƃîñđ àñý þàţĥ; - ţĥé ṽöîçé þŕöƒîļé,
.kapi/voice.yaml; - ţĥé çöñţéñţ ƒîļéš ţĥéḿšéļṽéš.
Ŵĥàţ ţö çöḿḿîţ, àñđ ŵĥàţ ţö îĝñöŕé
.kapi/ îš çöḿḿîţţéđ. Îţ îš ýöüŕ þŕöĵéçţ'š çöñţéẋţ, àñđ îţ ƃéļöñĝš îñ ŕéṽîéŵ
ļîķé ţĥé ŕéšţ öƒ ýöüŕ šöüŕçé. Ţĥé öñé ţĥîñĝ kapi ķééþš öüţ öƒ ĝîţ îš
.kapi/work/, ŵĥéŕé éṽéŕýţĥîñĝ îţ đéŕîṽéš ĝöéš, ŵĥîçĥ ḿàķéš ţĥé îĝñöŕé ŕüļé ţŵö
ļîñéš, ŵîţĥ ñö éẋçéþţîöñš ţö ŕéḿéḿƃéŕ:
/.kapi/work/
/.kapi/filters.local.json
Ţĥé šéçöñđ ļîñé îš ýöüŕ þéŕšöñàļ ƒîļţéŕ öṽéŕļàý: ýöüŕ öŵñ ŕéàđéŕ šéţţîñĝš, ñöţ ţĥé þŕöĵéçţ'š.
Đéļéţîñĝ îš ŵöŕţĥ ƃéîñĝ þŕéçîšé àƃöüţ:
rm -rf .kapi/work/cacheîš àļŵàýš šàƒé. Éṽéŕýţĥîñĝ üñđéŕ îţ îš ŕéƃüîļţ öñ ţĥé ñéẋţ ŕüñ.rm -rf .kapi/workçöšţš ţŵö ţĥîñĝš. Àñý üñîţ šţàţé ýöü šţàĝéđ šîñçé ţĥé ļàšţkapi commitļîṽéš öñļý îñstore.db. Àñđ îƒ ýöü üšé ŕéđàçţîöñ, ţĥé ṽàüļţ üñđéŕ.kapi/work/vault/ĥöļđš ţĥé ŵîţĥĥéļđ öŕîĝîñàļš, đéļîƃéŕàţéļý ļöçàļ-öñļý, ñéṽéŕ çöḿḿîţţéđ àñđ ñéṽéŕ šýñçéđ, šö ñö çöþý éẋîšţš àñýŵĥéŕé éļšé. Ḿéŕĝé ţĥé ƃàţçĥéš ýöü ĥàṽé îñ ƒļîĝĥţ ƃéƒöŕé ýöü çļéàŕ îţ.
Öñé ļöçàļ çöñţéẋţ ĝŕàþĥ
Ƃéçàüšé ţĥé ĝŕàþĥ ţàƃļéš ļîṽé ƃéšîđé ţĥé ƃļöçķ, ţéŕḿš àñđ ḿéḿöŕý ţàƃļéš, à þŕöĵéçţ àñšŵéŕš ĝŕàþĥ ǫüéšţîöñš ŵîţĥöüţ à šéŕṽéŕ: ŵĥîçĥ ƃļöçķš üšé ţĥîš ţéŕḿ, îñ ŵĥîçĥ çöļļéçţîöñ, àţ ŵĥîçĥ çööŕđîñàţé. À çöññéçţéđ þŕöĵéçţ àñšŵéŕš ţĥé šàḿé ǫüéŕý šĥàþéš šéŕṽéŕ-šîđé àçŕöšš ḿöŕé đîḿéñšîöñš; ļöçàļļý ţĥéý àŕé ƒîẋéđ ţö à šîñĝļé ṽàļüé. Šéé Ç-03: Ţĥé Ļöçàļ Çöñţéẋţ Ĝŕàþĥ Šţöŕé.
Ţŵö šţàĝéš: ŵöŕķîñĝ, ţĥéñ šĥîþ
Ţĥé šţöŕé àļšö éẋþļàîñš ţĥé ţŵö šţàĝéš öƒ à ŕüñ:
- Ŵöŕķîñĝ:
kapi run(ŵîţĥ ñö-o, îñ à þŕöĵéçţ) ļàñđš îţš ţŕàñšļàţîöñš àš öṽéŕļàýš îñ ţĥé ƃļöçķ ţàƃļéš öƒstore.db. Ţĥé ŵöŕķ îš îñ ţĥé šţöŕé àñđ ñöţ ýéţ îñ ýöüŕ ƒîļéš. - Šĥîþ:
kapi mergeŵŕîţéš ţĥöšé öṽéŕļàýš öüţ ţö ţĥé ţàŕĝéţ ƒîļéš;kapi statusţĥéñ ŕéàđš ţĥé ƒîļéš (þļüš ţĥé üñîţ-šţàţé ŕéçöŕđ) ƒöŕ ţĥé ŕéàļ šĥîþ šţàţé, ţĥé kapi ļööþ'š ļàđđéŕš àñđ ĝàţéš.
Šö çöṽéŕàĝé ĥàš ţŵö ŕéàđîñĝš: "ŵĥàţ'š ţŕàñšļàţéđ îñ ţĥé šţöŕé" (ŵöŕķîñĝ,
þŕé-ḿéŕĝé) àñđ "ŵĥàţ'š îñ ţĥé ƒîļéš àñđ ŕéṽîéŵéđ" (šĥîþ). Îñ Kapi Đéšķţöþ, ţĥé
þŕöĵéçţ ĥöḿé'š Çöñţéñţ àẋîš îš ţĥé ŵöŕķîñĝ ŕéàđîñĝ; kapi status ŕéþöŕţš
ţĥé šĥîþ ŕéàđîñĝ.
Üñîţ šţàţé îš šţàĝéđ, ţĥéñ çöḿḿîţţéđ
Àþþŕöṽîñĝ à ţŕàñšļàţîöñ ŵŕîţéš üñîţ šţàţé, àñđ þüƃļîšĥîñĝ îţ îš éẋþļîçîţ, ļîķé à ĝîţ
çöḿḿîţ. Ŵĥéñ ýöü àþþŕöṽé à üñîţ (šéé Ŕéṽîéŵ),
ţĥé šţàţé ŕéçöŕđ ļàñđš îñ ţĥé ŵöŕķîñĝ šéţ îñšîđé store.db. kapi status ŕéþöŕţš
ŵĥàţ îš þéñđîñĝ, àñđ kapi commit ḿàţéŕîàļîžéš ţĥé ŵöŕķîñĝ šéţ îñţö
.kapi/state/, ŵĥéŕé ýöü çöḿḿîţ îţ ŵîţĥ ýöüŕ šöüŕçéš. Ţĥé ŕéçöŕđ îš ƃöüñđ ţö
ţĥé çöñţéñţ ĥàšĥ öƒ ţĥé ţŕàñšļàţîöñ îţ ƃļéššéš, šö éđîţîñĝ ţĥàţ ţŕàñšļàţîöñ
ļàţéŕ đŕöþš ţĥé üñîţ ƃàçķ ƃéļöŵ ŕéṽîéŵéđ; àñ àþþŕöṽàļ çàñ'ţ šîļéñţļý öüţļîṽé
ţĥé ţéẋţ îţ àþþŕöṽéđ.
kapi status --review # the worklist: units awaiting approval
kapi apply <<<'{"kind":"review","file":"src/nb.json","id":"save.label","locale":"nb","status":"reviewed"}'
kapi status # staged unit state, not yet committed
kapi commit # → .kapi/state/*.jsonl, ready for git
Ţĥé šàḿé ḿöđéļ ḿàþš ţö à šéŕṽéŕ-ƃàçķéđ þŕöĵéçţ: ŵîţĥ ţĥé šéŕṽéŕ þļüĝîñ
îñšţàļļéđ, îñšţéàđ öƒ çöḿḿîţţîñĝ šĥàŕđš îţ þüšĥéš îţš üñîţ šţàţé ţö à ŕéḿöţé
(kapi push) àñđ þüļļš îţ ƃàçķ (kapi pull), ţĥé šàḿé ŕéçöŕđ ŵîţĥ à
đéŕéñţ šîñķ.
Àñ éḿþţý šüƃšýšţéḿ îš àñ àƃšéñţ šţöŕé
Þŕéšéñçé îš ţàƃļé-ļéṽéļ. À store.db ŵĥöšé ţéŕḿš ţàƃļéš àŕé éḿþţý ƃéĥàṽéš
éẋàçţļý àš ţĥöüĝĥ ţĥéŕé ŵéŕé ñö ţéŕḿš šţöŕé àţ àļļ: öñ à ƒŕéšĥ çĥéçķöüţ ţĥé
ţéŕḿîñöļöĝý ĝàţé ŕéàđš ţĥé çöḿḿîţţéđ .terms.json đîŕéçţļý, kapi up --plan
ñéṽéŕ çŕéàţéš šţàţé, àñđ kapi pack çàŕŕîéš öñļý ţĥé þàŕţš ţĥàţ ĥöļđ
šöḿéţĥîñĝ. Ţĥé ƒîļé'š þŕéšéñçé çöñĵüŕéš ñöţĥîñĝ îñţö éẋîšţéñçé.
Îñ ţĥé ƃŕöŵšéŕ, ţĥé šàḿé ḿöđéļ ŕüñš ŵîţĥöüţ ŠǪĻîţé: ţĥé ḿéḿöŕý àñđ ţéŕḿš
ƃàçķéñđš àŕé îñ-ḿéḿöŕý, ƃļöçķš àŕé ķéýéđ ƃý þàţĥ îñ ḿéḿöŕý, àñđ ţĥé ŵöŕķîñĝ šéţ
þéŕšîšţš ţö à ĴŠÖÑ šîđéçàŕ àţ .kapi/work/store.json.
Ŵĥàţ ţĥé šţöŕé îš ñöţ
- Îţ îš ñöţ ţĥé çöñţéñţ ḿéḿöŕý. Ţĥé
.memory.jsonƃüñđļé (defaults.memory_source) îš à ŕéçýçļé çöŕþüš:kapi applyŵîţĥkind:"memory"àđđš ļéṽéŕàĝé ƒöŕ ƒüţüŕé ţŕàñšļàţîöñ àñđ ŕéçöŕđš ñö ŕéṽîéŵ. Ŕéṽîéŵ šţàţé ļîṽéš îñ ţĥé üñîţ-šţàţé ŕéçöŕđ. Šéé Ḿéḿöŕý & ţéŕḿš šţöŕàĝé. - Îţ îš ñöţ àüţĥöŕîţàţîṽé ƒöŕ ýöüŕ ţŕàñšļàţîöñš; ţĥé ƒîļéš àŕé. Ţĥé šţöŕé îñđéẋéš àñđ šţàĝéš; ţĥé đéļîṽéŕàƃļé îš ţĥé šöüŕçé öƒ ţŕüţĥ.
Šéé àļšö
- Ţĥé kapi ļööþ: ţĥé đéŕîṽéđ ļàđđéŕ, ĝàţéš, àñđ ŕéṽîéŵ ǫüéüé.
- Þŕöĵéçţš: ĥöŵ à ŕüñ'š šöüŕçé àñđ šîñķ ŕéšöļṽé.
- Þŕöĵéçţ ƒîļé ŕéƒéŕéñçé:
defaults.terms_source,defaults.memory_source, àñđ ţĥé öţĥéŕ ŕéçîþé ƒîéļđš.