kibi-cursor 2.8.1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/.cursor-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +50 -0
  3. package/README.md +3 -3
  4. package/agent-plugin/plugin.json +1 -1
  5. package/agent-plugin/skills/kibi-bootstrap/SKILL.md +2 -2
  6. package/agent-plugin/skills/kibi-commit-review/SKILL.md +125 -0
  7. package/agent-plugin/skills/kibi-commit-review/resources/staged-gate.md +98 -0
  8. package/agent-plugin/skills/kibi-decisions/SKILL.md +130 -0
  9. package/agent-plugin/skills/kibi-decisions/resources/decision-records.md +142 -0
  10. package/agent-plugin/skills/kibi-decisions/resources/signoff-views.md +66 -0
  11. package/agent-plugin/skills/kibi-freshness/SKILL.md +2 -0
  12. package/agent-plugin/skills/kibi-traceability/SKILL.md +4 -0
  13. package/agent-plugin/skills/kibi-usage/SKILL.md +20 -15
  14. package/commands/kibi-signoff.md +26 -0
  15. package/dist/.cursor-plugin/plugin.json +1 -1
  16. package/dist/commands/kibi-signoff.md +26 -0
  17. package/dist/hook-runner.js +14 -7
  18. package/dist/skills/.canon-hash.json +9 -4
  19. package/dist/skills/kibi-bootstrap/SKILL.md +2 -2
  20. package/dist/skills/kibi-commit-review/SKILL.md +125 -0
  21. package/dist/skills/kibi-commit-review/resources/staged-gate.md +98 -0
  22. package/dist/skills/kibi-decisions/SKILL.md +130 -0
  23. package/dist/skills/kibi-decisions/resources/decision-records.md +142 -0
  24. package/dist/skills/kibi-decisions/resources/signoff-views.md +66 -0
  25. package/dist/skills/kibi-freshness/SKILL.md +2 -0
  26. package/dist/skills/kibi-traceability/SKILL.md +4 -0
  27. package/dist/skills/kibi-usage/SKILL.md +20 -15
  28. package/package.json +2 -2
  29. package/skills/.canon-hash.json +9 -4
  30. package/skills/kibi-bootstrap/SKILL.md +2 -2
  31. package/skills/kibi-commit-review/SKILL.md +125 -0
  32. package/skills/kibi-commit-review/resources/staged-gate.md +98 -0
  33. package/skills/kibi-decisions/SKILL.md +130 -0
  34. package/skills/kibi-decisions/resources/decision-records.md +142 -0
  35. package/skills/kibi-decisions/resources/signoff-views.md +66 -0
  36. package/skills/kibi-freshness/SKILL.md +2 -0
  37. package/skills/kibi-traceability/SKILL.md +4 -0
  38. package/skills/kibi-usage/SKILL.md +20 -15
@@ -2,7 +2,7 @@
2
2
  id: kibi-usage
3
3
  name: Kibi Usage
4
4
  description: Use Kibi's source-first, exact-Git, migration-aware, proof-aware operations safely across MCP or the trusted local CLI, including partial completion repair.
5
- version: 2.20.0
5
+ version: 2.22.0
6
6
  kibiCompatibility: ">=1.0.0"
7
7
  tags:
8
8
  - kibi
@@ -121,6 +121,10 @@ component that renders it) with `implements` through `kb_upsert`. Without a read
121
121
  still answers and `kibi sync` regenerates the manifest. The search tip and the
122
122
  `.kb/` note appear once per session and need no action.
123
123
 
