harnessed 3.9.16 → 3.9.18

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/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // package.json
2
2
  var package_default = {
3
- version: "3.9.16"};
3
+ version: "3.9.18"};
4
4
 
5
5
  // src/index.ts
6
6
  var VERSION = package_default.version;
@@ -1 +1 @@
1
- {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";AAAA,IAAA,eAAA,GAAA;AAAA,EAEE,OAAA,EAAW,QAgGb,CAAA;;;AC7FO,IAAM,UAAU,eAAA,CAAI","file":"index.mjs","sourcesContent":["{\n \"name\": \"harnessed\",\n \"version\": \"3.9.16\",\n \"description\": \"AI coding harness package manager + composition orchestrator\",\n \"type\": \"module\",\n \"license\": \"Apache-2.0\",\n \"author\": \"easyinplay\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/easyinplay/harnessed.git\"\n },\n \"homepage\": \"https://github.com/easyinplay/harnessed#readme\",\n \"bugs\": \"https://github.com/easyinplay/harnessed/issues\",\n \"keywords\": [\n \"claude-code\",\n \"ai-harness\",\n \"package-manager\",\n \"composition\",\n \"skill-pack\",\n \"mcp\",\n \"orchestrator\"\n ],\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"packageManager\": \"pnpm@10.12.0\",\n \"bin\": {\n \"harnessed\": \"./dist/cli.mjs\"\n },\n \"main\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"default\": \"./dist/index.mjs\"\n },\n \"./schemas\": {\n \"types\": \"./dist/schemas/index.d.ts\",\n \"import\": \"./dist/schemas/index.mjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"manifests\",\n \"messages\",\n \"workflows\",\n \"routing\",\n \"config-templates\",\n \"schemas\",\n \"README.md\",\n \"LICENSE\",\n \"NOTICE\",\n \"THIRD-PARTY-NOTICES.md\"\n ],\n \"scripts\": {\n \"dev\": \"tsup --watch\",\n \"build\": \"tsc --noEmit && tsup\",\n \"build:schema\": \"node ./scripts/build-schema.mjs\",\n \"validate:schema\": \"node ./scripts/validate-schema.mjs\",\n \"typecheck\": \"tsc --noEmit\",\n \"test\": \"vitest run --passWithNoTests\",\n \"test:watch\": \"vitest\",\n \"test:coverage\": \"vitest run --coverage --passWithNoTests\",\n \"bench\": \"vitest bench --run\",\n \"lint\": \"biome check .\",\n \"lint:fix\": \"biome check --write .\",\n \"format\": \"biome format --write .\"\n },\n \"dependencies\": {\n \"@anthropic-ai/claude-agent-sdk\": \"0.3.142\",\n \"@clack/prompts\": \"^0.10.1\",\n \"@sinclair/typebox\": \"^0.34.49\",\n \"ajv\": \"^8.20.0\",\n \"ajv-errors\": \"^3.0.0\",\n \"ajv-formats\": \"^3.0.1\",\n \"commander\": \"^13.0.0\",\n \"diff\": \"^9.0.0\",\n \"expr-eval\": \"^2.0.2\",\n \"picocolors\": \"^1.1.1\",\n \"proper-lockfile\": \"^4.1.2\",\n \"yaml\": \"^2.9.0\"\n },\n \"devDependencies\": {\n \"@biomejs/biome\": \"^2.0.0\",\n \"@types/node\": \"^22.10.0\",\n \"@types/proper-lockfile\": \"^4.1.4\",\n \"@vitest/coverage-v8\": \"^4.0.0\",\n \"tsup\": \"^8.3.0\",\n \"typescript\": \"^5.6.0\",\n \"vitest\": \"^4.0.0\"\n },\n \"pnpm\": {\n \"onlyBuiltDependencies\": [\n \"esbuild\"\n ]\n }\n}\n","// Main library entry — re-exports public APIs.\n// phase 1.1 batch 1: skeleton only; schema validator wired in batch 2 (T3+).\n\nimport pkg from '../package.json' with { type: 'json' }\n\nexport const VERSION = pkg.version\n"]}
1
+ {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";AAAA,IAAA,eAAA,GAAA;AAAA,EAEE,OAAA,EAAW,QAgGb,CAAA;;;AC7FO,IAAM,UAAU,eAAA,CAAI","file":"index.mjs","sourcesContent":["{\n \"name\": \"harnessed\",\n \"version\": \"3.9.18\",\n \"description\": \"AI coding harness package manager + composition orchestrator\",\n \"type\": \"module\",\n \"license\": \"Apache-2.0\",\n \"author\": \"easyinplay\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/easyinplay/harnessed.git\"\n },\n \"homepage\": \"https://github.com/easyinplay/harnessed#readme\",\n \"bugs\": \"https://github.com/easyinplay/harnessed/issues\",\n \"keywords\": [\n \"claude-code\",\n \"ai-harness\",\n \"package-manager\",\n \"composition\",\n \"skill-pack\",\n \"mcp\",\n \"orchestrator\"\n ],\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"packageManager\": \"pnpm@10.12.0\",\n \"bin\": {\n \"harnessed\": \"./dist/cli.mjs\"\n },\n \"main\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"default\": \"./dist/index.mjs\"\n },\n \"./schemas\": {\n \"types\": \"./dist/schemas/index.d.ts\",\n \"import\": \"./dist/schemas/index.mjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"manifests\",\n \"messages\",\n \"workflows\",\n \"routing\",\n \"config-templates\",\n \"schemas\",\n \"README.md\",\n \"LICENSE\",\n \"NOTICE\",\n \"THIRD-PARTY-NOTICES.md\"\n ],\n \"scripts\": {\n \"dev\": \"tsup --watch\",\n \"build\": \"tsc --noEmit && tsup\",\n \"build:schema\": \"node ./scripts/build-schema.mjs\",\n \"validate:schema\": \"node ./scripts/validate-schema.mjs\",\n \"typecheck\": \"tsc --noEmit\",\n \"test\": \"vitest run --passWithNoTests\",\n \"test:watch\": \"vitest\",\n \"test:coverage\": \"vitest run --coverage --passWithNoTests\",\n \"bench\": \"vitest bench --run\",\n \"lint\": \"biome check .\",\n \"lint:fix\": \"biome check --write .\",\n \"format\": \"biome format --write .\"\n },\n \"dependencies\": {\n \"@anthropic-ai/claude-agent-sdk\": \"0.3.142\",\n \"@clack/prompts\": \"^0.10.1\",\n \"@sinclair/typebox\": \"^0.34.49\",\n \"ajv\": \"^8.20.0\",\n \"ajv-errors\": \"^3.0.0\",\n \"ajv-formats\": \"^3.0.1\",\n \"commander\": \"^13.0.0\",\n \"diff\": \"^9.0.0\",\n \"expr-eval\": \"^2.0.2\",\n \"picocolors\": \"^1.1.1\",\n \"proper-lockfile\": \"^4.1.2\",\n \"yaml\": \"^2.9.0\"\n },\n \"devDependencies\": {\n \"@biomejs/biome\": \"^2.0.0\",\n \"@types/node\": \"^22.10.0\",\n \"@types/proper-lockfile\": \"^4.1.4\",\n \"@vitest/coverage-v8\": \"^4.0.0\",\n \"tsup\": \"^8.3.0\",\n \"typescript\": \"^5.6.0\",\n \"vitest\": \"^4.0.0\"\n },\n \"pnpm\": {\n \"onlyBuiltDependencies\": [\n \"esbuild\"\n ]\n }\n}\n","// Main library entry — re-exports public APIs.\n// phase 1.1 batch 1: skeleton only; schema validator wired in batch 2 (T3+).\n\nimport pkg from '../package.json' with { type: 'json' }\n\nexport const VERSION = pkg.version\n"]}
package/messages/en.json CHANGED
@@ -39,8 +39,22 @@
39
39
  "uninstall.confirm.prompt": "Uninstall '{{name}}'? This cannot be undone.",
