Þŕöĵéçţ šţàţé (.kapi/state/*.jsonl)
Þŕöĵéçţ šţàţé ŕéçöŕđš ŵĥéŕé éàçĥ ƃļöçķ šţàñđš: ŵĥàţ ĥàš ƃééñ ŕéṽîéŵéđ, ŵĥàţ ŵàš àþþŕöṽéđ àñđ ƃý ŵĥöḿ, ŵĥàţ šţàţüš à ţàŕĝéţ ĥàš ŕéàçĥéđ. Îţ îš ţĥé þöŕţàƃļé ŕéþŕéšéñţàţîöñ öƒ ţĥé þŕöĵéçţ'š ƃļöçķ đéçîšîöñš.
Îḿþļéḿéñţéđ îñ Ĝö àţ
core/state.
Ļéđĝéŕ šţöŕàĝé àñđ šñàþšĥöţš
À đéçîšîöñ îš àþþéñđéđ ţö ţĥé þŕöĵéçţ'š đéçîšîöñ ļéđĝéŕ, ŵĥîçĥ ļîṽéš îñ ţĥé þŕöĵéçţ šţöŕé, àñđ îţ îš đüŕàƃļé ţĥé ḿöḿéñţ îţ îš ŕéçöŕđéđ. Éṽéŕý ļöçàļ çĥéçķöüţ ŕéàđš ţĥé ļéđĝéŕ àñđ àþþļîéš ţĥé đéçîšîöñš ḿàđé öñ ţĥé šöüŕçé àñđ ţŕàñšļàţîöñ îţ ĥöļđš ñöŵ: ƃý ţĥéîŕ ŕéṽîšîöñš ŵĥéŕé à đéçîšîöñ ŕéçöŕđš ţĥéḿ, àñđ ƃý ţĥé šöüŕçé àñđ ţàŕĝéţ ĥàšĥéš ŵĥéŕé îţ ŵàš ŕéçöŕđéđ ƃéƒöŕé ŕéṽîšîöñš.
Ţĥé šĥàŕđš àŕé ţĥé ļéđĝéŕ îñ à ƒöŕḿ ĝîţ çàñ ţŕàçķ: ƒöŕ éàçĥ ƃļöçķ, ŵĥàţ ŵàš
đéçîđéđ àƃöüţ ţĥé šöüŕçé àñđ ţĥé ţŕàñšļàţîöñ. kapi store import ŕéàđš ţĥàţ
šĥàþé îñ, àñđ ţĥé ļéđĝéŕ ḿöṽéš ƃéţŵééñ ḿàçĥîñéš àš öþéŕàţîöñš, ţĥŕöüĝĥ à
çöñţéẋţ ƃàçķéñđ öŕ à ţŕàñšƒéŕ ƒîļé.
Ţĥîš ĥàš ƒöüŕ çöñšéǫüéñçéš:
- Ţĥé ţŵö đîŕéçţîöñš àĝŕéé. À šñàþšĥöţ ŵŕîţéš ţĥé šĥàŕđš àñđ àñ îḿþöŕţ ŕéàđš ţĥéḿ, šö à çļöñé ţĥàţ ŕüñš ţĥé îḿþöŕţ þîçķš üþ ŵĥàţ ţĥé šĥàŕđš çàŕŕý.
- Ŕéàđîñĝ à šĥàŕđ ţŵîçé çöšţš ñöţĥîñĝ. À ļîñé ţĥé ļéđĝéŕ àļŕéàđý ĥöļđš îš ļéƒţ àļöñé, àñđ à ļîñé öļđéŕ ţĥàñ ŵĥàţ àþþļîéš àţ îţš þàîŕîñĝ îš ļéƒţ öüţ.
- À šñàþšĥöţ ļéàṽéš üñçĥàñĝéđ šĥàŕđš üñţöüçĥéđ, ŵĥîçĥ ķééþš à ÇÎ šţéþ ƒŕöḿ þŕöđüçîñĝ àñ éḿþţý çöḿḿîţ.
- À šéŕṽéŕ-ƃàçķéđ þŕöĵéçţ ĥàš à đéŕéñţ šîñķ ƒöŕ ţĥé šàḿé ŕéçöŕđ:
kapi pushšéñđš ţĥé đéçîšîöñš ţö ţĥé ŕéḿöţé îñšţéàđ öƒ ŵŕîţîñĝ šĥàŕđš.
Öñé šĥàŕđ þéŕ đöçüḿéñţ
Ţĥé ŕéçöŕđ îš à đîŕéçţöŕý öƒ ĴŠÖÑ Ļîñéš ƒîļéš, öñé þéŕ đöçüḿéñţ šçöþé, éàçĥ ļîñé à šîñĝļé ƃļöçķ:
.kapi/state/
├── d-app-messages.jsonl
└── d-guide-intro.jsonl
{"unit":"k1_…","scope":"d-app-messages","variant":{"locale":"nb"},"status":"established","targetHash":"…","revision":"r:…","basis":"r:…","contentHash":"…","contextHash":"…","decision":{"reviewState":"approved","at":"2026-08-04T09:12:44Z"},"updated":"2026-08-04T09:12:44Z"}
ĴŠÖÑ Ļîñéš, ƃéçàüšé ţĥé ŕéçöŕđ îš àþþéñđéđ ţö àñđ đéđ ƒàŕ ḿöŕé öƒţéñ ţĥàñ îţ îš ŕéàđ ŵĥöļé: à ļîñé þéŕ ƃļöçķ ḿàķéš ŕéçöŕđîñĝ àñ àþþŕöṽàļ à öñé-ļîñé đ îñšţéàđ öƒ à ŕéŵŕîţé öƒ éṽéŕý ƃýţé. Šĥàŕđéđ þéŕ đöçüḿéñţ ƒöŕ ţĥé šàḿé ŕéàšöñ àţ à ļàŕĝéŕ ĝŕàîñ: éđîţîñĝ ţĥé đöçüḿéñţàţîöñ đöéš ñöţ ŕéŵŕîţé ţĥé šĥàŕđ ĥöļđîñĝ ţĥé îñţéŕƒàçé šţŕîñĝš, àñđ ţŵö ƃŕàñçĥéš ţöüçĥîñĝ üñŕéļàţéđ đöçüḿéñţš đö ñöţ çöñƒļîçţ öñ šîĝĥţ.
Ļîñéš àŕé šöŕţéđ ŵîţĥîñ à šĥàŕđ, šö à ƒîļé'š ƃýţéš đéþéñđ öñļý öñ îţš çöñţéñţš. À šĥàŕđ ŵĥöšé ļàšţ ƃļöçķ îš ĝöñé îš þŕüñéđ. À ḿàļƒöŕḿéđ ļîñé îš àñ éŕŕöŕ: šţàţé îš àüţĥöŕîţàţîṽé àñđ îš ñéṽéŕ šîļéñţļý đîšçàŕđéđ.
À šĥàŕđ'š ƒîļéñàḿé îš đéŕîṽéđ ƒŕöḿ ţĥé đöçüḿéñţ šçöþé, ñéṽéŕ ţĥé šçöþé îţšéļƒ. À šçöþé îš ţĥé đöçüḿéñţ'š ŕéšöļṽéđ ķéý, ñéṽéŕ îţš þàţĥ (šö ŕéñàḿîñĝ à ƒîļé đöéš ñöţ öŕþĥàñ îţš šţàţé), àñđ đéŕîṽîñĝ ţĥé ƒîļéñàḿé ķééþš àñ öþàǫüé ķéý ƒŕöḿ éšçàþîñĝ ţĥé đîŕéçţöŕý.
Ŵĥý ţĥé šĥàŕđš àŕé àñ àŕţîƒàçţ
Ţĥé đéçîšîöñš ţĥéḿšéļṽéš ļîṽé îñ ţĥé þŕöĵéçţ'š šţöŕé, ŵĥéŕé éṽéŕý çĥéçķöüţ
ŕéàđš ţĥéḿ àñđ à git checkout öƒ àñöţĥéŕ ƃŕàñçĥ çĥàñĝéš ñöţĥîñĝ àƃöüţ ţĥéḿ.
Ţĥé šĥàŕđš àŕé ŵĥàţ ţĥöšé đéçîšîöñš ļööķ ļîķé àš ŕéṽîéŵàƃļé ţéẋţ: à ţéàḿ ţĥàţ
ķééþš îţš àþþŕöṽàļš îñ à þüļļ ŕéǫüéšţ ŕéàđš ţĥéḿ ŵîţĥ kapi store import,
àñđ ţĥé
šĥàŕđš šîţ ƃéšîđé ţĥé ţéŕḿš àñđ ţĥé çöñţéñţ ḿéḿöŕý ţĥéý ḿàķé çļàîḿš àƃöüţ,
ƃéçàüšé àļļ ţĥŕéé àŕé ñöđéš öƒ öñé çöñţéẋţ ĝŕàþĥ.
Ţĥé öṽéŕṽîéŵ šţàţéš ţĥé ĝéñéŕàļ ŕüļé, àñđ Ḿöṽîñĝ çöñţéẋţ çöṽéŕš ţĥé ƒöüŕ ṽéŕƃš ţĥàţ çàŕŕý çöñţéẋţ ƃéţŵééñ ţĥé šţöŕé àñđ ƒîļéš.
Ƃļöçķ šţàţé
Éàçĥ ļîñé çàŕŕîéš öñé ƃļöçķ'š šţàţé. Ţĥé ŕéçöŕđ'š šçĥéḿà îđéñţîţý îš
kapi-state àţ schemaVersion 1.0; à šĥàŕđ îš ƃàŕé ĴŠÖÑ Ļîñéš, šö
ţĥé ṽéŕšîöñ ŕîđéš ţĥé šîñĝļé-đöçüḿéñţ šéŕîàļîžàţîöñ öƒ ţĥé šàḿé ŕéçöŕđš.
| Ƒîéļđ | Ţýþé | Ñöţéš |
|---|---|---|
scope | šţŕîñĝ | Ţĥé đöçüḿéñţ ţĥé ƃļöçķ ƃéļöñĝš ţö, àñđ ţĥé šĥàŕđ îţ îš ŵŕîţţéñ îñţö. Þàŕţ öƒ ţĥé ŕéçöŕđ'š îđéñţîţý: à ƃļöçķ îđ îš üñîǫüé îñšîđé îţš đöçüḿéñţ àñđ ñöŵĥéŕé ŵîđéŕ. |
unit | šţŕîñĝ | Ƃļöçķ îđéñţîţý: ţĥé ƃļöçķ'š çöñţéñţ ĥàšĥ, ţĥé šàḿé ķéý ţĥé ƃļöçķ ţàƃļéš àñđ öṽéŕļàýš àđđŕéšš îţ ƃý. |
variant | öƃĵéçţ | Ţĥé ļöçàļé, àñđ öþţîöñàļ ţöñé/çĥàññéļ, ţĥîš šţàţé àþþļîéš ţö. |
status | šţŕîñĝ | Ţàŕĝéţ ļàđđéŕ þöšîţîöñ: đŕàƒţ → ţŕàñšļàţéđ → éšţàƃļîšĥéđ (àþþŕöṽéđ). |
sourceStatus | šţŕîñĝ | Šöüŕçé ļàđđéŕ þöšîţîöñ: ŵŕîţţéñ → éšţàƃļîšĥéđ (àþþŕöṽéđ). |
origin | öƃĵéçţ | Þŕöṽéñàñçé öƒ ţĥé çüŕŕéñţ ţàŕĝéţ (éñĝîñé/ţööļ/ŕéƒéŕéñçé). |
targetHash | šţŕîñĝ | Çöñţéñţ ĥàšĥ öƒ ţĥé ţŕàñšļàţîöñ ţĥîš šţàţé ƃļéššéš. |
revision | šţŕîñĝ | Ŕéṽîšîöñ öƒ ţĥé ţŕàñšļàţîöñ ţĥîš šţàţé ƃļéššéš, îñļîñé çöđéš îñçļüđéđ: ţĥé ţöķéñ kapi inspect þŕîñţš. Àƃšéñţ öñ à ŕéçöŕđ ḿàđé ƃéƒöŕé ŕéṽîšîöñš, àñđ öñ à šöüŕçé àþþŕöṽàļ. |
basis | šţŕîñĝ | Ţĥé đéçîšîöñ'š ƃàšîš: ţĥé ŕéṽîšîöñ öƒ ţĥé šöüŕçé ţĥé đéçîšîöñ ŵàš ḿàđé àĝàîñšţ. À ŕéçöŕđ ŵĥöšé ƃàšîš ñö ļöñĝéŕ ḿàţçĥéš ţĥé ƃļöçķ'š çüŕŕéñţ šöüŕçé ŕéàđš àš šţàļé. Àƃšéñţ öñ à ŕéçöŕđ ḿàđé ƃéƒöŕé ŕéṽîšîöñš. |
contentHash | šţŕîñĝ | Ţĥé ƃàšîš ƃý ţéẋţ: ţĥé ĥàšĥ öƒ ţĥé šöüŕçé ŵöŕđîñĝ ţĥé đéçîšîöñ ŵàš ḿàđé àĝàîñšţ. À ŕéçöŕđ ţĥàţ çàŕŕîéš ñö basis îš ĝŕàđéđ ƃý îţ. |
contextHash | šţŕîñĝ | Ţĥé ƒîñĝéŕþŕîñţ öƒ ţĥé ĝöṽéŕñîñĝ çöñţéẋţ (ṽöîçé, ţéŕḿš, þöîñţ) îñ ƒöŕçé ŵĥéñ ţĥé ƃļöçķ ŵàš þŕöđüçéđ; ţĥé šţàļéñéšš ĝàţé çöḿþàŕéš îţ àĝàîñšţ ţĥé çöñţéẋţ îñ ƒöŕçé ñöŵ. |
decision | öƃĵéçţ | Ţĥé ŕéçöŕđéđ ŵöŕķƒļöŵ đéçîšîöñ: reviewState (approved, rejected, …), by (éḿþţý ƒöŕ à þéŕšöñ, ai/<model> ƒöŕ àñ àüţöñöḿöüš ÀÎ àþþŕöṽàļ, agent/<client> ƒöŕ àñ àĝéñţ àçţîñĝ ƒöŕ à þéŕšöñ), at, note, parked, assignee. |
aiReview | öƃĵéçţ | Ļàšţ ÀÎ þŕé-ŕéṽîéŵ àññöţàţîöñ. Öþţîöñàļ. Îţš targetHash àñđ revision ñàḿé ţĥé ţŕàñšļàţîöñ îţ ĵüđĝéđ. |
updated | šţŕîñĝ | ŔƑÇ 3339. |
Ƒîṽé ƒîéļđš ñééđ ḿöŕé éẋþļàñàţîöñ:
revision àñđ targetHash ñàḿé ţĥé ţŕàñšļàţîöñ ŵîţĥöüţ ĥöļđîñĝ îţ. Ţĥéý
îđéñţîƒý ţĥé çöñţéñţ ţĥé ŕéṽîéŵ ŵàš ḿàđé àĝàîñšţ, šö àñ éđîţ ţö ţĥé
ţŕàñšļàţîöñ ḿàķéš ţĥé àþþŕöṽàļ šţàļé. Ţĥé ŕéṽîšîöñ çöṽéŕš
ţĥé îñļîñé çöđéš àš ŵéļļ àš ţĥé ŵöŕđš, šö à çĥàñĝéđ ļîñķ çöüñţš àš àñ éđîţ. Ţĥé
ţŕàñšļàţîöñ îţšéļƒ ļîṽéš îñ ţĥé đéļîṽéŕàƃļé; ţĥîš ŕéçöŕđ öñļý ƃļéššéš îţ.
basis àñđ contentHash ƃîñđ ţĥé đéçîšîöñ ţö îţš šöüŕçé. Àñ àþþŕöṽàļ îš
àƃöüţ à þàîŕîñĝ, ţĥîš ŕéñđéŕîñĝ öƒ ţĥîš šöüŕçé, šö ţĥé ŕéçöŕđ ķééþš ţĥé
ŕéṽîšîöñ öƒ ţĥé šöüŕçé, àñđ ţĥé ĥàšĥ öƒ îţš ŵöŕđîñĝ, àš ţĥé đéçîšîöñ'š ƃàšîš.
Éđîţ ţĥé šöüŕçé àñđ ţĥé ƃļöçķ ŕéàđš àš šţàļé üñţîļ šöḿéöñé đéçîđéš ţĥé ñéŵ
þàîŕîñĝ; ŕéšţöŕé ţĥé šöüŕçé àñđ ţĥé đéçîšîöñ àþþļîéš àĝàîñ. Ţĥé çöñţéñţ ĥàšĥ îš
àļšö ŵĥàţ ļéţš à ƃļöçķ ŕéḿöṽéđ îñ öñé ŕéṽîšîöñ àñđ ŕéšţöŕéđ îñ à ļàţéŕ öñé çöḿé
ƃàçķ ţö îţš öŵñ ĥîšţöŕý, ŵîţĥ ñö ŕé-ţŕàñšļàţîöñ.
À ŕéçöŕđ ḿàđé ƃéƒöŕé ŕéṽîšîöñš îš ŕéàđ ƃý îţš ĥàšĥéš. Îţ çàŕŕîéš ñö
revision öŕ basis, àþþļîéš ŵĥîļé ţĥé ţéẋţ öƒ ƃöţĥ ĥàļṽéš ḿàţçĥéš, àñđ ķééþš
àñšŵéŕîñĝ ţĥàţ ŵàý üñţîļ ţĥé ƃļöçķ îš đéçîđéđ àĝàîñ. Öñçé à đéçîšîöñ ŵîţĥ
ŕéṽîšîöñš îš ŕéçöŕđéđ ƒöŕ ţĥé šàḿé ţéẋţ, ţĥé öļđéŕ ŕéçöŕđ ñö ļöñĝéŕ àñšŵéŕš.
contextHash ƃîñđš ţĥé ţàŕĝéţ ţö ţĥé ĝöṽéŕñàñçé îţ ŵàš þŕöđüçéđ üñđéŕ. Ţĥé
šţàļéñéšš ĝàţé ŕéàđš îţ: à ţàŕĝéţ ŵŕîţţéñ üñđéŕ à ṽöîçé þŕöƒîļé öŕ à ţéŕḿš
šţöŕé ţĥàţ ĥàš šîñçé ḿöṽéđ ƒàîļš ţĥé ĝàţé, ñàḿîñĝ ŵĥàţ ḿöṽéđ, àñđ kapi up
ŕéþŕöđüçéš îţ üñđéŕ ţĥé çöñţéẋţ ñöŵ îñ ƒöŕçé.
aiReview îš àđṽîšöŕý àñđ ñéṽéŕ à ŕéṽîéŵ öüţçöḿé. Îţ îñƒöŕḿš ţĥé ŕéṽîéŵ ǫüéüé
ŵîţĥ à šçöŕé àñđ ƒîñđîñĝš. Ŵĥéŕé àñ ÀÎ þŕé-ŕéṽîéŵ ĵüšţîƒîéđ àñ àüţöḿàţîç
àþþŕöṽàļ, ţĥàţ àþþŕöṽàļ îš ŕéçöŕđéđ šéþàŕàţéļý îñ decision, ŵîţĥ by
çàŕŕýîñĝ ţĥé ai/<model> îđéñţîţý, šö à ḿàçĥîñé ĵüđĝéḿéñţ àñđ à ḿàçĥîñé
àþþŕöṽàļ ŕéḿàîñ đîšţîñĝüîšĥàƃļé îñ ţĥé ŕéçöŕđ.
Ŵĥàţ ţĥé šĥàŕđš ļéàṽé öüţ
- Ţĥé ţŕàñšļàţîöñš ţĥéḿšéļṽéš. Öñļý ţĥéîŕ ĥàšĥéš. Ţĥé çöñţéñţ ļîṽéš îñ ţĥé đéļîṽéŕàƃļé öŕ îñ à çöñţéñţ ƃüñđļé.
- Àñýţĥîñĝ đéŕîṽàƃļé. Çöṽéŕàĝé þéŕçéñţàĝéš àñđ ŕéṽîéŵ ǫüéüéš àŕé çöḿþüţéđ ƒŕöḿ ţĥéšé šĥàŕđš àñđ ţĥé çöñţéñţ.
- À đéçîšîöñ ţĥîš çĥéçķöüţ đöéš ñöţ ĥöļđ. Ţĥé šĥàŕđš àŕé ŵĥàţ ţĥîš çĥéçķöüţ ĥöļđš ñöŵ; ţĥé ļéđĝéŕ ķééþš ţĥé ŕéšţ, îñçļüđîñĝ ţĥé ĥîšţöŕý öƒ à ƃļöçķ ţĥàţ ĥàš ƃééñ đéçîđéđ ḿöŕé ţĥàñ öñçé.
Šéé àļšö
- Ţĥé þŕöĵéçţ šţöŕé: ţĥé çöñţéẋţ šţöŕé ţĥàţ ĥöļđš ţĥé ļéđĝéŕ, àñđ ţĥé þŕöĵéçţîöñ ţĥàţ ŕéƃüîļđš.
- Öṽéŕṽîéŵ: šţöŕé, ƃüñđļé, àñđ éẋþöŕţéđ àŕţîƒàçţ.
- Ţéŕḿš: ţĥé öţĥéŕ àŕţîƒàçţ à ŕéṽîéŵéŕ ŕéàđš.