harness-everything 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +6 -0
- package/ci/invariant-routing.test.js +15 -0
- package/harness-everything/SKILL.md +5 -4
- package/harness-everything/references/triage-and-tiers.md +13 -10
- package/harness-everything/scripts/kernel-router.js +27 -0
- package/opencode-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
- package/plugins/harness-everything/plugin.json +1 -1
- package/plugins/harness-everything/skills/harness-everything/SKILL.md +5 -4
- package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +13 -10
- package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +27 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "harness-everything",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "Harness OS: an orchestrated agent operating system — tier routing, circuit breaker guardrails, verification gates, WAL session memory, and self-evolving workspace rules.",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.7.0",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Miya Daniel"
|
|
16
16
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harness-everything",
|
|
3
3
|
"description": "Harness OS: an orchestrated agent operating system — tier routing, circuit breaker guardrails, verification gates, WAL session memory, and self-evolving workspace rules.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Miya Daniel"
|
|
7
7
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.7.0](https://github.com/dyphn1/Harness-everything/compare/v0.6.1...v0.7.0) (2026-09-17)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **router:** make routing checkpoint observable ([#139](https://github.com/dyphn1/Harness-everything/issues/139)) ([97dc06d](https://github.com/dyphn1/Harness-everything/commit/97dc06d6b07747ba5e9c328838b8d535c9585b00)), closes [#282](https://github.com/dyphn1/Harness-everything/issues/282)
|
|
10
|
+
|
|
5
11
|
## [0.6.1](https://github.com/dyphn1/Harness-everything/compare/v0.6.0...v0.6.1) (2026-09-17)
|
|
6
12
|
|
|
7
13
|
### Bug Fixes
|
|
@@ -40,6 +40,14 @@ check(tier2.stdout.includes('tdd:'), 'Tier 2 can still recommend TDD');
|
|
|
40
40
|
check(!tier2.stdout.includes('BASE EXECUTION LOOP'), 'legacy fixed base-execution-loop output is suppressed');
|
|
41
41
|
check(tier2.stdout.includes('Do not enforce workflow order'), 'self-orchestration policy is explicit');
|
|
42
42
|
|
|
43
|
+
const tier2Checkpoints = tier2.stdout.match(/HARNESS ROUTING CHECKPOINT \(REQUIRED VISIBLE STATE\)/g) || [];
|
|
44
|
+
check(tier2Checkpoints.length === 1, 'Tier 2 emits exactly one required routing checkpoint');
|
|
45
|
+
check(tier2.stdout.includes('- Tier: Tier 2'), 'checkpoint exposes the human-readable Tier 2');
|
|
46
|
+
check(tier2.stdout.includes('- Strategy: iterative-single'), 'checkpoint exposes the selected strategy');
|
|
47
|
+
check(/- Required invariants: .*verify-before-claim/.test(tier2.stdout), 'checkpoint exposes required invariants');
|
|
48
|
+
check(/- Suggested skills: .*tdd/.test(tier2.stdout), 'checkpoint exposes deduplicated suggestions');
|
|
49
|
+
check(tier2.stdout.includes('If all are skipped, state one brief reason'), 'non-empty suggestions carry an all-skipped rationale contract');
|
|
50
|
+
|
|
43
51
|
const tier3 = spawnSync(process.execPath, [kernel, 'audit the entire repository architecture and coordinate multiple modules'], {
|
|
44
52
|
cwd: ROOT,
|
|
45
53
|
encoding: 'utf8',
|
|
@@ -49,11 +57,14 @@ check(/RECOMMENDED TIER:\s*Tier 3/i.test(tier3.stdout), 'macro task remains Tier
|
|
|
49
57
|
check(tier3.stdout.includes('"strategy":"fable-staged"'), 'Tier 3 dependent/unproven work selects fable-staged');
|
|
50
58
|
check(tier3.stdout.includes('fable-mode / fable-discipline'), 'Tier 3 selected plan suggests Fable capabilities');
|
|
51
59
|
check(tier3.stdout.includes('suggested skills remain advisory'), 'Tier 3 suggestions remain non-mandatory');
|
|
60
|
+
check(tier3.stdout.includes('HARNESS ROUTING CHECKPOINT (REQUIRED VISIBLE STATE)'), 'Tier 3 also emits the required routing checkpoint');
|
|
52
61
|
|
|
53
62
|
const harnessSkill = read('harness-everything/SKILL.md');
|
|
54
63
|
check(!/Requests that already name a skill/i.test(harnessSkill), 'harness entrypoint no longer opts out when another skill is named');
|
|
55
64
|
check(/including work that already names or strongly matches another skill/i.test(harnessSkill), 'named domain skills still pass through Harness routing');
|
|
56
65
|
check(/not a fixed pipeline/i.test(harnessSkill), 'skill contract rejects fixed pipeline semantics');
|
|
66
|
+
check(/Ensure the emitted \*\*Harness Routing Checkpoint\*\* is user-visible/.test(harnessSkill), 'skill contract requires checkpoint visibility');
|
|
67
|
+
check(/If suggestions are non-empty and you use none, state one brief skip reason/.test(harnessSkill), 'skill contract requires rationale only when all suggestions are skipped');
|
|
57
68
|
|
|
58
69
|
const cognitiveSkill = read('install-cognitive-os/SKILL.md');
|
|
59
70
|
check(/policy, not a required peer-skill selection/i.test(cognitiveSkill), 'Cognitive OS is defined as policy rather than peer-skill dependency');
|
|
@@ -69,6 +80,10 @@ check(triageDoc.includes('Do not enforce workflow order. Enforce workflow invari
|
|
|
69
80
|
check(triageDoc.includes('A tier is **not** a fixed pipeline'), 'tier documentation rejects rigid orchestration');
|
|
70
81
|
check(!triageDoc.includes('MUST load `todo-driven-workflow`'), 'documentation no longer mandates TODO as universal Tier 2/3 first step');
|
|
71
82
|
check(triageDoc.includes('```mermaid'), 'updated architecture retains executable flowchart documentation');
|
|
83
|
+
check(triageDoc.includes('the kernel always emits a compact checkpoint'), 'reference makes checkpoint emission mandatory');
|
|
84
|
+
check(!triageDoc.includes('When a visible checkpoint is useful'), 'reference no longer makes checkpoint visibility optional');
|
|
85
|
+
check(triageDoc.includes('if every suggestion is skipped, state one brief reason'), 'reference records the all-skipped rationale rule');
|
|
86
|
+
check(triageDoc.includes('Kernel emission alone is not proof that a host UI displayed the checkpoint'), 'reference preserves the #82 host-evidence boundary');
|
|
72
87
|
|
|
73
88
|
console.log(`\n${failed === 0 ? 'PASS' : 'FAIL'}: invariant routing contract (${failed} failure${failed === 1 ? '' : 's'})`);
|
|
74
89
|
process.exit(failed === 0 ? 0 : 1);
|
|
@@ -4,7 +4,7 @@ description: "Route software/project work through the Harness kernel: classify T
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.7.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Harness Everything
|
|
@@ -29,8 +29,9 @@ These rails are mandatory; Tier guidance is not a fixed pipeline.
|
|
|
29
29
|
## Workflow
|
|
30
30
|
|
|
31
31
|
1. Reuse current-turn kernel output, or run `node "<this-skill-dir>/scripts/kernel-router.js" "<prompt summary>"`.
|
|
32
|
-
2.
|
|
33
|
-
3.
|
|
32
|
+
2. Ensure the emitted **Harness Routing Checkpoint** is user-visible: reuse a host-visible rendering or include it in the first progress/update message.
|
|
33
|
+
3. Preserve the invariants.
|
|
34
|
+
4. Treat suggested skills as advisory: choose, combine, reorder, or omit them as useful. If suggestions are non-empty and you use none, state one brief skip reason with the visible checkpoint/progress update.
|
|
34
35
|
|
|
35
36
|
## Tier Guidance
|
|
36
37
|
|
|
@@ -38,6 +39,6 @@ These rails are mandatory; Tier guidance is not a fixed pipeline.
|
|
|
38
39
|
- **Tier 2:** TODO tracking, TDD, and verification are common suggestions.
|
|
39
40
|
- **Tier 3:** Fable/multi-agent skills are optional when macro planning or delegation helps.
|
|
40
41
|
|
|
41
|
-
**Rule:**
|
|
42
|
+
**Rule:** enforce checkpoint visibility and workflow invariants, not workflow order; let the agent orchestrate itself inside those rails.
|
|
42
43
|
|
|
43
44
|
Deep dive: <this-skill-dir>/references/triage-and-tiers.md
|
|
@@ -73,11 +73,12 @@ npx github:dyphn1/Harness-everything next "<brief prompt summary>"
|
|
|
73
73
|
`kernel-router.js` delegates classification and guide discovery to `tier-router.js`, removes legacy fixed-pipeline instructions, and emits:
|
|
74
74
|
|
|
75
75
|
- the recommended tier and rationale,
|
|
76
|
+
- a compact **Harness Routing Checkpoint**,
|
|
76
77
|
- the **required Harness invariants**,
|
|
77
78
|
- **suggested skills** marked advisory,
|
|
78
79
|
- the policy that the agent may choose the smallest useful skill/tool set.
|
|
79
80
|
|
|
80
|
-
If a host's `UserPromptSubmit` integration already ran the kernel this turn, reuse that output rather than running it twice.
|
|
81
|
+
If a host's `UserPromptSubmit` integration already ran the kernel this turn, reuse that output rather than running it twice. The checkpoint must still become user-visible for software/project work: use the host's visible hook rendering when it has one, otherwise include the checkpoint in the first progress/update message.
|
|
81
82
|
|
|
82
83
|
The tier classifier is heuristic. Treat its result as the default route, not an oracle. A clear task reading or explicit user instruction may override it; record the reason when doing so.
|
|
83
84
|
|
|
@@ -116,7 +117,7 @@ Common **suggestions**, not a pipeline:
|
|
|
116
117
|
| Isolated workspace would reduce risk | `using-git-worktrees` |
|
|
117
118
|
| Quantitative scoring/benchmarking is requested | `eval-harness` |
|
|
118
119
|
|
|
119
|
-
The model decides which of these are useful and in what order. It may use none, one, or several while preserving the kernel invariants.
|
|
120
|
+
The model decides which of these are useful and in what order. It may use none, one, or several while preserving the kernel invariants. If the router emitted one or more suggestions and the agent uses none of them, the visible checkpoint/progress update must include one brief skip reason; using at least one suggestion does not require explaining why the others were omitted.
|
|
120
121
|
|
|
121
122
|
### Tier 3 — Macro
|
|
122
123
|
|
|
@@ -137,7 +138,7 @@ Common **suggestions**, not a pipeline:
|
|
|
137
138
|
| Settled intent needs a spec | `to-spec` |
|
|
138
139
|
| Settled work needs tracer-bullet issues | `to-tickets` |
|
|
139
140
|
|
|
140
|
-
Tier 3 does **not** automatically require multi-agent execution. A strong model may complete macro work directly when that is the safer/smaller choice.
|
|
141
|
+
Tier 3 does **not** automatically require multi-agent execution. A strong model may complete macro work directly when that is the safer/smaller choice. The same all-skipped rationale rule applies when the router emitted suggestions.
|
|
141
142
|
|
|
142
143
|
## 4. Cognitive OS Relationship
|
|
143
144
|
|
|
@@ -160,24 +161,26 @@ But this diagram describes a reasoning policy, not a peer-skill dependency graph
|
|
|
160
161
|
|
|
161
162
|
| Host mode | Expected behavior |
|
|
162
163
|
|---|---|
|
|
163
|
-
| Lifecycle hook available | Run the Harness Kernel on prompt submission so routing context exists before domain-skill execution. Hard gates may enforce supported invariants at tool/stop boundaries. |
|
|
164
|
-
| Advisory instructions only | Tell the agent to run/reuse `harness next` before software mutation and `harness verify` before completion. The behavior is advisory, not a hard gate. |
|
|
165
|
-
| Manual use | Invoke `harness-everything` or `install-cognitive-os` explicitly to inspect/re-establish the contract. |
|
|
164
|
+
| Lifecycle hook available | Run the Harness Kernel on prompt submission so routing context exists before domain-skill execution. Surface the emitted checkpoint through a host-visible hook surface when supported; otherwise the agent carries it into the first visible progress/update. Hard gates may enforce supported invariants at tool/stop boundaries. |
|
|
165
|
+
| Advisory instructions only | Tell the agent to run/reuse `harness next` before software mutation, surface the checkpoint, and run `harness verify` before completion. The behavior is advisory, not a hard host gate. |
|
|
166
|
+
| Manual use | Invoke `harness-everything` or `install-cognitive-os` explicitly to inspect/re-establish and surface the contract. |
|
|
166
167
|
|
|
167
|
-
Never describe an advisory integration as hard enforcement. Platform-specific adapters may differ while preserving functional intent.
|
|
168
|
+
Never describe an advisory integration as hard enforcement. Platform-specific adapters may differ while preserving functional intent. Kernel emission alone is not proof that a host UI displayed the checkpoint; #82 live evidence owns that claim.
|
|
168
169
|
|
|
169
170
|
## 6. Routing Checkpoint
|
|
170
171
|
|
|
171
|
-
|
|
172
|
+
For software/project work, the kernel always emits a compact checkpoint and the execution surface must make it user-visible before or with the first progress update:
|
|
172
173
|
|
|
173
174
|
```markdown
|
|
174
175
|
## 🚦 Harness Routing Checkpoint
|
|
175
176
|
- Tier: Tier X — <reason>
|
|
177
|
+
- Strategy: <selected/deferred strategy>
|
|
176
178
|
- Required invariants: route-before-execution; verify-before-claim; re-plan-after-3-same-failures
|
|
177
|
-
- Suggested skills: <
|
|
179
|
+
- Suggested skills: <deduplicated suggestions, or none>
|
|
180
|
+
- Suggestion disposition: <using one or more | skipped all — brief reason>
|
|
178
181
|
```
|
|
179
182
|
|
|
180
|
-
The checkpoint reports state; it does not prescribe a universal workflow.
|
|
183
|
+
The checkpoint reports state; it does not prescribe a universal workflow. Suggested skills remain advisory. The only extra accountability rule is that a non-empty suggestion set cannot disappear silently: if every suggestion is skipped, state one brief reason. Do not add a skip explanation when at least one suggestion is used.
|
|
181
184
|
|
|
182
185
|
## 7. Self-Healing and Dynamic Skills
|
|
183
186
|
|
|
@@ -117,6 +117,32 @@ function printWorkflowPlan(plan) {
|
|
|
117
117
|
console.log(`\n=> ROUTER WORKFLOW PLAN (JSON): ${JSON.stringify(visible)}`);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
+
function uniqueSuggestedSkills(plan) {
|
|
121
|
+
if (!Array.isArray(plan.suggestedSkills)) return [];
|
|
122
|
+
return [...new Set(plan.suggestedSkills.filter(skill => typeof skill === 'string' && skill.trim()))];
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function displayTier(tier) {
|
|
126
|
+
if (tier === 'tier1') return 'Tier 1';
|
|
127
|
+
if (tier === 'tier2') return 'Tier 2';
|
|
128
|
+
if (tier === 'tier3') return 'Tier 3';
|
|
129
|
+
return tier || 'unclassified';
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function printRoutingCheckpoint(plan) {
|
|
133
|
+
const invariants = Array.isArray(plan.requiredInvariants) ? plan.requiredInvariants : [];
|
|
134
|
+
const suggestions = uniqueSuggestedSkills(plan);
|
|
135
|
+
|
|
136
|
+
console.log('\n=> HARNESS ROUTING CHECKPOINT (REQUIRED VISIBLE STATE):');
|
|
137
|
+
console.log(` - Tier: ${displayTier(plan.tier)}`);
|
|
138
|
+
console.log(` - Strategy: ${plan.strategy || 'deferred'}`);
|
|
139
|
+
console.log(` - Required invariants: ${invariants.length ? invariants.join(', ') : 'none'}`);
|
|
140
|
+
console.log(` - Suggested skills: ${suggestions.length ? suggestions.join(', ') : 'none'}`);
|
|
141
|
+
if (suggestions.length > 0) {
|
|
142
|
+
console.log(' - Suggestion disposition: suggestions are advisory; use any that add value. If all are skipped, state one brief reason in the first visible progress/update message.');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
120
146
|
function printKernelContract(plan) {
|
|
121
147
|
console.log('\n=> REQUIRED HARNESS INVARIANTS:');
|
|
122
148
|
for (const invariant of plan.requiredInvariants || []) {
|
|
@@ -194,6 +220,7 @@ function run(prompt, stdinPayload) {
|
|
|
194
220
|
}
|
|
195
221
|
|
|
196
222
|
printWorkflowPlan(contract.workflowPlan);
|
|
223
|
+
printRoutingCheckpoint(contract.workflowPlan);
|
|
197
224
|
printKernelContract(contract.workflowPlan);
|
|
198
225
|
|
|
199
226
|
if (result.status !== 0) process.exit(result.status === null ? 1 : result.status);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "harness-everything",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"description": "Invariant-first engineering harness for routing, verification, and failure recovery while preserving agent autonomy.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Miya Daniel",
|
|
@@ -4,7 +4,7 @@ description: "Route software/project work through the Harness kernel: classify T
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.7.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Harness Everything
|
|
@@ -29,8 +29,9 @@ These rails are mandatory; Tier guidance is not a fixed pipeline.
|
|
|
29
29
|
## Workflow
|
|
30
30
|
|
|
31
31
|
1. Reuse current-turn kernel output, or run `node "<this-skill-dir>/scripts/kernel-router.js" "<prompt summary>"`.
|
|
32
|
-
2.
|
|
33
|
-
3.
|
|
32
|
+
2. Ensure the emitted **Harness Routing Checkpoint** is user-visible: reuse a host-visible rendering or include it in the first progress/update message.
|
|
33
|
+
3. Preserve the invariants.
|
|
34
|
+
4. Treat suggested skills as advisory: choose, combine, reorder, or omit them as useful. If suggestions are non-empty and you use none, state one brief skip reason with the visible checkpoint/progress update.
|
|
34
35
|
|
|
35
36
|
## Tier Guidance
|
|
36
37
|
|
|
@@ -38,6 +39,6 @@ These rails are mandatory; Tier guidance is not a fixed pipeline.
|
|
|
38
39
|
- **Tier 2:** TODO tracking, TDD, and verification are common suggestions.
|
|
39
40
|
- **Tier 3:** Fable/multi-agent skills are optional when macro planning or delegation helps.
|
|
40
41
|
|
|
41
|
-
**Rule:**
|
|
42
|
+
**Rule:** enforce checkpoint visibility and workflow invariants, not workflow order; let the agent orchestrate itself inside those rails.
|
|
42
43
|
|
|
43
44
|
Deep dive: <this-skill-dir>/references/triage-and-tiers.md
|
|
@@ -73,11 +73,12 @@ npx github:dyphn1/Harness-everything next "<brief prompt summary>"
|
|
|
73
73
|
`kernel-router.js` delegates classification and guide discovery to `tier-router.js`, removes legacy fixed-pipeline instructions, and emits:
|
|
74
74
|
|
|
75
75
|
- the recommended tier and rationale,
|
|
76
|
+
- a compact **Harness Routing Checkpoint**,
|
|
76
77
|
- the **required Harness invariants**,
|
|
77
78
|
- **suggested skills** marked advisory,
|
|
78
79
|
- the policy that the agent may choose the smallest useful skill/tool set.
|
|
79
80
|
|
|
80
|
-
If a host's `UserPromptSubmit` integration already ran the kernel this turn, reuse that output rather than running it twice.
|
|
81
|
+
If a host's `UserPromptSubmit` integration already ran the kernel this turn, reuse that output rather than running it twice. The checkpoint must still become user-visible for software/project work: use the host's visible hook rendering when it has one, otherwise include the checkpoint in the first progress/update message.
|
|
81
82
|
|
|
82
83
|
The tier classifier is heuristic. Treat its result as the default route, not an oracle. A clear task reading or explicit user instruction may override it; record the reason when doing so.
|
|
83
84
|
|
|
@@ -116,7 +117,7 @@ Common **suggestions**, not a pipeline:
|
|
|
116
117
|
| Isolated workspace would reduce risk | `using-git-worktrees` |
|
|
117
118
|
| Quantitative scoring/benchmarking is requested | `eval-harness` |
|
|
118
119
|
|
|
119
|
-
The model decides which of these are useful and in what order. It may use none, one, or several while preserving the kernel invariants.
|
|
120
|
+
The model decides which of these are useful and in what order. It may use none, one, or several while preserving the kernel invariants. If the router emitted one or more suggestions and the agent uses none of them, the visible checkpoint/progress update must include one brief skip reason; using at least one suggestion does not require explaining why the others were omitted.
|
|
120
121
|
|
|
121
122
|
### Tier 3 — Macro
|
|
122
123
|
|
|
@@ -137,7 +138,7 @@ Common **suggestions**, not a pipeline:
|
|
|
137
138
|
| Settled intent needs a spec | `to-spec` |
|
|
138
139
|
| Settled work needs tracer-bullet issues | `to-tickets` |
|
|
139
140
|
|
|
140
|
-
Tier 3 does **not** automatically require multi-agent execution. A strong model may complete macro work directly when that is the safer/smaller choice.
|
|
141
|
+
Tier 3 does **not** automatically require multi-agent execution. A strong model may complete macro work directly when that is the safer/smaller choice. The same all-skipped rationale rule applies when the router emitted suggestions.
|
|
141
142
|
|
|
142
143
|
## 4. Cognitive OS Relationship
|
|
143
144
|
|
|
@@ -160,24 +161,26 @@ But this diagram describes a reasoning policy, not a peer-skill dependency graph
|
|
|
160
161
|
|
|
161
162
|
| Host mode | Expected behavior |
|
|
162
163
|
|---|---|
|
|
163
|
-
| Lifecycle hook available | Run the Harness Kernel on prompt submission so routing context exists before domain-skill execution. Hard gates may enforce supported invariants at tool/stop boundaries. |
|
|
164
|
-
| Advisory instructions only | Tell the agent to run/reuse `harness next` before software mutation and `harness verify` before completion. The behavior is advisory, not a hard gate. |
|
|
165
|
-
| Manual use | Invoke `harness-everything` or `install-cognitive-os` explicitly to inspect/re-establish the contract. |
|
|
164
|
+
| Lifecycle hook available | Run the Harness Kernel on prompt submission so routing context exists before domain-skill execution. Surface the emitted checkpoint through a host-visible hook surface when supported; otherwise the agent carries it into the first visible progress/update. Hard gates may enforce supported invariants at tool/stop boundaries. |
|
|
165
|
+
| Advisory instructions only | Tell the agent to run/reuse `harness next` before software mutation, surface the checkpoint, and run `harness verify` before completion. The behavior is advisory, not a hard host gate. |
|
|
166
|
+
| Manual use | Invoke `harness-everything` or `install-cognitive-os` explicitly to inspect/re-establish and surface the contract. |
|
|
166
167
|
|
|
167
|
-
Never describe an advisory integration as hard enforcement. Platform-specific adapters may differ while preserving functional intent.
|
|
168
|
+
Never describe an advisory integration as hard enforcement. Platform-specific adapters may differ while preserving functional intent. Kernel emission alone is not proof that a host UI displayed the checkpoint; #82 live evidence owns that claim.
|
|
168
169
|
|
|
169
170
|
## 6. Routing Checkpoint
|
|
170
171
|
|
|
171
|
-
|
|
172
|
+
For software/project work, the kernel always emits a compact checkpoint and the execution surface must make it user-visible before or with the first progress update:
|
|
172
173
|
|
|
173
174
|
```markdown
|
|
174
175
|
## 🚦 Harness Routing Checkpoint
|
|
175
176
|
- Tier: Tier X — <reason>
|
|
177
|
+
- Strategy: <selected/deferred strategy>
|
|
176
178
|
- Required invariants: route-before-execution; verify-before-claim; re-plan-after-3-same-failures
|
|
177
|
-
- Suggested skills: <
|
|
179
|
+
- Suggested skills: <deduplicated suggestions, or none>
|
|
180
|
+
- Suggestion disposition: <using one or more | skipped all — brief reason>
|
|
178
181
|
```
|
|
179
182
|
|
|
180
|
-
The checkpoint reports state; it does not prescribe a universal workflow.
|
|
183
|
+
The checkpoint reports state; it does not prescribe a universal workflow. Suggested skills remain advisory. The only extra accountability rule is that a non-empty suggestion set cannot disappear silently: if every suggestion is skipped, state one brief reason. Do not add a skip explanation when at least one suggestion is used.
|
|
181
184
|
|
|
182
185
|
## 7. Self-Healing and Dynamic Skills
|
|
183
186
|
|
|
@@ -117,6 +117,32 @@ function printWorkflowPlan(plan) {
|
|
|
117
117
|
console.log(`\n=> ROUTER WORKFLOW PLAN (JSON): ${JSON.stringify(visible)}`);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
+
function uniqueSuggestedSkills(plan) {
|
|
121
|
+
if (!Array.isArray(plan.suggestedSkills)) return [];
|
|
122
|
+
return [...new Set(plan.suggestedSkills.filter(skill => typeof skill === 'string' && skill.trim()))];
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function displayTier(tier) {
|
|
126
|
+
if (tier === 'tier1') return 'Tier 1';
|
|
127
|
+
if (tier === 'tier2') return 'Tier 2';
|
|
128
|
+
if (tier === 'tier3') return 'Tier 3';
|
|
129
|
+
return tier || 'unclassified';
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function printRoutingCheckpoint(plan) {
|
|
133
|
+
const invariants = Array.isArray(plan.requiredInvariants) ? plan.requiredInvariants : [];
|
|
134
|
+
const suggestions = uniqueSuggestedSkills(plan);
|
|
135
|
+
|
|
136
|
+
console.log('\n=> HARNESS ROUTING CHECKPOINT (REQUIRED VISIBLE STATE):');
|
|
137
|
+
console.log(` - Tier: ${displayTier(plan.tier)}`);
|
|
138
|
+
console.log(` - Strategy: ${plan.strategy || 'deferred'}`);
|
|
139
|
+
console.log(` - Required invariants: ${invariants.length ? invariants.join(', ') : 'none'}`);
|
|
140
|
+
console.log(` - Suggested skills: ${suggestions.length ? suggestions.join(', ') : 'none'}`);
|
|
141
|
+
if (suggestions.length > 0) {
|
|
142
|
+
console.log(' - Suggestion disposition: suggestions are advisory; use any that add value. If all are skipped, state one brief reason in the first visible progress/update message.');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
120
146
|
function printKernelContract(plan) {
|
|
121
147
|
console.log('\n=> REQUIRED HARNESS INVARIANTS:');
|
|
122
148
|
for (const invariant of plan.requiredInvariants || []) {
|
|
@@ -194,6 +220,7 @@ function run(prompt, stdinPayload) {
|
|
|
194
220
|
}
|
|
195
221
|
|
|
196
222
|
printWorkflowPlan(contract.workflowPlan);
|
|
223
|
+
printRoutingCheckpoint(contract.workflowPlan);
|
|
197
224
|
printKernelContract(contract.workflowPlan);
|
|
198
225
|
|
|
199
226
|
if (result.status !== 0) process.exit(result.status === null ? 1 : result.status);
|