kibi-cursor 2.9.0 → 2.9.2
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.
- package/.cursor-plugin/plugin.json +1 -1
- package/CHANGELOG.md +35 -0
- package/agent-plugin/plugin.json +1 -1
- package/agent-plugin/skills/kibi-commit-review/SKILL.md +4 -3
- package/agent-plugin/skills/kibi-decisions/SKILL.md +1 -1
- package/agent-plugin/skills/kibi-decisions/resources/signoff-views.md +3 -2
- package/agent-plugin/skills/kibi-freshness/SKILL.md +2 -2
- package/agent-plugin/skills/kibi-usage/SKILL.md +2 -2
- package/agent-plugin/skills/kibi-usage/resources/proof.md +36 -4
- package/agent-plugin/skills/kibi-usage/resources/workflows.md +1 -1
- package/dist/.cursor-plugin/plugin.json +1 -1
- package/dist/skills/.canon-hash.json +7 -7
- package/dist/skills/kibi-commit-review/SKILL.md +4 -3
- package/dist/skills/kibi-decisions/SKILL.md +1 -1
- package/dist/skills/kibi-decisions/resources/signoff-views.md +3 -2
- package/dist/skills/kibi-freshness/SKILL.md +2 -2
- package/dist/skills/kibi-usage/SKILL.md +2 -2
- package/dist/skills/kibi-usage/resources/proof.md +36 -4
- package/dist/skills/kibi-usage/resources/workflows.md +1 -1
- package/package.json +2 -2
- package/skills/.canon-hash.json +7 -7
- package/skills/kibi-commit-review/SKILL.md +4 -3
- package/skills/kibi-decisions/SKILL.md +1 -1
- package/skills/kibi-decisions/resources/signoff-views.md +3 -2
- package/skills/kibi-freshness/SKILL.md +2 -2
- package/skills/kibi-usage/SKILL.md +2 -2
- package/skills/kibi-usage/resources/proof.md +36 -4
- package/skills/kibi-usage/resources/workflows.md +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kibi-cursor",
|
|
3
3
|
"displayName": "Kibi",
|
|
4
|
-
"version": "2.9.
|
|
4
|
+
"version": "2.9.2",
|
|
5
5
|
"description": "Optional Cursor adapter for Kibi. Requires project-local kibi-cli, kibi-mcp, and kibi-core (SWI-Prolog is bundled on Linux and macOS) before the bundled MCP server can start.",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|
|
7
7
|
"author": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# kibi-cursor
|
|
2
2
|
|
|
3
|
+
## 2.9.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 45036a3: Signoff guidance no longer tells agents to attach `latest.html` as a file. Chat apps (the Claude apps, Slack and most others) show an attached HTML file as raw source or a download, so agents now share the page only as a rendered page, such as a Claude Artifact, and otherwise leave the message text as the whole view. Updates the kibi-decisions and kibi-commit-review skills (1.2.1), the `kibi signoff` page note and the stop-hook reminder.
|
|
8
|
+
- Updated dependencies [45036a3]
|
|
9
|
+
- kibi-agent-core@0.9.1
|
|
10
|
+
|
|
11
|
+
## 2.9.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 39721a1: Every requirement now reports how strong the evidence behind it is, and passing end-to-end tests are no longer called proof.
|
|
16
|
+
- `kb_coverage` / `kibi coverage` rows carry `evidenceLevel`: `proved` (a re-checkable certificate covers every case; no proof kind issues one yet, so nothing reaches it today), `tested` (fresh end-to-end receipts cover every linked scenario), `asserted` (a person stands behind the requirement: it was approved, or it is firm by `firmness` or a non-agent origin, but nothing current checks it) or `unverified` (an agent wrote it and no person approved it). Each row lists the `evidence[]` entries that earned the level, with `kind`, `scope` and `level`, and the summary counts rows per level under `evidenceLevels`.
|
|
17
|
+
- The HTML report shows each requirement's level next to its id and counts the asserted and unverified requirements; its headline is now "Tested end to end" and the badge reads `% tested`. `kibi signoff` adds the level to each requirement's proof line when it is weaker than tested. The `kibi coverage` table gains an `Evidence` column and prints the per-level counts as `asserted=… proved=… tested=… unverified=…`. `kibi signoff` now counts a top-level `approved_by` as approval, as the evidence level does, so an approved agent requirement no longer shows as awaiting approval.
|
|
18
|
+
- The `kibi-usage` skill (2.23.0) explains the levels and tells agents never to report an asserted or unverified requirement as tested or proven.
|
|
19
|
+
|
|
20
|
+
**Migration (breaking).**
|
|
21
|
+
- The requirement proof contract is now `kibi.requirement-proof.v4`. `proofStatus: proven` is renamed `tested`; filter with `--status tested` (`statuses: ["tested"]`), since `proven` is rejected.
|
|
22
|
+
- Coverage summaries rename `proofProven` to `proofTested`. `kibi proof impact` results rename `proofProven` / `currentUnproven` to `proofTested` / `currentUntested`, `kb_apply_plan` closeout `proofState: proven` is now `tested`, and the diagnostic usage field `coverage_proven_count` is `coverage_tested_count`.
|
|
23
|
+
- `proof/baseline.json` files move to `kibi.proof-baseline.v3` with `proofTested`, `currentUntested` and `proofStatus: tested`. `kibi proof impact` still reads a committed v2 baseline, treating its `proven` rows as `tested`, so rewrite the file in the same commit you upgrade in or the next one.
|
|
24
|
+
- No knowledge-base migration is needed: nothing stored in `.kb/` changes.
|
|
25
|
+
|
|
26
|
+
- a1c7479: `kibi check` and `kb_check` now prove that the knowledge base is consistent, and leave a certificate for each answer that an independent checker re-checks.
|
|
27
|
+
|
|
28
|
+
The new canonical `kb-consistency` rule states four theorems about the facts current requirements name and produces a `kibi.certificates.v1` certificate for each: property facts are consistent (a model per subject, property and scope, or an irreducible contradiction core with one model per dropped fact), predicate facts and allow/deny decisions are consistent (one truth value per atom, one decision per key, or the two facts that disagree), and stored rules are stratified (a stratum per rule predicate, or a negation cycle). A separate checker module re-checks every certificate by evaluation only; it never runs the search that found it and does not load `checks.pl`. Each contradiction it re-verifies is a blocking violation that names the core facts and the requirements behind them, with the certificate under `evidence.certificate`; a certificate the checker rejects also blocks.
|
|
29
|
+
|
|
30
|
+
The property theorem is joint, so facts that contradict only together (every pair still admits a value) are reported even though the pairwise `domain-contradictions` rule is silent. `kibi check --staged` runs the rule too, so a commit that introduces such a contradiction is blocked. Contexts the checker cannot compare (mixed value types or units, unsupported operators or polarities, cores whose validity windows never overlap) are reported by the new advisory `kb-consistency-unresolved` rule and never count as consistent. Opposing rule pairs and scenario feasibility are not certified yet.
|
|
31
|
+
|
|
32
|
+
Certificates are regenerated on each run and are not committed. `kibi check --write-certificates <file>` saves the bundle, and `kibi check --certificates <file>` re-checks a saved one and prints the `kibi.verification.v1` report (a verdict of `proved`, `disproved` or `unresolved` per theorem, and every rejected certificate with the reason). The kibi-usage skill (2.24.0) tells agents how to act on the new findings. The kibi-freshness skill (2.1.0) now checks consistency with `domain-contradictions`, `kb-consistency` and `kb-consistency-unresolved` instead of the pairwise rule alone, reports a `kb-consistency` core as a conflict to resolve by superseding or changing a requirement, and reports an unresolved context as unresolved.
|
|
33
|
+
|
|
34
|
+
**Migration (breaking for KBs with joint contradictions).** No knowledge-base change is needed. A knowledge base whose facts contradict only jointly now fails `kibi check` until one of the requirements is changed or superseded; the violation names the core and the requirements to choose from. Integrations that pass a fixed `--rules` list or `rules` input are unaffected until they add `kb-consistency`.
|
|
35
|
+
|
|
36
|
+
Evidence levels and `kibi signoff` now count an agent-written requirement as approved only through `origin.approved_by`, the field `agent-requirement-unapproved` already reads. The top-level `approved_by` approves an exception, and an agent can write it, so on its own it no longer raises a requirement to `asserted` or shows it as approved in signoff.
|
|
37
|
+
|
|
3
38
|
## 2.9.0
|
|
4
39
|
|
|
5
40
|
### Minor Changes
|
package/agent-plugin/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "kibi",
|
|
4
|
-
"version": "2.9.
|
|
4
|
+
"version": "2.9.2",
|
|
5
5
|
"description": "Repo-local, per-branch, queryable knowledge base. Portable Agent Plugin packaging Kibi's Agent Skills and MCP server.",
|
|
6
6
|
"author": { "name": "Kibi" },
|
|
7
7
|
"homepage": "https://looted.github.io/kibi/",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-commit-review
|
|
3
3
|
name: kibi-commit-review
|
|
4
4
|
description: "Use when kibi check --staged or the Kibi pre-commit hook blocks a commit (kibi_impact_evidence_missing, symbols_manifest_stale, symbol_granularity_violation, symbol-coverage, kibi check-generated drift, Staged impact review failed), or when preparing a commit or pull-request impact review. Covers reading the per-file Detail lines, authoring .kb/symbols.yaml symbol entries through kb_upsert, kibi sync --refresh-symbol-coordinates, staging the tracked Kibi evidence with git add, kb_prepare_impact_review for a staged or diff scope, the kibi signoff requirements summary to show before a commit, and how merge commits and migration renames are judged."
|
|
5
|
-
version: 1.2.
|
|
5
|
+
version: 1.2.1
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -85,8 +85,9 @@ requirement with its statement (before and after for a rewrite), firmness,
|
|
|
85
85
|
origin, scenarios and proof state. Put it in your reply unchanged (in the
|
|
86
86
|
messaging tool's message when replies go through one), then add one or two
|
|
87
87
|
sentences on why the requirements changed. Offer the full page with
|
|
88
|
-
`kibi signoff --format html --open`, or
|
|
89
|
-
|
|
88
|
+
`kibi signoff --format html --open`, or publish `.kb/briefs/signoff/latest.html`
|
|
89
|
+
as a rendered page when your host has a page tool (the Artifact tool in Claude
|
|
90
|
+
apps); never attach the `.html` as a file, which chat apps show as raw source;
|
|
90
91
|
past 15 requirements the Markdown stops and only the page lists them all.
|
|
91
92
|
Host details: `kibi-decisions`, `resources/signoff-views.md`. `--no-proof` skips the proof lookup, which reads coverage and is slow
|
|
92
93
|
on a large knowledge base. The summary is not an approval: never set
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-decisions
|
|
3
3
|
name: kibi-decisions
|
|
4
4
|
description: "Use when the person states a rule or decision (must, never, always, from now on, we decided), when a Kibi hook asks to confirm or warns about an edit to code that implements a firm requirement, when the Stop hook says source files changed but nothing was recorded, when kb_check quotes requirement_statement_unverified, or when a request conflicts with a recorded requirement or ADR. Covers reading firmness and origin, recording a person's rule as firm with origin.ref, superseding with a Why this changed section, the kb_compile_intent unresolved/reviewCandidates/conflictReviews loop, asking before overriding a firm rule, and putting decisions to the person as one numbered kibi signoff --questions view."
|
|
5
|
-
version: 1.2.
|
|
5
|
+
version: 1.2.1
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -13,7 +13,8 @@ statements and lists that render in any chat or messaging surface. Put it in
|
|
|
13
13
|
your reply unchanged: never wrap it in a code block, summarize it or retell a
|
|
14
14
|
requirement in your own words. Every run also writes
|
|
15
15
|
`.kb/briefs/signoff/latest.json`, `latest.md` and `latest.html` (git-ignored);
|
|
16
|
-
`latest.html` is a self-contained page with the full view
|
|
16
|
+
`latest.html` is a self-contained page with the full view, meant to be opened
|
|
17
|
+
in a browser or published as a page, not attached as a file.
|
|
17
18
|
|
|
18
19
|
## Showing it on your host
|
|
19
20
|
|
|
@@ -21,7 +22,7 @@ requirement in your own words. Every run also writes
|
|
|
21
22
|
| --- | --- |
|
|
22
23
|
| Claude Code, Codex, Cursor, ZCode, VS Code chat | Paste the default output; `/kibi-signoff` (Claude Code, Cursor, ZCode) runs it. Offer `kibi signoff --format html --open` for the page |
|
|
23
24
|
| OpenCode terminal | `kibi signoff --format md` and paste the fenced block unchanged: kibi-opencode draws it as a card, and `/kibi-signoff` reopens it |
|
|
24
|
-
| Replies sent through a messaging tool (cloud or project threads, chat bots) | Pass the default output as the message text, and
|
|
25
|
+
| Replies sent through a messaging tool (cloud or project threads, chat bots) | Pass the default output as the message text. Share `latest.html` only as a rendered page: in Claude apps (claude.ai, the mobile and desktop apps, Claude Code on the web) publish it with the Artifact tool and give its link. Never attach the `.html` as a file: the Claude apps, Slack and most chat apps show it as raw source or a download. With no page tool, the message text is the whole view |
|
|
25
26
|
| VS Code or Cursor with the kibi-vscode extension | The **Kibi: Show Requirements Signoff** panel follows every run |
|
|
26
27
|
| Remote machine, no browser | Give the person the path of `latest.html` |
|
|
27
28
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-freshness
|
|
3
3
|
name: kibi-freshness
|
|
4
4
|
description: Check exact Git attachment, branch migration/quarantine, compiled-store freshness, source linkage, and repair state before decisions or writes.
|
|
5
|
-
version: 2.
|
|
5
|
+
version: 2.1.0
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -53,7 +53,7 @@ echo '{}' | npx --no-install kibi status --input -
|
|
|
53
53
|
`committed_with_repairs`, follow required typed `nextActions`; never retry the
|
|
54
54
|
original operation.
|
|
55
55
|
|
|
56
|
-
For every freshness, branch, or completion question, call `kb_status` first, then `kb_query` the entities and source files that status names, then `kb_check` as the last Kibi call before answering. Never skip the query step, even when status alone seems to answer the question. If another query or write follows a check, run `kb_check` again before answering. When asked whether requirements are consistent or proven, run `kb_query`, then `kb_check` with the domain-contradictions
|
|
56
|
+
For every freshness, branch, or completion question, call `kb_status` first, then `kb_query` the entities and source files that status names, then `kb_check` as the last Kibi call before answering. Never skip the query step, even when status alone seems to answer the question. If another query or write follows a check, run `kb_check` again before answering. When asked whether requirements are consistent or proven, run `kb_query`, then `kb_check` with the rules `domain-contradictions`, `kb-consistency` and `kb-consistency-unresolved`, then `kb_coverage`, and read whether the analysis was complete. `domain-contradictions` compares facts two at a time; `kb-consistency` checks every fact of a property together, so a clean pairwise result is not proof. Report a `kb-consistency` violation as a conflict, name every requirement it lists, and give superseding or changing one of them as the next step; never edit or delete facts to make the check pass. Report a context `kb-consistency-unresolved` names as unresolved, never as consistent, with the step that would make it comparable. Report any unmodeled or unknown clause as incomplete analysis, not as consistent. Only when every clause is fully modeled and compatible, state plainly that no conflict was found. For authorized knowledge changes, keep the exact supplied target and intended relationship edges, and discover and query those targets first. Validate the payload with `kb_upsert` and `dryRun: true`, then perform the authorized `kb_upsert` with that same payload and read the result back exactly before the final checks. A passing dry run is validation, not completion. Distinct authorized payloads may need several sequential writes, each validated and read back, but never retry a mutation that already committed. If a mutation returns `committed_with_repairs`, follow its typed `nextActions` instead of repeating the original operation.
|
|
57
57
|
|
|
58
58
|
## Guidance
|
|
59
59
|
|
|
@@ -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.
|
|
5
|
+
version: 2.24.0
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -168,7 +168,7 @@ End every task with these five independent fields:
|
|
|
168
168
|
taskOutcome: complete | interim | blocked
|
|
169
169
|
kbState: clean_fresh | stale | dirty | legacy_compat | not_evaluated
|
|
170
170
|
verificationState: fresh | dirty | unavailable | not_evaluated
|
|
171
|
-
proofState:
|
|
171
|
+
proofState: tested | mixed | unresolved | not_evaluated
|
|
172
172
|
limitationDisposition: none | accepted | unaccepted | not_applicable
|
|
173
173
|
```
|
|
174
174
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Proof and Verification Workflow
|
|
2
2
|
|
|
3
|
-
Use this resource when a requirement must be
|
|
3
|
+
Use this resource when a requirement must be tested end to end before handoff, when
|
|
4
4
|
wiring a proof-bearing test, or when `kb_ingest_proof` or `kibi prove`
|
|
5
5
|
rejected evidence.
|
|
6
6
|
|
|
@@ -97,9 +97,9 @@ Cosmetic edits (descriptions, labels) never stale proof. Execution-relevant
|
|
|
97
97
|
edits (command, artifact, targets, options, bindings, contract) change the
|
|
98
98
|
effective fingerprint and do.
|
|
99
99
|
|
|
100
|
-
## What counts toward
|
|
100
|
+
## What counts toward proofTested
|
|
101
101
|
|
|
102
|
-
A requirement
|
|
102
|
+
A requirement reaches `proofStatus: tested` only through its scenarios' tests, and a scenario test
|
|
103
103
|
counts only when it is an **end-to-end** test with a valid, fresh, passing
|
|
104
104
|
receipt for the current snapshot.
|
|
105
105
|
|
|
@@ -109,7 +109,7 @@ receipt for the current snapshot.
|
|
|
109
109
|
`source` path contains `e2e`) counts as end-to-end; anything else is
|
|
110
110
|
`unknown` scope.
|
|
111
111
|
- A `unit` or `integration` receipt is still recorded on the test entity, but
|
|
112
|
-
it does not move `
|
|
112
|
+
it does not move `proofTested` for a behavioural requirement: the
|
|
113
113
|
requirement keeps the `missing_passing_e2e` gap in `proofGaps`. The one
|
|
114
114
|
exception is a scenario whose specifying requirements are all grounded only
|
|
115
115
|
in component-scope UI predicates (`ui_pattern`, `same_pattern`,
|
|
@@ -120,6 +120,38 @@ receipt for the current snapshot.
|
|
|
120
120
|
receipt does not change it, and a `passing` status without a fresh receipt
|
|
121
121
|
proves nothing.
|
|
122
122
|
|
|
123
|
+
## Evidence levels
|
|
124
|
+
|
|
125
|
+
Every requirement row also carries `evidenceLevel`, the strength of what backs
|
|
126
|
+
it, and `evidence`, the entries that earned it (each with `kind`, `scope` and
|
|
127
|
+
`level`):
|
|
128
|
+
|
|
129
|
+
- `proved`: a re-checkable certificate covers every case. No proof kind issues
|
|
130
|
+
certificates yet, so nothing reaches it today.
|
|
131
|
+
- `tested`: `proofStatus` is `tested`; fresh E2E receipts cover every linked
|
|
132
|
+
scenario.
|
|
133
|
+
- `asserted`: a person stands behind the statement (approved, or firm by
|
|
134
|
+
`firmness` or a non-agent origin) but nothing current checks it.
|
|
135
|
+
- `unverified`: an agent wrote it, no person approved it, nothing checks it.
|
|
136
|
+
|
|
137
|
+
Report the level as it is. Never call an `asserted` or `unverified`
|
|
138
|
+
requirement proven or tested, and never call `tested` proved. Firmness is a
|
|
139
|
+
separate axis: it says how sure the person is, not how strong the evidence is.
|
|
140
|
+
|
|
141
|
+
## Knowledge-base certificates
|
|
142
|
+
|
|
143
|
+
`kb_check` (`kibi check`) proves facts about the KB itself in its
|
|
144
|
+
`kb-consistency` rule and re-checks each answer with an independent checker:
|
|
145
|
+
property facts are consistent (a model per subject, property and scope, or an
|
|
146
|
+
irreducible contradiction core), predicate facts and allow/deny decisions are
|
|
147
|
+
consistent, and stored rules are stratified. It catches facts that contradict
|
|
148
|
+
only together, which the pairwise `domain-contradictions` rule misses. A
|
|
149
|
+
`kb-consistency` violation names the core facts and the requirements behind
|
|
150
|
+
them: supersede or change one of those requirements; never edit the facts so
|
|
151
|
+
the check passes. Quote a `kb-consistency-unresolved` diagnostic as
|
|
152
|
+
unresolved, never as consistent. Opposing rule pairs and scenario
|
|
153
|
+
feasibility are not certified yet; their own rules still decide them.
|
|
154
|
+
|
|
123
155
|
## Attempt semantics (factual, never optimistic)
|
|
124
156
|
|
|
125
157
|
- `attempts: {status: "complete", entries: [...]}` — known history; the
|
|
@@ -9,7 +9,7 @@ success flag):
|
|
|
9
9
|
taskOutcome: complete | interim | blocked
|
|
10
10
|
kbState: clean_fresh | stale | dirty | legacy_compat | not_evaluated
|
|
11
11
|
verificationState: fresh | dirty | unavailable | not_evaluated
|
|
12
|
-
proofState:
|
|
12
|
+
proofState: tested | mixed | unresolved | not_evaluated
|
|
13
13
|
limitationDisposition: none | accepted | unaccepted | not_applicable
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kibi-cursor",
|
|
3
3
|
"displayName": "Kibi",
|
|
4
|
-
"version": "2.9.
|
|
4
|
+
"version": "2.9.2",
|
|
5
5
|
"description": "Optional Cursor adapter for Kibi. Requires project-local kibi-cli, kibi-mcp, and kibi-core (SWI-Prolog is bundled on Linux and macOS) before the bundled MCP server can start.",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|
|
7
7
|
"author": {
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
"kibi-bootstrap/resources/branch-lifecycle.md": "c854264ce888439140883a3fc636db5e522f020dd27b30a5c1ecc4105b64ed13",
|
|
5
5
|
"kibi-bootstrap/resources/operation-access.md": "b5a6a59e72d800c376e7fad79132897623c32a0ce152a1e8d73f9628b444db51",
|
|
6
6
|
"kibi-bootstrap/resources/source-authoring.md": "bf296e62f69474e01797d6cb9469bf624551dca834dd188abb6e705bd96fa586",
|
|
7
|
-
"kibi-commit-review/SKILL.md": "
|
|
7
|
+
"kibi-commit-review/SKILL.md": "cf08d0e4d4d6883b04c2059f4a4fa135531aff7a22f64f7d67f50318dff67972",
|
|
8
8
|
"kibi-commit-review/resources/staged-gate.md": "993e5a08ab2be5ccd95695ec5f7600cd32ef6d75d1a9b962202183aa05fec51f",
|
|
9
|
-
"kibi-decisions/SKILL.md": "
|
|
9
|
+
"kibi-decisions/SKILL.md": "4953fa62ada7309e5cd0e845fdc7de0e8a34cdc4adca85303689a120ad28586e",
|
|
10
10
|
"kibi-decisions/resources/decision-records.md": "1244ab963f78cfd47fc88dc9700bbfdbe2fad8a0d84da1fb7c40d718ccca710a",
|
|
11
|
-
"kibi-decisions/resources/signoff-views.md": "
|
|
12
|
-
"kibi-freshness/SKILL.md": "
|
|
11
|
+
"kibi-decisions/resources/signoff-views.md": "123da13a3f2b30b5672044a1284626e218d3088411f84f2692746f95e06c1393",
|
|
12
|
+
"kibi-freshness/SKILL.md": "7474b7c22ca915006e930850274bc71efaf2e03dcf60d41a2936b70d64547052",
|
|
13
13
|
"kibi-freshness/resources/branch-lifecycle.md": "ebc01b19fe3dca8df5fc0175978963f6f1204f71f7c805cb2a5fb1b277ac78e4",
|
|
14
14
|
"kibi-freshness/resources/operation-access.md": "4e1db9294ee540cd29b8b3a2532a81e7894d5b4228b39e99ba48b37212f489f3",
|
|
15
15
|
"kibi-freshness/resources/source-authoring.md": "41a0547ce4d2a112a0f3671d36720f07c447864db3b473e94eb88a8ce2d371ff",
|
|
@@ -18,15 +18,15 @@
|
|
|
18
18
|
"kibi-traceability/resources/operation-access.md": "39f7972ab7f4ae7479e78f7072bb50e8e6c4cdf4f857425f69d2522d37db437c",
|
|
19
19
|
"kibi-traceability/resources/source-authoring.md": "408c6ee2bef1b84e0194c0538ef929c26a0a617e631b2234247388140dbbdd08",
|
|
20
20
|
"kibi-traceability/resources/traceability.md": "38c290a0bc71bd1692e115f22694743946e2f69630e134acfd43cee5f613fb88",
|
|
21
|
-
"kibi-usage/SKILL.md": "
|
|
21
|
+
"kibi-usage/SKILL.md": "e8efe1c31c601042cdcd3c96cb9cd81b009458410053a6cf5a44852dd0a1bcbf",
|
|
22
22
|
"kibi-usage/resources/branch-lifecycle.md": "f1bf359e9826e83c548f3cd0287f8175a62456527b0132b06b3f9f74aa59b7d6",
|
|
23
23
|
"kibi-usage/resources/fact-lanes.md": "899218f90396aa469b6e34aeb5f7ea1f38bf11bb326102319f376c213859fb33",
|
|
24
24
|
"kibi-usage/resources/kb-improvement.md": "a8408fce27342bdce6415a6718599e53fe00bb33aa1fd3dc42353ec6f61adcd7",
|
|
25
25
|
"kibi-usage/resources/logic-ir.md": "0e8ce8aad07433ab4803ec169149ff6c4e1cf8cf010af18fa6fd67862d9be807",
|
|
26
26
|
"kibi-usage/resources/operation-access.md": "eb455796c066787ffd3fae8db0db1d3e87a84265a57f06ae61e30103cd6aed66",
|
|
27
|
-
"kibi-usage/resources/proof.md": "
|
|
27
|
+
"kibi-usage/resources/proof.md": "d44ced11dca304495cab186eea84bf33fbd9932653821559a7f20b4f1c8d5606",
|
|
28
28
|
"kibi-usage/resources/relationship-directions.md": "0fdd67032c2d15299f772845fc4f807eb9435b09507bd87a5911ab33db2f143d",
|
|
29
29
|
"kibi-usage/resources/source-authoring.md": "cad93f1e0ae08a676f2de7492f9227677880302327e74d159618fea86ca50abe",
|
|
30
30
|
"kibi-usage/resources/ui-requirements.md": "f99c2a9a73bbb7bd92ce1f231db3056d544588be149a5b0d3f7cc6f28bc9eee9",
|
|
31
|
-
"kibi-usage/resources/workflows.md": "
|
|
31
|
+
"kibi-usage/resources/workflows.md": "53c6889f375988a89a4cce8e68e79c7f621b15cc81cff915d61733642db87153"
|
|
32
32
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-commit-review
|
|
3
3
|
name: kibi-commit-review
|
|
4
4
|
description: "Use when kibi check --staged or the Kibi pre-commit hook blocks a commit (kibi_impact_evidence_missing, symbols_manifest_stale, symbol_granularity_violation, symbol-coverage, kibi check-generated drift, Staged impact review failed), or when preparing a commit or pull-request impact review. Covers reading the per-file Detail lines, authoring .kb/symbols.yaml symbol entries through kb_upsert, kibi sync --refresh-symbol-coordinates, staging the tracked Kibi evidence with git add, kb_prepare_impact_review for a staged or diff scope, the kibi signoff requirements summary to show before a commit, and how merge commits and migration renames are judged."
|
|
5
|
-
version: 1.2.
|
|
5
|
+
version: 1.2.1
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -85,8 +85,9 @@ requirement with its statement (before and after for a rewrite), firmness,
|
|
|
85
85
|
origin, scenarios and proof state. Put it in your reply unchanged (in the
|
|
86
86
|
messaging tool's message when replies go through one), then add one or two
|
|
87
87
|
sentences on why the requirements changed. Offer the full page with
|
|
88
|
-
`kibi signoff --format html --open`, or
|
|
89
|
-
|
|
88
|
+
`kibi signoff --format html --open`, or publish `.kb/briefs/signoff/latest.html`
|
|
89
|
+
as a rendered page when your host has a page tool (the Artifact tool in Claude
|
|
90
|
+
apps); never attach the `.html` as a file, which chat apps show as raw source;
|
|
90
91
|
past 15 requirements the Markdown stops and only the page lists them all.
|
|
91
92
|
Host details: `kibi-decisions`, `resources/signoff-views.md`. `--no-proof` skips the proof lookup, which reads coverage and is slow
|
|
92
93
|
on a large knowledge base. The summary is not an approval: never set
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-decisions
|
|
3
3
|
name: kibi-decisions
|
|
4
4
|
description: "Use when the person states a rule or decision (must, never, always, from now on, we decided), when a Kibi hook asks to confirm or warns about an edit to code that implements a firm requirement, when the Stop hook says source files changed but nothing was recorded, when kb_check quotes requirement_statement_unverified, or when a request conflicts with a recorded requirement or ADR. Covers reading firmness and origin, recording a person's rule as firm with origin.ref, superseding with a Why this changed section, the kb_compile_intent unresolved/reviewCandidates/conflictReviews loop, asking before overriding a firm rule, and putting decisions to the person as one numbered kibi signoff --questions view."
|
|
5
|
-
version: 1.2.
|
|
5
|
+
version: 1.2.1
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -13,7 +13,8 @@ statements and lists that render in any chat or messaging surface. Put it in
|
|
|
13
13
|
your reply unchanged: never wrap it in a code block, summarize it or retell a
|
|
14
14
|
requirement in your own words. Every run also writes
|
|
15
15
|
`.kb/briefs/signoff/latest.json`, `latest.md` and `latest.html` (git-ignored);
|
|
16
|
-
`latest.html` is a self-contained page with the full view
|
|
16
|
+
`latest.html` is a self-contained page with the full view, meant to be opened
|
|
17
|
+
in a browser or published as a page, not attached as a file.
|
|
17
18
|
|
|
18
19
|
## Showing it on your host
|
|
19
20
|
|
|
@@ -21,7 +22,7 @@ requirement in your own words. Every run also writes
|
|
|
21
22
|
| --- | --- |
|
|
22
23
|
| Claude Code, Codex, Cursor, ZCode, VS Code chat | Paste the default output; `/kibi-signoff` (Claude Code, Cursor, ZCode) runs it. Offer `kibi signoff --format html --open` for the page |
|
|
23
24
|
| OpenCode terminal | `kibi signoff --format md` and paste the fenced block unchanged: kibi-opencode draws it as a card, and `/kibi-signoff` reopens it |
|
|
24
|
-
| Replies sent through a messaging tool (cloud or project threads, chat bots) | Pass the default output as the message text, and
|
|
25
|
+
| Replies sent through a messaging tool (cloud or project threads, chat bots) | Pass the default output as the message text. Share `latest.html` only as a rendered page: in Claude apps (claude.ai, the mobile and desktop apps, Claude Code on the web) publish it with the Artifact tool and give its link. Never attach the `.html` as a file: the Claude apps, Slack and most chat apps show it as raw source or a download. With no page tool, the message text is the whole view |
|
|
25
26
|
| VS Code or Cursor with the kibi-vscode extension | The **Kibi: Show Requirements Signoff** panel follows every run |
|
|
26
27
|
| Remote machine, no browser | Give the person the path of `latest.html` |
|
|
27
28
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-freshness
|
|
3
3
|
name: kibi-freshness
|
|
4
4
|
description: Check exact Git attachment, branch migration/quarantine, compiled-store freshness, source linkage, and repair state before decisions or writes.
|
|
5
|
-
version: 2.
|
|
5
|
+
version: 2.1.0
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -53,7 +53,7 @@ echo '{}' | npx --no-install kibi status --input -
|
|
|
53
53
|
`committed_with_repairs`, follow required typed `nextActions`; never retry the
|
|
54
54
|
original operation.
|
|
55
55
|
|
|
56
|
-
For every freshness, branch, or completion question, call `kb_status` first, then `kb_query` the entities and source files that status names, then `kb_check` as the last Kibi call before answering. Never skip the query step, even when status alone seems to answer the question. If another query or write follows a check, run `kb_check` again before answering. When asked whether requirements are consistent or proven, run `kb_query`, then `kb_check` with the domain-contradictions
|
|
56
|
+
For every freshness, branch, or completion question, call `kb_status` first, then `kb_query` the entities and source files that status names, then `kb_check` as the last Kibi call before answering. Never skip the query step, even when status alone seems to answer the question. If another query or write follows a check, run `kb_check` again before answering. When asked whether requirements are consistent or proven, run `kb_query`, then `kb_check` with the rules `domain-contradictions`, `kb-consistency` and `kb-consistency-unresolved`, then `kb_coverage`, and read whether the analysis was complete. `domain-contradictions` compares facts two at a time; `kb-consistency` checks every fact of a property together, so a clean pairwise result is not proof. Report a `kb-consistency` violation as a conflict, name every requirement it lists, and give superseding or changing one of them as the next step; never edit or delete facts to make the check pass. Report a context `kb-consistency-unresolved` names as unresolved, never as consistent, with the step that would make it comparable. Report any unmodeled or unknown clause as incomplete analysis, not as consistent. Only when every clause is fully modeled and compatible, state plainly that no conflict was found. For authorized knowledge changes, keep the exact supplied target and intended relationship edges, and discover and query those targets first. Validate the payload with `kb_upsert` and `dryRun: true`, then perform the authorized `kb_upsert` with that same payload and read the result back exactly before the final checks. A passing dry run is validation, not completion. Distinct authorized payloads may need several sequential writes, each validated and read back, but never retry a mutation that already committed. If a mutation returns `committed_with_repairs`, follow its typed `nextActions` instead of repeating the original operation.
|
|
57
57
|
|
|
58
58
|
## Guidance
|
|
59
59
|
|
|
@@ -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.
|
|
5
|
+
version: 2.24.0
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -168,7 +168,7 @@ End every task with these five independent fields:
|
|
|
168
168
|
taskOutcome: complete | interim | blocked
|
|
169
169
|
kbState: clean_fresh | stale | dirty | legacy_compat | not_evaluated
|
|
170
170
|
verificationState: fresh | dirty | unavailable | not_evaluated
|
|
171
|
-
proofState:
|
|
171
|
+
proofState: tested | mixed | unresolved | not_evaluated
|
|
172
172
|
limitationDisposition: none | accepted | unaccepted | not_applicable
|
|
173
173
|
```
|
|
174
174
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Proof and Verification Workflow
|
|
2
2
|
|
|
3
|
-
Use this resource when a requirement must be
|
|
3
|
+
Use this resource when a requirement must be tested end to end before handoff, when
|
|
4
4
|
wiring a proof-bearing test, or when `kb_ingest_proof` or `kibi prove`
|
|
5
5
|
rejected evidence.
|
|
6
6
|
|
|
@@ -97,9 +97,9 @@ Cosmetic edits (descriptions, labels) never stale proof. Execution-relevant
|
|
|
97
97
|
edits (command, artifact, targets, options, bindings, contract) change the
|
|
98
98
|
effective fingerprint and do.
|
|
99
99
|
|
|
100
|
-
## What counts toward
|
|
100
|
+
## What counts toward proofTested
|
|
101
101
|
|
|
102
|
-
A requirement
|
|
102
|
+
A requirement reaches `proofStatus: tested` only through its scenarios' tests, and a scenario test
|
|
103
103
|
counts only when it is an **end-to-end** test with a valid, fresh, passing
|
|
104
104
|
receipt for the current snapshot.
|
|
105
105
|
|
|
@@ -109,7 +109,7 @@ receipt for the current snapshot.
|
|
|
109
109
|
`source` path contains `e2e`) counts as end-to-end; anything else is
|
|
110
110
|
`unknown` scope.
|
|
111
111
|
- A `unit` or `integration` receipt is still recorded on the test entity, but
|
|
112
|
-
it does not move `
|
|
112
|
+
it does not move `proofTested` for a behavioural requirement: the
|
|
113
113
|
requirement keeps the `missing_passing_e2e` gap in `proofGaps`. The one
|
|
114
114
|
exception is a scenario whose specifying requirements are all grounded only
|
|
115
115
|
in component-scope UI predicates (`ui_pattern`, `same_pattern`,
|
|
@@ -120,6 +120,38 @@ receipt for the current snapshot.
|
|
|
120
120
|
receipt does not change it, and a `passing` status without a fresh receipt
|
|
121
121
|
proves nothing.
|
|
122
122
|
|
|
123
|
+
## Evidence levels
|
|
124
|
+
|
|
125
|
+
Every requirement row also carries `evidenceLevel`, the strength of what backs
|
|
126
|
+
it, and `evidence`, the entries that earned it (each with `kind`, `scope` and
|
|
127
|
+
`level`):
|
|
128
|
+
|
|
129
|
+
- `proved`: a re-checkable certificate covers every case. No proof kind issues
|
|
130
|
+
certificates yet, so nothing reaches it today.
|
|
131
|
+
- `tested`: `proofStatus` is `tested`; fresh E2E receipts cover every linked
|
|
132
|
+
scenario.
|
|
133
|
+
- `asserted`: a person stands behind the statement (approved, or firm by
|
|
134
|
+
`firmness` or a non-agent origin) but nothing current checks it.
|
|
135
|
+
- `unverified`: an agent wrote it, no person approved it, nothing checks it.
|
|
136
|
+
|
|
137
|
+
Report the level as it is. Never call an `asserted` or `unverified`
|
|
138
|
+
requirement proven or tested, and never call `tested` proved. Firmness is a
|
|
139
|
+
separate axis: it says how sure the person is, not how strong the evidence is.
|
|
140
|
+
|
|
141
|
+
## Knowledge-base certificates
|
|
142
|
+
|
|
143
|
+
`kb_check` (`kibi check`) proves facts about the KB itself in its
|
|
144
|
+
`kb-consistency` rule and re-checks each answer with an independent checker:
|
|
145
|
+
property facts are consistent (a model per subject, property and scope, or an
|
|
146
|
+
irreducible contradiction core), predicate facts and allow/deny decisions are
|
|
147
|
+
consistent, and stored rules are stratified. It catches facts that contradict
|
|
148
|
+
only together, which the pairwise `domain-contradictions` rule misses. A
|
|
149
|
+
`kb-consistency` violation names the core facts and the requirements behind
|
|
150
|
+
them: supersede or change one of those requirements; never edit the facts so
|
|
151
|
+
the check passes. Quote a `kb-consistency-unresolved` diagnostic as
|
|
152
|
+
unresolved, never as consistent. Opposing rule pairs and scenario
|
|
153
|
+
feasibility are not certified yet; their own rules still decide them.
|
|
154
|
+
|
|
123
155
|
## Attempt semantics (factual, never optimistic)
|
|
124
156
|
|
|
125
157
|
- `attempts: {status: "complete", entries: [...]}` — known history; the
|
|
@@ -9,7 +9,7 @@ success flag):
|
|
|
9
9
|
taskOutcome: complete | interim | blocked
|
|
10
10
|
kbState: clean_fresh | stale | dirty | legacy_compat | not_evaluated
|
|
11
11
|
verificationState: fresh | dirty | unavailable | not_evaluated
|
|
12
|
-
proofState:
|
|
12
|
+
proofState: tested | mixed | unresolved | not_evaluated
|
|
13
13
|
limitationDisposition: none | accepted | unaccepted | not_applicable
|
|
14
14
|
```
|
|
15
15
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kibi-cursor",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.2",
|
|
4
4
|
"description": "Kibi Cursor plugin - thin adapter for Cursor MCP integration and editor hooks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"kibi-agent-core": "^0.9.
|
|
62
|
+
"kibi-agent-core": "^0.9.1"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/node": "latest",
|
package/skills/.canon-hash.json
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
"kibi-bootstrap/resources/branch-lifecycle.md": "c854264ce888439140883a3fc636db5e522f020dd27b30a5c1ecc4105b64ed13",
|
|
5
5
|
"kibi-bootstrap/resources/operation-access.md": "b5a6a59e72d800c376e7fad79132897623c32a0ce152a1e8d73f9628b444db51",
|
|
6
6
|
"kibi-bootstrap/resources/source-authoring.md": "bf296e62f69474e01797d6cb9469bf624551dca834dd188abb6e705bd96fa586",
|
|
7
|
-
"kibi-commit-review/SKILL.md": "
|
|
7
|
+
"kibi-commit-review/SKILL.md": "cf08d0e4d4d6883b04c2059f4a4fa135531aff7a22f64f7d67f50318dff67972",
|
|
8
8
|
"kibi-commit-review/resources/staged-gate.md": "993e5a08ab2be5ccd95695ec5f7600cd32ef6d75d1a9b962202183aa05fec51f",
|
|
9
|
-
"kibi-decisions/SKILL.md": "
|
|
9
|
+
"kibi-decisions/SKILL.md": "4953fa62ada7309e5cd0e845fdc7de0e8a34cdc4adca85303689a120ad28586e",
|
|
10
10
|
"kibi-decisions/resources/decision-records.md": "1244ab963f78cfd47fc88dc9700bbfdbe2fad8a0d84da1fb7c40d718ccca710a",
|
|
11
|
-
"kibi-decisions/resources/signoff-views.md": "
|
|
12
|
-
"kibi-freshness/SKILL.md": "
|
|
11
|
+
"kibi-decisions/resources/signoff-views.md": "123da13a3f2b30b5672044a1284626e218d3088411f84f2692746f95e06c1393",
|
|
12
|
+
"kibi-freshness/SKILL.md": "7474b7c22ca915006e930850274bc71efaf2e03dcf60d41a2936b70d64547052",
|
|
13
13
|
"kibi-freshness/resources/branch-lifecycle.md": "ebc01b19fe3dca8df5fc0175978963f6f1204f71f7c805cb2a5fb1b277ac78e4",
|
|
14
14
|
"kibi-freshness/resources/operation-access.md": "4e1db9294ee540cd29b8b3a2532a81e7894d5b4228b39e99ba48b37212f489f3",
|
|
15
15
|
"kibi-freshness/resources/source-authoring.md": "41a0547ce4d2a112a0f3671d36720f07c447864db3b473e94eb88a8ce2d371ff",
|
|
@@ -18,15 +18,15 @@
|
|
|
18
18
|
"kibi-traceability/resources/operation-access.md": "39f7972ab7f4ae7479e78f7072bb50e8e6c4cdf4f857425f69d2522d37db437c",
|
|
19
19
|
"kibi-traceability/resources/source-authoring.md": "408c6ee2bef1b84e0194c0538ef929c26a0a617e631b2234247388140dbbdd08",
|
|
20
20
|
"kibi-traceability/resources/traceability.md": "38c290a0bc71bd1692e115f22694743946e2f69630e134acfd43cee5f613fb88",
|
|
21
|
-
"kibi-usage/SKILL.md": "
|
|
21
|
+
"kibi-usage/SKILL.md": "e8efe1c31c601042cdcd3c96cb9cd81b009458410053a6cf5a44852dd0a1bcbf",
|
|
22
22
|
"kibi-usage/resources/branch-lifecycle.md": "f1bf359e9826e83c548f3cd0287f8175a62456527b0132b06b3f9f74aa59b7d6",
|
|
23
23
|
"kibi-usage/resources/fact-lanes.md": "899218f90396aa469b6e34aeb5f7ea1f38bf11bb326102319f376c213859fb33",
|
|
24
24
|
"kibi-usage/resources/kb-improvement.md": "a8408fce27342bdce6415a6718599e53fe00bb33aa1fd3dc42353ec6f61adcd7",
|
|
25
25
|
"kibi-usage/resources/logic-ir.md": "0e8ce8aad07433ab4803ec169149ff6c4e1cf8cf010af18fa6fd67862d9be807",
|
|
26
26
|
"kibi-usage/resources/operation-access.md": "eb455796c066787ffd3fae8db0db1d3e87a84265a57f06ae61e30103cd6aed66",
|
|
27
|
-
"kibi-usage/resources/proof.md": "
|
|
27
|
+
"kibi-usage/resources/proof.md": "d44ced11dca304495cab186eea84bf33fbd9932653821559a7f20b4f1c8d5606",
|
|
28
28
|
"kibi-usage/resources/relationship-directions.md": "0fdd67032c2d15299f772845fc4f807eb9435b09507bd87a5911ab33db2f143d",
|
|
29
29
|
"kibi-usage/resources/source-authoring.md": "cad93f1e0ae08a676f2de7492f9227677880302327e74d159618fea86ca50abe",
|
|
30
30
|
"kibi-usage/resources/ui-requirements.md": "f99c2a9a73bbb7bd92ce1f231db3056d544588be149a5b0d3f7cc6f28bc9eee9",
|
|
31
|
-
"kibi-usage/resources/workflows.md": "
|
|
31
|
+
"kibi-usage/resources/workflows.md": "53c6889f375988a89a4cce8e68e79c7f621b15cc81cff915d61733642db87153"
|
|
32
32
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-commit-review
|
|
3
3
|
name: kibi-commit-review
|
|
4
4
|
description: "Use when kibi check --staged or the Kibi pre-commit hook blocks a commit (kibi_impact_evidence_missing, symbols_manifest_stale, symbol_granularity_violation, symbol-coverage, kibi check-generated drift, Staged impact review failed), or when preparing a commit or pull-request impact review. Covers reading the per-file Detail lines, authoring .kb/symbols.yaml symbol entries through kb_upsert, kibi sync --refresh-symbol-coordinates, staging the tracked Kibi evidence with git add, kb_prepare_impact_review for a staged or diff scope, the kibi signoff requirements summary to show before a commit, and how merge commits and migration renames are judged."
|
|
5
|
-
version: 1.2.
|
|
5
|
+
version: 1.2.1
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -85,8 +85,9 @@ requirement with its statement (before and after for a rewrite), firmness,
|
|
|
85
85
|
origin, scenarios and proof state. Put it in your reply unchanged (in the
|
|
86
86
|
messaging tool's message when replies go through one), then add one or two
|
|
87
87
|
sentences on why the requirements changed. Offer the full page with
|
|
88
|
-
`kibi signoff --format html --open`, or
|
|
89
|
-
|
|
88
|
+
`kibi signoff --format html --open`, or publish `.kb/briefs/signoff/latest.html`
|
|
89
|
+
as a rendered page when your host has a page tool (the Artifact tool in Claude
|
|
90
|
+
apps); never attach the `.html` as a file, which chat apps show as raw source;
|
|
90
91
|
past 15 requirements the Markdown stops and only the page lists them all.
|
|
91
92
|
Host details: `kibi-decisions`, `resources/signoff-views.md`. `--no-proof` skips the proof lookup, which reads coverage and is slow
|
|
92
93
|
on a large knowledge base. The summary is not an approval: never set
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-decisions
|
|
3
3
|
name: kibi-decisions
|
|
4
4
|
description: "Use when the person states a rule or decision (must, never, always, from now on, we decided), when a Kibi hook asks to confirm or warns about an edit to code that implements a firm requirement, when the Stop hook says source files changed but nothing was recorded, when kb_check quotes requirement_statement_unverified, or when a request conflicts with a recorded requirement or ADR. Covers reading firmness and origin, recording a person's rule as firm with origin.ref, superseding with a Why this changed section, the kb_compile_intent unresolved/reviewCandidates/conflictReviews loop, asking before overriding a firm rule, and putting decisions to the person as one numbered kibi signoff --questions view."
|
|
5
|
-
version: 1.2.
|
|
5
|
+
version: 1.2.1
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -13,7 +13,8 @@ statements and lists that render in any chat or messaging surface. Put it in
|
|
|
13
13
|
your reply unchanged: never wrap it in a code block, summarize it or retell a
|
|
14
14
|
requirement in your own words. Every run also writes
|
|
15
15
|
`.kb/briefs/signoff/latest.json`, `latest.md` and `latest.html` (git-ignored);
|
|
16
|
-
`latest.html` is a self-contained page with the full view
|
|
16
|
+
`latest.html` is a self-contained page with the full view, meant to be opened
|
|
17
|
+
in a browser or published as a page, not attached as a file.
|
|
17
18
|
|
|
18
19
|
## Showing it on your host
|
|
19
20
|
|
|
@@ -21,7 +22,7 @@ requirement in your own words. Every run also writes
|
|
|
21
22
|
| --- | --- |
|
|
22
23
|
| Claude Code, Codex, Cursor, ZCode, VS Code chat | Paste the default output; `/kibi-signoff` (Claude Code, Cursor, ZCode) runs it. Offer `kibi signoff --format html --open` for the page |
|
|
23
24
|
| OpenCode terminal | `kibi signoff --format md` and paste the fenced block unchanged: kibi-opencode draws it as a card, and `/kibi-signoff` reopens it |
|
|
24
|
-
| Replies sent through a messaging tool (cloud or project threads, chat bots) | Pass the default output as the message text, and
|
|
25
|
+
| Replies sent through a messaging tool (cloud or project threads, chat bots) | Pass the default output as the message text. Share `latest.html` only as a rendered page: in Claude apps (claude.ai, the mobile and desktop apps, Claude Code on the web) publish it with the Artifact tool and give its link. Never attach the `.html` as a file: the Claude apps, Slack and most chat apps show it as raw source or a download. With no page tool, the message text is the whole view |
|
|
25
26
|
| VS Code or Cursor with the kibi-vscode extension | The **Kibi: Show Requirements Signoff** panel follows every run |
|
|
26
27
|
| Remote machine, no browser | Give the person the path of `latest.html` |
|
|
27
28
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: kibi-freshness
|
|
3
3
|
name: kibi-freshness
|
|
4
4
|
description: Check exact Git attachment, branch migration/quarantine, compiled-store freshness, source linkage, and repair state before decisions or writes.
|
|
5
|
-
version: 2.
|
|
5
|
+
version: 2.1.0
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -53,7 +53,7 @@ echo '{}' | npx --no-install kibi status --input -
|
|
|
53
53
|
`committed_with_repairs`, follow required typed `nextActions`; never retry the
|
|
54
54
|
original operation.
|
|
55
55
|
|
|
56
|
-
For every freshness, branch, or completion question, call `kb_status` first, then `kb_query` the entities and source files that status names, then `kb_check` as the last Kibi call before answering. Never skip the query step, even when status alone seems to answer the question. If another query or write follows a check, run `kb_check` again before answering. When asked whether requirements are consistent or proven, run `kb_query`, then `kb_check` with the domain-contradictions
|
|
56
|
+
For every freshness, branch, or completion question, call `kb_status` first, then `kb_query` the entities and source files that status names, then `kb_check` as the last Kibi call before answering. Never skip the query step, even when status alone seems to answer the question. If another query or write follows a check, run `kb_check` again before answering. When asked whether requirements are consistent or proven, run `kb_query`, then `kb_check` with the rules `domain-contradictions`, `kb-consistency` and `kb-consistency-unresolved`, then `kb_coverage`, and read whether the analysis was complete. `domain-contradictions` compares facts two at a time; `kb-consistency` checks every fact of a property together, so a clean pairwise result is not proof. Report a `kb-consistency` violation as a conflict, name every requirement it lists, and give superseding or changing one of them as the next step; never edit or delete facts to make the check pass. Report a context `kb-consistency-unresolved` names as unresolved, never as consistent, with the step that would make it comparable. Report any unmodeled or unknown clause as incomplete analysis, not as consistent. Only when every clause is fully modeled and compatible, state plainly that no conflict was found. For authorized knowledge changes, keep the exact supplied target and intended relationship edges, and discover and query those targets first. Validate the payload with `kb_upsert` and `dryRun: true`, then perform the authorized `kb_upsert` with that same payload and read the result back exactly before the final checks. A passing dry run is validation, not completion. Distinct authorized payloads may need several sequential writes, each validated and read back, but never retry a mutation that already committed. If a mutation returns `committed_with_repairs`, follow its typed `nextActions` instead of repeating the original operation.
|
|
57
57
|
|
|
58
58
|
## Guidance
|
|
59
59
|
|
|
@@ -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.
|
|
5
|
+
version: 2.24.0
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -168,7 +168,7 @@ End every task with these five independent fields:
|
|
|
168
168
|
taskOutcome: complete | interim | blocked
|
|
169
169
|
kbState: clean_fresh | stale | dirty | legacy_compat | not_evaluated
|
|
170
170
|
verificationState: fresh | dirty | unavailable | not_evaluated
|
|
171
|
-
proofState:
|
|
171
|
+
proofState: tested | mixed | unresolved | not_evaluated
|
|
172
172
|
limitationDisposition: none | accepted | unaccepted | not_applicable
|
|
173
173
|
```
|
|
174
174
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Proof and Verification Workflow
|
|
2
2
|
|
|
3
|
-
Use this resource when a requirement must be
|
|
3
|
+
Use this resource when a requirement must be tested end to end before handoff, when
|
|
4
4
|
wiring a proof-bearing test, or when `kb_ingest_proof` or `kibi prove`
|
|
5
5
|
rejected evidence.
|
|
6
6
|
|
|
@@ -97,9 +97,9 @@ Cosmetic edits (descriptions, labels) never stale proof. Execution-relevant
|
|
|
97
97
|
edits (command, artifact, targets, options, bindings, contract) change the
|
|
98
98
|
effective fingerprint and do.
|
|
99
99
|
|
|
100
|
-
## What counts toward
|
|
100
|
+
## What counts toward proofTested
|
|
101
101
|
|
|
102
|
-
A requirement
|
|
102
|
+
A requirement reaches `proofStatus: tested` only through its scenarios' tests, and a scenario test
|
|
103
103
|
counts only when it is an **end-to-end** test with a valid, fresh, passing
|
|
104
104
|
receipt for the current snapshot.
|
|
105
105
|
|
|
@@ -109,7 +109,7 @@ receipt for the current snapshot.
|
|
|
109
109
|
`source` path contains `e2e`) counts as end-to-end; anything else is
|
|
110
110
|
`unknown` scope.
|
|
111
111
|
- A `unit` or `integration` receipt is still recorded on the test entity, but
|
|
112
|
-
it does not move `
|
|
112
|
+
it does not move `proofTested` for a behavioural requirement: the
|
|
113
113
|
requirement keeps the `missing_passing_e2e` gap in `proofGaps`. The one
|
|
114
114
|
exception is a scenario whose specifying requirements are all grounded only
|
|
115
115
|
in component-scope UI predicates (`ui_pattern`, `same_pattern`,
|
|
@@ -120,6 +120,38 @@ receipt for the current snapshot.
|
|
|
120
120
|
receipt does not change it, and a `passing` status without a fresh receipt
|
|
121
121
|
proves nothing.
|
|
122
122
|
|
|
123
|
+
## Evidence levels
|
|
124
|
+
|
|
125
|
+
Every requirement row also carries `evidenceLevel`, the strength of what backs
|
|
126
|
+
it, and `evidence`, the entries that earned it (each with `kind`, `scope` and
|
|
127
|
+
`level`):
|
|
128
|
+
|
|
129
|
+
- `proved`: a re-checkable certificate covers every case. No proof kind issues
|
|
130
|
+
certificates yet, so nothing reaches it today.
|
|
131
|
+
- `tested`: `proofStatus` is `tested`; fresh E2E receipts cover every linked
|
|
132
|
+
scenario.
|
|
133
|
+
- `asserted`: a person stands behind the statement (approved, or firm by
|
|
134
|
+
`firmness` or a non-agent origin) but nothing current checks it.
|
|
135
|
+
- `unverified`: an agent wrote it, no person approved it, nothing checks it.
|
|
136
|
+
|
|
137
|
+
Report the level as it is. Never call an `asserted` or `unverified`
|
|
138
|
+
requirement proven or tested, and never call `tested` proved. Firmness is a
|
|
139
|
+
separate axis: it says how sure the person is, not how strong the evidence is.
|
|
140
|
+
|
|
141
|
+
## Knowledge-base certificates
|
|
142
|
+
|
|
143
|
+
`kb_check` (`kibi check`) proves facts about the KB itself in its
|
|
144
|
+
`kb-consistency` rule and re-checks each answer with an independent checker:
|
|
145
|
+
property facts are consistent (a model per subject, property and scope, or an
|
|
146
|
+
irreducible contradiction core), predicate facts and allow/deny decisions are
|
|
147
|
+
consistent, and stored rules are stratified. It catches facts that contradict
|
|
148
|
+
only together, which the pairwise `domain-contradictions` rule misses. A
|
|
149
|
+
`kb-consistency` violation names the core facts and the requirements behind
|
|
150
|
+
them: supersede or change one of those requirements; never edit the facts so
|
|
151
|
+
the check passes. Quote a `kb-consistency-unresolved` diagnostic as
|
|
152
|
+
unresolved, never as consistent. Opposing rule pairs and scenario
|
|
153
|
+
feasibility are not certified yet; their own rules still decide them.
|
|
154
|
+
|
|
123
155
|
## Attempt semantics (factual, never optimistic)
|
|
124
156
|
|
|
125
157
|
- `attempts: {status: "complete", entries: [...]}` — known history; the
|
|
@@ -9,7 +9,7 @@ success flag):
|
|
|
9
9
|
taskOutcome: complete | interim | blocked
|
|
10
10
|
kbState: clean_fresh | stale | dirty | legacy_compat | not_evaluated
|
|
11
11
|
verificationState: fresh | dirty | unavailable | not_evaluated
|
|
12
|
-
proofState:
|
|
12
|
+
proofState: tested | mixed | unresolved | not_evaluated
|
|
13
13
|
limitationDisposition: none | accepted | unaccepted | not_applicable
|
|
14
14
|
```
|
|
15
15
|
|