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

Ç-11: Çöñţéẋţ öþéŕàţîöñš

Šüḿḿàŕý​

Éṽéŕý çĥàñĝé ţö à þŕöĵéçţ'š çöñţéẋţ îš àñ öþéŕàţîöñ: àñ àçţöŕ, à ķîñđ, à šüƃĵéçţ, ţĥé éṽîđéñçé ƃéĥîñđ îţ, ţĥé ĝöṽéŕñàñçé îţ ŵàš ḿàđé àĝàîñšţ, àñđ à ţîḿéšţàḿþ ƒŕöḿ Ĝö'š çļöçķ. Öþéŕàţîöñš àŕé àþþéñđéđ ţö ţĥé ŵöŕķšþàçé'š öþéŕàţîöñ ļöĝ (Ç-03) àñđ ñéṽéŕ éđîţéđ. À šţàţüš çĥàñĝé îš à ñéŵ öþéŕàţîöñ ñàḿîñĝ ţĥé éàŕļîéŕ öñé.

À šüĝĝéšţéđ ŕüļé ţàķéš éƒƒéçţ àţ öñçé àš àđṽîçé. Çĥéçķš ŕéþöŕţ îţ ŵîţĥ ñö ŵéîĝĥţ îñ ţĥé šçöŕé, šö à šüĝĝéšţîöñ šĥöŵš üþ ŵĥéŕéṽéŕ à ŕüļé ŵöüļđ àñđ çàñ ñéṽéŕ ƒàîļ à çĥéçķ. À šüĝĝéšţîöñ îš éšţàƃļîšĥéđ ŵĥéñ àţ ļéàšţ öñé šîĝñàļ ƒŕöḿ à þéŕšöñ ƃàçķš îţ àñđ ñöţĥîñĝ öþéñ çöñţŕàđîçţš îţ: à þéŕšöñ ķééþîñĝ îţ, à çöŕŕéçţîöñ ţöŵàŕđ îţ, öŕ ţĥé çĥàñĝé ŕéàçĥîñĝ ţĥé đéƒàüļţ ƃŕàñçĥ. Šéţţļîñĝ îš à ƒüñçţîöñ öƒ ţĥé ļöĝ àļöñé, šö éṽéŕý ḿàçĥîñé ĥöļđîñĝ ţĥé šàḿé öþéŕàţîöñš ŕéàçĥéš ţĥé šàḿé àñšŵéŕ. Àñ éšţàƃļîšĥéđ ŕüļé ƒàîļš à çĥéçķ üñļéšš îţ îš ḿàŕķéđ àđṽîšöŕý, àñđ îš ŵŕîţţéñ îñţö ţĥé šüƃšýšţéḿ ţĥàţ àļŕéàđý ŕéàđš îţ: ţĥé ţéŕḿš šţöŕé öŕ ţĥé çöñţéñţ ḿéḿöŕý. Ţĥé ļöĝ îš ţĥé ĥîšţöŕý àñđ ţĥé šöüŕçé öƒ šüĝĝéšţîöñš; éšţàƃļîšĥéđ ŕüļéš ļîṽé îñ ţĥé šţöŕéš.

contextop.PersonDecides đéƒîñéš ţĥé þéŕḿîššîöñ þöļîçý. Àñ àĝéñţ öŕ à ţööļ ḿàý öƃšéŕṽé, ŕéçöŕđ à çöŕŕéçţîöñ, àñđ ŵîţĥđŕàŵ îţš öŵñ šüĝĝéšţîöñ îñ ţĥé šéššîöñ ţĥàţ ŕéçöŕđéđ îţ. Àñý àçţöŕ ḿàý ŕéçöŕđ à çĥéçķ ŕüñ (check), ŵĥîçĥ çĥàñĝéš ñöţĥîñĝ ţĥé çöñţéẋţ ĥöļđš. Öñļý à ţööļ ŕéçöŕđš éṽîđéñçé (signal) àñđ ţĥé éšţàƃļîšĥḿéñţš šéţţļîñĝ đéŕîṽéš ƒŕöḿ îţ (establish). Öñļý à þéŕšöñ ķééþš, éđîţš, đŕöþš, îḿþöŕţš, ŵîđéñš, öŕ ŕéšéţš ţĥé çöñţéẋţ ţö àñ éàŕļîéŕ þöîñţ.

Ţĥé çöḿḿàñđ ļîñé šþļîţš àļöñĝ ţĥé šàḿé ļîñé. kapi context çàŕŕîéš à þéŕšöñ'š ṽéŕƃš (<path>, search, review, reset, sync) àñđ ļîšţš ţĥé ţŵö àñ àššîšţàñţ üšéš, note àñđ log, üñđéŕ à ĥéàđîñĝ öƒ ţĥéîŕ öŵñ, Ƒöŕ àššîšţàñţš. Ḿàîñţéñàñçé öƒ ţĥé šţöŕé îţšéļƒ (import, export, rebuild, locales) îš à šéþàŕàţé çöḿḿàñđ, kapi store.

Çöñţéẋţ​

Þŕöĵéçţš àççüḿüļàţé çöñţéẋţ ţĥŕöüĝĥ öƃšéŕṽàţîöñš àñđ çöŕŕéçţîöñš ḿàđé đüŕîñĝ ñöŕḿàļ ŵŕîţîñĝ ŵöŕķ. Àĝéñţš çàñ þŕöþöšé ŕüļéš ŵîţĥ éṽîđéñçé; þéöþļé ŕéṽîéŵ ţĥöšé þŕöþöšàļš ƃéƒöŕé çĥéçķš éñƒöŕçé ţĥéḿ.

Notea fact or a term, with evidenceSuggestadvice reported by checksReviewa person keeps the ruleEnforcekapi checkNote a changewhat a person rewrote

Ñöţéš àƃöüţ ŵĥàţ ţĥé ƒîļéš đö àñđ ŵĥàţ à þéŕšöñ çĥàñĝéđ ƃéçöḿé šüĝĝéšţîöñš. À þéŕšöñ ķééþš à šüĝĝéšţîöñ îñ ŕéṽîéŵ ƃéƒöŕé çĥéçķš éñƒöŕçé îţ.

Šüĝĝéšţîöñš ḿüšţ ñöţ ƒàîļ ƃüîļđš ƃéƒöŕé ŕéṽîéŵ. Öþéŕàţîöñš ḿüšţ àļšö ƃé àţţŕîƃüţàƃļé àñđ ŕéṽéŕšîƃļé. Ţĥé đéšîĝñ ƒöļļöŵš ţĥé üñîţ-đéçîšîöñ ḿöđéļ îñ core/state (Ç-04): àñ àþþéñđ-öñļý ļéđĝéŕ àñđ à šĥàŕéđ þöļîçý ƒüñçţîöñ ƒöŕ àļļ ŵŕîţéŕš.

Đéçîšîöñ​

Àñ öþéŕàţîöñ îš ţĥé üñîţ​

contextop.Record îš öñé ŕéçöŕđéđ çĥàñĝé:

type Record struct {
ID string // the operation id, the same in every log that holds it
Short string // its first ten characters, as a log line shows it
Project workspace.ProjectKey
Actor Actor // person | agent | tool, a name, an agent's session
Kind Kind // observe | correct | import | edit | keep | drop | withdraw | reset | widen | signal | establish
Subject Subject // a term rule, a content-memory pair, a note
Correction *Correction // the wording before and the wording after
Evidence []Evidence // file, unit, quotation: where this was seen
Basis Basis // the governance in force when it was recorded
Scope Scope // where it applies, and for how long
Target string // the operation this one acts on
Before string // the first operation a reset sets aside
Note string // why, in the recorder's words
At time.Time
Status Status // folded from the log, never stored
ContestedBy []string // the operations on the other side of a disagreement
Established bool // kept, imported, written, or settled on a person's signal
Signal *Signal // the evidence a signal carries
Because []string // the signals an establishment rested on
Standing *Standing // the counts for and against, folded from the log
}

Ţĥé ķîñđš, þéŕšîšţéđ àš context.<kind>, đîṽîđé îñţö ţĥöšé ţĥàţ çàŕŕý à šüƃĵéçţ, ţĥöšé ţĥàţ àçţ öñ öñé, àñđ check, ŵĥîçĥ đöéš ñéîţĥéŕ.

  • observe ŕéçöŕđš šöḿéţĥîñĝ šöḿéƃöđý ñöţîçéđ. Šţàţéđ îñ þŕöšé, îţ îš à ñöţé, šüçĥ àš ŵĥö ţĥé đöçüḿéñţš àđđŕéšš. Šţàţéđ àš ţĥé ƒöŕḿ ţĥé þŕöĵéçţ üšéš ƒöŕ à ŵöŕđ àñđ ţĥé ƒöŕḿš îţ àṽöîđš, îţ îš à ţéŕḿ ŕüļé.
  • correct ŕéçöŕđš ţĥàţ šöḿéöñé çĥàñĝéđ ŵöŕđîñĝ ƒŕöḿ öñé ƒöŕḿ ţö àñöţĥéŕ àţ à ļöçàţîöñ, çàŕŕîéš ƃöţĥ ŵöŕđîñĝš îñ Correction, àñđ ḿàý çàŕŕý ţĥé ţéŕḿ ŕüļé ţĥé çĥàñĝé îḿþļîéš àš îţš šüƃĵéçţ.
  • import ŕéçöŕđš öñé çöñţéẋţ ƒîļé à þéŕšöñ ŕéàđ îñţö ţĥé þŕöĵéçţ'š šţöŕéš, àñđ edit ŕéçöŕđš à ŕüļé à þéŕšöñ ŵŕöţé đîŕéçţļý, ŵîţĥ kapi apply öŕ ƃý éđîţîñĝ ţĥé ṽöîçé þŕöƒîļé. Ƃöţĥ àŕé éšţàƃļîšĥéđ ƒŕöḿ ţĥé šţàŕţ.
  • keep, drop, withdraw àñđ widen ñàḿé àñ éàŕļîéŕ öþéŕàţîöñ àñđ šàý ŵĥàţ ƃéçàḿé öƒ îţ.
  • reset ñàḿéš à þöîñţ îñ ţĥé ļöĝ, ţĥé ƒîŕšţ öþéŕàţîöñ îţ šéţš àšîđé, àñđ ŕéŵîñđš ţĥé þŕöĵéçţ'š çöñţéẋţ ţö ĥöŵ îţ šţööđ ţĥéŕé (ƃéļöŵ).
  • signal ŕéçöŕđš éṽîđéñçé àƃöüţ à šüĝĝéšţîöñ ţĥàţ ñöƃöđý ŵŕöţé đöŵñ ƃý ĥàñđ, àñđ establish ŕéçöŕđš ţĥàţ šéţţļîñĝ éšţàƃļîšĥéđ öñé (ƃéļöŵ).
  • check ŕéçöŕđš öñé ŕüñ öƒ ţĥé þŕöĵéçţ'š çĥéçķš ƒöŕ àñ àššîšţàñţ: ţĥé Çļàüđé Çöđé Šţöþ ĥööķ ŕüññîñĝ kapi check --ship àš à ţüŕñ éñđš (CheckRun.Hook stop), öŕ îţš ÞöšţŢööļÜšé ĥööķ ŕüññîñĝ kapi check <file> öñ ţĥé öñé ƒîļé àñ éđîţ ŵŕöţé (edit). Îţš CheckRun ĥöļđš ţĥé ƒîļéš ţĥé ţüŕñ éđîţéđ, ţĥé ƒàîļîñĝ ƒîñđîñĝš ƃý ƒîļé, ŕüļé îđ àñđ ǫüöţé, àñđ ŵĥéţĥéŕ ţĥé ŕüñ ŵàš çļéàñ. Îţš îđ îš đéŕîṽéđ ƒŕöḿ ţĥé šéššîöñ àñđ ţĥé éṽéñţ ţĥé ŕüñ àñšŵéŕéđ: ƒöŕ à Šţöþ ĥööķ ŕüñ, ţĥé îđ öƒ ţĥé ţŕàñšçŕîþţ'š ļàšţ éñţŕý, ŵĥîçĥ Çļàüđé Çöđé ŵŕîţéš àƒţéŕ éṽéŕý Šţöþ ĥööķ, šö éàçĥ Šţöþ îš à ŕüñ öƒ îţš öŵñ; ƒöŕ àñ éđîţ ĥööķ ŕüñ, ţĥé îđ öƒ ţĥé ţööļ çàļļ. À ĥööķ ŕüññîñĝ ţŵîçé ƒöŕ öñé éṽéñţ ŕéçöŕđš öñé öþéŕàţîöñ. À çĥéçķ ŕüñ šţàýš öñ ţĥé ḿàçĥîñé ţĥàţ ŕéçöŕđéđ îţ: šĥàŕîñĝ ţĥé çöñţéẋţ ļéàṽéš îţ öüţ (projector.LocalKinds). À ƒàîļîñĝ ƒîñđîñĝ ţĥàţ öñé ŕüñ ŕéþöŕţš àñđ ţĥé šéššîöñ'š ñéẋţ ŕüñ öñ ţĥé šàḿé ƒîļé đöéš ñöţ ƒîñđ çöüñţš àš çàüĝĥţ. À Šţöþ ĥööķ ŕüñ çöṽéŕš éṽéŕý ƒîļé; àñ éđîţ ĥööķ ŕüñ çöṽéŕš îţš öñé ƒîļé àñđ ţĥé ƒîñđîñĝš ŵĥöšé ŕüļé ţĥé ŵŕîţîñĝ çĥéçķ ŕéþöŕţš (CheckRun.Covers), šö à ƒîñđîñĝ öñ àñöţĥéŕ ƒîļé ŵàîţš ƒöŕ ţĥé ñéẋţ ŕüñ ţĥàţ çĥéçķš ţĥàţ ƒîļé; host.SessionOutcomes đéŕîṽéš ţĥé çöüñţ ƒŕöḿ ţĥé ļöĝ àñđ ñöţĥîñĝ šţöŕéš îţ.

