@hunter-harness/workflow-harness 0.2.72 → 0.2.74
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 +3 -3
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +14 -10
- package/harness/bundles/general/claude-code/harness-plan/checklist.md +49 -9
- package/harness/bundles/general/claude-code/harness-plan/reference.md +83 -33
- package/harness/bundles/general/claude-code/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +6 -6
- package/harness/bundles/general/claude-code/harness-run/checklist.md +4 -1
- package/harness/bundles/general/claude-code/harness-run/reference.md +3 -3
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +5 -4
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +4 -4
- package/harness/bundles/general/claude-code/harness-test/checklist.md +2 -0
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +82 -1
- package/harness/bundles/general/claude-code/scripts/harness_context.py +270 -0
- package/harness/bundles/general/claude-code/scripts/harness_gate.py +71 -2
- package/harness/bundles/general/claude-code/scripts/harness_ledger.py +25 -4
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/claude-code/scripts/harness_test_guard.py +8 -5
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +3 -3
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +14 -10
- package/harness/bundles/general/codebuddy/harness-plan/checklist.md +49 -9
- package/harness/bundles/general/codebuddy/harness-plan/reference.md +83 -33
- package/harness/bundles/general/codebuddy/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +6 -6
- package/harness/bundles/general/codebuddy/harness-run/checklist.md +4 -1
- package/harness/bundles/general/codebuddy/harness-run/reference.md +3 -3
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +5 -4
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +4 -4
- package/harness/bundles/general/codebuddy/harness-test/checklist.md +2 -0
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +82 -1
- package/harness/bundles/general/codebuddy/scripts/harness_context.py +270 -0
- package/harness/bundles/general/codebuddy/scripts/harness_gate.py +71 -2
- package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +25 -4
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/codebuddy/scripts/harness_test_guard.py +8 -5
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/harness-archive/SKILL.md +3 -3
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-plan/SKILL.md +14 -10
- package/harness/bundles/general/codex/harness-plan/checklist.md +49 -9
- package/harness/bundles/general/codex/harness-plan/reference.md +83 -33
- package/harness/bundles/general/codex/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/codex/harness-run/SKILL.md +6 -6
- package/harness/bundles/general/codex/harness-run/checklist.md +4 -1
- package/harness/bundles/general/codex/harness-run/reference.md +3 -3
- package/harness/bundles/general/codex/harness-submit/SKILL.md +5 -4
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +4 -4
- package/harness/bundles/general/codex/harness-test/checklist.md +2 -0
- package/harness/bundles/general/codex/scripts/harness_archive.py +82 -1
- package/harness/bundles/general/codex/scripts/harness_context.py +270 -0
- package/harness/bundles/general/codex/scripts/harness_gate.py +71 -2
- package/harness/bundles/general/codex/scripts/harness_ledger.py +25 -4
- package/harness/bundles/general/codex/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/codex/scripts/harness_test_guard.py +8 -5
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +3 -3
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +14 -10
- package/harness/bundles/general/cursor/harness-plan/checklist.md +49 -9
- package/harness/bundles/general/cursor/harness-plan/reference.md +83 -33
- package/harness/bundles/general/cursor/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/cursor/harness-run/SKILL.md +6 -6
- package/harness/bundles/general/cursor/harness-run/checklist.md +4 -1
- package/harness/bundles/general/cursor/harness-run/reference.md +3 -3
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +5 -4
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +4 -4
- package/harness/bundles/general/cursor/harness-test/checklist.md +2 -0
- package/harness/bundles/general/cursor/scripts/harness_archive.py +82 -1
- package/harness/bundles/general/cursor/scripts/harness_context.py +270 -0
- package/harness/bundles/general/cursor/scripts/harness_gate.py +71 -2
- package/harness/bundles/general/cursor/scripts/harness_ledger.py +25 -4
- package/harness/bundles/general/cursor/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/cursor/scripts/harness_test_guard.py +8 -5
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +3 -3
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +3 -3
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +3 -3
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +14 -10
- package/harness/bundles/java/claude-code/harness-plan/checklist.md +49 -9
- package/harness/bundles/java/claude-code/harness-plan/reference.md +83 -33
- package/harness/bundles/java/claude-code/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +6 -6
- package/harness/bundles/java/claude-code/harness-run/checklist.md +1 -1
- package/harness/bundles/java/claude-code/harness-run/reference.md +348 -348
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +5 -4
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +4 -4
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +82 -1
- package/harness/bundles/java/claude-code/scripts/harness_context.py +270 -0
- package/harness/bundles/java/claude-code/scripts/harness_gate.py +71 -2
- package/harness/bundles/java/claude-code/scripts/harness_ledger.py +25 -4
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/claude-code/scripts/harness_test_guard.py +8 -5
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +3 -3
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +3 -3
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +3 -3
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +14 -10
- package/harness/bundles/java/codebuddy/harness-plan/checklist.md +49 -9
- package/harness/bundles/java/codebuddy/harness-plan/reference.md +83 -33
- package/harness/bundles/java/codebuddy/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +6 -6
- package/harness/bundles/java/codebuddy/harness-run/checklist.md +1 -1
- package/harness/bundles/java/codebuddy/harness-run/reference.md +348 -348
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +5 -4
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +4 -4
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +82 -1
- package/harness/bundles/java/codebuddy/scripts/harness_context.py +270 -0
- package/harness/bundles/java/codebuddy/scripts/harness_gate.py +71 -2
- package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +25 -4
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/codebuddy/scripts/harness_test_guard.py +8 -5
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +3 -3
- package/harness/bundles/java/codex/harness-archive/SKILL.md +3 -3
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-package/SKILL.md +3 -3
- package/harness/bundles/java/codex/harness-plan/SKILL.md +14 -10
- package/harness/bundles/java/codex/harness-plan/checklist.md +49 -9
- package/harness/bundles/java/codex/harness-plan/reference.md +83 -33
- package/harness/bundles/java/codex/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/codex/harness-run/SKILL.md +6 -6
- package/harness/bundles/java/codex/harness-run/checklist.md +1 -1
- package/harness/bundles/java/codex/harness-run/reference.md +348 -348
- package/harness/bundles/java/codex/harness-submit/SKILL.md +5 -4
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +4 -4
- package/harness/bundles/java/codex/scripts/harness_archive.py +82 -1
- package/harness/bundles/java/codex/scripts/harness_context.py +270 -0
- package/harness/bundles/java/codex/scripts/harness_gate.py +71 -2
- package/harness/bundles/java/codex/scripts/harness_ledger.py +25 -4
- package/harness/bundles/java/codex/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/codex/scripts/harness_test_guard.py +8 -5
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +3 -3
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +3 -3
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-package/SKILL.md +3 -3
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +14 -10
- package/harness/bundles/java/cursor/harness-plan/checklist.md +49 -9
- package/harness/bundles/java/cursor/harness-plan/reference.md +83 -33
- package/harness/bundles/java/cursor/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/cursor/harness-run/SKILL.md +6 -6
- package/harness/bundles/java/cursor/harness-run/checklist.md +1 -1
- package/harness/bundles/java/cursor/harness-run/reference.md +348 -348
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +5 -4
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +4 -4
- package/harness/bundles/java/cursor/scripts/harness_archive.py +82 -1
- package/harness/bundles/java/cursor/scripts/harness_context.py +270 -0
- package/harness/bundles/java/cursor/scripts/harness_gate.py +71 -2
- package/harness/bundles/java/cursor/scripts/harness_ledger.py +25 -4
- package/harness/bundles/java/cursor/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/cursor/scripts/harness_test_guard.py +8 -5
- package/harness/manifests/general/claude-code.json +26 -26
- package/harness/manifests/general/codebuddy.json +26 -26
- package/harness/manifests/general/codex.json +26 -26
- package/harness/manifests/general/cursor.json +26 -26
- package/harness/manifests/java/claude-code.json +27 -27
- package/harness/manifests/java/codebuddy.json +27 -27
- package/harness/manifests/java/codex.json +27 -27
- package/harness/manifests/java/cursor.json +27 -27
- package/hunter-workflow-family.json +5 -5
- package/package.json +1 -1
|
@@ -304,12 +304,23 @@ def _compact_record_payload(payload: dict[str, Any]) -> dict[str, Any]:
|
|
|
304
304
|
|
|
305
305
|
|
|
306
306
|
def _compact_can_reuse_payload(payload: dict[str, Any]) -> dict[str, Any]:
|
|
307
|
-
"""C5: can-reuse compact — ok/reuse/code
|
|
308
|
-
|
|
307
|
+
"""C5: can-reuse compact — ok/reuse/code;拒绝复用时附带可执行的原因。
|
|
308
|
+
|
|
309
|
+
只回 ok/reuse/code 时,调用方拿到裸 `{"reuse": false}` 无从判断该怎么办,
|
|
310
|
+
只能再跑一次 `--verbose`——原因(profile 缺 verificationInputs、证据不完整等)
|
|
311
|
+
是单行短文本,值得留在默认输出里。允许复用时保持原样精简。
|
|
312
|
+
"""
|
|
313
|
+
compact = {
|
|
309
314
|
"ok": payload.get("ok", True),
|
|
310
315
|
"reuse": payload.get("reuse"),
|
|
311
316
|
"code": payload.get("code"),
|
|
312
317
|
}
|
|
318
|
+
if payload.get("reuse") is not True:
|
|
319
|
+
for key in ("reason", "executionNeed", "detail"):
|
|
320
|
+
value = payload.get(key)
|
|
321
|
+
if value not in (None, "", [], {}):
|
|
322
|
+
compact[key] = value
|
|
323
|
+
return compact
|
|
313
324
|
|
|
314
325
|
|
|
315
326
|
def emit_compact_or_verbose(
|
|
@@ -2581,9 +2592,19 @@ def cmd_record(args: argparse.Namespace) -> int:
|
|
|
2581
2592
|
error_code="PROFILE_INPUT_FILES_CONFLICT",
|
|
2582
2593
|
)
|
|
2583
2594
|
files = profile_files
|
|
2584
|
-
|
|
2595
|
+
# NOT_APPLICABLE 的 validation 没有输入文件可言。门禁 close 又要求
|
|
2596
|
+
# requiredValidations 每项都有 entry——两条规则叠加会逼调用方拿无关文件凑数,
|
|
2597
|
+
# ledger 从此声称该 validation 的输入是那些文件,是假证据。
|
|
2598
|
+
not_applicable = str(getattr(args, "applicability", "") or "") == "NOT_APPLICABLE"
|
|
2599
|
+
if not files and not not_applicable:
|
|
2600
|
+
return emit_error(
|
|
2601
|
+
"record requires --files or a non-empty --profile-input file set; "
|
|
2602
|
+
"unless --applicability NOT_APPLICABLE (then --applicability-reason is required)",
|
|
2603
|
+
as_json=as_json,
|
|
2604
|
+
)
|
|
2605
|
+
if not_applicable and not _nonempty_str(getattr(args, "applicability_reason", None)):
|
|
2585
2606
|
return emit_error(
|
|
2586
|
-
"
|
|
2607
|
+
"NOT_APPLICABLE requires --applicability-reason",
|
|
2587
2608
|
as_json=as_json,
|
|
2588
2609
|
)
|
|
2589
2610
|
|
|
@@ -1101,6 +1101,43 @@ def _derive_verification_graph(profile: dict[str, Any]) -> None:
|
|
|
1101
1101
|
}
|
|
1102
1102
|
|
|
1103
1103
|
|
|
1104
|
+
def manual_profile_template(
|
|
1105
|
+
excluded: tuple[str, ...] | list[str], components: list[str]
|
|
1106
|
+
) -> dict[str, Any]:
|
|
1107
|
+
"""歧义时交给调用方的可填骨架。
|
|
1108
|
+
|
|
1109
|
+
骨架本身就是 `empty_profile_skeleton`——defaultsFingerprint、excludedRoots
|
|
1110
|
+
默认集、commands/verificationInputs/verificationGraph 的键都已就位;这里只是
|
|
1111
|
+
补上 commands 的条目形状与 requiredCoverage 取值,省掉调用方去源码里翻。
|
|
1112
|
+
占位值用 `<...>` 包裹,便于替换后 grep 自检。
|
|
1113
|
+
"""
|
|
1114
|
+
template = empty_profile_skeleton(excluded)
|
|
1115
|
+
template["projectType"] = (
|
|
1116
|
+
f"<从 detectedComponents 选定:{'|'.join(components)}>" if components else "<项目类型>"
|
|
1117
|
+
)
|
|
1118
|
+
template["commands"] = {
|
|
1119
|
+
"unitTest": {
|
|
1120
|
+
"command": "<在项目根可直接执行的增量测试命令>",
|
|
1121
|
+
"scope": "incremental",
|
|
1122
|
+
"inputs": ["<相对项目根的 glob,如 <component>/test/**>"],
|
|
1123
|
+
"coverage": "unitTest",
|
|
1124
|
+
"requiredCoverage": "incremental",
|
|
1125
|
+
"dependsOn": [],
|
|
1126
|
+
"source": "user",
|
|
1127
|
+
},
|
|
1128
|
+
"unitTestFull": {
|
|
1129
|
+
"command": "<在项目根可直接执行的全量测试命令>",
|
|
1130
|
+
"scope": "full",
|
|
1131
|
+
"inputs": ["<相对项目根的 glob,如 <component>/**>"],
|
|
1132
|
+
"coverage": "unitTestFull",
|
|
1133
|
+
"requiredCoverage": "module",
|
|
1134
|
+
"dependsOn": [],
|
|
1135
|
+
"source": "user",
|
|
1136
|
+
},
|
|
1137
|
+
}
|
|
1138
|
+
return template
|
|
1139
|
+
|
|
1140
|
+
|
|
1104
1141
|
def detect(project: Path) -> dict[str, Any]:
|
|
1105
1142
|
project = project.resolve()
|
|
1106
1143
|
existing = load_profile(project)
|
|
@@ -1120,6 +1157,14 @@ def detect(project: Path) -> dict[str, Any]:
|
|
|
1120
1157
|
"applied": False,
|
|
1121
1158
|
"detectedComponents": components,
|
|
1122
1159
|
"message": "multiple or nested project components require an explicit profile",
|
|
1160
|
+
# 拒绝生成可以,但不能连结构都不给:调用方否则只能反读本文件源码去凑
|
|
1161
|
+
# v3 形状。骨架不落盘——一份占位 profile 看起来"已配好"比没有更糟。
|
|
1162
|
+
"profileTemplate": manual_profile_template(excluded, components),
|
|
1163
|
+
"hint": (
|
|
1164
|
+
"手工声明一份 profile:以 profileTemplate 为骨架,按 detectedComponents "
|
|
1165
|
+
"选定产品包,commands 里的 inputs 用相对项目根的 glob(如 "
|
|
1166
|
+
f"'<component>/test/**'),填好后写入 {project / PROFILE_REL}"
|
|
1167
|
+
),
|
|
1123
1168
|
}
|
|
1124
1169
|
if project_type == "unknown" and existing:
|
|
1125
1170
|
return {
|
|
@@ -332,12 +332,15 @@ def _matches_pattern(rel: str, pattern: str) -> bool:
|
|
|
332
332
|
|
|
333
333
|
|
|
334
334
|
def _standard_test_path(rel: str) -> bool:
|
|
335
|
+
"""路径中出现 test/tests 目录段即视为标准测试路径。
|
|
336
|
+
|
|
337
|
+
此前只认 parts[0],于是 monorepo(packages/cli/tests/…)与"仓库根 + 同名
|
|
338
|
+
子包"(kld-sdd/test/…)这类常见布局全被拒,调用方被迫先补 build-profile
|
|
339
|
+
才能记录一次 stale-test-repair。段级匹配不放宽语义:testing/ 与
|
|
340
|
+
tests-helper/ 仍然不算,目录本身(末段)也不算文件。
|
|
341
|
+
"""
|
|
335
342
|
parts = rel.split("/")
|
|
336
|
-
|
|
337
|
-
return True
|
|
338
|
-
if any(parts[index:index + 2] == ["src", "test"] for index in range(len(parts) - 1)):
|
|
339
|
-
return True
|
|
340
|
-
return False
|
|
343
|
+
return any(part in ("test", "tests") for part in parts[:-1])
|
|
341
344
|
|
|
342
345
|
|
|
343
346
|
def _allowed_test_path(project: Path, rel: str) -> bool:
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "claude-code",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.63",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.83",
|
|
8
8
|
"capabilities": [
|
|
9
9
|
"sync@2",
|
|
10
10
|
"rules-sync@1",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
27
|
"path": ".harness-build.json",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "508071a88969f33e65aeaacb12b44b31549e7ad10961e526f7837adaddf4a680"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "agents/harness-evaluator.md",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"path": "harness-archive/SKILL.md",
|
|
100
|
-
"sha256": "
|
|
100
|
+
"sha256": "9f8787c11e0f438a5c99b48b43d2d34c1c9b8a0f06b5aae224a79a6d3fa296b2"
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "harness-codebase-map/SKILL.md",
|
|
116
|
-
"sha256": "
|
|
116
|
+
"sha256": "99f0391decb569498e33828c4641b8b92ccde2ac73b99b8514ab5178b7ed30f4"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -153,15 +153,15 @@
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
156
|
-
"sha256": "
|
|
156
|
+
"sha256": "6399b98f5a67131e4e00c9545f68bedee451f87c4a636cfbeea4b9acfd47417b"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"path": "harness-knowledge-query/SKILL.md",
|
|
160
|
-
"sha256": "
|
|
160
|
+
"sha256": "17f53253cc1af6792c93ab9fe3f119a5713e32e33e43d33073567ca61875f2a3"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"path": "harness-plan/checklist.md",
|
|
164
|
-
"sha256": "
|
|
164
|
+
"sha256": "31c66e6e08595d6d97e5f57fcd6d99ced5b721b82c122fbb26bb8fba34c23d90"
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
"path": "harness-plan/protocols.md",
|
|
@@ -169,19 +169,19 @@
|
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
"path": "harness-plan/reference.md",
|
|
172
|
-
"sha256": "
|
|
172
|
+
"sha256": "197f5b764d1054ef401f61f95055b468ab2a0c66ad482efc50a014ab7ea89711"
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
"path": "harness-plan/SKILL.md",
|
|
176
|
-
"sha256": "
|
|
176
|
+
"sha256": "cea38c85d519d47e836f67ed2baf878c1e9330c3e592df3af48a136f9303eb0a"
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
"path": "harness-pull/SKILL.md",
|
|
180
|
-
"sha256": "
|
|
180
|
+
"sha256": "039ce1febbe454a4c6d5a31178bfa9ce6833f2f6cf622a76dcad94af694475e0"
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
"path": "harness-push/SKILL.md",
|
|
184
|
-
"sha256": "
|
|
184
|
+
"sha256": "48ea504e400c5836807f6031d46cb0d2d87d3e10e66753d4b0bcb919581d3958"
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "harness-review/checklist.md",
|
|
@@ -197,11 +197,11 @@
|
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
199
|
"path": "harness-review/SKILL.md",
|
|
200
|
-
"sha256": "
|
|
200
|
+
"sha256": "544d6b2bd611501887479409be632e6bde8cb4a308dcd87e19ff492d92282b7c"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"path": "harness-run/checklist.md",
|
|
204
|
-
"sha256": "
|
|
204
|
+
"sha256": "3a184c988613c5c083767cc4f31f3670502e4810d0f8475c9a3aeec2acc7fe28"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "harness-run/protocols.md",
|
|
@@ -209,11 +209,11 @@
|
|
|
209
209
|
},
|
|
210
210
|
{
|
|
211
211
|
"path": "harness-run/reference.md",
|
|
212
|
-
"sha256": "
|
|
212
|
+
"sha256": "3b670f0dda55d9ce615a75ddba9d750476e06164c33a91c73bac88ab2ff0c5ab"
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"path": "harness-run/SKILL.md",
|
|
216
|
-
"sha256": "
|
|
216
|
+
"sha256": "13f883dbc20d001e677c58e091437a2a7994eba7360fe77461b4935c227ae35d"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
"path": "harness-submit/checklist.md",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"path": "harness-submit/SKILL.md",
|
|
228
|
-
"sha256": "
|
|
228
|
+
"sha256": "8e20be97b57cc9d65b170d5de648e6ccc8052bce72a7f35b6a2ea794fdbf3e22"
|
|
229
229
|
},
|
|
230
230
|
{
|
|
231
231
|
"path": "harness-sync/reference.md",
|
|
@@ -233,11 +233,11 @@
|
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"path": "harness-sync/SKILL.md",
|
|
236
|
-
"sha256": "
|
|
236
|
+
"sha256": "d0ef3c9780b716fec23a80e8a60fc8727d1a7bed72819fbd02ee6bc963233cab"
|
|
237
237
|
},
|
|
238
238
|
{
|
|
239
239
|
"path": "harness-test/checklist.md",
|
|
240
|
-
"sha256": "
|
|
240
|
+
"sha256": "5e10dccc5445ed047187116c3d865c0b12e200f06bc24f1330afdb470a8de03e"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
243
|
"path": "harness-test/pitfalls-java.md",
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
"path": "harness-test/SKILL.md",
|
|
260
|
-
"sha256": "
|
|
260
|
+
"sha256": "8782c417c4abc5f39079555e880f0717b71ff7ab4a9df486f24dc787b1bf4c06"
|
|
261
261
|
},
|
|
262
262
|
{
|
|
263
263
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
},
|
|
330
330
|
{
|
|
331
331
|
"path": "scripts/harness_archive.py",
|
|
332
|
-
"sha256": "
|
|
332
|
+
"sha256": "c3d565456f7bc441dbd7d58541e49b698381c594b874ff186e8ff62ac1efc67e"
|
|
333
333
|
},
|
|
334
334
|
{
|
|
335
335
|
"path": "scripts/harness_change.py",
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "scripts/harness_context.py",
|
|
344
|
-
"sha256": "
|
|
344
|
+
"sha256": "352ab9104dd4821930311411c353fe0b98e02ef0833f4f4ccf4f4190a5cb4eeb"
|
|
345
345
|
},
|
|
346
346
|
{
|
|
347
347
|
"path": "scripts/harness_deploy.py",
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
},
|
|
374
374
|
{
|
|
375
375
|
"path": "scripts/harness_gate.py",
|
|
376
|
-
"sha256": "
|
|
376
|
+
"sha256": "390d03d088df4c164e03bf78b36515a71b41ff7b429e55a571d40b06b456c2b6"
|
|
377
377
|
},
|
|
378
378
|
{
|
|
379
379
|
"path": "scripts/harness_headless.py",
|
|
@@ -385,7 +385,7 @@
|
|
|
385
385
|
},
|
|
386
386
|
{
|
|
387
387
|
"path": "scripts/harness_ledger.py",
|
|
388
|
-
"sha256": "
|
|
388
|
+
"sha256": "239d80d9d2c448e5bc8e456df517ad2b2f70281f9de10cf167d53085c6cecaf2"
|
|
389
389
|
},
|
|
390
390
|
{
|
|
391
391
|
"path": "scripts/harness_migration_head.py",
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
},
|
|
422
422
|
{
|
|
423
423
|
"path": "scripts/harness_profile.py",
|
|
424
|
-
"sha256": "
|
|
424
|
+
"sha256": "ca279d53b63c5e589833106b82ce0d3f2b0659e8c218b0fa3bf2d0933d4f9af0"
|
|
425
425
|
},
|
|
426
426
|
{
|
|
427
427
|
"path": "scripts/harness_report_model.py",
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
},
|
|
458
458
|
{
|
|
459
459
|
"path": "scripts/harness_test_guard.py",
|
|
460
|
-
"sha256": "
|
|
460
|
+
"sha256": "a78392a115ba761581870aae54b2426e8e1d43a0e4749feb1e851786de2ddad6"
|
|
461
461
|
},
|
|
462
462
|
{
|
|
463
463
|
"path": "scripts/harness_test_runner.py",
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "codebuddy",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.63",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.83",
|
|
8
8
|
"capabilities": [
|
|
9
9
|
"sync@2",
|
|
10
10
|
"rules-sync@1",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
27
|
"path": ".harness-build.json",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "b43d7cca40bde8b1d064df982fa6c6c61c557e4235089f9254d2e48ae3abd9a0"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "agents/harness-evaluator.md",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"path": "harness-archive/SKILL.md",
|
|
100
|
-
"sha256": "
|
|
100
|
+
"sha256": "5c8b4d0406f1c3d7be792905b46eef071ea0e3585125020893afe21cbc9dca22"
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "harness-codebase-map/SKILL.md",
|
|
116
|
-
"sha256": "
|
|
116
|
+
"sha256": "0fb71a136ea578b317c5b1705751c27277ef93b5a5cdb9d3dbf7c9afab82595d"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -153,15 +153,15 @@
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
156
|
-
"sha256": "
|
|
156
|
+
"sha256": "33a3c0c41724b73061ef56bed9d151f497b165bac87d2da606863c47b10198a2"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"path": "harness-knowledge-query/SKILL.md",
|
|
160
|
-
"sha256": "
|
|
160
|
+
"sha256": "88c80cd1f8eba31ffbd95d08a47e1f94995cf881b6103b79354473526a9e934a"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"path": "harness-plan/checklist.md",
|
|
164
|
-
"sha256": "
|
|
164
|
+
"sha256": "31c66e6e08595d6d97e5f57fcd6d99ced5b721b82c122fbb26bb8fba34c23d90"
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
"path": "harness-plan/protocols.md",
|
|
@@ -169,19 +169,19 @@
|
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
"path": "harness-plan/reference.md",
|
|
172
|
-
"sha256": "
|
|
172
|
+
"sha256": "197f5b764d1054ef401f61f95055b468ab2a0c66ad482efc50a014ab7ea89711"
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
"path": "harness-plan/SKILL.md",
|
|
176
|
-
"sha256": "
|
|
176
|
+
"sha256": "1bc47a6b3981893b4082c2466f136211ba84bbf89ce211868d82f1dd6ae69b60"
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
"path": "harness-pull/SKILL.md",
|
|
180
|
-
"sha256": "
|
|
180
|
+
"sha256": "7ae616fbdbb520cfc6b36b9fac6ce66e2fa1deec71f94afbbaba7444ef86c7dd"
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
"path": "harness-push/SKILL.md",
|
|
184
|
-
"sha256": "
|
|
184
|
+
"sha256": "aba016e3fa4380ce02fad6bc4ae2be23467e5f2f5903102360f666e67eea80d6"
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "harness-review/checklist.md",
|
|
@@ -197,11 +197,11 @@
|
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
199
|
"path": "harness-review/SKILL.md",
|
|
200
|
-
"sha256": "
|
|
200
|
+
"sha256": "ce8af843e30d03729fbca5b4758190647a30dd0b622c0e5a37749782b8e29c92"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"path": "harness-run/checklist.md",
|
|
204
|
-
"sha256": "
|
|
204
|
+
"sha256": "3a184c988613c5c083767cc4f31f3670502e4810d0f8475c9a3aeec2acc7fe28"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "harness-run/protocols.md",
|
|
@@ -209,11 +209,11 @@
|
|
|
209
209
|
},
|
|
210
210
|
{
|
|
211
211
|
"path": "harness-run/reference.md",
|
|
212
|
-
"sha256": "
|
|
212
|
+
"sha256": "3b670f0dda55d9ce615a75ddba9d750476e06164c33a91c73bac88ab2ff0c5ab"
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"path": "harness-run/SKILL.md",
|
|
216
|
-
"sha256": "
|
|
216
|
+
"sha256": "bc714ae34ed2a063cf98f636aa69174fad72865b8db7f8597818667867409c94"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
"path": "harness-submit/checklist.md",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"path": "harness-submit/SKILL.md",
|
|
228
|
-
"sha256": "
|
|
228
|
+
"sha256": "99759111a3a2dd8727610bf773b83824c788462d46fa92dbf3541583f680a6cc"
|
|
229
229
|
},
|
|
230
230
|
{
|
|
231
231
|
"path": "harness-sync/reference.md",
|
|
@@ -233,11 +233,11 @@
|
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"path": "harness-sync/SKILL.md",
|
|
236
|
-
"sha256": "
|
|
236
|
+
"sha256": "2af992431dffd1b0139523c7489e8c6a709436787f6039607c2876ef219a1012"
|
|
237
237
|
},
|
|
238
238
|
{
|
|
239
239
|
"path": "harness-test/checklist.md",
|
|
240
|
-
"sha256": "
|
|
240
|
+
"sha256": "5e10dccc5445ed047187116c3d865c0b12e200f06bc24f1330afdb470a8de03e"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
243
|
"path": "harness-test/pitfalls-java.md",
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
"path": "harness-test/SKILL.md",
|
|
260
|
-
"sha256": "
|
|
260
|
+
"sha256": "f38520b1f0bd2ec78d291ee3f5c923e926916fe5807e8a724e6b75c1a2221fa4"
|
|
261
261
|
},
|
|
262
262
|
{
|
|
263
263
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
},
|
|
330
330
|
{
|
|
331
331
|
"path": "scripts/harness_archive.py",
|
|
332
|
-
"sha256": "
|
|
332
|
+
"sha256": "c3d565456f7bc441dbd7d58541e49b698381c594b874ff186e8ff62ac1efc67e"
|
|
333
333
|
},
|
|
334
334
|
{
|
|
335
335
|
"path": "scripts/harness_change.py",
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "scripts/harness_context.py",
|
|
344
|
-
"sha256": "
|
|
344
|
+
"sha256": "352ab9104dd4821930311411c353fe0b98e02ef0833f4f4ccf4f4190a5cb4eeb"
|
|
345
345
|
},
|
|
346
346
|
{
|
|
347
347
|
"path": "scripts/harness_deploy.py",
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
},
|
|
374
374
|
{
|
|
375
375
|
"path": "scripts/harness_gate.py",
|
|
376
|
-
"sha256": "
|
|
376
|
+
"sha256": "390d03d088df4c164e03bf78b36515a71b41ff7b429e55a571d40b06b456c2b6"
|
|
377
377
|
},
|
|
378
378
|
{
|
|
379
379
|
"path": "scripts/harness_headless.py",
|
|
@@ -385,7 +385,7 @@
|
|
|
385
385
|
},
|
|
386
386
|
{
|
|
387
387
|
"path": "scripts/harness_ledger.py",
|
|
388
|
-
"sha256": "
|
|
388
|
+
"sha256": "239d80d9d2c448e5bc8e456df517ad2b2f70281f9de10cf167d53085c6cecaf2"
|
|
389
389
|
},
|
|
390
390
|
{
|
|
391
391
|
"path": "scripts/harness_migration_head.py",
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
},
|
|
422
422
|
{
|
|
423
423
|
"path": "scripts/harness_profile.py",
|
|
424
|
-
"sha256": "
|
|
424
|
+
"sha256": "ca279d53b63c5e589833106b82ce0d3f2b0659e8c218b0fa3bf2d0933d4f9af0"
|
|
425
425
|
},
|
|
426
426
|
{
|
|
427
427
|
"path": "scripts/harness_report_model.py",
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
},
|
|
458
458
|
{
|
|
459
459
|
"path": "scripts/harness_test_guard.py",
|
|
460
|
-
"sha256": "
|
|
460
|
+
"sha256": "a78392a115ba761581870aae54b2426e8e1d43a0e4749feb1e851786de2ddad6"
|
|
461
461
|
},
|
|
462
462
|
{
|
|
463
463
|
"path": "scripts/harness_test_runner.py",
|