@pasko70/pibo 3.1.4 → 3.2.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 (30) hide show
  1. package/README.md +2 -2
  2. package/dist/apps/chat-ui/assets/{dist-BcUbdOKJ.js → dist-BAXv9edD.js} +1 -1
  3. package/dist/apps/chat-ui/assets/{dist-BOqsX6_s.js → dist-CiwafO2k.js} +1 -1
  4. package/dist/apps/chat-ui/assets/{dist-qDZ-CdlK.js → dist-DD2HRAgt.js} +1 -1
  5. package/dist/apps/chat-ui/assets/{dist-DkpIJ_Pp.js → dist-NsHPx2KS.js} +1 -1
  6. package/dist/apps/chat-ui/assets/{dist-a0mykCz7.js → dist-jgYATWSF.js} +1 -1
  7. package/dist/apps/chat-ui/assets/index-BTzIdlcK.css +1 -0
  8. package/dist/apps/chat-ui/assets/index-C-s68zrN.js +228 -0
  9. package/dist/apps/chat-ui/index.html +2 -2
  10. package/dist/apps/chat-vscode-web/assets/{index-SluZr_-r.css → index-b18ZkEo0.css} +1 -1
  11. package/dist/apps/chat-vscode-web/assets/index-nHYofa-e.js +43 -0
  12. package/dist/apps/chat-vscode-web/index.html +2 -2
  13. package/dist/setup/cli.js +5 -5
  14. package/docs/project/guides/pibo-on-windows-via-wsl.md +292 -0
  15. package/docs/project/guides/pibo-vscode-ext-quickstart.md +287 -0
  16. package/docs/project/installation-profiles.md +134 -0
  17. package/docs/project/operations/index.md +10 -0
  18. package/docs/{ops → project/operations}/install-developer-host.md +19 -0
  19. package/docs/{ops → project/operations}/install-user-host.md +19 -0
  20. package/docs/{ops → project/operations}/upgrade-user-to-developer-host.md +19 -0
  21. package/docs/{ops → project/operations}/vscode-extension-release.md +19 -0
  22. package/npm-shrinkwrap.json +4 -3
  23. package/package.json +17 -3
  24. package/skills/builtin/pibo-agent-runtime-adapter/references/testing-migration-and-validation.md +3 -1
  25. package/skills/builtin/pibo-spec-writing/SKILL.md +110 -168
  26. package/skills/builtin/prd/SKILL.md +18 -0
  27. package/dist/apps/chat-ui/assets/index-CmqRSbBU.css +0 -1
  28. package/dist/apps/chat-ui/assets/index-G2ic-FSG.js +0 -228
  29. package/dist/apps/chat-vscode-web/assets/index-zQ1fNz5K.js +0 -43
  30. package/docs/README.md +0 -34
@@ -1,15 +1,17 @@
1
1
  ---
2
2
  name: pibo-spec-writing
3
- description: Defines how Pibo specs are written, structured, reviewed, and split into proposals, capability specs, phase specs, designs, and tasks. Use this whenever the user asks to create, review, rewrite, compare, or implement a spec; mentions requirements, acceptance criteria, scope, roadmap, proposal, design plan, tasks, OpenSpec, Spec Kit, GSD, or spec-driven development; or asks where project documentation should live.
3
+ description: Defines how Pibo current domain specifications and supporting plans, proposals, technical designs, product requirements, task ledgers, and decisions are written and reviewed. Use this whenever the user asks to create, review, rewrite, compare, or implement a spec; mentions requirements, acceptance criteria, scope, roadmap, proposal, design plan, tasks, OpenSpec, Spec Kit, GSD, or spec-driven development; or asks where project documentation should live.
4
4
  ---
5
5
 
6
6
  # Pibo Spec Writing
7
7
 
8
8
  Use this skill when creating or reviewing specs for Pibo. A good Pibo spec is behavior-first, scoped, testable, concise, and traceable to implementation work. Keep implementation details out of the spec unless they are externally visible constraints.
9
9
 