contextop.Ledger đéŕîṽéš šţàţüš ƃý ŕéþļàýîñĝ ţĥé ļöĝ îñ öŕđéŕ àñđ àþþļýîñĝ šüƃšéǫüéñţ öþéŕàţîöñš ţö éàçĥ šüƃĵéçţ:

ŠţàţüšŴĥàţ îţ ḿéàñšÀñšŵéŕš
suggestedñöţĥîñĝ ĥàš àçţéđ öñ îţàđṽîšéš
establishedà þéŕšöñ ķéþţ, îḿþöŕţéđ öŕ ŵŕöţé îţ, öŕ à þéŕšöñ'š šîĝñàļ šéţţļéđ îţƒàîļš à çĥéçķ üñļéšš àđṽîšöŕý
contestedîţ đîšàĝŕééš ŵîţĥ àñöţĥéŕ ŕüļé, ñàḿéđ îñ ContestedByàđṽîšéš
withdrawnîţš àüţĥöŕ ţööķ îţ ƃàçķ îñ ţĥé šéššîöñ ţĥàţ ŕéçöŕđéđ îţšîļéñţ
droppedà þéŕšöñ šéţ îţ àšîđé, àš à šüĝĝéšţîöñ öŕ àš à ŕüļé îñ ƒöŕçéšîļéñţ
resetà ŕéšéţ šéţ îţ àšîđéšîļéñţ

Àñ öƃšéŕṽàţîöñ šţàţéš à ţéŕḿ ŕüļé ƃý îţš ƒöŕḿš​

kapi context note --term Quickcast --instead-of "Quick cast" ŕéçöŕđš ţĥé ƒöŕḿ ţĥé þŕöĵéçţ üšéš àñđ à ƒöŕḿ îţ àṽöîđš. contextop.AvoidedForms đéŕîṽéš ţĥé ŕéšţ đéţéŕḿîñîšţîçàļļý, ŵîţĥ ñö ḿöđéļ: ţĥé --instead-of ƒöŕḿš, ţĥéñ ţĥé šþàçîñĝ, ĥýþĥéñ àñđ çàþîţàļîšàţîöñ ṽàŕîàñţš öƒ à çöḿþöüñđ. Ţĥé ŕüļé àƃöṽé àṽöîđš Quick cast, Quick-cast àñđ QuickCast.

À çöḿþöüñđ'š þàŕţš çöḿé ƒŕöḿ ţĥé ţéŕḿ'š öŵñ šþàçéš, ĥýþĥéñš àñđ çàšé çĥàñĝéš, öŕ, ƒöŕ à çļöšéđ ŵöŕđ šüçĥ àš Quickcast, ƒŕöḿ àñ --instead-of ƒöŕḿ ţĥàţ ƃŕéàķš îţ. À ļöŵéŕ-çàšé þĥŕàšé šüçĥ àš content memory ýîéļđš öñļý content-memory, ŵîţĥöüţ ĝéñéŕàţîñĝ à çļöšéđ çöḿþöüñđ. À ŵöŕđ ŵîţĥ ñéîţĥéŕ ĥàš ñö þàŕţš ţö ṽàŕý, àñđ îţš ŕüļé àṽöîđš ŵĥàţ --instead-of ļîšţš. Ţĥé ƒîŕšţ àṽöîđéđ ƒöŕḿ ƃéçöḿéš ţĥé ŕüļé'š ţéŕḿ àñđ ţĥé ŕéšţ îţš ƒöŕḿš. À ŕüļé ŵĥöšé àṽöîđéđ ƒöŕḿš đéŕ ƒŕöḿ ţĥé ţéŕḿ öñļý îñ çàšé ḿàţçĥéš àš ŵŕîţţéñ, šö ţĥé ŕüļé àƃöüţ quickcast ñéṽéŕ ƒîŕéš öñ Quickcast.

Šüĝĝéšţîöñš àđṽîšé, éšţàƃļîšĥéđ ŕüļéš ƃîñđ​

À šüĝĝéšţîöñ öŕ à çöñţéšţéđ ŕüļé îš þŕöĵéçţéđ îñţö çĥéçķš àš à šüĝĝéšţéđ ŕüļé šéţ (profile.TermRuleSet.Suggested). Ţĥé ḿàţçĥéŕ ŕàîšéš éṽéŕý ĥîţ àĝàîñšţ šüçĥ à šéţ ŵîţĥ Fails ƒàļšé, ŵĥàţéṽéŕ ţĥé ŕüļé đéçļàŕéš, àñđ šţàḿþš Suggested öñ ţĥé ĥîţ, ţĥé ƒîñđîñĝ àñđ ţĥé đîàĝñöšţîç. À šüĝĝéšţéđ ƒîñđîñĝ ŵéîĝĥš žéŕö îñ ţĥé šçöŕé àñđ çöüñţš îñţö Summary.Reporting, šö à šüĝĝéšţîöñ çàññöţ ƒàîļ à çĥéçķ.

Ţĥé ƒļàĝ îš ŵĥàţ à šüŕƒàçé ŕéàđš ţö šĥöŵ ţĥé ƒîñđîñĝ àš à šüĝĝéšţîöñ ŕàţĥéŕ ţĥàñ à ƃŕöķéñ ŕüļé, àñđ HitsToFindings ŵöŕđš ţĥé ḿéššàĝé àççöŕđîñĝļý: Šüĝĝéšţéđ ŕüļé àƃöüţ "üţîļîšé", ñöţ ýéţ éšţàƃļîšĥéđ.

Šüĝĝéšţéđ-ŕüļé çĥéçķš ŕüñ ƃéƒöŕé àñđ îñđéþéñđéñţļý öƒ ţĥé terms àñàļýžéŕ. Ţĥîš àļļöŵš þŕöĵéçţš ŵîţĥöüţ à ṽöîçé þŕöƒîļé öŕ ţéŕḿš šţöŕé ţö ŕéþöŕţ šüĝĝéšţîöñš. Šüĝĝéšţéđ ƒîñđîñĝš ĥàṽé žéŕö šçöŕîñĝ ŵéîĝĥţ àñđ đö ñöţ àƒƒéçţ ĝàţéš öŕ ţĥé àñàļýžéŕ'š çàñàŕý ṽàļîđàţîöñ.

Ķééþîñĝ à ŕüļé ŵŕîţéš îţ îñţö ţĥé þŕöĵéçţ'š šţöŕéš. Šüƃšéǫüéñţ çĥéçķš üšé ţĥé ŕüļé'š àđṽîšöŕý šéţţîñĝ: ṽîöļàţîöñš öƒ àñ éšţàƃļîšĥéđ ŕüļé ƒàîļ üñļéšš îţ îš ḿàŕķéđ àđṽîšöŕý.

Šüĝĝéšţîöñš šéţţļé ƃý éṽîđéñçé​

contextop.settle ŕüñš îñšîđé ţĥé ƒöļđ, àƒţéŕ éṽéŕý þéŕšöñ'š đéçîšîöñ ĥàš ƃééñ àþþļîéđ àñđ ƃéƒöŕé đîšàĝŕééḿéñţš àŕé ḿàŕķéđ. Îţ ĝŕöüþš ţĥé šüĝĝéšţîöñš ţĥàţ šţàţé öñé ŕüļé (ţĥé šàḿé ƒöŕḿ ţö üšé, à ƒöŕḿ ţö àṽöîđ îñ çöḿḿöñ, àţ þöîñţš ţĥàţ ḿééţ) àñđ ŕéàđš ţĥé éṽîđéñçé ƒöŕ ţĥé ĝŕöüþ ƒŕöḿ ţĥé ļöĝ:

ŠîĝñàļŔéçöŕđéđ àšÉƒƒéçţ
À þéŕšöñ ķééþš îţkeepÉšţàƃļîšĥéš îţ àţ öñçé
À çöŕŕéçţîöñ ţöŵàŕđ îţ, ƃý à þéŕšöñ öŕ ƃý àñ àĝéñţ ŕéçöŕđîñĝ ŵĥàţ ţĥé þéŕšöñ çĥàñĝéđcorrectÞéŕšöñ šîĝñàļ
Ţĥé çĥàñĝé ŕéàçĥéđ ţĥé đéƒàüļţ ƃŕàñçĥsignal ŵîţĥ šöüŕçé mergeÞéŕšöñ šîĝñàļ
Àñöţĥéŕ šéššîöñ ŕéçöŕđš ţĥé šàḿé ŕüļéobserveŠţàñđîñĝ öñļý
Ţĥé çöñţéñţ ŵŕîţéš ţĥé þŕéƒéŕŕéđ ƒöŕḿsignal ŵîţĥ šöüŕçé usageŠţàñđîñĝ öñļý
Àñ àĝéñţ'š àþþļîéđ éđîţ ŵŕîţéš ţĥé þŕéƒéŕŕéđ ƒöŕḿsignal ŵîţĥ šöüŕçé appliedŠţàñđîñĝ öñļý
À çöŕŕéçţîöñ àŵàý ƒŕöḿ îţcorrectÀĝàîñšţ
Îţš àüţĥöŕ ŵîţĥđŕàŵš îţwithdrawÀĝàîñšţ
Ţĥé çöñţéñţ ḿöṽéš ţö à ŕéĵéçţéđ ƒöŕḿ àƒţéŕ îţ ŵàš ŕéçöŕđéđsignal ŵîţĥ šöüŕçé usageÀĝàîñšţ

Ţĥé ĝŕöüþ šĥàŕéš öñé šţàñđîñĝ, àñđ éàçĥ ḿéḿƃéŕ îš šéţţļéđ öñ ţĥé þéŕšöñ šîĝñàļš šééñ ŵĥéŕé ţĥàţ ḿéḿƃéŕ ĥöļđš. À çöŕŕéçţîöñ çöüñţš ƒöŕ à ḿéḿƃéŕ ŵĥöšé šçöþé çöṽéŕš ţĥé þöîñţ ţĥé çöŕŕéçţîöñ ŵàš ŕéçöŕđéđ àţ (seenWithin), àñđ à ḿéŕĝé šîĝñàļ ñàḿéš ţĥé ḿéḿƃéŕ ŵĥöšé šçöþé ţĥé çĥàñĝé'š ƒîļéš šàţ îñ, šö îţ çöüñţš ƒöŕ ţĥàţ ḿéḿƃéŕ àļöñé. Šüĝĝéšţîöñš àţ à þöîñţ ŵîţĥ ñö çööŕđîñàţéš ḿééţ éṽéŕý öţĥéŕ þöîñţ, šö à ĝŕöüþ çàñ šþàñ ţĥé ĥéļþ þàĝéš àñđ ţĥé ļéĝàļ ţéŕḿš ţĥŕöüĝĥ öñé öƒ ţĥéḿ; ţĥé éṽîđéñçé îš šţîļļ ŕéàđ þéŕ ḿéḿƃéŕ, àñđ à çöŕŕéçţîöñ îñ ţĥé ĥéļþ þàĝéš éšţàƃļîšĥéš ţĥé ĥéļþ þàĝéš' šüĝĝéšţîöñ àñđ ļéàṽéš ţĥé ļéĝàļ ţéŕḿš' šüĝĝéšţîöñ àš îţ ŵàš.

À ḿéḿƃéŕ ŵîţĥ à þéŕšöñ šîĝñàļ àñđ ñöţĥîñĝ àĝàîñšţ îţ îš éšţàƃļîšĥéđ. À ḿéḿƃéŕ ŵîţĥ à þéŕšöñ šîĝñàļ àñđ à šîĝñàļ àĝàîñšţ îţ, öŕ à ŕîṽàļ ŕüļé ţĥàţ đîšàĝŕééš ŵîţĥ îţ, îš çöñţéšţéđ àñđ ŵàîţš ƒöŕ à þéŕšöñ. À ḿéḿƃéŕ ŵîţĥöüţ à þéŕšöñ šîĝñàļ šţàýš à šüĝĝéšţîöñ ŵĥàţéṽéŕ îţš šţàñđîñĝ, àñđ ţîḿé àļöñé šéţţļéš ñöţĥîñĝ. Ţĥé çöŕŕéçţîöñ à šüĝĝéšţîöñ ŵàš đŕàŵñ ƒŕöḿ îš ñöţ éṽîđéñçé ƒöŕ ţĥàţ šüĝĝéšţîöñ àļöñé. À þéŕšöñ đŕöþþîñĝ ţĥé ŕüļé šéţš àšîđé ŵĥàţ ŵàš ŕéçöŕđéđ ƃéƒöŕé ţĥé đŕöþ, ţöĝéţĥéŕ ŵîţĥ ţĥé éṽîđéñçé ĝàţĥéŕéđ ƃéƒöŕé îţ.

