Skip to content

Commit d23802e

Browse files
committed
docs(plans): migrate roadmap to Plans/ structure with archive
- ROADMAP.md → Plans/Archive/ROADMAP_202602_202603_Closed.md (unchanged) - NEXT_ROADMAP.md → Plans/ROADMAP.md (active planning entry point) - AGENTS.md updated with Plans/ in project layout and workflow rules - Oracle tracking docs updated to reference Plans/ paths - Stray nul artifact removed
1 parent 93c7b86 commit d23802e

7 files changed

Lines changed: 65 additions & 14 deletions

File tree

.sisyphus/notepads/l2bc-crc-counter/learnings.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,7 @@
1818
20260313_2230_Dbc_T12_blankline_fix: Removed blank lines after triple-quoted DBC literals in T12 tests (IsCrc/IsCounter/Non-CRC/CRC_OFF). Build+tests: OK.
1919

2020
20260313_2348_T14_codegen_crc_counter_tests: Added CodegenTests coverage for CRC/counter modes (validate/passthrough/fail_fast), CRC mismatch/encode paths, counter rollover helper emission, and utils CRC helper parity/no-parity checks.
21+
22+
20260313_2018_T15_api_facade_crc_tests: `Api.generateFromPaths` and `GeneratorFacade.GenerateFromPathsAsync` currently surface CRC/Counter validation failures from YAML/config validation (`UnknownAlgorithm`, `ConfigConflict`) before codegen; missing-message/signal references in `crc_counter.mode=validate` are not rejected by the current pipeline because `applyConfigMetadata` ignores unmatched message/signal names.
23+
24+
20260313_2025_T16_c_build_verification: CRC validate codegen emits the expected helper surface (`sc_crc8_sae_j1850`, CRC table, `MESSAGE_1_check_counter`), so the validate path reaches template emission; the current blocker is C compile correctness in generated encode code, not missing CRC symbol generation.

