skill-flow 1.0.2 → 1.0.3

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 (37) hide show
  1. package/README.md +24 -22
  2. package/README.zh.md +25 -24
  3. package/dist/cli.js +4 -4
  4. package/dist/cli.js.map +1 -1
  5. package/dist/services/doctor-service.js +1 -1
  6. package/dist/services/doctor-service.js.map +1 -1
  7. package/dist/services/skill-flow.js +1 -1
  8. package/dist/services/skill-flow.js.map +1 -1
  9. package/dist/services/source-service.js +4 -4
  10. package/dist/services/source-service.js.map +1 -1
  11. package/dist/tests/skill-flow.test.js +1427 -0
  12. package/dist/tests/skill-flow.test.js.map +1 -1
  13. package/dist/tui/config-app.js +1 -1
  14. package/dist/tui/config-app.js.map +1 -1
  15. package/dist/utils/format.js +1 -1
  16. package/dist/utils/format.js.map +1 -1
  17. package/package.json +10 -1
  18. package/.gstack/browse-network.log +0 -1
  19. package/.gstack/browse.json +0 -7
  20. package/.gstack/qa-reports/base-branch.txt +0 -1
  21. package/.gstack/qa-reports/qa-report-skill-flow-cli-2026-03-22.md +0 -159
  22. package/.gstack/qa-reports/qa-report-skill-manager-2026-03-22.md +0 -60
  23. package/docs/DESIGN.md +0 -407
  24. package/docs/PRD/PRD-1.0.0.md +0 -1862
  25. package/docs/PRD/renew/PRD-0.0.0.md +0 -26
  26. package/docs/PRD/renew/PRD-0.0.1.md +0 -408
  27. package/docs/PRD/renew/PRD-0.0.2.md +0 -705
  28. package/docs/PRD/renew/PRD-0.0.3.md +0 -740
  29. package/docs/PRD/renew/PRD-0.0.4.md +0 -1494
  30. package/docs/README.md +0 -242
  31. package/docs/plan/PLAN_v1.0.0.md +0 -663
  32. package/docs/plan/PLAN_v1.0.1.md +0 -845
  33. package/docs/refrences/README.md +0 -9
  34. package/docs/refrences/agent-skill-paths.md +0 -274
  35. package/docs/refrences/config-state-reconciliation.md +0 -199
  36. package/docs/refrences/naming-dedupe-warning-rules.md +0 -482
  37. package/img/img-1.jpg +0 -0