Àñ àĝéñţ'š šüĝĝéšţîöñ àþþļîéš öñļý ŵĥéŕé îţ ŵàš šééñ üñţîļ à þéŕšöñ ŵîđéñš îţ îñ ŕéṽîéŵ (placed). Öñé ţĥàţ ñàḿéš ñö ƒîļé îţ ŵàš šééñ îñ ĥàš ñö þļàçé, šö šéţţļîñĝ ñéṽéŕ éšţàƃļîšĥéš îţ; à þéŕšöñ ķééþš îţ àñđ çĥööšéš ŵĥéŕé îţ ĥöļđš. Šéţţļîñĝ ŕéçöŕđš àñ establish ŵîţĥ ţĥé šüĝĝéšţîöñ'š öŵñ šçöþé àñđ ñéṽéŕ çĥàñĝéš îţ: éṽîđéñçé éšţàƃļîšĥéš à ŕüļé ŵĥéŕé îţ ŵàš šééñ àñđ ŵîđéñš ñöţĥîñĝ.

Ŵĥéñ ţĥé ļöĝ šüþþöŕţš éšţàƃļîšĥîñĝ à šüĝĝéšţîöñ ţĥàţ ñö establish ñàḿéš ýéţ, Ledger.Settle ŕéçöŕđš öñé: àçţöŕ tool settle, ţĥé šüĝĝéšţîöñ àš îţš ţàŕĝéţ, àñđ ţĥé þéŕšöñ šîĝñàļš îţ ŕéšţéđ öñ îñ Because. Îţš çöñţéñţ àđđŕéšš îš đéŕîṽéđ ƒŕöḿ ţĥé ţàŕĝéţ àñđ ţĥàţ éṽîđéñçé, šö ţŵö ḿàçĥîñéš šéţţļîñĝ ţĥé šàḿé ļöĝ ŕéçöŕđ öñé öþéŕàţîöñ. Ţĥé ĥöšţ ļàñđš ţĥé ŕüļé ţĥé ŵàý à ķééþ đöéš, àñđ à ļàţéŕ šîĝñàļ àĝàîñšţ îţ ţàķéš îţ ƃàçķ öüţ öƒ ţĥé šţöŕé ţĥŕöüĝĥ ţĥé šàḿé ŕéçöñçîļîàţîöñ à çöñţéšţîñĝ çöŕŕéçţîöñ üšéš. Ƃéçàüšé ţĥé ƒöļđ ŕéàđš ţĥé éṽîđéñçé àĝàîñ öñ éṽéŕý ŕéàđ, àñ establish ŵĥöšé éṽîđéñçé ƒàîļš ţö ĥöļđ šţöþš ƃîñđîñĝ, àñđ ţĥé öüţçöḿé îš ţĥé šàḿé ŵĥàţéṽéŕ öŕđéŕ ţŵö ļöĝš ŵéŕé ḿéŕĝéđ îñ.

Record.Standing çàŕŕîéš ţĥé çöüñţš ƃéĥîñđ éàçĥ šüĝĝéšţîöñ, àñđ éṽéŕý šüŕƒàçé šĥöŵš ţĥéḿ àš çöüñţš, ñéṽéŕ àš à šçöŕé: seen in 3 sessions · 14 of 15 uses in docs/ · merged in #412.