40
40
  "uninstall.cancelled": "aborted: user cancelled",
41
41
  "uninstall.completed": "uninstalled {{name}}",
42
- "uninstall.yes_dryrun_conflict": "error: --yes is incompatible with --dry-run (dry-run does not mutate)",
43
- "uninstall.yes_dryrun_conflict.fix": " fix: harnessed uninstall {{name}} --yes (immediate) OR harnessed uninstall {{name}} --dry-run (preview)",
42
+ "uninstall.unified.nothing": "nothing to do no harnessed artifacts found",
43
+ "uninstall.unified.header": "harnessed uninstall will remove the following:",
44
+ "uninstall.unified.commands": " Commands: {{count}} harnessed-generated slash command file(s) in ~/.claude/commands/",
45
+ "uninstall.unified.skills": " Skills: {{count}} workflow skill directory(ies) in ~/.claude/skills/",
46
+ "uninstall.unified.settings": " Settings: harnessed env vars (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS, HARNESSED_USER_LANG) from ~/.claude/settings.json",
47
+ "uninstall.unified.state_dir": " State directory: ~/.claude/harnessed/ (includes backups, audit log, state, lock)",
48
+ "uninstall.unified.upstream_note": "\nUpstream components (npm packages, MCP servers, CC plugins, git-cloned repos, npx skills) are NOT affected.",
49
+ "uninstall.unified.dry_run_hint": "\n(dry-run — re-run without --dry-run to actually remove)",
50
+ "uninstall.unified.confirm": "Remove harnessed's own files? Upstream components (npm packages, MCP servers, CC plugins, etc.) will NOT be affected. This cannot be undone.",
51
+ "uninstall.unified.removing": "removing harnessed files...",
52
+ "uninstall.unified.removed_commands": " removed {{count}} command file(s)",
53
+ "uninstall.unified.removed_skills": " removed {{count}} skill directory(ies)",
54
+ "uninstall.unified.removed_settings": " removed harnessed env vars from ~/.claude/settings.json",
55
+ "uninstall.unified.removed_state_dir": " removed ~/.claude/harnessed/",
56
+ "uninstall.unified.partial_failure": "\n{{count}} item(s) could not be removed (permission denied or already gone):",
57
+ "uninstall.unified.complete": "uninstall complete — harnessed's own files have been removed",
44
58
 