10
+ Before writing, read `docs/index.md` and `docs/project/documentation-profile.md`. Keep this host-owned `SKILL.md` in its native format; apply OKF metadata only to concepts under `docs/`.
11
+
10
12
  ## Core principles
11
13
 
12
- Write specs so another agent can implement and verify the work without reading the original chat.
14
+ Write current specs so another agent can understand and verify implemented behavior without reading the original chat. Put behavior that is not implemented in a Plan.
13
15
 
14
16
  1. Start with why the change matters.
15
17
  2. Define the observable behavior, not the code shape.
@@ -17,65 +19,73 @@ Write specs so another agent can implement and verify the work without reading t
17
19
  4. Make every requirement testable.
18
20
  5. Add scenarios or acceptance criteria for each important behavior.
19
21
  6. Track assumptions and open questions instead of hiding them.
20
- 7. Link requirements to phases, tasks, or plans when the work is large.
22
+ 7. Give every requirement a stable ID and exact source/test traceability at the checked commit.
21
23
  8. Use clear prose: active voice, concrete words, short paragraphs, and no puffery.
22
- 9. For user-facing UI, CLI, TUI, gateway, runtime, or agent-routing changes, name the expected verification level instead of assuming unit tests are enough.
24
+ 9. For user-facing UI, CLI, TUI, gateway, runtime, or agent-routing behavior, name the concrete source, test, build, browser, and Pibo2 evidence that applies instead of assuming unit tests are enough.
23
25
 
24
26
  ## Where specs live
25
27
 
26
- Follow the project documentation structure:
28
+ Follow the five-root Pibo OKF profile:
27
29
 
28
30
  ```text
29
31
  docs/
30
- project/ Current project docs and canonical documentation
31
- specs/ Product, technical, and implementation specifications
32
- plans/ Implementation plans and design plans
33
- reports/ Investigation, validation, and generated reports
34
- legacy/ Old documentation kept for reference
32
+ project/ Current governance, architecture, decisions, guides, operations, references, and status
33
+ specs/ Implemented current contracts only
34
+ plans/ Intended changes, acceptance, risks, and rollback
35
+ reports/ Investigation, validation, incidents, research, feedback, evidence, and artifacts
36
+ legacy/ Superseded material, completed packets, closed plans, and handoffs
35
37
  ```
36
38
 
37
- Do not create new root-level `plans/`, `reports/`, or `specs/` directories.
39
+ Do not create another top-level directory under `docs/`. Every concept requires profile frontmatter, migration-ledger ownership, generated-index coverage through `npm run docs:indexes:write`, and an explicit `docs/log.md` entry.
40
+
41
+ Write visible single-line `title`, `description`, and tag values. Do not use bidi controls, format characters, default-ignorable code points, U+2800 BRAILLE PATTERN BLANK, the blank fillers U+115F, U+1160, U+17B4, U+17B5, U+3164, or U+FFA0, or labels composed only of whitespace and combining marks. Normal visible Unicode and normalized accented text are valid.
42
+
43
+ The complete approved type vocabulary is:
44
+
45
+ - `project/`: `Documentation Profile`, `Architecture`, `Design System`, `Decision Record`, `Guide`, `Runbook`, `Reference`, `Status`.
46
+ - `specs/`: `Specification`.
47
+ - `plans/`: `Plan`, `Change Proposal`, `Technical Design`, `Product Requirement`, `Task Ledger`.
48
+ - `reports/`: `Evidence Report`, `Validation Report`, `Investigation Report`, `Incident Report`, `Coverage Report`, `Review Record`, `Release Record`, `Research`, `Feedback`, `Reference`, `Status`.
49
+ - `legacy/`: `Historical Record`.
38
50
 
