@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.
@@ -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), immediately call:
41
+ After **each** tool invocation (Read, Edit, Write, Bash), call **both**:
42
42
 
43
43
  ```
44
- actions.write(actionId, 'tools_used', '<ToolName>: <args-summary> why')
44
+ actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
45
45
  ```
46
46
 
47
47
  Examples:
48
- - `Read: src/auth/middleware.ts understand existing JWT pattern`
49
- - `Bash: npm test -- --testPathPattern=auth verify auth tests pass`
50
- - `Edit: src/auth/middleware.ts:45-78 add refresh token validation`
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), immediately call:
54
+ After **each** file modification (Edit, Write), call:
55
55
 
56
56
  ```
57
- actions.write(actionId, 'files_modified', '<file-path> what changed and why')
57
+ actions.record_file(actionId, '<file-path>', '<operation>', '<what changed and why>')
58
58
  ```
59
59
 
60
- Example: `src/auth/middleware.ts added refresh token expiry check in validateToken()`
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 `files_modified` entries and 12 `tools_used` entries before you call `actions.complete`.
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.** No silent modifications.
129
- - **Log every tool call.** Use `actions.write(actionId, 'tools_used', ...)` after each Read, Edit, Write, Bash invocation.
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), immediately call:
40
+ After **each** tool invocation (Read, Bash, grep, docs.search), call:
41
41
 
42
42
  ```
43
- actions.write(actionId, 'tools_used', '<ToolName>: <args-summary> why')
43
+ actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
44
44
  ```
45
45
 
46
46
  Examples:
47
- - `Read: src/auth/middleware.ts find existing JWT pattern`
48
- - `Bash: grep -r "refreshToken" src/ locate all refresh token usages`
49
- - `docs.search: "authentication middleware" check project docs for auth guidance`
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 audit trail in the dashboard is built entirely from these entries.
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), immediately call:
35
+ After **each** tool invocation (Bash, tasks.get, tasks.claim, actions.get), call:
36
36
 
37
37
  ```
38
- actions.write(actionId, 'tools_used', '<ToolName>: <args-summary> why')
38
+ actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
39
39
  ```
40
40
 
41
41
  Examples:
42
- - `Bash: bash health.sh verify codebase health before starting`
43
- - `tasks.get: pending find next task to claim`
44
- - `actions.get: taskId=abc123 read action history to resume in-progress task`
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), immediately call:
35
+ After **each** tool invocation (Read, Bash), call:
36
36
 
37
37
  ```
38
- actions.write(actionId, 'tools_used', '<ToolName>: <args-summary> why')
38
+ actions.record_tool(actionId, '<ToolName>', '<args-summary>', '<why>')
39
39
  ```
40
40
 
41
41
  Examples:
42
- - `Read: src/auth/middleware.ts verify refresh token logic matches criterion 2`
43
- - `Bash: npm test -- --testPathPattern=auth confirm all auth tests pass`
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 (0-based index), call this immediately after you evaluate it:
47
+ For **each** criterion, call this immediately after you evaluate it using its `id` from `tasks.get`:
48
48
 
49
49
  ```
50
- tasks.acceptance_update(taskId, criterionIndex, true|false)
50
+ tasks.acceptance.update(criterionId)
51
51
  ```
52
52
 
53
- - `true` = criterion is fully met
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.acceptance_update()` for each criterion.** Both met and unmet — never skip this step.
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.