@hunter-harness/workflow-harness 0.2.41 → 0.2.43
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/contracts/build-profile-v3.schema.json +56 -1
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-archive/reference.md +1 -0
- package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +42 -16
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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-run/reference.md +6 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +16 -10
- package/harness/bundles/general/claude-code/harness-sync/reference.md +34 -14
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/claude-code/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/claude-code/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +4 -0
- package/harness/bundles/general/claude-code/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/general/claude-code/scripts/harness_environment.py +719 -35
- package/harness/bundles/general/claude-code/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +34 -0
- package/harness/bundles/general/claude-code/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/general/claude-code/scripts/harness_service.py +76 -0
- package/harness/bundles/general/claude-code/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/general/claude-code/scripts/harness_verification.py +408 -8
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/contracts/build-profile-v3.schema.json +56 -1
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +1 -0
- package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +41 -15
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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-run/reference.md +6 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +16 -10
- package/harness/bundles/general/codebuddy/harness-sync/reference.md +34 -14
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/codebuddy/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/codebuddy/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +4 -0
- package/harness/bundles/general/codebuddy/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/general/codebuddy/scripts/harness_environment.py +719 -35
- package/harness/bundles/general/codebuddy/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +34 -0
- package/harness/bundles/general/codebuddy/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/general/codebuddy/scripts/harness_service.py +76 -0
- package/harness/bundles/general/codebuddy/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/general/codebuddy/scripts/harness_verification.py +408 -8
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/contracts/build-profile-v3.schema.json +56 -1
- package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-archive/reference.md +1 -0
- package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +41 -15
- package/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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-run/reference.md +6 -1
- package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-sync/SKILL.md +16 -10
- package/harness/bundles/general/codex/harness-sync/reference.md +34 -14
- package/harness/bundles/general/codex/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/codex/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/codex/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/codex/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/codex/scripts/harness_archive.py +4 -0
- package/harness/bundles/general/codex/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/general/codex/scripts/harness_environment.py +719 -35
- package/harness/bundles/general/codex/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/codex/scripts/harness_profile.py +34 -0
- package/harness/bundles/general/codex/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/general/codex/scripts/harness_service.py +76 -0
- package/harness/bundles/general/codex/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/general/codex/scripts/harness_verification.py +408 -8
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/contracts/build-profile-v3.schema.json +56 -1
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-archive/reference.md +1 -0
- package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +41 -15
- package/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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-run/reference.md +6 -1
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +16 -10
- package/harness/bundles/general/cursor/harness-sync/reference.md +34 -14
- package/harness/bundles/general/cursor/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/cursor/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/cursor/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/cursor/scripts/harness_archive.py +4 -0
- package/harness/bundles/general/cursor/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/general/cursor/scripts/harness_environment.py +719 -35
- package/harness/bundles/general/cursor/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/cursor/scripts/harness_profile.py +34 -0
- package/harness/bundles/general/cursor/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/general/cursor/scripts/harness_service.py +76 -0
- package/harness/bundles/general/cursor/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/general/cursor/scripts/harness_verification.py +408 -8
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/contracts/build-profile-v3.schema.json +56 -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-archive/reference.md +1 -0
- package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +42 -16
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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 +16 -10
- package/harness/bundles/java/claude-code/harness-sync/reference.md +34 -14
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/claude-code/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/claude-code/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +4 -0
- package/harness/bundles/java/claude-code/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/java/claude-code/scripts/harness_environment.py +719 -35
- package/harness/bundles/java/claude-code/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +34 -0
- package/harness/bundles/java/claude-code/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/java/claude-code/scripts/harness_service.py +76 -0
- package/harness/bundles/java/claude-code/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/java/claude-code/scripts/harness_verification.py +408 -8
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/contracts/build-profile-v3.schema.json +56 -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-archive/reference.md +1 -0
- package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +41 -15
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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 +16 -10
- package/harness/bundles/java/codebuddy/harness-sync/reference.md +34 -14
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/codebuddy/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/codebuddy/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +4 -0
- package/harness/bundles/java/codebuddy/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/java/codebuddy/scripts/harness_environment.py +719 -35
- package/harness/bundles/java/codebuddy/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +34 -0
- package/harness/bundles/java/codebuddy/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/java/codebuddy/scripts/harness_service.py +76 -0
- package/harness/bundles/java/codebuddy/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/java/codebuddy/scripts/harness_verification.py +408 -8
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/contracts/build-profile-v3.schema.json +56 -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-archive/reference.md +1 -0
- package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +41 -15
- package/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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 +16 -10
- package/harness/bundles/java/codex/harness-sync/reference.md +34 -14
- package/harness/bundles/java/codex/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/codex/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/codex/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/codex/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/codex/scripts/harness_archive.py +4 -0
- package/harness/bundles/java/codex/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/java/codex/scripts/harness_environment.py +719 -35
- package/harness/bundles/java/codex/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/codex/scripts/harness_profile.py +34 -0
- package/harness/bundles/java/codex/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/java/codex/scripts/harness_service.py +76 -0
- package/harness/bundles/java/codex/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/java/codex/scripts/harness_verification.py +408 -8
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/contracts/build-profile-v3.schema.json +56 -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-archive/reference.md +1 -0
- package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +41 -15
- package/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +57 -6
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
- 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 +16 -10
- package/harness/bundles/java/cursor/harness-sync/reference.md +34 -14
- package/harness/bundles/java/cursor/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/cursor/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/cursor/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/cursor/scripts/harness_archive.py +4 -0
- package/harness/bundles/java/cursor/scripts/harness_efficiency.py +290 -0
- package/harness/bundles/java/cursor/scripts/harness_environment.py +719 -35
- package/harness/bundles/java/cursor/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/cursor/scripts/harness_profile.py +34 -0
- package/harness/bundles/java/cursor/scripts/harness_runtime.py +1165 -3
- package/harness/bundles/java/cursor/scripts/harness_service.py +76 -0
- package/harness/bundles/java/cursor/scripts/harness_test_runner.py +127 -39
- package/harness/bundles/java/cursor/scripts/harness_verification.py +408 -8
- package/harness/manifests/general/claude-code.json +46 -33
- package/harness/manifests/general/codebuddy.json +46 -33
- package/harness/manifests/general/codex.json +46 -33
- package/harness/manifests/general/cursor.json +46 -33
- package/harness/manifests/java/claude-code.json +47 -34
- package/harness/manifests/java/codebuddy.json +47 -34
- package/harness/manifests/java/codex.json +47 -34
- package/harness/manifests/java/cursor.json +47 -34
- package/hunter-workflow-family.json +12 -10
- package/package.json +1 -1
|
@@ -108,6 +108,10 @@
|
|
|
108
108
|
"requiredCapabilities"
|
|
109
109
|
],
|
|
110
110
|
"properties": {
|
|
111
|
+
"id": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
|
|
114
|
+
},
|
|
111
115
|
"commandKey": {
|
|
112
116
|
"type": "string",
|
|
113
117
|
"pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
|
|
@@ -124,7 +128,36 @@
|
|
|
124
128
|
"enum": [
|
|
125
129
|
"incremental",
|
|
126
130
|
"module-am",
|
|
127
|
-
"module"
|
|
131
|
+
"module",
|
|
132
|
+
"full"
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
"argvTemplate": {
|
|
136
|
+
"type": "array",
|
|
137
|
+
"items": {
|
|
138
|
+
"type": "string"
|
|
139
|
+
},
|
|
140
|
+
"minItems": 1
|
|
141
|
+
},
|
|
142
|
+
"inputs": {
|
|
143
|
+
"type": "array",
|
|
144
|
+
"items": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"minLength": 1
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"coverage": {
|
|
150
|
+
"type": [
|
|
151
|
+
"string",
|
|
152
|
+
"null"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
"coverageLevel": {
|
|
156
|
+
"enum": [
|
|
157
|
+
"incremental",
|
|
158
|
+
"module",
|
|
159
|
+
"module-am",
|
|
160
|
+
"full"
|
|
128
161
|
]
|
|
129
162
|
},
|
|
130
163
|
"candidate": {
|
|
@@ -137,6 +170,28 @@
|
|
|
137
170
|
"minLength": 1
|
|
138
171
|
},
|
|
139
172
|
"uniqueItems": true
|
|
173
|
+
},
|
|
174
|
+
"resourceLocks": {
|
|
175
|
+
"type": "array",
|
|
176
|
+
"items": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"minLength": 1
|
|
179
|
+
},
|
|
180
|
+
"uniqueItems": true
|
|
181
|
+
},
|
|
182
|
+
"estimatedDurationSeconds": {
|
|
183
|
+
"type": "number",
|
|
184
|
+
"minimum": 0
|
|
185
|
+
},
|
|
186
|
+
"requiresFrozenIdentity": {
|
|
187
|
+
"type": "boolean"
|
|
188
|
+
},
|
|
189
|
+
"reusePolicy": {
|
|
190
|
+
"enum": [
|
|
191
|
+
"never",
|
|
192
|
+
"identity-exact",
|
|
193
|
+
"ledger-exact"
|
|
194
|
+
]
|
|
140
195
|
}
|
|
141
196
|
}
|
|
142
197
|
}
|
|
@@ -20,7 +20,7 @@ disallowed-tools:
|
|
|
20
20
|
- Bash(awk *)
|
|
21
21
|
- Bash(curl *)
|
|
22
22
|
---
|
|
23
|
-
<!-- generated by harness_deploy.py; core=
|
|
23
|
+
<!-- generated by harness_deploy.py; core=49a193cd2335f90e; overlay=none; agent=claude-code; do not edit -->
|
|
24
24
|
# harness-archive — 变更归档
|
|
25
25
|
|
|
26
26
|
## Purpose
|
|
@@ -47,6 +47,7 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File "harness-skills/harness-
|
|
|
47
47
|
- `durations`:totalMinutes + stages[{stage,skill,startedAt,endedAt,minutes,result}] —— 从 `logs/execution-log.md` 各 `[N] harness-<skill>` 小节的 `开始`/`结束`/`耗时` 解析;
|
|
48
48
|
- `skillCalls`:每个 skill 的调用次数(含重入)+ 结果 —— 从 execution-log 统计;
|
|
49
49
|
- `verification`:单元/API/覆盖展示,含 passRate —— 来自 `evidence/verification-ledger.json`;
|
|
50
|
+
- `efficiency`:墙钟/活动/资源等待、验证尝试、失败分类、环境 prepare/reuse/reset/cleanup、重复命令与 wrapper 数 —— 由 `harness_efficiency.py` 从运行回执自动汇总;
|
|
50
51
|
- `changedFiles`:path/summary/insertions/deletions —— 来自 `git diff --numstat <base>..<head>`;
|
|
51
52
|
- `reviewSummary`:red/yellow + redFixed/redConfirmed/yellowFixed/yellowDeferred 修复进度;
|
|
52
53
|
- `maintenanceNotes`:给后续维护者看的结论;
|
|
@@ -201,6 +201,10 @@ const releaseHtml = recordOnly ? "" : `
|
|
|
201
201
|
const remoteCost = record(measurements.remoteCost);
|
|
202
202
|
const remoteCostTotals = record(remoteCost.totals);
|
|
203
203
|
const storage = record(measurements.artifactStorage);
|
|
204
|
+
const efficiency = record(data.efficiency);
|
|
205
|
+
const efficiencyTiming = record(efficiency.timing);
|
|
206
|
+
const environmentActions = record(efficiency.environment);
|
|
207
|
+
const failureClasses = record(efficiency.failureClasses);
|
|
204
208
|
const projection = record(data.projection);
|
|
205
209
|
const durability = record(data.archiveDurability);
|
|
206
210
|
const durabilityStatus = durability.status || "ARCHIVED_LOCAL_ONLY";
|
|
@@ -264,6 +268,10 @@ ${scenarioCoverageHtml}
|
|
|
264
268
|
<div class="fact"><span>未归因 <code title="agentOrToolUnattributedMs">agentOrToolUnattributed</code></span><strong>${esc(duration(timing.agentOrToolUnattributedMs))}</strong></div>
|
|
265
269
|
<div class="fact"><span>远端 runner 成本</span><strong>${measurement(remoteCostTotals.runnerMinutes ?? remoteCost.runnerMinutes, " 分钟")}</strong></div>
|
|
266
270
|
<div class="fact"><span>新增制品字节</span><strong>${measurement(storage.bytesAdded, " bytes")}</strong></div>
|
|
271
|
+
<div class="fact"><span>验证尝试 / 资源等待</span><strong>${esc(efficiency.verificationAttempts ?? 0)} / ${esc(duration(efficiencyTiming.resourceWaitMs))}</strong></div>
|
|
272
|
+
<div class="fact"><span>环境准备 / 复用 / 重置 / 清理</span><strong>${esc(environmentActions.prepare ?? 0)} / ${esc(environmentActions.reuse ?? 0)} / ${esc(environmentActions.reset ?? 0)} / ${esc(environmentActions.cleanup ?? 0)}</strong></div>
|
|
273
|
+
<div class="fact"><span>启动器 / 环境 / 测试 / 外部失败</span><strong>${esc(failureClasses.launcher ?? 0)} / ${esc(failureClasses.environment ?? 0)} / ${esc(failureClasses.test ?? 0)} / ${esc(failureClasses.external ?? 0)}</strong></div>
|
|
274
|
+
<div class="fact"><span>无新证据的重复命令</span><strong>${esc(efficiency.repeatedCommandsWithoutNewEvidence ?? 0)}</strong></div>
|
|
267
275
|
<div class="fact"><span>守恒差值 <code>conservationDeltaMs</code></span><strong>${esc(timing.conservationDeltaMs ?? "N/A")}</strong></div>
|
|
268
276
|
</div></details>
|
|
269
277
|
<details><summary>阶段状态</summary><div class="table-wrap"><table><thead><tr><th>阶段</th><th>结果</th></tr></thead><tbody>${stageHtml}</tbody></table></div></details>
|
package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json
CHANGED
|
@@ -125,6 +125,34 @@
|
|
|
125
125
|
"duplicateRunCount": 0
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
|
+
"efficiency": {
|
|
129
|
+
"schemaVersion": 1,
|
|
130
|
+
"timing": {
|
|
131
|
+
"wallClockMs": 0,
|
|
132
|
+
"activeTimeMs": 0,
|
|
133
|
+
"resourceWaitMs": 0
|
|
134
|
+
},
|
|
135
|
+
"verificationAttempts": 0,
|
|
136
|
+
"statusCounts": {},
|
|
137
|
+
"failureClasses": {
|
|
138
|
+
"launcher": 0,
|
|
139
|
+
"environment": 0,
|
|
140
|
+
"test": 0,
|
|
141
|
+
"external": 0,
|
|
142
|
+
"unknown": 0
|
|
143
|
+
},
|
|
144
|
+
"invalidationReasons": {},
|
|
145
|
+
"environment": {
|
|
146
|
+
"prepare": 0,
|
|
147
|
+
"reuse": 0,
|
|
148
|
+
"reset": 0,
|
|
149
|
+
"cleanup": 0
|
|
150
|
+
},
|
|
151
|
+
"productIdentityCount": 0,
|
|
152
|
+
"repeatedCommandsWithoutNewEvidence": 0,
|
|
153
|
+
"manualWrapperCount": 0,
|
|
154
|
+
"notes": []
|
|
155
|
+
},
|
|
128
156
|
"reviewSummary": {
|
|
129
157
|
"status": "ADVISORY",
|
|
130
158
|
"red": 0,
|
|
@@ -20,7 +20,7 @@ disallowed-tools:
|
|
|
20
20
|
- Bash(awk *)
|
|
21
21
|
- Bash(curl *)
|
|
22
22
|
---
|
|
23
|
-
<!-- generated by harness_deploy.py; core=
|
|
23
|
+
<!-- generated by harness_deploy.py; core=49a193cd2335f90e; overlay=none; agent=claude-code; do not edit -->
|
|
24
24
|
# harness-codebase-map — 代码库地图
|
|
25
25
|
|
|
26
26
|
## Purpose
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: harness-knowledge-ingest
|
|
3
3
|
description: "从 .harness/archive 归档整理、同步和维护项目知识索引。适用场景:ingest knowledge、sync knowledge、rebuild knowledge index、promote knowledge、确认知识条目、检查知识库是否过期。"
|
|
4
|
-
argument-hint: "auto |
|
|
4
|
+
argument-hint: "auto(默认) | status | repair | ingest | audit | promote <entry-id> | demote <entry-id> | mcp"
|
|
5
5
|
effort: medium
|
|
6
6
|
allowed-tools: [Bash(powershell.exe:*), Read, Write, Edit, Glob, Grep]
|
|
7
7
|
disallowed-tools:
|
|
@@ -20,7 +20,7 @@ disallowed-tools:
|
|
|
20
20
|
- Bash(awk *)
|
|
21
21
|
- Bash(curl *)
|
|
22
22
|
---
|
|
23
|
-
<!-- generated by harness_deploy.py; core=
|
|
23
|
+
<!-- generated by harness_deploy.py; core=49a193cd2335f90e; overlay=none; agent=claude-code; do not edit -->
|
|
24
24
|
# harness-knowledge-ingest
|
|
25
25
|
|
|
26
26
|
从 `.harness/archive/**/reports/final/summary-data.json` 抽取项目知识,生成并维护本地 `.harness/knowledge/` 索引。
|
|
@@ -64,10 +64,12 @@ disallowed-tools:
|
|
|
64
64
|
.harness/knowledge/entries/superseded/*.json
|
|
65
65
|
.harness/knowledge/entries/conflicted/*.json
|
|
66
66
|
.harness/knowledge/cache/archive-entries/*.json
|
|
67
|
-
.harness/knowledge/reports/ingest-report
|
|
68
|
-
.harness/knowledge/reports/verification-report
|
|
69
|
-
.harness/knowledge/reports/
|
|
70
|
-
.harness/knowledge/reports/
|
|
67
|
+
.harness/knowledge/reports/ingest-report-*.md
|
|
68
|
+
.harness/knowledge/reports/verification-report-*.md
|
|
69
|
+
.harness/knowledge/reports/audit-report-*.md
|
|
70
|
+
.harness/knowledge/reports/judge-export-<content-sha256>.json
|
|
71
|
+
.harness/knowledge/reports/judgements-<content-sha256>.json
|
|
72
|
+
.harness/knowledge/reports/latest.json
|
|
71
73
|
.harness/knowledge/views/knowledge-dashboard.md
|
|
72
74
|
.harness/knowledge/views/by-file.md
|
|
73
75
|
.harness/knowledge/views/stale-items.md
|
|
@@ -84,14 +86,17 @@ disallowed-tools:
|
|
|
84
86
|
|
|
85
87
|
| 命令 | 用途 |
|
|
86
88
|
|---|---|
|
|
87
|
-
| `auto` | 一键防腐:首建 config、sync --update、**默认**写回 validator 建议、verify、audit;随后由 **Agent** 执行 judge 闭环 |
|
|
89
|
+
| 无参数 / `auto` | 一键防腐:首建 config、sync --update、**默认**写回 validator 建议、verify、audit;随后由 **Agent** 执行 judge 闭环 |
|
|
90
|
+
| `status` | 严格只读地返回 freshness 与 health |
|
|
91
|
+
| `repair all` | 修复可证明的 legacy gate、归一化重复、冲突与报告保留;不确定项返回 `needsConfirmation` |
|
|
88
92
|
| `ingest` | 重建/刷新知识索引,抽取 candidate;`--no-incremental` 强制全量重抽取 |
|
|
89
|
-
| `sync` |
|
|
93
|
+
| `sync --check` | 只读检查 index 与 archive/HEAD 一致性;`--update` 自动刷新 |
|
|
90
94
|
| `promote` | candidate→active(显式 promote 或 autoPromote / judge 触发) |
|
|
91
95
|
| `demote` | active→stale/candidate(显式 demote 或自动降级策略触发) |
|
|
92
96
|
| `audit` | 生成 Candidate/Stale/Superseded/Conflict/Active Review 报告 |
|
|
93
97
|
| `verify` | 执行 entry validators,刷新 lifecycle.validation,生成 verification-report |
|
|
94
98
|
| `suggest-validators` | 生成 file_exists/file_contains validator 建议;`--apply` 写回 entry |
|
|
99
|
+
| `admin <旧命令>` | 旧管理命令兼容入口 |
|
|
95
100
|
| `mcp` | FastMCP stdio 入口,暴露 9 个工具(见 reference.md) |
|
|
96
101
|
|
|
97
102
|
config.json 配置项(autoPromote / confidence / activeLifecycle / knowledgeValidation)详见 `reference.md`「Commands 详细」。
|
|
@@ -126,11 +131,17 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' inges
|
|
|
126
131
|
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto --project '<project-root>'"
|
|
127
132
|
```
|
|
128
133
|
|
|
134
|
+
不传子命令时等价于 `auto`。`auto` 输出必须分别报告:
|
|
135
|
+
|
|
136
|
+
- `freshness`:archive、HEAD、manifest、entry、SQLite 是否一致。
|
|
137
|
+
- `health`:各 lifecycle、publication、validation 与待裁决工作量。
|
|
138
|
+
|
|
129
139
|
`auto` 默认会写回确定性 validator 建议(`--no-apply-suggestions` 可关闭)。JSON 返回含 `lifecycle` 摘要(validatorsApplied、autoPromote、pendingAgentJudge 等)。
|
|
130
140
|
|
|
131
141
|
### Phase 3:Agent judge 闭环(auto 之后必须执行)
|
|
132
142
|
|
|
133
|
-
当 `lifecycle.pendingAgentJudge > 0`、存在 `pending-judge` outbox,或 `judge export` 的
|
|
143
|
+
当 `lifecycle.pendingAgentJudge > 0`、存在 `pending-judge` outbox,或 `judge export` 的
|
|
144
|
+
`counts.requiredDecisionCount > 0` 时:
|
|
134
145
|
|
|
135
146
|
1. `judge export`(或读 maintain 产出的 pending judgements)
|
|
136
147
|
2. Agent 读取 export JSON,按 `reference.md`「Agent judge 启发式」批量写 `reports/judge-decisions-<ts>.json`
|
|
@@ -139,12 +150,15 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto
|
|
|
139
150
|
|
|
140
151
|
**禁止**默认输出「请人工确认 N 条 candidate」类五步待办清单。拿不准的 candidate 保持 `candidate` 状态留待下轮,记入 `skippedCandidates` 即可。
|
|
141
152
|
|
|
142
|
-
|
|
153
|
+
`pendingAgentJudge`/`requiredDecisionCount` 是完整待裁决总量;`previewCount` 才受
|
|
154
|
+
`config.judge.maxCandidatesPerRun`(默认 100)限制。已被 publication gate 阻断的条目
|
|
155
|
+
只进入 `quarantinedCount`,不得混入 judge export。`defer` 必须保存证据指纹;来源、
|
|
156
|
+
validator、冲突关系或 publication 证据变化后即使未到 `reviewAfter` 也重新进入裁决。
|
|
143
157
|
|
|
144
158
|
### Phase 4:同步检查(可选)
|
|
145
159
|
|
|
146
160
|
```powershell
|
|
147
|
-
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py'
|
|
161
|
+
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' status --project '<project-root>'"
|
|
148
162
|
```
|
|
149
163
|
|
|
150
164
|
当 `upToDate=false` 时,运行 `sync --update` 或重新 `auto`,再交给 `harness-knowledge-query` 查询。
|
|
@@ -153,7 +167,11 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync
|
|
|
153
167
|
|
|
154
168
|
仅在用户点名单条、或 `manualReview=true` 需人工确认时使用 `promote` / `demote`。日常归档后不要逐条人工复核。
|
|
155
169
|
|
|
156
|
-
**发布门禁**:
|
|
170
|
+
**发布门禁**:knowledge publication 与 archive release status 独立。promote / judge apply /
|
|
171
|
+
autoPromote 校验 authoritative pointer/hash 与 `reportPipeline.sourceConsistency`;即使归档
|
|
172
|
+
最终状态为 WARN,只要知识来源一致也可发布,但保留 release advisory。旧归档只有在
|
|
173
|
+
summary/hash/source commit 可独立证明时才自动生成 attestation;否则保持 quarantined 并
|
|
174
|
+
返回 `needsConfirmation`(详见 `reference.md`「发布门禁」)。
|
|
157
175
|
|
|
158
176
|
### Phase 6:解释同步结果
|
|
159
177
|
|
|
@@ -163,10 +181,15 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync
|
|
|
163
181
|
- 如需刷新,具体原因是 archive 增删、checksum 变化、sqlite 缺失,还是 HEAD 改变。
|
|
164
182
|
- 本次是否自动刷新。
|
|
165
183
|
- 当前 `active` / `candidate` / `stale` 的数量。
|
|
184
|
+
- 分别报告 `freshness` 与 `health`,不要用一个 `status` 覆盖
|
|
185
|
+
lifecycle/review/publication/validation 四个正交维度。
|
|
166
186
|
|
|
167
187
|
## Knowledge extraction rules
|
|
168
188
|
|
|
169
|
-
-
|
|
189
|
+
- 优先读取归档显式 `knowledgeCandidates[]`;维护流水线、测试计数等
|
|
190
|
+
`category=process-observation` 不进入长期知识。
|
|
191
|
+
- Duplicate content 使用 Unicode、空白、标点与大小写归一化指纹,并在全量重建时迁移。
|
|
192
|
+
- 冲突必须同时有相同实体、共享来源范围和双方证据;仅关键词相反不得判为冲突。
|
|
170
193
|
- Keep project-local entries excluded from any global index unless explicitly selected.
|
|
171
194
|
- Validate lifecycle relationships.
|
|
172
195
|
- Default generated entries are `candidate`; only config-gated `autoPromote` may promote high-confidence long-lived entries to `active`.
|
|
@@ -208,7 +231,7 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync
|
|
|
208
231
|
本 skill 自带最小测试:
|
|
209
232
|
|
|
210
233
|
```powershell
|
|
211
|
-
powershell.exe -Command "python
|
|
234
|
+
powershell.exe -Command "python 'harness\scripts\harness_test_runner.py' unittest --profile safe --tests-dir '<skill-dir>\tests' --timeout-seconds 300 --verbosity 1"
|
|
212
235
|
```
|
|
213
236
|
|
|
214
237
|
完成脚本修改后必须至少运行该测试。若在真实项目中验证,还应运行:
|
|
@@ -238,13 +261,16 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync
|
|
|
238
261
|
- `upToDate` 及 `reasons`(sync)或新增/覆盖条目数(ingest/promote)。
|
|
239
262
|
- 当前 `active` / `candidate` / `stale` 数量统计。
|
|
240
263
|
- 产物路径(`index.json`、`index.sqlite`、`views/`、`reports/`)。
|
|
241
|
-
- `lifecycle` 摘要:`validatorsApplied`、`candidateAutoPromoted
|
|
264
|
+
- `lifecycle` 摘要:`validatorsApplied`、`candidateAutoPromoted`、兼容整数
|
|
265
|
+
`pendingAgentJudge`,以及
|
|
266
|
+
`pendingAgentJudgeSummary.requiredDecisionCount/previewCount/quarantinedCount` 等。
|
|
267
|
+
- validator 摘要:`eligible/selected/applied/remaining/unavailable`,不得只报告本轮抽样数。
|
|
242
268
|
- **已处理报告**(auto + judge 后):promoted/dropped/superseded/kept/deferred/skipped 计数与 `reports/judge-decisions-*.json`、`judgements-*.json` 路径;人工判断还会追加到 `judgements/decisions.json`,后续 ingest 不得抹除。`defer` 必须带 `reviewAfter`,到期前不重复进入待判断清单。
|
|
243
269
|
- 仅当 `upToDate=false` 时建议 `sync --update`;查询历史 → `/harness-knowledge-query`。**禁止**默认列出「请人工确认 N 条 candidate」待办。
|
|
244
270
|
|
|
245
271
|
## 渐进披露
|
|
246
272
|
|
|
247
|
-
- **Read `reference.md`** 仅在执行命令或查阅 config.json 配置时 — 含 Commands
|
|
273
|
+
- **Read `reference.md`** 仅在执行命令或查阅 config.json 配置时 — 含 Commands 详细示例、config.json 配置与兼容说明。
|
|
248
274
|
|
|
249
275
|
## 交互白名单
|
|
250
276
|
|
|
@@ -16,6 +16,9 @@ description: harness-knowledge-ingest 的命令详细示例、config.json 配置
|
|
|
16
16
|
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto --project '<project-root>'"
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
+
省略子命令时也进入 `auto`;旧命令可放在 `admin` 后继续调用,例如
|
|
20
|
+
`admin audit --project <root>`。
|
|
21
|
+
|
|
19
22
|
`auto` 会按默认维护顺序执行:首建 `config.json`(若缺失)、`sync --update`、**默认写回** validator 建议、`verify`、`audit`。首次发现 `.harness/knowledge/config.json` 不存在时,会写入启用版 `autoPromote` + `activeLifecycle.autoDemote` + `knowledgeValidation.autoDemoteActive` + `judge.maxCandidatesPerRun` 配置。
|
|
20
23
|
|
|
21
24
|
关闭 validator 写回:
|
|
@@ -35,7 +38,11 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto
|
|
|
35
38
|
|
|
36
39
|
- **conflicted**:优先 `supersede` 较旧/较弱证据方;对称难判 → `keep-conflict` + reason
|
|
37
40
|
- **candidate**:`decision|api-contract|requirement|pitfall` 且 confidence 高 → `promote`;`implementation|test-evidence` 倾向 `drop` 或保持 candidate
|
|
38
|
-
-
|
|
41
|
+
- `requiredDecisionCount` 是完整总量,`previewCount` 才受
|
|
42
|
+
`judge.maxCandidatesPerRun`(默认 100)限制。
|
|
43
|
+
- publication gate 阻断项计入 `quarantinedCount`,不进入待裁决单位。
|
|
44
|
+
- 超出预览窗口的 candidate 计入 `deferredByLimitCount`,不能让
|
|
45
|
+
`pendingAgentJudge` 误报为窗口大小。
|
|
39
46
|
|
|
40
47
|
```powershell
|
|
41
48
|
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' judge --project '<project-root>' --export '<export.json>'"
|
|
@@ -65,15 +72,18 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' inges
|
|
|
65
72
|
### Sync knowledge
|
|
66
73
|
|
|
67
74
|
```powershell
|
|
68
|
-
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py'
|
|
75
|
+
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' status --project '<project-root>'"
|
|
69
76
|
```
|
|
70
77
|
|
|
71
|
-
|
|
78
|
+
严格只读地检查 `.harness/knowledge` 是否与 `.harness/archive` 和当前 HEAD 一致。也可用
|
|
79
|
+
兼容命令 `sync --check`。输出 JSON 包含:
|
|
72
80
|
|
|
73
81
|
- `upToDate`
|
|
74
82
|
- `reasons`
|
|
75
83
|
- `archiveCount`
|
|
76
84
|
- `paths`
|
|
85
|
+
- `freshness`
|
|
86
|
+
- `health`(lifecycle/review/publication/validation 四个独立维度)
|
|
77
87
|
|
|
78
88
|
如果希望发现过期后自动刷新:
|
|
79
89
|
|
|
@@ -87,6 +97,24 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync
|
|
|
87
97
|
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync --project '<project-root>' --update --no-incremental"
|
|
88
98
|
```
|
|
89
99
|
|
|
100
|
+
### Repair
|
|
101
|
+
|
|
102
|
+
先诊断、不写入:
|
|
103
|
+
|
|
104
|
+
```powershell
|
|
105
|
+
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' repair all --project '<project-root>' --no-apply"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
执行可证明的修复:
|
|
109
|
+
|
|
110
|
+
```powershell
|
|
111
|
+
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' repair all --project '<project-root>'"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
repair 处理归一化重复、冲突重算、旧 publication gate attestation 与报告保留。旧归档只有在
|
|
115
|
+
authoritative summary/hash 和 source commit 均可独立验证时自动修复;其余项进入
|
|
116
|
+
`needsConfirmation`,不得猜测或静默放行。
|
|
117
|
+
|
|
90
118
|
### Verify knowledge validators
|
|
91
119
|
|
|
92
120
|
```powershell
|
|
@@ -129,7 +157,10 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' verif
|
|
|
129
157
|
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' suggest-validators --project '<project-root>' --limit 20"
|
|
130
158
|
```
|
|
131
159
|
|
|
132
|
-
默认只生成建议和
|
|
160
|
+
默认只生成建议和 content-addressed report,不会改写 entries。结果分别报告
|
|
161
|
+
`eligible/selected/suggested/applied/remaining/unavailable`。建议来源是当前 entry 的
|
|
162
|
+
`scope.sourceFiles`、正文/标题/关键词中的稳定 token,以及项目文件中的实际内容。
|
|
163
|
+
当前只生成安全的 `file_exists` / `file_contains` 建议。
|
|
133
164
|
|
|
134
165
|
如需把建议写入 entry JSON:
|
|
135
166
|
|
|
@@ -145,12 +176,18 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sugge
|
|
|
145
176
|
powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' promote --project '<project-root>' --id '<entry-id>' --note '<人工确认说明>'"
|
|
146
177
|
```
|
|
147
178
|
|
|
148
|
-
**发布门禁(archive publication gate)**:promote / judge apply / autoPromote
|
|
179
|
+
**发布门禁(archive publication gate)**:promote / judge apply / autoPromote 只处理
|
|
180
|
+
knowledge publication 证据通过的条目。它与归档 release status 独立:归档为 WARN 但
|
|
181
|
+
source consistency 与 authoritative pointer/hash 均通过时,知识可以发布,同时保留
|
|
182
|
+
`archiveReleaseEligibility` advisory。以下来源归档会被阻断并在条目上标记
|
|
183
|
+
`lifecycle.publishBlocked`:
|
|
149
184
|
|
|
150
185
|
- 归档 summary 缺少 `reportPipeline.sourceConsistency`(source consistency 未运行)或 `ok=false`;
|
|
151
186
|
- `derived/authoritative.json` pointer 缺失、版本目录不可读,或 repair record / pointer 的 summary hash 不匹配(DEGRADED)。
|
|
152
187
|
|
|
153
|
-
|
|
188
|
+
修复路径:优先运行本 skill 的 `repair legacy-publication-gates`。只有 summary/hash/source
|
|
189
|
+
commit 都可证明时才生成 attestation;否则输出 `needsConfirmation`。也可由 archive repair
|
|
190
|
+
生成通过 validator 的新 derived version,再重新 ingest。
|
|
154
191
|
|
|
155
192
|
将一条 `candidate` 提升为 `active`,写入:
|
|
156
193
|
|
|
@@ -289,6 +326,20 @@ powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge_mcp.py'"
|
|
|
289
326
|
|
|
290
327
|
## 变更日志
|
|
291
328
|
|
|
329
|
+
## v1.15 补充能力(sync/knowledge retrospective hardening)
|
|
330
|
+
|
|
331
|
+
- 默认无参数进入 `auto`;新增严格只读 `status`、`sync --check`、`repair all` 与
|
|
332
|
+
`admin <legacy-command>` 兼容入口。
|
|
333
|
+
- 显式 `knowledgeCandidates[]` 为首选来源,process observation 不再进入长期知识。
|
|
334
|
+
- 内容去重改为归一化指纹;冲突要求共同实体、来源范围与双方 evidence。
|
|
335
|
+
- freshness 与 health 分离,health 按 lifecycle/review/publication/validation 正交报告。
|
|
336
|
+
- judge 输出完整 `requiredDecisionCount`、有界 `previewCount` 和 `quarantinedCount`;
|
|
337
|
+
blocked 条目不进入 judge;defer 绑定证据指纹。
|
|
338
|
+
- knowledge publication gate 与 archive release status 解耦,legacy gate 仅在可证明时修复。
|
|
339
|
+
- judge/rollback 等 JSON 报告采用 content-addressed 文件、`latest-*` 指针与有界保留;
|
|
340
|
+
rollback snapshot 使用 gzip。
|
|
341
|
+
- validator 建议输出 `eligible/selected/applied/remaining/unavailable`。
|
|
342
|
+
|
|
292
343
|
## v1.7 补充能力
|
|
293
344
|
|
|
294
345
|
当前脚本额外支持:
|