Compare commits

..
2 Commits
5 changed files with 17 additions and 7 deletions
+4 -4
View File
@@ -27,7 +27,7 @@ superpaper NEW(v1):读论文 / 笔记编排 skill(文档层)
└─ 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` 写进讲义节 |
| 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)` 给出独立码。
@@ -1330,7 +1330,7 @@ examples/excerpt-toy/
| `SP016` | 2 | `included` ∧ `screenshot` ∧ `include ≠ figures/{id}/orig.png` |
| `SP020` | 4 | `status: core` 的 claim 在 `notes/**/*.tex` 无 `\splabel{C*}`(`coverage.mode=excerpt` 同样查 ledger 里列出的 core) |
| `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` |
| `SP024` | 4 | `figures[].claim` / `derivations[].claim` 不是已有 `C*` |
@@ -1612,7 +1612,7 @@ Provenance 写:「第三 sibling;不是从 superfig 长出来的。superpape
## 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」。
2. PR 2:启用 `SP010–SP016`;superfig 委派 example(出生即带 `\splabel`)。
+10
View File
@@ -49,6 +49,16 @@ do
expect_ledger "$ROOT/tests/ledger-invalid/$f" "$c"
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() {
local dir="$1" code="$2"
local out