11 KiB
u5 — Backlog status correction proposal (L51 + L67)
Unit: u5 backlog_status_correction_proposal
Output kind: evidence-only draft (RULE 6). NOT applied here. Will be applied in u7.
Target file: docs/architecture/PHASE-Z-IMPLEMENTATION-ISSUE-BACKLOG.md
Lines targeted: L51 (IMP-07), L67 (IMP-16)
Edit shape: exactly 1 status-cell token change per row; no surrounding rewrite, no schema change.
§1 Status-vocabulary precedent in the existing file
Existing status tokens already present in the table (verified read-only):
| line | row | status (current) |
|---|---|---|
| L45 | IMP-01 | pending |
| L46–L55 (most) | IMP-02 .. IMP-15 | implemented |
| L68 | IMP-17 | documented (deferred) |
| L69 | IMP-18 | documented |
| L70 | IMP-19 | documented |
| L71 | IMP-20 | documented |
Therefore documented:<qualifier> is a minimal extension of an already-present token family (documented / documented (deferred)). It does NOT introduce a new schema, it disambiguates the close reason on a per-row basis. This matches §3 Q2 of the issue body: "propose corrected status (implemented / implemented:partial / documented:dormant / documented:no-runtime / etc.)" — the qualifier suffix form is explicitly enumerated by the issue body itself.
§2 L51 IMP-07 — current cell text (verbatim, no transformation)
| IMP-07 | B-2 Edited HTML → MDX reverse path | Step 22 + Step 1, 2 | §2 B-2 새로 만들기 (backend path) | medium | frontend edited HTML → backend → MDX 변환 → pipeline 재진입 (글벗 `html_to_slide_mdx` 참조) | AI/Kei reverse 회귀 X / 재진입 후 step02 정합 + visual_check 통과 | hard link: IMP-02 (A-1 normalize schema 와 reverse path schema 정합 필요) | implemented |
Token to change: the final pipe-delimited cell implemented (last token before the row-terminating |).
Proposed: documented:no-runtime
Resulting cell text (single-line diff form):
-| ... | hard link: IMP-02 (A-1 normalize schema 와 reverse path schema 정합 필요) | implemented |
+| ... | hard link: IMP-02 (A-1 normalize schema 와 reverse path schema 정합 필요) | documented:no-runtime |
Evidence supporting the L51 change
- c.17970 (Gitea issue #7, 2026-05-15T18:28:22+09:00) — initial close decision:
<< 해당 기능 필요 없음 >>/(*) mdx → html 변환 이후 html 수기 수정된 것은 html에서만 적용.(u2 §3 verbatim). - c.19226 (Gitea issue #7, 2026-05-18T08:31:05+09:00) — full structured no-runtime audit. Section 5:
"코드 변경 없이 close했다. 이슈는 '구현 완료'가 아니라 '기능 불필요 / 현 정책상 reverse path 미진행'으로 정리한다."(u2 §4 verbatim). - c.19240 (Gitea issue #7, 2026-05-18T08:41:19+09:00) — restated v2 result report:
"이 이슈는 코드 변경 없이 정책 판단으로 close했다."(u2 §5 verbatim). - u3 BE grep (
src/, patternhtml_to_slide_mdx|edited_html_to_mdx|reverse_path|reverse-path|reversePath|html-to-mdx): hits=1 atsrc/phase_z2_verification_utils.py:68, classified docstring-only insideextract_text_from_html()whose own docstring states "deterministic, pure: no I/O, no LLM, no network". This is NOT a backend adapter, NOT an HTML→MDX converter, NOT a pipeline re-entry point. - u3 FE grep (
Front/client/src/, same pattern): hits=0. No SlideCanvasouterHTMLcapture; nofetch/axiosto reverse-path endpoint; no symbol reference anywhere in the FE bundle. The 0-hit is a true absence (FE tree is populated —App.tsx,components/,pages/,services/, etc.).
Rationale (axis-by-axis)
| axis | current implemented claim |
actual state | corrected token |
|---|---|---|---|
| Gitea #7 close evidence | implies runtime shipped | policy close, no runtime (c.17970/19226/19240) | documented:no-runtime |
BE code (src/) reverse-path adapter |
implies adapter module present | only docstring reference in a pure text extractor | documented:no-runtime |
| FE code payload path | implies trigger surface present | 0 hits, no trigger | documented:no-runtime |
| Backlog row purpose preservation | row remains useful as a registry pointer | docstring + design intent + #7 close-trio remain documented | documented family, suffix :no-runtime |
Why not implemented:partial: c.19226 §3 enumerates the absence of every required surface (no backend POST, no /api/edit | /api/html_to_mdx | /api/save, no html_to_slide_mdx). Partial implies some runtime substrate exists; none does.
Why not plain documented or documented (deferred): those tokens are used by IMP-17/18/19/20 to mean "design captured, runtime deferred pending future activation". IMP-07 is a stronger statement — closed as policy / no-runtime, with explicit close-trio evidence. The :no-runtime suffix encodes that distinction so future readers can tell IMP-07 apart from IMP-18 (gap report only) and IMP-17 (carve-out, deferred under explicit activation gate).
§3 L67 IMP-16 — current cell text (verbatim, no transformation)
| IMP-16 | B-2 verification 보조 axis | Step 1, 2, 14, 21, 22 | §3 H3 Reference Only | ↓ low | B-2 reverse path 의 verification 보조. main reverse path 는 IMP-07, 본 issue 는 text/visual/trace 검증 layer | AI/Kei verification 회귀 X / utility deterministic | hard link: IMP-07 (B-2 main 활성 시점 의미) | implemented |
Token to change: the final pipe-delimited cell implemented (last token before the row-terminating |).
Proposed: documented:dormant
Resulting cell text (single-line diff form):
-| ... | hard link: IMP-07 (B-2 main 활성 시점 의미) | implemented |
+| ... | hard link: IMP-07 (B-2 main 활성 시점 의미) | documented:dormant |
Evidence supporting the L67 change
- Dependency cell (unchanged):
hard link: IMP-07 (B-2 main 활성 시점 의미). The row itself declares that IMP-16's meaning is conditioned on IMP-07's activation. With IMP-07 corrected todocumented:no-runtime, the IMP-07 activation gate is closed. - u4 gate evaluation (cited from
.orchestrator/drafts/56_imp16_deferred.md§2): all three IMP-16-U2-WIRING-DESIGN.md gate clauses (lines 14–16) are NOT CLEARED:- IMP-07
implemented + verified→ NOT CLEARED (policy close, no runtime). src/non-test module reverse-path hit → NOT CLEARED (only docstring hit).- Reverse-path emits re-entry MDX + upstream HTML → NOT CLEARED (no emitter exists).
- IMP-07
- u4 §3 per-item resolution: all 3 deferred items in
IMP-16-U2-WIRING-DESIGN.md(L71–L73) classified DORMANT against u2 + u3.
Rationale
| axis | current implemented claim |
actual state | corrected token |
|---|---|---|---|
| Hard link to IMP-07 | implies IMP-07 active → IMP-16 meaningful | IMP-07 = documented:no-runtime, gate closed |
documented:dormant |
| Verification utilities themselves | utilities deterministically present in code | utility code exists in src/phase_z2_verification_utils.py, but it has no caller because the reverse-path emitter doesn't exist |
documented:dormant (utility-shaped, runtime-dormant) |
| IMP-16-U2-WIRING-DESIGN.md 3 deferred items | implies resolvable | all 3 DORMANT pending IMP-07 reactivation | documented:dormant |
Why not documented:no-runtime (same token as IMP-07): IMP-16 is not closed as a policy decision; its verification helpers are code-present (extract_text_from_html etc. live in src/). The runtime is dormant because the upstream caller (IMP-07 reverse-path adapter) is closed-as-no-runtime. The :dormant suffix captures "code-shape present, runtime entry-point absent". This matches §3 Q3 issue-body language: "reclassify item as dormant pending reverse-path reactivation".
Why not documented (deferred) (same form as IMP-17): IMP-17 has an explicit 3-condition activation gate documented in IMP-17-CARVE-OUT.md. IMP-16 has no independent activation gate — it is purely downstream of IMP-07. :dormant distinguishes downstream-blocked from carve-out-deferred.
§4 Combined diff preview (target = u7 application)
docs/architecture/PHASE-Z-IMPLEMENTATION-ISSUE-BACKLOG.md, exactly 2 line changes, both in the final status-cell token:
@@ L51 IMP-07
-| ... | hard link: IMP-02 (A-1 normalize schema 와 reverse path schema 정합 필요) | implemented |
+| ... | hard link: IMP-02 (A-1 normalize schema 와 reverse path schema 정합 필요) | documented:no-runtime |
@@ L67 IMP-16
-| ... | hard link: IMP-07 (B-2 main 활성 시점 의미) | implemented |
+| ... | hard link: IMP-07 (B-2 main 활성 시점 의미) | documented:dormant |
Surrounding cells (id, title, related step, source, priority, scope, guardrail, dependency) are unchanged byte-for-byte in both rows.
Adjacent rows (L50 IMP-06, L52 IMP-08, L66 IMP-15, L68 IMP-17) are untouched. Headers, footnotes, §1 / §2 boundary markers, IMP-15 child note (L73) — all untouched. The §1 column-count of 9 (id / title / step / source / priority / scope / guardrail / dep / status) is preserved on L51. The §2 column-count of 9 is preserved on L67. Markdown table validity preserved.
§5 u5 acceptance verification (Stage 2 plan)
- ✅ Test 1 — "L51 IMP-07: implemented -> documented:no-runtime (c.17970/19226/19240)": §2 above proposes exactly that, citing all three close-trio comment IDs verbatim against u2 evidence.
- ✅ Test 2 — "L67 IMP-16: implemented -> documented:dormant (blocked-by IMP-07)": §3 above proposes exactly that, citing the hard link to IMP-07 and u4 gate-closure evidence.
- ✅ Test 3 — "exactly 1 status-cell change per row; no surrounding rewrite": §4 above shows both rows have exactly one token replaced (
implemented→documented:no-runtime/documented:dormant); all other 8 cells per row are unchanged.
§6 Scope-lock compliance
- u5 created
.orchestrator/drafts/56_backlog_diff.mdONLY (evidence-only, RULE 6, not staged for commit). - u5 did NOT edit
PHASE-Z-IMPLEMENTATION-ISSUE-BACKLOG.md. That edit is u7's scope. - u5 did NOT touch
src/**,templates/**,tests/**,docs/architecture/IMP-16-U2-WIRING-DESIGN.md, ordocs/architecture/INTEGRATION-AUDIT-02-REPORT.md. - No live Gitea API call.
- No new evidence introduced beyond u2 + u3 + u4 (this is a status-rewrite proposal, not a fresh investigation).
§7 Downstream consumers of this draft
- u6 (next, INTEGRATION-AUDIT-02-REPORT.md Section 5 = Backlog status correction proposal) will inline-cite this draft's §2 / §3 / §4 with the same diff blocks.
- u7 (final, BACKLOG.md L51 + L67 status-cell edit) will apply exactly the §4 diff, no more, no less.
git diffpost-edit MUST show exactly 2 line changes inPHASE-Z-IMPLEMENTATION-ISSUE-BACKLOG.mdand zero changes anywhere else.
Source evidence chain (u1 → u5)
- u1
.orchestrator/drafts/56_scope_lock.md— scope binding (allowed writes = REPORT.md create, BACKLOG.md L51+L67). - u2
.orchestrator/drafts/56_close_evidence.md— c.17970 / c.19226 / c.19240 verbatim. - u3
.orchestrator/drafts/56_code_grep.md—src/hits=1 (docstring only),Front/client/src/hits=0. - u4
.orchestrator/drafts/56_imp16_deferred.md— 3 deferred items DORMANT. - u5 (this file) — L51 + L67 status-cell diff proposal.