kapi context sync --merged <range> ŕéçöŕđš ţĥé ḿéŕĝé šîĝñàļ (host.App.SettleContext, ŵĥîçĥ SyncProjectContext ŕüñš ƃéţŵééñ îţš þüļļ àñđ îţš þüšĥ, àñđ àļöñé îñ à þŕöĵéçţ ţĥàţ šĥàŕéš îţš çöñţéẋţ ñöŵĥéŕé). Îţ ŕéàđš ţĥé đ ţĥé ŕàñĝé ḿàđé îñšîđé ţĥé þŕöĵéçţ, àñđ ƒöŕ éàçĥ šüĝĝéšţîöñ ŵĥöšé šçöþé çöṽéŕš à çĥàñĝéđ ƒîļé îţ çöüñţš ţĥé àđđéđ ļîñéš ţĥàţ ŵŕîţé ţĥé þŕéƒéŕŕéđ ƒöŕḿ àñđ ţĥé ŕéḿöṽéđ ļîñéš ţĥàţ ĥéļđ à ŕéĵéçţéđ öñé. À šüĝĝéšţîöñ ŵîţĥ éîţĥéŕ çöüñţ àƃöṽé žéŕö ĝéţš à signal ñàḿîñĝ ţĥé çöḿḿîţ, ţĥé þüļļ ŕéǫüéšţ (ŕéàđ ƒŕöḿ à šǫüàšĥ öŕ ḿéŕĝé çöḿḿîţ'š šüƃĵéçţ ŵĥéñ ñöţ ĝîṽéñ) àñđ ţĥé ḿéŕĝéŕ. Ţĥé šîĝñàļ'š àđđŕéšš çöṽéŕš ţĥé šüĝĝéšţîöñ, ţĥé çöḿḿîţ àñđ ţĥé çöüñţš, šö šéţţļîñĝ öñé ŕàñĝé ţŵîçé ŕéçöŕđš ñöţĥîñĝ ñéŵ. ÇÎ ŕüñš îţ àƒţéŕ à ḿéŕĝé öŕ à þüšĥ ţö ţĥé đéƒàüļţ ƃŕàñçĥ (Çöñṽéŕĝéñçé îñ ÇÎ).

Ţĥé öţĥéŕ šîĝñàļš àŕé ŕéçöŕđéđ ŵĥéŕé ţĥé çöñţéñţ îš ŕéàđ. À ŵĥöļé-þŕöĵéçţ kapi check àñđ à kapi up ŕüñ çöüñţ, ƒöŕ éàçĥ šüĝĝéšţîöñ àñđ éàçĥ éšţàƃļîšĥéđ ŕüļé ŵĥöšé šçöþé çöṽéŕš ţĥé çöñţéñţ, ţĥé üšéš öƒ îţš þŕéƒéŕŕéđ ƒöŕḿ àñđ öƒ ţĥé ƒöŕḿš îţ àṽöîđš îñ ţĥé šöüŕçé ţĥéý ŕéàđ, àñđ ŕéçöŕđ à usage šîĝñàļ àš ţööļ check; à çĥéçķ öƒ ñàḿéđ ƒîļéš öŕ öƒ à đ ŕéçöŕđš ñöñé, ƃéçàüšé þàŕţ öƒ ţĥé çöñţéñţ šàýš ñöţĥîñĝ àƃöüţ ĥöŵ ţĥé þŕöĵéçţ ŵŕîţéš. À ŕüļé'š çöüñţš àŕé ŕéçöŕđéđ öñļý ŵĥéñ ţĥéý đéŕ ƒŕöḿ ţĥé ļàţéšţ ŕéçöŕđéđ ƒöŕ îţ, šö à ŕüñ öṽéŕ üñçĥàñĝéđ çöñţéñţ àđđš ñöţĥîñĝ ţö ţĥé ļöĝ. Ƒöŕ à šüĝĝéšţîöñ ţĥé çöüñţ îš šţàñđîñĝ. Ƒöŕ àñ éšţàƃļîšĥéđ ŕüļé, à ļàţéŕ çöüñţ ţĥàţ ŵŕîţéš à ŕéĵéçţéđ ƒöŕḿ ḿöŕé öƒţéñ ţĥàñ ţĥé çöüñţ ţàķéñ ŵĥéñ ţĥé ŕüļé çàḿé îñţö ƒöŕçé îš đŕîƒţ, ŵĥîçĥ ţĥé ŕéṽîéŵ đîĝéšţ ŕéþöŕţš (Š-07). Àñ àĝéñţ'š çöñţéñţ éđîţ àþþļîéđ ţĥŕöüĝĥ kapi apply öŕ ţĥé apply_edits ţööļ ŕéçöŕđš àñ applied šîĝñàļ àš ţööļ apply ƒöŕ éàçĥ šüĝĝéšţîöñ ŵĥöšé þŕéƒéŕŕéđ ƒöŕḿ ţĥé éđîţ ŵŕîţéš, ñàḿîñĝ ţĥé àĝéñţ'š šéššîöñ.

Đîšàĝŕééḿéñţš àŕé çöñţéšţéđ üñţîļ à þéŕšöñ çĥööšéš​

Ţŵö ŕüļéš đîšàĝŕéé ŵĥéñ ţĥéý šĥàŕé à ƒöŕḿ ţö àṽöîđ àñđ ñàḿé đéŕéñţ ƒöŕḿš ţö üšé, öŕ ŵĥéñ öñé àṽöîđš ţĥé ƒöŕḿ ţĥé öţĥéŕ þŕéšçŕîƃéš. Ţŵö ŕüļéš đîšàĝŕéé öñļý îƒ ƃöţĥ çàñ àþþļý àţ ţĥé šàḿé þöîñţ àñđ îñšţàñţ. Ŕüļéš îñ đéŕéñţ þŕöĵéçţš, ŕüļéš àţ çööŕđîñàţéš ţĥàţ çàññöţ öṽéŕļàþ, àñđ ŕüļéš ŵĥöšé ļîƒéţîḿé ŵîñđöŵš šĥàŕé ñö îñšţàñţ ñéṽéŕ đîšàĝŕéé. À ŕéñàḿé ţĥàţ éñđš öñ ţĥé đàý îţš ŕéþļàçéḿéñţ ƃéĝîñš îš ţĥéŕéƒöŕé ţŵö ŕüļéš îñ šéǫüéñçé. Ţĥé ƒöļđ ḿàŕķš à đîšàĝŕééḿéñţ contested àñđ ñàḿéš ţĥé öţĥéŕ šîđé îñ ContestedBy:

  • Ţŵö šüĝĝéšţîöñš àƃöüţ ţĥé šàḿé ŵöŕđ àŕé ƃöţĥ çöñţéšţéđ, éàçĥ ñàḿîñĝ ţĥé öţĥéŕ. Ƃöţĥ àđṽîšé, àñđ ñéîţĥéŕ çàñ ƃé ķéþţ üñţîļ à þéŕšöñ çĥööšéš öñé: host.App.ChooseContextSide (kapi context review --choose) đŕöþš ţĥé ŕîṽàļš àñđ ķééþš ţĥé çĥöšéñ šîđé, öñé öþéŕàţîöñ þéŕ šţéþ.
  • À šüĝĝéšţîöñ ţĥàţ çöñţŕàđîçţš àñ éšţàƃļîšĥéđ ŕüļé îš çöñţéšţéđ ƃý ţĥé ŕüļé, àñđ ţĥé ŕüļé šţàýš îñ ƒöŕçé.
  • À þéŕšöñ'š çöŕŕéçţîöñ ţĥàţ ŕéṽéŕšéš àñ éšţàƃļîšĥéđ ŕüļé çöñţéšţš ţĥé ŕüļé, àñđ ţĥé ŕüļé çöñţéšţš ţĥé çöŕŕéçţîöñ. Ţĥé ŕüļé îš ţàķéñ öüţ öƒ ţĥé ţéŕḿš šţöŕé àñđ ŕéþöŕţš îñšţéàđ öƒ ƒàîļîñĝ, üñţîļ à þéŕšöñ ķééþš îţ àĝàîñ öŕ đŕöþš ţĥé çöŕŕéçţîöñ, šö à þéŕšöñ'š öŵñ éđîţ ñéṽéŕ ƒàîļš ţĥéîŕ ƃüîļđ. Ķééþîñĝ ţĥé çöŕŕéçţîöñ îš à çĥöîçé ļîķé àñý öţĥéŕ šîđé'š: review --keep ŕéƒüšéš îţ àñđ ñàḿéš ţĥé ŕüļé, àñđ review --choose đŕöþš ţĥé ŕüļé àñđ ķééþš ţĥé çöŕŕéçţîöñ.

kapi context review --session <id> --keep all ķééþš éṽéŕýţĥîñĝ öñé šéššîöñ šüĝĝéšţéđ àñđ ļéàṽéš éàçĥ çöñţéšţéđ šüĝĝéšţîöñ ƒöŕ ļàţéŕ, ñàḿîñĝ ţĥé öţĥéŕ šîđé.

Ŕéṽîéŵ îš ŵĥéŕé à þéŕšöñ đéçîđéš​

host.App.DecideContextReview ţàķéš öñé ŕöüñđ öƒ đéçîšîöñš (ContextReviewRequest: Keep, Drop, Choose, Session, WidenTo, Replacement, Advisory, ValidFrom, ValidTo, Note) àñđ ŕéçöŕđš ţĥéḿ îñ à ƒîẋéđ öŕđéŕ: ţĥé çĥöîçé, ţĥéñ ţĥé đŕöþš, ţĥéñ ţĥé ķééþš, šö à ķééþ ñéṽéŕ ḿééţš à ŕîṽàļ ţĥé šàḿé ŕöüñđ đŕöþš. kapi context review ŕéàçĥéš îţ ţŵö ŵàýš. Îñ à ţéŕḿîñàļ îţ ŵàļķš ţĥé đîĝéšţ öñé îţéḿ àţ à ţîḿé àñđ àšķš; éļšéŵĥéŕé îţ þŕîñţš ţĥé đîĝéšţ, àñđ ţĥé đéçîšîöñš àŕŕîṽé àš ƒļàĝš. Ƃöţĥ ŕéçöŕđ ţĥé šàḿé öþéŕàţîöñš.

À đîĝéšţ îţéḿ šàýš ŵĥàţ à þéŕšöñ ḿàý đö ŵîţĥ îţ: Droppable ĥöļđš ƒöŕ à šüĝĝéšţîöñ àñđ ƒöŕ à ŕüļé îñ ƒöŕçé, àñđ Widenable ƒöŕ à ŕüļé îñ ƒöŕçé ţĥàţ çàñ àþþļý ḿöŕé ŵîđéļý. Đŕöþþîñĝ à ŕüļé îñ ƒöŕçé ŕéçöŕđš à drop àñđ ţàķéš ţĥé ŕüļé ƃàçķ öüţ öƒ ţĥé šţöŕéš ķééþîñĝ ŵŕöţé îţ ţö (host.App.DropContextOperation). Ţĥéŕé îš ñö üñđö ƒöŕ à šîñĝļé đéçîšîöñ: çĥàñĝîñĝ ýöüŕ ḿîñđ àƃöüţ à ŕüļé îš à ñéŵ đéçîšîöñ, ŕéçöŕđéđ ƃéšîđé ţĥé öñé îţ ŕéþļàçéš.

Ķééþîñĝ ŵŕîţéš ţĥŕöüĝĥ ţĥé éẋîšţîñĝ àþþļîéŕš​

kapi apply îš ţĥé öñé ŵŕîţé ṽéŕƃ, àñđ îţš àššéţ öþéŕàţîöñš ŵŕîţé ţĥé þŕöĵéçţ'š ţéŕḿš šţöŕé öŕ çöñţéñţ ḿéḿöŕý (Ç-08, Ç-09). À ŵöŕđ ŕüļé îš à ţéŕḿ, šö ķééþîñĝ öñé ŵŕîţéš à çöñçéþţ, ḿàŕķéđ àđṽîšöŕý ŵĥéñ ţĥé ŕüļé îš. Ķééþîñĝ à ŕüļé ƃüîļđš ţĥé šàḿé çĥàñĝé-šéţ éñţŕý àñđ ŕüñš ţĥé šàḿé àþþļîéŕ, šö ŕéţŕîéṽàļ, çĥéçķš, đŕàƒţîñĝ, ţĥé ĝöṽéŕñîñĝ ƒîñĝéŕþŕîñţ àñđ éṽéŕý ḿàçĥîñé ţĥàţ þüļļš àļļ šéé îţ ŵîţĥ ñö šéçöñđ çöđé þàţĥ. À ţéŕḿ ŕüļé ŵîţĥ šéṽéŕàļ ƒöŕḿš ţö àṽöîđ ļàñđš éàçĥ ƒöŕḿ, àñđ à ƒöŕḿ ţĥàţ đéŕš ƒŕöḿ ţĥé ƒöŕḿ ţö üšé öñļý îñ çàšé šţàýš öüţ öƒ ţĥé šţöŕé, ŵĥîçĥ ƒöļđš çàšé.

À ñöţé îñ þŕöšé šţàţéš ñö ŕüļé, šö ķééþîñĝ öñé ŵŕîţéš ţö ñö šţöŕé. Ţĥé ķééþ öþéŕàţîöñ îñ ţĥé ļöĝ îš ţĥé öñļý ŕéçöŕđ öƒ îţ. Éṽéŕý ƃý-ļöçàţîöñ àñšŵéŕ ŵĥöšé þöîñţ ţĥé ñöţé'š šçöþé àñđ ŵîñđöŵ çöṽéŕ ļîšţš îţ üñđéŕ Éšţàƃļîšĥéđ ñöţéš (Ç-06). Ţĥé ŕüļéš ƒîļé öƒ éàçĥ ƒöļđéŕ àţ šüçĥ à þöîñţ ļîšţš îţ üñđéŕ Ñöţéš à þéŕšöñ ķéþţ (Ç-06). Ţĥé ķééþ ŕéþöŕţš ţĥé öþéŕàţîöñ ļöĝ àš ŵĥéŕé ţĥé ñöţé ŵàš ŵŕîţţéñ. Ţĥé ŵîđéšţ šçöþé à ñöţé çàñ ĥàṽé îš îţš þŕöĵéçţ, ƃéçàüšé ţĥé ŵöŕķšþàçé'š ŕüļé šţöŕé ĥöļđš öñļý ţéŕḿ ŕüļéš. ContextWidenOptions öƒƒéŕš à ñöţé öñļý îţš àẋéš, àñđ à ŕéǫüéšţ ţö ŵîđéñ à ñöţé ţö ţĥé ŵöŕķšþàçé îš ŕéƒüšéđ ƃéƒöŕé àñýţĥîñĝ îš ŕéçöŕđéđ.

Đŕöþþîñĝ àñ éšţàƃļîšĥéđ ŕüļé ŕéṽéŕšéš îţ àĝàîñšţ ţĥé šàḿé šţöŕéš: ţĥé ţéŕḿ îš đéļéţéđ ƒŕöḿ ţĥé ţéŕḿš šţöŕé, öŕ ţĥé þàîŕ ƒŕöḿ ţĥé çöñţéñţ ḿéḿöŕý. Öţĥéŕ ţéŕḿš îñ ţĥé çöñçéþţ àŕé þŕéšéŕṽéđ ƃéçàüšé đéļéţîöñ ţàŕĝéţš ţĥé ţéŕḿ.

Éṽéŕý öñé öƒ ţĥéšé šţöŕé ŵŕîţéš ĝöéš ţĥŕöüĝĥ ţĥé þŕöĵéçţöŕ (Ç-03), šö ţĥé ļöĝ ĥöļđš éàçĥ ŕüļé ţŵîçé öṽéŕ: ţĥé çöñţéẋţ öþéŕàţîöñ ţĥàţ đéçîđéđ îţ, àñđ ţĥé terms.write, memory.write, voice.write öŕ rules.write öþéŕàţîöñ çàŕŕýîñĝ ţĥé ŕöŵš ţĥé đéçîšîöñ ŵŕöţé, ŵĥöšé öŕîĝîñ ñàḿéš ţĥé öþéŕàţîöñ îţ çàŕŕîéš öüţ. Ţĥé çöñţéẋţ öþéŕàţîöñš ƒöļđ îñţö šţàţüšéš; ţĥé šţöŕé öþéŕàţîöñš ŕéþļàý îñţö ţĥé šţöŕéš.

À çàļļ ţĥàţ ŵŕîţéš à ŕüļé ţö à šţöŕé, ŕéḿöṽéš öñé, öŕ ķééþš öŕ đŕöþš à ñöţé àļšö ŕéƒŕéšĥéš ţĥé þŕöĵéçţ'š ŕüļéš ƒîļéš ŵĥéñ îţ éñđš. Ţĥé AGENTS.md àñđ CLAUDE.md àñ àĝéñţ ļöàđš ţĥéñ ļîšţ ţĥé ŕüļéš àñđ ñöţéš îñ ƒöŕçé (Ç-06).

kapi apply ŕéçöŕđš öñé edit öþéŕàţîöñ ƒöŕ éàçĥ ţéŕḿ öŕ çöñţéñţ-ḿéḿöŕý öþéŕàţîöñ îţ àþþļîéš, éšţàƃļîšĥéđ ƒŕöḿ ţĥé šţàŕţ àñđ àţţŕîƃüţéđ ţö ţĥé þéŕšöñ ŵĥö ŕàñ ţĥé çöḿḿàñđ. Ţĥé ţŕàñšþöŕţ šţàḿþš ţĥé àçţöŕ àñđ à çĥàñĝé šéţ ĥàš ñö ƒîéļđ ƒöŕ öñé: kapi apply šţàḿþš ţĥé àçţöŕ ţĥé éñṽîŕöñḿéñţ ñàḿéš, àš éṽéŕý kapi context çöḿḿàñđ đöéš, àñđ apply_edits šţàḿþš ţĥé çàļļîñĝ àĝéñţ àñđ ţĥé šéŕṽéŕ'š šéššîöñ. Ţĥé þöļîçý ŕéƒüšéš à ţéŕḿ, çöñţéñţ-ḿéḿöŕý öŕ ŕéçîþé éñţŕý ƒŕöḿ àñ àĝéñţ ƃéƒöŕé àñýţĥîñĝ îš ŵŕîţţéñ, šö àñ àĝéñţ ŕéçöŕđš à ñöţé îñšţéàđ.

Ŕéàđîñĝ à çĥéçķöüţ'š çöñţéẋţ ƒîļéš îš àñ öþéŕàţîöñ ţöö​

kapi store import îš ţĥé öñé çöḿḿàñđ ţĥàţ öþéñš à çöñţéẋţ ƒîļé îñ à çĥéçķöüţ (Ç-01). Ŵĥàţ îţ ŕéàđš îţ ŕéçöŕđš: öñé import öþéŕàţîöñ þéŕ ƒîļé, éšţàƃļîšĥéđ ƒŕöḿ ţĥé šţàŕţ, ŵîţĥ àñ àçţöŕ öƒ ķîñđ þéŕšöñ, çàŕŕýîñĝ ţĥé ƒîļé'š þŕöĵéçţ-ŕéļàţîṽé þàţĥ àñđ ţĥé ŠĤÀ-256 öƒ ţĥé ƃýţéš îţ ŕéàđ àš éṽîđéñçé. kapi context log ţĥéñ šĥöŵš àñ îḿþöŕţ ƃéšîđé éṽéŕý öţĥéŕ çĥàñĝé ţö ţĥé þŕöĵéçţ'š çöñţéẋţ, àñđ à ŕéàđéŕ çàñ ţéļļ ŵĥîçĥ ŕüļéš çàḿé ƒŕöḿ à ƒîļé àñđ ŵĥîçĥ ƒŕöḿ à đéçîšîöñ šöḿéƃöđý ţööķ. Ŵĥàţ ţĥé ƒîļé ĥéļđ ţŕàṽéļš îñ ţĥé ļöĝ àš ŵéļļ: éàçĥ ƒîļé îš ŕéàđ àš öñé þŕöĵéçţöŕ ƃàţçĥ, ŕéçöŕđéđ àš öñé šţöŕé öþéŕàţîöñ þéŕ šţöŕé îţ ŕéàçĥéš, ŵîţĥ ţĥé þàŕšéđ çöñçéþţš, éñţŕîéš öŕ þŕöƒîļé îñ à ƃļöƃ ŵĥéñ ţĥéý àŕé ļàŕĝé. À šéçöñđ ḿàçĥîñé ŕéþļàýîñĝ ţĥé ļöĝ ţĥéŕéƒöŕé ĝéţš ţĥé îḿþöŕţéđ çöñţéñţ, àñđ ñééđš ñéîţĥéŕ ţĥé ƒîļé ñöŕ îţš ƃýţéš.

À þéŕšöñ ŕüñš îţ. Ţĥé þöļîçý ƒüñçţîöñ ƃéļöŵ ŕéƒüšéš àñ àĝéñţ'š îḿþöŕţ, ñàḿîñĝ ţĥé çöḿḿàñđ ƒöŕ ţĥé þéŕšöñ ţö ŕüñ, ƃéçàüšé ŕéàđîñĝ à çĥéçķöüţ'š ƒîļéš þüţš ţĥéḿ îñ ƒöŕçé ƒöŕ éṽéŕýöñé ŵöŕķîñĝ îñ ţĥé þŕöĵéçţ. kapi voice edit ŕéçöŕđš öñé edit öþéŕàţîöñ ŵĥöšé ñöţé šàýš ţĥé þŕöƒîļé ŵàš éđîţéđ ŵĥöļé.

Ţĥé šķîþ šţàḿþš ļîṽé îñ ţĥé ŵöŕķšþàçé, ķéýéđ ƃý ţĥé ñöŕḿàļîžéđ çĥéçķöüţ þàţĥ àñđ ţĥé ƒîļé'š þŕöĵéçţ-ŕéļàţîṽé þàţĥ, šö ţŵö çĥéçķöüţš öƒ öñé þŕöĵéçţ ñéṽéŕ šķîþ éàçĥ öţĥéŕ'š ƒîļéš àñđ à šéçöñđ îḿþöŕţ öƒ üñḿöṽéđ ƃýţéš ŕéþöŕţš ţĥàţ îţ ŕéàđ ñöţĥîñĝ. --force ŕéàđš ŕéĝàŕđļéšš.

host.ContextFilesUnread đéţéçţš à çĥéçķöüţ ŵîţĥ çöñţéẋţ ƒîļéš àñđ àñ éḿþţý þŕöĵéçţ çöñţéẋţ šţöŕé. Îţ çĥéçķš ƒîļé ḿéţàđàţà àñđ ŵĥéţĥéŕ ţĥé šţöŕé çöñţàîñš àñý çöñçéþţ, ḿéḿöŕý éñţŕý, ṽöîçé þŕöƒîļé öŕ đéçîšîöñ, ŵîţĥöüţ ŕéàđîñĝ ţĥé çöñţéẋţ ƒîļéš. Îţ ŕéţüŕñš ţĥé ƒîļé ļîšţ àñđ îḿþöŕţ çöḿḿàñđ.

Éṽéŕý šüŕƒàçé üšéš ţĥîš ŕéšüļţ (Š-02, Š-03). kapi check ŕéþöŕţš îţ àš à çöñƒîĝüŕàţîöñ ŵàŕñîñĝ ţĥàţ àƒƒéçţš ñéîţĥéŕ šçöŕéš ñöŕ ṽéŕđîçţš.

Šçöþé îš šéţ ƃý éṽîđéñçé, àñđ ŵîđéñéđ đéļîƃéŕàţéļý​

Àñ öþéŕàţîöñ îš šçöþéđ ţö ţĥé þöîñţ îţš éṽîđéñçé ŵàš šééñ àţ: ţĥé çööŕđîñàţéš ResolveGovernanceFor ŕéšöļṽéš ƒöŕ ţĥé ƒîļé îţ ŵàš šééñ îñ (Ç-02), ŵĥîçĥ ƒöŕ à ñéŵ þŕöĵéçţ ŵîţĥ ñö đéçļàŕéđ àẋéš îš ţĥàţ þŕöĵéçţ. À ŕüļé àñšŵéŕš ŵĥéŕé îţš šçöþé çöṽéŕš ţĥé þöîñţ ƃéîñĝ çĥéçķéđ, šö à ŕüļé šééñ îñ öñé þŕöđüçţ'š ŕéƒéŕéñçé þàĝéš šàýš ñöţĥîñĝ àƃöüţ àñöţĥéŕ þŕöđüçţ'š ţüţöŕîàļš.

À ŕüļé ļàñđš îñ ţĥé ţéŕḿš šţöŕé àţ îţš þöîñţ ţöö. Ķééþîñĝ öŕ šéţţļîñĝ à ŕüļé ŵĥöšé éṽîđéñçé ŵàš šééñ ŵĥéŕé à þŕöƒîļé ĝöṽéŕñš ŵŕîţéš îţš çöñçéþţ ŵîţĥ ţĥàţ þŕöƒîļé îñ terms.PropProfile àñđ ţĥé þöîñţ'š çööŕđîñàţéš îñ terms.PropCoordinates (channel=app,product=quickcast). kapi store import šçöþéš ţĥé ŵöŕđ ŕüļéš îñ à þŕöƒîļé'š öŵñ ṽöîçé öŕ ţéŕḿš ƒîļé üñđéŕ .kapi/profiles/<name>/ ţö ţĥàţ þŕöƒîļé. Ƃöţĥ ŵŕîţéš ĝö ţĥŕöüĝĥ ţĥé þŕöĵéçţöŕ ļîķé éṽéŕý öţĥéŕ šţöŕé ŵŕîţé. projectConcepts ķééþš, àţ à þöîñţ, ţĥé çöñçéþţš ţĥàţ ĥöļđ ţĥéŕé (terms.AtPoint): šçöþéđ ţö ñö þŕöƒîļé öŕ ţö ţĥé þŕöƒîļé ĝöṽéŕñîñĝ ţĥéŕé, àñđ ţö ñö çööŕđîñàţéš öŕ ţö çööŕđîñàţéš ţĥé þöîñţ šîţš àţ. À ŕüļé ķéþţ ƒŕöḿ àñ àþþ'š šţŕîñĝš ţĥéŕéƒöŕé šàýš ñöţĥîñĝ àƃöüţ ţĥé šàḿé þŕöđüçţ'š đöçüḿéñţàţîöñ, àñđ çĥéçķš, ŕéţŕîéṽàļ àñđ ţĥé ţŕàñšļàţîöñ ţööļš àļļ ŕéàđ ţĥé šàḿé ƒîļţéŕ. Ţĥé þŕöĵéçţ-ŵîđé àñšŵéŕ, àšķéđ ŵîţĥ ñö þöîñţ, ļîšţš éṽéŕý çöñçéþţ.

Àñ àñšŵéŕ ƒöŕ à þöîñţ ñàḿéš ţĥé ŕüļéš ĥéļđ àţ ţĥé þŕöĵéçţ'š öţĥéŕ þļàçéš àñđ ñöţ ţĥéŕé, àš ţĥé ŵöŕđîñĝ ţĥàţ šţàýš çöŕŕéçţ (Ç-06). Ŵîţĥöüţ ţĥàţ ļîñé àñ àĝéñţ ţöļđ ţö ŕéñàḿé šöḿéţĥîñĝ éṽéŕýŵĥéŕé ŕéñàḿéš îţ àţ à þöîñţ ţĥé ŕüļé ñéṽéŕ ŕéàçĥéđ, àñđ îţš ñöţé öƒ ţĥé ŕéñàḿé ţĥéŕé ŵöüļđ ţĥéñ ƃé à šüĝĝéšţîöñ àţ ţĥàţ þöîñţ ţöö.

Ķééþîñĝ îš àļšö ţĥé ḿöḿéñţ à þéŕšöñ ḿàý ŵîđéñ, ŵîţĥ kapi context review --keep <id> --widen-to <where>; ţĥé šàḿé ƒļàĝš öñ à ŕüļé àļŕéàđý îñ ƒöŕçé ŕéçöŕđ à widen. Ţĥé šţéþš ñéšţ:

--widen-toŴĥàţ ţĥé ŕüļé'š šçöþé đŕöþšŴĥéŕé îţ ţĥéñ ĥöļđš
àñ àẋîš, šüçĥ àš channelţĥàţ àẋîš; product đŕöþš ţĥé þŕöƒîļé ţööéṽéŕý ṽàļüé öƒ ţĥé àẋîš, àţ ţĥé ŕéšţ öƒ ţĥé þöîñţ
projectţĥé þŕöƒîļé àñđ ţĥé àẋéš îţ đéŕîṽéš (product, channel)éṽéŕý þöîñţ öƒ ţĥé þŕöĵéçţ
workspaceţĥé þŕöƒîļé, îţš àẋéš àñđ ţĥé þŕöĵéçţéṽéŕý þŕöĵéçţ öƒ ţĥé ŵöŕķšþàçé

Àñ àẋîš ñö þŕöƒîļé đéŕîṽéš, šüçĥ àš à ƃŕàñđ ţĥé ŕéçîþé đéçļàŕéš, šţàýš ţĥŕöüĝĥ project àñđ workspace, šö à ŕüļé ŵîđéñéđ ƒŕöḿ öñé ƃŕàñđ'š þŕöĵéçţ ĥöļđš ŵĥéŕéṽéŕ ţĥàţ ƃŕàñđ đöéš. Ŵîđéñîñĝ ḿöṽéš ţĥé ŕüļé'š çöñçéþţ ŵîţĥ îţ: ţĥé çöñçéþţ à ķééþ ŵŕöţé îš ŕéšçöþéđ ţö ţĥé ŵîđéŕ þöîñţ îñ ţĥé šàḿé ŵŕîţé.

Ŵöŕķšþàçé-ŵîđé ŕüļéš üšé workspace.Rule ŕöŵš îñ workspace.db. Éàçĥ ŕöŵ çöñţàîñš àñ îđ, ķîñđ, šöüŕçé þŕöĵéçţ àñđ öþàǫüé ĴŠÖÑ þàýļöàđ. Ţĥîš ķééþš ŵöŕķšþàçé šţöŕàĝé îñđéþéñđéñţ öƒ ţĥé ŕüļé ţýþé. Þŕöĵéçţ-šþéçîƒîç ţéŕḿš ţàķé þŕéçéđéñçé öṽéŕ ŵöŕķšþàçé ŕüļéš ƒöŕ ţĥé šàḿé ţéŕḿ, àñđ kapi context search ŕéþöŕţš à ŵöŕķšþàçé ŕüļé ƃéšîđé ţĥé þŕöĵéçţ'š ţéŕḿš, ḿàŕķéđ àš ĥöļđîñĝ àçŕöšš ţĥé ŵöŕķšþàçé.

À ŵîđéñéđ ŕüļé îš ŵŕîţţéñ ţĥŕöüĝĥ ţĥé þŕöĵéçţöŕ àš à rules.write öþéŕàţîöñ ŕéçöŕđéđ üñđéŕ ţĥé þŕöĵéçţ ţĥàţ đéçîđéđ îţ, šö îţ ţŕàṽéļš ļîķé éṽéŕý öţĥéŕ öþéŕàţîöñ öƒ ţĥé þŕöĵéçţ: à þüšĥ çàŕŕîéš îţ, à þüļļ öŕ àñ îḿþöŕţ àþþļîéš îţ ţö ţĥé ŕéçéîṽîñĝ ḿàçĥîñé'š ŵöŕķšþàçé, àñđ à çĥéçķþöîñţ ĥöļđš ţĥé þŕöĵéçţ'š ŵîđéñéđ ŕüļéš. Ñàŕŕöŵîñĝ îţ, ƃý đŕöþþîñĝ ţĥé ŕüļé öŕ çöñţéšţîñĝ îţ, ţŕàṽéļš ţĥé šàḿé ŵàý.

Çöṽéŕàĝé ŕéàđš ţĥé þŕöĵéçţ'š ţýþéđ àẋéš​

À ŕüļé àþþļîéš àţ à þöîñţ ŵĥéñ îţš šçöþé çöṽéŕš ţĥé þöîñţ. Ţĥé þŕöĵéçţ'š axes: ƃļöçķ đéƒîñéš çöṽéŕàĝé öñ éàçĥ àẋîš (Ç-02). Scope.CoversIn(space, point) îš ţŕüé ŵĥéñ, ƒöŕ éṽéŕý àẋîš ţĥé šçöþé ñàḿéš, ţĥé þöîñţ'š ṽàļüé šîţš ŵîţĥîñ ţĥé šçöþé'š ṽàļüé (axis.Space.Contains). À ŕüļé šçöþéđ ţö market: nordics àþþļîéš àţ market: no àñđ ñöţ àţ market: de. À ŕüļé šçöþéđ ţö age: 13-17 àþþļîéš àţ 14-16 àñđ ñöţ àţ 18-. Öñ à ĝéö àẋîš ţĥé çöḿþàŕîšöñ üšéš ţĥé þŕöĵéçţ'š ĝàžéţţééŕ (Ç-12), šö à ŕüļé àţ market: no àþþļîéš àţ market: oslo ŵĥéñ ţĥé ŕéçîþé đéçļàŕéš Öšļö ŵîţĥîñ ţĥé çöüñţý no-03. Àñ àẋîš ţĥé šþàçé đöéš ñöţ ţýþé çöḿþàŕéš ƃý éǫüàļîţý, àñđ Scope.Covers(point) îš CoversIn(nil, point). ResolveRequest.Space þàššéš ţĥé šþàçé ţö Resolve. Éṽéŕý ĥöšţ ƒîļţéŕ àţ à þöîñţ üšéš ţĥé šàḿé šþàçé: ţĥé çĥéçķ'š šüĝĝéšţéđ àñđ ƃîñđîñĝ ŕüļéš, ţĥé ƃý-ļöçàţîöñ àñšŵéŕ'š ñöţéš, ţĥé üšàĝé çöüñţš àñđ ḿéŕĝé šîĝñàļš üšéđ îñ šéţţļîñĝ, àñđ ţĥé ţéŕḿš šţöŕé'š çöñçéþţš (terms.AtPointIn, ţĥŕöüĝĥ StoreSelection.Holding).

Ţĥé ƒöļđ àļšö üšéš éàçĥ þŕöĵéçţ'š šþàçé. Ledger.WithAxes šüþþļîéš à ƒüñçţîöñ ƒŕöḿ à þŕöĵéçţ ţö îţš àẋîš šþàçé. Ţĥé ƒöļđ šţàḿþš éṽéŕý ŕéçöŕđ ŵîţĥ îţš þŕöĵéçţ'š šþàçé ƃéƒöŕé šéţţļîñĝ àñđ çöñţéšţ đéţéçţîöñ çöḿþàŕé šçöþéš. Ţŵö ŕüļéš öƒ öñé þŕöĵéçţ öṽéŕļàþ ŵĥéŕé ţĥéîŕ ṽàļüéš öñ éṽéŕý šĥàŕéđ àẋîš öṽéŕļàþ (axis.Space.Overlaps). À šüĝĝéšţîöñ àţ market: nordics öṽéŕļàþš öñé àţ market: no. À šüĝĝéšţîöñ àţ market: greater-oslo öṽéŕļàþš öñé àţ market: oslo, àñđ age: 13-17 öṽéŕļàþš age: 16-20. À çöŕŕéçţîöñ ŕéçöŕđéđ àţ market: no çöüñţš ƒöŕ à šüĝĝéšţîöñ šçöþéđ ţö ţĥé Ñöŕđîçš (seenWithin çàļļš CoversIn). Ŕüļéš öƒ ţŵö þŕöĵéçţš çàñ öṽéŕļàþ öñļý ŵĥéñ öñé îš ŵîđéñéđ ţö ţĥé ŵöŕķšþàçé, àñđ ţĥéý çöḿþàŕé ƃý éǫüàļîţý.

Ţĥé ĥöšţ ƃüîļđš éṽéŕý ļéđĝéŕ ţĥŕöüĝĥ öñé ĥéļþéŕ (App.contextLedger). Îţ ţýþéš à þŕöĵéçţ'š àẋéš ƒŕöḿ ţĥé ŕéçîþé öƒ à çĥéçķöüţ ţĥàţ ţĥé ŵöŕķšþàçé ŕéĝîšţŕý ļîšţš ƒöŕ ţĥé þŕöĵéçţ öñ ţĥîš ḿàçĥîñé, àñđ çàçĥéš ţĥé ŕéšüļţ ƃý ţĥé ŕéçîþé'š ḿöđîƒîçàţîöñ ţîḿé. Ŕéçöŕđîñĝ àñ öþéŕàţîöñ ƒŕöḿ à çĥéçķöüţ ŕéĝîšţéŕš ţĥàţ çĥéçķöüţ. Éṽéŕý ļàţéŕ ŕéàđéŕ öƒ à þŕöĵéçţ ŕéçöŕđéđ öñ ţĥîš ḿàçĥîñé ţĥéŕéƒöŕé üšéš îţš ţýþéđ àẋéš, àñđ ţĥé đîĝéšţ, ţĥé ļöĝ, ţĥé çĥéçķ àñđ ţĥé àţļàš ƒöļđ ţĥé ļöĝ îñ ţĥé šàḿé ŵàý. Ƒöŕ à þŕöĵéçţ ŵîţĥ ñö çĥéçķöüţ öñ ţĥîš ḿàçĥîñé, çööŕđîñàţéš çöḿþàŕé ƃý éǫüàļîţý.

À šüƃḿîššîöñ ḿàý ñàŕŕöŵ îţš þöîñţ​

À ñöţé, à çöŕŕéçţîöñ àñđ à šüĝĝéšţéđ ŕüļé ţàķé ţĥé þöîñţ ţĥàţ ţĥéîŕ éṽîđéñçé ŕéšöļṽéš ţö (basisAt). À šüƃḿîššîöñ ḿàý àļšö ĝîṽé à þöîñţ éẋþļîçîţļý: kapi context note --point axis=value (ŕéþéàţàƃļé), point öñ ḾÇÞ context_note, àñđ ContextObserveRequest.Point àñđ ContextCorrectRequest.Point îñ ţĥé ĥöšţ. Ţĥé éẋþļîçîţ þöîñţ çàñ öñļý ñàŕŕöŵ ţĥé éṽîđéñçé'š þöîñţ. Ƒöŕ éàçĥ àẋîš îţ ñàḿéš (narrowScope):

  • ţĥé ṽàļüé ḿüšţ ƃé ļéĝàļ ƒöŕ ţĥé àẋîš àš ţĥé ŕéçîþé ţýþéš îţ;
  • ŵĥéŕé ţĥé éṽîđéñçé'š þöîñţ àļŕéàđý šéţš ţĥé àẋîš, ţĥé ñéŵ ṽàļüé ḿüšţ šîţ ŵîţĥîñ ţĥàţ ṽàļüé. Éṽîđéñçé ƒŕöḿ ţĥé Ñöŕđîç þàĝéš çàñ ñàŕŕöŵ à ñöţé ţö market: no, àñđ çàññöţ ḿöṽé îţ ţö market: de öŕ ŵîđéñ îţ ţö europe;
  • ŵĥéŕé ţĥé éṽîđéñçé'š þöîñţ đöéš ñöţ šéţ ţĥé àẋîš, ţĥé àẋîš îš àđđéđ;
  • product àñđ channel àŕé ŕéĵéçţéđ, ƃéçàüšé ţĥéý çöḿé ƒŕöḿ ţĥé ƒîļé ţĥé éṽîđéñçé îš îñ. Ţĥé éŕŕöŕ ñàḿéš ţĥàţ ƒîļé àš ţĥé ŵàý ţö šéţ ţĥéḿ.

Öñļý à þéŕšöñ çàñ ŵîđéñ à ŕüļé, îñ ŕéṽîéŵ (--widen-to). Ţĥé éŕŕöŕ ƒöŕ à ŵîđéñîñĝ þöîñţ ñàḿéš ţĥàţ çöḿḿàñđ.

À ŕüļé ĥöļđš ƒöŕ à ŵîñđöŵ öƒ ţîḿé​

Scope çàŕŕîéš à ļîƒéţîḿé ŵîñđöŵ, ValidFrom (îñçļüšîṽé) àñđ ValidTo (éẋçļüšîṽé), ţĥé ĥàļƒ-öþéñ ḿöđéļ ţĥàţ þŕöƒîļéš, ţéŕḿš àñđ ĝŕàþĥ éđĝéš üšé. Éàçĥ ƃöüñđ îš à ƃàŕé đàţé öŕ àñ ŔƑÇ3339 îñšţàñţ, þàŕšéđ ļîķé à þŕöƒîļé'š ŵîñđöŵ (project.ParseValidityBound), šö à valid_to đàţé éẋçļüđéš ţĥàţ ŵĥöļé đàý. À ŵîñđöŵ îš šéţ ŵĥéñ à ŕüļé îš ŕéçöŕđéđ (--valid-from àñđ --valid-to öñ kapi context note, valid_from àñđ valid_to öñ ḾÇÞ context_note) öŕ ŵĥéñ à þéŕšöñ ķééþš îţ (kapi context review --keep <id> --valid-from/--valid-to, ContextKeepRequest). Îñ ţĥé ƒöļđ, à ķééþ ŵîţĥ à ŵîñđöŵ ŕéþļàçéš ţĥé ŕüļé'š ŵîñđöŵ, îñ ţĥé šàḿé ŵàý ţĥàţ à ķééþ ŵîţĥ à šçöþé ŕéþļàçéš îţš šçöþé.

Scope.InForce(at) ŕéþöŕţš ŵĥéţĥéŕ ţĥé ŵîñđöŵ îñçļüđéš àñ îñšţàñţ. ResolveRequest.At îš ţĥé îñšţàñţ à ŕéšöļüţîöñ îš çöḿþüţéđ ƒöŕ. À ŕüļé öüţšîđé îţš ŵîñđöŵ đöéš ñöţ àþþļý, îñ ţĥé šàḿé ŵàý ţĥàţ à þŕöƒîļé öüţšîđé îţš ŵîñđöŵ đöéš ñöţ ĝöṽéŕñ (Ç-02). À çĥéçķ ŕéšöļṽéš àţ ţĥé ŕüñ'š ĝöṽéŕñàñçé îñšţàñţ (App.GovernanceInstant). Ţĥé žéŕö îñšţàñţ îš ţĥé àš-đéçļàŕéđ ṽîéŵ, îñ ŵĥîçĥ éṽéŕý ŵîñđöŵ ĥöļđš. Ķééþîñĝ à ŕüļé ŵîţĥ à ŵîñđöŵ ŵŕîţéš ţĥé ŵîñđöŵ öñţö ţĥé ŕéšüļţîñĝ ţéŕḿ (terms.Term'š Validity). terms.InForceAt đŕöþš à ţéŕḿ öüţšîđé îţš ŵîñđöŵ àţ ţĥé þöîñţ'š îñšţàñţ, šö à çĥéçķ, ţĥé ƃý-ļöçàţîöñ àñšŵéŕ àñđ đŕàƒţîñĝ àļļ šţöþ üšîñĝ ţĥé ŕüļé àţ ţĥé šàḿé ḿöḿéñţ.

