-
- 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
-
- 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
-
- 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)
-
…o-chain, docs/06+A6 removal
-
Visual clarity: the file tree now matches the README's phase model. - skills/plan/ — 8 skills (plan-start entry + A0~A6) - skills/coding/ — 1 skill (coding-start thin entry) Slugs unchanged. /erp-workflow:<name> still resolves identically because each SKILL.md declares its own `name:` frontmatter (verified for all 9). Plugin loader treats the default `./skills/` scan as flat, so the nested layout is opted into via an explicit path array in plugin.json — the only mechanism Claude Code provides for nested skill discovery. Changes: - mv skills/{plan-start,project-init,scope-lock,skeleton-gen, db-design-gen,db-init,downstream-gen,frontend-scope-lock} → skills/plan/<same>/ - mv skills/coding-start → skills/coding/coding-start/ - .claude-plugin/plugin.json: skills[] now lists all 9 explicit paths - README.md: directory tree + Skill 清单 heading updated to reflect grouping No code touches any skill path (only README did, and only in the tree diagram). lib tests still pass (62/62). -
Independent Claude + Codex review of the working-tree diff surfaced 23 issues; all applied in-place across three domains. workflows/coding.mjs (9): - spec/plan/verify/review prompts now git-commit their artifacts (closes milestone-dirty-worktree halt risk) - CHECKBOX_STATE_SCHEMA requires `state` + defensive guard in reviewWithFixLoop - writeDocs08FieldPromptM scopes edits to module via line anchor - assertSafeId guards Router output (module/REQ/FE ids) - featureLoop captures reviewWithFixLoop's return value - dateFromArtifactPath rejects impossible dates (9999-99-99 etc.) - terminal HALT review-unresolved message disambiguated - updated comment on top-level `return` (ESM vs node --check) lib/validate-ddl.mjs + tests (10): - extractType preserves unsigned/signed modifiers - KEY/INDEX fallthrough no longer creates spurious 'KEY' columns - FOREIGN KEY REFERENCES accepts schema-qualified `db.table` - index keys normalized to name:kind:cols (UNIQUE-aware) - FK keys include ON DELETE action (defaults to RESTRICT) - CREATE TEMPORARY TABLE parsed - parseForeignKeyBullet/parseIndexBullet reject prose bullets - +10 regression tests (62 total, all pass) - merge-gitignore.mjs docstring synced to implementation skills/ (4): - docs-06 template header: § 一~二 → § 一~三 - downstream-gen §A steps renumbered 1-7 (was 1,3,4,5,6,7,8) - docs-08 initial template adds tokens.css checkbox - coding-start drops "已在后台启动" wording (Workflow is synchronous)
-
- 新增 scope-lock/templates/config-vars-template.yaml:非敏感项目级配置 (包名/端口/前端包名/初始账号)+ secrets_ref 键名引用 .env.local; A1 E.2 锁定。docs/07 改为只记规则/约定不记具体值。 - 连带更新 skeleton-gen / plan-start 闸门 2 / frontend-scope-lock / CLAUDE-template / README / docs-06·07 模板对齐新的配置分层与 docs/06 小节编号。 - lib 修复(含回归测试): - apply-ddl: 抽出 resolveDbConfig,DB_SCHEMA 为契约 schema 键,缺库名 fail-closed (M1) - render: 用 Object.hasOwn 拒绝原型链继承键,guard process.argv[1] - validate-ddl: 解析 ### 索引/### 外键 bullet (C2)、剥 SQL 注释防幽灵表 (L4)、PRIMARY 归一化 - coding.mjs: Router 把全部前端 FE 聚合为单一末尾 frontend-phase 模块; 新增 branchSetupPrompt 功能分支生命周期 (C1);diff 区间改三点 diff;fix 后复跑 verify。
-
- Delete all 7 banners/flow*.txt and remove the banner step from each Plan skill (plan-start renumbered: gate=第1步, 放行/拦截=第2步 A/B). - Drop now-unused Bash(cat *) from scope-lock/db-design-gen/downstream-gen/ plan-start allowed-tools. - downstream-gen: replace `cp` (not Windows-safe) with Read+Write, drop Bash(cp *). - project-init: fix stale dispatcher name session-start -> plan-start. - README: remove the Banners 清单 section.
-
- mr-create → milestone-tag:本地 merge 进默认分支 + 打 milestone/<id> tag,完成后自动回调 coding-start(无人工闸门) - 移除 push/GitLab MR/API:删 deny-no-verify hook、derive-gitlab 脚本、pre-push 模板,env-local 去 GITLAB_* - 完成判定改为 docs/08「里程碑」字段 + git tag -l;README/CLAUDE-template/状态语义同步 - 删除空 skills/internal 目录,skill 计数 27→25 - docs-04 § 一 新增 1.1 规则(后端通用约定)占位,由 skeleton-gen E 填写
-
后端模块全部 merged 后进入前端整体阶段(1 个 MR)。 - 入口:coding-start 由模块循环器升级为阶段分发器,按 docs/08 §二/§三 + GitLab state 路由到 module-start 或 frontend-start - 前端 skill:新增 frontend-start + fe-feature-brainstorm/plan/tdd/verify/review 共 6 个 skill;fe-code-reviewer agent 做 7 维 review - 前端门禁:prototype/ 至少 1 个 *.html mockup;FE 清单由 AI 扫 prototype + docs/01 + docs/05 自主推导写入 docs/08 §三,无人工审阅断点 - 后端 skill 阶段化:feature-brainstorm/plan/tdd 加「阶段范围(后端)」标记;feature-tdd 增 frontend/ 路径硬护栏;module-start/test-gate/module-report/mr-create 接受 phase 参数(backend/frontend) - 模板同步:CLAUDE-template / docs-08-initial / docs-06-static / docs-02 / mr-description / coding-start banner 更新含前端段落 - README:21→27 skill / 1→2 agent / 35→44 模板;A5 章节 docs/06 §五 改为 §三
-
输入字段表从 7 列扩展为 8 列,在「显示来源」之后插入「预加载」(取值:页面加载时 / 用户操作时 / 否),描述显示来源数据的加载时机。
-
- 去 erp- 前缀:project-init / scope-lock / skeleton-gen / db-design-gen / db-init / downstream-gen / plan-start / coding-start / module-start / feature-* / module-report / mr-create / cross-module-log - 红旗 → 中断:red-flag-check → interrupt-check;命中 → 触发(中断语境) - local-test-gate → test-gate - docs/01-需求清单 的 README.md → index.md(原先改名过 abstract.md,再改 index.md) - CLAUDE-template.md 大幅精简:删 § ⚡ Skill 索引 / § 🧪 自测要求 / § 🔄 统一响应格式 / § 通用工作准则 等冗余;§ 🏷️ 覆盖 3 类占位符;§ 📐 从 27 条压到 14 条;§ ✅ 模块完成判定规则 缩到 27 行;§ 🚩 改名中断机制 - A0 project-init:步骤 A/B 互换(先 cp 模板创建 docs/08,再做依赖检查),修复首次运行 bootstrap bug;docs/04-stack-template.md 归 project-init 持有 - scope-lock 合并 D+E 为单步;step A 加 CLAUDE.md § 🎯 的 Grep 占位校验 - skeleton-gen:test.sh 骨架抽成模板(scripts-test-template.sh);step E 占位符处理从 130 行压到 34 行;删除内联 Flyway 说明;勾选分布到每个子步骤 - req-card 模板三段式:目标引言 + 字段表 + 元数据 list;字段级 vs REQ 级规则用 field_rules/rules 区分 - 模块级依赖模块 / 涉及表 改 TBD,由 A3/A5 回填(和 REQ 级 依赖表/依赖接口 同模式) - cross-module 留痕策略:hook 落存根不弹提示;所有 TBD 统一延到 module-report § ⑦ 一次性批量补齐 - 其他:feature-verify 删除孤儿 Write 权限;Git commit type 解读表;软规则 S1 技术栈外组件;docs/08 § 二 加 REQ 功能子项由 feature-review approve 时勾选 72 files changed, 1556 insertions(+), 1745 deletions(-)