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.
- package/LICENSE +201 -0
- package/NOTICE +20 -0
- package/README.md +178 -0
- package/config-templates/README.md +21 -0
- package/config-templates/hooks/.gitkeep +0 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.mjs +4653 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.mjs +10 -0
- package/dist/index.mjs.map +1 -0
- package/dist/schemas/index.d.ts +47 -0
- package/dist/schemas/index.mjs +384 -0
- package/dist/schemas/index.mjs.map +1 -0
- package/manifests/README.md +23 -0
- package/manifests/SCHEMA.md +180 -0
- package/manifests/aliases.yaml +14 -0
- package/manifests/cc-hooks/dashboard-autospawn.yaml +45 -0
- package/manifests/skill-packs/.gitkeep +0 -0
- package/manifests/skill-packs/anthropics-skills-pptx.yaml +46 -0
- package/manifests/skill-packs/anthropics-skills-slide-deck.yaml +46 -0
- package/manifests/skill-packs/frontend-design.yaml +63 -0
- package/manifests/skill-packs/gsd.yaml +43 -0
- package/manifests/skill-packs/gstack.yaml +40 -0
- package/manifests/skill-packs/karpathy-skills.yaml +64 -0
- package/manifests/skill-packs/mattpocock-skills.yaml +40 -0
- package/manifests/skill-packs/planning-with-files.yaml +45 -0
- package/manifests/skill-packs/ui-ux-pro-max.yaml +61 -0
- package/manifests/tools/.gitkeep +0 -0
- package/manifests/tools/chrome-devtools-mcp.yaml +44 -0
- package/manifests/tools/ctx7.yaml +39 -0
- package/manifests/tools/exa-mcp.yaml +39 -0
- package/manifests/tools/playwright-test.yaml +47 -0
- package/manifests/tools/ralph-loop.yaml +46 -0
- package/manifests/tools/superpowers.yaml +42 -0
- package/manifests/tools/tavily-mcp.yaml +39 -0
- package/package.json +96 -0
- package/routing/.gitkeep +0 -0
- package/routing/README.md +22 -0
- package/routing/SCHEMA.md +199 -0
- package/routing/decision_rules.yaml +387 -0
- package/routing/plan-review-schema.yaml +50 -0
- package/schemas/.gitkeep +0 -0
- package/schemas/README.md +33 -0
- package/schemas/manifest.v1.schema.json +1107 -0
- package/workflows/.gitkeep +0 -0
- package/workflows/README.md +23 -0
- package/workflows/SCHEMA.md +157 -0
- package/workflows/execute-task/SKILL.md +70 -0
- package/workflows/execute-task/phases.yaml +27 -0
- package/workflows/plan-feature/workflow.yaml +40 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
|
|
2
|
+
apiVersion: harnessed/v1
|
|
3
|
+
kind: Manifest
|
|
4
|
+
metadata:
|
|
5
|
+
name: ui-ux-pro-max
|
|
6
|
+
display_name: ui-ux-pro-max (midwayjs/midway)
|
|
7
|
+
description: Data-driven, standards-based UI/UX expert skill (Codex skill ported via git-clone-with-setup; v4-next branch).
|
|
8
|
+
upstream:
|
|
9
|
+
source: midwayjs/midway
|
|
10
|
+
homepage: https://github.com/midwayjs/midway/tree/v4-next/.codex/skills/ui-ux-pro-max
|
|
11
|
+
repository: https://github.com/midwayjs/midway.git
|
|
12
|
+
license: MIT
|
|
13
|
+
notice: |
|
|
14
|
+
ui-ux-pro-max skill from midwayjs/midway v4-next branch (Codex skill ported to Claude Code skills/).
|
|
15
|
+
D1.3-5 path B 主推 (avoids vercel-labs/skills issue #373 update break on non-main branches).
|
|
16
|
+
spec:
|
|
17
|
+
type: cc-skill-pack
|
|
18
|
+
component_type: command
|
|
19
|
+
category: design
|
|
20
|
+
install_type: git
|
|
21
|
+
install:
|
|
22
|
+
method: git-clone-with-setup
|
|
23
|
+
cmd: "rm -rf ~/.claude/skills/.cache/midway-uiux && git clone --depth 1 --branch v4-next https://github.com/midwayjs/midway.git ~/.claude/skills/.cache/midway-uiux && mkdir -p ~/.claude/skills && cp -R ~/.claude/skills/.cache/midway-uiux/.codex/skills/ui-ux-pro-max ~/.claude/skills/ui-ux-pro-max && rm -rf ~/.claude/skills/.cache/midway-uiux"
|
|
24
|
+
git_ref: e89d70e4bcd0ae04709a773db549cf61fcf813ac
|
|
25
|
+
idempotent_check: "test -f ~/.claude/skills/ui-ux-pro-max/SKILL.md"
|
|
26
|
+
verify:
|
|
27
|
+
cmd: "test -f ~/.claude/skills/ui-ux-pro-max/SKILL.md"
|
|
28
|
+
timeout_ms: 5000
|
|
29
|
+
expected_exit_code: 0
|
|
30
|
+
uninstall:
|
|
31
|
+
cmd: "rm -rf ~/.claude/skills/ui-ux-pro-max"
|
|
32
|
+
cleanup_paths:
|
|
33
|
+
- ~/.claude/skills/ui-ux-pro-max
|
|
34
|
+
upstream_health:
|
|
35
|
+
stability: beta
|
|
36
|
+
last_check: "2026-05-13"
|
|
37
|
+
last_known_good_version: v4-next-e89d70e4bcd0
|
|
38
|
+
fallback_action: warn
|
|
39
|
+
signed_by: easyinplay
|
|
40
|
+
platforms:
|
|
41
|
+
- linux
|
|
42
|
+
- darwin
|
|
43
|
+
- win32
|
|
44
|
+
decision_rules:
|
|
45
|
+
trigger: "user 请求 UI/UX 设计 / 前端组件 / design system / 数据驱动可视化"
|
|
46
|
+
default_expert: ui-ux-pro-max
|
|
47
|
+
arbitration_rule: "ui-ux-pro-max 出主方案 (数据驱动 / 标准化); frontend-design 补 layout / 动效 / 装饰细节"
|
|
48
|
+
override_signals:
|
|
49
|
+
- phrase: "做出风格"
|
|
50
|
+
use: frontend-design
|
|
51
|
+
- phrase: "experimental"
|
|
52
|
+
use: frontend-design
|
|
53
|
+
- phrase: "design-led"
|
|
54
|
+
use: frontend-design
|
|
55
|
+
# Phase 2.3 W2 T2.5 — B-17 per-manifest hint 冗余守护层 (SSOT 主导 routing/decision_rules.yaml — D-04)
|
|
56
|
+
do_not_use_when:
|
|
57
|
+
- 做出风格
|
|
58
|
+
- 独创
|
|
59
|
+
- 风格化
|
|
60
|
+
- design-led
|
|
61
|
+
if_rejected_use: frontend-design
|
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
|
|
2
|
+
apiVersion: harnessed/v1
|
|
3
|
+
kind: Manifest
|
|
4
|
+
metadata:
|
|
5
|
+
name: chrome-devtools-mcp
|
|
6
|
+
display_name: Chrome DevTools MCP
|
|
7
|
+
description: Performance / a11y / memory-leak diagnostics via Chrome DevTools MCP (LCP / Core Web Vitals / ARIA / heap snapshot).
|
|
8
|
+
upstream:
|
|
9
|
+
source: chrome-devtools-mcp
|
|
10
|
+
homepage: https://github.com/ChromeDevTools/chrome-devtools-mcp
|
|
11
|
+
repository: https://github.com/ChromeDevTools/chrome-devtools-mcp.git
|
|
12
|
+
license: Apache-2.0
|
|
13
|
+
notice: |
|
|
14
|
+
chrome-devtools-mcp by ChromeDevTools team (Apache-2.0, npm stdio MCP).
|
|
15
|
+
Method = mcp-stdio-add (research § 3.3: no HTTP endpoint; matches tavily-mcp shape).
|
|
16
|
+
testing category — perf / a11y / memory-leak; routed via `perf-a11y-memory` rule.
|
|
17
|
+
spec:
|
|
18
|
+
type: mcp-npm
|
|
19
|
+
component_type: mcp-tool
|
|
20
|
+
category: testing
|
|
21
|
+
install_type: mcp
|
|
22
|
+
install:
|
|
23
|
+
method: mcp-stdio-add
|
|
24
|
+
cmd: "claude mcp add --scope project --transport stdio chrome-devtools-mcp -- npx --yes chrome-devtools-mcp@^0.1.0"
|
|
25
|
+
npm_version: ^0.1.0
|
|
26
|
+
idempotent_check: "claude mcp list | grep -q chrome-devtools-mcp"
|
|
27
|
+
verify:
|
|
28
|
+
cmd: "claude mcp list | grep -q chrome-devtools-mcp"
|
|
29
|
+
timeout_ms: 10000
|
|
30
|
+
uninstall:
|
|
31
|
+
cmd: "claude mcp remove --scope project chrome-devtools-mcp"
|
|
32
|
+
upstream_health:
|
|
33
|
+
stability: stable
|
|
34
|
+
last_check: "2026-05-16"
|
|
35
|
+
last_known_good_version: "0.1.0"
|
|
36
|
+
fallback_action: warn
|
|
37
|
+
signed_by: easyinplay
|
|
38
|
+
platforms:
|
|
39
|
+
- linux
|
|
40
|
+
- darwin
|
|
41
|
+
- win32
|
|
42
|
+
decision_rules:
|
|
43
|
+
trigger: "perf / a11y / memory-leak / LCP / Core Web Vitals"
|
|
44
|
+
default_expert: chrome-devtools-mcp
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
|
|
2
|
+
apiVersion: harnessed/v1
|
|
3
|
+
kind: Manifest
|
|
4
|
+
metadata:
|
|
5
|
+
name: ctx7
|
|
6
|
+
display_name: ctx7 CLI
|
|
7
|
+
description: Up-to-date library / framework documentation fetcher (Upstash). Bash CLI, two-step library + docs.
|
|
8
|
+
upstream:
|
|
9
|
+
source: ctx7
|
|
10
|
+
homepage: https://context7.com
|
|
11
|
+
repository: https://github.com/upstash/context7.git
|
|
12
|
+
license: MIT
|
|
13
|
+
notice: ctx7 by Upstash (official), used as on-demand library doc retriever in harnessed plan-feature workflow.
|
|
14
|
+
spec:
|
|
15
|
+
type: cli-npm
|
|
16
|
+
component_type: cli-binary
|
|
17
|
+
category: search
|
|
18
|
+
install_type: npm
|
|
19
|
+
install:
|
|
20
|
+
method: npm-cli
|
|
21
|
+
cmd: "npm install -g ctx7"
|
|
22
|
+
npm_version: ^0.4.0
|
|
23
|
+
idempotent_check: "command -v ctx7"
|
|
24
|
+
verify:
|
|
25
|
+
cmd: "ctx7 --version"
|
|
26
|
+
timeout_ms: 5000
|
|
27
|
+
expected_exit_code: 0
|
|
28
|
+
uninstall:
|
|
29
|
+
cmd: "npm uninstall -g ctx7"
|
|
30
|
+
upstream_health:
|
|
31
|
+
stability: stable
|
|
32
|
+
last_check: "2026-05-11"
|
|
33
|
+
last_known_good_version: 0.4.x
|
|
34
|
+
fallback_action: warn
|
|
35
|
+
signed_by: easyinplay
|
|
36
|
+
platforms:
|
|
37
|
+
- linux
|
|
38
|
+
- darwin
|
|
39
|
+
- win32
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
|
|
2
|
+
apiVersion: harnessed/v1
|
|
3
|
+
kind: Manifest
|
|
4
|
+
metadata:
|
|
5
|
+
name: exa-mcp
|
|
6
|
+
display_name: Exa MCP
|
|
7
|
+
description: Neural-search MCP for descriptive queries / academic papers / batch URL fetch (web_fetch_exa).
|
|
8
|
+
upstream:
|
|
9
|
+
source: exa-mcp-server
|
|
10
|
+
homepage: https://docs.exa.ai/reference/exa-mcp
|
|
11
|
+
repository: https://github.com/exa-labs/exa-mcp-server.git
|
|
12
|
+
license: MIT
|
|
13
|
+
notice: exa-mcp-server by exa-labs (official), used as semantic-search MCP per harnessed routing rules.
|
|
14
|
+
spec:
|
|
15
|
+
type: mcp-npm
|
|
16
|
+
component_type: mcp-tool
|
|
17
|
+
category: search
|
|
18
|
+
install_type: mcp
|
|
19
|
+
install:
|
|
20
|
+
method: mcp-stdio-add
|
|
21
|
+
cmd: "claude mcp add --scope project --transport stdio exa-mcp -- npx --yes exa-mcp-server@^3.2.0"
|
|
22
|
+
npm_version: ^3.2.0
|
|
23
|
+
idempotent_check: "claude mcp list | grep -q exa"
|
|
24
|
+
verify:
|
|
25
|
+
cmd: "claude mcp list | grep -q exa"
|
|
26
|
+
timeout_ms: 10000
|
|
27
|
+
uninstall:
|
|
28
|
+
cmd: "claude mcp remove --scope project exa-mcp"
|
|
29
|
+
upstream_health:
|
|
30
|
+
stability: stable
|
|
31
|
+
last_check: "2026-05-11"
|
|
32
|
+
last_known_good_version: 3.2.1
|
|
33
|
+
fallback_action: use_alternative
|
|
34
|
+
alternative: tavily-mcp
|
|
35
|
+
signed_by: easyinplay
|
|
36
|
+
platforms:
|
|
37
|
+
- linux
|
|
38
|
+
- darwin
|
|
39
|
+
- win32
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
|
|
2
|
+
apiVersion: harnessed/v1
|
|
3
|
+
kind: Manifest
|
|
4
|
+
metadata:
|
|
5
|
+
name: playwright-test
|
|
6
|
+
display_name: Playwright Test (microsoft/playwright-cli)
|
|
7
|
+
description: End-to-end browser test framework. Frontend e2e (TS / React / Vue) default per decision_rules e2e-default.
|
|
8
|
+
upstream:
|
|
9
|
+
source: github.com/microsoft/playwright-cli
|
|
10
|
+
homepage: https://github.com/microsoft/playwright-cli
|
|
11
|
+
repository: https://github.com/microsoft/playwright-cli.git
|
|
12
|
+
license: Apache-2.0
|
|
13
|
+
notice: |
|
|
14
|
+
playwright-test skill from microsoft/playwright-cli (Microsoft official, Apache-2.0; .planning/research/v0.2.0-extensions.md § 3.2).
|
|
15
|
+
testing category — frontend e2e default; routed via decision_rules.yaml `e2e-default` rule (priority 50 at L107-114).
|
|
16
|
+
perf / a11y / memory-leak forbidden — those route to chrome-devtools-mcp per `perf-a11y-memory` rule (L79-95).
|
|
17
|
+
spec:
|
|
18
|
+
type: cc-skill-pack
|
|
19
|
+
component_type: command
|
|
20
|
+
category: testing
|
|
21
|
+
install_type: skill
|
|
22
|
+
install:
|
|
23
|
+
method: npx-skill-installer
|
|
24
|
+
cmd: "npx --yes skills@1.5.7 add microsoft/playwright-cli --copy --global"
|
|
25
|
+
npm_version: ^1.5.7
|
|
26
|
+
idempotent_check: "test -f ~/.claude/skills/playwright-cli/SKILL.md"
|
|
27
|
+
verify:
|
|
28
|
+
cmd: "test -f ~/.claude/skills/playwright-cli/SKILL.md"
|
|
29
|
+
timeout_ms: 5000
|
|
30
|
+
expected_exit_code: 0
|
|
31
|
+
uninstall:
|
|
32
|
+
cmd: "rm -rf ~/.claude/skills/playwright-cli"
|
|
33
|
+
cleanup_paths:
|
|
34
|
+
- ~/.claude/skills/playwright-cli
|
|
35
|
+
upstream_health:
|
|
36
|
+
stability: stable
|
|
37
|
+
last_check: "2026-05-16"
|
|
38
|
+
last_known_good_version: "1.5.7"
|
|
39
|
+
fallback_action: warn
|
|
40
|
+
signed_by: easyinplay
|
|
41
|
+
platforms:
|
|
42
|
+
- linux
|
|
43
|
+
- darwin
|
|
44
|
+
- win32
|
|
45
|
+
decision_rules:
|
|
46
|
+
trigger: "e2e test / browser test / TypeScript frontend e2e"
|
|
47
|
+
default_expert: playwright-test
|
|
@@ -0,0 +1,46 @@
|
|
|
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. Phase 1.2 plan-phase will resolve via one of:
|
|
6
|
+
# (A) Auto-print prompt + require user to paste into CC REPL (semi-automated);
|
|
7
|
+
# (B) Headless `claude plugin install <name>` CLI if/when CC ships it;
|
|
8
|
+
# (C) Defer ralph-loop to v0.2+ (until headless mechanism exists).
|
|
9
|
+
# Tracked: progress.md § B F20.
|
|
10
|
+
apiVersion: harnessed/v1
|
|
11
|
+
kind: Manifest
|
|
12
|
+
metadata:
|
|
13
|
+
name: ralph-loop
|
|
14
|
+
display_name: ralph-loop
|
|
15
|
+
description: Sub-task delivery loop with completion-promise (Anthropic-official). Windows requires jq + Git Bash.
|
|
16
|
+
upstream:
|
|
17
|
+
source: ralph-loop
|
|
18
|
+
homepage: https://github.com/anthropics/claude-plugins-official/tree/main/plugins/ralph-loop
|
|
19
|
+
repository: https://github.com/anthropics/claude-plugins-official.git
|
|
20
|
+
license: MIT
|
|
21
|
+
notice: ralph-loop maintained by Anthropic in claude-plugins-official, used as sub-task delivery guarantor in harnessed.
|
|
22
|
+
spec:
|
|
23
|
+
type: cc-plugin
|
|
24
|
+
component_type: command
|
|
25
|
+
category: engineering
|
|
26
|
+
install_type: skill
|
|
27
|
+
install:
|
|
28
|
+
method: cc-plugin-marketplace
|
|
29
|
+
cmd: "/plugin install ralph-loop@claude-plugins-official"
|
|
30
|
+
git_ref: 45896c8f2fe68e68ca2a8e3554d4441f48475431
|
|
31
|
+
idempotent_check: "/plugin list | grep -q ralph-loop"
|
|
32
|
+
verify:
|
|
33
|
+
cmd: "/plugin list | grep -q ralph-loop"
|
|
34
|
+
timeout_ms: 5000
|
|
35
|
+
uninstall:
|
|
36
|
+
cmd: "/plugin uninstall ralph-loop@claude-plugins-official"
|
|
37
|
+
upstream_health:
|
|
38
|
+
stability: beta
|
|
39
|
+
last_check: "2026-05-11"
|
|
40
|
+
last_known_good_version: main
|
|
41
|
+
fallback_action: warn
|
|
42
|
+
signed_by: easyinplay
|
|
43
|
+
platforms:
|
|
44
|
+
- linux
|
|
45
|
+
- darwin
|
|
46
|
+
- win32
|
|
@@ -0,0 +1,42 @@
|
|
|
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: superpowers
|
|
10
|
+
display_name: superpowers
|
|
11
|
+
description: Senior-engineer skill plugin (brainstorming, TDD, git worktrees) auto-activated by Claude.
|
|
12
|
+
upstream:
|
|
13
|
+
source: superpowers
|
|
14
|
+
homepage: https://github.com/obra/superpowers
|
|
15
|
+
repository: https://github.com/obra/superpowers.git
|
|
16
|
+
license: MIT
|
|
17
|
+
notice: superpowers by Jesse Vincent (obra) and Prime Radiant team, used as execution-layer engineering quality skills.
|
|
18
|
+
spec:
|
|
19
|
+
type: cc-plugin
|
|
20
|
+
component_type: command
|
|
21
|
+
category: engineering
|
|
22
|
+
install_type: skill
|
|
23
|
+
install:
|
|
24
|
+
method: cc-plugin-marketplace
|
|
25
|
+
cmd: "/plugin marketplace add obra/superpowers-marketplace && /plugin install superpowers@superpowers-marketplace"
|
|
26
|
+
git_ref: v5.1.0
|
|
27
|
+
idempotent_check: "/plugin list | grep -q superpowers"
|
|
28
|
+
verify:
|
|
29
|
+
cmd: "/plugin list | grep -q superpowers"
|
|
30
|
+
timeout_ms: 5000
|
|
31
|
+
uninstall:
|
|
32
|
+
cmd: "/plugin uninstall superpowers@superpowers-marketplace"
|
|
33
|
+
upstream_health:
|
|
34
|
+
stability: stable
|
|
35
|
+
last_check: "2026-05-11"
|
|
36
|
+
last_known_good_version: 5.1.0
|
|
37
|
+
fallback_action: warn
|
|
38
|
+
signed_by: easyinplay
|
|
39
|
+
platforms:
|
|
40
|
+
- linux
|
|
41
|
+
- darwin
|
|
42
|
+
- win32
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# yaml-language-server: $schema=../../schemas/manifest.v1.schema.json
|
|
2
|
+
apiVersion: harnessed/v1
|
|
3
|
+
kind: Manifest
|
|
4
|
+
metadata:
|
|
5
|
+
name: tavily-mcp
|
|
6
|
+
display_name: Tavily MCP
|
|
7
|
+
description: Web search / extract / map / crawl MCP server. Default web search via tavily_search.
|
|
8
|
+
upstream:
|
|
9
|
+
source: tavily-mcp
|
|
10
|
+
homepage: https://docs.tavily.com/docs/mcp
|
|
11
|
+
repository: https://github.com/tavily-ai/tavily-mcp.git
|
|
12
|
+
license: MIT
|
|
13
|
+
notice: tavily-mcp by tavily-ai (official), used as default web-search MCP per harnessed routing rules.
|
|
14
|
+
spec:
|
|
15
|
+
type: mcp-npm
|
|
16
|
+
component_type: mcp-tool
|
|
17
|
+
category: search
|
|
18
|
+
install_type: mcp
|
|
19
|
+
install:
|
|
20
|
+
method: mcp-stdio-add
|
|
21
|
+
cmd: "claude mcp add --scope project --transport stdio tavily-mcp -- npx --yes tavily-mcp@^0.2.0"
|
|
22
|
+
npm_version: ^0.2.0
|
|
23
|
+
idempotent_check: "claude mcp list | grep -q tavily"
|
|
24
|
+
verify:
|
|
25
|
+
cmd: "claude mcp list | grep -q tavily"
|
|
26
|
+
timeout_ms: 10000
|
|
27
|
+
uninstall:
|
|
28
|
+
cmd: "claude mcp remove --scope project tavily-mcp"
|
|
29
|
+
upstream_health:
|
|
30
|
+
stability: beta
|
|
31
|
+
last_check: "2026-05-11"
|
|
32
|
+
last_known_good_version: 0.2.19
|
|
33
|
+
fallback_action: use_alternative
|
|
34
|
+
alternative: exa-mcp
|
|
35
|
+
signed_by: easyinplay
|
|
36
|
+
platforms:
|
|
37
|
+
- linux
|
|
38
|
+
- darwin
|
|
39
|
+
- win32
|
package/package.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "harnessed",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI coding harness package manager + composition orchestrator",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"author": "easyinplay",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/easyinplay/harnessed.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/easyinplay/harnessed#readme",
|
|
13
|
+
"bugs": "https://github.com/easyinplay/harnessed/issues",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"claude-code",
|
|
16
|
+
"ai-harness",
|
|
17
|
+
"package-manager",
|
|
18
|
+
"composition",
|
|
19
|
+
"skill-pack",
|
|
20
|
+
"mcp",
|
|
21
|
+
"orchestrator"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=22.0.0"
|
|
25
|
+
},
|
|
26
|
+
"packageManager": "pnpm@10.12.0",
|
|
27
|
+
"bin": {
|
|
28
|
+
"harnessed": "./dist/cli.mjs"
|
|
29
|
+
},
|
|
30
|
+
"main": "./dist/index.mjs",
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"import": "./dist/index.mjs",
|
|
36
|
+
"default": "./dist/index.mjs"
|
|
37
|
+
},
|
|
38
|
+
"./schemas": {
|
|
39
|
+
"types": "./dist/schemas/index.d.ts",
|
|
40
|
+
"import": "./dist/schemas/index.mjs"
|
|
41
|
+
},
|
|
42
|
+
"./package.json": "./package.json"
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"dist",
|
|
46
|
+
"manifests",
|
|
47
|
+
"workflows",
|
|
48
|
+
"routing",
|
|
49
|
+
"config-templates",
|
|
50
|
+
"schemas",
|
|
51
|
+
"README.md",
|
|
52
|
+
"LICENSE",
|
|
53
|
+
"NOTICE"
|
|
54
|
+
],
|
|
55
|
+
"scripts": {
|
|
56
|
+
"dev": "tsup --watch",
|
|
57
|
+
"build": "tsc --noEmit && tsup",
|
|
58
|
+
"build:schema": "node ./scripts/build-schema.mjs",
|
|
59
|
+
"validate:schema": "node ./scripts/validate-schema.mjs",
|
|
60
|
+
"typecheck": "tsc --noEmit",
|
|
61
|
+
"test": "vitest run --passWithNoTests",
|
|
62
|
+
"test:watch": "vitest",
|
|
63
|
+
"test:coverage": "vitest run --coverage --passWithNoTests",
|
|
64
|
+
"bench": "vitest bench --run",
|
|
65
|
+
"lint": "biome check .",
|
|
66
|
+
"lint:fix": "biome check --write .",
|
|
67
|
+
"format": "biome format --write ."
|
|
68
|
+
},
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.142",
|
|
71
|
+
"@clack/prompts": "^0.10.1",
|
|
72
|
+
"@sinclair/typebox": "^0.34.49",
|
|
73
|
+
"ajv": "^8.20.0",
|
|
74
|
+
"ajv-errors": "^3.0.0",
|
|
75
|
+
"ajv-formats": "^3.0.1",
|
|
76
|
+
"commander": "^13.0.0",
|
|
77
|
+
"diff": "^9.0.0",
|
|
78
|
+
"picocolors": "^1.1.1",
|
|
79
|
+
"proper-lockfile": "^4.1.2",
|
|
80
|
+
"yaml": "^2.9.0"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@biomejs/biome": "^2.0.0",
|
|
84
|
+
"@types/node": "^22.10.0",
|
|
85
|
+
"@types/proper-lockfile": "^4.1.4",
|
|
86
|
+
"@vitest/coverage-v8": "^4.0.0",
|
|
87
|
+
"tsup": "^8.3.0",
|
|
88
|
+
"typescript": "^5.6.0",
|
|
89
|
+
"vitest": "^4.0.0"
|
|
90
|
+
},
|
|
91
|
+
"pnpm": {
|
|
92
|
+
"onlyBuiltDependencies": [
|
|
93
|
+
"esbuild"
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
}
|
package/routing/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# routing/ — B+C 混合路由 SSOT
|
|
2
|
+
|
|
3
|
+
`routing/` 是 harnessed 的**路由元规则**——B 层(skill description 自动生成)+ C 层(UserPromptSubmit hook 硬路由)共享同一份 yaml frontmatter,避免双轨维护。
|
|
4
|
+
|
|
5
|
+
## 结构(v0.1 MVP)
|
|
6
|
+
|
|
7
|
+
- `search.md` — research workflow 路由(ctx7 / tavily / exa / parallel) — v0.1.0
|
|
8
|
+
- `ui.md` — UI/UX 任务路由(ui-ux-pro-max + frontend-design) — v0.3.0
|
|
9
|
+
- `testing.md` — 测试工具路由(playwright / vitest / webapp-testing) — v0.3.0
|
|
10
|
+
- `execute.md` — execute-task 内部路由(mattpocock 招式触发) — v0.2.0
|
|
11
|
+
|
|
12
|
+
## Schema
|
|
13
|
+
|
|
14
|
+
每个 routing 文件 yaml frontmatter 必须含 `trigger` / `hard_route` / `soft_hint` / `fallback` 四块(详见 `routing/SCHEMA.md`)。
|
|
15
|
+
|
|
16
|
+
JSON Schema 严格校验:
|
|
17
|
+
- 字段定义:`PROJECT-SPEC.md` v2.1 § 9
|
|
18
|
+
- 实现:`schemas/routing.v1.schema.json`(v0.1 phase 1.4)
|
|
19
|
+
|
|
20
|
+
## 透明度
|
|
21
|
+
|
|
22
|
+
每次路由决策**必须可见输出**(默认折叠,可展开)— 决策来源、备选方案、实际命令均显示给用户。详见 `WORKFLOWS-MVP.md` § 路由透明度设计。
|