|
|
@@ -1,6 +1,6 @@
|
|
|
# 目录结构规范
|
|
|
|
|
|
-> 版本:基线 1.0(2026-06-12)。依据:v7 PRD 1.0、story-repo-spec 0.6。v7 代码骨架落地后增量修订。
|
|
|
+> 版本:基线 1.1(2026-06-27,M0 仓库骨架落地,回填 §2/§4)。依据:v7 PRD 1.0、story-repo-spec 0.8。
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -18,12 +18,12 @@ webnovel-writer/ # 仓库根
|
|
|
├── .trellis/ # 开发流程层(任务/规范/日志),与产品代码无关
|
|
|
├── webnovel-writer/ # v6 插件本体(遗产,禁止改动)
|
|
|
├── requirements.txt pytest.ini # v6 Python 遗产(禁止改动;v7 禁止引入 Python)
|
|
|
-└── (v7 代码目录待定) # npx 包骨架落地时修订本节
|
|
|
+└── v7/ # v7 产品代码(Node ESM 包,零依赖):package.json / bin / src / test
|
|
|
```
|
|
|
|
|
|
2.1 **文档先行**:`docs/architecture/v7-prd.md` 是产品决策真源,两份 spec 是格式与多宿主行为真源。代码与文档冲突时以文档为准;变更行为必须先修订文档(走任务流程),再改代码。
|
|
|
|
|
|
-## 3. v7 产品代码布局原则(骨架待定,原则已定)
|
|
|
+## 3. v7 产品代码布局原则(M0 骨架已落地,结构见 §4)
|
|
|
|
|
|
3.1 分发渠道只有 npx(`npx webnovel-writer init` / `update`),即单一 npm 包;禁止恢复插件市场分发。
|
|
|
|
|
|
@@ -36,8 +36,29 @@ webnovel-writer/ # 仓库根
|
|
|
|
|
|
3.4 文件排序必须依赖零填充数字前缀(`0152-`、`第05卷`、`伏笔-031`),禁止依赖中文字典序。
|
|
|
|
|
|
-## 4. 待增量补充
|
|
|
+## 4. v7 包内布局(M0 落地)
|
|
|
|
|
|
-- [ ] npm 包内部 src/ 模块划分(安装器、状态机、机检、备料、定稿)——首个代码任务时定
|
|
|
-- [ ] 测试目录与命名约定
|
|
|
-- [ ] 题材模板与知识库在包内的存放位置
|
|
|
+源码根 `v7/`,ESM、零运行时依赖:
|
|
|
+
|
|
|
+```
|
|
|
+v7/
|
|
|
+├── package.json # name=webnovel-writer, type=module, engines.node>=22.13.0, 零 deps
|
|
|
+├── bin/
|
|
|
+│ └── webnovel-writer.js # CLI 入口:版本门槛先行 + 子命令分发(init/update 占位)
|
|
|
+├── src/
|
|
|
+│ ├── runtime/ # 版本门槛等运行时基础
|
|
|
+│ ├── installer/ # 安装器(M5)
|
|
|
+│ ├── state-machine/ # 状态机单入口(M3)
|
|
|
+│ ├── mechanical-check/ # 机检(M2)
|
|
|
+│ ├── prep/ # 备料(M2)
|
|
|
+│ ├── finalize/ # 定稿原子提交(M2)
|
|
|
+│ ├── cache/ # .cache/index.db,node:sqlite(M1,见 O4 缓存设计文档)
|
|
|
+│ └── storage/ # 存储适配器小端口(M1,spec §1.5)
|
|
|
+└── test/ # node:test,*.test.js 与 src 镜像
|
|
|
+```
|
|
|
+
|
|
|
+4.1 测试:Node 内置 `node:test` + `node:assert`,**禁止第三方测试框架**;测试文件命名 `v7/test/**/*.test.js`,与 `src/` 镜像。
|
|
|
+
|
|
|
+4.2 模块为按职责(Use Case)划分,**非通用工具层**;端口拆小,禁止上帝对象(spec §1.5)。
|
|
|
+
|
|
|
+4.3 待补:题材模板与知识库在包内的存放位置(知识层平移任务时定)。
|