AGENTS.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ tests/Signal.CANdy.Core.Tests/ xUnit + FsUnit tests for Core library
1313
tests/Generator.Tests/ xUnit + FsUnit tests (references Generator project)
1414
templates/ Scriban templates for C code generation
1515
examples/ Sample DBC files, YAML configs, and C test runner
16+
Plans/ Active/archived roadmap documents
1617
```
1718

1819
## Build & Test Commands
@@ -245,11 +246,11 @@ Reports/YYYYMMDD_HHMM_작업내용요약.md
245246
| 📝 **작업 요약** | 이번 세션에서 수행한 작업의 한 줄 요약 및 상세 설명 |
246247
| 🛠 **변경 상세** | 수정/생성/삭제한 파일 목록과 각 변경의 구체적 내용 |
247248
|**테스트 결과** | `dotnet test` 결과, C 빌드 결과, 수동 검증 내역 등 |
248-
|**다음 계획** | 다음 세션에서 착수할 ROADMAP 항목 및 선행 조건 |
249+
|**다음 계획** | 다음 세션에서 착수할 활성 계획(`Plans/ROADMAP.md`) 항목 및 선행 조건 |
249250

250251
### 규칙 4: ROADMAP 업데이트
251252

252-
작업 세션에서 ROADMAP 항목을 완료했다면, **해당 세션 내에서 즉시** `ROADMAP.md`의 체크박스를 `[x]`로 갱신한다.
253+
작업 세션에서 활성 계획 항목을 완료했다면, **해당 세션 내에서 즉시** `Plans/ROADMAP.md`의 체크박스를 `[x]`로 갱신한다.
253254
보고서에도 완료된 ROADMAP 항목 ID를 명시한다 (예: "C-1a, C-1b 완료").
254255

255256
### 규칙 5: 보고서 불변성과 정정 방식

ROADMAP.md renamed to Plans/Archive/ROADMAP_202602_202603_Closed.md

File renamed without changes.
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
# NEXT ROADMAP — Signal-CANdy 후속 backlog
1+
# ROADMAP — Signal-CANdy Active Plan
22

3-
> 이 문서는 `ROADMAP.md` close-out 이후의 **다음 세대 작업 후보**만 기록합니다.
4-
> 현행 truth 확인 순서: 최신 `Reports/` → 이 문서 → `tests/oracle/CATEGORY_C_EXCEPTIONS.md` / `tests/oracle/ORACLE_RESULTS.md`.
3+
> 이 문서는 현재 활성 계획 문서입니다.
4+
> 2026-02~2026-03 세대 종결본은 `Plans/Archive/ROADMAP_202602_202603_Closed.md`에 원본 그대로 보관합니다.
5+
> 현행 truth 확인 순서: 최신 `Reports/``Plans/ROADMAP.md``tests/oracle/CATEGORY_C_EXCEPTIONS.md` / `tests/oracle/ORACLE_RESULTS.md`.
56
67
## 포함 원칙
78

8-
- `ROADMAP.md`에 남기면 historical snapshot을 다시 흔들게 되는 항목만 이관한다.
9+
- 닫힌 snapshot(`Plans/Archive/ROADMAP_202602_202603_Closed.md`)을 다시 흔들게 되는 항목만 이 문서에서 관리한다.
910
- 구현 완료로 닫힌 항목은 여기로 되돌려 적지 않는다.
1011
- 설계/정책이 더 필요한 future-facing 항목만 유지한다.
1112

@@ -14,7 +15,7 @@
1415
### 1. valid 비트마스크 `>64` 신호 fallback 방식
1516

1617
- 현 상태: `≤32 -> uint32_t`, `33–64 -> uint64_t`, `>64 -> UnsupportedFeature`
17-
- 근거: `ROADMAP.md` L-3a close-out 문구, `tests/oracle/CATEGORY_C_EXCEPTIONS.md` Exception 3
18+
- 근거: `Plans/Archive/ROADMAP_202602_202603_Closed.md` L-3a close-out 문구, `tests/oracle/CATEGORY_C_EXCEPTIONS.md` Exception 3
1819
- 후속 판단 과제: 배열 기반 valid 표현을 실제로 도입할지, 아니면 `>64` 미지원을 장기 정책으로 유지할지 결정
1920

2021
### 2. Oracle reference decoder 비호환 DBC 대응 전략
@@ -27,4 +28,4 @@
2728

2829
1. 최신 close-out / verification 보고서를 먼저 확인한다.
2930
2. 위 두 항목 중 실제 제품 우선순위가 생긴 것만 새 세대 계획으로 승격한다.
30-
3. 새 계획을 시작할 때는 `ROADMAP.md`수정하지 않고, 이 문서 또는 새 세대 roadmap 문서에서 이어간다.
31+
3. 새 계획을 시작할 때는 archive 문서를 수정하지 않고, 이 문서 또는 `Plans/` 하위 successor roadmap에서 이어간다.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Plans 구조 전환 및 정합성 보고서
2+
3+
## 📝 작업 요약
4+
- 요청사항에 따라 계획 문서 관리 구조를 `Plans/` 중심으로 일관화했다.
5+
- 기존 완료 문서인 root `ROADMAP.md`는 수정 없이 `Plans/Archive/ROADMAP_202602_202603_Closed.md`로 아카이브했고, 활성 계획은 `Plans/ROADMAP.md`로 전환했다.
6+
- `AGENTS.md`, `tests/oracle/*`의 지시/참조 경로를 새 구조에 맞게 최소 수정하여 문서 간 정합성을 맞췄다.
7+
8+
---
9+
10+
## 🛠 변경 상세
11+
- 계획 문서 구조
12+
- `ROADMAP.md` (root) → `Plans/Archive/ROADMAP_202602_202603_Closed.md` (아카이브)
13+
- `NEXT_ROADMAP.md` (root) → `Plans/ROADMAP.md` (활성 계획)
14+
- 지시 문서/참조 경로 정합성
15+
- `AGENTS.md`
16+
- Project Layout에 `Plans/` 추가
17+
- 보고서 섹션의 다음 계획 기준을 `Plans/ROADMAP.md`로 전환
18+
- 완료 체크 갱신 대상 경로를 `Plans/ROADMAP.md`로 전환
19+
- `tests/oracle/ORACLE_RESULTS.md`
20+
- 현재 판정 참조를 `Plans/Archive/...` + `Plans/ROADMAP.md` + 최신 `Reports/` 기준으로 보정
21+
- `tests/oracle/CATEGORY_C_EXCEPTIONS.md`
22+
- backlog entry 기준을 `Plans/` 하위 활성 계획 문서 기준으로 보정
23+
- 후속 추적 문구를 `Plans/ROADMAP.md` 기준으로 보정
24+
- 아카이브 무변경 증빙
25+
- `git rev-parse HEAD:ROADMAP.md` 해시와 `hash-object Plans/Archive/ROADMAP_202602_202603_Closed.md` 해시가 동일함을 확인
26+
- 확인값: `b9c862cba3f37a364d7ac3634e1e0e1815c22ce2`
27+
28+
---
29+
30+
## ✅ 테스트 결과
31+
- `dotnet build --configuration Release --nologo`
32+
- 경고 0 / 오류 0
33+
- `dotnet test --configuration Release -v minimal --nologo`
34+
- Core 125/125 pass
35+
- Generator 27/27 pass
36+
- Total 152/152 pass
37+
- 추가 점검
38+
- `git diff --summary`로 root `ROADMAP.md`, `NEXT_ROADMAP.md` 제거(Plans 이관) 상태 확인
39+
- `grep`으로 `AGENTS.md`, `tests/oracle/*`, `Plans/ROADMAP.md`의 새 경로 참조 확인
40+
41+
---
42+
43+
## ⏭ 다음 계획
44+
- 필요 시 다음 세션에서 `Plans/ROADMAP.md` 기준으로 신규/후속 계획을 이어서 관리한다.
45+
- historical 보고서(`Reports/` 기존 파일)는 불변 이력 원칙에 따라 수정하지 않고, 경로 체계 변경은 본 보고서 이후 patch-forward 방식으로만 누적한다.

tests/oracle/CATEGORY_C_EXCEPTIONS.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ To be classified as Category C, an exception must satisfy all four of the follow
99
1. **Clear Technical Limitation**: The divergence is rooted in a specific architectural choice, environment constraint, or reference tool behavior.
1010
2. **Scoped Impact Count**: The number of affected signals or tests must be quantified.
1111
3. **No Feasible Alternative**: There's no trivial fix without breaking existing functionality or requiring a major refactor.
12-
4. **Backlog Entry**: The limitation must be tracked in the current canonical planning document (`ROADMAP.md` when active, or `NEXT_ROADMAP.md` / successor roadmap after close-out) for future resolution.
12+
4. **Backlog Entry**: The limitation must be tracked in the current canonical planning document (`Plans/ROADMAP.md` or successor roadmap under `Plans/`) for future resolution.
1313

1414
---
1515

@@ -23,7 +23,7 @@ The current oracle pipeline executes tests using a single-signal configuration.
2323
| Technical Limitation | PASS | Oracle `run_oracle.py` lacks multi-branch selection logic. |
2424
| Scoped Impact | PASS | 83 signals marked `skipped` in `ORACLE_RESULTS.md`. |
2525
| No Feasible Alternative | **RESOLVED** | Implemented `_generate_mux_vectors()` in `engine.py` (B-O2). |
26-
| ROADMAP Entry | PASS | Tracked under B-O2 (completed 2026-03-12). |
26+
| Backlog Entry | PASS | Tracked under B-O2 (completed 2026-03-12). |
2727

2828
**Category**: `cantools_oracle_limitation`
2929

@@ -35,7 +35,7 @@ Float32 rounding during the encode→decode cycle can introduce a ±1 LSB diverg
3535
| Technical Limitation | PASS | Inherent float32 rounding divergence in C vs Python. |
3636
| Scoped Impact | PASS | 227 value-level mismatches in corpus handled by tolerance. |
3737
| No Feasible Alternative | PASS | Floating-point behavior is non-deterministic across platforms. |
38-
| ROADMAP Entry | PASS | N/A (Intentionally covered by `tolerance.py` baseline). |
38+
| Backlog Entry | PASS | N/A (Intentionally covered by `tolerance.py` baseline). |
3939

4040
**Category**: `float32_rounding`
4141

@@ -47,7 +47,7 @@ The generated `valid` bitmask was a fixed `uint32_t`. Auto-widening (B-O3, v0.3.
4747
| Technical Limitation | PASS | Architectural choice of `uint32_t` for the `valid` field. |
4848
| Scoped Impact | PASS | Impact limited to complex industrial/heavy-duty DBCs. |
4949
| No Feasible Alternative | **RESOLVED** | Implemented auto-widening to `uint64_t` in `Codegen.fs` (B-O3, v0.3.2). |
50-
| ROADMAP Entry | PASS | Tracked under B-O3 (completed 0.3.2). |
50+
| Backlog Entry | PASS | Tracked under B-O3 (completed 0.3.2). |
5151

5252
**Category**: `valid_mask_width`
5353

@@ -65,7 +65,7 @@ Specific vendor DBCs contain syntax anomalies or 29-bit extended IDs that `canto
6565
| Technical Limitation | PASS | Reference decoder (`cantools`) cannot parse valid/used DBCs. |
6666
| Scoped Impact | PASS | 3 DBC files entirely excluded from oracle comparison. |
6767
| No Feasible Alternative | PASS | Requires a different reference decoder or `cantools` patch. |
68-
| Backlog Entry | PASS | After ROADMAP close-out, this remains tracked in `NEXT_ROADMAP.md` as the oracle reference-decoder incompatibility follow-up. |
68+
| Backlog Entry | PASS | After roadmap close-out, this remains tracked in active planning document `Plans/ROADMAP.md` as the oracle reference-decoder incompatibility follow-up. |
6969

7070
**Category**: `reference_decoder_incompatible`
7171

tests/oracle/ORACLE_RESULTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
**Date**: 2026-03-12 (B-O2 update)
44
**Commit**: `839e777` (oracle-failure-resolution boulder complete)
55

6-
> ⚠️ **Historical Snapshot**: 이 문서는 2026-03-12 시점의 통합 실행 결과 스냅샷입니다. Recommendation #1~#3 및 mux skip 이슈는 이후 세션에서 해결되었으며, 현재 상태 판정은 `ROADMAP.md` Tracking 섹션과 최신 `Reports/` 문서를 우선합니다.
6+
> ⚠️ **Historical Snapshot**: 이 문서는 2026-03-12 시점의 통합 실행 결과 스냅샷입니다. Recommendation #1~#3 및 mux skip 이슈는 이후 세션에서 해결되었으며, 현재 상태 판정은 `Plans/Archive/ROADMAP_202602_202603_Closed.md` Tracking 섹션, 활성 계획 `Plans/ROADMAP.md`, 최신 `Reports/` 문서를 우선합니다.
77
88
## Executive Summary
99

0 commit comments

Comments
 (0)