@antoneeo/kb-agentic-skill 1.24.0 → 1.26.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.
@@ -103,18 +103,30 @@ the first draft — the properties that make a rule survive a motivated reader a
103
103
  cheap to apply while writing and expensive to retrofit. `vision.md` §6 is the
104
104
  blind check that gates promotion to APPROVED.
105
105
 
106
+ **No section below is written before the owner interview** (`vision.md` §The owner
107
+ interview) and its approved north star. Until then — at bootstrap, or for an owner
108
+ not yet reached — the file is this stub, and nothing traces to it:
109
+
110
+ ```markdown
111
+ # Project Vision
112
+ Status: DRAFT
113
+ <!-- STUB: awaiting the owner interview (vision.md §The owner interview). Not a
114
+ Vision: no artifact traces to it. What the agent observed is in strategic/. -->
115
+ ```
116
+
106
117
  Sections below marked **[gate]** are load-bearing for that ruling; the others are
107
118
  orientation for humans. Keep the human ones — just know which is which.
108
119
 
109
120
  ```markdown
110
121
  # Project Vision
111
122
  Status: DRAFT
112
- <!-- Status: DRAFT (reconstructed by the agent, NOT a gating authority)
123
+ <!-- Status: DRAFT (written from the owner interview, NOT yet a gating authority)
113
124
  or APPROVED (by <who>, <date>) — only after the user's explicit confirmation
114
125
  AND the blind check in vision.md §6. -->
115
126
 
116
127
  ## North Star
117
- <!-- [gate, partly] The BENEFIT to be obtained — what the actor gets, never the
128
+ <!-- [gate, partly] One or two sentences IN THE OWNER'S WORDS, approved before any
129
+ other section (Gate 1): (approved: REQUEST_[topic].md#R<n>). The BENEFIT to be obtained — what the actor gets, never the
118
130
  mechanism, and never by comparison to another product (a comparative
119
131
  definition rots silently when the comparison target moves). Concrete enough
120
132
  that an obstacle to it is recognizable: that is what makes every Non-Goal
@@ -123,11 +135,15 @@ Status: DRAFT
123
135
  scale levels. Routing the reader to another file breaks the cold-read
124
136
  premise. -->
125
137
  ## Core Problem
126
- <!-- Human orientation: what goes wrong without this product. Carries no gate
127
- weight unless the admission test names it. -->
138
+ <!-- Interview question 1: ONE concrete case that today does not get the expected
139
+ result, with its example — never a missing feature. Cite the answer
140
+ (REQUEST_[topic].md#R<n>). Human orientation: carries no gate weight unless
141
+ the admission test names it. -->
128
142
  ## Actors
129
143
  <!-- [gate] the cast this product serves. One light line per actor:
130
144
  **Role** — primary goal; good UX = what a good experience means to them.
145
+ Interview question 3: who receives the benefit, who acts, and who has the
146
+ INITIATIVE — an actor that acts unprompted is named here, or it goes missing.
131
147
  The "good UX =" clauses are admissible work, not decoration — say so in the
132
148
  admission test. Define each actor ONCE here; use-cases (Standalone) / D-UC
133
149
  (Hybrid) reference them by role and never re-describe them (anti-DRY).
@@ -144,7 +160,14 @@ Status: DRAFT
144
160
  with BOTH branches answered, plus an anti-laundering clause naming the
145
161
  re-descriptions you expect. Omit the section if the product has none. -->
146
162
  ## Non-Goals
147
- <!-- [gate — the REJECT side; this is your ENTIRE rejection surface]
163
+ <!-- [gate — the REJECT side, with the Invariants]
164
+ A Non-Goal bounds SCOPE: it rejects a proposal that pursues what it names; it
165
+ never bans a behaviour the product already has and never creates an
166
+ obligation (obligations come from the North Star and the Success Signals). A
167
+ behaviour that must never happen is an Invariant, with its provenance.
168
+ PROVENANCE on every rule, at the end of its bullet: (source: owner
169
+ REQUEST_[topic].md#R<n> | higher Vision: "quoted line" | inference confirmed
170
+ REQUEST_[topic].md#R<n>). An unconfirmed author inference is not a rule.
148
171
  Derive every rule by the deletion test: remove it — if the benefit is still
149
172
  reachable, the rule does not belong (it spends a degree of freedom on
150
173
  nothing); if not, keep it and name the obstacle it removes. Constraints
@@ -164,7 +187,7 @@ Status: DRAFT
164
187
  clause. State the default for anything unreached, per path. -->
165
188
  ## Success Signals
166
189
  <!-- [gate] Each checkable against a NAMED artifact or command by someone who was
167
- not here. Not "we are the best" — a file, a command, a battery, and what the
190
+ not here, with its STARTING VALUE (interview question 4). Not "we are the best" — a file, a command, a battery, and what the
168
191
  result must be. -->
169
192
  ## Where the rest lives
170
193
  <!-- Pointers, so an absence reads as intentional rather than as a gap. Competitive
@@ -197,16 +220,32 @@ Only for features spanning multiple ANALYSIS documents or multiple milestones: o
197
220
  ```markdown