45
59
  "gc.invalid_duration": "error: invalid --older-than '{{value}}'",
46
60
  "gc.invalid_duration.fix": " fix: use format <N>{d|h|m|w} e.g. 30d / 24h / 60m / 4w",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harnessed",
3
- "version": "3.9.16",
3
+ "version": "3.9.18",
4
4
  "description": "AI coding harness package manager + composition orchestrator",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -5,8 +5,8 @@
5
5
  ## v0.1 MVP Workflows
6
6
 
7
7
  - `research/` — 多源调研路由(Tavily / Exa / ctx7) — v0.1.0
8
- - `execute-task/` — 子任务执行(superpowers + karpathy + mattpocock + ralph-loop) — v0.2.0
9
- - `plan-feature/` — 三层栈编排(gstack + GSD + planning-with-files) — v0.3.0(**phases schema reference implementation**)
8
+ - `task/` — 子任务执行(superpowers + karpathy + mattpocock + ralph-loop) — v3.0.0
9
+ - `plan/` — 三层栈编排(gstack + GSD + planning-with-files) — v3.0.0
10
10
 
11
11
  ## Phases Schema
12
12
 
@@ -69,65 +69,30 @@ phases: # 必填,至少 1 个 phase
69
69
 
70
70
  ---
71
71
 
72
- ## 4. plan-feature reference implementation
72
+ ## 4. Reference implementation
73
73
 
74
- 完整 5-phase 示例(摘录自 `WORKFLOWS-MVP.md` Workflow 3 + `PROJECT-SPEC.md` § 10)。所有其他 workflow 套此范式。
74
+ v3 workflow yaml 示例(摘录自 `workflows/verify/paranoid/workflow.yaml`)。所有 v3 sub-workflow 套此范式。
75
75
 
76
76
  ```yaml
77
- # workflows/plan-feature/SKILL.md
78
- ---
79
- name: plan-feature
80
- namespace: /harnessed:plan-feature
77
+ # workflows/verify/paranoid/workflow.yaml
78
+ schema_version: harnessed.workflow.v3
79
+ workflow: verify-paranoid
80
+ description: |
81
+ Stage ④.c gstack /review Paranoid Staff Engineer
82
+
83
+ disciplines_applied: [karpathy, output-style, language, operational, priority, protocols]
84
+ tools_available: [gstack-review]
85
+
81
86
  phases:
82
- - id: 01-gstack-decision
83
- layer: governance
87
+ - id: 01-review
88
+ name: gstack-review
84
89
  upstream: gstack
85
- invokes: [/office-hours, /plan-ceo-review, /plan-eng-review]
86
- inputs: [user_request]
87
- outputs: .harnessed/checkpoints/01-decision.md
88
- pause: human_review
89
- on_veto: halt_workflow
90
-
91
- - id: 02-brainstorm
92
- layer: execution
93
- upstream: superpowers
94
- invokes: [brainstorming]
95
- inputs: [user_request, $01.outputs]
96
- outputs: .harnessed/checkpoints/02-design-memo.md
97
- conditional:
98
- if: ui_task_detected # 来自 routing/ui.md
99
- then_also_invoke: [ui-ux-pro-max]
100
-
101
- - id: 03-gsd-discuss
102
- layer: orchestration
103
- upstream: GSD
104
- invokes: [/gsd-discuss-phase]
105
- inputs: [$01.outputs, $02.outputs]
106
- outputs: gsd_phase_doc
107
-
108
- - id: 04-gsd-plan
109
- layer: orchestration
110
- upstream: GSD
111
- invokes: [/gsd-plan-phase]
112
- inputs: [$03.outputs]
113
- outputs: [PLAN.md, ROADMAP.md, REQUIREMENTS.md]
114
-
115
- - id: 05-persist
116
- layer: execution
117
- upstream: planning-with-files
118
- inputs: [$04.outputs]
119
- outputs: [task_plan.md, progress.md, findings.md]
120
- pause: human_review
121
- ---
90
+ capability: '{{ capabilities.gstack-review.cmd }}'
91
+ model: opus
92
+ gate: judgments.stage-routing.verify-paranoid-critical.fires
93
+ max_iterations: '{{ defaults.ralph_max_iterations.verify-paranoid.01-review }}'
122
94
  ```
