-
缺值类(A)改为 stage 自主决策继续并登记 decisions[];结构违约/重试耗尽(B/C)经新增 adjudicate() 仲裁 retry/continue/halt(runStage/runAction 包装,ADJUDICATE_MAX=3);dirty 工作树自主恢复(带分支护栏, 非功能分支/越界改动仍 halt)。review 软5/硬8 轮;docs/08 checkbox 降级为纯可视化(req-done tag 为真值)。 硬边界保持: merge 冲突 / invalid-projectRoot / assertSafeId 注入护栏 / 红色测试绝不 continue 跳过 (verify/reverify/tdd/report allowContinue:false)。JS HALT throw 37->26。
-
validate-ddl now recognizes the db-init A.1 DDL form (CREATE TABLE → CREATE INDEX → ALTER TABLE ADD FK), so schemas with out-of-body indexes/ FKs no longer report false-positive index/FK diffs. Adds a second parse pass (mergeStandaloneIndexes / mergeStandaloneForeignKeys), string-literal blanking so DEFAULT/COMMENT text isn't mistaken for real DDL, backtick non-ASCII identifier support across all matchers (H3), and shared index- column normalization (strip backtick / prefix-length / ASC|DESC) on both docs and DDL sides. Chinese 主键/唯一 index labels map to PRIMARY/UNIQUE. apply-ddl resolves mysql2 from the target project dir (not the plugin), rejects 【人工填写】 credential placeholders before connecting, and exits 2 on missing config/DDL paths. setup-test-db template validates schema as an ASCII identifier before interpolating it into DROP/CREATE. db-init gains a B.1 toolchain precheck (mysql2 module + mysql client) before any DROP.
-
- db-design-gen: drop unused `AskUserQuestion` grant (the A0 convention- confirm step was removed; conventions are now fixed in step B). Update the stale README A3 row that still described the dropped AskUserQuestion flow. - downstream-gen: drop unused `Skill` grant (terminal A step — it stops for /plan-start, never dispatches). - skeleton-gen: QA banner 产出清单 referenced docs/07, which was removed (the skill itself states A2 no longer emits docs/06/07/09) → drop it. - project-init: align description with body + README — dependency check is auto-install-then-stop, not give-instructions-and-stop.
-
- check 1 grep set: remove `待补` — it is used nowhere as a placeholder convention (real tokens are 【人工填写:…】 / TBD(...) / {{...}}), so it matched nothing. - replace the inaccurate "(与 scope-lock E.1 同集合)" note: this terminal gate greps a superset (`{{` + `TBD` + `【人工填写`) precisely because the TBD(A3/A5 自动补) placeholders legitimately deferred at A1 must be resolved by now — explaining the value-add over E.1 instead of claiming false parity. -
- docs/10 was generated once at A5 and never read back by any skill, workflow, or gate (the `acceptance` hits elsewhere are the per-REQ card field, unrelated). Removing it costs the pipeline nothing. - delete docs-10-header-template.md; drop step E + its checkbox, banner entry, description mention, and reference-list entry from the skill; renumber old step F → E. - drop the docs/10 checkbox from docs-08-initial-template.md. - update README (A5 flow line, A5 table row, template-table row).
-
- docs-05 header: collapse the `## 全局约定` block (response-format JSON + auth/pagination placeholders) into a single pointer to docs/04 (the conventions SSoT). Also fixes a broken ref — it cited "docs/04 § 1.4 错误码段位", but § 1.4 is 统一响应格式 and no such section exists. - docs-02: remove the free-form `## 三、关键说明 {{notes}}` filler section (the skill defines no source for it). -
- resolveDbConfig only ever received the 5 DB_* keys dbEnvFromConfig emits; the MYSQL_*/DB_PASS/DB_NAME fallbacks had no producer (dead speculative generality, a dotenv-era leftover). Remove them. - collapse the config → DB_* env-shape → connection two-hop: resolveDbConfig now reads config.database.{host,port,user,password,schema} directly, and dbEnvFromConfig is removed. - CLI contract (node apply-ddl.mjs <configPath> <ddlPath>), the only caller via db-init, is unchanged. - rewrite tests to the parsed-config shape; drop the alias-only tests. 53 pass. -
- step B: remove the inline `node -e` mysql SELECT-1 probe (3rd copy of the YAML parser + a connection test C.1 setup-test-db.mjs already performs); keep only the cheap 5-field non-empty/placeholder credential check, fold the Glob existence check into Read, drop now-unused Glob from allowed-tools - checkboxes: A.3 → `DDL ↔ docs/03 5 维一致(validate-ddl.mjs)`; drop the misleading "apply 后 5 维一致" item in D (apply does not change V1, nothing re-validates); rename the creds checkbox to "5 项非空校验通过" - sync the A4 block in docs-08-initial-template.md (5 → 4 sub-items) - update frontmatter description to match the new flow
-
…0 convention machinery - schema 约定(iIncrement 主键 / sId 业务ID / sBrandsId+sSubsidiaryId 多租户 / tCreateDate / 匈牙利前缀)从「A0 询问 + 可配置 {{}} 占位 + docs/04 § 四」改为**固定写死**在 docs-03-header-template + docs-03-table-template - remove A0 step(约定固定,无需向用户确认);B 内联引用固定标准列(去掉指向尚未生成的 docs/03 的前向引用);C.1/C.2 去掉 {{PK_CONVENTION}}/{{TENANT_COLS}}/{{COL_PREFIX_RULE}} 填充/展开 - docs/04 § 四 不再被任何环节创建或引用(schema 约定单一来源 = docs/03) -
- delete docs-07-env-template.md (§一 依赖↔docs/04 §零; §二 端口↔config-vars.yaml; §四 命令↔docs/04 §零 build/lint/unit/e2e; §三 规则折入 config-vars.yaml 头) - skeleton-gen: B.1 (gen docs/07) removed → B = just append docs/04 §一+; add 'A2 不再单独出 docs/06/07/09 — 各内容归属' note; frontmatter/checkbox/E.1-scan/参考 drop docs/07 - config-vars.yaml header: + 2 guardrails (配置值不散落; base_package 锁定后复用) - plan-start drop 'docs/07 仅承载规则' note; docs-08 checkbox; README A2 row + template table
-
- docs-04 template: remove § 2.5 样式与主题 (tokens live in src/styles/tokens.css) + § 3.5 配置与安全 (config in config-vars.yaml, rules in docs/07→now config-vars header) - styles-tokens-template.css: fix 3 stale docs/06 refs missed in the earlier docs/06 removal (greps had excluded *.css) → self-contained '色值单一来源 / SSoT' - coding.mjs: frontend ref §一 前端架构 → §二 前端规范 (§一 is 后端); backend drop frontend §2.1 → §1.2 分层; 样式/色值 → tokens.css; remove docs/07 from value-lookup order
-
- delete docs-09-structure-template.md (its § 二/§ 三 dir layout duplicated docs/04 § 1.2/2.1; § 四 docs-tree was a self-referential maintenance trap; § 五 overlapped docs/04) - skeleton-gen B.1 now generates only docs/07; B.2 captures backend/frontend dir layout into docs/04 § 1.2/2.1; frontmatter/checkbox/参考 drop docs/09 - coding.mjs (6 refs): file placement -> docs/04 § 1.2/2.1; frontend root -> frontend/ convention; cross-module path->module -> docs/08 § 二 路径: field - CLAUDE-template rule #2 -> docs/04 § 1.2/2.1; docs-08 checkbox + README A2/template-table drop docs/09
-
- delete lib/merge-gitignore.mjs + merge-gitignore.test.mjs: over-engineered for a once-run greenfield step (base .gitignore usually absent; duplicate ignore patterns are harmless) - D now uses C.1-style Read+Write: Write template if no .gitignore, else append missing lines (consistent with render.mjs removal + scope-lock direct-write) - removes the 'pre-Write empty .gitignore' fragility (Write self-creates); skeleton-gen drops Bash(node *) from allowed-tools
-
尾部 6/6 reset-test-db 与下次运行的 1/x setup-test-db 重复(都 DROP+CREATE),对正确性零贡献;删除后闸门为 detect→setup→build→lint→test→e2e,重编号 1/5..5/5。
-
- C.1: stop generating sql/migrations/.gitkeep (A4 db-init's Write V1 creates the dir); README A2 drops 'create empty migrations dir' - precedence rule: on color conflict, tokens.css wins over prototype (prototype = structure/layout/interaction; tokens.css = color) — encoded in skeleton-gen note, coding.mjs frontend stage, code-reviewer § Design Tokens
-
- skeleton-gen B.1: remove stale line claiming 根包名/命名空间 placeholder is filled at docs/09 top (docs/09 has no such placeholder; base_package lives in config-vars.yaml since A1) - docs-05-header: 端口 占位 -> pointer to config-vars.yaml backend.http_port (was a duplicate 【人工填写】 of the same port)
-
- README (A0 row + prerequisites): dep check now auto-installs missing tools (was: print guide + halt, no auto-install), matching project-init SKILL - project-init SKILL: fix typo 失败失败 -> 失败 - CLAUDE template rule #5: inline cross-module 留痕 requirement (soft-rule S2 table was removed)
-
- A0 SKILL: drop inline cross-platform dep-check script + OS install guides; dep check now auto-installs missing tools (was detect-only); trim 用 Edit/用 Bash 等工具名提示 - CLAUDE template: remove B 阶段流程 / 占位符约定 / 🚩 中断机制 / 🟡 软规则(S1,S2) / 硬规则#6 / 禁止项#2 等小节 - docs-01 index: drop trailing 填写说明
-
…o-chain, docs/06+A6 removal
-
- delete frontend-scope-lock skill + docs/06 templates (static + module-pagelist) - A5 downstream-gen gains prototype/ gate + FE-list derivation -> docs/08 § 三 - plan-start: drop A6 dispatch row, gate 5->4 items; coding-start A0~A6 -> A0~A5 - Design Tokens single source = src/styles/tokens.css (code-reviewer, coding.mjs) - plugin.json skills 9->8; docs-09 tree drops 06-UI; docs-08 drops A6 section
-
- D-step: CC writes _module.md/REQ-*.md directly (no render.mjs/vars.json) - req-card template restructured: input/output example tables copied verbatim, CC fills 6 {{}} scalars; E.1 validates {{}} residual only - E.2: write all config (incl. secret placeholders) into config-vars.yaml - E.4: no human-review stop — auto Skill(skeleton-gen) into A2 -
- config-vars.yaml now holds全部 config incl. secrets (database/admin_init.password/secrets), committed - delete env-local-template; setup-test-db reads config-vars.yaml; gitignore no longer ignores .env.local - docs-07 single-store rule; db-init/db-design-gen read config-vars.yaml database: section - drop test_db_allowed_hosts whitelist + schema-looks-like-test guard (trust config-vars.yaml)
-
- remove render.mjs/render.test.mjs (scope-lock now writes REQ cards directly) - add yaml-config.mjs: minimal 2-level YAML reader (+ tests) - apply-ddl: parse config-vars.yaml database: section instead of .env.local dotenv; drop assertSafeDbTarget host-whitelist + schema guards (config-vars.yaml is trusted) - merge-gitignore/validate-ddl: self-contained pathToFileURL comment (no longer 'see render.mjs')
-
docs-06-static-template.md actually defines § 二 Design Tokens with subsections 2.1 / 2.2 / 2.3. The CSS template comments still cited the pre-renumber § 四 / § 4.1 / § 4.2, so downstream-generated tokens.css files pointed readers to non-existent sections of docs/06.
-
The TAG_REPORT_FRESHNESS_SCHEMA + checkTagReportFreshPromptM + the post-`tag.exists` freshness branch in runMilestone existed to detect "tag points at a commit whose § ⑫ is still {{milestone_tag}}". Per the original comments, this only catches historical leftovers from the pre-fix tag → § ⑫ ordering; the same fix reversed the order so the runtime guard is no longer load-bearing. ~25 lines of branchy defensive code that the source-level fix already prevents. If a pre-fix repo has stale milestone tags, delete them with `git tag -d milestone/<id>` and re-run coding-start. -
…, single-source error-codes
-
…d parenthetical 参考 blocks