À ŵîñđöŵ đéšçŕîƃéš ţĥé ŕüļé. Îţ ñéṽéŕ đéšçŕîƃéš ţĥé öþéŕàţîöñ. Ñö àĝéñţ šüŕƒàçé àççéþţš à ŕéçöŕđéđ ţîḿé: ţĥé ļöĝ'š çļöçķ šţàḿþš At öñ éṽéŕý öþéŕàţîöñ, àñđ à ŵîñđöŵ öñļý šţàţéš ŵĥéñ ţĥé ŕéçöŕđéđ ŕüļé ĥöļđš.

Ţĥé ļöĝ çàñ ƃé ŕéàđ àš öƒ àñ îñšţàñţ​

Ledger.RecordsAsOf(ctx, at, f) ƒöļđš öñļý ţĥé öþéŕàţîöñš ţĥé ļöĝ àççéþţéđ àţ öŕ ƃéƒöŕé at (Record.At), îñ îđ öŕđéŕ, ŵîţĥ workspace.SetAside çöḿþüţéđ öṽéŕ ţĥàţ þŕéƒîẋ, àñđ ŕéţüŕñš ţĥé ŕéçöŕđš ţĥé ƒîļţéŕ ḿàţçĥéš. À ķééþ ŕéçöŕđéđ àƒţéŕ ţĥé îñšţàñţ îš éẋçļüđéđ, àñđ à ŕéšéţ àƒţéŕ îţ šéţš ñöţĥîñĝ àšîđé, šö ţĥé ƒöļđ ŕéţüŕñš ţĥé šţàţüš éàçĥ šüƃĵéçţ ĥàđ àţ ţĥàţ îñšţàñţ. Ţĥé îñšţàñţ îš à ļéđĝéŕ àŕĝüḿéñţ ŕàţĥéŕ ţĥàñ à Filter ƒîéļđ ƃéçàüšé îţ çĥàñĝéš ŵĥîçĥ öþéŕàţîöñš àŕé ƒöļđéđ. À ƒîļţéŕ öñļý ñàŕŕöŵš ŵĥàţ à ƒöļđ ŕéţüŕñš.

