From de5384c8f024943250a1c694b4f8b816d095b919 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Thu, 23 Apr 2026 10:04:03 +0900 Subject: [PATCH] roadmap(#179): file missing SKILL.md validation gap as separate pinpoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per gaebal-gajae cycle #102 refinement. Originally tangled into #177 filing but properly belongs as distinct pinpoint. Taxonomy: - #177: nonexistent path → filesystem kind - #178: export enum drift → filesystem canonical - #179: missing SKILL.md → parse/validation kind (this filing) Family renamed per gaebal-gajae: 'resource / install-surface error taxonomy gap' (was 'filesystem error family'). Better captures that not all gaps in this cluster are filesystem-rooted. Proposed branch bundle: feat/jobdori-177-install-surface-taxonomy covers all three as coordinated taxonomy sweep. Pinpoint count: 69 filed, 55 genuinely open. --- ROADMAP.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/ROADMAP.md b/ROADMAP.md index a4ecfcb..0db5dd2 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -10173,3 +10173,37 @@ One of: filesystem, auth, session, parse, runtime, mcp, delivery, usage, policy, **Status:** FILED. Fix requires `.github/workflows/` change. Proposed separate branch `feat/jobdori-175-ci-fmt-test-split` OR `feat/gaebal-175-ci-signal-decoupling` per gaebal-gajae authorship. **Connection to #176 previous filing:** None. My #175/#176 filing was a numbering collision. Correct numbering: #177 (filesystem classifier) + #178 (enum naming). #175 ownership belongs to gaebal-gajae's CI framing, which is a higher-level workflow gap. + +## Pinpoint #179. `skills install .` missing SKILL.md classified as `unknown` instead of `parse`/`validation` — FILED (cycle #102 refinement, 2026-04-23 10:09 Seoul) + +**Gap (per gaebal-gajae cycle #102 framing refinement).** Originally tangled into #177 filing, but properly separated: this is a distinct sub-case with a different correct `kind` value. + +```bash +claw --output-format json skills install . +# → {"error": "skill directory '.' must contain SKILL.md", "hint": null, "kind": "unknown", "type": "error"} +``` + +**Why different from #177:** +- #177 is a **filesystem error** (path doesn't exist) → `kind: "filesystem"` +- #179 is a **validation/parse error** (path exists, but content doesn't match expected structure) → `kind: "parse"` or new `kind: "validation"` + +**Recommended fix shape:** +```rust +} else if message.contains("must contain SKILL.md") { + "parse" // or "validation" if schema enum expands +} +``` + +**Per gaebal-gajae refinement:** The correct family name is **"resource / install-surface error taxonomy gap"** (not "filesystem error family"). This encompasses: + +| Sub-case | Surface | Correct `kind` | Pinpoint | +|---|---|---|---| +| Nonexistent path | `skills install /nonexistent` | `filesystem` | **#177** | +| Missing SKILL.md | `skills install .` | `parse` or `validation` | **#179** (this filing) | +| Enum name drift | `export /bad/path` | `filesystem` (canonical) | **#178** | + +**Proposed branch bundle:** `feat/jobdori-177-install-surface-taxonomy` (covers #177 + #178 + #179 as one taxonomic sweep). + +**Status:** FILED. Per freeze doctrine, no fix on 168c. + +**Pinpoint count update:** 69 filed (+1 from #179), 55 genuinely open.