@hunter-harness/workflow-harness 0.2.0 → 0.2.1
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/harness/bundles/general/claude-code/.harness-build.json +1 -1
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-sync/SKILL.md +2 -2
- package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +2 -2
- package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-sync/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +35 -21
- package/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +53 -7
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +47 -3
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -2
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
- package/harness/manifests/general/claude-code.json +15 -15
- package/harness/manifests/general/codebuddy.json +15 -15
- package/harness/manifests/general/codex.json +15 -15
- package/harness/manifests/general/cursor.json +15 -15
- package/harness/manifests/java/claude-code.json +17 -17
- package/harness/manifests/java/codebuddy.json +17 -17
- package/harness/manifests/java/codex.json +17 -17
- package/harness/manifests/java/cursor.json +17 -17
- package/hunter-workflow-family.json +1 -1
- package/package.json +1 -1
|
@@ -58,6 +58,20 @@ DEFAULT_AUTO_KNOWLEDGE_CONFIG = {
|
|
|
58
58
|
"supersededPenalty": 0.8,
|
|
59
59
|
"conflictPenalty": 0.8,
|
|
60
60
|
},
|
|
61
|
+
"activeLifecycle": {
|
|
62
|
+
"autoDemote": True,
|
|
63
|
+
"targetStatus": "stale",
|
|
64
|
+
},
|
|
65
|
+
"knowledgeValidation": {
|
|
66
|
+
"enabled": True,
|
|
67
|
+
"autoDemoteActive": True,
|
|
68
|
+
"defaultTargetStatus": "stale",
|
|
69
|
+
"allowCommandValidators": False,
|
|
70
|
+
"commandTimeoutSeconds": 60,
|
|
71
|
+
},
|
|
72
|
+
"judge": {
|
|
73
|
+
"maxCandidatesPerRun": 100,
|
|
74
|
+
},
|
|
61
75
|
}
|
|
62
76
|
|
|
63
77
|
|
|
@@ -106,6 +120,9 @@ def ensure_auto_knowledge_config(knowledge: Path) -> dict[str, Any]:
|
|
|
106
120
|
"path": str(config_path),
|
|
107
121
|
"created": False,
|
|
108
122
|
"autoPromoteEnabled": auto_promote_config(config)["enabled"],
|
|
123
|
+
"autoDemoteEnabled": active_lifecycle_config(config)["autoDemote"],
|
|
124
|
+
"autoDemoteActiveEnabled": knowledge_validation_config(config)["autoDemoteActive"],
|
|
125
|
+
"maxCandidatesPerRun": judge_config(config)["maxCandidatesPerRun"],
|
|
109
126
|
"appliedBy": "existing",
|
|
110
127
|
"candidateAutoPromoted": None,
|
|
111
128
|
}
|
|
@@ -115,6 +132,9 @@ def ensure_auto_knowledge_config(knowledge: Path) -> dict[str, Any]:
|
|
|
115
132
|
"path": str(config_path),
|
|
116
133
|
"created": True,
|
|
117
134
|
"autoPromoteEnabled": True,
|
|
135
|
+
"autoDemoteEnabled": True,
|
|
136
|
+
"autoDemoteActiveEnabled": True,
|
|
137
|
+
"maxCandidatesPerRun": judge_config(config)["maxCandidatesPerRun"],
|
|
118
138
|
"appliedBy": None,
|
|
119
139
|
"candidateAutoPromoted": None,
|
|
120
140
|
}
|
|
@@ -185,6 +205,16 @@ def auto_promote_config(config: dict[str, Any]) -> dict[str, Any]:
|
|
|
185
205
|
}
|
|
186
206
|
|
|
187
207
|
|
|
208
|
+
def judge_config(config: dict[str, Any]) -> dict[str, Any]:
|
|
209
|
+
raw = config.get("judge")
|
|
210
|
+
if not isinstance(raw, dict):
|
|
211
|
+
raw = {}
|
|
212
|
+
max_candidates = int(raw.get("maxCandidatesPerRun") or 100)
|
|
213
|
+
return {
|
|
214
|
+
"maxCandidatesPerRun": max(1, max_candidates),
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
|
|
188
218
|
def sha256_file(path: Path) -> str:
|
|
189
219
|
h = hashlib.sha256()
|
|
190
220
|
with path.open("rb") as f:
|
|
@@ -2513,7 +2543,7 @@ def auto_knowledge(
|
|
|
2513
2543
|
*,
|
|
2514
2544
|
limit: int = 20,
|
|
2515
2545
|
suggest_statuses: list[str] | None = None,
|
|
2516
|
-
apply_suggestions: bool =
|
|
2546
|
+
apply_suggestions: bool = True,
|
|
2517
2547
|
incremental: bool = True,
|
|
2518
2548
|
audit_limit: int = 10,
|
|
2519
2549
|
) -> dict[str, Any]:
|
|
@@ -2539,6 +2569,7 @@ def auto_knowledge(
|
|
|
2539
2569
|
)
|
|
2540
2570
|
verification = verify_knowledge(project)
|
|
2541
2571
|
audit = audit_entries(project, limit=audit_limit)
|
|
2572
|
+
ingest_mode = sync.get("index", {}).get("ingestMode", {}) if isinstance(sync.get("index"), dict) else {}
|
|
2542
2573
|
return {
|
|
2543
2574
|
"project": str(project),
|
|
2544
2575
|
"generatedAt": now_iso(),
|
|
@@ -2578,6 +2609,15 @@ def auto_knowledge(
|
|
|
2578
2609
|
"conflictReview": len(audit["conflictReview"]),
|
|
2579
2610
|
"activeReview": len(audit["activeReview"]),
|
|
2580
2611
|
},
|
|
2612
|
+
"lifecycle": {
|
|
2613
|
+
"validatorsApplied": suggestions["applied"],
|
|
2614
|
+
"candidateAutoPromoted": ingest_mode.get(
|
|
2615
|
+
"candidateAutoPromoted", config_summary.get("candidateAutoPromoted") or 0
|
|
2616
|
+
),
|
|
2617
|
+
"activeAutoDemoted": ingest_mode.get("activeAutoDemoted", 0),
|
|
2618
|
+
"validationAutoDemoted": ingest_mode.get("validationAutoDemoted", verification["autoDemoted"]),
|
|
2619
|
+
"pendingAgentJudge": len(audit["conflictReview"]) + len(audit["candidateReview"]),
|
|
2620
|
+
},
|
|
2581
2621
|
}
|
|
2582
2622
|
|
|
2583
2623
|
|
|
@@ -3902,7 +3942,11 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
3902
3942
|
default=[],
|
|
3903
3943
|
help="Only suggest validators for this lifecycle status",
|
|
3904
3944
|
)
|
|
3905
|
-
auto.add_argument(
|
|
3945
|
+
auto.add_argument(
|
|
3946
|
+
"--no-apply-suggestions",
|
|
3947
|
+
action="store_true",
|
|
3948
|
+
help="Do not write validator suggestions into entry JSON files (default applies them)",
|
|
3949
|
+
)
|
|
3906
3950
|
auto.add_argument("--no-incremental", action="store_true", help="Refresh without reusing the archive entry cache")
|
|
3907
3951
|
|
|
3908
3952
|
audit = sub.add_parser("audit", help="Generate review lists for candidate, stale, and superseded entries")
|
|
@@ -3999,7 +4043,7 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
3999
4043
|
Path(args.project),
|
|
4000
4044
|
limit=args.limit,
|
|
4001
4045
|
suggest_statuses=args.suggest_statuses,
|
|
4002
|
-
apply_suggestions=args.
|
|
4046
|
+
apply_suggestions=not args.no_apply_suggestions,
|
|
4003
4047
|
incremental=not args.no_incremental,
|
|
4004
4048
|
audit_limit=args.audit_limit,
|
|
4005
4049
|
)
|
package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py
CHANGED
|
@@ -52,7 +52,7 @@ TOOL_DESCRIPTIONS: list[dict[str, Any]] = [
|
|
|
52
52
|
"project": {"type": "string", "description": "Project root containing .harness/archive."},
|
|
53
53
|
"limit": {"type": "integer", "default": 20, "minimum": 1, "maximum": 100},
|
|
54
54
|
"suggest_statuses": {"type": "array", "items": {"type": "string"}, "default": []},
|
|
55
|
-
"apply_suggestions": {"type": "boolean", "default":
|
|
55
|
+
"apply_suggestions": {"type": "boolean", "default": True, "description": "Write validator suggestions into entry JSON files (default on)."},
|
|
56
56
|
"incremental": {"type": "boolean", "default": True, "description": "Reuse cached archive extraction results when refreshing."},
|
|
57
57
|
"audit_limit": {"type": "integer", "default": 10, "minimum": 1, "maximum": 100},
|
|
58
58
|
},
|
|
@@ -181,7 +181,7 @@ def create_server() -> Any:
|
|
|
181
181
|
project: str,
|
|
182
182
|
limit: int = 20,
|
|
183
183
|
suggest_statuses: list[str] | None = None,
|
|
184
|
-
apply_suggestions: bool =
|
|
184
|
+
apply_suggestions: bool = True,
|
|
185
185
|
incremental: bool = True,
|
|
186
186
|
audit_limit: int = 10,
|
|
187
187
|
) -> dict[str, Any]:
|
|
@@ -3,7 +3,7 @@ name: harness-knowledge-query
|
|
|
3
3
|
description: 根据新需求、设计任务、代码修改请求或问题排查,在规划和编码前查询 .harness/knowledge
|
|
4
4
|
历史上下文。适用场景:query knowledge、查找历史需求、根据归档理解需求、继续之前类似开发、生成需求上下文包。
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
7
7
|
# harness-knowledge-query
|
|
8
8
|
|
|
9
9
|
根据用户的新需求或排查问题,从项目本地 `.harness/knowledge` 中检索历史需求、决策、实现、风险和测试证据,并生成 AI 可读的 context pack。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-package
|
|
3
3
|
description: 增量模块打包:拉取最新→编译验证→mvn package→汇总 jar/war。使用场景:打包、package、发版准备
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
6
6
|
# harness-package — 增量模块打包(Java overlay)
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-plan
|
|
3
3
|
description: 将需求转化为设计文档+实施计划+完整测试场景表,必须在编码前完成。使用场景:需求分析、feature plan、技术方案设计、实现方案规划
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
6
6
|
# harness-plan — 需求规划
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -3,7 +3,7 @@ name: harness-review
|
|
|
3
3
|
description: 6维度代码审查(架构/安全/规范/兼容/测试/性能),对照项目规则(见
|
|
4
4
|
.harness/context-index.json)和测试场景表,在隔离上下文运行。使用场景:代码审查、提交前检查、合并评审
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
7
7
|
# harness-review — 代码审查
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-run
|
|
3
3
|
description: 按变更簇执行 TDD 编码循环(RED→GREEN→REFACTOR→编译验证),逐变更簇实现计划中的任务。使用场景:开始编码、实现功能、写代码、TDD 编码
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
6
6
|
# harness-run — 需求编码
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -3,7 +3,7 @@ name: harness-submit
|
|
|
3
3
|
description: 最终提交封装:验证→中文 commit→提交/推送;worktree 模式含 --no-ff
|
|
4
4
|
合并回主分支。使用场景:提交代码、commit、push、合并分支、merge to main、完成开发
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
7
7
|
# harness-submit — 最终提交(含 worktree 合并)
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-sync
|
|
3
3
|
description: 检查并更新项目AI元数据(CodeGraph索引、harness-codebase-map分析、CLAUDE.md、AGENTS.md、.harness/完整性),确保Claude对代码库的理解与最新代码一致。当用户说'同步/更新索引/刷新元数据/检查一致性'时使用
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
6
6
|
# harness-sync — 元数据同步
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -21,7 +21,7 @@ description: 检查并更新项目AI元数据(CodeGraph索引、harness-codeba
|
|
|
21
21
|
| 1 | git log/diff 感知变更量 |
|
|
22
22
|
| 2 | CodeGraph 索引是否需重建 |
|
|
23
23
|
| 3 | `.harness/codebase/map/` 是否过期 → 报告建议 `/harness-codebase-map` |
|
|
24
|
-
| 3.5 | `harness_knowledge.py sync`;可 `sync --update
|
|
24
|
+
| 3.5 | `harness_knowledge.py sync`;可 `sync --update`;失败不得假装可用。**知识闭环主入口**是 `/harness-knowledge-ingest auto`(含 Agent judge),sync 不重复列人工知识待办 |
|
|
25
25
|
| 3.6 | 扫描 `.harness/knowledge/maintenance-outbox/{pending,failed}`;对每项运行 `harness_knowledge.py maintain --project . --archive-id <id> --json`(§8.2:archive close 只 enqueue,sync 异步推进 outbox 到 completed/completed_rules_pending_judge) |
|
|
26
26
|
| 4 | CLAUDE.md 完整性/行数 → 超限 AskUserQuestion 瘦身 |
|
|
27
27
|
| 5 | AGENTS.md 与 CLAUDE.md 一致 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-test
|
|
3
3
|
description: 测试执行:读取场景表,执行单元测试+API接口测试+数据兼容验证,输出测试报告。当用户说'跑测试/验证/跑用例/接口测试/单元测试'时使用
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=7b81effe1faaef85; overlay=java; agent=cursor; do not edit -->
|
|
6
6
|
# harness-test — 测试执行
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "claude-code",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.1",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "64e4da848546c5e0a981c898fa592a816d238bada07b757b3fa255f5c9634cb8"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"path": "harness-archive/SKILL.md",
|
|
42
|
-
"sha256": "
|
|
42
|
+
"sha256": "e67451281532cc9e469553cf099c8228ac071dfeee8b77d138f29dc30b4e11dd"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"path": "harness-codebase-map/SKILL.md",
|
|
62
|
-
"sha256": "
|
|
62
|
+
"sha256": "f4ca574346918ecefd828f074e86aa85f5cb0a473c3f8fa92c82dc39f7b603a8"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -111,23 +111,23 @@
|
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"path": "harness-knowledge-ingest/reference.md",
|
|
114
|
-
"sha256": "
|
|
114
|
+
"sha256": "28665f8be71787e0eb67cf3f2d6ec8511ca484a228cd914e36c4082e05bd5d38"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
|
|
118
|
-
"sha256": "
|
|
118
|
+
"sha256": "5a6efd08a4a8f46f92d715051904bf118b4159d76199c318d8accb0122a2e20f"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
122
|
-
"sha256": "
|
|
122
|
+
"sha256": "cfd728bcacf91576d57aebd3ad38559067a569771058d4466f125222dccc1f4a"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
125
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
126
|
-
"sha256": "
|
|
126
|
+
"sha256": "79c764561bc3eb1a62fb15dade5a9a60194be560118973dc0668a6aeeee875a9"
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
"path": "harness-knowledge-query/SKILL.md",
|
|
130
|
-
"sha256": "
|
|
130
|
+
"sha256": "10dd0961530c48c9fe068ce32b4a190f1ad74522f28088394fa64c016fb2273e"
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "harness-plan/checklist.md",
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
"path": "harness-plan/SKILL.md",
|
|
146
|
-
"sha256": "
|
|
146
|
+
"sha256": "453ddf7e370938dc8b1f077b1881937a2b2b671e0a0f8524a188133cfef29708"
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
149
|
"path": "harness-review/checklist.md",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"path": "harness-review/SKILL.md",
|
|
162
|
-
"sha256": "
|
|
162
|
+
"sha256": "e37f7bcab62e1dcd9c653cbb954374c273858f351619de2c402002f594a75754"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"path": "harness-run/checklist.md",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "harness-run/SKILL.md",
|
|
178
|
-
"sha256": "
|
|
178
|
+
"sha256": "2abebccdeecc0ea3f45d77dd56a37234ad1f1b9c82a25f990bb053155ceaaf01"
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
"path": "harness-submit/checklist.md",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-submit/SKILL.md",
|
|
190
|
-
"sha256": "
|
|
190
|
+
"sha256": "dd9b83b5e26ddace7caf79b670d7b4963e10da5a8b066280f5c5b058d36d77fa"
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
"path": "harness-sync/reference.md",
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "harness-sync/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
198
|
+
"sha256": "52556224223824cf85d425c25b6b425ac6f68dc15845fb24d37e2e0c25bc45d4"
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"path": "harness-test/checklist.md",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"path": "harness-test/SKILL.md",
|
|
214
|
-
"sha256": "
|
|
214
|
+
"sha256": "e55385e714b2e2ab6404c84ff1502390b271d37217b2504f84fb62e8b79a879e"
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "codebuddy",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.1",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "a1a615f6682097dde505dd9fac23a20ffba311b692afabe2531e3b85b9cfdf88"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"path": "harness-archive/SKILL.md",
|
|
42
|
-
"sha256": "
|
|
42
|
+
"sha256": "1930820ccf8ba61bacf9216fc8222e947e325eeb074373c1a474e7a2528687c4"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"path": "harness-codebase-map/SKILL.md",
|
|
62
|
-
"sha256": "
|
|
62
|
+
"sha256": "c5e96c34348c3a127537e5178dacb103f318ae80dd66b793b277c3f6c00f7d32"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -111,23 +111,23 @@
|
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"path": "harness-knowledge-ingest/reference.md",
|
|
114
|
-
"sha256": "
|
|
114
|
+
"sha256": "28665f8be71787e0eb67cf3f2d6ec8511ca484a228cd914e36c4082e05bd5d38"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
|
|
118
|
-
"sha256": "
|
|
118
|
+
"sha256": "5a6efd08a4a8f46f92d715051904bf118b4159d76199c318d8accb0122a2e20f"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
122
|
-
"sha256": "
|
|
122
|
+
"sha256": "cfd728bcacf91576d57aebd3ad38559067a569771058d4466f125222dccc1f4a"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
125
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
126
|
-
"sha256": "
|
|
126
|
+
"sha256": "e35a58ac61d6f6c247594f3f2b9018bf0ffcf34392ff7a865ffdd4d795907cde"
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
"path": "harness-knowledge-query/SKILL.md",
|
|
130
|
-
"sha256": "
|
|
130
|
+
"sha256": "8f04e1994bb85d85c16ee215111108252c8f93a62a01dcb8ed3ffce0ffb6d54a"
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "harness-plan/checklist.md",
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
"path": "harness-plan/SKILL.md",
|
|
146
|
-
"sha256": "
|
|
146
|
+
"sha256": "cd8701b3735453d87f95cafa8a8c66e0c13876fa992ad600beda52e0f84946c2"
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
149
|
"path": "harness-review/checklist.md",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"path": "harness-review/SKILL.md",
|
|
162
|
-
"sha256": "
|
|
162
|
+
"sha256": "2b70da1b619490af0839af3b18b2d1cd46d203df4d27a8869a1ce1bf470800c9"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"path": "harness-run/checklist.md",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "harness-run/SKILL.md",
|
|
178
|
-
"sha256": "
|
|
178
|
+
"sha256": "39a24d551486e0142c28736d73e0527638cabb14c49cdd214bdbeec1010b2646"
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
"path": "harness-submit/checklist.md",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-submit/SKILL.md",
|
|
190
|
-
"sha256": "
|
|
190
|
+
"sha256": "6fe8b137299a41f00149bf874fc8930ae9b0ce6a1dc92824066747c44b88b655"
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
"path": "harness-sync/reference.md",
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "harness-sync/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
198
|
+
"sha256": "d56ef25e221a927bf082639ca9bb1139e81397d8c9ce01bc103e0d9deacbdfe4"
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"path": "harness-test/checklist.md",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"path": "harness-test/SKILL.md",
|
|
214
|
-
"sha256": "
|
|
214
|
+
"sha256": "f394f002cc23cb12739ec726b3b59df7a987b48ee812db6b72c4943b9674cfd8"
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "codex",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.1",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "88cca1ffc7d71278e086603862647ff980277320db67b5fd1dcffcbc9b9fc641"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "CONTEXT.md",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "harness-archive/SKILL.md",
|
|
30
|
-
"sha256": "
|
|
30
|
+
"sha256": "b1ed5cb029a64d86ea34e216cca6d4fefbc4fe0c8e418299a216d14e52c26f1c"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "harness-codebase-map/SKILL.md",
|
|
50
|
-
"sha256": "
|
|
50
|
+
"sha256": "069d4e8c13a1d76a88f24f27665daa94bb8596e1ebe5308eb55cd0a675107e7d"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -99,23 +99,23 @@
|
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
"path": "harness-knowledge-ingest/reference.md",
|
|
102
|
-
"sha256": "
|
|
102
|
+
"sha256": "28665f8be71787e0eb67cf3f2d6ec8511ca484a228cd914e36c4082e05bd5d38"
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
105
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
|
|
106
|
-
"sha256": "
|
|
106
|
+
"sha256": "5a6efd08a4a8f46f92d715051904bf118b4159d76199c318d8accb0122a2e20f"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
109
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
110
|
-
"sha256": "
|
|
110
|
+
"sha256": "cfd728bcacf91576d57aebd3ad38559067a569771058d4466f125222dccc1f4a"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
114
|
-
"sha256": "
|
|
114
|
+
"sha256": "de1d740afc648c7316ab37de81be19e9be2257e880abde5c82cb24292e0269ad"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"path": "harness-knowledge-query/SKILL.md",
|
|
118
|
-
"sha256": "
|
|
118
|
+
"sha256": "c999d5ca9cd8cad09e004f53bcb8fd64ad35eeb22c1626851c2b52a4065d51a5"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
"path": "harness-plan/checklist.md",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "harness-plan/SKILL.md",
|
|
134
|
-
"sha256": "
|
|
134
|
+
"sha256": "29c51ab15ca041d8446714f176768c3fbaafd919b09cd565e6827c3db7bc98f0"
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
"path": "harness-review/checklist.md",
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
149
|
"path": "harness-review/SKILL.md",
|
|
150
|
-
"sha256": "
|
|
150
|
+
"sha256": "0908e4df79fef5753047ed565181f0a6e87617720c05a9b982362fcea72aa89e"
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "harness-run/checklist.md",
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"path": "harness-run/SKILL.md",
|
|
166
|
-
"sha256": "
|
|
166
|
+
"sha256": "a7df737694bf3713c6926a048d9ca53975909724e81945040f538fcb27845dc1"
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"path": "harness-submit/checklist.md",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "harness-submit/SKILL.md",
|
|
178
|
-
"sha256": "
|
|
178
|
+
"sha256": "768c92b16762e7ff54d53b9bc737c036f413760c5673e1f71ef5ebe1708cf908"
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
"path": "harness-sync/reference.md",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"path": "harness-sync/SKILL.md",
|
|
186
|
-
"sha256": "
|
|
186
|
+
"sha256": "8b901db7d57de35008b1c9854ec53f57c75ed9ffb9d8bd9b7d85e3cb5a978cdb"
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-test/checklist.md",
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"path": "harness-test/SKILL.md",
|
|
202
|
-
"sha256": "
|
|
202
|
+
"sha256": "699dcb8d881d6f8057101143bf58a188d5c542ede8555eea89a44d102920c71d"
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"path": "protocols/archive-report-protocol.md",
|