@@ -1,159 +0,0 @@
1
- # QA Report
2
-
3
- Date: 2026-03-22
4
- Target: `skill-flow` CLI v1.0.1
5
- Mode: full functional regression
6
- Base branch: `main`
7
- Baseline commit: `c21868e`
8
- Final status: `DONE_WITH_CONCERNS`
9
-
10
- ## Summary
11
-
12
- - Automated baseline passed: `npm run build`, `npm test` (`49 passed`)
13
- - Verified manually:
14
- - Git add with `--path`
15
- - `list`
16
- - `update --all`
17
- - `uninstall`
18
- - GitHub tree URL add
19
- - ClawHub add / update / uninstall
20
- - Blocking issue found:
21
- - `find` / `search` can hang for 15s+ on cold start because built-in catalog search waits on many remote Git repos
22
-
23
- ## Health Score
24
-
25
- - Baseline: 82
26
- - Final: 82
27
-
28
- Rationale:
29
- - Functional: mostly works
30
- - Performance: materially degraded for `find`
31
- - Reliability: build/tests clean, but discovery cold start is not ship-ready
32
-
33
- ## Tested Flows
34
-
35
- ### 1. Git add with path filtering
36
-
37
- Command pattern:
38
-
39
- ```bash
40
- node dist/cli.js add <local-repo> --path skills/find-skills
41
- node dist/cli.js list
42
- node dist/cli.js update --all
43
- node dist/cli.js uninstall repo
44
- ```
45
-
46
- Observed:
47
- - add succeeded
48
- - only one skill was registered
49
- - list/update/uninstall all behaved correctly
50
-
51
- ### 2. GitHub tree URL add
52
-
53
- Command:
54
-
55
- ```bash
56
- node dist/cli.js add https://github.com/vercel-labs/skills/tree/main/skills/find-skills
57
- ```
58
-
59
- Observed:
60
- - succeeded
61
- - installed as repo-level source `vercel-labs-skills`
62
- - leaf count was `1`
63
- - runtime was about `7.76s`
64
-
65
- ### 3. ClawHub lifecycle
66
-
67
- Command pattern:
68
-
69
- ```bash
70
- node dist/cli.js add clawhub:find-skills-skill
71
- node dist/cli.js update --all
72
- node dist/cli.js list
73
- node dist/cli.js uninstall clawhub-find-skills-skill
74
- ```
75
-
76
- Observed:
77
- - add/update/uninstall all succeeded
78
- - `list` reported the source as `PARTIAL` because of a metadata warning:
79
- - `name should match parent directory name 'find-skills-skill'`
80
-
81
- Assessment:
82
- - functional flow passes
83
- - warning is noisy but not a blocker
84
-
85
- ## Findings
86
-
87
- ### ISSUE-001
88
-
89
- - Severity: critical
90
- - Category: performance / functional
91
- - Title: `find` does not complete promptly on cold start
92
- - Status: deferred
93
-
94
- What happens:
95
- - `find` / `search` attempts to search the full built-in Git catalog set
96
- - on a fresh state root, many built-in repos are not cached
97
- - command can remain blocked for 15s+ even when a local result already exists
98
- - `--json` has the same issue
99
-
100
- Repro:
101
-
102
- ```bash
103
- export SKILL_FLOW_STATE_ROOT="$(mktemp -d)/state"
104
- node dist/cli.js add <local-repo> --path skills/find-skills
105
- perl -e 'alarm shift; exec @ARGV' 15 node dist/cli.js find find
106
- ```
107
-
108
- Observed output before timeout:
109
-
110
- ```text
111
- 1. find-skills local installed
112
- Find useful skills quickly.
113
- repo · skills/find-skills
114
- next: already installed
115
-
116
- 2. Using Skills builtin-git
117
- ...
118
- warning: Unable to refresh built-in source 'https://github.com/anthropics/skills.git': Error: Built-in source 'https://github.com/anthropics/skills.git' timed out.
119
- ...
120
- time: command terminated abnormally
121
- real 15.02
122
- ```
123
-
124
- Impact:
125
- - makes `find` feel hung
126
- - especially bad on first use or slow network
127
- - blocks the main new v1.0.1 discovery path
128
-
129
- Recommendation:
130
- - redesign built-in catalog search so it does not depend on cloning every remote repo during request time
131
- - acceptable solutions include a prebuilt index, explicit catalog sync step, or a lightweight remote metadata search path
132
-
133
- ### ISSUE-002
134
-
135
- - Severity: medium
136
- - Category: UX
137
- - Title: ClawHub install shows as `PARTIAL` immediately after successful add
138
- - Status: deferred
139
-
140
- Observed:
141
-
142
- ```text
143
- find-skills-skill PARTIAL 1 skills 0 targets, 1 warnings
144
- warning: .: name should match parent directory name 'find-skills-skill'
145
- ```
146
-
147
- Impact:
148
- - user sees warning/partial state on a successful install
149
- - creates uncertainty about whether the source is healthy
150
-
151
- ## Ship Readiness
152
-
153
- - `add`, `update`, and `uninstall` are in good shape
154
- - `find/search` is functionally correct in some cases but not performance-safe enough for cold-start use
155
- - v1.0.1 is not fully ship-ready if discovery is considered a headline feature
156
-
157
- ## PR Summary
158
-
159
- QA found 2 issues, fixed 0, health score 82 -> 82.
@@ -1,60 +0,0 @@
1
- # QA Report: skill-flow
2
-
3
- Date: 2026-03-22
4
- Mode: full CLI QA
5
- Scope: build, unit tests, empty-state CLI flows, add/apply/update/uninstall end-to-end flow, interactive config smoke check
6
-
7
- ## Coverage
8
-
9
- - `npm test`
10
- - `npm run build`
11
- - `node dist/cli.js --help`
12
- - Empty state:
13
- - `list`
14
- - `doctor`
15
- - `config`
16
- - `uninstall missing`
17
- - End-to-end fixture workflow:
18
- - `add <git-source>`
19
- - `list`
20
- - `doctor`
21
- - `applyDraft(...)` through app service with real state root + target roots
22
- - `update --all` after upstream repo change
23
- - `uninstall <sourceId>`
24
-
25
- ## Findings
26
-
27
- ### ISSUE-001
28
-
29
- - Severity: medium
30
- - Title: `uninstall` reported success for unknown workflow groups
31
- - Repro:
32
- 1. Start with a fresh state root.
33
- 2. Run `node dist/cli.js uninstall missing`.
34
- - Expected:
35
- - Command should fail and say the workflow group is not registered.
36
- - Actual:
37
- - Command printed `Removed: missing` and exited `0`.
38
- - Fix status: verified
39
-
40
- ## Fix
41
-
42
- - Updated source removal to reject unknown workflow groups with `SOURCE_NOT_FOUND`.
43
- - Added regression test coverage for uninstalling an unknown workflow group.
44
-
45
- ## Verification
46
-
47
- - `npm test` -> 33 passed
48
- - `npm run build` -> passed
49
- - `node dist/cli.js uninstall missing` -> prints `Workflow group 'missing' is not registered.` and exits `1`
50
- - End-to-end fixture flow still passes:
51
- - add source
52
- - apply targets
53
- - doctor healthy
54
- - update after source change
55
- - uninstall existing source
56
- - list returns empty state
57
-
58
- ## Summary
59
-
60
- QA found 1 issue, fixed 1, deferred 0.
package/docs/DESIGN.md DELETED
@@ -1,407 +0,0 @@
1
- # DESIGN.md
2
-
3
- Design system source of truth for `skill-flow`.
4
-
5
- Last updated: 2026-03-21
6
- Product mode: terminal-first
7
- Primary product metaphor: Workflow Control Tower
8
-
9
- ## 1. Product Feeling
10
-
11
- `skill-flow` should feel like a calm, high-signal operator console.
12
-
13
- Not:
14
- - a generic package manager
15
- - a filesystem browser with extra buttons
16
- - a web dashboard trapped inside a terminal
17
- - a "developer tool" that assumes users enjoy reading paths and raw state
18
-
19
- Yes:
20
- - dense, deliberate, and structured
21
- - grouped around workflows, not loose files
22
- - built for repeat use, not one-time setup
23
- - clear under stress: drift, invalid skills, broken projections, unavailable channels
24
-
25
- The emotional promise is:
26
-
27
- > "I can see what belongs together, what is active, what changed, and what needs attention."
28
-
29
- ## 2. Core Design Principles
30
-
31
- 1. Workflow first. The top-level object is the grouped workflow, not the individual skill leaf.
32
- 2. Action follows understanding. Users should understand a group before they project it.
33
- 3. Paths are metadata. Raw source locators and target directories are secondary detail.
34
- 4. Partial state is normal. Mixed validity and mixed agent availability are first-class states.
35
- 5. Text over decoration. Hierarchy comes from structure, spacing, labels, and state words before color or ornament.
36
- 6. Recovery is part of the UI. `doctor`, conflict repair, and broken-target guidance are core experiences.
37
- 7. Dense is acceptable; clutter is not. The tool may be information-rich, but every visible line must earn its place.
38
-
39
- ## 3. Product Vocabulary
40
-
41
- Use these terms consistently in UI copy, docs, and future code comments:
42
-
43
- - `Workflow Group`
44
- The primary user-facing top-level unit.
45
- - `Source`
46
- Secondary metadata describing where a workflow group came from.
47
- - `Contained Skills`
48
- The leaf skills inside a workflow group.
49
- - `Projects To`
50
- The agent targets a workflow group is applied to.
51
- - `Apply Preview`
52
- The review step before writing changes.
53
- - `Health`
54
- The current operational state of a workflow group or projection target.
55
- - `Drift`
56
- Manifest/lock/on-disk mismatch or stale projection state.
57
-
58
- Avoid these as primary labels:
59
- - `Repo`
60
- - `Inventory`
61
- - `Deployment Unit`
62
- - `Managed Artifact`
63
- - `Channel Binding`
64
-
65
- These are valid implementation concepts, not user-facing concepts.
66
-
67
- ## 4. Information Architecture
68
-
69
- The default interaction model is three-layer:
70
-
71
- 1. Workflow Group
72
- 2. Contained Skills
73
- 3. Agent Projection
74
-
75
- ### Default wide layout
76
-
77
- ```text
78
- +------------------------+--------------------------+----------------------+
79
- | WORKFLOW GROUPS | GROUP DETAIL | AGENT PROJECTION |
80
- | | | |
81
- | frontend-workflow | Purpose | Claude Code |
82
- | agent-ops | Contained Skills | Codex (.agents) |
83
- | pdf-toolchain | Health / Warnings | OpenCode |
84
- | | Update State | OpenClaw |
85
- +------------------------+--------------------------+----------------------+
86
- ```
87
-
88
- ### Hierarchy by pane
89
-
90
- Left pane:
91
- - What groups exist
92
- - Which ones are active
93
- - Which ones need attention now
94
-
95
- Middle pane:
96
- - What this group is
97
- - What skills it contains
98
- - What is wrong with it, if anything
99
-
100
- Right pane:
101
- - Where it projects
102
- - What will change
103
- - What is blocked
104
-
105
- ## 5. Layout Rules
106
-
107
- ### Wide terminal
108
- - Three panes
109
- - Left pane is persistent navigation
110
- - Middle and right panes are context panels
111
-
112
- ### Medium terminal
113
- - Left pane remains persistent
114
- - Middle/right become a visible toggle
115
- - Current mode must be obvious: `DETAIL` or `PROJECTION`
116
-
117
- ### Narrow terminal
118
- - Explicit step flow, not compressed columns
119
- - Suggested order:
120
- 1. Select Workflow Group
121
- 2. Select Contained Skills
122
- 3. Select Agent Projection
123
- 4. Review Apply Preview
124
-
125
- Never collapse three panes into unreadable tiny columns.
126
-
127
- ## 6. Typography
128
-
129
- Terminal-first typography only.
130
-
131
- ### Primary choice
132
- - Use the terminal's monospaced font or terminal-native system mono.
133
-
134
- ### Text roles
135
- - Heading
136
- Strong uppercase or strongly weighted sentence case
137
- - Primary label
138
- Workflow group name, selected channel name, step title
139
- - Secondary metadata
140
- Source locator, counts, path detail
141
- - State label
142
- `HEALTHY`, `UPDATE AVAILABLE`, `PARTIAL`, `BLOCKED`
143
- - Hint text
144
- Keyboard shortcuts, low-priority guidance
145
-
146
- ### Typography rules
147
- - Prefer weight, indentation, and spacing over ASCII noise
148
- - Do not overuse box drawing if it reduces scan speed
149
- - Do not style every line equally
150
-
151
- ## 7. Spacing System
152
-
153
- Use a tight terminal rhythm:
154
-
155
- - `1x`
156
- Between tightly related text lines
157
- - `2x`
158
- Between row groups or adjacent state blocks
159
- - `4x`
160
- Between panes, sections, or screen-level blocks
161
-
162
- Rules:
163
- - Rows need breathing room, but not web-app whitespace
164
- - Warning blocks get extra separation
165
- - Empty states should feel intentionally framed, not collapsed into surrounding UI
166
-
167
- ## 8. Color and Status Language
168
-
169
- Color is optional support, never the primary carrier of meaning.
170
-
171
- ### Required rule
172
- Every state must be understandable in monochrome.
173
-
174
- ### Primary status words
175
- - `HEALTHY`
176
- - `ACTIVE`
177
- - `INACTIVE`
178
- - `PARTIAL`
179
- - `BLOCKED`
180
- - `INVALID`
181
- - `UPDATE AVAILABLE`
182
- - `UP TO DATE`
183
- - `DRIFT DETECTED`
184
-
185
- ### If color is available
186
- - Healthy: restrained green accent
187
- - Warning / partial: amber accent
188
- - Error / blocked: red accent
189
- - Informational / metadata: dim gray
190
-
191
- Never encode selection, warning, or error using color alone.
192
-
193
- ## 9. Visual Style
194
-
195
- The right aesthetic is "operator control plane," not "AI startup dashboard."
196
-
197
- ### Use
198
- - strong row hierarchy
199
- - restrained symbols
200
- - quiet separators
201
- - status-first language
202
- - purposeful density
203
-
204
- ### Avoid
205
- - card grids
206
- - oversized headers
207
- - generic hero framing
208
- - decorative icon clutter
209
- - dashboard widgets with equal visual weight
210
- - faux-terminal gimmicks inside an actual terminal
211
-
212
- ## 10. Interaction Model
213
-
214
- The interaction model should always follow:
215
-
216
- ```text
217
- Select group -> inspect contained skills -> inspect targets -> preview changes -> apply
218
- ```
219
-
220
- ### Important interaction rules
221
- - No hidden auto-apply on first selection
222
- - Preview is mandatory before mutations
223
- - Broken state should expose a recovery action in-place
224
- - The user should always know:
225
- - what object is selected
226
- - what step they are in
227
- - what pressing Enter will do
228
-
229
- ## 11. Selection Model
230
-
231
- Tree selection is one of the product's core design surfaces.
232
-
233
- ### Rules
234
- - Parent rows show `empty / partial / full` state clearly
235
- - Child rows are individually selectable
236
- - Expanding a group should not destroy selection state
237
- - Re-opening config should restore previous selection state
238
-
239
- ### Recommended state symbols
240
- - `[ ]` unselected
241
- - `[-]` partially selected
242
- - `[x]` fully selected
243
-
244
- Keep this boring and obvious. This is not a place for design novelty.
245
-
246
- ## 12. Screen-by-Screen Requirements
247
-
248
- ### 12.1 Empty product state
249
-
250
- When the user has no workflow groups yet:
251
- - explain what a workflow group is
252
- - prompt one clear next action: add a source
253
- - reassure the user what will happen next
254
-
255
- Bad:
256
- - `No items`
257
-
258
- Good:
259
- - `No workflow groups yet`
260
- - `Add a Git source to discover a grouped set of related skills.`
261
- - Primary action: `Add Source`
262
-
263
- ### 12.2 Workflow group list
264
-
265
- Each row should show:
266
- - workflow group name
267
- - active target count
268
- - leaf count
269
- - current health
270
- - update badge if relevant
271
-
272
- Do not show full source locator in the row body by default.
273
-
274
- ### 12.3 Group detail pane
275
-
276
- Must answer:
277
- - What is this workflow group for?
278
- - Which skills are inside it?
279
- - Are any leaf skills invalid or skipped?
280
- - What changed recently?
281
-
282
- ### 12.4 Projection pane
283
-
284
- Must answer:
285
- - Which targets are available?
286
- - Which targets are active?
287
- - Which targets are blocked?
288
- - What strategy will be used?
289
-
290
- ### 12.5 Apply preview
291
-
292
- Must show:
293
- - create / update / remove / noop counts
294
- - warnings
295
- - blocked actions
296
- - exact group currently being applied
297
-
298
- The preview should feel like a confirmation checkpoint, not a scary diff wall.
299
-
300
- ### 12.6 Doctor / repair
301
-
302
- `doctor` is not just a diagnostics dump. It is a guided repair surface.
303
-
304
- Must answer:
305
- - what is wrong
306
- - why it matters
307
- - what can be repaired now
308
- - what the user needs to do manually
309
-
310
- ## 13. State Coverage
311
-
312
- Every major flow must define visible behavior for:
313
- - loading
314
- - empty
315
- - error
316
- - success
317
- - partial
318
-
319
- ### Product-specific reminder
320
- Partial state is common here:
321
- - some leafs valid, some invalid
322
- - some targets available, some blocked
323
- - some projections healthy, some drifted
324
-
325
- Design for this explicitly.
326
-
327
- ## 14. Accessibility
328
-
329
- Even in terminal-first UI, accessibility is mandatory.
330
-
331
- ### Requirements
332
- - Full keyboard operation
333
- - Clear focus indication
334
- - Selection state not color-only
335
- - Errors and warnings labeled with explicit text
336
- - Stable reading order in each screen
337
- - Shortcuts visible in-context, not hidden in docs only
338
-
339
- ### Copy requirement
340
- System messages should explain the problem in human language first, implementation detail second.
341
-
342
- Bad:
343
- - `Lock state mismatch`
344
-
345
- Better:
346
- - `This workflow group's saved state no longer matches what's on disk.`
347
-
348
- ## 15. Motion
349
-
350
- Motion is not part of terminal-first MVP.
351
-
352
- Do not simulate motion for style.
353
- If a transition exists, it should clarify progression, not decorate it.
354
-
355
- ## 16. Copy Style
356
-
357
- Tone:
358
- - precise
359
- - calm
360
- - operational
361
- - not cute
362
- - not robotic
363
-
364
- Prefer:
365
- - `Projects To`
366
- - `Update Available`
367
- - `No supported agents detected`
368
- - `Some contained skills were skipped because their SKILL.md is invalid`
369
-
370
- Avoid:
371
- - vague system-speak
372
- - overfriendly empty platitudes
373
- - unexplained abbreviations
374
-
375
- ## 17. Default Decisions For MVP
376
-
377
- These are the default design decisions unless explicitly revised:
378
-
379
- 1. Top-level UI label is `Workflow Group`.
380
- 2. `Source` appears only as secondary metadata.
381
- 3. First release is Git-only in the visible product experience.
382
- 4. `Codex (.agents/skills)` is a single surfaced target.
383
- 5. `Apply to all agents` only appears in review/preview flow, not as the first default affordance.
384
- 6. Raw paths are hidden by default.
385
- 7. `doctor` exists both as a command and as an inline recovery affordance from broken rows.
386
- 8. Three-pane layout is the ideal view; medium and narrow terminals degrade intentionally, not automatically.
387
-
388
- ## 18. Implementation Guidance
389
-
390
- When code is eventually written, the design system should influence:
391
- - terminal copy
392
- - pane hierarchy
393
- - state labels
394
- - keyboard shortcut visibility
395
- - warning and repair presentation
396
-
397
- This file should be treated as the visual and interaction source of truth for MVP terminal UX.
398
-
399
- ## 19. Future Expansion
400
-
401
- If the product grows beyond terminal-first MVP, revisit this file and extend:
402
- - richer brand system
403
- - web or desktop surfaces
404
- - illustration or motion language
405
- - broader source discovery UX
406
-
407
- For now, restraint is the right design decision.