Skip to content

Commit c650549

Browse files
authored
chore(skills): improve catalog quality and validation (#81)
* chore(skills): improve catalog quality and validation * chore(skills): address PR review findings * fix: address PR 81 review cycle 2 findings
1 parent 0e6264c commit c650549

28 files changed

Lines changed: 798 additions & 209 deletions

File tree

README.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,9 @@ npx skills add https://github.com/luongnv89/skills --skill <name>
152152

153153
| Skill | Version | Effort | What it does |
154154
|---|---|---|---|
155-
| [**code-review**](skills/code-review/) | 2.0.1 | high | Review or improve code — 4 modes: bugs/security, performance, clean-code audit, slop cleanup |
155+
| [**code-review**](skills/code-review/) | 2.1.0 | high | Review or improve code — 4 modes: bugs/security, performance, clean-code audit, slop cleanup |
156156
| [**test-coverage**](skills/test-coverage/) | 1.3.0 | low | Target untested branches and edge cases |
157-
| [**dont-make-me-think**](skills/dont-make-me-think/) | 1.3.0 | medium | Usability review using Krug's principles |
157+
| [**dont-make-me-think**](skills/dont-make-me-think/) | 1.3.2 | medium | Usability review using Krug's principles |
158158

159159
**`code-review` has four modes** — pick by intent or pass `mode:<name>`:
160160

@@ -174,7 +174,7 @@ Adjacent skills: **test-coverage** (generate tests for untested branches) · **d
174174
| [**auto-push**](skills/auto-push/) | 1.0.3 | low | Commit message + stage + push with secret and size checks |
175175
| [**devops-pipeline**](skills/devops-pipeline/) | 2.0.3 | medium | Pre-commit + GitHub Actions quality gates |
176176
| [**security-setup**](skills/security-setup/) | 1.4.0 | high | Local pre-commit secret scans, dep checks, static analysis, gated CI |
177-
| [**fork-upstream-sync**](skills/fork-upstream-sync/) | 1.0.3 | medium | Sync a fork with upstream while keeping feature branches and open PRs mergeable |
177+
| [**fork-upstream-sync**](skills/fork-upstream-sync/) | 1.3.2 | medium | Sync a fork with upstream while keeping feature branches and open PRs mergeable |
178178
| [**release-manager**](skills/release-manager/) | 2.6.0 | max | Bump, changelog, tag, GitHub release, publish |
179179

180180
### Product Planning
@@ -186,27 +186,27 @@ Adjacent skills: **test-coverage** (generate tests for untested branches) · **d
186186
| [**brand-name-checker**](skills/brand-name-checker/) | 1.3.2 | max | Trademark, domain, social, registry conflicts |
187187
| [**prd-generator**](skills/prd-generator/) | 1.3.2 | max | Structured PRD from idea or validate notes |
188188
| [**tad-generator**](skills/tad-generator/) | 1.4.0 | max | Technical architecture document from PRD |
189-
| [**tasks-generator**](skills/tasks-generator/) | 1.3.0 | max | Sprint tasks and plan from PRD |
189+
| [**tasks-generator**](skills/tasks-generator/) | 1.3.1 | max | Sprint tasks and plan from PRD |
190190

191191
### Frontend & Design
192192

193193
| Skill | Version | Effort | What it does |
194194
|---|---|---|---|
195-
| [**frontend-design**](skills/frontend-design/) | 1.2.3 | high | Production UIs with usability-first approach |
196-
| [**logo-designer**](skills/logo-designer/) | 1.2.2 | medium | 7 SVG logo variants from project context |
197-
| [**diagram-generator**](skills/diagram-generator/) | 1.0.0 | high | One entry point for diagrams — routes to draw.io XML or Excalidraw JSON |
198-
| [**website-cloner**](skills/website-cloner/) | 1.1.6 | high | 6-phase URL to improved Vite/React/Tailwind site |
195+
| [**frontend-design**](skills/frontend-design/) | 1.2.4 | high | Production UIs with usability-first approach |
196+
| [**logo-designer**](skills/logo-designer/) | 1.2.3 | medium | 7 SVG logo variants from project context |
197+
| [**diagram-generator**](skills/diagram-generator/) | 1.1.2 | high | One entry point for diagrams — routes to draw.io XML or Excalidraw JSON |
198+
| [**website-cloner**](skills/website-cloner/) | 1.2.1 | high | 6-phase URL to improved Vite/React/Tailwind site |
199199

200200
**Website cloner phases** (install individually or as suite):
201201

202202
| Phase | Version | What it does |
203203
|---|---|---|
204-
| website-analyzer | 1.0.2 | 6-dimension analysis → JSON |
205-
| website-clone-report | 1.0.2 | Stakeholder report from analysis |
206-
| website-improvement-prd | 1.1.1 | Improvement PRD |
207-
| website-implementation-plan | 1.1.0 | tasks.md from PRD |
208-
| website-builder | 1.0.2 | Build improved site |
209-
| website-clone-final-report | 1.0.1 | Before/after summary |
204+
| website-analyzer | 1.3.0 | 6-dimension analysis → JSON |
205+
| website-clone-report | 1.2.2 | Stakeholder report from analysis |
206+
| website-improvement-prd | 1.3.0 | Improvement PRD |
207+
| website-implementation-plan | 1.3.2 | tasks.md from PRD |
208+
| website-builder | 1.3.1 | Build improved site |
209+
| website-clone-final-report | 1.3.0 | Before/after summary |
210210

211211
**Diagram generator engines** (install the umbrella or a single engine):
212212

@@ -219,9 +219,9 @@ Adjacent skills: **test-coverage** (generate tests for untested branches) · **d
219219

220220
| Skill | Version | Effort | What it does |
221221
|---|---|---|---|
222-
| [**doc-manager**](skills/doc-manager/) | 2.0.1 | medium | Generate/update docs to match code, cited to path:line, never invented |
223-
| [**landing-page-generator**](skills/landing-page-generator/) | 1.2.0 | high | Landing pages: marketing copy from a brief, or a README-to-landing rewrite |
224-
| [**seo-ai-optimizer**](skills/seo-ai-optimizer/) | 1.2.1 | high | Technical SEO + AI-bot directives |
222+
| [**doc-manager**](skills/doc-manager/) | 2.0.2 | medium | Generate/update docs to match code, cited to path:line, never invented |
223+
| [**landing-page-generator**](skills/landing-page-generator/) | 1.2.1 | high | Landing pages: marketing copy from a brief, or a README-to-landing rewrite |
224+
| [**seo-ai-optimizer**](skills/seo-ai-optimizer/) | 1.2.3 | high | Technical SEO + AI-bot directives |
225225
| [**oss-ready**](skills/oss-ready/) | 1.2.1 | low | Add OSS files and templates |
226226
| [**agent-config**](skills/agent-config/) | 1.3.1 | medium | CLAUDE.md + AGENTS.md per best practices |
227227
| [**subagent-creator**](skills/subagent-creator/) | 1.1.2 | high | Create, evaluate, improve Claude Code subagent files (.claude/agents/*.md) |
@@ -231,18 +231,18 @@ Adjacent skills: **test-coverage** (generate tests for untested branches) · **d
231231
| Skill | Version | Effort | What it does |
232232
|---|---|---|---|
233233
| [**aso-marketing**](skills/aso-marketing/) | 1.2.1 | max | App Store + Google Play keyword and metadata optimization |
234-
| [**appstore-review-checker**](skills/appstore-review-checker/) | 1.2.0 | high | Pre-submission audit vs Apple guidelines |
234+
| [**appstore-review-checker**](skills/appstore-review-checker/) | 1.2.1 | high | Pre-submission audit vs Apple guidelines |
235235

236236
### Tooling
237237

238238
| Skill | Version | Effort | What it does |
239239
|---|---|---|---|
240-
| [**cli-builder**](skills/cli-builder/) | 1.0.4 | high | 5-step CLI tool builder with approval gates |
241-
| [**ollama-optimizer**](skills/ollama-optimizer/) | 1.1.0 | medium | Hardware-aware Ollama tuning |
242-
| [**install-script-generator**](skills/install-script-generator/) | 2.2.0 | high | Cross-platform install.sh with env detection |
240+
| [**cli-builder**](skills/cli-builder/) | 1.0.5 | high | 5-step CLI tool builder with approval gates |
241+
| [**ollama-optimizer**](skills/ollama-optimizer/) | 1.1.1 | medium | Hardware-aware Ollama tuning |
242+
| [**install-script-generator**](skills/install-script-generator/) | 2.2.1 | high | Cross-platform install.sh with env detection |
243243
| [**opencode-runner**](skills/opencode-runner/) | 1.4.1 | medium | Delegate work to opencode free cloud models |
244-
| [**herdr-agent-comms**](skills/herdr-agent-comms/) | 1.21.0 | medium | Manage Herdr agent fleets: tile panes, message/wait/read, steer |
245-
| [**tmux-agent-comms**](skills/tmux-agent-comms/) | 1.9.0 | medium | Spawn, message, read CLI agents in tmux |
244+
| [**herdr-agent-comms**](skills/herdr-agent-comms/) | 1.22.0 | medium | Manage Herdr agent fleets: tile panes, message/wait/read, steer |
245+
| [**tmux-agent-comms**](skills/tmux-agent-comms/) | 2.1.0 | medium | Spawn, message, read CLI agents in tmux |
246246

247247
---
248248

skills/appstore-review-checker/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
name: appstore-review-checker
3-
description: "Audit iOS/macOS app projects against Apple App Store Review Guidelines to catch rejection risks before submission, with per-guideline PASS/FAIL/WARNING verdicts and fix suggestions. Don't use for Google Play/Android submissions, general code review, or post-rejection appeal drafting."
3+
description: "Audit iOS/macOS apps against App Store Review Guidelines before submission, with evidence-backed verdicts and fixes. Don't use for Google Play, general code review, or rejection appeals."
44
license: MIT
55
effort: high
66
metadata:
7-
version: 1.2.0
7+
version: 1.2.1
88
author: Luong NGUYEN <luongnv89@gmail.com>
99
---
1010

skills/cli-builder/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
name: cli-builder
3-
description: "Build a production-quality CLI tool for any module or application. Auto-detects language, recommends CLI libraries, and follows a 5-step approval-gated workflow: Analyze, Design, Plan, Execute, Summarize. Don't use for building GUI/TUI apps, web APIs, or authoring one-off shell scripts."
3+
description: "Build production-quality CLIs with language detection and a five-step approval-gated workflow. Use when wrapping an existing module or app. Don't use for GUI/TUI apps, web APIs, or one-off shell scripts."
44
license: MIT
55
effort: high
66
metadata:
7-
version: 1.0.4
7+
version: 1.0.5
88
author: "Luong NGUYEN <luongnv89@gmail.com>"
99
---
1010

skills/code-review/SKILL.md

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: "Review or improve code — one skill, four modes: bug/security rev
44
license: MIT
55
effort: high
66
metadata:
7-
version: 2.0.1
7+
version: 2.1.0
88
author: "Luong NGUYEN <luongnv89@gmail.com>"
99
architecture: "router (4 modes, each a self-contained workflow in references/)"
1010
---
@@ -74,3 +74,58 @@ execute each mode's phases inline (less rigorous, but functional).
7474
Modes compose: a common flow is **clean** (audit → `CLEAN_CODE_AUDIT.md`) then **cleanup** (apply the
7575
refactors), or **review**/**perf** to find issues before fixing. Run one mode at a time; confirm with
7676
the user before switching into the code-writing `cleanup` mode.
77+
78+
## Prerequisites
79+
80+
- Require a readable target diff, PR, file set, or repository; ask for scope when none is provided.
81+
- Check that every reference and agent required by the selected mode is available before starting.
82+
- For `clean` or `cleanup`, validate repository state and follow that mode's sync, backup, dry-run,
83+
confirmation, and rollback instructions. Stop on sync errors or failed safety checks.
84+
85+
## Acceptance Criteria
86+
87+
Verify every run against the selected mode's own acceptance criteria, then assert all of these router
88+
criteria:
89+
90+
- Exactly one mode was selected and its reference workflow was followed end to end.
91+
- Read-only modes changed no source files; verify with a path-scoped `git diff` when applicable.
92+
- Every finding cites concrete evidence and the expected output artifact or report was produced.
93+
- Tests or validation commands required by the selected mode completed with their expected result.
94+
- Edge cases, limitations, skipped files, and degraded subagent coverage are disclosed.
95+
96+
## Expected Output
97+
98+
Example response after a read-only review:
99+
100+
```text
101+
Mode: review
102+
Result: PASS
103+
Findings: 1 critical, 2 major, 0 minor
104+
Output: CODE_REVIEW.md
105+
Validation: reviewer pass complete; no source files changed
106+
```
107+
108+
## Step Completion Reports
109+
110+
After routing and after the selected workflow, emit a compact report:
111+
112+
```text
113+
◆ Code Review ([mode])
114+
Mode selection: √ pass
115+
Workflow criteria: √ pass
116+
Output verified: √ pass
117+
Safety boundary: √ pass
118+
Result: PASS | FAIL | PARTIAL
119+
```
120+
121+
Use `× fail — reason` for any unmet check. Never report PASS while a selected-mode acceptance
122+
criterion, expected output, required test, or safety guardrail is unresolved.
123+
124+
## Edge Cases
125+
126+
- Unknown `mode:` value → reject it and list the four valid modes.
127+
- Mixed intents across modes → ask which mode to run first; never merge workflows implicitly.
128+
- Missing target or inaccessible files → stop and request a concrete scope instead of guessing.
129+
- Agent tool unavailable → use the selected reference's inline fallback and disclose reduced coverage.
130+
- A read-only mode requests edits mid-run → finish the report, then require explicit approval before
131+
starting a separate `cleanup` run.

skills/diagram-generator/SKILL.md

Lines changed: 50 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: "Generate a diagram and route to the right engine — draw.io XML (
44
license: MIT
55
effort: high
66
metadata:
7-
version: 1.0.0
7+
version: 1.1.2
88
author: "Luong NGUYEN <luongnv89@gmail.com>"
99
---
1010

@@ -27,7 +27,7 @@ Routing rules:
2727
- The user names a format or tool ("draw.io", "diagrams.net", "Excalidraw", "whiteboard sketch") → use that engine.
2828
- The user names an editing target ("I'll tweak it in draw.io", "import to Confluence") → **draw.io**.
2929
- The user wants a hand-drawn / sketch / wireframe look → **Excalidraw**.
30-
- No format signal → ask one question: "Precise and editable (draw.io) or hand-drawn sketch (Excalidraw)?" Default to **draw.io** for architecture/C4/technical diagrams and **Excalidraw** for wireframes/brainstorms if the user says "just pick".
30+
- No format signal → ask one question: "Precise and editable (draw.io) or hand-drawn sketch (Excalidraw)?" Keep routing blocked until the user answers. Only after explicit delegation such as "just pick", "choose for me", or "use the default", choose **draw.io** for architecture/C4/technical diagrams and **Excalidraw** for wireframes/brainstorms.
3131
- The user asks for **Mermaid**, a slide deck, or brand/marketing graphics → out of scope; say so (Mermaid is native markdown; use a presentation or design tool for the others).
3232

3333
## How to use
@@ -41,25 +41,59 @@ of filesystem path:
4141
Each engine owns its full workflow, `references/`, `agents/`, and validation checks. This umbrella
4242
stays short to protect the agent's context budget; it only routes.
4343

44-
## Layout
44+
## Prerequisites
45+
46+
1. Confirm at least one nested engine is installed and callable.
47+
2. Require enough diagram content to identify nodes, relationships, and intended audience; ask for
48+
missing essentials before routing.
49+
3. Check whether the requested output path already exists. Let the selected engine run its own
50+
confirmation, backup, dry-run, error, and rollback safeguards before any overwrite.
51+
52+
If the user explicitly requested a format, tool, editing target, or aesthetic and its engine is unavailable,
53+
stop and explain which nested skill must be installed; provide the matching command
54+
(`asm install github:luongnv89/skills:skills/diagram-generator/drawio-generator` or
55+
`asm install github:luongnv89/skills:skills/diagram-generator/excalidraw-generator`) and ask the user to
56+
install it or explicitly change the requested output. Do not substitute the other engine. If no format or aesthetic was explicit, an available
57+
engine may be offered as a fallback only after explaining the output difference and receiving user approval.
58+
If neither engine is available, fail with an installation error and name both required skills. Never invent
59+
XML or JSON under the wrong engine as a fallback.
60+
61+
## Example
62+
63+
```text
64+
Input: "Draw a sketchy onboarding wireframe for mobile."
65+
Route: excalidraw-generator
66+
Expected output: one validated .excalidraw JSON artifact
67+
```
4568

46-
This umbrella and its engines live together in one suite folder:
69+
## Acceptance Criteria
4770

48-
```
49-
skills/diagram-generator/ ← this umbrella (router)
50-
├── SKILL.md ← you are here
51-
├── drawio-generator/ ← draw.io XML engine
52-
└── excalidraw-generator/ ← Excalidraw JSON engine
71+
Verify every routed run:
72+
73+
- Exactly one engine is selected unless the user explicitly requests both formats.
74+
- The selected engine matches the requested format, editing target, or aesthetic.
75+
- The nested workflow reaches its Validate phase and produces its expected output artifact.
76+
- The artifact passes the engine's structural checks; validation errors are reported, not hidden.
77+
- Existing files are not overwritten without the selected engine's required confirmation or backup.
78+
79+
## Step Completion Reports
80+
81+
After routing, emit:
82+
83+
```text
84+
◆ Route Diagram
85+
Engine available: √ pass
86+
Route justified: √ pass
87+
Output validated: √ pass
88+
Result: PASS | FAIL | PARTIAL
5389
```
5490

55-
Why nested: both engines serve one intent ("make a diagram") and differ only by output format, so a
56-
single entry point removes the "which diagram skill do I use?" decision. Each engine stays
57-
independently installable — the installers (`install.sh`, `remote-install.sh`) discover both
58-
top-level and nested skills. This mirrors the `website-cloner` suite convention (see README
59-
*Suite Folders*).
91+
Use `× fail — reason` when a check fails. Report PASS only after the nested engine's acceptance
92+
criteria and expected result are verified.
6093

6194
## Edge Cases
6295

6396
- **User explicitly wants both formats** — generate with one engine first, then offer to regenerate the same diagram in the other.
64-
- **Ambiguous, no answer to the routing question** — default to draw.io and note the choice; the user can ask for an Excalidraw version.
65-
- **A nested engine is not installed** — fall back to the one that is, and note the limitation.
97+
- **Ambiguous, no answer to the routing question** — keep routing blocked and ask the question again; silence or timeout is not approval to choose an engine. Apply the routing heuristics only when the user explicitly delegates the choice (for example, "just pick", "choose for me", or "use the default").
98+
- **Explicitly requested engine is unavailable** — do not fall back. Report the unavailable nested skill, provide its installation guidance, and ask the user to install it or explicitly approve a different format/aesthetic.
99+
- **No explicit format and the selected engine is unavailable** — offer the installed engine as an alternative, explain its format/aesthetic, and route only after explicit user approval.

skills/doc-manager/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: "Generate or update docs to match the code, citing each claim to pa
44
license: MIT
55
effort: medium
66
metadata:
7-
version: 2.0.1
7+
version: 2.0.2
88
author: Luong NGUYEN <luongnv89@gmail.com>
99
---
1010

@@ -166,7 +166,7 @@ Use `√` pass, `×` fail, `—` for context. Per-phase checks:
166166

167167
## Guidelines
168168

169-
- **Concise, for developers and AI agents.** State the fact, cite it, move on. No filler, no restating the obvious, no marketing tone.
169+
- **Protect the context budget.** State the fact, cite it, move on. No filler, no restating the obvious, no marketing tone.
170170
- Adapt structure to project type — not every `docs/` category applies.
171171
- Prefer code-derived facts over stale prose; keep existing accurate docs untouched (`verified-current`).
172172
- Maintain cross-references; remove content only when it's wrong or orphaned, and say so in the summary.

skills/dont-make-me-think/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
name: dont-make-me-think
3-
description: "Review UI for usability issues using Steve Krug's principles and produce a scannable report. Use when asked for a usability audit, UX review, or UI feedback on screenshots, URLs, or code. Don't use for visual/brand design critique, accessibility (WCAG) audits, or backend/API review."
3+
description: "Review UI usability using Steve Krug's principles and produce a scannable report. Use for UX audits of screenshots, URLs, or code. Don't use for brand critique, WCAG audits, or backend/API review."
44
license: MIT
55
effort: medium
66
metadata:
7-
version: 1.3.0
7+
version: 1.3.2
88
author: Luong NGUYEN <luongnv89@gmail.com>
99
---
1010

0 commit comments

Comments
 (0)