showdar-skills 0.3.0 → 0.5.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.
- package/CHANGELOG.md +63 -0
- package/MIGRATION.md +48 -0
- package/README.md +214 -18
- package/bin/showdar.js +5 -6
- package/commands/opencode/showdar/skill.md +1 -1
- package/package.json +1 -1
- package/skills/showdar-bugfix/SKILL.md +115 -0
- package/skills/showdar-feature/SKILL.md +119 -0
- package/skills/showdar-incident/SKILL.md +119 -0
- package/skills/showdar-release/SKILL.md +117 -0
- package/src/adapter-renderers.js +88 -0
- package/src/adapters.js +61 -3
- package/src/catalog.js +45 -16
- package/src/project.js +335 -123
- package/src/validate.js +81 -22
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,69 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.5.0]
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Native per-harness adapter layer over the unchanged portable core
|
|
14
|
+
(15 primitives + 4 workflows, 19 total installable skills).
|
|
15
|
+
- Generated OpenCode slash commands
|
|
16
|
+
(`.opencode/commands/showdar/`): one direct command per installed skill
|
|
17
|
+
plus a generic `/showdar/skill` aggregator reflecting the installed set.
|
|
18
|
+
- Generated Claude Code slash commands
|
|
19
|
+
(`.claude/commands/showdar/`): one direct command per installed skill
|
|
20
|
+
plus a generic `/showdar/skill` aggregator reflecting the installed set.
|
|
21
|
+
- Claude Code `CLAUDE.md` managed-block integration from the canonical
|
|
22
|
+
instruction body.
|
|
23
|
+
- Cursor native `.cursor/rules/showdar.mdc` rule (Apply Intelligently,
|
|
24
|
+
`alwaysApply: false`, no globs) from the canonical instruction body.
|
|
25
|
+
- Canonical adapter renderers (`src/adapter-renderers.js`) for
|
|
26
|
+
instructions, direct commands, and the generic aggregator.
|
|
27
|
+
- Adapter lifecycle and ownership validation: doctor/status checks for
|
|
28
|
+
active instruction surfaces, generated commands, and aggregators;
|
|
29
|
+
stale Showdar-owned artifact cleanup on target switching.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- Installer manages harness-native command and instruction artifacts
|
|
34
|
+
alongside portable skills.
|
|
35
|
+
- Doctor/status validate active adapter artifacts; global installs do not
|
|
36
|
+
require instruction files and non-command hosts do not require commands.
|
|
37
|
+
- `--ai all` is a compatibility aggregate: all skill roots, OpenCode and
|
|
38
|
+
Claude commands, and only the canonical `AGENTS.md` instruction block
|
|
39
|
+
(no `CLAUDE.md` block, no Cursor rule).
|
|
40
|
+
|
|
41
|
+
## [0.4.0]
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- First-class workflow skill model: 15 primitives (`kind: primitive`) plus 4
|
|
46
|
+
workflows (`kind: workflow`) for 19 total installable skills.
|
|
47
|
+
- `showdar-feature`: adaptive end-to-end feature implementation over
|
|
48
|
+
understand, requirements, plan, design, build, test, and review stages.
|
|
49
|
+
- `showdar-bugfix`: adaptive defect resolution over understand, debug, build,
|
|
50
|
+
test, and review stages, including investigation-only mode.
|
|
51
|
+
- `showdar-release`: release readiness versus execution separation over
|
|
52
|
+
quality, security, ship, and authority-gated ops stages.
|
|
53
|
+
- `showdar-incident`: operational incident investigation and recovery over
|
|
54
|
+
understand, debug, recover, verification, and authority-gated ops stages.
|
|
55
|
+
- `showdar add feature|bugfix|release|incident` installs workflows through the
|
|
56
|
+
existing installer; short names normalize like primitives.
|
|
57
|
+
- Workflow composition and safety validation: stage references resolve to
|
|
58
|
+
known primitives, workflows never stage another workflow or themselves,
|
|
59
|
+
and workflow SKILL.md files stay lean by referencing primitives.
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
|
|
63
|
+
- Catalog distinguishes primitive and workflow skills; `getSkill` and
|
|
64
|
+
`normalizeSkillName` resolve all 19 installable skills.
|
|
65
|
+
- `showdar validate` reports primitive/workflow/total counts
|
|
66
|
+
(`15 primitives, 4 workflows, 19 total`).
|
|
67
|
+
- `showdar add` normalization supports workflow IDs and short names.
|
|
68
|
+
- OpenCode `skill.md` command lists all 19 skills with a whole-task versus
|
|
69
|
+
single-primitive selection guard.
|
|
70
|
+
- AGENTS.md managed routing block includes workflow routes when installed.
|
|
71
|
+
|
|
9
72
|
## [0.3.0]
|
|
10
73
|
|
|
11
74
|
### Added
|
package/MIGRATION.md
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
# Migrating to 0.5.0
|
|
2
|
+
|
|
3
|
+
0.5.0 adds a thin native adapter layer over the unchanged portable core.
|
|
4
|
+
Existing 0.4 `.showdar.json` v2 configs remain valid; no schema bump is
|
|
5
|
+
required (adapter metadata is additive and optional).
|
|
6
|
+
|
|
7
|
+
- Re-running `showdar init ...` may add native adapter artifacts for the
|
|
8
|
+
selected harness. Existing skill content remains unchanged when hashes
|
|
9
|
+
match.
|
|
10
|
+
- Claude: 0.5 adds the `CLAUDE.md` managed block plus native Showdar
|
|
11
|
+
command files under `.claude/commands/showdar/`.
|
|
12
|
+
- Cursor: 0.5 adds `.cursor/rules/showdar.mdc` (Apply Intelligently,
|
|
13
|
+
`alwaysApply: false`, no globs).
|
|
14
|
+
- OpenCode: existing command behavior is extended through the canonical
|
|
15
|
+
generated command lifecycle (one direct command per installed skill plus
|
|
16
|
+
`/showdar/skill`).
|
|
17
|
+
- `--ai all` is a defined compatibility aggregate: all skill roots,
|
|
18
|
+
OpenCode and Claude commands, and only the `AGENTS.md` block (no
|
|
19
|
+
`CLAUDE.md` block, no Cursor rule).
|
|
20
|
+
- Global scope installs skills and OpenCode/Claude commands where
|
|
21
|
+
applicable, with no managed global instruction files.
|
|
22
|
+
- Removal deletes only Showdar-owned adapter artifacts and managed blocks;
|
|
23
|
+
user content outside Showdar markers remains intact.
|
|
24
|
+
- Portable skill/workflow semantics and Phase 6G authority are unchanged.
|
|
25
|
+
|
|
26
|
+
# Migrating to 0.4.0
|
|
27
|
+
|
|
28
|
+
0.4.0 adds four optional workflow skills over the unchanged 15 primitives:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
showdar add feature
|
|
32
|
+
showdar add bugfix
|
|
33
|
+
showdar add release
|
|
34
|
+
showdar add incident
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- 0.3.0 `.showdar.json` v2 configs remain valid; no config-version migration
|
|
38
|
+
is required.
|
|
39
|
+
- All 15 primitive IDs remain unchanged.
|
|
40
|
+
- Profile behavior and composition are unchanged: `minimal` (8), `developer`
|
|
41
|
+
(12), `backend` (14), `qa` (9), `product` (6), `full` (15 primitives).
|
|
42
|
+
- Workflows are additive and optional; they complement rather than replace
|
|
43
|
+
primitives. Nothing is removed.
|
|
44
|
+
- No Phase 6G routing migration is required; the authority engine and the
|
|
45
|
+
15-capability primitive taxonomy are unchanged.
|
|
46
|
+
- Single primitive requests keep resolving to primitives; whole-task or
|
|
47
|
+
lifecycle requests may select a workflow.
|
|
48
|
+
|
|
1
49
|
# Migrating to 0.3.0
|
|
2
50
|
|
|
3
51
|
## Skill install roots
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/showdar-skills)
|
|
4
4
|
[](https://nodejs.org/)
|
|
5
5
|
[](./LICENSE)
|
|
6
|
-
[](#skill-catalog)
|
|
7
7
|
|
|
8
8
|
Production-grade software engineering skills for coding agents. Showdar covers
|
|
9
9
|
the full lifecycle—from requirements and planning through implementation, QA,
|
|
@@ -42,7 +42,7 @@ you want all capabilities available.
|
|
|
42
42
|
|
|
43
43
|
## Why Showdar?
|
|
44
44
|
|
|
45
|
-
- **15 focused skills** instead of one oversized agent prompt.
|
|
45
|
+
- **15 focused primitive skills** plus 4 adaptive workflow skills (19 installable) instead of one oversized agent prompt.
|
|
46
46
|
- **Lifecycle coverage** from product rules to implementation, verification,
|
|
47
47
|
security, operations, release readiness, and Git completion.
|
|
48
48
|
- **Intent-based discovery** that selects the workflow matching the request.
|
|
@@ -72,9 +72,12 @@ SKILL.md
|
|
|
72
72
|
only when needed
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
The 15 skills are not eagerly loaded as full prompts. Lightweight
|
|
76
|
-
help the agent choose one skill; that skill then loads its
|
|
77
|
-
knowledge progressively.
|
|
75
|
+
The 15 primitive skills are not eagerly loaded as full prompts. Lightweight
|
|
76
|
+
descriptions help the agent choose one skill; that skill then loads its
|
|
77
|
+
workflow and deeper knowledge progressively. Workflow skills add a portable
|
|
78
|
+
orchestration layer: a workflow selects the lifecycle stages a task actually
|
|
79
|
+
needs and composes primitives one at a time, without duplicating their
|
|
80
|
+
instructions.
|
|
78
81
|
|
|
79
82
|
## Supported agents
|
|
80
83
|
|
|
@@ -86,16 +89,97 @@ knowledge progressively.
|
|
|
86
89
|
| Cursor | `.cursor/skills/` | `~/.cursor/skills/` | Supported installation target |
|
|
87
90
|
| Claude Code | `.claude/skills/` | `~/.claude/skills/` | Supported installation target |
|
|
88
91
|
|
|
89
|
-
Universal uses `.agents/skills/`. Explicit harness targets use their native
|
|
90
|
-
skill directories. Codex and Universal intentionally share `.agents/skills/`.
|
|
91
|
-
OpenCode additionally receives native `/showdar/...` command files in
|
|
92
|
-
`.opencode/commands/showdar/` (project) and
|
|
93
|
-
`~/.config/opencode/commands/showdar/` (global).
|
|
94
|
-
|
|
95
92
|
"Supported installation target" means skills install to the harness-native
|
|
96
93
|
directory. It does not promise identical implicit invocation, cloud,
|
|
97
94
|
agent/subagent, or MCP behavior across harnesses.
|
|
98
95
|
|
|
96
|
+
## Adapter model
|
|
97
|
+
|
|
98
|
+
The portable core (15 primitives + 4 workflows) never changes per harness.
|
|
99
|
+
A thin native adapter layer renders harness-specific entry surfaces only:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
portable Showdar semantics
|
|
103
|
+
-> canonical renderers
|
|
104
|
+
-> harness adapter
|
|
105
|
+
-> native instruction/command surface
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Adapters do NOT change routing, grant authority, rewrite `SKILL.md`
|
|
109
|
+
semantics, or fork workflows per harness.
|
|
110
|
+
|
|
111
|
+
## Native instruction surfaces (project scope)
|
|
112
|
+
|
|
113
|
+
| Target | Instruction surface |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| `universal` | `AGENTS.md` managed block |
|
|
116
|
+
| `codex` | `AGENTS.md` managed block |
|
|
117
|
+
| `opencode` | `AGENTS.md` managed block |
|
|
118
|
+
| `claude` | `CLAUDE.md` managed block |
|
|
119
|
+
| `cursor` | `.cursor/rules/showdar.mdc` |
|
|
120
|
+
|
|
121
|
+
One native instruction surface per explicit target. The Cursor rule uses
|
|
122
|
+
Apply Intelligently metadata (`alwaysApply: false`, no globs) and carries
|
|
123
|
+
the same canonical semantic body as the `AGENTS.md`/`CLAUDE.md` blocks.
|
|
124
|
+
|
|
125
|
+
## Native command surfaces
|
|
126
|
+
|
|
127
|
+
| Target | Commands |
|
|
128
|
+
| --- | --- |
|
|
129
|
+
| `opencode` | Native `/showdar/<skill>` |
|
|
130
|
+
| `claude` | Native `/showdar/<skill>` |
|
|
131
|
+
| `codex` | None (skill invocation only) |
|
|
132
|
+
| `cursor` | None (rule discovery only) |
|
|
133
|
+
| `universal` | None (skill discovery only) |
|
|
134
|
+
|
|
135
|
+
`/showdar/skill` is generated for OpenCode/Claude as generic
|
|
136
|
+
installed-skill discovery. Commands are generated dynamically from the
|
|
137
|
+
installed skill set: `minimal` yields 8 direct commands plus the generic
|
|
138
|
+
entry; adding `feature` yields 9 plus generic. All 19 commands never exist
|
|
139
|
+
unless all 19 skills are installed.
|
|
140
|
+
|
|
141
|
+
## Native install examples
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
showdar init --ai opencode
|
|
145
|
+
showdar init --ai claude
|
|
146
|
+
showdar init --ai cursor
|
|
147
|
+
showdar add feature --ai claude
|
|
148
|
+
showdar add debug --ai opencode
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
OpenCode project install produces `.opencode/skills/...`,
|
|
152
|
+
`.opencode/commands/showdar/...`, and the `AGENTS.md` managed block.
|
|
153
|
+
Claude produces `.claude/skills/...`, `.claude/commands/showdar/...`, and
|
|
154
|
+
the `CLAUDE.md` managed block. Cursor produces `.cursor/skills/...` and
|
|
155
|
+
`.cursor/rules/showdar.mdc` with no generated commands.
|
|
156
|
+
|
|
157
|
+
## `--ai all` compatibility policy
|
|
158
|
+
|
|
159
|
+
`--ai all` is a compatibility aggregate. It installs all native skill
|
|
160
|
+
roots, generates OpenCode and Claude commands, and writes only the
|
|
161
|
+
canonical `AGENTS.md` instruction block. It does NOT generate the
|
|
162
|
+
`CLAUDE.md` Showdar block or the Cursor rule, avoiding duplicate Showdar
|
|
163
|
+
instruction ingestion across compatibility-aware hosts. For native-optimal
|
|
164
|
+
Claude/Cursor behavior use explicit `--ai claude` or `--ai cursor`.
|
|
165
|
+
|
|
166
|
+
## Global scope
|
|
167
|
+
|
|
168
|
+
Global installs provide skills everywhere and OpenCode/Claude commands
|
|
169
|
+
where applicable, with no managed global instruction files. This is
|
|
170
|
+
deliberate in 0.5.0:
|
|
171
|
+
|
|
172
|
+
| Global target | Contents |
|
|
173
|
+
| --- | --- |
|
|
174
|
+
| `universal` | skills only |
|
|
175
|
+
| `codex` | skills only |
|
|
176
|
+
| `opencode` | skills + commands |
|
|
177
|
+
| `claude` | skills + commands |
|
|
178
|
+
| `cursor` | skills only |
|
|
179
|
+
| `all` | all skill roots + OpenCode/Claude commands |
|
|
180
|
+
|
|
181
|
+
No global `AGENTS.md`, `CLAUDE.md`, or Cursor rule is managed.
|
|
182
|
+
|
|
99
183
|
## Project and global installation
|
|
100
184
|
|
|
101
185
|
Global CLI installation and global skill installation are separate decisions.
|
|
@@ -130,8 +214,10 @@ paths are refreshed or removed.
|
|
|
130
214
|
|
|
131
215
|
## Profiles
|
|
132
216
|
|
|
133
|
-
Role-specific profiles improve routing precision.
|
|
134
|
-
|
|
217
|
+
Role-specific profiles improve routing precision. Profiles install primitive
|
|
218
|
+
skill sets; workflow skills are opt-in through `showdar add <workflow>` and
|
|
219
|
+
are not silently included in any profile. `full` exposes every primitive
|
|
220
|
+
skill, but still does not eagerly load every skill body.
|
|
135
221
|
|
|
136
222
|
| Profile | Skills | Best for |
|
|
137
223
|
| --- | ---: | --- |
|
|
@@ -140,7 +226,7 @@ but still does not eagerly load every skill body.
|
|
|
140
226
|
| `backend` | 14 | APIs, services, and runtime operations |
|
|
141
227
|
| `qa` | 9 | Testing and quality workflows |
|
|
142
228
|
| `product` | 6 | Product, requirements, and design work |
|
|
143
|
-
| `full` | 15 | All capabilities |
|
|
229
|
+
| `full` | 15 | All primitive capabilities |
|
|
144
230
|
|
|
145
231
|
Legacy aliases remain compatible:
|
|
146
232
|
|
|
@@ -153,7 +239,8 @@ New manifests store the canonical `developer` profile.
|
|
|
153
239
|
|
|
154
240
|
## Skill catalog
|
|
155
241
|
|
|
156
|
-
All 15 entries are first-class Showdar skills.
|
|
242
|
+
All 15 primitive entries are first-class Showdar skills. Four workflow skills
|
|
243
|
+
compose them; see [Workflow skills](#workflow-skills).
|
|
157
244
|
|
|
158
245
|
### Analysis and planning
|
|
159
246
|
|
|
@@ -195,6 +282,109 @@ All 15 entries are first-class Showdar skills.
|
|
|
195
282
|
| `showdar-recover` | Interrupted or partial engineering work must be reconstructed from repository evidence before continuing. |
|
|
196
283
|
| `showdar-git` | Performing local Git inspection, staging, commits, branch integration, conflicts, cleanup, or explicitly requested remote Git actions. |
|
|
197
284
|
|
|
285
|
+
## Workflow skills
|
|
286
|
+
|
|
287
|
+
Four workflow skills orchestrate primitives adaptively; they are not fixed
|
|
288
|
+
pipelines and they grant no extra authority:
|
|
289
|
+
|
|
290
|
+
| Skill | Use when |
|
|
291
|
+
| --- | --- |
|
|
292
|
+
| `showdar-feature` | Implementing a complete feature end-to-end. |
|
|
293
|
+
| `showdar-bugfix` | Resolving an observed defect end-to-end. |
|
|
294
|
+
| `showdar-release` | Preparing, validating, or executing a release lifecycle. |
|
|
295
|
+
| `showdar-incident` | Investigating or recovering from an active operational incident. |
|
|
296
|
+
|
|
297
|
+
How a workflow runs:
|
|
298
|
+
|
|
299
|
+
```text
|
|
300
|
+
Workflow
|
|
301
|
+
-> selects needed lifecycle stages
|
|
302
|
+
-> invokes/composes primitive skills one at a time
|
|
303
|
+
-> primitives retain their own semantics
|
|
304
|
+
-> Phase 6G remains the authority source
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Properties:
|
|
308
|
+
|
|
309
|
+
- Adaptive, not fixed pipelines: stages marked `?` below are skipped when
|
|
310
|
+
evidence permits.
|
|
311
|
+
- Intended for whole-task and lifecycle requests.
|
|
312
|
+
- Focused primitive requests remain primitive.
|
|
313
|
+
- Workflow identity never grants mutation or deployment authority.
|
|
314
|
+
- Risk and severity never grant production authority.
|
|
315
|
+
- Workflows do not create a second router or authority engine.
|
|
316
|
+
|
|
317
|
+
### showdar-feature
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
showdar add feature
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Typical candidate flow:
|
|
324
|
+
|
|
325
|
+
```text
|
|
326
|
+
understand -> requirements? -> plan? -> design? -> build -> test -> review
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Skip requirements when behavior is already defined, plan for genuinely
|
|
330
|
+
focused work, and design when no architecture or UX decision exists.
|
|
331
|
+
Verification is never skipped to move faster. Ops is not implied.
|
|
332
|
+
|
|
333
|
+
### showdar-bugfix
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
showdar add bugfix
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Typical:
|
|
340
|
+
|
|
341
|
+
```text
|
|
342
|
+
understand -> debug? -> build -> test -> review
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
If the root cause is already proven, debug may be skipped. If the request is
|
|
346
|
+
diagnosis only, build is not implied and the workflow stops after
|
|
347
|
+
`showdar-debug`.
|
|
348
|
+
|
|
349
|
+
### showdar-release
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
showdar add release --scope global --ai claude
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Typical:
|
|
356
|
+
|
|
357
|
+
```text
|
|
358
|
+
quality -> security? -> ship -> ops only with explicit target + authorization
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Readiness must not imply deployment. `showdar-ship` stays delivery
|
|
362
|
+
verification; `showdar-ops` loads only with an explicit target plus execution
|
|
363
|
+
authorization.
|
|
364
|
+
|
|
365
|
+
### showdar-incident
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
showdar add incident
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Typical:
|
|
372
|
+
|
|
373
|
+
```text
|
|
374
|
+
understand -> debug -> recover -> verification -> ops only when explicitly authorized
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Diagnose before mutating when the cause is unknown. Severity must not imply
|
|
378
|
+
production mutation. The workflow never auto-deploys or restarts production
|
|
379
|
+
from risk alone.
|
|
380
|
+
|
|
381
|
+
Workflows compose primitives: they select only the stages the evidence
|
|
382
|
+
requires, skip defined or decision-free stages, load one primitive at a time,
|
|
383
|
+
and stop when evidence or authority is missing. Single primitive requests stay
|
|
384
|
+
primitive (`showdar-review`, `showdar-debug`, `showdar-test`). Phase 6G remains
|
|
385
|
+
the authority source; workflows consume it and never mint it. Workflows are
|
|
386
|
+
opt-in through `showdar add <workflow>`; profiles install primitive sets only.
|
|
387
|
+
|
|
198
388
|
## A typical software workflow
|
|
199
389
|
|
|
200
390
|
```text
|
|
@@ -255,17 +445,23 @@ OpenCode exposes native commands after initialization with `--ai opencode` or
|
|
|
255
445
|
|
|
256
446
|
## Adding a single skill
|
|
257
447
|
|
|
258
|
-
Install one
|
|
448
|
+
Install one skill without re-running a whole profile:
|
|
259
449
|
|
|
260
450
|
```bash
|
|
261
451
|
showdar add debug
|
|
262
452
|
showdar add showdar-security
|
|
263
453
|
showdar add test --ai cursor
|
|
264
454
|
showdar add review --scope global --ai claude
|
|
455
|
+
showdar add feature
|
|
456
|
+
showdar add bugfix --ai cursor
|
|
457
|
+
showdar add release --scope global --ai claude
|
|
458
|
+
showdar add incident
|
|
265
459
|
```
|
|
266
460
|
|
|
267
|
-
Accepted names are the short form (`debug`) or the canonical form
|
|
268
|
-
(`showdar-debug`). The release ships exactly 15 primitive
|
|
461
|
+
Accepted names are the short form (`debug`, `feature`) or the canonical form
|
|
462
|
+
(`showdar-debug`, `showdar-feature`). The release ships exactly 15 primitive
|
|
463
|
+
skills plus 4 workflow skills (19 installable total); profiles install
|
|
464
|
+
primitive sets only. There is no `showdar workflow ...` command. `showdar add`
|
|
269
465
|
is idempotent, preserves the configured profile, supports `--ai`/`--scope`
|
|
270
466
|
overrides, and refuses to overwrite a foreign same-name skill directory that
|
|
271
467
|
Showdar does not own.
|
package/bin/showdar.js
CHANGED
|
@@ -3,7 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { readFile } from 'node:fs/promises';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
|
-
import { AI_TARGETS, PROFILE_ALIASES, PROFILES, SKILLS, canonicalProfile, isDeprecatedProfile, resolveProfile } from '../src/catalog.js';
|
|
6
|
+
import { AI_TARGETS, PRIMITIVE_COUNT, PROFILE_ALIASES, PROFILES, SKILLS, TOTAL_COUNT, WORKFLOW_COUNT, canonicalProfile, isDeprecatedProfile, resolveProfile } from '../src/catalog.js';
|
|
7
7
|
import { addSkill, globalManifestPath, initGlobal, initProject, inspectGlobal, inspectProject, removeGlobal, removeProject } from '../src/project.js';
|
|
8
8
|
import { validateRepository } from '../src/validate.js';
|
|
9
9
|
|
|
@@ -32,7 +32,7 @@ function scopeAfter(args) {
|
|
|
32
32
|
function printHelp(version, command = null) {
|
|
33
33
|
const scopeUsage = '[--scope <project|global>]';
|
|
34
34
|
if (command === 'init') {
|
|
35
|
-
console.log(`Showdar Skills ${version}\n\nUsage:\n showdar init ${scopeUsage} [--profile <name>] [--ai <universal|codex|opencode|cursor|claude|all>]\n\nDefaults: scope project, profile full, AI target universal.\nProject scope writes native skills and project .showdar.json. Global scope writes verified user skill directories and ~/.showdar/global.json without
|
|
35
|
+
console.log(`Showdar Skills ${version}\n\nUsage:\n showdar init ${scopeUsage} [--profile <name>] [--ai <universal|codex|opencode|cursor|claude|all>]\n\nDefaults: scope project, profile full, AI target universal.\nProject scope writes native skills, one native instruction surface, and project .showdar.json. Global scope writes verified user skill directories and ~/.showdar/global.json without instruction files. Codex and universal use .agents/skills in project scope and ~/.agents/skills in global scope; cursor uses .cursor/skills in project scope and ~/.cursor/skills in global scope; --ai all writes each shared destination once, generates OpenCode and Claude commands, and writes only the AGENTS.md block.\n\nProfiles: ${Object.keys(PROFILES).join(', ')}\nDeprecated aliases: ${Object.entries(PROFILE_ALIASES).map(([alias, target]) => `${alias} -> ${target}`).join(', ')}\nAI targets: ${AI_TARGETS.join(', ')}`);
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
38
|
if (['status', 'doctor', 'remove'].includes(command)) {
|
|
@@ -69,7 +69,7 @@ async function main() {
|
|
|
69
69
|
|
|
70
70
|
if (command === 'validate') {
|
|
71
71
|
const result = await validateRepository(packageRoot);
|
|
72
|
-
if (result.ok) console.log(`Showdar validation OK (${
|
|
72
|
+
if (result.ok) console.log(`Showdar validation OK (${PRIMITIVE_COUNT} primitives, ${WORKFLOW_COUNT} workflows, ${TOTAL_COUNT} total).`);
|
|
73
73
|
else {
|
|
74
74
|
console.log(`Showdar validation FAILED (${result.errors.length} errors).`);
|
|
75
75
|
for (const error of result.errors) console.log(`- ${error}`);
|
|
@@ -86,10 +86,9 @@ async function main() {
|
|
|
86
86
|
const ai = valueAfter(args, '--ai', 'universal');
|
|
87
87
|
const skillIds = resolveProfile(requestedProfile);
|
|
88
88
|
if (isDeprecatedProfile(requestedProfile)) console.warn(`Warning: profile "${requestedProfile}" is deprecated; use "${profile}".`);
|
|
89
|
-
const commandNames = ai === 'opencode' || ai === 'all' ? COMMANDS : [];
|
|
90
89
|
const result = scope === 'global'
|
|
91
|
-
? await initGlobal({ homeRoot: homedir(), packageRoot, profile, ai, skillIds,
|
|
92
|
-
: await initProject({ projectRoot, packageRoot, profile, ai, skillIds,
|
|
90
|
+
? await initGlobal({ homeRoot: homedir(), packageRoot, profile, ai, skillIds, packageVersion: version })
|
|
91
|
+
: await initProject({ projectRoot, packageRoot, profile, ai, skillIds, packageVersion: version });
|
|
93
92
|
console.log(`Showdar Skills installed.\nScope: ${scope}\nProfile: ${profile}\nAI: ${ai}\nTargets: ${result.targets.join(', ')}\nSkills: ${result.skills}\nOpenCode commands: ${result.commands}`);
|
|
94
93
|
if (scope === 'project') {
|
|
95
94
|
console.log(`Requested: ${result.requestedSkills}\nInstalled in project: ${result.installedSkills}\nSatisfied by global: ${result.satisfiedByGlobal}\nSkipped duplicate copies: ${result.skippedDuplicates}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Invoke a specific Showdar flagship skill explicitly
|
|
3
3
|
---
|
|
4
|
-
Select exactly one requested Showdar skill and follow it: `showdar-understand`, `showdar-plan`, `showdar-design`, `showdar-build`, `showdar-debug`, `showdar-test`, `showdar-review`, `showdar-upgrade`, `showdar-ship`, `showdar-recover`, `showdar-git`, `showdar-requirements`, `showdar-quality`, `showdar-security`, or `showdar-
|
|
4
|
+
Select exactly one requested Showdar skill and follow it: `showdar-understand`, `showdar-plan`, `showdar-design`, `showdar-build`, `showdar-debug`, `showdar-test`, `showdar-review`, `showdar-upgrade`, `showdar-ship`, `showdar-recover`, `showdar-git`, `showdar-requirements`, `showdar-quality`, `showdar-security`, `showdar-ops`, `showdar-feature`, `showdar-bugfix`, `showdar-release`, or `showdar-incident`. Whole-task intent (complete feature, end-to-end fix, release lifecycle, active incident) selects a workflow; single primitive intent stays primitive. If the requested name is ambiguous, choose the smallest matching skill from this list and say which one was selected.
|
|
5
5
|
|
|
6
6
|
Request: $ARGUMENTS
|
package/package.json
CHANGED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: showdar-bugfix
|
|
3
|
+
description: Use when resolving an observed defect end-to-end, adaptively sequencing understand, debug, build, test, and review stages based on whether root cause is already proven.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Showdar Bugfix
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
- Resolve an observed defect safely from evidence to verified fix.
|
|
11
|
+
- Include diagnosis only when the root cause is actually unknown.
|
|
12
|
+
- Skip implementation when the user asked only for investigation.
|
|
13
|
+
- Hand work to one primitive at a time; load the next only when needed.
|
|
14
|
+
|
|
15
|
+
## When to use
|
|
16
|
+
|
|
17
|
+
- The user asks to resolve a defect end-to-end.
|
|
18
|
+
- A failure is observed: crash, regression, wrong behavior, build failure, performance fault.
|
|
19
|
+
- Examples: "fix the login crash", "resolve the checkout regression".
|
|
20
|
+
|
|
21
|
+
## When not to use
|
|
22
|
+
|
|
23
|
+
- Single primitive intent stays primitive: "why does this crash" is `showdar-debug` unless the user asks to fix it end-to-end.
|
|
24
|
+
- Investigation-only requests stay at `showdar-debug`; do not force `showdar-build`.
|
|
25
|
+
- Interrupted or broken work-state recovery is `showdar-recover`, not this workflow; use recover only for work-state semantics, not ordinary bugs.
|
|
26
|
+
- Once this workflow is active, do not spawn another parent workflow unless the request contains a genuinely separate workflow task.
|
|
27
|
+
- This workflow never recursively invokes itself.
|
|
28
|
+
|
|
29
|
+
## Inputs and assumptions
|
|
30
|
+
|
|
31
|
+
- Observed failure and reproduction path, when available.
|
|
32
|
+
- Current repository conventions and change surface are discoverable.
|
|
33
|
+
- Authority comes from the existing Phase 6G engine; this workflow consumes authority results and never mints authority.
|
|
34
|
+
- Candidate stages: `showdar-understand`, `showdar-debug`, `showdar-build`, `showdar-test`, `showdar-review`.
|
|
35
|
+
|
|
36
|
+
## Non-negotiable rules
|
|
37
|
+
|
|
38
|
+
- Symptom description alone is not mutation authority.
|
|
39
|
+
- Do not treat a symptom as permission to edit; require root-cause evidence or explicit fix authorization.
|
|
40
|
+
- Investigation-only requests do not proceed to `showdar-build`.
|
|
41
|
+
- End-to-end fixes always include verification; never skip it to move faster.
|
|
42
|
+
- Stop when required evidence is missing instead of guessing.
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
### Phase 1 — determine needed stages
|
|
47
|
+
|
|
48
|
+
- Root cause unknown: `showdar-understand`, then `showdar-debug`, then `showdar-build`, then `showdar-test`, then `showdar-review`.
|
|
49
|
+
- Root cause already proven: `showdar-understand`, then `showdar-build`, then `showdar-test`, then `showdar-review`.
|
|
50
|
+
- Investigation only: `showdar-debug` alone, then report findings without mutation.
|
|
51
|
+
|
|
52
|
+
### Phase 2 — execute progressively
|
|
53
|
+
|
|
54
|
+
- Load one primitive at a time; hand off only when its stop condition is met.
|
|
55
|
+
- Each primitive's own SKILL.md governs its stage; do not copy primitive instructions here.
|
|
56
|
+
- Track ephemeral state only: candidate stages, selected stages, active stage, completed evidence, next stage or complete.
|
|
57
|
+
- No persistent checkpoint or resume infrastructure in this version.
|
|
58
|
+
|
|
59
|
+
## Decision points
|
|
60
|
+
|
|
61
|
+
- Is the root cause proven with evidence? If yes, `showdar-debug` may be skipped.
|
|
62
|
+
- Did the user ask only for diagnosis? If yes, stop after `showdar-debug`.
|
|
63
|
+
- Is the failure actually interrupted work-state? If yes, hand off to `showdar-recover` instead.
|
|
64
|
+
- Auth, secrets, or exposure involved? Add `showdar-security` as an orthogonal specialist.
|
|
65
|
+
|
|
66
|
+
## Stack detection
|
|
67
|
+
|
|
68
|
+
- Defer to each selected primitive's own stack detection.
|
|
69
|
+
|
|
70
|
+
## Failure modes
|
|
71
|
+
|
|
72
|
+
- Editing from symptom description without root-cause evidence.
|
|
73
|
+
- Forcing implementation when only diagnosis was requested.
|
|
74
|
+
- Confusing ordinary bugs with work-state recovery.
|
|
75
|
+
- Loading all primitives eagerly instead of progressively.
|
|
76
|
+
|
|
77
|
+
## Stop conditions
|
|
78
|
+
|
|
79
|
+
- Stop when the request is actually a single primitive task and hand off to that primitive.
|
|
80
|
+
- Stop before destructive, irreversible, production, credential, publishing, or deployment actions unless explicitly authorized.
|
|
81
|
+
- Stop when required evidence is missing.
|
|
82
|
+
- Stop when the fix is verified and reviewed.
|
|
83
|
+
|
|
84
|
+
## Escalation conditions
|
|
85
|
+
|
|
86
|
+
- Ask for reproduction steps when the failure cannot be reproduced.
|
|
87
|
+
- Ask for explicit fix authority when evidence is thin.
|
|
88
|
+
- Escalate suspected security exposure with evidence, without exploit amplification.
|
|
89
|
+
|
|
90
|
+
## Verification
|
|
91
|
+
|
|
92
|
+
- Reproduce before and after where practical.
|
|
93
|
+
- End-to-end fixes include `showdar-test` evidence and `showdar-review` findings addressed.
|
|
94
|
+
- State what was executed and what remains unverified.
|
|
95
|
+
|
|
96
|
+
## Output contract
|
|
97
|
+
|
|
98
|
+
- Root-cause evidence and selected stages.
|
|
99
|
+
- Fix location and behavior change.
|
|
100
|
+
- Verification gaps or residual risk.
|
|
101
|
+
|
|
102
|
+
## Anti-patterns
|
|
103
|
+
|
|
104
|
+
- Symptom-to-patch without diagnosis.
|
|
105
|
+
- Mandatory debug stage even when the cause is proven.
|
|
106
|
+
- Mandatory build stage for investigation-only requests.
|
|
107
|
+
- Copying primitive SKILL.md content into this file.
|
|
108
|
+
|
|
109
|
+
## Example
|
|
110
|
+
|
|
111
|
+
**Checkout total regressed after discount change**
|
|
112
|
+
|
|
113
|
+
- Evidence: failure observed, root cause unknown.
|
|
114
|
+
- Selected: `showdar-understand`, then `showdar-debug` (isolated to discount ordering), then `showdar-build`, then `showdar-test`, then `showdar-review`.
|
|
115
|
+
- Investigation-only variant would stop after `showdar-debug` with findings and no mutation.
|