← all repositories

resolve-questions

3 work segments · 8 turns · 0 of 99 commits attributed
· click a segment to open it
2026-08-24 13:36 → 13:360.0h · 0 commits · 0 asked · 1 replied · session 089760b2
the exchange, in order (1)
13:36 · replied# acci-vlm — read-only study report Root: `/Users/liwimoi/projects/acci-vlm` (git repo, last commit `6a4c7e6`, 2026‑07‑08). 6.6 GB of the 6.8 GB is `sample_data/` video. --- ## (A) REUSABLE SOURCE DATA — what annotated data exists, and who made the labels ### A1. The clip corpus: AI Hub #597, machine-shipped labels, **NOT hand-made by this team** | path | count | shape | |---|---|---| | `/Users/liwimoi/projects/acci-vlm/sample_data/benchmark_1000/videos/` | **1000** `.mp4` | dashcam clips (6.0 GB) | | `/Users/liwimoi/projects/acci-vlm/sample_data/benchmark_1000/labels/` | **1000** `.json` | one verbatim AI Hub label per clip | | `/Users/liwimoi/projects/acci-vlm/sample_data/benchmark_100/videos/` | **100** `.mp4` | curated subset (592 MB) | | `/Users/liwimoi/projects/acci-vlm/sample_data/benchmark_100/labels/` | **100** `.json` | same | | `…/benchmark_{100,1000}/manifest.{csv,jsonl}` | 1 each | decoded label table (55 KB / 505 KB CSV) | The 100 set is an exact subset of the 1000 set (verified: `comm -12` on label filenames = 100). **Label shape — the entire per-clip annotation is this one flat record** (`sample_data/benchmark_100/labels/bb_1_000101_vehicle_123_046.json`, full contents): ```json {"info": {...}, "video": {"video_name": "bb_1_000101_vehicle_123_046", "video_date": "000101", "filming_way": "bb", "video_point_of_view": 1, "accident_negligence_rateA": 30, "accident_negligence_rateB": 70, "accident_object": 0, "accident_place": 5, "accident_place_feature": 22, "vehicle_a_progress_info": 57, "vehicle_b_progress_info": 64, "damage_location": "", "related_laws": "", "violation_of_law": "", "additional_elements": "", "violation_factor": "", "weather": "", "traffic_accident_type": 126}} ``` Critical properties for reuse: - **Clip-level only.** No time…
2026-08-31 01:15 → 01:220.1h · 0 commits · 2 asked · 3 replied · session c9748f57
the exchange, in order (5)
01:15 · replied네, **resolve-questions가 맞습니다.** 다만 처음부터 그랬던 건 아니고 knia-dag에서 갈아탄 겁니다. (`ams-demo-0` 은 지금 `assist-demo` 로 이름이 바뀌어 있습니다 — `AMS_PORTFOLIO_STATUS.md:239`) ## 계보 ``` knia-dag/dist/ registry.json(166 fields) + clean-table.json(123 leaves) + engine.mjs manifest.json: "Downstream bundle for ams-demo-0" ↓ 폐기 resolve-questions/proposal/ question-set.v2.json + rules.v2.json ↓ 2026-08-10 vendoring assist-demo/catalogue/ → npm run build:rules → lib/match/rules.json ``` 교체 시점은 `assist-demo/docs/DECISIONS.md:63` 에 남아 있습니다 — **A-8: "Moot — knia-dag's engine was deleted; the matcher runs on `rules.v2.json`"**. knia-dag의 `dist/manifest.json` 은 아직도 `_meta.what` 에 "Downstream bundle for ams-demo-0"라고 쓰여 있고 docs는 `../ams-demo-0` 를 가리키는데, 그 소비자는 이미 없습니다. ## 질문 간 관계 = `dependsOn` 게이트 vendored 사본에서 직접 센 값입니다: - **121개 질문 중 64개가 게이트를 갖고, 57개가 root** — 두 집합이 정확히 분할 - 절 76개, `op` 은 `all` 60 / `any` 4, **절은 절대 중첩 안 됨**, 비순환, 최대 깊이 3 - 형태: `{op, clauses:[{questionId, subject, field, values}]}` — `values` 는 동등이 아니라 멤버십 `docs/AX-INTERFACE.md:106` 이 이걸 AX에 넘기는 계약으로 문서화해뒀고, 핵심 문장이 좋습니다 — *"You are not required to honour the gate... 전제가 거짓인 질문은 대개 일어나지 않은 사건에 대한 질문이라(양쪽 다 좌회전 안 했는데 좌회전 신호를 묻는 식), 거기에 추론을 쓰는 건 아무것도 못 산다."* 즉 **강제 트리워크가 아니라 추론 예산 절약용 힌트**로 설계돼 있습니다. ## 가감산 같은 파일의 `modifiers` 146행. `deltaRange{min,max}` (고정값 아님), `exclusiveGroup`, `activation.kind`, `askable` 113개. 결합 규칙은 rules.v2 쪽 7 policies(캡·배타·[0,100] 클램프)입니다. ## 짚어둘 것 — vendored 사본과 resolve-questions가 이미 갈라졌습니다 | | resolve-questions 현재 | assist-demo vendored | |---|---|---| | question-set 구조 | 단일 배열 254 (+`layer`/`role`) | `questions` 121 + `modifiers` 146 분리 | | rules requirements | 2,527 | 2,439 | | sha256 | 둘 다 불일치 | | 이건 사고가 아니라 `DECISIONS.md:130` 의 명시적 결정입니다 — *"frozen baseli…
01:17 · asked겹침을 재본다기보다, 이제 마지막 한달을 위해 제대로 된걸 만들고 프리즈해야돼. 모든 지표들이 이제 여기에 맞춰질꺼고, 질문들의 문제를 다 해결하는 작업을 해야하는거야. 무슨 말인지 알아?
01:17 · replied무슨 말인지 알겠습니다. 다만 확인 전에 근거를 갖고 되짚고 싶으니, resolve-questions의 미결 목록부터 실제로 보겠습니다.
01:19 · replied네, 알겠습니다. 제가 이해한 걸 되짚어 보겠습니다 — 틀린 데가 있으면 여기서 잡아 주세요. ## 제가 이해한 것 **프리즈된 질문 세트가 앞으로 모든 숫자의 분모가 됩니다.** 추출 정확도, CV/VLM 등급별 성능, 데모에서 KB에 보여줄 수치 — 전부 "이 질문에 대해 맞았나"로 정의됩니다. 그래서 지금 질문 하나가 틀린 채로 얼어붙으면, 그건 버그 하나가 아니라 **영구적으로 잘못된 지표 하나**가 됩니다. 나중에 고치면 이전 측정값이 전부 비교 불가가 되고요. 그래서 남은 한 달의 작업은 "더 만들기"가 아니라 **미결을 남기지 않고 닫기**입니다. 지금까지의 규율 — `NEXT.md` 의 *"A finding that belongs to a later phase gets recorded, not chased"* 와 §5 deferred 목록 — 이 끝난다는 뜻으로 읽었습니다. §5에 남아 있는 항목은 프리즈되는 순간 "연기된 것"이 아니라 **확정된 결함**이 되니까요. ## 확인해야 할 사실 두 가지 (제가 방금 재봤습니다) **1. resolve-questions의 README가 stale합니다.** "34 checks, 0 defects"라고 적혀 있는데, 지금 `node verify/ledger.mjs` 를 돌리면: ``` 검사 44개 · 지금 걸린 결함 23건 (통과 39 · 실패 5) · X1 open 상호배타 답이 여러 질문에 흩어져 있고 배타성을 강제하는 게 없다 (8) · X12 open KNIA가 명시한 사실인데 결정에 도달하지 못한 것 (7) · X11 open 브랜치가 요구하는데 어떤 질문으로도 표현 못 하는 사실 (4) · X6 open 모델이 아무 반응도 하지 않는 답 (3) · W4 open 한 질문이 두 레이어에 각각 발행됨 (1) ``` 게다가 `t15`/`t18` 리포트가 질문 세트보다 오래됐습니다. **이 23건이 프리즈 전 워크리스트의 뼈대**입니다. "0 defects"를 믿고 시작하면 안 됩니다. **2. 그리고 두 프로젝트가 이미 같은 곳에 서 있습니다.** `NEXT.md` 의 데모 스코프가 **「같은 방향 진행차량 상호 간의 사고」 23개 도표** — new-knia와 정확히 같은 브랜치입니다. 우연이 아니라 양쪽이 독립적으로 같은 결론에 도달한 거고, 이건 합치기 좋다는 뜻입니다. ## 그런데 결정이 필요한 게 두 개 있습니다 **(A) 무엇이 프리즈 대상인가.** 같은 23도표에 대해 두 벌이 있습니다 — resolve-questions(61 라우팅 + 64 수정요소, AX/assist-demo가 이미 말하는 계약)와 new-knia(87 가드 + 166 수정요소행, 증거·임계값·인지 발주서까지 있음). > **제 권고: resolve-questions를 프리즈 대상으로 하고, new-knia를 경쟁 세트가 아니라 그 안으로 들어가는 공급원으로 강등합니다.** 계약이 이미 존재하고 AX가 그걸 향해 짓고 있는 쪽을 바꾸는 건 한 달에 할 일이 아닙니다. 대신 new-knia가 가진 것 — `thresholds.yaml` 의 band, `confirmation_path` 3분법, 그리고 무엇보다 **인쇄본 대조 감사에서 나온 166행 중 87행 불일치** — 를 resolve-questions의 64개 수정요소에 대고 맞춰 봅니다. 그게 X12(7건)의 상당 부분을 실제로 닫아…
01:22 · asked하...근데 또 베트남 팀은 ams-demo-0 에 있는 레지스트리 기준으로 작업하고 있단 말이야.
2026-08-31 03:17 → 2026-09-01 00:4121.4h · 0 commits · 1 asked · 1 replied · session c9748f57
the exchange, in order (2)
03:17 · replied**resolve-questions** 입니다. 형이 기억하시는 시각화는 두 갈래로 나옵니다. ## 그래프 DB — Neo4j `out/QUERIES.md` 에 적재 절차가 그대로 있습니다: ```bash node verify/export-cypher.mjs docker run -d --name knia -p7474:7474 -p7687:7687 -e NEO4J_AUTH=neo4j/knia1234 neo4j:5 cat out/graph.cypher | docker exec -i knia cypher-shell -u neo4j -p knia1234 open http://localhost:7474 ``` `out/knia.grass` 가 Neo4j Browser 스타일시트라, 브라우저에서 색·크기까지 입혀진 상태로 보였을 겁니다. 그래서 기억에 남으신 것 같습니다. 적재되는 그래프 (최종 빌드 8월 24일): ``` 노드 :Value 578 · :Question 254 · :Case 124 · :Chart 108 · :Step 50 · :Policy 7 간선 USES 1,720 · ADJUSTS 917 · HAS_VALUE 578 · LEADS_TO 281 PRESUPPOSES 68 · DERIVED_FROM 28 · GOVERNS 7 ``` ## 두 번째 시각화 — Neo4j 없이 보는 것 `out/viewer.html` (940KB, 단일 파일). `verify/export-viewer.mjs` 가 만듭니다. README 설명이 *"the graph as one sendable file, no Neo4j"* — 도커 없이 그냥 열리고 그대로 보낼 수 있는 물건입니다. 형이 본 게 이쪽일 수도 있습니다. 곁에 `out/guide.html`, `out/review-50.html`, `out/scope-review.html` 도 같은 계열입니다. ## 중요한 단서 — 그래프는 모델이 아닙니다 README 68행이 못을 박아 뒀습니다: > *"Not a knowledge graph, not an ontology, not a decision tree (the tree is induced per case), no probabilities anywhere. **`out/graph.cypher` is a visualisation export, not the model.**"* 즉 그래프 DB는 **런타임 경로가 아니라 검사·설명 도구**입니다. 그런데 그게 오히려 지금 유용한 지점이 있습니다 — ledger의 G1~G4가 전부 그래프 검사입니다: | | | |---|---| | G1 | 그래프가 원래의 룰을 재현하지 못한다 | | G2 | 네비게이션 간선이 결정할 게 있는데 없다고 말한다 | | G3 | 같은 것이 노드 두 개라 그래프가 크기를 말할 수 없다 (중복 노드 138건 잡음) | | G4 | 간선을 걸어도 사건이 요구하는 걸 확정하지 못한다 | **룰을 그래프로 내보내서 원본과 대조하는 것 자체가 검사**인 구조입니다. 전부 개편하는 상황에서 이건 이월 가치가 있습니다 — 새 룰엔진을 짜고 나서 "정말 룰대로 도표에 도달하는가"를 눈으로 확인할 수 있는 유일한 장치니까요. ## 가감산 정책도 여기 살아 있습니다 `:Policy` 7개가 그래프 안에 노드로 들어가 있고, `GOVERNS` 간선으로 어느 행을 지배하는지 걸려 있습니다: ``` policy.bounds 최종 0~100, 합 100. 위반 시 자르지 않고 거부 policy.severity.exclusive 현저한 과실 ↔ 중대한 과…
00:41 · askedresolve-questions, knia-dag, new-knia 다 다른 정보를 원천으로 쓰고 있나? pdf, web crawl, web crawl (new version of their website)