harness-everything 0.30.3 → 0.30.5
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 +34 -0
- package/README.md +17 -7
- package/bin/cli.js +5 -0
- package/ci/mechanism-2w-platform-compatibility.test.js +39 -0
- package/ci/prompt-contract-regressions.test.js +46 -0
- package/docs/platform-capabilities.md +6 -1
- package/docs/troubleshooting.md +31 -1
- package/docs/workflows/skill-creator.md +5 -4
- package/harness-everything/SKILL.md +11 -14
- 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 +11 -14
- package/plugins/harness-everything/skills/skill-creator/SKILL.md +3 -3
- package/plugins/harness-everything/skills/skill-creator/references/authoring-workflow.md +6 -6
- package/plugins/harness-everything/skills/skill-creator/references/testing-workflow.md +4 -4
- package/plugins/harness-everything/skills/to-spec/SKILL.md +2 -2
- package/plugins/harness-everything/skills/to-spec/references/process.md +1 -1
- package/sbom.cdx.json +7 -7
- package/skill-creator/SKILL.md +3 -3
- package/skill-creator/references/authoring-workflow.md +6 -6
- package/skill-creator/references/testing-workflow.md +4 -4
- package/to-spec/SKILL.md +2 -2
- package/to-spec/references/process.md +1 -1
|
@@ -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.30.
|
|
13
|
+
"version": "0.30.5",
|
|
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.30.
|
|
4
|
+
"version": "0.30.5",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Miya Daniel"
|
|
7
7
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.30.5](https://github.com/dyphn1/Harness-everything/compare/v0.30.4...v0.30.5) (2026-10-06)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* align Windows PowerShell quick-start contract ([f780f77](https://github.com/dyphn1/Harness-everything/commit/f780f777559d14f9bcf929793d954ddcaf2c6cf7))
|
|
10
|
+
* enforce Windows-safe shell contract ([a373a16](https://github.com/dyphn1/Harness-everything/commit/a373a16f5bdd3659e290715c971f530e66ffe2c1))
|
|
11
|
+
* fit Harness routing contract within budget ([6fa9065](https://github.com/dyphn1/Harness-everything/commit/6fa90657611bcbc85f669e864a3245b469e99d23))
|
|
12
|
+
* keep host-shell invariant within skill budget ([1381dc9](https://github.com/dyphn1/Harness-everything/commit/1381dc9877a0facccbea8f31a3047055eabaf5b2))
|
|
13
|
+
* preserve semantic contract phrases within Waza budget ([ab29217](https://github.com/dyphn1/Harness-everything/commit/ab292175cc691c6bd01d1e0da219a15c6779f7be))
|
|
14
|
+
* preserve skill metadata while restoring token budget ([189660a](https://github.com/dyphn1/Harness-everything/commit/189660ad6283ecad84d8a07232515fd80da6691c))
|
|
15
|
+
* restore Harness skill token budget ([80b1eee](https://github.com/dyphn1/Harness-everything/commit/80b1eeeceb681d9551bfbe4d3c881ae2c3e5747f))
|
|
16
|
+
* restore required skill sections within Waza budget ([acbb314](https://github.com/dyphn1/Harness-everything/commit/acbb314ec4e7769c2a2c253918ac67e1158052fe))
|
|
17
|
+
* show Windows-safe npx entry point ([d208b77](https://github.com/dyphn1/Harness-everything/commit/d208b7735912b7282dc158068b3e5c17a5c62e0d))
|
|
18
|
+
* sync packaged Windows shell contract ([201eb5a](https://github.com/dyphn1/Harness-everything/commit/201eb5a53cbea4e696db633f857b6c30c15f1855))
|
|
19
|
+
|
|
20
|
+
## [0.30.4](https://github.com/dyphn1/Harness-everything/compare/v0.30.3...v0.30.4) (2026-10-01)
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **plugin:** sync skill-creator A/B contract ([2eeea6e](https://github.com/dyphn1/Harness-everything/commit/2eeea6ec3845c5affcbd38f8c44c8120155818c2))
|
|
25
|
+
* **plugin:** sync to-spec design audit contract ([4a298e6](https://github.com/dyphn1/Harness-everything/commit/4a298e64477078e8c435ab90d1968d36f91bc648))
|
|
26
|
+
* **plugin:** sync to-spec workspace contract ([591c50f](https://github.com/dyphn1/Harness-everything/commit/591c50f6a99819f51202e0fbebc0bdb3511746e0))
|
|
27
|
+
* **skill-creator:** define executor-agnostic A/B lanes ([7294807](https://github.com/dyphn1/Harness-everything/commit/7294807da0c0c96f7baa148eb05913b476e192fa))
|
|
28
|
+
* **skill-creator:** keep A/B invariant within token budget ([0e249ab](https://github.com/dyphn1/Harness-everything/commit/0e249ab2205daba3f11ad8aa7886e27821d63edb))
|
|
29
|
+
* **skill-creator:** keep A/B invariant within token budget ([d0c7cba](https://github.com/dyphn1/Harness-everything/commit/d0c7cba2c9d2123a3a9c192d022dae3a70740efc))
|
|
30
|
+
* **skill-creator:** keep topology router-owned in authoring guide ([842241d](https://github.com/dyphn1/Harness-everything/commit/842241dfadc98ed5983d744c9d615cf8e93b5e5e))
|
|
31
|
+
* **skill-creator:** keep topology router-owned in authoring guide ([97ec713](https://github.com/dyphn1/Harness-everything/commit/97ec713580958629df11923be0acf25f4eaf92d2))
|
|
32
|
+
* **skill-creator:** remove stale workspace spawner guidance ([37fbb99](https://github.com/dyphn1/Harness-everything/commit/37fbb99b992881fe4c93126c0198697e2d825240))
|
|
33
|
+
* **skill-creator:** remove stale workspace spawner guidance ([14f0614](https://github.com/dyphn1/Harness-everything/commit/14f0614843d79fc1067384b1b5ffa3f22caf1b6b))
|
|
34
|
+
* **to-spec:** define design audit outcome instead of executor ([ffe8e6e](https://github.com/dyphn1/Harness-everything/commit/ffe8e6e414edbb50412d48fd07cfe187b97cdc6f))
|
|
35
|
+
* **to-spec:** keep audit invariant within token budget ([c29757a](https://github.com/dyphn1/Harness-everything/commit/c29757af92dc560a6fb15f16252ca931d4abc5cc))
|
|
36
|
+
* **to-spec:** keep audit invariant within token budget ([5ab9667](https://github.com/dyphn1/Harness-everything/commit/5ab966710ca32e776a9cd9d8c608b92e2558898c))
|
|
37
|
+
* **to-spec:** stop treating workspace as subagent executor ([32b797c](https://github.com/dyphn1/Harness-everything/commit/32b797c9fd9028ca26b8bb61f101bace23a5cd18))
|
|
38
|
+
|
|
5
39
|
## [0.30.3](https://github.com/dyphn1/Harness-everything/compare/v0.30.2...v0.30.3) (2026-10-01)
|
|
6
40
|
|
|
7
41
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -56,12 +56,14 @@ Harness integrates directly into your workspace. There is no heavy daemon, no pa
|
|
|
56
56
|
# /plugin install harness-everything
|
|
57
57
|
|
|
58
58
|
# Option B: install Harness hooks/skills/advisory integrations into your workspace
|
|
59
|
-
npx github:dyphn1/Harness-everything install
|
|
59
|
+
npx github:dyphn1/Harness-everything install # POSIX shells / Git Bash
|
|
60
|
+
npx.cmd github:dyphn1/Harness-everything install # Windows PowerShell
|
|
60
61
|
|
|
61
62
|
# Option C: install or update the native Claude Code/Codex plugin
|
|
62
|
-
# npx github:dyphn1/Harness-everything plugin-sync
|
|
63
|
-
#
|
|
64
|
-
#
|
|
63
|
+
# npx github:dyphn1/Harness-everything plugin-sync # POSIX shells / Git Bash
|
|
64
|
+
# npx.cmd github:dyphn1/Harness-everything plugin-sync # Windows PowerShell
|
|
65
|
+
# ./scripts/plugin-sync.sh # POSIX shells / Git Bash
|
|
66
|
+
# node scripts/plugin-sync.js # Windows-safe direct entry
|
|
65
67
|
|
|
66
68
|
# OpenAI/Codex local plugin packaging is repository-owned under:
|
|
67
69
|
# .agents/plugins/marketplace.json
|
|
@@ -69,6 +71,8 @@ npx github:dyphn1/Harness-everything install
|
|
|
69
71
|
# See docs/openai-plugin.md for local import/install and public Skills-only submission.
|
|
70
72
|
```
|
|
71
73
|
|
|
74
|
+
**Windows PowerShell:** use npm-family `.cmd` shims such as `npx.cmd` rather than weakening `ExecutionPolicy`. When reading Harness Markdown from Windows PowerShell 5.1, specify UTF-8 explicitly, for example `Get-Content -Encoding UTF8 -Raw <path>`.
|
|
75
|
+
|
|
72
76
|
### Expected Behavior After Installation:
|
|
73
77
|
1. **Use the selected surface's real mechanism:** Claude Code hooks, the local OpenAI plugin lifecycle hooks, OpenCode's plugin API, or advisory instructions depending on what you installed.
|
|
74
78
|
2. **Preflight / session context where packaged:** Hook-capable surfaces can inject environment/session context automatically; advisory-only surfaces must not be described as if they do.
|
|
@@ -100,9 +104,15 @@ The native `plugin-sync` command detects the installed host CLIs and applies the
|
|
|
100
104
|
The installer records its state directories in `.git/info/exclude` — a local-only git ignore file — so Harness state never lands in a commit and your working tree (including `.gitignore`) is never modified. Everything owned by the general installer is removed with the built-in uninstaller:
|
|
101
105
|
|
|
102
106
|
```bash
|
|
103
|
-
|
|
104
|
-
npx github:dyphn1/Harness-everything uninstall
|
|
105
|
-
npx github:dyphn1/Harness-everything uninstall --
|
|
107
|
+
# POSIX shells / Git Bash
|
|
108
|
+
npx github:dyphn1/Harness-everything uninstall
|
|
109
|
+
npx github:dyphn1/Harness-everything uninstall --local --skills -y
|
|
110
|
+
npx github:dyphn1/Harness-everything uninstall --global
|
|
111
|
+
|
|
112
|
+
# Windows PowerShell
|
|
113
|
+
npx.cmd github:dyphn1/Harness-everything uninstall
|
|
114
|
+
npx.cmd github:dyphn1/Harness-everything uninstall --local --skills -y
|
|
115
|
+
npx.cmd github:dyphn1/Harness-everything uninstall --global
|
|
106
116
|
```
|
|
107
117
|
|
|
108
118
|
---
|
package/bin/cli.js
CHANGED
|
@@ -55,6 +55,11 @@ Harness OS - AI Agent Operating System CLI
|
|
|
55
55
|
|
|
56
56
|
Usage:
|
|
57
57
|
npx github:dyphn1/Harness-everything <command> [options]
|
|
58
|
+
npx.cmd github:dyphn1/Harness-everything <command> [options] # Windows PowerShell
|
|
59
|
+
|
|
60
|
+
Windows PowerShell note:
|
|
61
|
+
Use npx.cmd so restrictive ExecutionPolicy cannot redirect this command to npx.ps1.
|
|
62
|
+
Harness does not require changing ExecutionPolicy.
|
|
58
63
|
|
|
59
64
|
Commands:
|
|
60
65
|
install Install Harness OS hooks & skills into the local repository
|
|
@@ -152,7 +152,46 @@ try {
|
|
|
152
152
|
fs.rmSync(tempOutput.replace(/\.zip$/i, '') + '.manifest.json', { force: true });
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
+
// Windows PowerShell 5.1 treats BOM-less UTF-8 as a legacy code page when
|
|
156
|
+
// Get-Content has no explicit encoding, and resolves bare npm-family commands
|
|
157
|
+
// to .ps1 shims before .cmd. The routing skill is the agent-facing boundary
|
|
158
|
+
// that must prevent both failures before Harness itself starts.
|
|
159
|
+
const canonicalHarnessSkill = fs.readFileSync(path.join(ROOT, 'harness-everything', 'SKILL.md'), 'utf8');
|
|
160
|
+
const packagedHarnessSkill = fs.readFileSync(path.join(ROOT, 'plugins', 'harness-everything', 'skills', 'harness-everything', 'SKILL.md'), 'utf8');
|
|
161
|
+
assert.match(canonicalHarnessSkill, /Windows PowerShell/);
|
|
162
|
+
assert.match(canonicalHarnessSkill, /npx\.cmd/);
|
|
163
|
+
assert.match(canonicalHarnessSkill, /Get-Content -Encoding UTF8 -Raw/);
|
|
164
|
+
assert.strictEqual(packagedHarnessSkill, canonicalHarnessSkill, 'packaged Harness skill must preserve the Windows shell contract byte-for-text');
|
|
165
|
+
assert.match(canonicalHarnessSkill, /—/u, 'UTF-8 em dash must remain intact');
|
|
166
|
+
assert.match(canonicalHarnessSkill, /🚦 Harness Status/u, 'UTF-8 Harness Status marker must remain intact');
|
|
167
|
+
|
|
168
|
+
const readme = fs.readFileSync(path.join(ROOT, 'README.md'), 'utf8');
|
|
169
|
+
assert.match(readme, /npx\.cmd github:dyphn1\/Harness-everything install/);
|
|
170
|
+
assert.match(readme, /npx\.cmd github:dyphn1\/Harness-everything uninstall/);
|
|
171
|
+
assert.match(readme, /npx\.cmd github:dyphn1\/Harness-everything uninstall --local --skills -y/);
|
|
172
|
+
assert.match(readme, /npx\.cmd github:dyphn1\/Harness-everything uninstall --global/);
|
|
173
|
+
assert.match(readme, /Get-Content -Encoding UTF8 -Raw/);
|
|
174
|
+
assert.doesNotMatch(readme, /powershell -File scripts\/plugin-sync\.ps1/);
|
|
175
|
+
|
|
176
|
+
const troubleshootingDocs = fs.readFileSync(path.join(ROOT, 'docs', 'troubleshooting.md'), 'utf8');
|
|
177
|
+
for (const command of [
|
|
178
|
+
'install',
|
|
179
|
+
'install --global',
|
|
180
|
+
'uninstall',
|
|
181
|
+
'install --cursor',
|
|
182
|
+
'install --codex',
|
|
183
|
+
'plugin-sync --json'
|
|
184
|
+
]) {
|
|
185
|
+
assert.ok(
|
|
186
|
+
troubleshootingDocs.includes(`npx.cmd github:dyphn1/Harness-everything ${command}`),
|
|
187
|
+
`troubleshooting must include Windows PowerShell form for: ${command}`
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
155
191
|
const capabilityDocs = fs.readFileSync(path.join(ROOT, 'docs', 'platform-capabilities.md'), 'utf8');
|
|
192
|
+
assert.match(capabilityDocs, /npx\.cmd github:dyphn1\/Harness-everything plugin-sync/);
|
|
193
|
+
assert.match(capabilityDocs, /node scripts\/plugin-sync\.js/);
|
|
194
|
+
assert.doesNotMatch(capabilityDocs, /powershell -File scripts\/plugin-sync\.ps1/);
|
|
156
195
|
assert.match(capabilityDocs, /platform-compatibility\.json/);
|
|
157
196
|
assert.match(capabilityDocs, /Continue\.dev[\s\S]*`Unknown` for standalone `SKILL\.md` discovery/);
|
|
158
197
|
assert.match(capabilityDocs, /live-host evidence|Partial` live-host loading/i);
|
|
@@ -44,6 +44,52 @@ for (const rel of [
|
|
|
44
44
|
}
|
|
45
45
|
assert.ok(/section order MAY vary/i.test(skillStyle), 'skill-style explicitly permits readability-driven section ordering');
|
|
46
46
|
|
|
47
|
+
// #266: older callers must describe review/evaluation outcomes, not treat
|
|
48
|
+
// multi-agent-workspace as a generic subagent executor. Topology remains
|
|
49
|
+
// router-owned, and canonical skill files must stay in sync with packaged copies.
|
|
50
|
+
const contractPairs = [
|
|
51
|
+
['to-spec/SKILL.md', 'plugins/harness-everything/skills/to-spec/SKILL.md'],
|
|
52
|
+
['to-spec/references/process.md', 'plugins/harness-everything/skills/to-spec/references/process.md'],
|
|
53
|
+
['skill-creator/SKILL.md', 'plugins/harness-everything/skills/skill-creator/SKILL.md'],
|
|
54
|
+
['skill-creator/references/testing-workflow.md', 'plugins/harness-everything/skills/skill-creator/references/testing-workflow.md'],
|
|
55
|
+
['skill-creator/references/authoring-workflow.md', 'plugins/harness-everything/skills/skill-creator/references/authoring-workflow.md'],
|
|
56
|
+
];
|
|
57
|
+
for (const [canonical, packaged] of contractPairs) {
|
|
58
|
+
assert.strictEqual(read(packaged), read(canonical), canonical + ' packaged mirror must match');
|
|
59
|
+
}
|
|
60
|
+
const contractSurfaces = [
|
|
61
|
+
'to-spec/SKILL.md',
|
|
62
|
+
'to-spec/references/process.md',
|
|
63
|
+
'skill-creator/SKILL.md',
|
|
64
|
+
'skill-creator/references/testing-workflow.md',
|
|
65
|
+
'skill-creator/references/authoring-workflow.md',
|
|
66
|
+
'docs/workflows/skill-creator.md',
|
|
67
|
+
];
|
|
68
|
+
const staleExecutorClaims = [
|
|
69
|
+
/Design Audit \(\`multi-agent-workspace\`\)/i,
|
|
70
|
+
/recommend invoking \`multi-agent-workspace\`/i,
|
|
71
|
+
/A\/B-test via \`multi-agent-workspace\` subagents/i,
|
|
72
|
+
/multi-agent-workspace subagents/i,
|
|
73
|
+
/`multi-agent-workspace` skill for bounded sub-agent spawning/i,
|
|
74
|
+
/Use `multi-agent-workspace` to spawn/i,
|
|
75
|
+
/multi-agent entrypoint is `multi-agent-workspace`; it owns\s+bounded delegation/i,
|
|
76
|
+
];
|
|
77
|
+
for (const rel of contractSurfaces) {
|
|
78
|
+
const body = read(rel);
|
|
79
|
+
for (const pattern of staleExecutorClaims) {
|
|
80
|
+
assert.ok(!pattern.test(body), rel + ' must not treat multi-agent-workspace as a generic executor: ' + pattern);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
assert.ok(/independent Design Audit findings/i.test(read('to-spec/SKILL.md')), 'to-spec requires independent Design Audit evidence');
|
|
84
|
+
assert.ok(/Describe the required audit outcome, not an executor/i.test(read('to-spec/references/process.md')), 'to-spec process specifies audit outcome rather than executor');
|
|
85
|
+
assert.ok(/A\/B-test isolated control/i.test(read('skill-creator/SKILL.md')), 'skill-creator defines isolated A/B lanes');
|
|
86
|
+
assert.ok(/control \(without skill\) vs treatment \(with skill\)/i.test(read('skill-creator/SKILL.md')), 'skill-creator preserves control/treatment semantics');
|
|
87
|
+
assert.ok(/topology owned by the active router\/host/i.test(read('skill-creator/references/testing-workflow.md')), 'testing guide keeps evaluation topology router-owned');
|
|
88
|
+
assert.ok(/Execution topology belongs to the router\/host/i.test(read('skill-creator/references/authoring-workflow.md')), 'authoring guide keeps execution topology router-owned');
|
|
89
|
+
const workspaceContract = read('multi-agent-workspace/SKILL.md');
|
|
90
|
+
assert.ok(/router owns that decision/i.test(workspaceContract), 'multi-agent-workspace keeps router-owned topology');
|
|
91
|
+
assert.ok(/does not spawn workers/i.test(workspaceContract), 'multi-agent-workspace remains a topology/workspace consumer');
|
|
92
|
+
|
|
47
93
|
// #272: preserve one detailed checkpoint plus the invariant; remove duplicate
|
|
48
94
|
// restatements from later sections of the same router injection.
|
|
49
95
|
const kernel = path.join(ROOT, 'harness-everything/scripts/kernel-router.js');
|
|
@@ -69,10 +69,15 @@ The package is tested at the mechanism layer and remains subject to the host’s
|
|
|
69
69
|
The repository also ships a host-facing synchronization command for the native marketplace/plugin surfaces:
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
+
# POSIX shells / Git Bash
|
|
72
73
|
npx github:dyphn1/Harness-everything plugin-sync
|
|
73
74
|
# or, from a checkout:
|
|
74
75
|
./scripts/plugin-sync.sh
|
|
75
|
-
|
|
76
|
+
|
|
77
|
+
# Windows PowerShell
|
|
78
|
+
npx.cmd github:dyphn1/Harness-everything plugin-sync
|
|
79
|
+
# or, from a checkout:
|
|
80
|
+
node scripts/plugin-sync.js
|
|
76
81
|
```
|
|
77
82
|
|
|
78
83
|
The command detects Claude Code and Codex independently, ensures the Harness marketplace is configured, reads the installed-plugin state, then refreshes that marketplace before choosing the operation:
|
package/docs/troubleshooting.md
CHANGED
|
@@ -9,6 +9,8 @@ This guide helps you resolve common issues with Harness OS installation and usag
|
|
|
9
9
|
**Symptom:** `EACCES: permission denied` during installation
|
|
10
10
|
|
|
11
11
|
**Solution:**
|
|
12
|
+
|
|
13
|
+
POSIX shells / Git Bash:
|
|
12
14
|
```bash
|
|
13
15
|
# Option 1: Install without sudo (recommended)
|
|
14
16
|
npx github:dyphn1/Harness-everything install
|
|
@@ -22,6 +24,12 @@ npm config set prefix '~/.npm-global'
|
|
|
22
24
|
export PATH=~/.npm-global/bin:$PATH
|
|
23
25
|
```
|
|
24
26
|
|
|
27
|
+
Windows PowerShell:
|
|
28
|
+
```powershell
|
|
29
|
+
npx.cmd github:dyphn1/Harness-everything install
|
|
30
|
+
npx.cmd github:dyphn1/Harness-everything install --global
|
|
31
|
+
```
|
|
32
|
+
|
|
25
33
|
### Node.js Version Issues
|
|
26
34
|
|
|
27
35
|
**Symptom:** `SyntaxError` or unsupported engine errors
|
|
@@ -93,11 +101,17 @@ which node
|
|
|
93
101
|
# Check if hooks directory exists
|
|
94
102
|
ls -la hooks/scripts/
|
|
95
103
|
|
|
96
|
-
# Reinstall Harness
|
|
104
|
+
# Reinstall Harness (POSIX shells / Git Bash)
|
|
97
105
|
npx github:dyphn1/Harness-everything uninstall
|
|
98
106
|
npx github:dyphn1/Harness-everything install
|
|
99
107
|
```
|
|
100
108
|
|
|
109
|
+
Windows PowerShell:
|
|
110
|
+
```powershell
|
|
111
|
+
npx.cmd github:dyphn1/Harness-everything uninstall
|
|
112
|
+
npx.cmd github:dyphn1/Harness-everything install
|
|
113
|
+
```
|
|
114
|
+
|
|
101
115
|
### Circuit Breaker Tripping Too Often
|
|
102
116
|
|
|
103
117
|
**Symptom:** `RULE OF 3 CIRCUIT BREAKER TRIGGERED!` frequently
|
|
@@ -129,8 +143,13 @@ Do not expect this Claude Code state file merely because Harness skills or an in
|
|
|
129
143
|
```
|
|
130
144
|
2. If missing, reinstall with Cursor flag:
|
|
131
145
|
```bash
|
|
146
|
+
# POSIX shells / Git Bash
|
|
132
147
|
npx github:dyphn1/Harness-everything install --cursor
|
|
133
148
|
```
|
|
149
|
+
```powershell
|
|
150
|
+
# Windows PowerShell
|
|
151
|
+
npx.cmd github:dyphn1/Harness-everything install --cursor
|
|
152
|
+
```
|
|
134
153
|
3. Restart Cursor.
|
|
135
154
|
|
|
136
155
|
### Copilot Not Following Rules
|
|
@@ -156,8 +175,13 @@ Do not expect this Claude Code state file merely because Harness skills or an in
|
|
|
156
175
|
```
|
|
157
176
|
2. Reinstall the advisory Codex target if needed:
|
|
158
177
|
```bash
|
|
178
|
+
# POSIX shells / Git Bash
|
|
159
179
|
npx github:dyphn1/Harness-everything install --codex
|
|
160
180
|
```
|
|
181
|
+
```powershell
|
|
182
|
+
# Windows PowerShell
|
|
183
|
+
npx.cmd github:dyphn1/Harness-everything install --codex
|
|
184
|
+
```
|
|
161
185
|
3. Remember that this is the instruction-oriented installer path. It is different from the **local OpenAI plugin** package described below.
|
|
162
186
|
|
|
163
187
|
### Codex / local OpenAI plugin not appearing
|
|
@@ -192,9 +216,15 @@ The local plugin mechanically injects the session policy and invariant-first rou
|
|
|
192
216
|
For the native host install/update path, run:
|
|
193
217
|
|
|
194
218
|
```bash
|
|
219
|
+
# POSIX shells / Git Bash
|
|
195
220
|
npx github:dyphn1/Harness-everything plugin-sync --json
|
|
196
221
|
```
|
|
197
222
|
|
|
223
|
+
```powershell
|
|
224
|
+
# Windows PowerShell
|
|
225
|
+
npx.cmd github:dyphn1/Harness-everything plugin-sync --json
|
|
226
|
+
```
|
|
227
|
+
|
|
198
228
|
The command installs only when the plugin is absent. An installed Claude plugin uses the explicit Claude update command; an installed Codex plugin uses marketplace upgrade. If plugin state cannot be read, synchronization stops without re-adding or overwriting the plugin.
|
|
199
229
|
|
|
200
230
|
Host CLIs differ in which options and subcommands they implement, so the synchronizer degrades instead of failing:
|
|
@@ -13,7 +13,7 @@ graph TD
|
|
|
13
13
|
NewReq["Trigger: new skill, SKILL.md audit, or self-evolve packaging"] --> DupGrep["Grep registry for near-duplicates; when-to-fire sentence becomes description"]
|
|
14
14
|
DupGrep --> DraftContract["Draft Contract table first, then USE FOR and DO NOT USE FOR, then steps or flat reference"]
|
|
15
15
|
DraftContract --> PushRef["Push branch-only detail to references/"]
|
|
16
|
-
PushRef --> ABTest["A/B-test
|
|
16
|
+
PushRef --> ABTest["A/B-test in isolated control/treatment lanes; capture and read both transcripts"]
|
|
17
17
|
ABTest --> QualityGate["Quality Checklist gate before registering"]
|
|
18
18
|
QualityGate --> RegisterOut["Output: SKILL.md passing Quality Checklist; writes SKILL.md and updates registry or generated folder"]
|
|
19
19
|
```
|
|
@@ -38,7 +38,8 @@ graph LR
|
|
|
38
38
|
|
|
39
39
|
```mermaid
|
|
40
40
|
graph LR
|
|
41
|
-
CreatorSkill2["skill-creator / SKILL.md"] -->|A
|
|
41
|
+
CreatorSkill2["skill-creator / SKILL.md"] -->|Defines isolated A/B lanes and evidence| EvalLanes["Control: without candidate skill / Treatment: with candidate skill"]
|
|
42
|
+
EvalLanes --> RouterExec["Router/host selects execution topology"]
|
|
42
43
|
NonSkillDocs["Non-skill project docs"] -->|Use instead| RepoDocs["repo-docs or to-spec"]
|
|
43
44
|
ThirdParty["Third-party skill discovery"] -->|Use instead| FindSkills["find-skills"]
|
|
44
45
|
StyleOnly["Code style outside SKILL.md files"] -->|Out of scope| NotCreator["Not skill-creator"]
|
|
@@ -46,7 +47,7 @@ graph LR
|
|
|
46
47
|
|
|
47
48
|
## 3. Real-World Use Case
|
|
48
49
|
|
|
49
|
-
A team wants a new `deploy-preview` skill. The author greps the registry for near-duplicates, writes the when-to-fire sentence as the description, drafts the Contract table first with its enforcement gate, then `USE FOR` and `DO NOT USE FOR`, then the steps, pushing long detail to `references/`. They A/B-test
|
|
50
|
+
A team wants a new `deploy-preview` skill. The author greps the registry for near-duplicates, writes the when-to-fire sentence as the description, drafts the Contract table first with its enforcement gate, then `USE FOR` and `DO NOT USE FOR`, then the steps, pushing long detail to `references/`. They A/B-test in two isolated lanes (control without the candidate skill; treatment with it), capture and read both transcripts, let the router/host select the execution topology, run the Quality Checklist (`skill-creator/references/quality-checklist.md`), and only then register. A separate small tip discovered mid-session does not qualify as a dynamic skill and goes to `<workspace>/memories/repo/RULES.md`.
|
|
50
51
|
|
|
51
52
|
## 4. Verification Check
|
|
52
53
|
|
|
@@ -54,7 +55,7 @@ A team wants a new `deploy-preview` skill. The author greps the registry for nea
|
|
|
54
55
|
- [ ] Contract table drafted first to force the enforcement gate
|
|
55
56
|
- [ ] `USE FOR` and `DO NOT USE FOR` present before steps or flat reference
|
|
56
57
|
- [ ] Branch-only detail pushed to `references/` (e.g. `skill-creator/references/quality-checklist.md`)
|
|
57
|
-
- [ ] A/B-tested
|
|
58
|
+
- [ ] A/B-tested in isolated control/treatment lanes; both transcripts captured and read; execution topology left to the router/host
|
|
58
59
|
- [ ] Quality Checklist passed before registering, including `USE FOR` / `DO NOT USE FOR` consistency
|
|
59
60
|
- [ ] Output is a SKILL.md passing the Quality Checklist; `<skill>/SKILL.md` written and registry or generated folder updated
|
|
60
61
|
- [ ] Dynamic path gated by Quality Checklist first; location, frontmatter triggers, generated type, and draft status correct
|
|
@@ -4,35 +4,32 @@ description: "Route software/project work through Harness: classify tier/topolog
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.30.
|
|
7
|
+
version: 0.30.5
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Harness Everything
|
|
11
11
|
|
|
12
|
-
Kernel routing entry.
|
|
13
|
-
|
|
14
12
|
## USE FOR:
|
|
15
13
|
- Software/project triage, routing, re-routing, workflow selection.
|
|
16
|
-
- Work
|
|
14
|
+
- Work naming or matching another skill.
|
|
17
15
|
|
|
18
16
|
## DO NOT USE FOR:
|
|
19
17
|
- General Q&A or non-software writing.
|
|
20
18
|
|
|
21
19
|
## Invariants
|
|
22
|
-
1. **Route (MUST)** —
|
|
23
|
-
2. **Verify (MUST)** —
|
|
20
|
+
1. **Route (MUST)** — scope/tier plus selected/deferred topology.
|
|
21
|
+
2. **Verify (MUST)** — objective evidence via `verify-gate.js --json`.
|
|
24
22
|
3. **Zoom out (MUST)** — after 3 same-signature failures, use `zoom-out`.
|
|
25
|
-
4. **Resolve suggestions (MUST)** —
|
|
26
|
-
5. **Surface status (MUST)** — non-trivial work renders `### 🚦 Harness Status` with bold `Current`, `Read / Evidence`, `Next`;
|
|
27
|
-
6. **Keep agency** — required obligations are MUST; tactics MAY adapt. Numeric planning
|
|
23
|
+
4. **Resolve suggestions (MUST)** — evaluate each suggested `SKILL.md`; run applicable core contracts or retain a flow-grounded reason.
|
|
24
|
+
5. **Surface status (MUST)** — non-trivial work renders `### 🚦 Harness Status` with bold `Current`, `Read / Evidence`, `Next`; `Risk / Blocked` optional.
|
|
25
|
+
6. **Keep agency** — required obligations are MUST; tactics MAY adapt. Numeric planning MAY guide, never hard-stop; only Rule-of-3 reflection and explicit user/host permission boundaries may block.
|
|
26
|
+
7. **Windows PowerShell (MUST)** — `Get-Content -Encoding UTF8 -Raw`; npm `.cmd` shims (`npx.cmd`); never weaken `ExecutionPolicy`.
|
|
28
27
|
|
|
29
28
|
## Workflow
|
|
30
29
|
1. Reuse kernel output or run `node "<this-skill-dir>/scripts/kernel-router.js" "<prompt summary>"`.
|
|
31
30
|
2. Keep the routing checkpoint internal.
|
|
32
|
-
3. Resolve
|
|
33
|
-
4.
|
|
34
|
-
5. Tier-3/Fable broad mutation MUST
|
|
35
|
-
|
|
36
|
-
**Rule:** semantic MUST is not hard blocking; only Rule-of-3 reflection and explicit user/host permission boundaries may block.
|
|
31
|
+
3. Resolve suggestions as `use`, `not-applicable`, or `unresolved`.
|
|
32
|
+
4. Complete selected-topology invariants/stages/checks.
|
|
33
|
+
5. Tier-3/Fable broad mutation MUST use a linked worktree or explicit degraded fallback.
|
|
37
34
|
|
|
38
35
|
Deep dive: <this-skill-dir>/references/triage-and-tiers.md
|
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.30.
|
|
4
|
+
"version": "0.30.5",
|
|
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,35 +4,32 @@ description: "Route software/project work through Harness: classify tier/topolog
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.30.
|
|
7
|
+
version: 0.30.5
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Harness Everything
|
|
11
11
|
|
|
12
|
-
Kernel routing entry.
|
|
13
|
-
|
|
14
12
|
## USE FOR:
|
|
15
13
|
- Software/project triage, routing, re-routing, workflow selection.
|
|
16
|
-
- Work
|
|
14
|
+
- Work naming or matching another skill.
|
|
17
15
|
|
|
18
16
|
## DO NOT USE FOR:
|
|
19
17
|
- General Q&A or non-software writing.
|
|
20
18
|
|
|
21
19
|
## Invariants
|
|
22
|
-
1. **Route (MUST)** —
|
|
23
|
-
2. **Verify (MUST)** —
|
|
20
|
+
1. **Route (MUST)** — scope/tier plus selected/deferred topology.
|
|
21
|
+
2. **Verify (MUST)** — objective evidence via `verify-gate.js --json`.
|
|
24
22
|
3. **Zoom out (MUST)** — after 3 same-signature failures, use `zoom-out`.
|
|
25
|
-
4. **Resolve suggestions (MUST)** —
|
|
26
|
-
5. **Surface status (MUST)** — non-trivial work renders `### 🚦 Harness Status` with bold `Current`, `Read / Evidence`, `Next`;
|
|
27
|
-
6. **Keep agency** — required obligations are MUST; tactics MAY adapt. Numeric planning
|
|
23
|
+
4. **Resolve suggestions (MUST)** — evaluate each suggested `SKILL.md`; run applicable core contracts or retain a flow-grounded reason.
|
|
24
|
+
5. **Surface status (MUST)** — non-trivial work renders `### 🚦 Harness Status` with bold `Current`, `Read / Evidence`, `Next`; `Risk / Blocked` optional.
|
|
25
|
+
6. **Keep agency** — required obligations are MUST; tactics MAY adapt. Numeric planning MAY guide, never hard-stop; only Rule-of-3 reflection and explicit user/host permission boundaries may block.
|
|
26
|
+
7. **Windows PowerShell (MUST)** — `Get-Content -Encoding UTF8 -Raw`; npm `.cmd` shims (`npx.cmd`); never weaken `ExecutionPolicy`.
|
|
28
27
|
|
|
29
28
|
## Workflow
|
|
30
29
|
1. Reuse kernel output or run `node "<this-skill-dir>/scripts/kernel-router.js" "<prompt summary>"`.
|
|
31
30
|
2. Keep the routing checkpoint internal.
|
|
32
|
-
3. Resolve
|
|
33
|
-
4.
|
|
34
|
-
5. Tier-3/Fable broad mutation MUST
|
|
35
|
-
|
|
36
|
-
**Rule:** semantic MUST is not hard blocking; only Rule-of-3 reflection and explicit user/host permission boundaries may block.
|
|
31
|
+
3. Resolve suggestions as `use`, `not-applicable`, or `unresolved`.
|
|
32
|
+
4. Complete selected-topology invariants/stages/checks.
|
|
33
|
+
5. Tier-3/Fable broad mutation MUST use a linked worktree or explicit degraded fallback.
|
|
37
34
|
|
|
38
35
|
Deep dive: <this-skill-dir>/references/triage-and-tiers.md
|
|
@@ -4,7 +4,7 @@ description: Author, audit, and refactor SKILL.md files against one quality bar
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.30.4
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Skill Creator
|
|
@@ -31,8 +31,8 @@ metadata:
|
|
|
31
31
|
## Authoring Workflow
|
|
32
32
|
|
|
33
33
|
1. Grep the registry for near-duplicates; the when-to-fire sentence becomes the description.
|
|
34
|
-
2. Draft
|
|
35
|
-
3. A/B-test
|
|
34
|
+
2. Draft Contract table first, then `## USE FOR:`/`## DO NOT USE FOR:`, then steps; move branch-only detail to references/.
|
|
35
|
+
3. A/B-test isolated control (without skill) vs treatment (with skill); read both transcripts; router owns topology.
|
|
36
36
|
4. Run the Quality Checklist; register (static quotes the description; dynamic below).
|
|
37
37
|
|
|
38
38
|
## Dynamic Skill Generation Contract
|
|
@@ -5,10 +5,10 @@ the enforcement gate. Use short ordered steps for actions and move branch-only
|
|
|
5
5
|
detail into references or guides.
|
|
6
6
|
|
|
7
7
|
Before registering a skill, check the Harness registry for overlap, define one
|
|
8
|
-
human-readable frontmatter description, run realistic with/without
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
human-readable frontmatter description, run realistic isolated with/without
|
|
9
|
+
tests, and complete the Quality Checklist. Static skills belong in the root
|
|
10
|
+
catalog and need a routing eval; dynamic skills use the generated manifest flow
|
|
11
|
+
from `self-evolve`.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
Execution topology belongs to the router/host. `multi-agent-workspace` is only
|
|
14
|
+
consumed when the router already selected its workspace topology.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Testing Workflow
|
|
2
2
|
|
|
3
3
|
Read this when `skill-creator/SKILL.md` asks for realistic trigger tests or a
|
|
4
|
-
with/without comparison.
|
|
5
|
-
|
|
4
|
+
with/without comparison. Use isolated control/treatment lanes and keep execution
|
|
5
|
+
topology owned by the active router/host.
|
|
6
6
|
|
|
7
7
|
## With/without comparison
|
|
8
8
|
|
|
9
9
|
1. Write 2-3 realistic prompts with paths, framework names, and near-misses.
|
|
10
|
-
2.
|
|
11
|
-
|
|
10
|
+
2. Run the treatment with the draft skill loaded and the control without it in
|
|
11
|
+
isolated lanes selected by the active router/host.
|
|
12
12
|
3. Read both transcripts, not only final answers; record thrashing and missed
|
|
13
13
|
gates as evidence.
|
|
14
14
|
4. Construct one prompt that should trigger the skill's enforcement gate and
|
|
@@ -4,7 +4,7 @@ description: "Turn the conversation into a written spec — feature PRD, CLI/API
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.30.4
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# To Spec
|
|
@@ -26,7 +26,7 @@ Turns the conversation into one published spec artifact. No interviewing — `gr
|
|
|
26
26
|
2. Zero-trust context: cite `Evidence: <file:line> -> Finding: <meaning>`; blocking forks mean run `grill-me`/`grill-with-docs` first.
|
|
27
27
|
3. Mandatory outline preview (closest fit, 10-20 lines + target path); write only after user confirms.
|
|
28
28
|
4. Publish to `specs/<feature-slug>.md` (`Status: ready-for-agent`) or `reference/`, `adr/`.
|
|
29
|
-
5. Golden Flow: Feature
|
|
29
|
+
5. Golden Flow: Feature specs require independent Design Audit findings before `/to-tickets`; router owns topology.
|
|
30
30
|
|
|
31
31
|
Deep dive: <this-skill-dir>/references/process.md
|
|
32
32
|
|
|
@@ -100,4 +100,4 @@ No additional triage needed beyond the `issueDefinition` marker. A clearly-shape
|
|
|
100
100
|
|
|
101
101
|
## Golden Flow rationale
|
|
102
102
|
|
|
103
|
-
After publishing a `Feature spec` (Tier 3), do NOT immediately instruct the user to run `/to-tickets`. Instead,
|
|
103
|
+
After publishing a `Feature spec` (Tier 3), do NOT immediately instruct the user to run `/to-tickets`. Instead, require a Design Audit with at least two independent reviewer perspectives (for example, Security Auditor and Senior Architect) and preserve their findings as audit evidence. Describe the required audit outcome, not an executor: the Harness router/host selects the execution topology. `multi-agent-workspace` is valid only when the router contract has already selected `strategy=fable-multi-agent-workspace` with `workspace.required=true`; otherwise use the independent review lanes available on the active host/router. State explicitly: "This specification must pass a Design Audit before being broken down by `/to-tickets`. Any architectural flaws or over-engineering must be caught now, not during implementation."
|
package/sbom.cdx.json
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
"$schema": "https://cyclonedx.org/schema/bom-1.7.schema.json",
|
|
3
3
|
"bomFormat": "CycloneDX",
|
|
4
4
|
"specVersion": "1.7",
|
|
5
|
-
"serialNumber": "urn:uuid:
|
|
5
|
+
"serialNumber": "urn:uuid:681ee313-d384-5851-8f3a-9ec7af56fc28",
|
|
6
6
|
"version": 1,
|
|
7
7
|
"metadata": {
|
|
8
|
-
"timestamp": "2026-10-
|
|
8
|
+
"timestamp": "2026-10-06T03:46:28.900Z",
|
|
9
9
|
"tools": [
|
|
10
10
|
{
|
|
11
11
|
"vendor": "Harness Everything",
|
|
12
12
|
"name": "generate-sbom.js",
|
|
13
|
-
"version": "0.30.
|
|
13
|
+
"version": "0.30.5"
|
|
14
14
|
}
|
|
15
15
|
],
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "application",
|
|
18
|
-
"bom-ref": "pkg:npm/harness-everything@0.30.
|
|
18
|
+
"bom-ref": "pkg:npm/harness-everything@0.30.5",
|
|
19
19
|
"name": "harness-everything",
|
|
20
|
-
"version": "0.30.
|
|
21
|
-
"purl": "pkg:npm/harness-everything@0.30.
|
|
20
|
+
"version": "0.30.5",
|
|
21
|
+
"purl": "pkg:npm/harness-everything@0.30.5"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -1999,7 +1999,7 @@
|
|
|
1999
1999
|
]
|
|
2000
2000
|
},
|
|
2001
2001
|
{
|
|
2002
|
-
"ref": "pkg:npm/harness-everything@0.30.
|
|
2002
|
+
"ref": "pkg:npm/harness-everything@0.30.5",
|
|
2003
2003
|
"dependsOn": [
|
|
2004
2004
|
"pkg:npm/%40commitlint/cli@19.8.1",
|
|
2005
2005
|
"pkg:npm/%40commitlint/config-conventional@19.8.1",
|
package/skill-creator/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: Author, audit, and refactor SKILL.md files against one quality bar
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.30.4
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Skill Creator
|
|
@@ -31,8 +31,8 @@ metadata:
|
|
|
31
31
|
## Authoring Workflow
|
|
32
32
|
|
|
33
33
|
1. Grep the registry for near-duplicates; the when-to-fire sentence becomes the description.
|
|
34
|
-
2. Draft
|
|
35
|
-
3. A/B-test
|
|
34
|
+
2. Draft Contract table first, then `## USE FOR:`/`## DO NOT USE FOR:`, then steps; move branch-only detail to references/.
|
|
35
|
+
3. A/B-test isolated control (without skill) vs treatment (with skill); read both transcripts; router owns topology.
|
|
36
36
|
4. Run the Quality Checklist; register (static quotes the description; dynamic below).
|
|
37
37
|
|
|
38
38
|
## Dynamic Skill Generation Contract
|
|
@@ -5,10 +5,10 @@ the enforcement gate. Use short ordered steps for actions and move branch-only
|
|
|
5
5
|
detail into references or guides.
|
|
6
6
|
|
|
7
7
|
Before registering a skill, check the Harness registry for overlap, define one
|
|
8
|
-
human-readable frontmatter description, run realistic with/without
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
human-readable frontmatter description, run realistic isolated with/without
|
|
9
|
+
tests, and complete the Quality Checklist. Static skills belong in the root
|
|
10
|
+
catalog and need a routing eval; dynamic skills use the generated manifest flow
|
|
11
|
+
from `self-evolve`.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
Execution topology belongs to the router/host. `multi-agent-workspace` is only
|
|
14
|
+
consumed when the router already selected its workspace topology.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Testing Workflow
|
|
2
2
|
|
|
3
3
|
Read this when `skill-creator/SKILL.md` asks for realistic trigger tests or a
|
|
4
|
-
with/without comparison.
|
|
5
|
-
|
|
4
|
+
with/without comparison. Use isolated control/treatment lanes and keep execution
|
|
5
|
+
topology owned by the active router/host.
|
|
6
6
|
|
|
7
7
|
## With/without comparison
|
|
8
8
|
|
|
9
9
|
1. Write 2-3 realistic prompts with paths, framework names, and near-misses.
|
|
10
|
-
2.
|
|
11
|
-
|
|
10
|
+
2. Run the treatment with the draft skill loaded and the control without it in
|
|
11
|
+
isolated lanes selected by the active router/host.
|
|
12
12
|
3. Read both transcripts, not only final answers; record thrashing and missed
|
|
13
13
|
gates as evidence.
|
|
14
14
|
4. Construct one prompt that should trigger the skill's enforcement gate and
|
package/to-spec/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: "Turn the conversation into a written spec — feature PRD, CLI/API
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.30.4
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# To Spec
|
|
@@ -26,7 +26,7 @@ Turns the conversation into one published spec artifact. No interviewing — `gr
|
|
|
26
26
|
2. Zero-trust context: cite `Evidence: <file:line> -> Finding: <meaning>`; blocking forks mean run `grill-me`/`grill-with-docs` first.
|
|
27
27
|
3. Mandatory outline preview (closest fit, 10-20 lines + target path); write only after user confirms.
|
|
28
28
|
4. Publish to `specs/<feature-slug>.md` (`Status: ready-for-agent`) or `reference/`, `adr/`.
|
|
29
|
-
5. Golden Flow: Feature
|
|
29
|
+
5. Golden Flow: Feature specs require independent Design Audit findings before `/to-tickets`; router owns topology.
|
|
30
30
|
|
|
31
31
|
Deep dive: <this-skill-dir>/references/process.md
|
|
32
32
|
|
|
@@ -100,4 +100,4 @@ No additional triage needed beyond the `issueDefinition` marker. A clearly-shape
|
|
|
100
100
|
|
|
101
101
|
## Golden Flow rationale
|
|
102
102
|
|
|
103
|
-
After publishing a `Feature spec` (Tier 3), do NOT immediately instruct the user to run `/to-tickets`. Instead,
|
|
103
|
+
After publishing a `Feature spec` (Tier 3), do NOT immediately instruct the user to run `/to-tickets`. Instead, require a Design Audit with at least two independent reviewer perspectives (for example, Security Auditor and Senior Architect) and preserve their findings as audit evidence. Describe the required audit outcome, not an executor: the Harness router/host selects the execution topology. `multi-agent-workspace` is valid only when the router contract has already selected `strategy=fable-multi-agent-workspace` with `workspace.required=true`; otherwise use the independent review lanes available on the active host/router. State explicitly: "This specification must pass a Design Audit before being broken down by `/to-tickets`. Any architectural flaws or over-engineering must be caught now, not during implementation."
|