From 93cfdbabebd81ffaebe981c88f6e7dd5349fa559 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Thu, 23 Apr 2026 10:02:52 +0900 Subject: [PATCH] roadmap(#175): file gaebal-gajae's CI fmt/test signal decoupling framing + resolve numbering collision #175 numbering collision between: - gaebal-gajae's CI framing (filed at ~10:00 via Discord verbally) - my filesystem classifier filing (#175 per cycle #102 10:02) Resolution: - gaebal-gajae's framing reclaims #175 (higher-level workflow gap) - My filesystem classifier renumbered to #177 - My export enum naming renumbered to #178 All three pinpoints now filed with correct non-colliding numbers: - #175: CI fmt/test signal decoupling (gaebal-gajae) - #177: skills install filesystem classifier (Jobdori, was #175) - #178: export kind naming consistency (Jobdori, was #176) Typed-error family membership updated accordingly. --- ROADMAP.md | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 95d520f..a4ecfcb 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -10062,7 +10062,7 @@ This naming follows the established `feat/jobdori--` convention a **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) +## Pinpoint #177. `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 ` returns `kind: "unknown"` for filesystem errors, violating the SCHEMAS.md v1.5 error kind enum which explicitly includes `"filesystem"` as a valid kind. @@ -10105,7 +10105,7 @@ claw --output-format json skills install . **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) +## Pinpoint #178. `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: @@ -10143,3 +10143,33 @@ One of: filesystem, auth, session, parse, runtime, mcp, delivery, usage, policy, - **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). + +## Pinpoint #175. `cargo fmt` CI gate masks substantive test signal — FILED (gaebal-gajae cycle, 2026-04-23 ~10:00 Seoul) + +**Gap (per gaebal-gajae framing).** Current CI pipeline couples formatting checks (`cargo fmt --all --check`) with test execution in a way that makes a cosmetic rustfmt diff surface as a red CI before maintainers can read the underlying test health. Effect: +- CI history becomes noisy — looking at "recent red builds," maintainers can't quickly tell "real regression" from "formatting drift" +- Maintainers waste cycles on "fix fmt first, then see if tests are green" +- Stale formatting diffs on main (like the one just repaired in `cc8da08a`) mask test signal until someone applies `cargo fmt --all` + +**Historical evidence.** Just repaired such a scenario: +- 188K brand redesign cycle found CI red on main due to `cargo fmt --all --check` diff in 2 Rust provider files +- Had to rebase, apply fmt, and push `cc8da08a` as formatter-only commit to unblock +- Even after the repair, main history shows CI red "for Rust reasons" without visible cause/effect + +**Proposed fix shape.** Split CI job matrix so `fmt` and `test` surface independently: +1. **Separate jobs:** `fmt-check` and `test` as distinct GitHub Actions workflow jobs +2. **Independent status reporting:** Each job reports its own green/red, not a joined gate +3. **Optional: non-blocking fmt check** — fmt diff could be a warning-level check, not a blocker for test signal + +**Alternative fix shape:** Keep fmt blocking but make test run first and its signal visible even when fmt fails. + +**Consumer impact.** +- Maintainers can dogfood test health from CI history at a glance +- Formatting regressions don't hide functional regressions +- Reduces "fix fmt, then see tests pass" churn cycles + +**Family:** CI / tooling. Not a classifier or schema gap. Product/workflow surface. + +**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.