198
221
  # Feature Vision: [Name]
199
222
 
223
+ <!-- Written only after the owner interview (vision.md §The owner interview). Each
224
+ section cites the answer it comes from: REQUEST_[topic].md#R<n>. -->
225
+ ## North Star
226
+ <!-- One or two sentences in the owner's words, explicitly approved before any
227
+ other section (Gate 1): (approved: REQUEST_[topic].md#R<n>). -->
200
228
  ## Problem
229
+ <!-- One concrete case that today does not get the expected result, with its
230
+ example — not a missing feature. -->
201
231
  ## Expected Benefit
232
+ <!-- What who obtains once solved: a result, not a function. -->
202
233
  ## Actors
203
234
  <!-- the cast this feature serves — usually a subset/refinement of the project
204
235
  Actors, or a distinct feature-local cast for internal-tooling work. One light
205
236
  line each: **Role** — primary goal; good UX = what good feels like.
237
+ Name who receives the benefit, who acts, and who has the initiative.
206
238
  Referenced by the use-cases, not re-described in them. -->
207
239
  ## Success Signals
240
+ <!-- Observable, each with its starting value. -->
208
241
  ## Non-Goals / Out of Scope
242
+ <!-- Scope this feature does not pursue. Not a ban on existing behaviour, and no
243
+ obligation: those come from the Benefit and the Signals. -->
209
244
  ## Related Constraints and Principles
245
+ <!-- Each with its provenance: (source: owner REQUEST_[topic].md#R<n> | higher
246
+ Vision: "quoted line" | inference confirmed REQUEST_[topic].md#R<n>). A
247
+ constraint imported from a higher Vision is asked about, never assumed to
248
+ apply here. -->
210
249
  ```
211
250
 
212
251
  ## ai_docs/audit/requests/REQUEST_[topic].md
@@ -47,14 +47,67 @@ Four consequences, each operational:
47
47
 
48
48
  Extracting the benefit from a discussion is real work: a discourse arrives with
49
49
  solutions, preferences and constraints tangled together, and the Vision is the
50
- distilled benefit only. The elicitation round (`elicitation.md`) asks for it first
51
- — and a mechanism ("a dashboard") is not an acceptable answer to a benefit
52
- question ("never lose the thread"); ask again until the answer names what the
53
- actor obtains.
50
+ distilled benefit only. The owner interview below asks for it — and a mechanism
51
+ ("a dashboard") is not an acceptable answer to a benefit question ("never lose
52
+ the thread"); ask again until the answer names what the actor obtains.
54
53
 
55
54
  The deletion test decides **which** rules exist. Everything below decides **how**
56
55
  to write a rule so it holds once you know it must exist.
57
56
 
57
+ ## The owner interview (before any Vision text)
58
+
59
+ A Vision is the **owner's** statement of what is to be obtained. Nothing in this
60
+ file after this section can detect a Vision the author wrote alone: the blind
61
+ check (§6) tests whether the rules survive a hostile reader, never whether they
62
+ are the owner's. So every Vision is born from an interview of the owner, and its
63
+ north star is approved **before** a line of it is drafted.
64
+
65
+ **Scope — every Vision, in every mode:** `project_vision.md`, a feature
66
+ `VISION_*.md`, a lens Vision (course, marketing), and the devPNT M-VISION in
67
+ Hybrid; also an ANALYSIS `## Feature Vision` that states a benefit no existing
68
+ Vision names (one that cites an approved Vision's benefit is alignment, not a
69
+ Vision). An amendment re-runs the questions whose answers it changes, and Gate 1
70
+ again when the north star changes. **There is no skip path**: one sentence from
71
+ the user plus a spike is not a complete spec — that exact shortcut produced a
72
+ Vision with an imported prohibition, no north star and a missing actor, and four
73
+ downstream artifacts built on it (field case, 2026-10). A reply already on record
74
+ in the owner's words is read back for confirmation, never re-asked as an open
75
+ question; an answer the author derived (from a spike, the code, another Vision)
76
+ is never an answer — it is a proposal the owner confirms or rejects.
77
+
78
+ **The questions, in this order.** Each is repeated until its answer has the form
79
+ stated; the wrong form is named so it can be recognized and asked again.
80
+
81
+ | # | Question | Right form | Wrong form — ask again |
82
+ |---|---|---|---|
83
+ | 1 | **Problem** — which concrete case today does not get the expected result? | one real case, with an example | a missing feature ("there is no drawing tool") |
84
+ | 2 | **Benefit** — once solved, who obtains what? | a result for a named actor | a function or mechanism ("a renderer") |
85
+ | 3 | **Actors** — who receives the benefit, who acts, who has the initiative? | all three named, initiative included | only the one who asks — the actor who acts unprompted goes missing |
86
+ | 4 | **Success** — what observable signal shows the benefit arrived? | a signal with its starting value | a feeling, or a signal with no baseline |
87
+ | 5 | **Boundaries** — what does this NOT pursue? | scope excluded from this work | a ban on behaviour ("X must never happen") — that is a constraint (6) or an obligation (2, 4) |
88
+ | 6 | **Known constraints** — each with its provenance: owner, a quoted line of a higher Vision, or author inference | every constraint sourced; every inference asked here | a constraint written in silently, or imported from a higher Vision without asking whether it applies here |
89
+
90
+ A **Non-Goal bounds scope**: it rejects a proposal that pursues what it names; it
91
+ is not a ban on behaviour that already exists, and it creates no obligation.
92
+ Obligations come from the Benefit and the Success Signals.
93
+
94
+ **Gate 1 — north star.** One or two sentences, in the owner's words, explicitly
95
+ approved by the owner. The author may compose a wording from the answers; the
96
+ approval is of that exact text, recorded verbatim in the request record
97
+ (`audit/requests/REQUEST_[unit].md`; a Vision written outside any unit, such as
98
+ the project Vision after bootstrap, records its interview in
99
+ `audit/requests/REQUEST_project_vision.md`). **Without it no Vision text is written** —
100
+ not a DRAFT, not a reconstruction: bootstrap writes a stub awaiting the
101
+ interview, and what the agent observed goes to `strategic/`.
102
+ Unattended, the unit is `BLOCKED on the user` (`elicitation.md` Unattended path).
103
+
104
+ **Gate 2 — the full Vision**, written from the answers. Every section traces to
105
+ an answer or a stated provenance (`REQUEST_[unit].md#R<n>`); every rule carries
106
+ its provenance; an author inference the owner did not confirm is not in it. The
107
+ blind check (§6) verifies that it holds; the approved north star verifies that it
108
+ is the owner's. Promotion to APPROVED still needs the owner's explicit
109
+ confirmation — Gate 2 is that confirmation, given on the written text.
110
+
58
111
  ## 0. The one-line test
59
112
 
60
113
  > Could a reader who has never seen this project rule ACCEPT or REJECT on a
@@ -138,7 +191,14 @@ rule that survived and the same rule leaking.
138
191
  This is the most common structural failure and it is invisible from the inside.
139
192
 
140
193
  - **A Goal cannot reject anything.** If the admission test says "advances a Goal
141
- and violates no Non-Goal", then rejection power lives *only* in the Non-Goals.
194
+ and violates no Non-Goal", then rejection power lives *only* in the Non-Goals
195
+ (and the Invariants, where the Vision has them).
196
+ - **A Non-Goal rejects scope, not behaviour.** It turns away a proposal that
197
+ pursues what it names; it never forbids a behaviour the product already has, and
198
+ it never creates an obligation — obligations come from the Benefit and the
199
+ Success Signals. A behaviour the product must never have is an Invariant, or a
200
+ constraint with its provenance (§The owner interview, question 6). Written as a
201
+ Non-Goal, it reads as a ban the owner never stated.
142
202
  A Goal that says "scale cost to risk in both directions" cannot stop cost
143
203
  inflation — you need a prohibition for that.
144
204
  - **A prohibition scoped to one rung of your own scale protects only that rung.**
@@ -204,7 +264,10 @@ it.
204
264
  ## 6. The blind check (procedure)
205
265
 
206
266
  Run this **before promoting any Vision to APPROVED, and before any amendment of an
207
- approved one**. Not for DRAFT edits — promotion is when authority is granted, and
267
+ approved one**. It runs on a Vision that already passed Gate 1 (§The owner
268
+ interview): it tests whether the rules hold against a hostile reader, and it
269
+ cannot see whether they are the owner's — a Vision the author wrote alone passes
270
+ it cleanly. Not for DRAFT edits — promotion is when authority is granted, and
208
271
  it is rare, so the cost lands where it buys most.
209
272
 
210
273
  1. **Give the reviewer the document text and nothing else.** Not a path — the