awesome-requirements-writer 0.1.0 → 0.2.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-zh.md +16 -5
- package/README.md +17 -4
- package/SKILL.md +3 -1
- package/bin/awesome-requirements-writer.js +29 -1
- package/package.json +6 -3
package/README-zh.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Awesome Requirements Writer
|
|
2
|
+
v0.2.0
|
|
2
3
|
|
|
3
4
|
作为一个具有十多年工作经验的汽车软件工程师和带领工程团队获得ASPICE认证的技术经理,我把多年来参与编写/评审技术产品需求的心得总结出来,写成了这个可复用的 AI agent skill,用于把工程笔记、客户输入、标准条款和测试期望转换为清晰、可测试的技术产品需求。
|
|
4
5
|
|
|
@@ -40,7 +41,7 @@
|
|
|
40
41
|
## 安装
|
|
41
42
|
|
|
42
43
|
**方法一(推荐):**
|
|
43
|
-
直接告诉你的agent:安装awesome-requirements-writer。
|
|
44
|
+
直接告诉你的agent:安装awesome-requirements-writer skill。
|
|
44
45
|
|
|
45
46
|
**方法二:**
|
|
46
47
|
|
|
@@ -59,7 +60,7 @@ node --version
|
|
|
59
60
|
```
|
|
60
61
|
|
|
61
62
|
|
|
62
|
-
确认node.js
|
|
63
|
+
确认node.js已安装后,运行(若需 root 权限,应前缀sudo命令):
|
|
63
64
|
|
|
64
65
|
```bash
|
|
65
66
|
npx awesome-requirements-writer install
|
|
@@ -71,12 +72,19 @@ npx awesome-requirements-writer install
|
|
|
71
72
|
npx awesome-requirements-writer install codex
|
|
72
73
|
```
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
OpenClaw 和 Hermes 都可以读取 `SKILL.md` 风格的 skill 目录,因此复用同一份 canonical skill 包:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npx awesome-requirements-writer install openclaw
|
|
79
|
+
npx awesome-requirements-writer install hermes
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
查看支持的CLI工具:
|
|
75
83
|
|
|
76
84
|
```bash
|
|
77
85
|
npx awesome-requirements-writer list
|
|
78
86
|
```
|
|
79
|
-
|
|
87
|
+
|
|
80
88
|
## 使用
|
|
81
89
|
|
|
82
90
|
显式调用 skill:
|
|
@@ -110,6 +118,7 @@ adapters/
|
|
|
110
118
|
```
|
|
111
119
|
|
|
112
120
|
`SKILL.md` 是核心 agent 指令。`references/` 里的文件只在任务需要详细模板或汽车工程上下文时读取。
|
|
121
|
+
OpenClaw 和 Hermes 复用 `SKILL.md` 包,不新增单独的 adapter wrapper。
|
|
113
122
|
|
|
114
123
|
## 平台适配
|
|
115
124
|
|
|
@@ -121,11 +130,13 @@ adapters/
|
|
|
121
130
|
| Cursor | `adapters/cursor/.cursor/rules/` | `.cursor/rules/`,包含 `references/` |
|
|
122
131
|
| Gemini CLI | `adapters/gemini/` | 合并到 `GEMINI.md`;把 references 复制到 `.gemini/awesome-requirements-writer/` |
|
|
123
132
|
| OpenCode | `adapters/opencode/` | 将 `AGENTS.snippet.md` 合并到 `AGENTS.md`;把 references 复制到 `.opencode/awesome-requirements-writer/` |
|
|
133
|
+
| OpenClaw | `adapters/codex/.agents/skills/awesome-requirements-writer/` | `~/.openclaw/skills/awesome-requirements-writer/` 或 workspace `skills/awesome-requirements-writer/` |
|
|
134
|
+
| Hermes Agent | `adapters/codex/.agents/skills/awesome-requirements-writer/` | `~/.hermes/skills/awesome-requirements-writer/` |
|
|
124
135
|
| CodeBuddy | `adapters/codebuddy/.codebuddy/rules/awesome-requirements-writer/` | `.codebuddy/rules/awesome-requirements-writer/`,包含 `RULE.mdc` 和 `references/` |
|
|
125
136
|
| GitHub Copilot | `adapters/github-copilot/.github/` | `.github/`,包含 `copilot-instructions.md`、`instructions/` 和 `instructions/references/` |
|
|
126
137
|
| Trae | `adapters/trae/.trae/` | Trae 项目规则路径,需确认当前版本使用 `.trae/project_rules.md` 还是 `.trae/rules/project_rules.md` |
|
|
127
138
|
|
|
128
|
-
规则型 adapter 现在也包含 `references/`,但入口文件会明确要求 agent 不要默认加载全部 reference
|
|
139
|
+
规则型 adapter 现在也包含 `references/`,但入口文件会明确要求 agent 不要默认加载全部 reference,只在任务需要时读取对应语言模板或汽车工程上下文。OpenClaw 和 Hermes 直接使用 canonical `SKILL.md` 包,不使用单独 wrapper 文件。这里的 OpenClaw/Hermes 支持表示支持本地 SKILL.md 兼容安装;在单独验证 ClawHub 或 Hermes registry 发布流程之前,不声明已经支持对应 registry 发布。对于 `AGENTS.md` 或 `GEMINI.md` 这类固定入口文件,应把提供的 snippet 合并进用户已有文件,而不是覆盖。
|
|
129
140
|
|
|
130
141
|
CLI 安装器会自动用带标记的文本块完成合并。重复运行安装器会更新同一个标记块,不会反复追加重复内容。
|
|
131
142
|
|
package/README.md
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# Awesome Requirements Writer
|
|
2
|
+
v0.2.0
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
本skill支持中文技术需求文档编写,请浏览 简体中文(./README-zh.md) 内容。
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
As an automotive engineer and techinical manager with more than ten years of experience who has led engineering teams through ASPICE certification, I summarized what I have learned from years of writing and reviewing technical product requirements into this reusable AI agent skill. It helps turn engineering notes, customer inputs, standards, and test expectations into clear, testable technical product requirements.
|
|
7
|
+
|
|
8
|
+
Some of the ideas behind this skill are discussed in an article I wrote (in Chinese) a couple years ago: https://zhuanlan.zhihu.com/p/338598640
|
|
6
9
|
|
|
7
10
|
English | [简体中文](./README-zh.md)
|
|
8
11
|
|
|
@@ -67,6 +70,13 @@ This package also provides an optional installer CLI for target-specific adapter
|
|
|
67
70
|
npx awesome-requirements-writer install codex
|
|
68
71
|
```
|
|
69
72
|
|
|
73
|
+
OpenClaw and Hermes both consume `SKILL.md`-style skill folders, so they reuse the same canonical skill package:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npx awesome-requirements-writer install openclaw
|
|
77
|
+
npx awesome-requirements-writer install hermes
|
|
78
|
+
```
|
|
79
|
+
|
|
70
80
|
List supported targets:
|
|
71
81
|
|
|
72
82
|
```bash
|
|
@@ -106,6 +116,7 @@ adapters/
|
|
|
106
116
|
```
|
|
107
117
|
|
|
108
118
|
`SKILL.md` is the core agent instruction. The files in `references/` are loaded only when the task needs detailed templates or automotive engineering context.
|
|
119
|
+
OpenClaw and Hermes reuse the `SKILL.md` package rather than adding a separate adapter wrapper.
|
|
109
120
|
|
|
110
121
|
## Adapters
|
|
111
122
|
|
|
@@ -117,11 +128,13 @@ adapters/
|
|
|
117
128
|
| Cursor | `adapters/cursor/.cursor/rules/` | `.cursor/rules/`, including `references/` |
|
|
118
129
|
| Gemini CLI | `adapters/gemini/` | Merge into `GEMINI.md`; copy references under `.gemini/awesome-requirements-writer/` |
|
|
119
130
|
| OpenCode | `adapters/opencode/` | Merge `AGENTS.snippet.md` into `AGENTS.md`; copy references under `.opencode/awesome-requirements-writer/` |
|
|
131
|
+
| OpenClaw | `adapters/codex/.agents/skills/awesome-requirements-writer/` | `~/.openclaw/skills/awesome-requirements-writer/` or workspace `skills/awesome-requirements-writer/` |
|
|
132
|
+
| Hermes Agent | `adapters/codex/.agents/skills/awesome-requirements-writer/` | `~/.hermes/skills/awesome-requirements-writer/` |
|
|
120
133
|
| CodeBuddy | `adapters/codebuddy/.codebuddy/rules/awesome-requirements-writer/` | `.codebuddy/rules/awesome-requirements-writer/`, including `RULE.mdc` and `references/` |
|
|
121
134
|
| GitHub Copilot | `adapters/github-copilot/.github/` | `.github/`, including `copilot-instructions.md`, `instructions/`, and `instructions/references/` |
|
|
122
135
|
| Trae | `adapters/trae/.trae/` | Trae project rules path, confirm whether your version uses `.trae/project_rules.md` or `.trae/rules/project_rules.md` |
|
|
123
136
|
|
|
124
|
-
Rule-style adapters include bundled `references/`, but their entry files explicitly tell the agent not to load every reference by default. The agent should read only the matching language or automotive-context reference when the task needs it. For fixed entry filenames such as `AGENTS.md` or `GEMINI.md`, merge the provided snippet into the user's existing file instead of overwriting it.
|
|
137
|
+
Rule-style adapters include bundled `references/`, but their entry files explicitly tell the agent not to load every reference by default. The agent should read only the matching language or automotive-context reference when the task needs it. OpenClaw and Hermes use the canonical `SKILL.md` package directly instead of a separate wrapper file. OpenClaw/Hermes support means local SKILL.md-compatible installation support; it does not claim ClawHub or Hermes registry publication until those registry flows are tested separately. For fixed entry filenames such as `AGENTS.md` or `GEMINI.md`, merge the provided snippet into the user's existing file instead of overwriting it.
|
|
125
138
|
|
|
126
139
|
The CLI installer performs this merge automatically by using a marked block. Re-running the installer updates that block instead of appending duplicates.
|
|
127
140
|
|
|
@@ -142,4 +155,4 @@ Users can edit `SKILL.md` to adjust the core behavior, and can add company- or t
|
|
|
142
155
|
|
|
143
156
|
## License
|
|
144
157
|
|
|
145
|
-
MIT
|
|
158
|
+
MIT
|
package/SKILL.md
CHANGED
|
@@ -29,13 +29,15 @@ A strong requirement is:
|
|
|
29
29
|
1. Identify the item under requirement: product system, subsystem, feature, variant, and lifecycle phase.
|
|
30
30
|
2. Extract stakeholder intent, system behavior, constraints, interfaces and validation expectations.
|
|
31
31
|
3. Determine if the content is "information" or "requirement". Information is the content which is rationale, examples, diagrams, repeated else-defined requirements, and verification notes outside the normative requirement text.
|
|
32
|
-
4. Classify requirements by type: functional
|
|
32
|
+
4. Classify requirements by type: functional vs non-functional.
|
|
33
33
|
5. Draft atomic "shall" statements with a single subject, condition, behavior, measurable target, operating bounds, and verification path.
|
|
34
34
|
6. Add metadata: type(information/requirement), ID , content body and acceptance criteria.
|
|
35
35
|
7. List all functional requirements and related information in one chapter, while all non-functional requirements in another.
|
|
36
36
|
8. In a new chapter make a table of all static variables and its value. If no value is given, type TBD.
|
|
37
37
|
9. Audit the result for ambiguity, hidden design decisions, unverifiable claims, duplicate requirements, conflicting limits, missing fault behavior, and missing open questions.
|
|
38
38
|
|
|
39
|
+
**Note:** Functional requirements are direct related to a specific feature or design, while non-functional requirements are related to general performance, system efficiency, software extensibility etc。 They are not direct related to feature level performance definition,more focusing on system level or product level. For example, "The fault flag shall be set within 100 ms after the fault occurs" is a functional requirement, while "The CPU load of the product shall be equal or less than 80%" is a non-functional requirement.
|
|
40
|
+
|
|
39
41
|
## Requirement Shape
|
|
40
42
|
|
|
41
43
|
Use this format unless the user asks for another one:
|
|
@@ -19,6 +19,8 @@ const targets = [
|
|
|
19
19
|
'gemini',
|
|
20
20
|
'opencode',
|
|
21
21
|
'opencli',
|
|
22
|
+
'openclaw',
|
|
23
|
+
'hermes',
|
|
22
24
|
'codebuddy',
|
|
23
25
|
'github-copilot',
|
|
24
26
|
'copilot',
|
|
@@ -39,6 +41,8 @@ Targets:
|
|
|
39
41
|
cursor Install Cursor rules into the current project.
|
|
40
42
|
gemini Merge GEMINI.md instructions into the current project.
|
|
41
43
|
opencode|opencli Merge AGENTS.md instructions into the current project.
|
|
44
|
+
openclaw Install as an OpenClaw SKILL.md package.
|
|
45
|
+
hermes Install as a Hermes Agent SKILL.md package. Defaults to --global.
|
|
42
46
|
codebuddy Install CodeBuddy rules into the current project.
|
|
43
47
|
github-copilot Install GitHub Copilot repository instructions.
|
|
44
48
|
trae Install Trae project rules. Defaults to --variant rules.
|
|
@@ -58,6 +62,8 @@ Examples:
|
|
|
58
62
|
npx awesome-requirements-writer install claude
|
|
59
63
|
npx awesome-requirements-writer install cursor --cwd ./my-project
|
|
60
64
|
npx awesome-requirements-writer install opencode --cwd ./my-project
|
|
65
|
+
npx awesome-requirements-writer install openclaw --cwd ./openclaw-workspace
|
|
66
|
+
npx awesome-requirements-writer install hermes
|
|
61
67
|
`);
|
|
62
68
|
}
|
|
63
69
|
|
|
@@ -265,6 +271,24 @@ function installOpenCode(options) {
|
|
|
265
271
|
mergeMarkdownBlock(source('adapters', 'opencode', 'AGENTS.snippet.md'), projectPath(options, 'AGENTS.md'), options);
|
|
266
272
|
}
|
|
267
273
|
|
|
274
|
+
function installOpenClaw(options) {
|
|
275
|
+
const dest = options.project
|
|
276
|
+
? projectPath(options, 'skills', skillName)
|
|
277
|
+
: homePath('.openclaw', 'skills', skillName);
|
|
278
|
+
copyDirSafe(source('adapters', 'codex', '.agents', 'skills', skillName), dest, options);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
function installHermes(options) {
|
|
282
|
+
if (options.project) {
|
|
283
|
+
fail('hermes adapter is user-level only. Remove --project.');
|
|
284
|
+
}
|
|
285
|
+
copyDirSafe(
|
|
286
|
+
source('adapters', 'codex', '.agents', 'skills', skillName),
|
|
287
|
+
homePath('.hermes', 'skills', skillName),
|
|
288
|
+
options
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
|
|
268
292
|
function installTrae(options) {
|
|
269
293
|
rejectGlobal('trae', options);
|
|
270
294
|
if (!['rules', 'legacy'].includes(options.variant)) {
|
|
@@ -290,7 +314,7 @@ function install(target, options) {
|
|
|
290
314
|
const normalized = normalizeTarget(target || 'agent');
|
|
291
315
|
if (!normalized) fail(`Unknown target: ${target}. Run "npx awesome-requirements-writer list".`);
|
|
292
316
|
|
|
293
|
-
if (!options.global && !options.project && ['agent', 'codex', 'claude'].includes(normalized)) {
|
|
317
|
+
if (!options.global && !options.project && ['agent', 'codex', 'claude', 'openclaw', 'hermes'].includes(normalized)) {
|
|
294
318
|
options.global = true;
|
|
295
319
|
}
|
|
296
320
|
|
|
@@ -301,6 +325,8 @@ function install(target, options) {
|
|
|
301
325
|
cursor: installCursor,
|
|
302
326
|
gemini: installGemini,
|
|
303
327
|
opencode: installOpenCode,
|
|
328
|
+
openclaw: installOpenClaw,
|
|
329
|
+
hermes: installHermes,
|
|
304
330
|
codebuddy: installCodeBuddy,
|
|
305
331
|
'github-copilot': installGitHubCopilot,
|
|
306
332
|
trae: installTrae
|
|
@@ -325,6 +351,8 @@ function listTargets() {
|
|
|
325
351
|
cursor
|
|
326
352
|
gemini
|
|
327
353
|
opencode (alias: opencli)
|
|
354
|
+
openclaw
|
|
355
|
+
hermes
|
|
328
356
|
codebuddy
|
|
329
357
|
github-copilot (alias: copilot)
|
|
330
358
|
trae`);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awesome-requirements-writer",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Install an AI agent skill for writing clear, testable technical product requirements across Codex, Claude, Cursor, Gemini CLI, OpenCode, CodeBuddy, GitHub Copilot, and Trae.",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Install an AI agent skill for writing clear, testable technical product requirements across Codex, Claude Code, Cursor, Gemini CLI, OpenCode, OpenClaw, Hermes Agent, CodeBuddy, GitHub Copilot, and Trae.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/muchengracedriver/awesome-requirements-writer#readme",
|
|
7
7
|
"repository": {
|
|
@@ -31,6 +31,9 @@
|
|
|
31
31
|
"cursor",
|
|
32
32
|
"gemini-cli",
|
|
33
33
|
"opencode",
|
|
34
|
+
"openclaw",
|
|
35
|
+
"hermes",
|
|
36
|
+
"hermes-agent",
|
|
34
37
|
"requirements",
|
|
35
38
|
"technical-requirements"
|
|
36
39
|
],
|
|
@@ -38,7 +41,7 @@
|
|
|
38
41
|
"node": ">=18"
|
|
39
42
|
},
|
|
40
43
|
"scripts": {
|
|
41
|
-
"test": "node bin/awesome-requirements-writer.js list && node bin/awesome-requirements-writer.js install --project --cwd /tmp/awr-install-test --dry-run && node bin/awesome-requirements-writer.js install codex --project --cwd /tmp/awr-install-test --dry-run",
|
|
44
|
+
"test": "node bin/awesome-requirements-writer.js list && node bin/awesome-requirements-writer.js install --project --cwd /tmp/awr-install-test --dry-run && node bin/awesome-requirements-writer.js install codex --project --cwd /tmp/awr-install-test --dry-run && node bin/awesome-requirements-writer.js install openclaw --project --cwd /tmp/awr-openclaw-test --dry-run && node bin/awesome-requirements-writer.js install hermes --dry-run",
|
|
42
45
|
"pack:check": "npm --cache /tmp/awesome-requirements-writer-npm-cache pack --dry-run"
|
|
43
46
|
}
|
|
44
47
|
}
|