124
+ Before you edit a source file that Kibi tracks, run `kb_search` with that file in `sourceLocations`, and treat both its ranked results and its `data.answer` layer as discovery only, not as the governing text. Then call `kb_query` by `id` on each current governing requirement that the search names, read what each one requires, and make the edit only after those exact reads. A `kb_check`, `kb_status` or `kb_coverage` result does not replace that `kb_query` read. This rule only adds an exact read before the edit and does not change the order of any other step in this workflow. It adds nothing to a modeling or write task: that task still ends with the real `kb_upsert` of every planned fact and requirement and the closing `kb_check`.
125
+
126
+ For an edit that keeps the governing rule, limit the consultation before the edit to exactly two Kibi calls: `kb_search` with the file in `sourceLocations`, then one `kb_query` (by the governing requirement's `id`, or by `sourceFile` when several requirements govern the file). Do not start with `kb_status`, and do not repeat the search or the query before editing; run `kb_status`, `kb_check` and `kb_coverage` after the edit. This limit applies only to source edits. A task that models a claim keeps its full order, one step after the other: `kb_search`, then the exact `kb_query` of the supplied target, then `kb_model` with `mode: "analyze"` on the complete claim, then `mode: "predicates"` for each relational clause, then `kb_model` with `mode: "requirement"` for a strict or typed-rule clause, and only then the real `kb_upsert` of every planned fact and requirement and the closing `kb_check`. Never call `kb_model` before that exact `kb_query`, and never stop at a dry run.
127
+
124
128
  ## Safe workflow
125
129
 
126
130
  1. Always discover before you mutate: start with `kb_search`, then exact-filter with `kb_query`. Use
@@ -356,7 +360,9 @@ authored. Each one is the order the write path accepts.
356
360
 
357
361
  Entities record `origin` (`kind`: `human`, `agent`, `migration`, or `import`,
358
362
  plus optional `ref` and `approved_by`). `kb_upsert` records `kind: agent` on
359
- entities you create; leave `origin.approved_by` to the person who reviews them.
363
+ entities you create; leave `origin.approved_by` to the person who reviews them,
364
+ and ask for that review with `kibi signoff` (see `kibi-decisions`), never with
365
+ a summary in your own words.
360
366
  An exception (a requirement that `exempts` another) exempts nothing until a
361
367
  human sets `approved_by`; `kb_check` flags approvals an agent recorded without
362
368
  corroboration. Never fill in an approval yourself. Record why a requirement
@@ -365,6 +371,8 @@ exists in `rationale`, or link the ADR that explains it.
365
371
  ## Decision firmness
366
372
 
367
373
  Requirements and ADRs carry `firmness`, which says what you may do with them.
374
+ Load `kibi-decisions` when a person states a rule, a hook asks before an edit
375
+ of firm code, or a request conflicts with a recorded rule.
368
376
  Search answers, `kb_query` rows and hook snippets show it (snippets label only
369
377
  `[firm: ask before changing]` and `[exploratory]`; an unlabeled decision is
370
378
  `default`).
@@ -394,17 +402,12 @@ task or in reply: then supersede it with `firmness: firm` and `origin.ref` to
394
402
  their words (or, for a correction they asked for in place, update it with
395
403
  `origin.ref` to those words), and say in the final answer which rule changed.
396
404
 
397
- Set `firmness` from what a human actually said: only their stated rule is
398
- `firm` (with `origin.ref`); "do whatever" or your own pick is `default`; a
399
- guess is `exploratory`. Write it explicitly whenever you record a decision,
400
- including when importing rules from documents, tests or tickets (a rule a
401
- person wrote there is `firm`, with `origin.ref` to that document). A
402
- supersede needs `## Why this changed` in the new entity's body (at least 12
403
- words): name the evidence (a failing test, a measured cost, a constraint the
404
- old decision missed, a new requirement, the person's instruction) and answer
405
- the old decision's reasoning; `kb_check` blocks it otherwise. A preference is
406
- not evidence: propose it instead of superseding. Kibi checks only that a firm
407
- decision has a reference; never cite words nobody said.
405
+ Set `firmness` explicitly from what a human actually said: only their stated
406
+ rule is `firm` (with `origin.ref` to their words); your own pick is `default`;
407
+ a guess is `exploratory`. A supersede needs a `## Why this changed` section of
408
+ at least 12 words naming the evidence; a preference is not evidence. Never
409
+ cite words nobody said. `kibi-decisions` has the recording and supersede
410
+ payloads.
408
411
 
409
412
  Conditional clauses ("only when", "only if", "must not ... unless") compile
410
413
  into typed `forbid` rules linked by `requires_rule`, not property facts; one
@@ -418,7 +421,8 @@ read `unresolved` as consistent. Compare the intent with each candidate's
418
421
  `statement`, then compile again with `conflictReviews`
419
422
  (`{requirementId, verdict: "conflict" | "no_conflict", note}`). On a conflict
420
423
  the plan is `blocked`: ask the human which rule holds (a firm requirement is
421
- theirs), then supersede or change it, or change the intent.
424
+ theirs), then supersede or change it, or change the intent (see
425
+ `kibi-decisions`).
422
426
 
423
427
  ## Semantic and proof guardrails
424
428
 
@@ -558,4 +562,5 @@ retrying the same payload; inspect the typed error and `nextActions`.
558
562
  Kibi may now author tracked Markdown/YAML evidence transactionally. The former
559
563
  statement “Kibi operation writes do not automatically stage markdown evidence”
560
564
  means Kibi writes do not Git-stage it: review and commit remain ordinary Git
561
- workflows.
565
+ workflows. When `kibi check --staged` or the pre-commit hook blocks a commit,
566
+ load `kibi-commit-review`.