123
95
 
124
- **关键设计点**(决策已敲定,见 WORKFLOWS-MVP § Workflow 3):
125
-
126
- - gstack 命令前缀通过变量插值 `{{gstack.command_prefix}}/office-hours`,**禁止硬编码** — `harnessed doctor` 探测 plugin 化路径与 git-clone-with-setup 路径,写 `.harnessed/config.json` 供 workflow 引擎读取
127
- - `01` 阶段 veto → `halt_workflow`,不自动回滚;用户决定是否重新构思
128
- - `02` 阶段 UI 任务识别完全走 `routing/ui.md` 的 `trigger.keywords` + `file_globs` 规则(B+C 混合)
129
- - `pause: human_review` 强制 checkpoint compact —— 写 `.harnessed/checkpoints/<id>.md`(≤ 1k token),原文留 `.harnessed/archive/<id>-full.md` 不进后续 context(PROJECT-SPEC § 12)
130
-
131
96
  ---
132
97
 
133
98
  ## 5. 收益(schema-driven 设计动机)
@@ -137,14 +102,15 @@ schema 校验保证 `upstream` 引用在 manifests/ 真实存在(防"引用一
137
102
 
138
103
  ---
139
104
 
140
- ## 6. 当前 status(v0.1 phase 1.1
105
+ ## 6. 当前 status(v3.9.16
141
106
 
142
107
  - ✅ 字段定义已锁定(本文件 + SPEC § 10)
143
- - JSON Schema artifact `schemas/workflow.v1.schema.json` **未生成** — 由 v0.3 phase 1.4+ 配 plan-feature 落地时一并实装
144
- - workflow yaml fixtures **未起草** — v0.1 phase 1.4 起草 `research`,v0.2 phase 起草 `execute-task`,v0.3 phase 起草 `plan-feature`
145
- - workflow validator **未实装** TypeBox + Ajv 同样模式(参考 `src/manifest/schema/`),落入 `src/workflow/schema.ts` + `src/workflow/validate.ts`
108
+ - workflow yaml v3 schema 已实装 (`src/workflow/schema/workflow.ts`)
109
+ - 24 sub-workflow SHIPPED (discuss/plan/task/verify stages)
110
+ - workflow validator 已实装 (TypeBox, `src/workflow/schema/`)
111
+ - ❌ JSON Schema artifact `schemas/workflow.v1.schema.json` **未生成** — deferred
146
112
 
147
- 任何字段语义冲突以本文件 + SPEC § 10 为准;机器层级冲突时(v0.3+)以 `schemas/workflow.v1.schema.json` 为准。
113
+ 任何字段语义冲突以本文件 + SPEC § 10 为准;机器层级冲突时(v3.0+)以 TypeBox schema 为准。
148
114
 
149
115
  ---
150
116
 
@@ -154,4 +120,4 @@ schema 校验保证 `upstream` 引用在 manifests/ 真实存在(防"引用一
154
120
  - **三层栈职责**:用户全局 `CLAUDE.md` § "角色与框架定位"
155
121
  - **路由 yaml frontmatter SSOT**:`routing/SCHEMA.md`(B+C 共享同一 frontmatter 块)
156
122
  - **manifest 上游引用目标**:`manifests/SCHEMA.md`
157
- - **ROADMAP 落地节奏**:v0.1 = `research` workflow / v0.2 = `execute-task` / v0.3 = `plan-feature`(reference)
123
+ - **ROADMAP 落地节奏**:v0.1 = `research` / v0.2 = `task` / v0.3 = `plan` / v3.0 = full stage-based workflow system