Ledger.Histories(ctx, f, limit) ŕéàđš ţĥé ļöĝ öñçé àñđ ƒöļđš îţ àš öƒ éṽéŕý đîšţîñçţ îñšţàñţ àţ ŵĥîçĥ ţĥé ļöĝ àççéþţéđ àñ öþéŕàţîöñ öƒ ţĥé ƒîļţéŕéđ þŕöĵéçţ. Ƒöŕ éàçĥ öþéŕàţîöñ ţĥàţ ĥàš à šüƃĵéçţ, îţ ŕéþöŕţš ţĥé îñîţîàļ šţàţüš àñđ éṽéŕý ļàţéŕ çĥàñĝé, éàçĥ àţ ţĥé îñšţàñţ öƒ ţĥé öþéŕàţîöñ ţĥàţ ḿàđé îţ. Ķééþš, đŕöþš, çöñţéšţš, šéţţļîñĝ àñđ ŕéšéţš àŕé àļļ îñçļüđéđ. Ţĥé çöšţ ĝŕöŵš ŵîţĥ ţĥé šǫüàŕé öƒ ţĥé ļöĝ ļéñĝţĥ, šö îţ îš ƃöüñđéđ. Þàšţ limit îñšţàñţš (HistoryLimit, 500, ŵĥéñ ñöñé îš ĝîṽéñ), éàçĥ šüƃĵéçţ ŕéþöŕţš öñļý îţš ƒîŕšţ àñđ çüŕŕéñţ šţàţüš, àñđ ţĥé ŕéšüļţ ḿàŕķš ţĥé ĥîšţöŕý àš îñçöḿþļéţé.

Ţĥé àţļàš ŕéàđš ţĥé ŵĥöļé çöñţéẋţ àţ öñçé​

