chore: 记录改造前基线
改造开始前的完整状态,作为可回退的基点。此提交之后:Pester 175 项、零依赖套件 101 项全绿;PowerShell 5.1 尚不可用(源文件无 BOM)。 包含此前未提交的在制品:安全描述符套件、Hyper-V 实验环境(tools/lab)、agent 约定(AGENTS.md 与 docs/agents)。 .gitignore 增加 *.key / *.pfx:BackupConfig.psd1 的 PasswordFile 此前默认指向仓库内的 baknret.key,一次 git add -A 就会把口令提交进版本库。默认值在后续提交中改为空。
This commit is contained in:
1 parent
7173e8ae10
commit
2937eb6652
32 files changed
+8775
-1691
No files matched your search
@@ -0,0 +1,46 @@
|
||||
# 领域文档
|
||||
|
||||
探索代码之前,工程技能应当怎么消费本仓库的领域文档。
|
||||
|
||||
## 探索之前先读
|
||||
|
||||
- 根目录的 **`CONTEXT.md`**;或者
|
||||
- 根目录的 **`CONTEXT-MAP.md`**(若存在):它指向每个上下文各一份 `CONTEXT.md`,只读与当前主题相关的那几份。
|
||||
- **`docs/adr/`**:读与你要动的区域相关的 ADR。
|
||||
|
||||
这些文件不存在就**静默继续**:不要提示缺失,也不要提议先建它们。
|
||||
`/domain-modeling`(经 `/grill-with-docs`、`/improve-codebase-architecture` 抵达)
|
||||
会在术语或决策真正落地时按需创建。
|
||||
|
||||
## 文件结构
|
||||
|
||||
本仓库是**单上下文**:
|
||||
|
||||
```text
|
||||
/
|
||||
├── CONTEXT.md ← 术语表 / 领域模型(尚不存在,懒创建)
|
||||
├── docs/adr/ ← 决策记录(尚不存在,懒创建)
|
||||
│ └── 0001-....md
|
||||
├── Common.psm1 ← 公共模块:日志、清单解析、名录、归档布局、安全描述符
|
||||
├── Backup.ps1 ← 备份入口
|
||||
├── Restore.ps1 ← 恢复入口
|
||||
├── BackupList.txt ← 唯一「要处理什么」的来源
|
||||
├── SoftwareCatalog.psd1 ← 软件名 → Slot 组
|
||||
├── BackupConfig.psd1 ← 目录、空间阈值、加密、安全描述符
|
||||
├── tests/ ← Pester、零依赖、端到端、真实归档恢复演练
|
||||
└── tools/ ← 计划任务注册、归档改名、tools\lab 的 Hyper-V 测试环境
|
||||
```
|
||||
|
||||
## 用词表里的词
|
||||
|
||||
输出里一旦出现领域概念(issue 标题、重构提案、假设、测试名),就用 `CONTEXT.md`
|
||||
里定义的那个词,不要漂到它明确避开的同义词。
|
||||
|
||||
需要用的概念不在词表里,本身就是一个信号:要么你在发明项目不用的语言(重新想),
|
||||
要么真的缺一条(记下来交给 `/domain-modeling`)。
|
||||
|
||||
## ADR 冲突要点名
|
||||
|
||||
如果你的输出与某条 ADR 矛盾,明确说出来,而不是悄悄覆盖:
|
||||
|
||||
> 与 ADR-0007(事件溯源订单)冲突,但值得重开,因为……
|
||||
@@ -0,0 +1,33 @@
|
||||
# 议题追踪:本地 Markdown
|
||||
|
||||
本仓库的 issue 与 spec 都是 `.scratch/` 下的 markdown 文件。没有远程追踪器,也没有 CLI 依赖。
|
||||
|
||||
## 约定
|
||||
|
||||
- 一个特性一个目录:`.scratch/<feature-slug>/`
|
||||
- spec 是 `.scratch/<feature-slug>/spec.md`
|
||||
- 实现类 issue **一个 ticket 一个文件**:`.scratch/<feature-slug>/issues/<NN>-<slug>.md`,
|
||||
从 `01` 编号,不要写成一个合并的 tickets 文件
|
||||
- 分诊状态记在每个 issue 文件靠近顶部的 `Status:` 行
|
||||
- 评论与对话历史追加到文件底部的 `## Comments` 标题下
|
||||
|
||||
## 当某个技能说「publish to the issue tracker」
|
||||
|
||||
在 `.scratch/<feature-slug>/` 下新建文件(需要就一并建目录)。
|
||||
|
||||
## 当某个技能说「fetch the relevant ticket」
|
||||
|
||||
读那个路径的文件。用户通常会直接给出路径或 issue 编号。
|
||||
|
||||
## Wayfinding(`/wayfinder` 用)
|
||||
|
||||
**Map** 是一份文件,每个 ticket 对应一个 **child** 文件。
|
||||
|
||||
- **Map**:`.scratch/<effort>/map.md`(Notes / Decisions-so-far / Fog 正文)。
|
||||
- **Child ticket**:`.scratch/<effort>/issues/NN-<slug>.md`,从 `01` 开始,正文写问题本身;
|
||||
`Type:` 行记类型(`research`/`prototype`/`grilling`/`task`),`Status:` 行记 `claimed`/`resolved`。
|
||||
- **Blocking**:靠近顶部写 `Blocked by: NN, NN`;列出的文件全部 `resolved` 才算解锁。
|
||||
- **Frontier**:扫 `.scratch/<effort>/issues/`,取未关闭、未阻塞、未认领的,编号最小者优先。
|
||||
- **Claim**:动手前先写 `Status: claimed` 并保存。
|
||||
- **Resolve**:在 `## Answer` 标题下追加答案,写 `Status: resolved`,
|
||||
再把一段上下文指针(要点 + 链接)追加到 `map.md` 的 Decisions-so-far。
|
||||
Reference in new issue
Block a user