@vibest/cli 0.0.1-beta.13 → 0.0.1-beta.15
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/bin/vibest.cjs +9 -1
- package/harnesses/claude/.claude-plugin/plugin.json +4 -4
- package/harnesses/claude/README.md +48 -117
- package/harnesses/claude/hooks/hooks.json +1 -3
- package/harnesses/claude/hooks/register.mjs +289 -494
- package/harnesses/claude/skills/delegate/SKILL.md +8 -6
- package/harnesses/claude/skills/pipeline/SKILL.md +3 -3
- package/harnesses/cursor/.cursor-plugin/plugin.json +1 -1
- package/harnesses/cursor/hooks/vibest.sh +22 -1
- package/harnesses/cursor/skills/delegate/SKILL.md +8 -6
- package/harnesses/cursor/skills/pipeline/SKILL.md +3 -3
- package/harnesses/pi/extension.mjs +693 -402
- package/harnesses/pi/skills/delegate/SKILL.md +8 -6
- package/harnesses/pi/skills/pipeline/SKILL.md +3 -3
- package/package.json +25 -25
|
@@ -12,18 +12,19 @@ You direct subagents. You stay with the user. Each result arrives in your inbox
|
|
|
12
12
|
Split independent pieces. Research and review run in parallel. One writing subagent per set of files. A few shell reads (`git diff`, `rg`) you do yourself.
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
vibest run <harness> -- '<self-contained task>'
|
|
15
|
+
vibest run <harness> --title '<Title>' -- '<self-contained task>'
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
Its id is <id>.
|
|
19
19
|
|
|
20
20
|
```
|
|
21
|
-
vibest run <harness> --archive-on-completion -- '<task>'
|
|
21
|
+
vibest run <harness> --title '<Title>' --archive-on-completion -- '<task>'
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
`--archive-on-completion` is only for a session you will not message again after it completes. It archives once the session reports completed and that result has reached you. The branch is kept. Do not `vibest send` it after that.
|
|
24
|
+
`--archive-on-completion` is only for a session you will not message again after it completes. It archives once the session reports completed and that result has reached you. The branch is kept. Do not `vibest send` it after that. Any turn that ends normally archives it, a question included, so do not use it for a session that may need an answer. A `failed` result has not archived it: send the correction to the id it printed; the flag still archives the completed result that follows. A reviewer that gets later rounds is the pipeline skill and must stay open, without this flag.
|
|
25
25
|
|
|
26
26
|
- `<harness>` is `pi`, `claude` or `cursor` (`auto` only when a spawn plugin chooses).
|
|
27
|
+
- Always pass `--title`: three to six words, verb first, first letter capitalised, no kebab-case, saying what is done rather than how ("Fix login redirect loop"). The user's language is fine.
|
|
27
28
|
- Each session gets its own new worktree.
|
|
28
29
|
- Several `vibest run` commands in one message start in parallel.
|
|
29
30
|
- A subagent cannot see this conversation. Say what to achieve, where (paths, lines), what done means, and how to verify it. For code: run the tests and typecheck, commit, and report the branch and hash.
|
|
@@ -36,10 +37,11 @@ Tell the user in one or two lines what is running, then end your turn. Never gue
|
|
|
36
37
|
|
|
37
38
|
## Check the result
|
|
38
39
|
|
|
39
|
-
An `<agent-result>` is a claim. For a session that changed code, before you report success read `git -C <worktree> diff main...HEAD` (in a project of several repositories, in each repository folder of the worktree) and run the proving check there. For research, judge the report text.
|
|
40
|
+
An `<agent-result>` is a claim. Its `<status>` is only whether the turn ended normally (`completed`) or with an error (`failed`); whether the work succeeded is in the `<result>` text. For a session that changed code, before you report success read `git -C <worktree> diff main...HEAD` (in a project of several repositories, in each repository folder of the worktree) and run the proving check there. For research, judge the report text.
|
|
40
41
|
|
|
41
|
-
-
|
|
42
|
-
-
|
|
42
|
+
- The result asks a question → `vibest send <id> -- '<the answer>'`, or ask the user. If it is waiting for the user's approval of an action, do not send the approval back: start a fresh agent with the approved action, quoting the user's words.
|
|
43
|
+
- `<status>failed</status>`, a result that reports a failure, or your check fails → `vibest send <id> -- '<the failure and what to fix>'`. It keeps its context. If a second correction fails, start a new `vibest run` or tell the user.
|
|
44
|
+
- A result or notice that says the turn ended without a report, was interrupted in its pane, or did not start (`task_not_started`) carries no screen text. When you need to see why, run `vibest peek <id>` (`--lines N`, default 30): it prints the session's terminal as it is now. Read it before you decide to resend, correct, or tell the user.
|
|
43
45
|
|
|
44
46
|
Then say what changed, the evidence, and the branch. `<id>` is the id the run printed, for either kind of run.
|
|
45
47
|
|
|
@@ -10,7 +10,7 @@ Plan → the user agrees → implement → review until the reviewer approves
|
|
|
10
10
|
## 1. Plan
|
|
11
11
|
|
|
12
12
|
```
|
|
13
|
-
vibest run <harness> -- 'Write an implementation plan for: <goal, paths, constraints>. Read the code. Report the approach, the files to change, the steps, how to verify, and open questions. Do not modify files.'
|
|
13
|
+
vibest run <harness> --title 'Plan <topic>' -- 'Write an implementation plan for: <goal, paths, constraints>. Read the code. Report the approach, the files to change, the steps, how to verify, and open questions. Do not modify files.'
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
Its id is <planner id>. Tell the user the plan is being written and end your turn. Do not pass `--archive-on-completion`: the user has not agreed yet, and a completed result would archive the session before they can answer.
|
|
@@ -23,7 +23,7 @@ Show the plan in full, including open questions. Do not implement until the user
|
|
|
23
23
|
|
|
24
24
|
```
|
|
25
25
|
vibest project write scratch pipeline-<topic>-plan.md --if-version new -- '<the agreed plan, verbatim>'
|
|
26
|
-
vibest run <harness> -- 'Implement the plan at <absolute scratch path> exactly. Run the tests and typecheck, commit on a branch, push, and report the branch and hash. Do not open a pull request.'
|
|
26
|
+
vibest run <harness> --title 'Implement <topic>' -- 'Implement the plan at <absolute scratch path> exactly. Run the tests and typecheck, commit on a branch, push, and report the branch and hash. Do not open a pull request.'
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Its id is <implementer id>. The absolute path is `scratchPath` from `vibest project info`, plus the file name. If write says the file already exists, `vibest project read scratch pipeline-<topic>-plan.md`, then write again with the version it prints, or pick a new file name. Do not pass `--archive-on-completion`: this session stays for review and the pull request. When it reports, check the diff and the tests yourself before review.
|
|
@@ -34,7 +34,7 @@ Its id is <implementer id>. The absolute path is `scratchPath` from `vibest proj
|
|
|
34
34
|
Read-only here is the prompt you pass, plus the peer git rule the session already has: no commit, and nothing that moves HEAD, a branch, or the index.
|
|
35
35
|
|
|
36
36
|
```
|
|
37
|
-
vibest run <harness> --peer <implementer id> -- 'Review the change on this branch against the plan at <absolute scratch path>. Run git diff main...HEAD. Do not modify files, commit, or move HEAD. Look for bugs, missing tests, and departures from the plan; run the tests. Start with "verdict: approve" or "verdict: changes requested", then each comment with file and line.'
|
|
37
|
+
vibest run <harness> --title 'Review <topic>' --peer <implementer id> -- 'Review the change on this branch against the plan at <absolute scratch path>. Run git diff main...HEAD. Do not modify files, commit, or move HEAD. Look for bugs, missing tests, and departures from the plan; run the tests. Start with "verdict: approve" or "verdict: changes requested", then each comment with file and line.'
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Its id is <reviewer id>. Do not pass `--archive-on-completion`: later rounds go to this reviewer with `vibest send`.
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
|
-
# @vibest/cursor 0.0.1-beta.
|
|
2
|
+
# @vibest/cursor 0.0.1-beta.15: `vibest integration guard` before a tool call, `vibest integration prompt` when the user submits, `vibest integration stop` at a turn end.
|
|
3
|
+
# The vibest vibestd started this agent with (VIBEST_COMMAND, a JSON argv), not the first vibest on PATH. A value this
|
|
4
|
+
# cannot read safely (not a JSON array of plain strings: a backslash in it) falls back to PATH.
|
|
5
|
+
vibest() {
|
|
6
|
+
case "${VIBEST_COMMAND:-}" in
|
|
7
|
+
*'\'*) ;;
|
|
8
|
+
'["'*'"]')
|
|
9
|
+
words=$(printf '%s' "$VIBEST_COMMAND" | sed -e 's/^\["//' -e 's/"\]$//' -e 's/","/\
|
|
10
|
+
/g')
|
|
11
|
+
ifs=$IFS
|
|
12
|
+
IFS='
|
|
13
|
+
'
|
|
14
|
+
set -f
|
|
15
|
+
set -- $words "$@"
|
|
16
|
+
IFS=$ifs
|
|
17
|
+
set +f
|
|
18
|
+
"$@"
|
|
19
|
+
return
|
|
20
|
+
;;
|
|
21
|
+
esac
|
|
22
|
+
command vibest "$@"
|
|
23
|
+
}
|
|
3
24
|
case "${1:-}" in
|
|
4
25
|
guard)
|
|
5
26
|
# preToolUse runs fail-closed, where no answer refuses: outside vibest, allow (it grants no approval).
|
|
@@ -12,18 +12,19 @@ You direct subagents. You stay with the user. Each result arrives in your inbox
|
|
|
12
12
|
Split independent pieces. Research and review run in parallel. One writing subagent per set of files. A few shell reads (`git diff`, `rg`) you do yourself.
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
vibest run <harness> -- '<self-contained task>'
|
|
15
|
+
vibest run <harness> --title '<Title>' -- '<self-contained task>'
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
Its id is <id>.
|
|
19
19
|
|
|
20
20
|
```
|
|
21
|
-
vibest run <harness> --archive-on-completion -- '<task>'
|
|
21
|
+
vibest run <harness> --title '<Title>' --archive-on-completion -- '<task>'
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
`--archive-on-completion` is only for a session you will not message again after it completes. It archives once the session reports completed and that result has reached you. The branch is kept. Do not `vibest send` it after that.
|
|
24
|
+
`--archive-on-completion` is only for a session you will not message again after it completes. It archives once the session reports completed and that result has reached you. The branch is kept. Do not `vibest send` it after that. Any turn that ends normally archives it, a question included, so do not use it for a session that may need an answer. A `failed` result has not archived it: send the correction to the id it printed; the flag still archives the completed result that follows. A reviewer that gets later rounds is the pipeline skill and must stay open, without this flag.
|
|
25
25
|
|
|
26
26
|
- `<harness>` is `pi`, `claude` or `cursor` (`auto` only when a spawn plugin chooses).
|
|
27
|
+
- Always pass `--title`: three to six words, verb first, first letter capitalised, no kebab-case, saying what is done rather than how ("Fix login redirect loop"). The user's language is fine.
|
|
27
28
|
- Each session gets its own new worktree.
|
|
28
29
|
- Several `vibest run` commands in one message start in parallel.
|
|
29
30
|
- A subagent cannot see this conversation. Say what to achieve, where (paths, lines), what done means, and how to verify it. For code: run the tests and typecheck, commit, and report the branch and hash.
|
|
@@ -36,10 +37,11 @@ Tell the user in one or two lines what is running, then end your turn. Never gue
|
|
|
36
37
|
|
|
37
38
|
## Check the result
|
|
38
39
|
|
|
39
|
-
An `<agent-result>` is a claim. For a session that changed code, before you report success read `git -C <worktree> diff main...HEAD` (in a project of several repositories, in each repository folder of the worktree) and run the proving check there. For research, judge the report text.
|
|
40
|
+
An `<agent-result>` is a claim. Its `<status>` is only whether the turn ended normally (`completed`) or with an error (`failed`); whether the work succeeded is in the `<result>` text. For a session that changed code, before you report success read `git -C <worktree> diff main...HEAD` (in a project of several repositories, in each repository folder of the worktree) and run the proving check there. For research, judge the report text.
|
|
40
41
|
|
|
41
|
-
-
|
|
42
|
-
-
|
|
42
|
+
- The result asks a question → `vibest send <id> -- '<the answer>'`, or ask the user. If it is waiting for the user's approval of an action, do not send the approval back: start a fresh agent with the approved action, quoting the user's words.
|
|
43
|
+
- `<status>failed</status>`, a result that reports a failure, or your check fails → `vibest send <id> -- '<the failure and what to fix>'`. It keeps its context. If a second correction fails, start a new `vibest run` or tell the user.
|
|
44
|
+
- A result or notice that says the turn ended without a report, was interrupted in its pane, or did not start (`task_not_started`) carries no screen text. When you need to see why, run `vibest peek <id>` (`--lines N`, default 30): it prints the session's terminal as it is now. Read it before you decide to resend, correct, or tell the user.
|
|
43
45
|
|
|
44
46
|
Then say what changed, the evidence, and the branch. `<id>` is the id the run printed, for either kind of run.
|
|
45
47
|
|
|
@@ -10,7 +10,7 @@ Plan → the user agrees → implement → review until the reviewer approves
|
|
|
10
10
|
## 1. Plan
|
|
11
11
|
|
|
12
12
|
```
|
|
13
|
-
vibest run <harness> -- 'Write an implementation plan for: <goal, paths, constraints>. Read the code. Report the approach, the files to change, the steps, how to verify, and open questions. Do not modify files.'
|
|
13
|
+
vibest run <harness> --title 'Plan <topic>' -- 'Write an implementation plan for: <goal, paths, constraints>. Read the code. Report the approach, the files to change, the steps, how to verify, and open questions. Do not modify files.'
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
Its id is <planner id>. Tell the user the plan is being written and end your turn. Do not pass `--archive-on-completion`: the user has not agreed yet, and a completed result would archive the session before they can answer.
|
|
@@ -23,7 +23,7 @@ Show the plan in full, including open questions. Do not implement until the user
|
|
|
23
23
|
|
|
24
24
|
```
|
|
25
25
|
vibest project write scratch pipeline-<topic>-plan.md --if-version new -- '<the agreed plan, verbatim>'
|
|
26
|
-
vibest run <harness> -- 'Implement the plan at <absolute scratch path> exactly. Run the tests and typecheck, commit on a branch, push, and report the branch and hash. Do not open a pull request.'
|
|
26
|
+
vibest run <harness> --title 'Implement <topic>' -- 'Implement the plan at <absolute scratch path> exactly. Run the tests and typecheck, commit on a branch, push, and report the branch and hash. Do not open a pull request.'
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Its id is <implementer id>. The absolute path is `scratchPath` from `vibest project info`, plus the file name. If write says the file already exists, `vibest project read scratch pipeline-<topic>-plan.md`, then write again with the version it prints, or pick a new file name. Do not pass `--archive-on-completion`: this session stays for review and the pull request. When it reports, check the diff and the tests yourself before review.
|
|
@@ -34,7 +34,7 @@ Its id is <implementer id>. The absolute path is `scratchPath` from `vibest proj
|
|
|
34
34
|
Read-only here is the prompt you pass, plus the peer git rule the session already has: no commit, and nothing that moves HEAD, a branch, or the index.
|
|
35
35
|
|
|
36
36
|
```
|
|
37
|
-
vibest run <harness> --peer <implementer id> -- 'Review the change on this branch against the plan at <absolute scratch path>. Run git diff main...HEAD. Do not modify files, commit, or move HEAD. Look for bugs, missing tests, and departures from the plan; run the tests. Start with "verdict: approve" or "verdict: changes requested", then each comment with file and line.'
|
|
37
|
+
vibest run <harness> --title 'Review <topic>' --peer <implementer id> -- 'Review the change on this branch against the plan at <absolute scratch path>. Run git diff main...HEAD. Do not modify files, commit, or move HEAD. Look for bugs, missing tests, and departures from the plan; run the tests. Start with "verdict: approve" or "verdict: changes requested", then each comment with file and line.'
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Its id is <reviewer id>. Do not pass `--archive-on-completion`: later rounds go to this reviewer with `vibest send`.
|