host.App.ContextAtlas (kapi context atlas, ţĥé đéšķţöþ'š Éẋþļöŕé ṽîéŵ) ŕéţüŕñš à þŕöĵéçţ'š ŵĥöļé çöñţéẋţ îñ öñé đöçüḿéñţ. Îţ çöñţàîñš éàçĥ ŕüļé, ñöţé àñđ çöñţéñţ-ḿéḿöŕý þàîŕ ţĥé ļöĝ ŕéçöŕđš, ŵîţĥ îţš ĥîšţöŕý ƒŕöḿ Ledger.Histories, àñđ éàçĥ çöñçéþţ îñ ţĥé ţéŕḿš šţöŕé. Öñ ŕéǫüéšţ îţ àļšö çöñţàîñš çöñţéñţ çéļļš ţĥàţ çöüñţ ţĥé þŕöĵéçţ'š üñîţš ƃý çöļļéçţîöñ, ļàñĝüàĝé àñđ šţàţé. Éṽéŕý ŕéçöŕđ ĥàš ţĥé çööŕđîñàţéš öƒ îţš þöîñţ àñđ ţĥé đéŕîṽéđ àẋéš: ƒàḿîļý, àçţöŕ, ļöçàļé, ŕéĝîöñ, àñđ ţĥé þŕöĵéçţ ŵĥéñ ţĥé àţļàš çöṽéŕš éṽéŕý þŕöĵéçţ. Éṽéŕý öþéŕàţîöñ îš àñ éṽéñţ öñ ţĥé ŕéçöŕđéđ çļöçķ, àñđ ŵîñđöŵ ƃöüñđàŕîéš àŕé éṽéñţš öñ ţĥé 郃éçţîṽé çļöçķ. Ţĥé àţļàš àļšö îñçļüđéš ţĥé þļàçéš îţš ĝéö ṽàļüéš ñàḿé àñđ ţĥé þļàçéš ţĥàţ çöñţàîñ ţĥéḿ, šö à ḿàþ çàñ đŕàŵ àñđ ƒîļţéŕ ţĥéḿ ƃý ţĥé ĝàžéţţééŕ'š ŕüļéš. Ţĥé đöçüḿéñţ îš à çöñţŕàçţ ŵîţĥ ţĥé ṽîéŵš ţĥàţ đŕàŵ îţ, šþéçîƒîéđ îñ Çöñţéẋţ àţļàš.

Öñé þöļîçý ƒüñçţîöñ​

type Transition struct {
Actor Actor
Kind Kind
Subject SubjectKind
Target Record
Targeted bool
Widening bool
Editing bool
}

type Policy func(Transition) error

PersonDecides îš ŵĥàţ šĥîþš. Àñ àĝéñţ öŕ à ţööļ ḿàý öƃšéŕṽé àñđ ŕéçöŕđ à çöŕŕéçţîöñ, àñđ éàçĥ ţàķéš éƒƒéçţ àš à šüĝĝéšţîöñ. À ţööļ ŕéçöŕđš éṽîđéñçé àñđ ţĥé éšţàƃļîšĥḿéñţš šéţţļîñĝ đéŕîṽéš ƒŕöḿ îţ; àñ àĝéñţ ḿàý ŕéçöŕđ ñéîţĥéŕ, ƃéçàüšé àñ àĝéñţ'š šţàţéḿéñţ îš à šüĝĝéšţîöñ àñđ ñéṽéŕ éṽîđéñçé ƒöŕ öñé. Ţĥé àüţĥöŕ öƒ à šüĝĝéšţîöñ ḿàý ŵîţĥđŕàŵ îţ îñ ţĥé šéššîöñ ţĥàţ ŕéçöŕđéđ îţ, ŵĥîçĥ îš ĥöŵ à šéššîöñ çļéàñš üþ àƒţéŕ îţšéļƒ. Éṽéŕýţĥîñĝ ţĥàţ ţüŕñš àđṽîçé îñţö à ŕüļé, öŕ šéţš àñöţĥéŕ àçţöŕ'š àđṽîçé àšîđé, ƃéļöñĝš ţö à þéŕšöñ: ķééþîñĝ, éđîţîñĝ ŵĥàţ àñöţĥéŕ àçţöŕ šüĝĝéšţéđ, îḿþöŕţîñĝ, ŵŕîţîñĝ à ŕüļé đîŕéçţļý, đŕöþþîñĝ à šüĝĝéšţîöñ öŕ à ŕüļé, ŵîđéñîñĝ, àñđ ŕéšéţţîñĝ.

drop àñđ withdraw ƃöţĥ šéţ šöḿéţĥîñĝ àšîđé, ŵîţĥ đéŕéñţ þéŕḿîššîöñš. À þéŕšöñ đŕöþš à šüĝĝéšţîöñ öŕ à ŕüļé îñ ƒöŕçé, àñđ à đŕöþþéđ ŕüļé ļéàṽéš ţĥé šţöŕéš. Îţš àüţĥöŕ ŵîţĥđŕàŵš à šüĝĝéšţîöñ, àñđ öñļý ŵĥîļé îţ îš šţîļļ öñé.

Ŵîđéñîñĝ îš à þŕöþéŕţý öƒ ţĥé ţŕàñšîţîöñ ŕàţĥéŕ ţĥàñ öƒ ţĥé ṽéŕƃ, šö ţĥé çĥéçķ çöṽéŕš éṽéŕý ŕöüţé ţö îţ. Ledger.Append ŕàîšéš Widening ƒöŕ à widen àñđ éǫüàļļý ƒöŕ à keep ţĥàţ ñàḿéš ţĥé ŵöŕķšþàçé, àñđ à Widening ţŕàñšîţîöñ îš ŕéƒüšéđ ƒöŕ àñý àçţöŕ ƃüţ à þéŕšöñ. Ţŵö šéššîöñš öƒ öñé àĝéñţ çöüñţ àš ţŵö þàŕţîéš, šö àñ àĝéñţ àçţš öñ îţš öŵñ šüĝĝéšţîöñ àñđ öñ ñöƃöđý éļšé'š.

Éṽéŕý ŵŕîţéŕ ĝöéš ţĥŕöüĝĥ îţ: kapi context, kapi apply, ţĥé àĝéñţ ţööļš, ţĥé đéšķţöþ ƒééđ. Àĝéñţ ŕöļéš ŵîţĥ ŵîđéŕ ŕîĝĥţš àŕé à çĥàñĝé ţö ţĥîš ƒüñçţîöñ ŕàţĥéŕ ţĥàñ ţö éàçĥ çàļļ šîţé.

À ŕéšéţ ĝöéš ƃàçķ ţö àñ éàŕļîéŕ þöîñţ​

host.App.ResetContext (kapi context reset --before <point>) ŕéŵîñđš à þŕöĵéçţ'š çöñţéẋţ ţö ĥöŵ îţ šţööđ àţ à þöîñţ îñ îţš ĥîšţöŕý: ƃéƒöŕé àñ àĝéñţ šéššîöñ'š ƒîŕšţ öþéŕàţîöñ, ƃéƒöŕé à đàţé öŕ àñ îñšţàñţ, öŕ ƃéƒöŕé öñé öþéŕàţîöñ, ñàḿéđ ƃý îđ öŕ ƃý àñ üñàḿƃîĝüöüš šţàŕţ öƒ öñé. Ţĥé ŕéǫüéšţ ŕéšöļṽéš ţö ţĥé ƒîŕšţ öþéŕàţîöñ šéţ àšîđé, àñđ ţĥé reset öþéŕàţîöñ ŕéçöŕđš îţ îñ Before. ContextResetScope àñšŵéŕš ţĥé šàḿé ŕéǫüéšţ ŵîţĥöüţ ŕéçöŕđîñĝ àñýţĥîñĝ, ŵĥîçĥ îš --dry-run.

workspace.SetAside đéçîđéš ŵĥàţ à ŕéšéţ šéţš àšîđé, àñđ ƃöţĥ ŕéàđéŕš öƒ ţĥé ļöĝ çàļļ îţ, šö ţĥéý àĝŕéé. Îţ ŕéàđš à þŕöĵéçţ'š öþéŕàţîöñš ñéŵéšţ ƒîŕšţ, îñ îđ öŕđéŕ. À ŕéšéţ šţîļļ îñ ƒöŕçé šéţš àšîđé éṽéŕý öþéŕàţîöñ öƒ à çöñţéẋţ ķîñđ îñ îţš þŕöĵéçţ ƒŕöḿ ţĥé öþéŕàţîöñ îţ ñàḿéš üþ ţö îţšéļƒ: ţĥé context.* öþéŕàţîöñš, àñđ ţĥé terms.write, memory.write, voice.write àñđ rules.write öþéŕàţîöñš ţĥàţ ƒîļļ ţĥé šţöŕéš. Ŕéàđîñĝ ŕéšüḿéš ƃéļöŵ ţĥàţ þöîñţ, šö à ŕéšéţ îñšîđé ţĥé ŕàñĝé à ļàţéŕ ŕéšéţ çöṽéŕš îš îţšéļƒ šéţ àšîđé àñđ ĥàš ñö 郃éçţ. À đöçüḿéñţ'š éđîţš, àđöþţîöñš àñđ ŕéṽîéŵ đéçîšîöñš àŕé ţĥé þŕöĵéçţ'š çöñţéñţ, àñđ à ŕéšéţ ļéàṽéš ţĥéḿ àļöñé.

Ŵĥàţ à ŕéšéţ šéţš àšîđé šţàýš îñ ţĥé ļöĝ:

  • Ţĥé ļéđĝéŕ ƒöļđš éṽéŕý šéţ-àšîđé ŕéçöŕđ ţö šţàţüš reset. Îţ šţöþš àñšŵéŕîñĝ, àñđ kapi context log --status reset ļîšţš îţ.
  • À þŕöĵéçţöŕ ŕéƃüîļđ šķîþš ţĥé šéţ-àšîđé öþéŕàţîöñš, šö ţĥé šţöŕéš šţàñđ àš ţĥéý đîđ ƃéƒöŕé ţĥé þöîñţ. ResetContext ŕüñš ţĥàţ ŕéƃüîļđ öñçé ţĥé ŕéšéţ îš ŕéçöŕđéđ.
  • À ŕéƃüîļđ šţàŕţš ƒŕöḿ ñö çĥéçķþöîñţ ţĥàţ à ŕéšéţ ŵàš ŕéçéîṽéđ àƒţéŕ, ƃéçàüšé ţĥé ŕéšéţ çĥàñĝéš ŵĥàţ ţĥé öþéŕàţîöñš ƃéƒöŕé îţ àþþļý. Îţ šţàŕţš ƒŕöḿ àñ öļđéŕ çĥéçķþöîñţ, öŕ ƒŕöḿ àñ éḿþţý šţöŕé.
  • À çàţçĥ-üþ ţĥàţ ḿééţš à ŕéšéţ, öŕ àñ öþéŕàţîöñ ţĥàţ šöŕţš ƃéƒöŕé à ŕéšéţ ţĥé ļöĝ àļŕéàđý ĥöļđš, ŕéƃüîļđš îñšţéàđ öƒ àþþļýîñĝ öþéŕàţîöñš öñé ƃý öñé. Ţĥîš çöṽéŕš àñ öþéŕàţîöñ ḿéŕĝéđ îñ ƒŕöḿ àñöţĥéŕ ḿàçĥîñé ţĥàţ ƒàļļš îñšîđé ŵĥàţ à ŕéšéţ šéţ àšîđé.

À ŕéšéţ îš îţšéļƒ àñ öþéŕàţîöñ, šö à ļàţéŕ ŕéšéţ ţö ƃéƒöŕé îţ šéţš îţ àšîđé àñđ ƃŕîñĝš ƃàçķ ŵĥàţ îţ šéţ àšîđé: kapi context reset --before <reset-id> ţàķéš öñé ƃàçķ. ContextResetResult ŕéþöŕţš ţĥé šüƃĵéçţ-ƃéàŕîñĝ öþéŕàţîöñš šéţ àšîđé, à çöüñţ öƒ ţĥé đéçîšîöñš šéţ àšîđé ŵîţĥ ţĥéḿ, àñđ ţĥé öñéš àñ éàŕļîéŕ ŕéšéţ ĥàđ šéţ àšîđé ţĥàţ àñšŵéŕ àĝàîñ.

À ŕéšéţ îš ƒöŕ ĝöîñĝ ƃàçķ ţö à ķñöŵñ ĝööđ šţàţé. À šîñĝļé đéçîšîöñ ĥàš ñö üñđö: çĥàñĝîñĝ ýöüŕ ḿîñđ àƃöüţ à ŕüļé îš à ñéŵ đéçîšîöñ îñ ŕéṽîéŵ.

Ñöţĥîñĝ îš éŕàšéđ. À šéţ-àšîđé öþéŕàţîöñ šţàýš îñ ţĥé ļöĝ ŵîţĥ îţš éṽîđéñçé, šö ţĥé šàḿé šüĝĝéšţîöñ îš ŕéçöĝñîšàƃļé ţĥé ñéẋţ ţîḿé îţ îš ḿàđé.

Çöñšéǫüéñçéš​

Àĝéñţš çàñ ŕéçöŕđ šüĝĝéšţîöñš đüŕîñĝ ñöŕḿàļ ŵöŕķ ŵîţĥöüţ àƒƒéçţîñĝ ƃüîļđ ŕéšüļţš. Þéöþļé çàñ ŕéṽîéŵ öþéŕàţîöñš ţöĝéţĥéŕ, ķééþ šüĝĝéšţîöñš ƃý šéššîöñ, àñđ ŕéšéţ ţĥé çöñţéẋţ ţö ƃéƒöŕé à šéššîöñ ŵĥéñ ñéçéššàŕý.

Ţĥé ļöĝ îš ƒöļđéđ öñ éṽéŕý ŕéàđ ŕàţĥéŕ ţĥàñ îñđéẋéđ. Ţĥé ļéđĝéŕ šéļéçţš ţĥé context.* öþéŕàţîöñš àļöñé (Backend.Select ŵîţĥ à ķîñđ þŕéƒîẋ, àñšŵéŕéđ ƒŕöḿ àñ îñđéẋ öñ ţĥé ķîñđ), šö ŵĥàţéṽéŕ éļšé šĥàŕéš ţĥé ļöĝ çöšţš à ƒöļđ ñöţĥîñĝ, àñđ çöñţéšţ đéţéçţîöñ çöḿþàŕéš öñļý ŕüļéš ţĥàţ šĥàŕé à ƒöŕḿ. Ŵîţĥ 13,000 öţĥéŕ öþéŕàţîöñš àñđ 500 ţö 800 çöñţéẋţ öþéŕàţîöñš îñ ţĥé ļöĝ, šîẋţééñ çöñçüŕŕéñţ àĝéñţš ŕéçöŕđ àñ öƃšéŕṽàţîöñ ŵîţĥ à þ99 öƒ 32 ḿš. Àñ îḿþļéḿéñţàţîöñ ţĥàţ ñééđš ḿöŕé àđđš àñ îñđéẋ ƃéĥîñđ Ledger ŵîţĥöüţ ḿöṽîñĝ ţĥé ḿöđéļ.

Öþéŕàţîöñ îđš​

Àñ öþéŕàţîöñ îđ (workspace.NewOpID) îš 24 çĥàŕàçţéŕš öƒ ļöŵéŕ-çàšé Çŕöçķƒöŕđ ƃàšé32: éîĝĥţ ƒöŕ ţĥé ḿöḿéñţ ţĥé ļöĝ àççéþţéđ ţĥé öþéŕàţîöñ, îñ ḿîļļîšéçöñđš šîñçé ţĥé šţàŕţ öƒ 2026, àñđ šîẋţééñ ŕàñđöḿ öñéš. Ţĥé ţîḿé çöḿéš ƒîŕšţ, šö îđš šöŕţ îñ ţĥé öŕđéŕ öþéŕàţîöñš ŵéŕé àççéþţéđ, àñđ ţĥé ƒöļđ ŕéàđš ţĥé ļöĝ îñ îđ öŕđéŕ. À ļöĝ ñéṽéŕ ḿîñţš àñ îđ ţĥàţ šöŕţš ƃéƒöŕé öñé îţ àļŕéàđý ĥöļđš: ŵĥéŕé ţĥé çļöçķ ĥàš ñöţ ḿöṽéđ þàšţ ţĥé ñéŵéšţ îđ, ţĥé ţîḿé þàŕţ àđṽàñçéš öñé ḿîļļîšéçöñđ þàšţ îţ, šö àñ öþéŕàţîöñ ŕéçöŕđéđ àƒţéŕ àñöţĥéŕ ŵàš šééñ šöŕţš àƒţéŕ îţ, öñ ŵĥîçĥéṽéŕ ḿàçĥîñé éîţĥéŕ ŵàš ŕéçöŕđéđ.

Ţĥé îđ îš ţĥé šàḿé îñ éṽéŕý ļöĝ ţĥàţ ĥöļđš ţĥé öþéŕàţîöñ, šö ţŵö ļöĝš ḿéŕĝé ƃý üñîöñ (workspace.Merge): ŕéçöŕđîñĝ àñ îđ ţĥé ļöĝ àļŕéàđý ĥöļđš çĥàñĝéš ñöţĥîñĝ, àñđ ţŵö ļöĝš ḿéŕĝéđ îñţö éàçĥ öţĥéŕ ĥöļđ ţĥé šàḿé öþéŕàţîöñš îñ ţĥé šàḿé öŕđéŕ, ŵĥîçĥéṽéŕ ŵàš ḿéŕĝéđ ƒîŕšţ. Àñ öþéŕàţîöñ ḿàý àļšö çàŕŕý à çöñţéñţ àđđŕéšš; à ļöĝ ĥöļđš öñé öþéŕàţîöñ þéŕ àđđŕéšš, àñđ ŵĥéŕé ţŵö ḿàçĥîñéš ŕéçöŕđéđ öñé àđđŕéšš üñđéŕ đéŕéñţ îđš ţĥé öļđéŕ îđ šţàñđš îñ ƃöţĥ. Ţĥé ļöçàļ ƃàçķéñđ ķééþš à þéŕ-ļöĝ àŕŕîṽàļ þöšîţîöñ ƃéšîđé ţĥé îđ. Îţ îš ŵĥàţ Head ŕéţüŕñš àñđ ŵĥàţ Since ŕéàđš ƒŕöḿ, šö à šüŕƒàçé ŵàţçĥîñĝ ƒöŕ çĥàñĝé þöļļš öñé ñüḿƃéŕ àñđ àñ öþéŕàţîöñ ḿéŕĝéđ îñ ƒŕöḿ éļšéŵĥéŕé ḿöṽéš îţ ļîķé öñé ŕéçöŕđéđ ĥéŕé.

À ļöĝ ļîñé šĥöŵš ţĥé ƒîŕšţ ţéñ çĥàŕàçţéŕš (workspace.ShortOpID): ţĥé ţîḿé þàŕţ àñđ ţŵö ŕàñđöḿ çĥàŕàçţéŕš, ŵĥîçĥ öñé ḿàçĥîñé ñéṽéŕ ŕéþéàţš ƃéçàüšé îţ ñéṽéŕ àççéþţš ţŵö öþéŕàţîöñš îñ öñé ḿîļļîšéçöñđ. Éṽéŕý ṽéŕƃ ŕéšöļṽéš àñý þŕéƒîẋ ţĥàţ šţàŕţš éẋàçţļý öñé îđ; à þŕéƒîẋ ţĥàţ šţàŕţš šéṽéŕàļ îš ŕéƒüšéđ ŵîţĥ ţĥé çàñđîđàţéš ļîšţéđ (workspace.AmbiguousOpIDError).

Šüŕƒàçéš​

Ţĥé çöḿḿàñđ ļîñé đîṽîđéš ƃý àüđîéñçé:

ÀüđîéñçéÇöḿḿàñđšŴĥàţ ţĥéý đö
À þéŕšöñkapi context <path>, searchŕéàđ ŵĥàţ àþþļîéš
À þéŕšöñkapi context atlasļîšţ ţĥé ŵĥöļé çöñţéẋţ, öṽéŕ ţîḿé àñđ àçŕöšš îţš àẋéš
À þéŕšöñkapi context reviewķééþ, đŕöþ, çĥööšé à šîđé, àþþļý ḿöŕé ŵîđéļý
À þéŕšöñkapi context reset --before <point>ĝö ƃàçķ ţö àñ éàŕļîéŕ þöîñţ
À þéŕšöñkapi context syncþüļļ, šéţţļé à ḿéŕĝé, þüšĥ
Àñ àššîšţàñţ (Ƒöŕ àššîšţàñţš)kapi context note, logŕéçöŕđ, àñđ ŕéàđ ƃàçķ
Ḿàîñţéñàñçékapi store import, export, rebuild, localesţĥé šţöŕé îţšéļƒ

kapi context note ŕéçöŕđš àñ observe ƒöŕ šöḿéţĥîñĝ ñöţîçéđ (--term ŵîţĥ --instead-of, öŕ à ƒàçţ îñ þŕöšé), à correct ƒöŕ à þéŕšöñ'š çĥàñĝé (--from, --to, àñđ --suggest ƒöŕ ţĥé ŕüļé îţ îḿþļîéš), àñđ à withdraw ƒöŕ à ñöţé öƒ ţĥé çàļļéŕ'š öŵñ (--withdraw <id>). --point ñàŕŕöŵš ŵĥéŕé à ñöţé ĥöļđš, àñđ --valid-from àñđ --valid-to ƃöüñđ ŵĥéñ îţ ĥöļđš (àƃöṽé). kapi context log --status ƒîļţéŕš ƃý àñý öƒ ţĥé šîẋ šţàţüšéš, àñđ --session this ŕéàđš ƃàçķ ŵĥàţ ţĥé çàļļîñĝ šéššîöñ ŕéçöŕđéđ. À ļöĝ ļîñé þŕîñţš ţĥé ķîñđ öñçé, ḿàŕķš à çöñţéšţéđ éñţŕý [contested by #0n79tw5k9s] àñđ éñđš à šüĝĝéšţîöñ'š ļîñé ŵîţĥ îţš šţàñđîñĝ. Ţĥé ĥöšţ ÀÞÎ (host/contextops.go, host/contextreview.go, host/contextreset.go) îš ţýþéđ ŕéǫüéšţš àñđ ŕéšüļţš ŵîţĥ ñö ƒļàĝ šéţš, šö ţĥé àĝéñţ ţööļš àñđ ţĥé đéšķţöþ đŕîṽé ţĥé šàḿé ļööþ.

Öþéŕàţîöñš àŕé ŵĥàţ ţŕàṽéļ ƃéţŵééñ ḿàçĥîñéš. host.App.SyncProjectContext (kapi context sync) þüļļš àñöţĥéŕ ḿàçĥîñé'š öþéŕàţîöñš ƒŕöḿ ţĥé ƃàçķéñđ context.backend îñ kapi.yaml đéçļàŕéš àñđ ḿéŕĝéš ţĥéḿ ƃý îđ, šéţţļéš à ḿéŕĝé ŵĥéñ --merged ñàḿéš öñé, àñđ þüšĥéš ţĥîš ḿàçĥîñé'š öþéŕàţîöñš, üñļéšš --no-push àšķš îţ öñļý ţö ŕéàđ. Ţĥé ŕéçîþé îš ţĥé öñļý þļàçé ţĥé ƃàçķéñđ îš šéţ. kapi store export çàŕŕîéš ţĥé öþéŕàţîöñš îñ öñé ƒîļé, àñđ kapi store import ḿéŕĝéš šüçĥ à ƒîļé ţĥé šàḿé ŵàý (Ç-03). À šüĝĝéšţîöñ ŕéçöŕđéđ öñ öñé ḿàçĥîñé àñđ ķéþţ öñ àñöţĥéŕ îš ţĥéŕéƒöŕé öñé ĥîšţöŕý, ŵĥîçĥéṽéŕ þüļļéđ ƒîŕšţ.

Ţĥé àĝéñţ šüŕƒàçé ŕéçöŕđš àñđ ŕéàđš ŵîţĥ ţŵö ţööļš: context_note, ŵĥîçĥ ŕéçöŕđš ŵĥàţ ţĥé šéššîöñ ñöţîçéđ, à þéŕšöñ'š çĥàñĝé (from, to, suggest), öŕ ţĥé ŵîţĥđŕàŵàļ öƒ ţĥé šéššîöñ'š öŵñ ñöţé (withdraw), ŵîţĥ ţĥé šàḿé point, valid_from àñđ valid_to ţĥé çöḿḿàñđ ļîñé ţàķéš, àñđ context_session_summary, ŵĥîçĥ ŕéþöŕţš ŵĥàţ öñé šéššîöñ ŕéçöŕđéđ àñđ ŵĥàţ ƃéçàḿé öƒ îţ àñđ éñđš ŵîţĥ ţĥé kapi context review --session <id> çöḿḿàñđ à þéŕšöñ ŕéṽîéŵš îţ ŵîţĥ. Éàçĥ ŵŕàþš à ĥöšţ çàļļ àñđ àđđš ñö ŕüļé öƒ îţš öŵñ. Ķééþîñĝ, đŕöþþîñĝ, ŵîđéñîñĝ àñđ ŕéšéţţîñĝ àŕé ŕéšéŕṽéđ ƒöŕ þéöþļé àñđ àŕé éẋçļüđéđ ƒŕöḿ ţĥé àĝéñţ ţööļ šéţ (Š-03).

Ţĥé šéŕṽéŕ àššîĝñš ţĥé àçţöŕ îđéñţîţý. Àñ ḾÇÞ ţööļ ţàķéš ñö àçţöŕ àŕĝüḿéñţ àñđ ŕéƒüšéš öñé: ţĥé ķîñđ îš agent, ţĥé ñàḿé çöḿéš ƒŕöḿ ţĥé çļîéñţ'š öŵñ initialize, àñđ ţĥé šéššîöñ îš ḿîñţéđ öñçé þéŕ šéŕṽéŕ þŕöçéšš, šö öþéŕàţîöñš ƒŕöḿ öñé ŕüñ çàñ ƃé ŕéàđ ţöĝéţĥéŕ, àñđ ţĥé çöñţéẋţ ŕéšéţ ţö ƃéƒöŕé ţĥéḿ. Šĥéļļ çöḿḿàñđš üšé éñṽîŕöñḿéñţ-ƃàšéđ àçţöŕ đéţéçţîöñ ţö đîšţîñĝüîšĥ þéöþļé ƒŕöḿ šüþþöŕţéđ àĝéñţ ĥöšţš. À þéŕšöñ îš ñàḿéđ ƃý ţĥéîŕ ĝîţ îđéñţîţý (user.email, öŕ user.name ŵĥéñ ñö éḿàîļ îš šéţ), šö ţŵö þéöþļé öñ ţŵö ḿàçĥîñéš öƒ öñé ţéàḿ àŕé ţŵö àçţöŕš: kapi context log --actor ţéļļš ţĥéḿ àþàŕţ, àñđ ţĥé đîĝéšţ šĥöŵš à ţéàḿḿàţé'š öþéŕàţîöñ üñđéŕ ţĥé ţéàḿḿàţé'š ñàḿé àñđ ţĥé ŕéàđéŕ'š öŵñ àš "ýöü". À ḿàçĥîñé ŵîţĥ ñö ĝîţ îđéñţîţý ŕéçöŕđš ţĥé þéŕšöñ üññàḿéđ.

Éṽîđéñçé îš ŕéǫüîŕéđ ŵĥéŕé à ŕüļé îš šţàţéđ. context_note ŕéƒüšéš à ţéŕḿ ŕüļé öŕ à þéŕšöñ'š çĥàñĝé ţĥàţ ñàḿéš ñéîţĥéŕ à path ñöŕ à quote, šö ŕéçöŕđéđ ŕüļéš ĥàṽé ţŕàçéàƃļé éṽîđéñçé.