@heihei0299/matt-skills 3.0.29 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/bin/cli.js +15 -665
- package/bin/commands/check.js +48 -0
- package/bin/commands/init.js +63 -0
- package/bin/commands/install.js +114 -0
- package/bin/commands/list.js +26 -0
- package/bin/commands/sync.js +96 -0
- package/bin/project/agents.js +29 -0
- package/bin/project/filesystem.js +60 -0
- package/bin/project/skills.js +144 -0
- package/bin/project/template.js +101 -0
- package/bin/{skill-boundaries.js → skills/boundaries.js} +1 -1
- package/bin/skills/discovery.js +63 -0
- package/bin/{skill-selection.js → skills/selection.js} +1 -1
- package/config/default.json +0 -4
- package/config/proprietary.json +0 -2
- package/package.json +1 -1
- package/scripts/sync-upstream.js +2 -2
- package/template/AGENTS.md +11 -8
- package/template/.opencode/agents/issue-audit.md +0 -52
- package/template/.opencode/commands/grill-to-spec.md +0 -13
- package/template/.opencode/commands/handoff.md +0 -12
- package/template/.opencode/commands/improve-codebase-architecture.md +0 -13
- package/template/.opencode/commands/issue-audit.md +0 -115
- package/template/.opencode/commands/teach.md +0 -12
- package/template/.opencode/commands/to-spec.md +0 -13
- package/template/.opencode/commands/to-tickets.md +0 -12
- package/template/.opencode/commands/triage.md +0 -12
- package/template/.opencode/commands/wayfinder.md +0 -13
- package/template/.opencode/commands/writing-for-agents.md +0 -12
- package/template/.pi/agents/issue-audit.md +0 -52
- package/template/.pi/prompts/issue-audit.md +0 -114
- /package/bin/{skill-config.js → skills/config.js} +0 -0
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 审计 feature 的 issue 完成情况(四维:完成度 / spec 遵守 / ADR 遵守 / 文档一致性),输出完整报告,只审计不修改
|
|
3
|
-
argument-hint: "<feature-slug>"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Issue Audit:`$ARGUMENTS`
|
|
7
|
-
|
|
8
|
-
对 feature `$ARGUMENTS` 执行完整 issue 审计(对应目录 `.scratch/$ARGUMENTS/`),按以下流程执行。
|
|
9
|
-
|
|
10
|
-
## 铁律(不可违背)
|
|
11
|
-
|
|
12
|
-
- **不修改任何现有文档与代码。** issue 文件、spec.md、README*、src-rust/、webui/ 等一切现有文件禁止改动。
|
|
13
|
-
- **唯一允许的写入**:新建审计报告 `.scratch/$ARGUMENTS/audit-<YYYYMMDD-HHMM>.md`(时间戳文件名,保留多次审计历史)。不覆盖、不修改任何其他文件,不生成其他产物。
|
|
14
|
-
- **不勾选验收标准、不改 Status、不做 triage 流转。** 状态机是 triage 技能的职责;审计只产出事实结论。
|
|
15
|
-
- **输入无效立即失败(fail-fast)**:`.scratch/$ARGUMENTS/` 不存在或为空、缺少 `spec.md`、`issues/` 下没有任何 issue 文件时,不进入审计流程,直接输出失败报告(逐项列出缺失内容)并结束。
|
|
16
|
-
- 审计与被审计分离:发现问题不修复、不流转,只在报告中记录(阻断项附"需要什么"),处置由用户决定。
|
|
17
|
-
- 只读 git 命令(status/log/diff/show/rev-parse/ls-files/grep)用于收集提交历史证据;任何写操作命令一律不执行。
|
|
18
|
-
- 报告语言中文;代码标识符、测试名、字段名、提交哈希保留原文。
|
|
19
|
-
|
|
20
|
-
## 输入来源
|
|
21
|
-
|
|
22
|
-
- `.scratch/$ARGUMENTS/spec.md`(Implementation Decisions、Testing Decisions、Out of Scope)
|
|
23
|
-
- `.scratch/$ARGUMENTS/issues/*.md`(每票验收标准、Blocked by 依赖)
|
|
24
|
-
- `.scratch/$ARGUMENTS/audit-*.md`(历史审计报告,读取最新一份作为对比基线;无则标注"无历史基线")
|
|
25
|
-
- `docs/adr/*.md`(架构决策,审计对象)
|
|
26
|
-
- `CONTEXT.md`(术语表;违反术语视为 spec 遵守问题)
|
|
27
|
-
- 当前工作树代码 + 只读 git 历史(提交哈希作为"确实做过"的证据)
|
|
28
|
-
|
|
29
|
-
## 为什么分四维(不可合并重排)
|
|
30
|
-
|
|
31
|
-
四维是相互独立的审计轴:完成度(验收标准逐条)可以全绿,而 spec 决策被违背、ADR 被绕过或文档已过期。任一维的通过不得被其他维的结论掩盖,也不得用一维的发现解释掉另一维的未满足项;报告按维呈现、逐维给出最严重问题,由用户综合处置。
|
|
32
|
-
|
|
33
|
-
## 四维审计
|
|
34
|
-
|
|
35
|
-
1. **完成度**:逐票核对每个 issue 的验收标准(checkboxes)——逐条判定满足/未满足,引用代码位置、单测名、提交哈希作为证据。Blocked by 依赖未满足的票不计入完成度。
|
|
36
|
-
2. **Spec 遵守**:spec.md 的 Implementation Decisions 是否被落实、是否违背;Testing Decisions 的测试是否真实存在(非空头声明);**Out of Scope 是否被越过**(实现做了 spec 明说不做的事 = 阻断项)。
|
|
37
|
-
3. **ADR 遵守**:每个 `docs/adr/NNNN-*.md` 的决策在当前实现中是否被遵守。
|
|
38
|
-
4. **文档一致性**:README.md / README_ZH.md(及受影响的其他用户文档)与当前实现是否一致——无过期信息、无声称未实现的功能(如 feature 中某 UI 尚未实现,文档不得声称其存在)、命令示例与界面描述与实际一致。
|
|
39
|
-
|
|
40
|
-
## 证据分级(下结论的纪律)
|
|
41
|
-
|
|
42
|
-
- **L1 静态**(默认):读代码、读 git 提交记录、核对单测存在性与断言内容。
|
|
43
|
-
- **L2 测试套件**:运行仓库完整测试套件(本项目:`cargo test --lib` 于项目根;如有 JS 侧测试一并运行)。每次审计必跑。
|
|
44
|
-
- **L3 端到端**:仅在以下情形升级——① 某验收标准明确要求"链路可用/端到端";② L1 静态核对发现不一致、仅靠静态无法定案。**审计执行内不执行 L3**;判定需要升级后,将条目列入报告「待主 agent 隔离验证」清单(注明升级条件与需验证内容),由主 agent 在隔离环境(临时 HOME + mock 上游)执行。
|
|
45
|
-
- **弱证据不足**:间接、缺失、仅一致的证据不足以支撑"通过"结论;无法取证到位的条目标为非阻断疑点并注明"需要升级证据"。
|
|
46
|
-
|
|
47
|
-
## 问题分级
|
|
48
|
-
|
|
49
|
-
- **阻断项(must-fix)**:验收标准未达成、违反 ADR、越过 Out of Scope、违背 spec 决策。
|
|
50
|
-
- **非阻断项(should-note)**:文档措辞、建议性改进、证据仅间接的疑点。
|
|
51
|
-
- feature 结论 = 阻断项数 + 非阻断项数;**阻断为 0 才判定通过**。
|
|
52
|
-
|
|
53
|
-
## 执行步骤(顺序自包含)
|
|
54
|
-
|
|
55
|
-
1. 校验输入(fail-fast):确认 `.scratch/$ARGUMENTS/` 存在且非空、`spec.md` 存在、`issues/` 下至少有一个 issue 文件;任一项不满足 → 输出失败报告(逐项列出缺失内容)并结束,不进入审计、不生成审计报告文件。校验通过后列出 spec、全部 issue、历史审计报告(若有)。
|
|
56
|
-
2. 收集约定:读 spec.md、全部 issues、`docs/adr/`、CONTEXT.md。
|
|
57
|
-
3. 逐票核对(维度 1):每票验收标准逐条判定,记录证据。
|
|
58
|
-
4. 维度 2:以 spec 决策与 Out of Scope 对照当前代码实现。
|
|
59
|
-
5. 维度 3:以每个 ADR 对照当前实现。
|
|
60
|
-
6. 维度 4:对照 README 等文档与当前实现。
|
|
61
|
-
7. 跑 L2 测试套件(`cargo test --lib`),记录通过数/失败数。
|
|
62
|
-
8. 判定 L3 升级条件,必要时列出待主 agent 隔离验证清单。
|
|
63
|
-
9. 读取最新历史报告(若有)作基线,对比阻断项变化。
|
|
64
|
-
10. 汇总四维报告:对话输出完整报告,并写入 `.scratch/$ARGUMENTS/audit-<YYYYMMDD-HHMM>.md`。
|
|
65
|
-
- **文件名必须精确到分钟**(如 `audit-20260802-0604.md`),格式为 `audit-` + 年(4)月(2)日(2)-时(2)分(2) + `.md`。不得省略分钟、不得用其他命名。
|
|
66
|
-
- 同分钟重跑导致同名时追加 `-2`、`-3` 序号(如 `audit-20260802-0604-2.md`),永不覆盖已有文件。
|
|
67
|
-
|
|
68
|
-
## 报告原则(逐条独立可验证)
|
|
69
|
-
|
|
70
|
-
- **逐条独立可验证**:每个验收标准、每个未满足项自成一条并附证据(文件:行号、测试名、提交哈希),不合并成模糊结论——读者可逐条复核。
|
|
71
|
-
- **行为性表述**:阻断项写"违反了什么 + 需要什么",不做过程性修复指示(如"应该打开 X 文件改 Y");证据引用(文件:行号)仅为定位证据,不作修复指令。
|
|
72
|
-
- **不合并重排**:四维结论按维呈现、互不遮盖(见「为什么分四维」)。
|
|
73
|
-
|
|
74
|
-
## 报告模板(强制,四维缺失视为未完成)
|
|
75
|
-
|
|
76
|
-
```markdown
|
|
77
|
-
# Issue 审计报告:$ARGUMENTS
|
|
78
|
-
|
|
79
|
-
审计时间:<YYYY-MM-DD HH:MM>(精确到分钟)|基线:<上次报告文件名 或 "无历史基线">
|
|
80
|
-
|
|
81
|
-
## 结论总览
|
|
82
|
-
- 阻断项:N 项 / 非阻断项:M 项 → 通过 / 未通过
|
|
83
|
-
- 每维最严重问题:维度1:<票号+一句> | 维度2:<一句> | 维度3:<一句> | 维度4:<一句>(该维无问题写"无")
|
|
84
|
-
- 与上次审计对比:新增解决 k 项 / 新引入 j 项 / 持续未满足 i 项(无历史基线时写"本次为首份报告")
|
|
85
|
-
|
|
86
|
-
## 维度 1 · 完成度(逐票)
|
|
87
|
-
- 01 <标题>:满足 / 未满足(验收标准逐条 + 证据:文件:行号、测试名、提交哈希)
|
|
88
|
-
|
|
89
|
-
## 维度 2 · Spec 遵守
|
|
90
|
-
- 满足 / 违反(引用 spec 行号 + 代码证据;Out of Scope 检查结果)
|
|
91
|
-
|
|
92
|
-
## 维度 3 · ADR 遵守
|
|
93
|
-
- 0001 <标题>:遵守 / 违反(证据)
|
|
94
|
-
|
|
95
|
-
## 维度 4 · 文档一致性
|
|
96
|
-
- README.md:一致 / 过期信息(引用行 + 实现事实)
|
|
97
|
-
|
|
98
|
-
## 未满足项清单(显式记录)
|
|
99
|
-
- [阻断] <票号> <内容>:原因 + 需要什么
|
|
100
|
-
- [非阻断] <内容>:原因
|
|
101
|
-
|
|
102
|
-
## 待主 agent 隔离验证(L3 条目,如无则写"无")
|
|
103
|
-
- <条目>:升级条件 + 需验证内容
|
|
104
|
-
|
|
105
|
-
## 备注
|
|
106
|
-
- 证据级别说明(哪些条目用了 L1/L2/L3)
|
|
107
|
-
- 本次审计为只读审计,仅新建本报告文件,未修改任何现有文档
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## 出口条件(强制)
|
|
111
|
-
|
|
112
|
-
- 输入无效按 fail-fast 出口:直接输出失败报告(逐项列出缺失内容),不生成审计报告文件。
|
|
113
|
-
- 正常审计:四维全部给出结论、每维最严重问题列出、未满足项逐条列出、证据引用齐全 → 才可结束。
|
|
114
|
-
- 报告不完整(缺维、未满足项遗漏、证据缺失)→ **继续补齐,不得提前结束**。
|
|
File without changes
|