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

Ţĥé þŕöĵéçţ šţöŕé

À 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: Ţĥé Ļöçàļ Çöñţéẋţ Ĝŕàþĥ Šţöŕé.

Ţŵö šţàĝéš: ŵöŕķîñĝ, ţĥéñ šĥîþ

Ţĥé šţöŕé àļšö éẋþļàîñš ţĥé ţŵö šţàĝéš öƒ à ŕüñ:

  1. Ŵöŕķîñĝ: kapi run (ŵîţĥ ñö -o, îñ à þŕöĵéçţ) ļàñđš îţš ţŕàñšļàţîöñš àš öṽéŕļàýš îñ ţĥé ƃļöçķ ţàƃļéš öƒ store.db. Ţĥé ŵöŕķ îš îñ ţĥé šţöŕé àñđ ñöţ ýéţ îñ ýöüŕ ƒîļéš.
  2. Šĥîþ: 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" àđđš ļéṽéŕàĝé ƒöŕ ƒüţüŕé ţŕàñšļàţîöñ àñđ ŕéçöŕđš ñö ŕéṽîéŵ. Ŕéṽîéŵ šţàţé ļîṽéš îñ ţĥé üñîţ-šţàţé ŕéçöŕđ. Šéé Ḿéḿöŕý & ţéŕḿš šţöŕàĝé.
  • Îţ îš ñöţ àüţĥöŕîţàţîṽé ƒöŕ ýöüŕ ţŕàñšļàţîöñš; ţĥé ƒîļéš àŕé. Ţĥé šţöŕé îñđéẋéš àñđ šţàĝéš; ţĥé đéļîṽéŕàƃļé îš ţĥé šöüŕçé öƒ ţŕüţĥ.

Šéé àļšö