39
- Use `docs/specs/` for durable specs. Use `docs/plans/` for implementation plans. Use `docs/reports/` for analyses, validations, and findings.
51
+ Use the compact templates in `docs/project/references/okf-concept-templates.md`. Requirement IDs need at least two semantic uppercase components before the numeric suffix, for example `PROD-CTX-001`, `WP02-DATA-STORE-001`, or `PIBO-ROUTING-REQ-001`. The `REQ` component is optional; a repository-global `REQ-001` is invalid.
52
+
53
+ Only a fence-aware ATX heading whose content starts exactly with the case-sensitive marker `Requirement:` is a formal body requirement. Put one raw, unformatted ASCII ID immediately after the marker, then separate its prose title with a colon or whitespace. Every frontmatter requirement ID needs exactly one explicit heading, and every valid explicit heading needs one frontmatter owner. Formatting, links, escapes, trailing punctuation, Unicode lookalikes, invisible or control characters, malformed IDs, and missing tokens are invalid in the ID position. Plain headings such as `RFC-9110 semantics`, `ISO-8601 timestamps`, `HTTP-404 responses`, dates, prose, and unmarked ID-looking text are ordinary headings.
54
+
55
+ Do not write raw `<!--` or `-->` anywhere outside fenced code in a current Specification, including inline-code or escaped examples. The validator rejects both delimiters and parses requirements from unchanged non-fenced source lines. Use visible prose or fenced examples instead. Use CommonMark fences: a backtick opener's info string cannot contain a backtick, and a closer must use the opener character with at least the opener length. An invalid opener does not protect example content from validation. LF, CRLF, and lone CR are equivalent line endings for scanning.
40
56
 
41
57
  ## Choose the right spec shape
42
58
 
43
- ### Capability spec
59
+ ### Current domain specification
44
60
 
45
- Use a capability spec for durable system behavior, especially behavior that should remain true after the current change ships.
61
+ Use one domain-scoped Specification for durable behavior implemented at the checked code baseline. Do not mix target behavior into a current specification.
46
62
 
47
63
  Good path:
48
64
 
49
65
  ```text
50
- docs/specs/capabilities/<capability-name>.md
66
+ docs/specs/<domain>/<spec-name>.md
51
67
  ```
52
68
 
53
- Use this for auth behavior, session routing, profile behavior, tool registration, gateway contracts, API behavior, UI behavior, or other long-lived contracts.
69
+ Choose a stable product or technical domain such as authentication, routing, tools, gateway, API, or UI. Do not create a broad `docs/specs/capabilities/` catch-all. Do not create new change packets under `docs/specs/changes/`; that existing tree is migration input whose implemented facts must fold into canonical domain specifications.
54
70
 
55
- ### Change spec
71
+ ### Change plan
56
72
 
57
- Use a change spec when proposing a feature, fix, or migration.
73
+ Use a Plan when proposing a feature, fix, or migration. Put supporting rationale in a Decision Record under `docs/project/decisions/` when it must outlive the plan.
58
74
 
59
75
  Good path:
60
76
 
61
77
  ```text
62
- docs/specs/changes/<change-name>/
63
- proposal.md
64
- spec.md
65
- design.md # include when technical choices matter
66
- tasks.md # include when ready to implement
78
+ docs/plans/<change-name>.md
67
79
  ```
68
80
 
69
- ### Phase spec
81
+ ### Phased plan
70
82
 
71
- Use a phase spec for multi-step work that needs a roadmap.
83
+ Use one Plan with phases for multi-step work that needs a roadmap.
72
84
 
73
85
  Good path:
74
86
 
75
87
  ```text
76
- docs/specs/phases/<NN-phase-name>/
77
- spec.md
78
- context.md # implementation decisions, references, existing-code notes
88
+ docs/plans/<change-name>.md
79
89
  ```
80
90
 
81
91
  ## Required structure for most Pibo specs
@@ -83,110 +93,54 @@ docs/specs/phases/<NN-phase-name>/
83
93
  Use this template unless the task clearly needs a smaller artifact.
84
94
 
