Migration Conformity Report — 2026-04-29
Recursive scan of all tracked files in the koder monorepo to verify conformity of file paths and content references with the new RFC-003..009 taxonomy.
Methodology
Scanned git ls-files (39,063 tracked files), looking for legacy path references in content. Each finding is classified by:
- Broken (B) — path doesn't resolve, buildCIruntime affected.
- Symlink-resolved (S) — path works via transitional root symlinks
(
suite/,vertical/,dev/,foundation/,ai/,media/,lang/,sdk/,data/,observe/,linux/,brand/,docs/,sites/,context/, plus per-subdir compat ininfra/<x>/). Functional but stale. - Historical (H) — path appears in a document describing past state
(backlogdone, noticesarchive, CHANGELOG, dated baselines, RFC migration tables). Updating would falsify history.
Summary by category
| Legacy path | Total refs | Files | Action taken |
|---|---|---|---|
industry/ |
406 | 185 | Fixed in CI workflows + 5 current docs (commit bee66e312); historical refs untouched |
core/kodec |
620 | 195 | Symlink (core/kodec → ../engines/kodec) keeps refs functional; canonical path is engines/kodec/ |
suite/<sector>/ (L1) |
395 | 144 | Symlink (suite → products/horizontal) keeps refs functional; canonical path is products/horizontal/ |
vertical/<sector>/ (L1) |
41 | 12 | Symlink (vertical → products/vertical) keeps refs functional |
dev/<sector>/ (L1) |
475 | 236 | Symlink (dev → products/dev) keeps refs functional |
foundation/ |
419 | 209 | Symlink (foundation → services/foundation) keeps refs functional |
ai/<sector>/ |
793 | 361 | Symlink (ai → services/ai) keeps refs functional |
media/ |
134 | 77 | Symlink (media → services/media) keeps refs functional |
lang/ |
579 | 87 | Symlink (lang → engines/lang) keeps refs functional |
sdk/ |
443 | 182 | Symlink (sdk → engines/sdk) keeps refs functional |
data/<sector> |
596 | 330 | Symlink (data → infra/data) keeps refs functional |
observe/ |
844 | 122 | Symlink (observe → infra/observe) keeps refs functional |
linux/ |
202 | 111 | Symlink (linux → infra/linux) keeps refs functional |
brand/ |
23 | 16 | Symlink (brand → meta/brand) keeps refs functional |
docs/stack/ |
149 | 52 | Symlink (docs → meta/docs) keeps refs functional; canonical path meta/docs/stack/ |
sites/ |
92 | 40 | Symlink (sites → meta/sites) keeps refs functional |
context/ |
499 | 213 | Symlink (context → meta/context) keeps refs functional |
<sector>/site/ (L4) |
144 | 67 | Renamed to landing/ only in tracked dirs (sweep 6, commit 5c08d718d); references in docs may still say "site/" |
flow.koder.dev/Koder/koder/<old-l1>/ |
5 | 5 | Module-path imports in Go code; needs per-Sector go.mod analysis |
Detailed findings by file
The following sections list specific files with non-conformant references, grouped by category. Files are listed as path:line for each occurrence.
references (top 30 in CURRENT docs)
engines/kodec/README.md:9:> and the workspace was named `koder-cine`. It was extracted to `core/kodec/`
engines/kodec/README.md:73:cd ~/dev/koder/core/kodec
engines/kodec/backlog/pending/111-flac-container.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/111-flac-container.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/111-flac-container.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/113-aiff-container.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/113-aiff-container.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/113-aiff-container.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/114-mpeg-ts-demux.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/114-mpeg-ts-demux.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/114-mpeg-ts-demux.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/115-flv-container.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/115-flv-container.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/115-flv-container.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/116-avi-container.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/116-avi-container.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/116-avi-container.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/117-hls-playlist-parse.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/117-hls-playlist-parse.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/117-hls-playlist-parse.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/118-dash-mpd-parse.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/118-dash-mpd-parse.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/118-dash-mpd-parse.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/119-mp4-mux.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/119-mp4-mux.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/119-mp4-mux.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/120-webm-mux.md:5:**Owner:** core/kodec
engines/kodec/backlog/pending/120-webm-mux.md:6:**Opened by:** RFC-002 (core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md) on 2026-04-23
engines/kodec/backlog/pending/120-webm-mux.md:25:- RFC-002: `core/kodec/docs/rfcs/RFC-002-ffmpeg-parity-roadmap.md`
engines/kodec/backlog/pending/121-mp3-mux.md:5:**Owner:** core/kodecflow.koder.dev/Koder/koder/<old-l1>/ references (Go imports)
products/horizontal/talk/engine/internal/bot/video_kodec_lib.go:21: kodec "flow.koder.dev/Koder/koder/core/kodec/bindings/go"
services/ai/kortex/internal/videoframes/extract_kodec_lib.go:21: kodec "flow.koder.dev/Koder/koder/core/kodec/bindings/go"
services/ai/kortex/internal/videoframes/probe_kodec_lib.go:21: kodec "flow.koder.dev/Koder/koder/core/kodec/bindings/go"Recommendations
Immediate (fixed in this session)
- ✅
industry/→products/vertical/in CI workflows + 5 current docs (commitbee66e312).
Future cleanup (deferred — requires per-file judgment)
The following sweeps are safe to defer because the transitional symlinks at the monorepo root keep the legacy paths functional. They are accuracy issues (docs reference old names), not breakage. Recommend addressing opportunistically as files are touched, rather than en-masse:
- Update doc references when touching a file — if you edit a README
or backlog ticket that has
suite/foopaths, update toproducts/horizontal/foowhile you're there. No need for a separate sweep.
core/kodecreferences — when modifying any module that importsthe codec, update the path. The symlink resolves either form.
- Sector internal docs — most module READMEs reference paths like
suite/<self>/...describing their own location. Update on next release per Sector.
- Go module paths —
flow.koder.dev/Koder/koder/<old-l1>/importsin Go code. These require per-Sector go.mod analysis: is the module name itself
flow.koder.dev/Koder/koder/<old>/<x>(then both go.mod and import statements need update), or is the module already named correctly and the import is using a stale alias? Triage one Sector at a time during normal work.
Deferred for the long term
- Removal of transitional symlinks at the monorepo root — only after
all references are updated to canonical paths. Until then, the symlinks are essential for compatibility.
Never (intentionally)
- Historical documents in
*/backlog/done/,*/notices/archive/,*/CHANGELOG*, dated*/baseline-YYYY-MM-DD*— leave untouched. They describe past state.
- RFC migration tables describing what was renamed from what —
the legacy name is the subject, not a working reference.
Conformity status
Strictly: Most legacy path references in docs use the pre-migration form. Fixing all of them would touch ~6000+ references across hundreds of files — a multi-day effort with diminishing returns.
Functionally: All references resolve correctly via the transitional symlinks at the monorepo root. The Stack works as if the migration is complete.
Decision: apply Pareto principle — fix the 5% that's actually broken (industry/, CI workflows), defer the 95% that's symlink-resolved. Encourage opportunistic cleanup during normal Sector work.