dev-workflowlisted
Install: claude install-skill whrjunluo/tiers
# 开发工作流路由与执行指南
## 插件路径约定
本文用 `<plugin-root>` 表示插件仓库根目录,不是 `skills/dev-workflow` 目录。
本仓库结构固定为:
```text
<plugin-root>/
skills/dev-workflow/SKILL.md
scripts/workflow-state.sh
scripts/learnings.sh
scripts/codegraph-judge.sh
```
如果当前 skill 文件路径是:
```text
.../tiers/skills/dev-workflow/SKILL.md
```
那么 `<plugin-root>` 是:
```text
.../tiers
```
正确脚本路径示例:
```bash
<plugin-root>/scripts/workflow-state.sh check
```
错误示例(不要这样拼):
```bash
<plugin-root>/skills/dev-workflow/scripts/workflow-state.sh check
```
执行脚本前按以下顺序解析:
1. `DEV_WORKFLOW_PLUGIN_ROOT`
2. `CODEX_PLUGIN_ROOT`
3. `CLAUDE_PLUGIN_ROOT`
4. `CURSOR_PLUGIN_ROOT`
5. `TRAE_PLUGIN_ROOT`
6. 若是从本文件路径推断,则从 `skills/dev-workflow/SKILL.md` 上溯两级到仓库根目录
脚本自身也按同样规则自动推断,Codex 环境不要依赖 Claude 专属变量。
## 控制器硬门(最先执行)
<!-- SELF_HOSTING_CONTROLLER -->
`<plugin-root>/scripts/workflow-state.sh` 是本次会话唯一的工作流 controller。即使当前工作区正好是 tiers/dev-workflow 自身,工作区里的 `scripts/workflow-state.sh` 也只是**待修改代码**,不得拿它代替安装版 controller;controller 必须从当前已加载 skill 的路径或上述环境变量解析。
显式判级后,按以下短契约执行,后文只解释细节:
1. 先用 controller 执行 `init` 与 `check`;若存在同目标未完成状态则续行,已封存或 empty slot 用 `start <task> <level>`,Goal 只用 `continue-goal`。需要切换任务时,合法顺序固定为 `suspend <key>` → `start <task> <level>` → 当前任务封存后 `resume <key>`;禁止伪造 complete 或手换 YAML。
2. L0–L3 必须通过 controller 设置 `task`、`level`、`context.target`、`context.sources`,写入对应理解证据并执行 `understand <evidence>`。`understand` 返回 PASS 之前,禁止任何文件修改,包括测试、spec 和 plan。
3. 需要 TDD 时,`set phase tdd` 成功之前,禁止新增或修改测试;实现、review 和 complete 也必须继��使用同