85
95
  ```markdown
86
- # Spec: [Name]
87
-
88
- **Status:** Draft | Approved | Implementing | Done
89
- **Created:** YYYY-MM-DD
90
- **Requester / Source:** [user, issue, discussion, or change]
91
- **Related docs:** [links]
92
-
93
- ## Why
94
-
95
- [Problem, opportunity, or user need. One or two concrete paragraphs.]
96
-
97
- ## Goal
98
-
99
- [One precise sentence that says what changes from current state to target state.]
100
-
101
- ## Background / Current State
102
-
103
- [What exists today. What is broken, missing, confusing, slow, unsafe, or expensive.]
104
-
105
- ## Scope
106
-
107
- ### In Scope
108
-
109
- - [Concrete behavior or deliverable]
110
-
111
- ### Out of Scope
112
-
113
- - [Excluded item] — [reason]
114
-
115
- ## Requirements
116
-
117
- ### Requirement: [Name]
118
-
119
- The system MUST/SHALL [observable behavior].
120
-
121
- #### Current
122
-
123
- [Current behavior or absence of behavior.]
124
-
125
- #### Target
126
-
127
- [Desired behavior.]
128
-
129
- #### Acceptance
130
-
131
- [Concrete pass/fail check.]
132
-
133
- #### Scenario: [Name]
134
-
135
- - GIVEN [state]
136
- - WHEN [action/event]
137
- - THEN [expected outcome]
138
-
139
- ## Edge Cases
140
-
141
- - [Boundary, failure, permission, concurrency, or empty-state case]
142
-
143
- ## Constraints
144
-
145
- - **Compatibility:** ...
146
- - **Security / Privacy:** ...
147
- - **Performance:** ...
148
- - **Dependencies:** ...
149
-
150
- ## Success Criteria
151
-
152
- - [ ] SC-001: [Measurable or directly observable outcome]
153
- - [ ] SC-002: [Another pass/fail outcome]
154
-
155
- ## Assumptions and Open Questions
156
-
157
- ### Assumptions
158
-
159
- - [Reasonable default taken to keep progress moving]
160
-
161
- ### Open Questions
96
+ ---
97
+ type: "Specification"
98
+ title: "<name>"
99
+ description: "<one-sentence implemented contract.>"
100
+ tags: ["<subject>"]
101
+ status: "draft"
102
+ authority: "normative"
103
+ generated: { by: "<actor/version>", at: "<ISO-8601 datetime>" }
104
+ traceability:
105
+ commit: "<40-character checked commit>"
106
+ requirements:
107
+ - id: "PIBO-EXAMPLE-001"
108
+ status: "implemented"
109
+ sources: [{ path: "src/example.ts", symbol: "publicSurface" }]
110
+ tests: [{ path: "test/example.test.mjs", name: "proves the behavior" }]
111
+ public: ["<command, route, type, table, or plugin id>"]
112
+ failures: ["<failure or security behavior>"]
113
+ confidence: "high"
114
+ ---
162
115
 
163
- - [Question that materially affects scope, UX, security, or architecture]
116
+ # Scope
117
+ # Current behavior
118
+ # Requirements and invariants
119
+ ## Requirement: PIBO-EXAMPLE-001: <Implemented behavior>
120
+ # Interfaces and ownership
121
+ # Failure and security behavior
122
+ # Known limits
123
+ # Verification and traceability
124
+ # Related concepts
125
+ ```
164
126
 
165
- ## Traceability
127
+ Use `status: stable` only after source and test reconciliation. Add `verified` only after an actual check; authorship or a passing formatter is not verification.
166
128
 
167
- | Requirement | Scenario / Story | Plan / Task | Status |
168
- |---|---|---|---|
169
- | REQ-001 | [Scenario] | [Plan or task] | Pending |
170
- ```
129
+ Requirement `confidence` is exactly `high`, `medium`, or `low`. Do not invent numeric levels, extra labels, or synonyms.
171
130
 
172
131
  ## Minimal spec
173
132
 
174
- For small work, use the shortest form that remains testable:
133
+ For a small implemented contract, keep the required frontmatter and traceability above, then use the shortest body that remains verifiable:
175
134
 
176
135
  ```markdown
