@spences10/pi-harness 0.0.9 → 0.0.11
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/README.md +20 -8
- package/dist/extension.js +22 -3
- package/dist/extension.js.map +1 -1
- package/dist/prompt.d.ts +1 -1
- package/dist/prompt.js +1 -1
- package/dist/prompt.js.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/package.json +2 -2
- package/skills/create-harness/SKILL.md +24 -7
- package/skills/execute-harness/SKILL.md +5 -4
package/README.md
CHANGED
|
@@ -91,6 +91,16 @@ pi -e ./packages/pi-harness
|
|
|
91
91
|
The create/run/review commands prompt the model to use the bundled
|
|
92
92
|
skills. The tools provide the actual runtime and enforcement layer.
|
|
93
93
|
|
|
94
|
+
Use a harness when a task benefits from an enforceable execution
|
|
95
|
+
contract because it has material risk, unresolved scope, destructive
|
|
96
|
+
effects, or complex coordination. Use the normal direct workflow for
|
|
97
|
+
bounded, low-risk changes that standard validation can verify, such as
|
|
98
|
+
documentation and copy edits, focused single-file fixes, configuration
|
|
99
|
+
or metadata updates, test expectation changes, formatting, and
|
|
100
|
+
reviewed commit or push follow-ups. Broad uncertain refactors,
|
|
101
|
+
migrations, deployments, risky releases, external side effects, and
|
|
102
|
+
explicit user requests are good harness candidates.
|
|
103
|
+
|
|
94
104
|
`harness.json` contains two deliberately different layers:
|
|
95
105
|
|
|
96
106
|
- `policy`: runtime-owned workspace and verifier protections such as
|
|
@@ -109,14 +119,16 @@ shows a compact footer/status indicator; use `/harness status [dir]`
|
|
|
109
119
|
or `harness_read` for the full contract, task, validation, and outcome
|
|
110
120
|
details.
|
|
111
121
|
|
|
112
|
-
A terminal `completed` or `failed` status seals the run and
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
complete.
|
|
116
|
-
harness
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
122
|
+
A terminal `completed` or `failed` status seals the run and keeps
|
|
123
|
+
enforcement active for the remainder of the current turn, so an
|
|
124
|
+
executor cannot escape the outer policy by declaring its own work
|
|
125
|
+
complete. The extension automatically deactivates that terminal
|
|
126
|
+
harness on the next direct user turn or when the session starts again.
|
|
127
|
+
Extension-injected messages do not trigger cleanup. Use
|
|
128
|
+
`/harness clear` only to abandon a non-terminal run. Clearing or
|
|
129
|
+
deleting a harness affects only its `/tmp` control state; repository
|
|
130
|
+
changes remain in the working tree. Do not create a new harness merely
|
|
131
|
+
to commit or push already-reviewed work. A risky release, deployment,
|
|
120
132
|
migration, or destructive operation can still justify a dedicated
|
|
121
133
|
harness when explicitly requested or warranted by its actual risk.
|
|
122
134
|
|
package/dist/extension.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { check_command_allowed, check_path_allowed, } from './enforcement/policy.js';
|
|
3
3
|
import { HARNESS_SYSTEM_PROMPT } from './prompt.js';
|
|
4
|
-
import { harness_paths, read_contract } from './runtime/files.js';
|
|
4
|
+
import { harness_paths, read_contract, read_status, } from './runtime/files.js';
|
|
5
5
|
import { active_harness_context, amend_harness_runtime, create_harness_runtime, format_harness_status_line, format_harness_summary, update_harness_runtime, } from './runtime/index.js';
|
|
6
6
|
import { HARNESS_CUSTOM_TYPE, harness_amend_params_schema, harness_create_params_schema, harness_read_params_schema, harness_update_params_schema, } from './schema.js';
|
|
7
7
|
function persist_active_harness(pi, harness_dir) {
|
|
@@ -37,6 +37,14 @@ export function should_inject_harness_prompt(event) {
|
|
|
37
37
|
const selected_tools = event.systemPromptOptions?.selectedTools;
|
|
38
38
|
return !selected_tools || selected_tools.includes('bash');
|
|
39
39
|
}
|
|
40
|
+
function is_terminal_harness(harness_dir) {
|
|
41
|
+
if (!harness_dir ||
|
|
42
|
+
!existsSync(harness_paths(harness_dir).status)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const status = read_status(harness_dir).status;
|
|
46
|
+
return status === 'completed' || status === 'failed';
|
|
47
|
+
}
|
|
40
48
|
export default async function harness(pi) {
|
|
41
49
|
let active_harness_dir;
|
|
42
50
|
function set_active_harness(harness_dir, ctx) {
|
|
@@ -104,8 +112,9 @@ export default async function harness(pi) {
|
|
|
104
112
|
description: 'Create an ephemeral /tmp my-pi task harness with machine-readable contract, prompts, scripts, logs, and status.',
|
|
105
113
|
promptSnippet: 'Create /tmp task harnesses for constrained agent execution',
|
|
106
114
|
promptGuidelines: [
|
|
107
|
-
'Use harness_create
|
|
108
|
-
'
|
|
115
|
+
'Use harness_create when a task benefits from an enforceable execution contract because it has material risk, unresolved scope, destructive effects, or complex coordination.',
|
|
116
|
+
'Use the normal direct workflow for bounded, low-risk changes covered by standard validation, including routine docs or copy edits, focused single-file fixes, config or metadata updates, test expectation changes, formatting, and reviewed commit or push follow-ups.',
|
|
117
|
+
'Broad uncertain refactors, migrations, deployments, risky releases, external side effects, and explicit user requests are good harness candidates.',
|
|
109
118
|
'Treat harness.json as the execution contract and record progress with harness_update.',
|
|
110
119
|
],
|
|
111
120
|
parameters: harness_create_params_schema,
|
|
@@ -153,8 +162,18 @@ export default async function harness(pi) {
|
|
|
153
162
|
});
|
|
154
163
|
pi.on('session_start', async (_event, ctx) => {
|
|
155
164
|
active_harness_dir = restore_active_harness(ctx);
|
|
165
|
+
if (is_terminal_harness(active_harness_dir)) {
|
|
166
|
+
set_active_harness(undefined, ctx);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
156
169
|
update_harness_ui(ctx, active_harness_dir);
|
|
157
170
|
});
|
|
171
|
+
pi.on('input', async (event, ctx) => {
|
|
172
|
+
if (event.source !== 'extension' &&
|
|
173
|
+
is_terminal_harness(active_harness_dir)) {
|
|
174
|
+
set_active_harness(undefined, ctx);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
158
177
|
pi.on('before_agent_start', async (event) => {
|
|
159
178
|
let system_prompt = event.systemPrompt;
|
|
160
179
|
if (should_inject_harness_prompt(event)) {
|
package/dist/extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACN,qBAAqB,EACrB,kBAAkB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const HARNESS_SYSTEM_PROMPT = "## my-pi harness workflow\n\
|
|
1
|
+
export declare const HARNESS_SYSTEM_PROMPT = "## my-pi harness workflow\n\nUse a harness when a task benefits from an enforceable execution contract because it has material risk, unresolved scope, destructive effects, or complex coordination. Use the normal direct workflow for bounded, low-risk changes that standard validation can verify, such as documentation or copy edits, focused single-file fixes, configuration or metadata updates, test expectation changes, formatting, and reviewed commit or push follow-ups. Broad uncertain refactors, migrations, deployments, risky releases, external side effects, and explicit user requests are good harness candidates. A harness is an ephemeral /tmp runtime with harness.json, SYSTEM.md, TASK.md, status.json, validation scripts, logs, and enforcement rules; it is control state, not a worktree and does not own repository changes. Its outer policy is runtime-owned; its versioned inner scaffold is an amendable execution plan subordinate to system, developer, and current user instructions. Use the bundled create-harness skill plus harness_create to build it, harness_amend when legitimate scope or strategy changes, then execute until validation and review are complete. Completion seals the run and its evidence for the current turn; do not create a replacement harness to escape it. A terminal harness automatically deactivates on the next direct user turn or session startup. Use /harness clear only to abandon a non-terminal run.";
|
package/dist/prompt.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export const HARNESS_SYSTEM_PROMPT = `## my-pi harness workflow
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Use a harness when a task benefits from an enforceable execution contract because it has material risk, unresolved scope, destructive effects, or complex coordination. Use the normal direct workflow for bounded, low-risk changes that standard validation can verify, such as documentation or copy edits, focused single-file fixes, configuration or metadata updates, test expectation changes, formatting, and reviewed commit or push follow-ups. Broad uncertain refactors, migrations, deployments, risky releases, external side effects, and explicit user requests are good harness candidates. A harness is an ephemeral /tmp runtime with harness.json, SYSTEM.md, TASK.md, status.json, validation scripts, logs, and enforcement rules; it is control state, not a worktree and does not own repository changes. Its outer policy is runtime-owned; its versioned inner scaffold is an amendable execution plan subordinate to system, developer, and current user instructions. Use the bundled create-harness skill plus harness_create to build it, harness_amend when legitimate scope or strategy changes, then execute until validation and review are complete. Completion seals the run and its evidence for the current turn; do not create a replacement harness to escape it. A terminal harness automatically deactivates on the next direct user turn or session startup. Use /harness clear only to abandon a non-terminal run.`;
|
|
4
4
|
//# sourceMappingURL=prompt.js.map
|
package/dist/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;;g4CAE21C,CAAC"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -222,7 +222,7 @@ export function active_harness_context(harness_dir) {
|
|
|
222
222
|
const contract = read_contract(harness_dir);
|
|
223
223
|
const status = read_status(harness_dir);
|
|
224
224
|
const terminal_guidance = status.status === 'completed' || status.status === 'failed'
|
|
225
|
-
? '\n\nThis run is sealed
|
|
225
|
+
? '\n\nThis run is sealed for the remainder of the current turn so the executor cannot escape policy by self-reporting completion. Do not create another harness merely to commit or push its already-reviewed changes. The extension will deactivate this terminal harness on the next direct user turn or session startup.'
|
|
226
226
|
: '';
|
|
227
227
|
return `## Active my-pi harness\n\nHarness directory: \`${harness_dir}\`\nHarness id: \`${contract.id}\`\nStatus: \`${status.status}\`\nProject cwd: \`${contract.policy.cwd}\`\nScaffold version: \`${contract.scaffold.version}\`\n\nThe outer policy is runtime-enforced. The inner scaffold is an amendable execution plan subordinate to system, developer, and current user instructions. If the user changes scope or evidence contradicts the scaffold, use \`harness_amend\`; a harness block is not a platform-policy refusal. Read \`${paths.system}\`, \`${paths.task}\`, and \`${paths.contract}\` before work. Use \`harness_update\` for progress and evidence. Run \`${paths.validate}\` and \`${paths.review}\` before completion.${terminal_guidance}`;
|
|
228
228
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spences10/pi-harness",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"description": "Ephemeral task harness runtime for my-pi agent workflows",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
39
|
+
"@earendil-works/pi-coding-agent": "0.84.2",
|
|
40
40
|
"@types/node": "^25.8.0",
|
|
41
41
|
"typebox": "^1.1.38",
|
|
42
42
|
"typescript": "^7.0.0",
|
|
@@ -13,6 +13,27 @@ must live in `/tmp` and be created with the `harness_create` tool
|
|
|
13
13
|
after context gathering. It is control state, not a worktree, and
|
|
14
14
|
repository changes do not live inside it.
|
|
15
15
|
|
|
16
|
+
## Use threshold
|
|
17
|
+
|
|
18
|
+
Use a harness when a task benefits from an enforceable execution
|
|
19
|
+
contract because it has material risk, unresolved scope, destructive
|
|
20
|
+
effects, or complex coordination. Good candidates include broad
|
|
21
|
+
uncertain refactors, migrations, deployments, risky releases, external
|
|
22
|
+
side effects, and explicit user requests.
|
|
23
|
+
|
|
24
|
+
Use the normal direct workflow for bounded, low-risk work that
|
|
25
|
+
standard validation can verify, including:
|
|
26
|
+
|
|
27
|
+
- routine documentation or copy edits
|
|
28
|
+
- focused single-file fixes
|
|
29
|
+
- configuration or metadata updates
|
|
30
|
+
- test expectation changes
|
|
31
|
+
- formatting and other low-risk maintenance
|
|
32
|
+
- reviewed commit or push follow-ups
|
|
33
|
+
|
|
34
|
+
Before creation, identify the contract benefit and the risk, scope, or
|
|
35
|
+
coordination need it controls.
|
|
36
|
+
|
|
16
37
|
## Workflow
|
|
17
38
|
|
|
18
39
|
1. Recover context with read-only tools first: docs, package READMEs,
|
|
@@ -41,14 +62,10 @@ repository changes do not live inside it.
|
|
|
41
62
|
- The scaffold is subordinate to system, developer, and current user
|
|
42
63
|
instructions.
|
|
43
64
|
|
|
44
|
-
- Do not create a harness solely to commit or push work the user has
|
|
45
|
-
already reviewed. Those are follow-up operations, not new coding
|
|
46
|
-
tasks. A release, deployment, migration, or destructive operation
|
|
47
|
-
may warrant a harness when explicitly requested or justified by its
|
|
48
|
-
actual risk.
|
|
49
65
|
- Never create a replacement harness merely to escape the guard of a
|
|
50
|
-
completed run. Completion seals its evidence
|
|
51
|
-
|
|
66
|
+
completed run. Completion seals its evidence for the current turn;
|
|
67
|
+
the extension deactivates it on the next direct user turn or session
|
|
68
|
+
startup.
|
|
52
69
|
- Keep `allowed_paths` narrow. Use `.` only when the task genuinely
|
|
53
70
|
spans the repo.
|
|
54
71
|
- Set `allow_test_changes: false` unless changing tests is explicitly
|
|
@@ -48,8 +48,9 @@ user instructions.
|
|
|
48
48
|
team status, and risks.
|
|
49
49
|
12. Mark `completed` only when validation passes and no escalation
|
|
50
50
|
rule applies; otherwise mark `failed` with evidence. A terminal
|
|
51
|
-
status seals the run and its
|
|
52
|
-
|
|
51
|
+
status seals the run and keeps its guard active for the remainder
|
|
52
|
+
of the current turn. The extension deactivates it on the next
|
|
53
|
+
direct user turn or session startup.
|
|
53
54
|
|
|
54
55
|
## Rules
|
|
55
56
|
|
|
@@ -57,8 +58,8 @@ user instructions.
|
|
|
57
58
|
scaffold without first recording an authorized amendment.
|
|
58
59
|
- Do not create a replacement harness merely to commit or push
|
|
59
60
|
already-reviewed changes or to escape a completed run's guard. The
|
|
60
|
-
harness is control state, not a worktree.
|
|
61
|
-
|
|
61
|
+
harness is control state, not a worktree. Use `/harness clear` only
|
|
62
|
+
to abandon a non-terminal run.
|
|
62
63
|
- Do not weaken tests, fake outputs, or bypass validation.
|
|
63
64
|
- An enforcement block is a harness mismatch, not a platform-policy
|
|
64
65
|
refusal. Amend the scaffold when authorized; otherwise ask the user.
|