mirror of
https://github.com/ultraworkers/claw-code.git
synced 2026-04-24 13:08:11 +08:00
Cycle #102 probe of model/skills/export axis found two related gaps: #175: skills install filesystem errors classified as 'unknown' instead of 'filesystem' (which is in v1.5 enum). #176: export uses 'filesystem_io_error' kind but this is NOT in v1.5 declared enum (which only lists 'filesystem'). Inconsistent naming. Both filed only per freeze doctrine. Proposed bundling as feat/jobdori-175-filesystem-error-family branch. Family observation: classifier + enum-naming gaps found simultaneously in filesystem-error axis. Indicates broader unaudited surface. Pinpoint count: 68 filed, 54 genuinely-open.
This commit is contained in:
parent
635f1145a2
commit
efc59ab17e
82
ROADMAP.md
82
ROADMAP.md
@ -10061,3 +10061,85 @@ This naming follows the established `feat/jobdori-<number>-<brief>` convention a
|
||||
5. Single-commit PR, easy review
|
||||
|
||||
**Family alignment:** Part of typed-error classifier family (#121, #127, #129, #130, #164, #169, #170, #171, #174, #247). Future sweep might batch all remaining `unknown` classifications into a single pass.
|
||||
|
||||
## Pinpoint #175. `skills install` filesystem errors classified as `unknown` instead of `filesystem` — FILED (cycle #102, 2026-04-23 10:02 Seoul)
|
||||
|
||||
**Gap.** `claw --output-format json skills install <path>` returns `kind: "unknown"` for filesystem errors, violating the SCHEMAS.md v1.5 error kind enum which explicitly includes `"filesystem"` as a valid kind.
|
||||
|
||||
**Reproduction.**
|
||||
```bash
|
||||
# Probe A: Nonexistent path
|
||||
claw --output-format json skills install /nonexistent/path
|
||||
# → {"error": "No such file or directory (os error 2)", "hint": null, "kind": "unknown", "type": "error"}
|
||||
|
||||
# Probe B: Directory without SKILL.md
|
||||
claw --output-format json skills install .
|
||||
# → {"error": "skill directory '<path>' must contain SKILL.md", "hint": null, "kind": "unknown", "type": "error"}
|
||||
```
|
||||
|
||||
**Expected (per SCHEMAS.md v2.0 schema proposal, which uses this as EXAMPLE):**
|
||||
```json
|
||||
{
|
||||
"kind": "filesystem",
|
||||
"operation": "open",
|
||||
"target": "/nonexistent/path",
|
||||
"message": "No such file or directory"
|
||||
}
|
||||
```
|
||||
|
||||
**Current `skills install` emits `kind: "unknown"` which is ambiguous and doesn't match the schema enum** (which lists `filesystem`, `auth`, `session`, `parse`, `runtime`, `mcp`, `delivery`, `usage`, `policy`, `unknown`).
|
||||
|
||||
**Pattern:** This is a classifier gap analogous to #169/#170/#171 but for **filesystem error messages**, not CLI parse errors.
|
||||
|
||||
**Fix shape.** Add classifier branches in `classify_error_kind`:
|
||||
```rust
|
||||
} else if message.contains("(os error 2)") ||
|
||||
message.contains("No such file or directory") {
|
||||
"filesystem"
|
||||
} else if message.contains("must contain SKILL.md") {
|
||||
"parse" // or new kind "validation" if needed
|
||||
}
|
||||
```
|
||||
|
||||
**Family:** Typed-error classifier family. Related: #169-#174 (classifier gaps), #172 (doc-truthfulness).
|
||||
|
||||
**Status:** FILED. Per freeze doctrine, no fix on 168c. Proposed separate branch: `feat/jobdori-175-filesystem-error-classifier`.
|
||||
|
||||
## Pinpoint #176. `export` emits `kind: "filesystem_io_error"` but enum lists only `filesystem` — FILED (cycle #102, 2026-04-23 10:02 Seoul)
|
||||
|
||||
**Gap.** Inconsistent naming in error kind enum:
|
||||
|
||||
```bash
|
||||
claw --output-format json export /nonexistent/dir/file.json
|
||||
# → {"error": "...", "kind": "filesystem_io_error", "type": "error"}
|
||||
```
|
||||
|
||||
But SCHEMAS.md v1.5 baseline enum lists:
|
||||
```
|
||||
One of: filesystem, auth, session, parse, runtime, mcp, delivery, usage, policy, unknown
|
||||
```
|
||||
|
||||
`"filesystem_io_error"` is NOT in this list. Two possibilities:
|
||||
1. **`export` should emit `kind: "filesystem"`** (align with enum)
|
||||
2. **Enum should include `filesystem_io_error`** (expand the schema)
|
||||
|
||||
**Related to #175:** Both touch the filesystem-error-kind axis. Could be batched:
|
||||
- #175 fixes `skills install` (unknown → filesystem)
|
||||
- #176 fixes `export` (filesystem_io_error → filesystem OR expand enum)
|
||||
|
||||
**Fix shape preferred:** Unify under `filesystem` (Option 1). Reasons:
|
||||
- Matches SCHEMAS.md v1.5 declared enum
|
||||
- Matches the SCHEMAS.md v2.0 example syntax
|
||||
- Simpler consumer dispatch
|
||||
|
||||
**Status:** FILED. Per freeze doctrine, no fix on 168c. Proposed separate branch: `feat/jobdori-176-export-kind-normalization`. Possibly bundled with #175 as `feat/jobdori-175-filesystem-error-family`.
|
||||
|
||||
**Doctrine observation (cycle #102):** Same probe (`export` + `skills install`) surfaced both a classifier gap AND an enum-naming inconsistency. This is evidence that the **filesystem error kind axis** is under-audited — a single broader sweep could catch multiple gaps at once.
|
||||
|
||||
## Pinpoint Accounting Update (cycle #102)
|
||||
|
||||
**Current state after cycle #102:**
|
||||
- **Filed total:** 68 (+2 from #175, #176)
|
||||
- **Genuinely open:** 54 (+2 from #175, #176)
|
||||
- **Typed-error family:** 12 members (#121, #127, #129, #130, #164, #169, #170, #171, #174, #175, #176, #247)
|
||||
- **Filesystem error sub-family emerging:** #175 (missing classifier), #176 (inconsistent naming). Likely others to discover (upload, read, write, etc. paths).
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user