177
- # Spec: [Name]
178
-
179
- ## Why
180
- ## Goal
181
- ## Scope
182
- ### In Scope
183
- ### Out of Scope
184
- ## Requirements
185
- ## Acceptance Criteria
186
- ## Assumptions / Open Questions
136
+ # Scope
137
+ # Current behavior
138
+ ## Requirement: PIBO-EXAMPLE-001: <Implemented behavior>
139
+ # Failure behavior
140
+ # Verification
187
141
  ```
188
142
 
189
- Use the full template when the change touches multiple modules, changes public behavior, affects auth/security/data, or will be implemented across multiple sessions.
143
+ Use a Plan, not a Specification, when the behavior will be implemented later.
190
144
 
191
145
  ## Requirement rules
192
146
 
@@ -195,7 +149,7 @@ Write requirements as behavior contracts.
195
149
  Good:
196
150
 
197
151
  ```markdown
198
- ### Requirement: Dev gateway status is discoverable
152
+ ### Requirement: PIBO-GATEWAY-001: Dev gateway status is discoverable
199
153
 
200
154
  The CLI MUST show whether the dev gateway is running, its PID when known, and the command to inspect logs.
201
155
 
@@ -208,7 +162,7 @@ The CLI MUST show whether the dev gateway is running, its PID when known, and th
208
162
  Weak:
209
163
 
210
164
  ```markdown
211
- ### Requirement: Improve gateway status
165
+ ### Requirement: PIBO-GATEWAY-001: Improve gateway status
212
166
  Make gateway status better and more robust.
213
167
  ```
214
168
 
@@ -228,6 +182,16 @@ If visual or behavioral parity is required, add acceptance checks that compare t
228
182
 
229
183
  For user-facing UI, CLI, TUI, gateway, runtime, auth, or agent-routing specs, include at least one realistic validation scenario for the default user path when feasible. Fake data, demo mode, mocks, and render snapshots are useful, but they should not be the only acceptance evidence for behavior users will exercise directly unless the real path is unavailable or explicitly out of scope.
230
184
 
185
+ Record concrete verification evidence where it applies:
186
+
187
+ - source evidence: exact paths, symbols, commands, routes, types, tables, or other public surfaces inspected;
188
+ - test evidence: exact test paths, cases, and commands run;
189
+ - build evidence: the exact build or type-check command and result;
190
+ - browser evidence: the exercised user flow, relevant viewport, and console, network, or DOM checks;
191
+ - Pibo2 evidence: the worker, session, command, or runtime flow and its observable result.
192
+
193
+ Do not replace these facts with an undefined verification scale. Set requirement `confidence` to exactly one of `high`, `medium`, or `low`, and use it only for confidence in the traced claim, not as a substitute for evidence.
194
+
231
195
  ## Scenario rules
232
196
 
233
197
  Prefer GIVEN / WHEN / THEN for user-visible behavior and system contracts. Use WHEN / THEN only for simple event-response behavior.
@@ -239,57 +203,36 @@ Cover at least:
239
203
  - invalid input or permission failure
240
204
  - migration or compatibility path when relevant
241
205
 
242
- ## Proposal structure
206
+ ## Plan structure
243
207
 
244
- Use `proposal.md` to explain intent before deep design.
208
+ Use a `Plan` concept under `docs/plans/` to explain intent before implementation.
245
209
 
246
210
  ```markdown
247
- # Proposal: [Change]
248
-
249
- ## Why
250
-
251
- ## What Changes
252
-
253
- ## Capabilities
254
-
255
- ### New Capabilities
256
- - `<kebab-name>`: [brief behavior area]
257
-
258
- ### Modified Capabilities
259
- - `<existing-name>`: [changed behavior]
260
-
261
- ## Impact
262
-
263
- - **Code:** ...
264
- - **APIs / CLI:** ...
265
- - **Data:** ...
266
- - **Auth / Security:** ...
267
- - **Docs:** ...
211
+ # Context
212
+ # Goal
213
+ # Non-goals
214
+ # Work
215
+ # Acceptance
216
+ # Risks and rollback
217
+ # Completion and successors
268
218
  ```
269
219
 
