# 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:` 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): ```diff -| ... | 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/`, pattern `html_to_slide_mdx|edited_html_to_mdx|reverse_path|reverse-path|reversePath|html-to-mdx`): hits=1 at `src/phase_z2_verification_utils.py:68`, classified **docstring-only** inside `extract_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 SlideCanvas `outerHTML` capture; no `fetch`/`axios` to 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): ```diff -| ... | 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 to `documented: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). - **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: ```diff @@ 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.md` ONLY (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`, or `docs/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 diff` post-edit MUST show exactly 2 line changes in `PHASE-Z-IMPLEMENTATION-ISSUE-BACKLOG.md` and 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.