harveyz-skill 0.1.1 → 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.
Files changed (31) hide show
  1. package/bin/cli.js +116 -44
  2. package/lib/bundles.js +97 -22
  3. package/lib/installer.js +126 -5
  4. package/lib/targets.js +1 -0
  5. package/lib/vars.js +34 -0
  6. package/package.json +6 -3
  7. package/skills/harness/diataxis-docs/SKILL.md +128 -0
  8. package/skills/harness/diataxis-docs/references/custom-categories.md +32 -0
  9. package/skills/harness/diataxis-docs/references/index-template.md +29 -0
  10. package/skills/web-fetch/article-fetcher/SKILL.md +625 -0
  11. package/skills/web-fetch/article-fetcher/references/article_utils.py +225 -0
  12. package/skills/web-fetch/article-fetcher/references/file-format.md +73 -0
  13. package/skills/web-fetch/article-fetcher/scripts/import_reading.py +75 -0
  14. package/skills/web-fetch/article-fetcher/scripts/init_db.py +33 -0
  15. package/skills/web-fetch/article-fetcher/scripts/url-index.db +0 -0
  16. package/skills/web-fetch/article-fetcher/scripts/url-index.db.bak +0 -0
  17. package/skills/web-fetch/article-fetcher/vars.json +12 -0
  18. package/skills/writing/mermaid-diagram/SKILL.md +220 -0
  19. package/skills/writing/mermaid-diagram/references/color-templates.md +75 -0
  20. package/skills/writing/mermaid-diagram/references/flowchart.md +88 -0
  21. package/skills/writing/mermaid-diagram/references/gantt-timeline.md +62 -0
  22. package/skills/writing/mermaid-diagram/references/other-charts.md +55 -0
  23. package/skills/writing/mermaid-diagram/references/sequence.md +143 -0
  24. package/skills/writing/mermaid-diagram/references/statediagram.md +54 -0
  25. package/skills/writing/mermaid-diagram/scripts/check_mermaid.py +84 -0
  26. package/tools/p-launch/p-launch.sh +275 -0
  27. package/tools/p-launch/tests/e2e.bats +164 -0
  28. package/tools/p-launch/tests/unit.bats +151 -0
  29. package/tools/p-launch/vars.json +9 -0
  30. package/tools/p-launch/zshrc.snippet +5 -0
  31. package/bundles.json +0 -24
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: diataxis-docs
3
+ description: Use when creating, updating, or deleting any file under docs/ — including writing a new guide, updating reference content, adding an ADR, or removing an outdated page. Also use when searching docs before writing, to avoid duplicating existing content.
4
+ ---
5
+
6
+ # Diataxis 文档管理
7
+
8
+ 本项目 `docs/` 目录遵循 **Diátaxis** 文档方法论。根据操作类型走对应流程。
9
+
10
+ ---
11
+
12
+ ## 先读索引
13
+
14
+ **任何操作之前**,先读 `docs/INDEX.md`,它列出了所有文件及一句话说明。
15
+
16
+ - 若 `docs/INDEX.md` 不存在:读 skill 目录下的 `references/index-template.md` 新建它,再继续。
17
+
18
+ ---
19
+
20
+ ## 按操作类型选择流程
21
+
22
+ ### 删除文档
23
+
24
+ 只需一步:从 `docs/INDEX.md` 中移除对应行,然后删除文件。
25
+
26
+ ---
27
+
28
+ ### 修改文档
29
+
30
+ 1. 对照索引确认文件位置和分类(如分类错误,先迁移文件)。
31
+ 2. 修改内容,遵循该分类的职责边界(见下方「各类型职责」)。
32
+ 3. 若文档描述变化,同步更新 `docs/INDEX.md` 中对应行。
33
+
34
+ ---
35
+
36
+ ### 新建文档
37
+
38
+ 按顺序完成以下步骤:
39
+
40
+ #### 1. 内容分类
41
+
42
+ 问自己:**读者到达这篇文档时处于什么状态?**
43
+
44
+ ```
45
+ 学习导向 ←→ 工作导向
46
+ 实践性 │ tutorials/ │ how-to/
47
+ │ (跟着做,学原理) │ (解决具体问题)
48
+ ──────────┼──────────────────────┼──────────────────
49
+ 理论性 │ explanation/ │ reference/
50
+ │ (理解为什么) │ (查找信息)
51
+ ```
52
+
53
+ **判断流程:**
54
+
55
+ ```
56
+ 内容包含从零开始的引导式练习?
57
+ 是 → tutorials/
58
+ 否 → 包含完成某个具体任务的操作步骤?
59
+ 是 → how-to/
60
+ 否 → 包含稳定的事实、规范或 API 定义?
61
+ 是 → reference/
62
+ 否 → explanation/
63
+ ```
64
+
65
+ > 项目可能有额外目录(如 `adr/`、`rfcs/`)。需要新建此类目录时,先读 skill 目录下的 `references/custom-categories.md`。
66
+
67
+ **内容跨越多个分类?** 先拆成独立文档,再对每篇从「内容分类」重新开始走一遍完整流程。
68
+
69
+ #### 2. 检查已有文档重叠
70
+
71
+ 扫描 INDEX.md 中**同类目录**的条目:
72
+
73
+ - 已有文件覆盖相同主题 → **更新已有文件**(切换到「修改文档」流程),不要新建。
74
+ - 角度不同 → 继续新建,并在两篇文章中互相注明关联。
75
+
76
+ #### 3. 命名文件
77
+
78
+ | 类型 | 规则 | 示例 |
79
+ |------|------|------|
80
+ | 长期文档(tutorials/how-to/reference/explanation) | `kebab-case.md`,不带日期 | `api.md`、`deploy.md` |
81
+ | 有时间意义的文档(adr/rfcs/归档等) | `YYYY-MM-DD-topic.md` | `2026-04-23-dag-rewrite.md` |
82
+ | 根目录文档 | `SCREAMING_SNAKE.md` | `INDEX.md`、`GUIDE.md` |
83
+
84
+ #### 4. 写文档
85
+
86
+ 遵循该分类的职责边界(见下方「各类型职责」)。
87
+
88
+ #### 5. 更新索引
89
+
90
+ 在 `docs/INDEX.md` 对应分类的表格中添加一行:
91
+
92
+ ```
93
+ | [路径/文件.md](路径/文件.md) | 一句话说明这篇文档的用途 |
94
+ ```
95
+
96
+ 描述要简洁、对 Agent 友好——它是判断是否需要读全文的主要依据。
97
+
98
+ ---
99
+
100
+ ## 各类型职责边界
101
+
102
+ | 类型 | 只包含 | 不包含 |
103
+ |------|--------|--------|
104
+ | **tutorials** | 引导式步骤,目标是完成一个具体成果 | 原理解释、完整参考信息 |
105
+ | **how-to** | 完成具体任务的最短路径 | 为什么这样做的解释 |
106
+ | **reference** | 稳定的事实、规范、API 定义 | 操作步骤、设计原理 |
107
+ | **explanation** | 背景、原理、设计原因 | 操作步骤、完整参考信息 |
108
+
109
+ ---
110
+
111
+ ## 常见错误
112
+
113
+ | 错误 | 正确做法 |
114
+ |------|---------|
115
+ | 在 reference 里写操作步骤 | 步骤移到 `how-to/`,reference 只保留事实 |
116
+ | 在 how-to 里解释设计原因 | 原理移到 `explanation/`,how-to 只保留步骤 |
117
+ | 跨分类内容不拆分直接新建 | 先拆,对每篇独立走完整流程 |
118
+ | 写完文档忘记更新 `docs/INDEX.md` | 最后一步必须更新索引 |
119
+ | 长期文档文件名带日期前缀 | 日期前缀只用于有时间意义的文档 |
120
+
121
+ ---
122
+
123
+ ## 参考文件(skill 内置,按需读取)
124
+
125
+ | 文件 | 何时读 |
126
+ |------|--------|
127
+ | `references/index-template.md` | `docs/INDEX.md` 不存在,需要初始化时 |
128
+ | `references/custom-categories.md` | 需要在四类之外新建额外目录时 |
@@ -0,0 +1,32 @@
1
+ # 扩展分类标准(非核心目录)
2
+
3
+ 四个 Diátaxis 分类能覆盖绝大多数文档需求。只有当内容**确实无法归入任何一类**时,才考虑增加新目录。
4
+
5
+ ## 判断是否需要新分类
6
+
7
+ 在新建目录前,先问:
8
+
9
+ 1. **能否放入现有四类?** 绝大多数内容都可以。如果模棱两可,优先放现有目录。
10
+ 2. **这类内容有多处?** 单篇文章不需要新目录,至少要有 2~3 篇同类内容才值得单独建目录。
11
+ 3. **读者的使用场景是否根本不同?** 新目录要有独特的读者状态,不能与四类重叠。
12
+
13
+ ## 可接受的扩展分类(示例)
14
+
15
+ | 目录名 | 适用场景 | 与四类的区别 |
16
+ |--------|---------|-------------|
17
+ | `adr/` | 已落地的架构决策记录 | 不可修改、有时间戳、记录决策过程而非知识 |
18
+ | `rfcs/` | 提案、尚未实现的设计 | 状态是「待决策」,不是稳定知识 |
19
+ | `archive/` | 历史文档,只读归档 | 不再维护,仅供回溯 |
20
+
21
+ ## 新目录必须满足的条件
22
+
23
+ - **不与四类重叠**:如果内容放进 `reference/` 或 `explanation/` 毫无违和感,就不应新建目录。
24
+ - **读者目的明确且独特**:能用一句话说清「读者在什么情况下会来这里」。
25
+ - **在 INDEX.md 中有独立分区**:新目录必须同步在索引中建立对应章节,并写清用途说明。
26
+ - **在 GUIDE.md(若存在)中登记**:如项目有文档指南,需同步更新目录说明。
27
+
28
+ ## 不应新建目录的情况
29
+
30
+ - 内容只是某个 Diátaxis 类型的子话题(用文件名区分即可,无需新目录)。
31
+ - 想把「设计文档」单独放一个目录——设计背景 → `explanation/`,设计决策 → `adr/`,设计规范 → `reference/`。
32
+ - 「临时笔记」「草稿」类内容不属于 `docs/` 的管理范围。
@@ -0,0 +1,29 @@
1
+ # INDEX.md 模板
2
+
3
+ 当 `docs/INDEX.md` 不存在时,根据项目实际目录结构新建,至少包含四个 Diátaxis 分类:
4
+
5
+ ```markdown
6
+ # docs/ 文档索引
7
+
8
+ ## tutorials/ — 教程
9
+
10
+ | 文件 | 用途 |
11
+ |------|------|
12
+
13
+ ## how-to/ — 操作指南
14
+
15
+ | 文件 | 用途 |
16
+ |------|------|
17
+
18
+ ## reference/ — 参考文档
19
+
20
+ | 文件 | 用途 |
21
+ |------|------|
22
+
23
+ ## explanation/ — 理解类
24
+
25
+ | 文件 | 用途 |
26
+ |------|------|
27
+ ```
28
+
29
+ **注意**:如果项目有额外分类(如 `adr/`、`rfcs/`),在上面模板基础上追加对应分区即可。每个分区都应有简短的用途说明,帮助 Agent 判断相关性。