270
220
  ## Design structure
271
221
 
272
- Use `design.md` when technical choices matter. Keep requirements in the spec; put implementation choices here.
222
+ Use a `Decision Record` under `docs/project/decisions/` when technical choices must outlive the plan. Use `type: "Decision Record"` and `authority: "supporting"`.
273
223
 
274
224
  ```markdown
275
- # Design: [Change]
276
-
277
- ## Context
278
- ## Goals / Non-Goals
279
- ## Decisions
280
- ### Decision: [Choice]
281
- - **Choice:** ...
282
- - **Rationale:** ...
283
- - **Alternatives considered:** ...
284
-
285
- ## Risks / Trade-offs
286
- ## Migration / Rollback
287
- ## Open Questions
225
+ # Context
226
+ # Decision
227
+ # Alternatives
228
+ # Consequences
229
+ # Rollback
230
+ # Evidence
288
231
  ```
289
232
 
290
233
  ## Tasks structure
291
234
 
292
- Use `tasks.md` only after the spec and design are stable enough to act on.
235
+ Keep executable tasks in the owning Plan only after the goal and acceptance conditions are stable enough to act on.
293
236
 
294
237
  ```markdown
295
238
  # Tasks: [Change]
@@ -312,15 +255,14 @@ Tasks should be small enough for one agent session. Include file paths and valid
312
255
 
313
256
  Before treating a spec as ready, check:
314
257
 
315
- - [ ] The `Why` names a real problem or opportunity.
316
- - [ ] The `Goal` is specific and measurable.
317
- - [ ] Scope has both in-scope and out-of-scope items.
258
+ - [ ] The file is a conformant OKF concept under `docs/specs/` and has one ledger owner.
259
+ - [ ] Every claim describes implemented behavior at `traceability.commit`.
318
260
  - [ ] Requirements use MUST or SHALL for mandatory behavior.
319
261
  - [ ] Each requirement has acceptance checks or scenarios.
320
262
  - [ ] Edge cases include failure and empty-state behavior where relevant.
321
- - [ ] Assumptions are visible.
322
- - [ ] Open questions are few and material.
323
- - [ ] Implementation details live in `design.md` or `tasks.md`, not in behavioral requirements.
263
+ - [ ] Every requirement names exact source paths, symbols or public surfaces, tests or an explicit source-inspected gap, failure behavior, and `confidence` set to `high`, `medium`, or `low`.
264
+ - [ ] Planned work and open product choices live in a Plan; durable rationale lives in a Decision Record.
265
+ - [ ] Generated indexes and the explicit `docs/log.md` entry link the concept.
324
266
  - [ ] The spec is concise, concrete, and free of promotional language.
325
267
 
326
268
  ## Writing style
@@ -10,6 +10,24 @@ license: MIT
10
10
 
11
11
  Design comprehensive, production-grade Product Requirements Documents (PRDs) that bridge the gap between business vision and technical execution. This skill works for modern software systems, ensuring that requirements are clearly defined.
12
12
 
13
+ ## Pibo documentation contract
14
+
15
+ When saving a PRD in this repository, read `docs/index.md` and `docs/project/documentation-profile.md`. A PRD describes intended work, so save it as a conformant `Plan` under `docs/plans/`, with `authority: "directive"`; never save planned behavior as a current Specification. Use the required profile fields, lowercase kebab-case, one migration-ledger record, generated indexes, and an explicit `docs/log.md` entry. Keep this runtime-loaded `SKILL.md` in its native frontmatter format.
16
+
17
+ Start a saved PRD with:
18
+
19
+ ```yaml
20
+ ---
21
+ type: "Plan"
22
+ title: "<title>"
23
+ description: "<one-sentence intended outcome.>"
24
+ tags: ["<subject>"]
25
+ status: "draft"
26
+ authority: "directive"
27
+ generated: { by: "<actor/version>", at: "<ISO-8601 datetime>" }
28
+ ---
29
+ ```
30
+
13
31
  ## When to Use
14
32
 
15
33
  Use this skill when: