harnessed 1.0.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 (51) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +20 -0
  3. package/README.md +178 -0
  4. package/config-templates/README.md +21 -0
  5. package/config-templates/hooks/.gitkeep +0 -0
  6. package/dist/cli.d.ts +1 -0
  7. package/dist/cli.mjs +4653 -0
  8. package/dist/cli.mjs.map +1 -0
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.mjs +10 -0
  11. package/dist/index.mjs.map +1 -0
  12. package/dist/schemas/index.d.ts +47 -0
  13. package/dist/schemas/index.mjs +384 -0
  14. package/dist/schemas/index.mjs.map +1 -0
  15. package/manifests/README.md +23 -0
  16. package/manifests/SCHEMA.md +180 -0
  17. package/manifests/aliases.yaml +14 -0
  18. package/manifests/cc-hooks/dashboard-autospawn.yaml +45 -0
  19. package/manifests/skill-packs/.gitkeep +0 -0
  20. package/manifests/skill-packs/anthropics-skills-pptx.yaml +46 -0
  21. package/manifests/skill-packs/anthropics-skills-slide-deck.yaml +46 -0
  22. package/manifests/skill-packs/frontend-design.yaml +63 -0
  23. package/manifests/skill-packs/gsd.yaml +43 -0
  24. package/manifests/skill-packs/gstack.yaml +40 -0
  25. package/manifests/skill-packs/karpathy-skills.yaml +64 -0
  26. package/manifests/skill-packs/mattpocock-skills.yaml +40 -0
  27. package/manifests/skill-packs/planning-with-files.yaml +45 -0
  28. package/manifests/skill-packs/ui-ux-pro-max.yaml +61 -0
  29. package/manifests/tools/.gitkeep +0 -0
  30. package/manifests/tools/chrome-devtools-mcp.yaml +44 -0
  31. package/manifests/tools/ctx7.yaml +39 -0
  32. package/manifests/tools/exa-mcp.yaml +39 -0
  33. package/manifests/tools/playwright-test.yaml +47 -0
  34. package/manifests/tools/ralph-loop.yaml +46 -0
  35. package/manifests/tools/superpowers.yaml +42 -0
  36. package/manifests/tools/tavily-mcp.yaml +39 -0
  37. package/package.json +96 -0
  38. package/routing/.gitkeep +0 -0
  39. package/routing/README.md +22 -0
  40. package/routing/SCHEMA.md +199 -0
  41. package/routing/decision_rules.yaml +387 -0
  42. package/routing/plan-review-schema.yaml +50 -0
  43. package/schemas/.gitkeep +0 -0
  44. package/schemas/README.md +33 -0
  45. package/schemas/manifest.v1.schema.json +1107 -0
  46. package/workflows/.gitkeep +0 -0
  47. package/workflows/README.md +23 -0
  48. package/workflows/SCHEMA.md +157 -0
  49. package/workflows/execute-task/SKILL.md +70 -0
  50. package/workflows/execute-task/phases.yaml +27 -0
  51. package/workflows/plan-feature/workflow.yaml +40 -0
