fix: wire orphaned SP022 fixture, sync DESIGN.md with implementation
This commit is contained in:
@@ -27,7 +27,7 @@ superpaper NEW(v1):读论文 / 笔记编排 skill(文档层)
|
|||||||
└─ superderive NEW(phase 2):stepwise algebraic derivation figures
|
└─ superderive NEW(phase 2):stepwise algebraic derivation figures
|
||||||
```
|
```
|
||||||
|
|
||||||
`superpaper` 是论文侧的 `youtube-render-pdf`:输入一篇论文,输出结构化中文 `.tex` 笔记 + 编译 PDF。它**不**生长 `superfig.sty`。所谓「抽象公式图像化」在 v1 是一个 **figure router**(决策表 + 委派契约),不是第三套绘图引擎。逐步改写图留给 phase 2 的 `superderive`;v1 笔记用 `align` / `aligned` 顶上。
|
`superpaper` 是论文侧的 `youtube-render-pdf`:输入一篇论文,输出结构化中文 `.tex` 笔记 + 编译 PDF。它**不**生长 `superfig.sty`。所谓「抽象公式图像化」在 v1 是一个 **figure router**(决策表 + 委派契约),不是第三套绘图引擎。逐步改写图在 phase 2 由 `superderive` 承接;v1 笔记用 `align` / `aligned` 顶上。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -704,7 +704,7 @@ source_assets:
|
|||||||
| 可选 bookkeeping:想在 figure plan 里留下「已路由到 align」 | 可填该 `F*` | 一行 `toolkit: align`,`include: null`,`request: null`,`signals` ⊆ derive;`status: included` 表示 writer 已把 `align` 写进讲义节 |
|
| 可选 bookkeeping:想在 figure plan 里留下「已路由到 align」 | 可填该 `F*` | 一行 `toolkit: align`,`include: null`,`request: null`,`signals` ⊆ derive;`status: included` 表示 writer 已把 `align` 写进讲义节 |
|
||||||
| v2 且必须看见取消/代入,或 >4 步 | 填 `F*` | `toolkit: superderive`,走 sibling 委派 |
|
| v2 且必须看见取消/代入,或 >4 步 | 填 `F*` | `toolkit: superderive`,走 sibling 委派 |
|
||||||
|
|
||||||
v1:任何 derive-class 行的 toolkit 必须是 `align`;`toolkit: superderive` → `SP022`(PR 4 起;PR 1–3 的 schema 虽允许该枚举值,但 example 不得使用)。phase 2 仍遵守 ≤4 步且无 `cancel-visual`/`subst-visual` ⇒ **必须** `align`(即使包已存在)。
|
v1:任何 derive-class 行的 toolkit 必须是 `align`;`toolkit: superderive` → `SP022`(仅在 `SUPERPAPER_PHASE=1` 时触发;缺省已是 2)。phase 2 仍遵守 ≤4 步且无 `cancel-visual`/`subst-visual` ⇒ **必须** `align`(即使包已存在)。
|
||||||
|
|
||||||
`toolkit: none` 只用于「考虑过、决定不出图」:`status: dropped`,`include: null`。这些组合**不是** `SP010`(`SP010` 只表示 toolkit ∉ `ACCEPTED[class]`)。由下面 `check_row(..., status, include, fig_id)` 给出独立码。
|
`toolkit: none` 只用于「考虑过、决定不出图」:`status: dropped`,`include: null`。这些组合**不是** `SP010`(`SP010` 只表示 toolkit ∉ `ACCEPTED[class]`)。由下面 `check_row(..., status, include, fig_id)` 给出独立码。
|
||||||
|
|
||||||
@@ -1330,7 +1330,7 @@ examples/excerpt-toy/
|
|||||||
| `SP016` | 2 | `included` ∧ `screenshot` ∧ `include ≠ figures/{id}/orig.png` |
|
| `SP016` | 2 | `included` ∧ `screenshot` ∧ `include ≠ figures/{id}/orig.png` |
|
||||||
| `SP020` | 4 | `status: core` 的 claim 在 `notes/**/*.tex` 无 `\splabel{C*}`(`coverage.mode=excerpt` 同样查 ledger 里列出的 core) |
|
| `SP020` | 4 | `status: core` 的 claim 在 `notes/**/*.tex` 无 `\splabel{C*}`(`coverage.mode=excerpt` 同样查 ledger 里列出的 core) |
|
||||||
| `SP021` | 4 | `include` 已是非空路径但 `<work>/notes/<include>` 不存在 |
|
| `SP021` | 4 | `include` 已是非空路径但 `<work>/notes/<include>` 不存在 |
|
||||||
| `SP022` | 4 | v1(`SUPERPAPER_PHASE` 缺省 1)出现 `toolkit: superderive` |
|
| `SP022` | 4 | v1(`SUPERPAPER_PHASE` 缺省 2,PR 7 已落地;仅当显式设为 1 时触发)出现 `toolkit: superderive` |
|
||||||
| `SP023` | 4 | 非 dropped 的新 id ∈ `retired_ids` |
|
| `SP023` | 4 | 非 dropped 的新 id ∈ `retired_ids` |
|
||||||
| `SP024` | 4 | `figures[].claim` / `derivations[].claim` 不是已有 `C*` |
|
| `SP024` | 4 | `figures[].claim` / `derivations[].claim` 不是已有 `C*` |
|
||||||
|
|
||||||
@@ -1612,7 +1612,7 @@ Provenance 写:「第三 sibling;不是从 superfig 长出来的。superpape
|
|||||||
|
|
||||||
## Rollout Plan
|
## Rollout Plan
|
||||||
|
|
||||||
本地 skill。开关是 **lint 码启用表 + `SUPERPAPER_PHASE`(缺省 1)**。依赖链是 **1 → 2 → 3 → 4**;PR 5 与 PR 6 可与该链并行;**只有 PR 7** 把 phase 默认改为 2。
|
本地 skill。开关是 **lint 码启用表 + `SUPERPAPER_PHASE`(缺省 2,PR 7 已合入)**。依赖链 1→2→3→4、PR 5/6 并行,均已完成;**只有 PR 7** 负责 phase 缺省翻转,2026-08-17 已随 `e6918ff` 落地。
|
||||||
|
|
||||||
1. PR 1:skill 可跑无委派笔记。`router.py` **完整**(class / `ACCEPTED` / `SPLIT` / `check_row`),但 lint **不**跑 `SP010–SP016`。SKILL 写「委派是后续 PR」。
|
1. PR 1:skill 可跑无委派笔记。`router.py` **完整**(class / `ACCEPTED` / `SPLIT` / `check_row`),但 lint **不**跑 `SP010–SP016`。SKILL 写「委派是后续 PR」。
|
||||||
2. PR 2:启用 `SP010–SP016`;superfig 委派 example(出生即带 `\splabel`)。
|
2. PR 2:启用 `SP010–SP016`;superfig 委派 example(出生即带 `\splabel`)。
|
||||||
|
|||||||
@@ -49,6 +49,16 @@ do
|
|||||||
expect_ledger "$ROOT/tests/ledger-invalid/$f" "$c"
|
expect_ledger "$ROOT/tests/ledger-invalid/$f" "$c"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
out=""
|
||||||
|
if out=$(SUPERPAPER_PHASE=1 "${LINT[@]}" --ledger "$ROOT/tests/ledger-invalid/superderive-v1.yaml" 2>&1); then
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
if echo "$out" | grep -q "SP022" && echo "$out" | grep -q "SP010"; then
|
||||||
|
ok "superderive-v1.yaml (SP010+SP022, phase=1)"
|
||||||
|
else
|
||||||
|
bad "superderive-v1.yaml (wanted SP010+SP022 with SUPERPAPER_PHASE=1)"
|
||||||
|
fi
|
||||||
|
|
||||||
expect_work() {
|
expect_work() {
|
||||||
local dir="$1" code="$2"
|
local dir="$1" code="$2"
|
||||||
local out
|
local out
|
||||||
|
|||||||
Reference in New Issue
Block a user