{"slug":"feature-radar-validate","title":"feature-radar-validate","summary":"Validate SKILL.md frontmatter and .feature-radar/ files against format rules. Runs validate.sh, reports errors/warnings, and auto-fixes issues. MUST use this skill after editing any SKILL.md or .feature-radar/ file, even if the user doesn't ask — catches format bugs like the Agen","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-30T19:53:11.724287Z","repo":{"url":"https://github.com/runkids/my-skills","stars":14,"forks":1,"license":null,"updatedAt":"2026-09-30T18:53:08Z"},"bodyHtml":"<hr>\n<h2>name: feature-radar-validate\ndescription: |\nValidate SKILL.md frontmatter and .feature-radar/ files against format rules. Runs\nvalidate.sh, reports errors/warnings, and auto-fixes issues. MUST use this skill after\nediting any SKILL.md or .feature-radar/ file, even if the user doesn't ask — catches format\nbugs like the Agent Skills spec's 1024-char description limit before they break the skill.\nUse when the user asks to validate, lint, or verify skills or .feature-radar/ files, after\nediting either, or before committing changes that touch skills/ or .feature-radar/.</h2>\n<h1>Validate Feature Radar</h1>\n<p>Run <code>skills/feature-radar-validate/scripts/validate.sh</code> from the project root to check SKILL.md frontmatter and <code>.feature-radar/</code> SPEC compliance, then fix any issues found.</p>\n<h2>Why This Matters</h2>\n<p>The <code>description</code> field in SKILL.md has a 1024-character limit in the Agent Skills spec (agentskills.io/specification, checked 2026-09-29). Agents that enforce the spec may reject a longer description; Claude Code instead truncates the skill listing at 1,536 characters, cutting off trigger text. Similarly, <code>.feature-radar/</code> files must follow SPEC.md naming and metadata conventions or downstream tools can't parse them. This skill catches these issues before they cause problems.</p>\n<h2>Workflow</h2>\n<h3>Step 1: Run Validation</h3>\n<pre><code>bash skills/feature-radar-validate/scripts/validate.sh\n</code></pre>\n<p>Read the full output. Note the exit code:</p>\n<ul>\n<li><strong>Exit 0</strong>: all checks passed (may still have warnings)</li>\n<li><strong>Exit 1</strong>: errors found — must be fixed</li>\n</ul>\n<h3>Step 2: Report Results</h3>\n<p>Present the results clearly:</p>\n<pre><code>── Feature Radar: Validate ──\n\nErrors:   {n}\nWarnings: {n}\n\n{List each error/warning with file path and issue}\n</code></pre>\n<p>If everything passes, say so and stop. No further action needed.</p>\n<h3>Step 3: Auto-Fix (if errors or warnings found)</h3>\n<p>For each issue, apply the appropriate fix:</p>\n<table>\n<thead>\n<tr>\n<th>Issue</th>\n<th>Fix Strategy</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>description</code> &gt; 1024 chars</td>\n<td>Trim to fit — cut the least essential trigger phrases or examples first, keep the core \"what it does\" and \"Use when\" intact. Show before/after char count.</td>\n</tr>\n<tr>\n<td><code>description</code> missing \"Use when\"</td>\n<td>Add a \"Use when:\" section based on the skill's purpose</td>\n</tr>\n<tr>\n<td><code>name</code> not kebab-case</td>\n<td>Rename to kebab-case</td>\n</tr>\n<tr>\n<td><code>name</code> missing</td>\n<td>Derive from directory name</td>\n</tr>\n<tr>\n<td><code>name</code> &gt; 64 chars</td>\n<td>Propose a shorter name and ask user to confirm — the name is how the skill is invoked</td>\n</tr>\n<tr>\n<td><code>name</code> does not match directory</td>\n<td>Set <code>name</code> to the directory name; if the <code>name</code> is the intended one, ask user before renaming the directory (other skills reference it by path)</td>\n</tr>\n<tr>\n<td>Body &gt; 500 lines</td>\n<td>Flag for user — this requires judgment about what to extract into reference files</td>\n</tr>\n<tr>\n<td>Filename not <code>{nn}-{slug}.md</code></td>\n<td>Rename file to correct format</td>\n</tr>\n<tr>\n<td>Missing <code>**Status**:</code> / <code>**Impact**:</code> / <code>**Effort**:</code></td>\n<td>Add field with a placeholder value, ask user to confirm</td>\n</tr>\n<tr>\n<td><code>base.md</code> count mismatch</td>\n<td>Update the Tracking Summary table counts</td>\n</tr>\n</tbody>\n</table>\n<p>After fixing, re-run <code>bash skills/feature-radar-validate/scripts/validate.sh</code> to confirm all errors are resolved.</p>\n<h3>Step 4: Completion Summary</h3>\n<pre><code>── Feature Radar: Validate Complete ──\n\nFiles fixed:   ~ {path} ({what changed})\nErrors fixed:  {n}\nWarnings fixed: {n}\nRemaining:     {n} (need user input)\n</code></pre>\n<h2>Proactive Triggering</h2>\n<p>When you notice yourself editing <code>skills/*/SKILL.md</code> or <code>.feature-radar/**/*.md</code>, run validation afterward without being asked. A quick <code>bash skills/feature-radar-validate/scripts/validate.sh</code> check takes seconds and prevents silent breakage.</p>\n","files":[{"path":"scripts/validate.sh","sizeBytes":5481,"isText":true},{"path":"SKILL.md","sizeBytes":3578,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-30T19:53:59.225155Z","sha256":"DE5BFA7D40FC254C75C6A208F9C420B55799F9757A86D8992115EDC0E40C125D","sizeBytes":3777},"review":null,"source":{"repositoryUrl":"https://github.com/runkids/my-skills","path":"feature-radar/feature-radar-validate","license":null,"commit":"7f33dbc5934c5e27920b3e88e8a6ccb06f304b98","subtreeSha":"6BD743E64094FF411F0145DE2C54291ECD8DABFDC251CD86AE2B84AAD09DE027","lastSyncedAt":"2026-09-30T19:53:09.4483Z"},"reviewedAt":"2026-09-30T20:00:57.82203Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/runkids/my-skills/tree/main/feature-radar/feature-radar-validate"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install runkids-my-skills@llmmart"},{"target":"git","command":"git clone https://github.com/runkids/my-skills.git"}]}