@@ -0,0 +1,180 @@
1
+ # manifests/ — Manifest Schema v1 (Human-Readable Reference)
2
+
3
+ > **决策真理来源**:[`docs/adr/0001-manifest-schema-v1.md`](../docs/adr/0001-manifest-schema-v1.md)
4
+ > **机器消费 artifact**:[`schemas/manifest.v1.schema.json`](../schemas/manifest.v1.schema.json)(`pnpm build && pnpm build:schema` 产出)
5
+ > **本文件定位**:人类可读视图(schema 字段速查 + 9 上游路径占位 + IDE 集成示例),与 ADR 0001 互补 — ADR 决策;本文件帮你**写**和**读** manifest。
6
+
7
+ 任何字段语义冲突以 ADR 0001 为准;任何机器校验差异以 `schemas/manifest.v1.schema.json` 为准。
8
+
9
+ ---
10
+
11
+ ## 1. 顶层结构(4 个必填字段)
12
+
13
+ ```yaml
14
+ apiVersion: harnessed/v1 # 仿 K8s CRD,固定字面量
15
+ kind: Manifest # 固定字面量
16
+ metadata: {...} # 见 § 2
17
+ spec: {...} # 见 § 3
18
+ ```
19
+
20
+ `additionalProperties: false` 全树启用 — 任何未声明字段被 reject(拒绝清单见 ADR 0001 line 134-139)。
21
+
22
+ ---
23
+
24
+ ## 2. metadata 字段表
25
+
26
+ | 字段 | 必填 | 类型 | 约束 | 来源 |
27
+ |------|------|------|------|------|
28
+ | `name` | ✅ | string | `^[a-z0-9][a-z0-9-]*$`,全局唯一 | ADR 0001 line 44 |
29
+ | `display_name` | optional | string | UI 展示名 | ADR 0001 line 45 |
30
+ | `description` | ✅ | string | ≤ 120 char | ADR 0001 line 46 |
31
+ | `upstream.source` | ✅ | string | 上游官方名 | ADR 0001 line 48 |
32
+ | `upstream.homepage` | ✅ | uri | https URL | ADR 0001 line 49 |
33
+ | `upstream.repository` | ✅ | uri | git URL(用于 audit 检测篡改) | ADR 0001 line 50 |
34
+ | `upstream.license` | ✅ | SPDX enum | `MIT` / `Apache-2.0` / `BSD-3-Clause` / `ISC` / `0BSD` | ADR 0001 line 51 |
35
+ | `upstream.notice` | ✅ | string | 1 行致谢,≤ 500 char,写入用户 NOTICES.md | ADR 0001 line 52 |
36
+
37
+ 非白名单 license(GPL / AGPL / SSPL / proprietary)一律 reject — vendor 准入门槛见 [`vendor/ENTRY-CRITERIA.md`](../vendor/ENTRY-CRITERIA.md)。
38
+
39
+ ---
40
+
41
+ ## 3. spec 字段表
42
+
43
+ | 字段 | 必填 | 类型 | 约束 |
44
+ |------|------|------|------|
45
+ | `type` | ✅ | enum | `cc-plugin` / `cc-skill-pack` / `mcp-npm` / `cli-npm` |
46
+ | `component_type` | ✅ | enum | `command` / `behavior-rule` / `mcp-tool` / `cli-binary` |
47
+ | `install` | ✅ | object | 见 § 4 install 矩阵 |
48
+ | `verify.cmd` | ✅ | string | health-check 命令 |
49
+ | `verify.timeout_ms` | optional | int | 100..60000 ms,默认 5000 |
50
+ | `verify.expected_exit_code` | optional | int | 默认 0 |
51
+ | `uninstall.cmd` | ✅ | string | 1-key 卸载命令 |
52
+ | `uninstall.cleanup_paths` | optional | string[] | 额外清理路径 |
53
+ | `upstream_health.stability` | ✅ | enum | `stable` / `beta` / `unstable` / `archived` |
54
+ | `upstream_health.last_check` | ✅ | ISO date | weekly CI 自动写入 |
55
+ | `upstream_health.last_known_good_version` | ✅ | string | weekly CI 自动维护 |
56
+ | `upstream_health.fallback_action` | ✅ | enum | `warn` / `block` / `use_alternative` |
57
+ | `upstream_health.alternative` | conditional | string | `fallback_action == use_alternative` 时必填 |
58
+ | `signed_by` | ✅ | string | maintainer GitHub username(v0.1-0.3 commit hash 校验,v0.4+ sigstore) |
59
+ | `signature.sigstore_bundle` | optional | uri | v0.4+ 启用 |
60
+ | `platforms` | ✅ | enum[] | 至少 1 个:`linux` / `darwin` / `win32`,去重 |
61
+ | `tested_with_versions.cc_versions` | optional | string[] | weekly CI 回填 |
62
+ | `tested_with_versions.node_versions` | optional | string[] | weekly CI 回填 |
63
+ | `mutually_exclusive_with` | optional | string[] | manifest names(v0.2+ 启用) |
64
+
65
+ ---
66
+
67
+ ## 4. type × install.method 兼容矩阵(4 type × 6 method)
68
+
69
+ CI 通过 ManifestSchema 顶层 `allOf` + `if/then` 严格 enforce;任何不在矩阵中的组合直接 reject。
70
+
71
+ | type \ method | `cc-plugin-marketplace` | `git-clone-with-setup` | `npx-skill-installer` | `npm-cli` | `mcp-stdio-add` | `mcp-http-add` |
72
+ |:---:|:---:|:---:|:---:|:---:|:---:|:---:|
73
+ | **cc-plugin** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
74
+ | **cc-skill-pack** | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
75
+ | **mcp-npm** | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
76
+ | **cli-npm** | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
77
+
78
+ **install.* method-条件必填字段**(discriminator union):
79
+
80
+ | install.method | 额外必填字段 |
81
+ |---|---|
82
+ | `cc-plugin-marketplace` | `git_ref` |
83
+ | `git-clone-with-setup` | `git_ref` |
84
+ | `npx-skill-installer` | `npm_version` |
85
+ | `npm-cli` | `npm_version` |
86
+ | `mcp-stdio-add` | `npm_version` |
87
+ | `mcp-http-add` | `npm_version` |
88
+
89
+ **install.* 通用必填字段**:`method` / `cmd` / `idempotent_check`
90
+ **install.* 通用可选字段**:`cwd` / `env` / `args`
91
+
92
+ ---
93
+
94
+ ## 5. component_type 4 种语义
95
+
96
+ | component_type | 描述 | v0.1 上游样例 |
97
+ |---|---|---|
98
+ | `command` | 注册 `/foo:bar` 命令,可被 workflow `invokes` 引用 | mattpocock-skills, GSD, gstack, planning-with-files, ralph-loop, superpowers |
99
+ | `behavior-rule` | CLAUDE.md 注入行为规范,**无命令** | karpathy-skills |
100
+ | `mcp-tool` | MCP server 提供的 tool(`claude mcp add` 注册) | tavily-mcp, exa-mcp |
101
+ | `cli-binary` | 独立 CLI 可执行(`command -v` 验证) | ctx7 |
102
+
103
+ 特殊语义(ADR 0001 line 124-128):
104
+
105
+ - `behavior-rule` 安装 = CLAUDE.md merge(多源时按未来 `priority` 字段排序)
106
+ - `behavior-rule` 卸载 = 移除 CLAUDE.md 中对应 block(marker 注释定位)
107
+ - `mcp-tool` 安装/卸载强制走 `claude mcp add/remove` CLI,**禁止**直接编辑 `~/.claude.json` 或 `.mcp.json`
108
+
109
+ ---
110
+
111
+ ## 6. v0.1 上游 manifest 路径占位(9 上游 / 10 manifest)
112
+
113
+ phase 1.1 dry-run 验证字段充分性;实际 install/verify 命令在 phase 1.2 落地 installer 时精化。
114
+
115
+ | 上游 | 文件路径 | type | install.method | component_type |
116
+ |---|---|---|---|---|
117
+ | gstack | `manifests/skill-packs/gstack.yaml` | cc-skill-pack | git-clone-with-setup | command |
118
+ | GSD | `manifests/skill-packs/gsd.yaml` | cli-npm | npm-cli | command |
119
+ | superpowers | `manifests/tools/superpowers.yaml` | cc-plugin | cc-plugin-marketplace | command |
120
+ | planning-with-files | `manifests/skill-packs/planning-with-files.yaml` | cc-skill-pack | cc-plugin-marketplace | command |
121
+ | mattpocock-skills | `manifests/skill-packs/mattpocock-skills.yaml` | cc-skill-pack | npx-skill-installer | command |
122
+ | karpathy-skills | `manifests/skill-packs/karpathy-skills.yaml` | cc-skill-pack | npx-skill-installer | behavior-rule |
123
+ | ralph-loop | `manifests/tools/ralph-loop.yaml` | cc-plugin | cc-plugin-marketplace | command |
124
+ | tavily-mcp | `manifests/tools/tavily-mcp.yaml` | mcp-npm | mcp-stdio-add | mcp-tool |
125
+ | exa-mcp | `manifests/tools/exa-mcp.yaml` | mcp-npm | mcp-stdio-add | mcp-tool |
126
+ | ctx7 | `manifests/tools/ctx7.yaml` | cli-npm | npm-cli | cli-binary |
127
+
128
+ 矩阵覆盖:4/4 type,6/6 method 中 5 个真实命中(`mcp-http-add` 在 v0.1 无上游,仅 schema 占位 — phase 1.2 会找一个 mcp-http server demo 来覆盖)。
129
+
130
+ ---
131
+
132
+ ## 7. IDE 集成(VS Code yaml-language-server)
133
+
134
+ 在 manifest yaml 顶部加一行:
135
+
136
+ ```yaml
137
+ # yaml-language-server: $schema=https://harnessed.dev/schemas/manifest.v1.schema.json
138
+ apiVersion: harnessed/v1
139
+ kind: Manifest
140
+ ...
141
+ ```
142
+
143
+ `redhat.vscode-yaml` 插件自动启用补全 + 实时校验。
144
+
145
+ 本仓库内贡献者也可指向相对路径(手 ABT):
146
+
147
+ ```yaml
148
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 8. 必填字段 checklist(review 自检)
154
+
155
+ 提交新 manifest 前确认:
156
+
157
+ - [ ] `apiVersion: harnessed/v1` + `kind: Manifest`
158
+ - [ ] `metadata.name` kebab-case 唯一 + `metadata.description` ≤ 120 char
159
+ - [ ] `metadata.upstream` 全 5 字段(source / homepage / repository / license / notice)
160
+ - [ ] `spec.type` ∈ 4 enum + `spec.component_type` ∈ 4 enum
161
+ - [ ] `spec.install.{method, cmd, idempotent_check}` + 按 method 决定的 `git_ref` / `npm_version`
162
+ - [ ] `spec.verify.cmd` + `spec.uninstall.cmd`
163
+ - [ ] `spec.upstream_health` 4 字段(stability / last_check / last_known_good_version / fallback_action)
164
+ - [ ] `spec.signed_by` GitHub username + `spec.platforms` ≥ 1 个
165
+ - [ ] type × method 在 § 4 矩阵合法组合内
166
+ - [ ] 没有 `${shell}` `$(cmd)` `eval(...)` `!ruby/regexp` 等动态求值(ADR 0001 reject 清单)
167
+ - [ ] 没有 `extends` / `inherits` 等 templating 字段(schema v1 简洁性优先)
168
+
169
+ CI 强制校验:`pnpm test` + `pnpm validate:schema`。
170
+
171
+ ---
172
+
173
+ ## 9. 关联
174
+
175
+ - **决策**:`docs/adr/0001-manifest-schema-v1.md`
176
+ - **JSON Schema artifact**:`schemas/manifest.v1.schema.json` —— `pnpm build && pnpm build:schema` 产出
177
+ - **TypeBox 源定义**:`src/manifest/schema/`(`index.ts` / `metadata.ts` / `spec.ts` / `installMethods/*.ts`)
178
+ - **校验器入口**:`src/manifest/validate.ts` — `validateManifestFile(yamlSrc, file)` 返回 `{ok, manifest|errors}`
179
+ - **测试**:`tests/unit/manifest-validate.*.test.ts` + `tests/unit/schema-artifact.test.ts`
180
+ - **PROJECT-SPEC § 8.1**:schema 冻结纪律(任何字段 add / remove / rename / type 变更 → 新 ADR + 全量 migration)
@@ -0,0 +1,14 @@
1
+ # manifests/aliases.yaml — Phase 3.3 R7.5 deprecation marker + upstream rename redirect
2
+ # Phase 3.3 MVP empty seed; Phase 3.4 dogfood adds first actual deprecation entries.
3
+ # Schema: src/manifest/schema/aliases.v1.ts (12th surface, D-01 RICH)
4
+ #
5
+ # Example entry shape (commented for reference, uncomment + populate when needed):
6
+ # old-package-name:
7
+ # redirect: new-package-name
8
+ # reason: upstream renamed (v2.0 rebrand)
9
+ # since_version: '0.3.0'
10
+ # deprecation_date: '2026-05-17'
11
+ # removal_date: '2026-12-31' # optional, 长尾窗口
12
+
13
+ schemaVersion: harnessed.aliases.v1
14
+ aliases: {}
@@ -0,0 +1,45 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ # Phase 2.4 W3 T3.1 (D-04 § 3.1 + R2.4.4) — first cc-hook-add fixture.
3
+ # Registers a SessionStart hook that auto-spawns the harnessed dashboard
4
+ # (--no-open keeps the hook quiet; user clicks the URL in the welcome banner).
5
+ # Idempotent — re-install on existing matching entry → skip.
6
+ apiVersion: harnessed/v1
7
+ kind: Manifest
8
+ metadata:
9
+ name: dashboard-autospawn
10
+ display_name: Dashboard Autospawn (SessionStart)
11
+ description: SessionStart hook that boots the harnessed read-only dashboard on every CC session start.
12
+ upstream:
13
+ source: dashboard-autospawn
14
+ homepage: https://github.com/easyinplay/harnessed
15
+ repository: https://github.com/easyinplay/harnessed.git
16
+ license: MIT
17
+ notice: First-party harnessed hook (Phase 2.4 W3 T3.1 D-04 § 3.1).
18
+ spec:
19
+ type: cc-hook
20
+ component_type: command
21
+ category: meta
22
+ install_type: hook
23
+ install:
24
+ method: cc-hook-add
25
+ cmd: "node scripts/dashboard.mjs --no-open"
26
+ hook_event: SessionStart
27
+ hook_matcher: "startup|resume"
28
+ hook_command: "node scripts/dashboard.mjs --no-open"
29
+ idempotent_check: "grep -q dashboard.mjs ~/.claude/settings.json"
30
+ verify:
31
+ cmd: "grep -q dashboard.mjs ~/.claude/settings.json"
32
+ timeout_ms: 5000
33
+ expected_exit_code: 0
34
+ uninstall:
35
+ cmd: "true"
36
+ upstream_health:
37
+ stability: beta
38
+ last_check: "2026-05-16"
39
+ last_known_good_version: "0.2.0"
40
+ fallback_action: warn
41
+ signed_by: easyinplay
42
+ platforms:
43
+ - linux
44
+ - darwin
45
+ - win32
File without changes
@@ -0,0 +1,46 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ apiVersion: harnessed/v1
3
+ kind: Manifest
4
+ metadata:
5
+ name: anthropics-skills-pptx
6
+ display_name: Anthropic Skills — pptx
7
+ description: PowerPoint deck generation skill from anthropics/skills upstream (English-first slide-deck output).
8
+ upstream:
9
+ source: github.com/anthropics/skills
10
+ homepage: https://github.com/anthropics/skills/tree/main/skills/pptx
11
+ repository: https://github.com/anthropics/skills.git
12
+ license: anthropics-official
13
+ notice: |
14
+ Anthropic skills — pptx sub-skill from anthropics/skills (source-available; anthropics-official carve-out per .planning/research/v0.2.0-extensions.md § 2.1).
15
+ content category — PowerPoint file generation; routed via decision_rules.yaml `pptx-file-task` (priority 80).
16
+ spec:
17
+ type: cc-skill-pack
18
+ component_type: command
19
+ category: content
20
+ install_type: skill
21
+ install:
22
+ method: npx-skill-installer
23
+ cmd: "npx --yes skills@1.5.7 add anthropics/skills/pptx --copy --global"
24
+ npm_version: ^1.5.7
25
+ idempotent_check: "test -f ~/.claude/skills/pptx/SKILL.md"
26
+ verify:
27
+ cmd: "test -f ~/.claude/skills/pptx/SKILL.md"
28
+ timeout_ms: 5000
29
+ expected_exit_code: 0
30
+ uninstall:
31
+ cmd: "rm -rf ~/.claude/skills/pptx"
32
+ cleanup_paths:
33
+ - ~/.claude/skills/pptx
34
+ upstream_health:
35
+ stability: stable
36
+ last_check: "2026-05-16"
37
+ last_known_good_version: "1.5.7"
38
+ fallback_action: warn
39
+ signed_by: easyinplay
40
+ platforms:
41
+ - linux
42
+ - darwin
43
+ - win32
44
+ decision_rules:
45
+ trigger: "user 请求生成 pptx / PowerPoint / slide deck (English)"
46
+ default_expert: anthropics-skills-pptx
@@ -0,0 +1,46 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ apiVersion: harnessed/v1
3
+ kind: Manifest
4
+ metadata:
5
+ name: anthropics-skills-slide-deck
6
+ display_name: Anthropic Skills — slide-deck
7
+ description: Slide-deck generation skill from anthropics/skills upstream (ZH-first 中文 PPT 演示稿). Complement to pptx.
8
+ upstream:
9
+ source: github.com/anthropics/skills
10
+ homepage: https://github.com/anthropics/skills/tree/main/skills/slide-deck
11
+ repository: https://github.com/anthropics/skills.git
12
+ license: anthropics-official
13
+ notice: |
14
+ Anthropic skills — slide-deck sub-skill from anthropics/skills (source-available; anthropics-official carve-out per .planning/research/v0.2.0-extensions.md § 2.1).
15
+ content category — 中文 slide-deck 演示场景; routed via decision_rules.yaml `chinese-content-deck` rule (priority 70).
16
+ spec:
17
+ type: cc-skill-pack
18
+ component_type: command
19
+ category: content
20
+ install_type: skill
21
+ install:
22
+ method: npx-skill-installer
23
+ cmd: "npx --yes skills@1.5.7 add anthropics/skills/slide-deck --copy --global"
24
+ npm_version: ^1.5.7
25
+ idempotent_check: "test -f ~/.claude/skills/slide-deck/SKILL.md"
26
+ verify:
27
+ cmd: "test -f ~/.claude/skills/slide-deck/SKILL.md"
28
+ timeout_ms: 5000
29
+ expected_exit_code: 0
30
+ uninstall:
31
+ cmd: "rm -rf ~/.claude/skills/slide-deck"
32
+ cleanup_paths:
33
+ - ~/.claude/skills/slide-deck
34
+ upstream_health:
35
+ stability: stable
36
+ last_check: "2026-05-16"
37
+ last_known_good_version: "1.5.7"
38
+ fallback_action: warn
39
+ signed_by: easyinplay
40
+ platforms:
41
+ - linux
42
+ - darwin
43
+ - win32
44
+ decision_rules:
45
+ trigger: "user 请求中文 slide / 中文 PPT 演示稿 / slide deck (Chinese)"
46
+ default_expert: anthropics-skills-slide-deck
@@ -0,0 +1,63 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ apiVersion: harnessed/v1
3
+ kind: Manifest
4
+ metadata:
5
+ name: frontend-design
6
+ display_name: frontend-design (anthropics/skills)
7
+ description: Style-led / distinctive aesthetic skill. D-08 "做出风格" override anchor; complements ui-ux-pro-max.
8
+ upstream:
9
+ source: github.com/anthropics/skills
10
+ homepage: https://github.com/anthropics/skills/tree/main/skills/frontend-design
11
+ repository: https://github.com/anthropics/skills.git
12
+ license: anthropics-official
13
+ notice: |
14
+ frontend-design sub-skill from anthropics/skills (source-available; anthropics-official carve-out per .planning/research/v0.2.0-extensions.md § 1).
15
+ D-08 "做出风格" override anchor — primary expert when user requests style-led / distinctive / bold design.
16
+ Routing complementary to ui-ux-pro-max (data-driven / standards-based). See routing/decision_rules.yaml `ui-task-bold-style-override`.
17
+ spec:
18
+ type: cc-skill-pack
19
+ component_type: command
20
+ category: design
21
+ install_type: git
22
+ install:
23
+ method: git-clone-with-setup
24
+ cmd: "rm -rf ~/.claude/skills/.cache/anthropics-skills-fe && git clone https://github.com/anthropics/skills.git ~/.claude/skills/.cache/anthropics-skills-fe && (cd ~/.claude/skills/.cache/anthropics-skills-fe && git checkout f458cee31a7577a47ba0c9a101976fa599385174) && mkdir -p ~/.claude/skills && cp -R ~/.claude/skills/.cache/anthropics-skills-fe/skills/frontend-design ~/.claude/skills/frontend-design && rm -rf ~/.claude/skills/.cache/anthropics-skills-fe"
25
+ git_ref: f458cee31a7577a47ba0c9a101976fa599385174
26
+ idempotent_check: "test -f ~/.claude/skills/frontend-design/SKILL.md"
27
+ verify:
28
+ cmd: "test -f ~/.claude/skills/frontend-design/SKILL.md"
29
+ timeout_ms: 5000
30
+ expected_exit_code: 0
31
+ uninstall:
32
+ cmd: "rm -rf ~/.claude/skills/frontend-design"
33
+ cleanup_paths:
34
+ - ~/.claude/skills/frontend-design
35
+ upstream_health:
36
+ stability: stable
37
+ last_check: "2026-05-16"
38
+ last_known_good_version: main-2026-05-09
39
+ fallback_action: warn
40
+ signed_by: easyinplay
41
+ platforms:
42
+ - linux
43
+ - darwin
44
+ - win32
45
+ decision_rules:
46
+ trigger: "user 请求 style-led / 独特创意 / 做出风格 / distinctive"
47
+ default_expert: frontend-design
48
+ arbitration_rule: "frontend-design 主导剩余维度 (layout / motion / decoration); ui-ux-pro-max 补标准化主方案"
49
+ override_signals:
50
+ - phrase: "做出风格"
51
+ use: frontend-design
52
+ - phrase: "experimental"
53
+ use: frontend-design
54
+ - phrase: "design-led"
55
+ use: frontend-design
56
+ # Phase 2.3 W2 T2.5 (S3 plan-check fix) — 双向 redirect 一致性。
57
+ # frontend-design 拒绝 → ui-ux-pro-max (sister 镜射 ui-ux-pro-max 拒绝 → frontend-design,见该 manifest)
58
+ do_not_use_when:
59
+ - data-driven
60
+ - 标准化
61
+ - design system 严谨
62
+ - 数据可视化
63
+ if_rejected_use: ui-ux-pro-max
@@ -0,0 +1,43 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ apiVersion: harnessed/v1
3
+ kind: Manifest
4
+ metadata:
5
+ name: gsd
6
+ display_name: GSD (Get Shit Done)
7
+ description: Project-manager orchestrator providing /gsd-* discuss-plan-execute-verify workflow.
8
+ upstream:
9
+ source: get-shit-done-cc
10
+ homepage: https://github.com/gsd-build/get-shit-done
11
+ repository: https://github.com/gsd-build/get-shit-done.git
12
+ license: MIT
13
+ notice: GSD by gsd-build (TACHES), used as orchestration layer in harnessed plan-feature workflow.
14
+ spec:
15
+ type: cli-npm
16
+ component_type: command
17
+ category: engineering
18
+ install_type: npm
19
+ install:
20
+ method: npm-cli
21
+ cmd: "npx --yes get-shit-done-cc@^1.41.0 install"
22
+ npm_version: ^1.41.0
23
+ idempotent_check: "test -d ~/.claude/skills/gsd"
24
+ verify:
25
+ cmd: "npx --yes get-shit-done-cc@^1.41.0 --version"
26
+ timeout_ms: 10000
27
+ uninstall:
28
+ cmd: "rm -rf ~/.claude/skills/gsd"
29
+ cleanup_paths:
30
+ - ~/.claude/skills/gsd
31
+ upstream_health:
32
+ stability: beta
33
+ last_check: "2026-05-11"
34
+ last_known_good_version: 1.41.2
35
+ fallback_action: warn
36
+ signed_by: easyinplay
37
+ platforms:
38
+ - linux
39
+ - darwin
40
+ - win32
41
+ tested_with_versions:
42
+ node_versions:
43
+ - "22"
@@ -0,0 +1,40 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ apiVersion: harnessed/v1
3
+ kind: Manifest
4
+ metadata:
5
+ name: gstack
6
+ display_name: gstack
7
+ description: Virtual startup team skills (CEO/Eng/Designer/Paranoid Engineer) for governance gates.
8
+ upstream:
9
+ source: gstack
10
+ homepage: https://gstacks.org
11
+ repository: https://github.com/garrytan/gstack.git
12
+ license: MIT
13
+ notice: gstack by Garry Tan, used as governance layer per harnessed plan-feature workflow.
14
+ spec:
15
+ type: cc-skill-pack
16
+ component_type: command
17
+ category: engineering
18
+ install_type: git
19
+ install:
20
+ method: git-clone-with-setup
21
+ cmd: "git clone https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && bash ./setup.sh"
22
+ git_ref: 74895062fb8a3acbf9f66cd088a83359aaaa56cd
23
+ idempotent_check: "test -d ~/.claude/skills/gstack/.git"
24
+ verify:
25
+ cmd: "test -f ~/.claude/skills/gstack/skills/office-hours.md"
26
+ timeout_ms: 5000
27
+ uninstall:
28
+ cmd: "rm -rf ~/.claude/skills/gstack"
29
+ cleanup_paths:
30
+ - ~/.claude/skills/gstack
31
+ upstream_health:
32
+ stability: stable
33
+ last_check: "2026-05-11"
34
+ last_known_good_version: main-269-commits
35
+ fallback_action: warn
36
+ signed_by: easyinplay
37
+ platforms:
38
+ - linux
39
+ - darwin
40
+ - win32
@@ -0,0 +1,64 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ apiVersion: harnessed/v1
3
+ kind: Manifest
4
+ metadata:
5
+ name: karpathy-skills
6
+ display_name: Karpathy Baseline (心法 always-on)
7
+ description: Andrej Karpathy 心法 always-on SKILL-ONLY injection (D-02 锁 不动 CLAUDE.md).
8
+ upstream:
9
+ source: github.com/forrestchang/andrej-karpathy-skills
10
+ homepage: https://github.com/forrestchang/andrej-karpathy-skills
11
+ repository: https://github.com/forrestchang/andrej-karpathy-skills.git
12
+ license: MIT
13
+ notice: |
14
+ rules attributed to Andrej Karpathy; distilled to ~/.claude/skills/karpathy-baseline/SKILL.md
15
+ from source-of-truth skills/karpathy-baseline/SKILL.md in this repository. D-02 SKILL-ONLY
16
+ injection — CLAUDE.md untouched (replaces prior CLAUDE.md sed-injection path).
17
+ spec:
18
+ type: cc-skill-pack
19
+ component_type: command
20
+ category: meta
21
+ # Phase 2.3 W6 DI-1 hotfix — install_type: git (not skill) per ADR 0007 1:N
22
+ # closure (skill ∈ {cc-plugin-marketplace, npx-skill-installer}; git ∈ {git-clone-with-setup}).
23
+ # Semantic: karpathy-baseline IS a skill in nature (placed at ~/.claude/skills/),
24
+ # but its install method is local-copy from a git-origin upstream (forrestchang/
25
+ # andrej-karpathy-skills) — install_type tracks the install method semantics
26
+ # (file-system shape), not the runtime artifact placement.
27
+ install_type: git
28
+ install:
29
+ # Phase 2.3 W6 DI-1 hotfix — git_ref schema pin (Phase 1.1.1 hotfix M1 GIT_REF_PATTERN
30
+ # requires 7-40 hex SHA or SemVer tag; "HEAD" is rejected by the manifest schema).
31
+ # NOTE: cmd uses local `cp -R skills/karpathy-baseline ~/.claude/skills/` —
32
+ # git_ref is semantically UNUSED by this local-copy install path. The all-zeros
33
+ # SHA below is a 40-hex schema-compliant placeholder. The canonical upstream
34
+ # this SKILL.md derives from is forrestchang/andrej-karpathy-skills (see
35
+ # metadata.upstream.repository) — pin to a real SHA when the local-copy path
36
+ # is migrated to a true `git clone` install method (deferred to v0.2.4+).
37
+ method: git-clone-with-setup
38
+ cmd: |
39
+ if [ -f ~/.claude/CLAUDE.md ]; then
40
+ node scripts/strip-claude-md-section.mjs "<!-- karpathy-skills:start -->" "<!-- karpathy-skills:end -->" ~/.claude/CLAUDE.md \
41
+ && echo "[migration] cleaned legacy karpathy-skills CLAUDE.md block (D-02 SKILL-ONLY transition; cross-platform via node script)"
42
+ fi
43
+ mkdir -p ~/.claude/skills
44
+ cp -R skills/karpathy-baseline ~/.claude/skills/
45
+ git_ref: "0000000000000000000000000000000000000000"
46
+ idempotent_check: "test -f ~/.claude/skills/karpathy-baseline/SKILL.md"
47
+ verify:
48
+ cmd: "test -f ~/.claude/skills/karpathy-baseline/SKILL.md"
49
+ timeout_ms: 5000
50
+ expected_exit_code: 0
51
+ uninstall:
52
+ cmd: "rm -rf ~/.claude/skills/karpathy-baseline"
53
+ cleanup_paths:
54
+ - ~/.claude/skills/karpathy-baseline
55
+ upstream_health:
56
+ stability: stable
57
+ last_check: "2026-05-16"
58
+ last_known_good_version: skill-only-v1
59
+ fallback_action: warn
60
+ signed_by: easyinplay
61
+ platforms:
62
+ - linux
63
+ - darwin
64
+ - win32
@@ -0,0 +1,40 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ apiVersion: harnessed/v1
3
+ kind: Manifest
4
+ metadata:
5
+ name: mattpocock-skills
6
+ display_name: mattpocock-skills
7
+ description: 17 single-slash command skills (/diagnose /zoom-out /tdd /grill-with-docs etc.) by Matt Pocock.
8
+ upstream:
9
+ source: mattpocock/skills
10
+ homepage: https://github.com/mattpocock/skills
11
+ repository: https://github.com/mattpocock/skills.git
12
+ license: MIT
13
+ notice: mattpocock-skills by Matt Pocock, used as on-demand engineering tactics (招式) in harnessed.
14
+ spec:
15
+ type: cc-skill-pack
16
+ component_type: command
17
+ category: engineering
18
+ install_type: skill
19
+ install:
20
+ method: npx-skill-installer
21
+ cmd: "npx --yes skills@latest add mattpocock/skills"
22
+ npm_version: ^1.0.0
23
+ idempotent_check: "test -d ~/.claude/skills/mattpocock-skills"
24
+ verify:
25
+ cmd: "test -f ~/.claude/skills/mattpocock-skills/diagnose.md"
26
+ timeout_ms: 5000
27
+ uninstall:
28
+ cmd: "rm -rf ~/.claude/skills/mattpocock-skills"
29
+ cleanup_paths:
30
+ - ~/.claude/skills/mattpocock-skills
31
+ upstream_health:
32
+ stability: stable
33
+ last_check: "2026-05-11"
34
+ last_known_good_version: main-76-commits
35
+ fallback_action: warn
36
+ signed_by: easyinplay
37
+ platforms:
38
+ - linux
39
+ - darwin
40
+ - win32
@@ -0,0 +1,45 @@
1
+ # yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
2
+ #
3
+ # NOTE: spec.install.cmd is a Claude Code REPL slash command, NOT a shell command.
4
+ # cc-plugin-marketplace install method's actual mechanism is undefined for
5
+ # headless installer execution. See progress.md § B F20.
6
+ apiVersion: harnessed/v1
7
+ kind: Manifest
8
+ metadata:
9
+ name: planning-with-files
10
+ display_name: planning-with-files
11
+ description: Persistent 3-file planning skill (task_plan.md / findings.md / progress.md) Manus-style.
12
+ upstream:
13
+ source: planning-with-files
14
+ homepage: https://github.com/OthmanAdi/planning-with-files
15
+ repository: https://github.com/OthmanAdi/planning-with-files.git
16
+ license: MIT
17
+ notice: planning-with-files by OthmanAdi, used as plan-persistence base in harnessed plan-feature workflow.
18
+ spec:
19
+ type: cc-skill-pack
20
+ component_type: command
21
+ category: engineering
22
+ install_type: skill
23
+ install:
24
+ method: cc-plugin-marketplace
25
+ cmd: "/plugin marketplace add OthmanAdi/planning-with-files && /plugin install planning-with-files@planning-with-files"
26
+ git_ref: v2.37.0
27
+ idempotent_check: "/plugin list | grep -q planning-with-files"
28
+ marketplace_source: # ADR 0005 — third-party marketplace structured metadata
29
+ source: github
30
+ repo: OthmanAdi/planning-with-files
31
+ verify:
32
+ cmd: "/plugin list | grep -q planning-with-files"
33
+ timeout_ms: 5000
34
+ uninstall:
35
+ cmd: "/plugin uninstall planning-with-files@planning-with-files"
36
+ upstream_health:
37
+ stability: stable
38
+ last_check: "2026-05-11"
39
+ last_known_good_version: 2.37.0
40
+ fallback_action: warn
41
+ signed_by: easyinplay
42
+ platforms:
43
+ - linux
44
+ - darwin
45
+ - win32