@cardor/agent-harness-kit 0.16.10 → 0.18.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/dist/agent-templates/builder.md +13 -11
- package/dist/agent-templates/explorer.md +6 -6
- package/dist/agent-templates/lead.md +5 -5
- package/dist/agent-templates/reviewer.md +8 -11
- package/dist/cli.js +234 -213
- package/dist/cli.js.map +1 -1
- package/package.json +2 -2
|
@@ -38,30 +38,32 @@ These three calls are **not optional**. The dashboard cannot display what you do
|
|
|
38
38
|
|
|
39
39
|
### 1. Log every tool call you make
|
|
40
40
|
|
|
41
|
-
After **each** tool invocation (Read, Edit, Write, Bash),
|
|
41
|
+
After **each** tool invocation (Read, Edit, Write, Bash), call **both**:
|
|
42
42
|
|
|
43
43
|
```
|
|
44
|
-
actions.
|
|
44
|
+
actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Examples:
|
|
48
|
-
- `Read
|
|
49
|
-
- `Bash
|
|
50
|
-
- `Edit
|
|
48
|
+
- `actions.record_tool(actionId, 'Read', 'src/auth/middleware.ts', 'understand existing JWT pattern')`
|
|
49
|
+
- `actions.record_tool(actionId, 'Bash', 'npm test --testPathPattern=auth', 'verify auth tests pass')`
|
|
50
|
+
- `actions.record_tool(actionId, 'Edit', 'src/auth/middleware.ts:45-78', 'add refresh token validation')`
|
|
51
51
|
|
|
52
52
|
### 2. Log every file you touch
|
|
53
53
|
|
|
54
|
-
After **each** file modification (Edit, Write),
|
|
54
|
+
After **each** file modification (Edit, Write), call:
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
actions.
|
|
57
|
+
actions.record_file(actionId, '<file-path>', '<operation>', '<what changed and why>')
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
Operations: `created` | `modified` | `deleted`
|
|
61
|
+
|
|
62
|
+
Example: `actions.record_file(actionId, 'src/auth/middleware.ts', 'modified', 'added refresh token expiry check in validateToken()')`
|
|
61
63
|
|
|
62
64
|
### 3. Do not complete your action without both logs being up to date
|
|
63
65
|
|
|
64
|
-
If you touched 5 files and made 12 tool calls, there must be 5 `
|
|
66
|
+
If you touched 5 files and made 12 tool calls, there must be 5 `actions.record_file` calls and 12 `actions.record_tool` calls before you call `actions.complete`.
|
|
65
67
|
|
|
66
68
|
---
|
|
67
69
|
|
|
@@ -125,8 +127,8 @@ actions.complete(actionId, 'Implementation done — N files modified, tests pass
|
|
|
125
127
|
|
|
126
128
|
- **Read the plan and analysis first.** Never implement cold.
|
|
127
129
|
- **Only write to `{{writablePaths}}`.** No exceptions.
|
|
128
|
-
- **Log every file you touch.**
|
|
129
|
-
- **Log every tool call.**
|
|
130
|
+
- **Log every file you touch.** Call `actions.record_file(actionId, path, operation, notes)` after each Edit/Write.
|
|
131
|
+
- **Log every tool call.** Call `actions.record_tool(actionId, toolName, args, summary)` after each Read, Edit, Write, Bash invocation.
|
|
130
132
|
- **Leave tests green.** If tests fail after your changes, fix them before completing.
|
|
131
133
|
- **Do not refactor beyond the task scope.** Implement what was asked, nothing more.
|
|
132
134
|
- **If blocked, say so.** Do not invent workarounds for unclear requirements.
|
|
@@ -37,18 +37,18 @@ These calls are **not optional**. The dashboard cannot display what you do not r
|
|
|
37
37
|
|
|
38
38
|
### Log every tool call you make
|
|
39
39
|
|
|
40
|
-
After **each** tool invocation (Read, Bash, grep, docs.search),
|
|
40
|
+
After **each** tool invocation (Read, Bash, grep, docs.search), call:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
|
-
actions.
|
|
43
|
+
actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
Examples:
|
|
47
|
-
- `Read
|
|
48
|
-
- `Bash
|
|
49
|
-
- `docs.search
|
|
47
|
+
- `actions.record_tool(actionId, 'Read', 'src/auth/middleware.ts', 'find existing JWT pattern')`
|
|
48
|
+
- `actions.record_tool(actionId, 'Bash', 'grep -r "refreshToken" src/', 'locate all refresh token usages')`
|
|
49
|
+
- `actions.record_tool(actionId, 'docs.search', 'authentication middleware', 'check project docs for auth guidance')`
|
|
50
50
|
|
|
51
|
-
**Every single tool call must be logged.** No silent reads. The
|
|
51
|
+
**Every single tool call must be logged.** No silent reads. The Tools dashboard is built entirely from these `actions.record_tool` calls.
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
@@ -32,16 +32,16 @@ These calls are **not optional**. The dashboard cannot display what you do not r
|
|
|
32
32
|
|
|
33
33
|
### Log every tool call you make
|
|
34
34
|
|
|
35
|
-
After **each** tool invocation (Bash, tasks.get, tasks.claim, actions.get),
|
|
35
|
+
After **each** tool invocation (Bash, tasks.get, tasks.claim, actions.get), call:
|
|
36
36
|
|
|
37
37
|
```
|
|
38
|
-
actions.
|
|
38
|
+
actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Examples:
|
|
42
|
-
- `Bash
|
|
43
|
-
- `tasks.get
|
|
44
|
-
- `actions.get
|
|
42
|
+
- `actions.record_tool(actionId, 'Bash', 'bash health.sh', 'verify codebase health before starting')`
|
|
43
|
+
- `actions.record_tool(actionId, 'tasks.get', 'pending', 'find next task to claim')`
|
|
44
|
+
- `actions.record_tool(actionId, 'actions.get', 'taskId=abc123', 'read action history to resume in-progress task')`
|
|
45
45
|
|
|
46
46
|
**Log every call.** This applies from the moment you have an `actionId` (after step 3 below).
|
|
47
47
|
|
|
@@ -32,28 +32,25 @@ These calls are **not optional**. The dashboard cannot display what you do not r
|
|
|
32
32
|
|
|
33
33
|
### 1. Log every tool call you make
|
|
34
34
|
|
|
35
|
-
After **each** tool invocation (Read, Bash),
|
|
35
|
+
After **each** tool invocation (Read, Bash), call:
|
|
36
36
|
|
|
37
37
|
```
|
|
38
|
-
actions.
|
|
38
|
+
actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Examples:
|
|
42
|
-
- `Read
|
|
43
|
-
- `Bash
|
|
42
|
+
- `actions.record_tool(actionId, 'Read', 'src/auth/middleware.ts', 'verify refresh token logic matches criterion 2')`
|
|
43
|
+
- `actions.record_tool(actionId, 'Bash', 'npm test --testPathPattern=auth', 'confirm all auth tests pass')`
|
|
44
44
|
|
|
45
45
|
### 2. Mark every acceptance criterion as you verify it
|
|
46
46
|
|
|
47
|
-
For **each** criterion
|
|
47
|
+
For **each** criterion, call this immediately after you evaluate it using its `id` from `tasks.get`:
|
|
48
48
|
|
|
49
49
|
```
|
|
50
|
-
tasks.
|
|
50
|
+
tasks.acceptance.update(criterionId)
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
- `false` = criterion is not met
|
|
55
|
-
|
|
56
|
-
If the task has 3 criteria, you must make exactly 3 `tasks.acceptance_update` calls — one per criterion. Skipping any of them leaves the dashboard showing criteria as unverified.
|
|
53
|
+
If the task has 3 criteria, you must make exactly 3 `tasks.acceptance.update` calls — one per criterion. Skipping any of them leaves the dashboard showing criteria as unverified.
|
|
57
54
|
|
|
58
55
|
---
|
|
59
56
|
|
|
@@ -124,7 +121,7 @@ Then notify lead so the builder can be re-assigned.
|
|
|
124
121
|
|
|
125
122
|
- **Run health.sh before approving.** No exceptions.
|
|
126
123
|
- **Check every acceptance criterion.** Not just the obvious ones.
|
|
127
|
-
- **Call `tasks.
|
|
124
|
+
- **Call `tasks.acceptance.update()` for each criterion.** Never skip this step.
|
|
128
125
|
- **Never self-approve partial work.** All criteria must be met, not most.
|
|
129
126
|
- **Be specific when blocking.** The builder must know exactly what to fix.
|
|
130
127
|
- **Do not fix issues yourself.** Your job is to verify, not to implement.
|