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 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
  [![npm version](https://img.shields.io/npm/v/showdar-skills?logo=npm)](https://www.npmjs.com/package/showdar-skills)
4
4
  [![Node >=20](https://img.shields.io/badge/node-%3E%3D20-339933?logo=node.js&logoColor=white)](https://nodejs.org/)
5
5
  [![MIT License](https://img.shields.io/badge/license-MIT-blue?logo=opensourceinitiative&logoColor=white)](./LICENSE)
6
- [![15 skills](https://img.shields.io/badge/skills-15-6f42c1)](#skill-catalog)
6
+ [![19 skills](https://img.shields.io/badge/skills-19-6f42c1)](#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 descriptions
76
- help the agent choose one skill; that skill then loads its workflow and deeper
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. `full` exposes every skill,
134
- but still does not eagerly load every skill body.
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 primitive skill without re-running a whole profile:
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 skills. `showdar add`
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 project 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.\n\nProfiles: ${Object.keys(PROFILES).join(', ')}\nDeprecated aliases: ${Object.entries(PROFILE_ALIASES).map(([alias, target]) => `${alias} -> ${target}`).join(', ')}\nAI targets: ${AI_TARGETS.join(', ')}`);
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 (${SKILLS.length} skills).`);
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, commandNames, packageVersion: version })
92
- : await initProject({ projectRoot, packageRoot, profile, ai, skillIds, commandNames, packageVersion: version });
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-ops`. If the requested name is ambiguous, choose the smallest matching skill from this list and say which one was selected.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "showdar-skills",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Production-grade software engineering lifecycle skills for coding agents.",
5
5
  "type": "module",
6
6
  "bin": { "showdar": "./bin/showdar.js" },
@@ -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.