baxian 1.2.20 → 1.2.22
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/manager.d.ts +5 -0
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +274 -29
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/phase-signal-watcher.d.ts +6 -0
- package/dist/agent/phase-signal-watcher.d.ts.map +1 -1
- package/dist/agent/phase-signal-watcher.js +62 -0
- package/dist/agent/phase-signal-watcher.js.map +1 -1
- package/dist/agent/phase-signal.d.ts +4 -1
- package/dist/agent/phase-signal.d.ts.map +1 -1
- package/dist/agent/phase-signal.js +2 -1
- package/dist/agent/phase-signal.js.map +1 -1
- package/dist/agent/prompt.d.ts +2 -1
- package/dist/agent/prompt.d.ts.map +1 -1
- package/dist/agent/prompt.js +152 -278
- package/dist/agent/prompt.js.map +1 -1
- package/dist/api/projects.js +8 -1
- package/dist/api/projects.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/constants.js +5 -5
- package/dist/shared/constants.js.map +1 -1
- package/dist/skill/registry.d.ts +2 -0
- package/dist/skill/registry.d.ts.map +1 -1
- package/dist/skill/registry.js +16 -0
- package/dist/skill/registry.js.map +1 -1
- package/dist/skills/baxian-greeting/SKILL.md +15 -0
- package/dist/skills/baxian-greeting/agents/openai.yaml +2 -0
- package/dist/skills/baxian-pr-feedback/SKILL.md +20 -3
- package/dist/skills/baxian-pr-recheck/SKILL.md +11 -11
- package/dist/skills/baxian-pr-review/SKILL.md +11 -11
- package/dist/skills/baxian-server-feedback/SKILL.md +38 -0
- package/dist/skills/baxian-server-feedback/agents/openai.yaml +2 -0
- package/dist/skills/baxian-server-review/SKILL.md +55 -0
- package/dist/skills/baxian-server-review/agents/openai.yaml +2 -0
- package/dist/skills/baxian-signals/SKILL.md +11 -5
- package/dist/skills/baxian-task-check/SKILL.md +35 -20
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: baxian-server-review
|
|
3
|
+
description: QA reviews injected server-review content (a code diff or a spec doc) — judge against the task spec, write findings.json with a verdict. Covers code review, recheck closure, and spec review.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
baxian dispatches you with a block of `key: value` dispatch fields; the review input rides in trailing blocks — `diff:` (code) or `spec:` (spec review), plus `prior-findings:` / `prior-response:` on a recheck. Do NOT fetch branches or use `gh` — those blocks ARE the review input. Work in `worktree:`. QA judges risk independently — human authorization is input, not a bypass. If a `content: truncated` field is present, request the missing context via the read-file side-channel.
|
|
8
|
+
|
|
9
|
+
Route on `phase:`: `server-review` → §Code Review; `server-recheck` → §Code Review + §Recheck Closure; `server-spec-review` → §Spec Review.
|
|
10
|
+
|
|
11
|
+
## Code Review
|
|
12
|
+
|
|
13
|
+
Judge the `diff:` block against the task spec: correctness, tests, edge cases, security, regressions.
|
|
14
|
+
|
|
15
|
+
- Severity: `critical` = broken/unsafe, `major` = must fix before merge, `minor` = improvement.
|
|
16
|
+
- Reference file + line for every code finding.
|
|
17
|
+
- For unchanged files, read them directly from your own base-branch worktree; use the read-file side-channel only for content not present locally.
|
|
18
|
+
|
|
19
|
+
## Recheck Closure
|
|
20
|
+
|
|
21
|
+
The `prior-findings:` and `prior-response:` blocks carry the earlier findings and the dev response. Close them out before judging anything new.
|
|
22
|
+
|
|
23
|
+
- Resolve the status of EVERY prior finding first.
|
|
24
|
+
- A finding the dev claims fixed → verify it in the new diff. No "fixed" without evidence.
|
|
25
|
+
- A finding the dev rejected / called out-of-scope → judge the rationale on merit; re-raise it with concrete counter-evidence if it is wrong.
|
|
26
|
+
- Any prior finding NOT closed reappears in `findings.json` with its ORIGINAL id and the evidence restated — do not renumber or drop it.
|
|
27
|
+
- Verdict `approve` ONLY when every prior finding is closed AND the new diff is clean. An unresolved finding may not be downgraded to a minor suggestion to justify approve — otherwise `request-changes`.
|
|
28
|
+
- After closure, scan the new diff for regressions AND for behavior the fixes introduced that lacks test coverage.
|
|
29
|
+
|
|
30
|
+
## Spec Review
|
|
31
|
+
|
|
32
|
+
Judge the `spec:` block:
|
|
33
|
+
|
|
34
|
+
- completeness — every requirement covered, interfaces and data flows defined, error paths specified.
|
|
35
|
+
- correctness — internally consistent, no contradicting sections, feasible against the existing codebase.
|
|
36
|
+
- ambiguity — any requirement readable two ways is a finding.
|
|
37
|
+
|
|
38
|
+
Need a referenced file or codebase section to judge feasibility? Use the read-file side-channel. When `prior-findings:` / `prior-response:` blocks are present, verify every finding is closed before judging the rest of the spec.
|
|
39
|
+
|
|
40
|
+
## Findings Output
|
|
41
|
+
|
|
42
|
+
Write findings to `.baxian/review/findings.json` in YOUR worktree (`mkdir -p .baxian/review` first). Atomic write: write `findings.json.tmp` first, then `mv findings.json.tmp findings.json`.
|
|
43
|
+
|
|
44
|
+
Schema — substitute `<round>` with your `round:` field:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{"round":<round>,"verdict":"approve"|"request-changes","findings":[{"id":"f-1","severity":"critical"|"major"|"minor","message":"...","file":"path","line":N}]}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Spec-review findings use `"location":"Section ..."` in place of `"file"`/`"line"`.
|
|
51
|
+
|
|
52
|
+
- Finding ids are `f-1`, `f-2`, … sequential and unique within `findings.json` — the dev coverage check and QA closure verification key off them.
|
|
53
|
+
- `approve` MAY carry minor findings as suggestions; the `verdict` field is authoritative.
|
|
54
|
+
|
|
55
|
+
Then emit your `signal:` (`code-reviewed` or `spec-reviewed`) with `token:`. Signal wire format and the read-file side-channel: see the **baxian-signals** skill.
|
|
@@ -18,22 +18,28 @@ baxian scans the pane fuzzily (strips ANSI escapes and whitespace), so a TUI sof
|
|
|
18
18
|
|
|
19
19
|
## How to emit
|
|
20
20
|
|
|
21
|
-
The dispatch
|
|
21
|
+
The dispatch descriptor names the signal kind in a signal field and the token in `token:`. The default completion is `signal:`; some phases also expose an alternate field for an optional branch (e.g. `spec-signal:` on develop's SDD route). Your phase skill's flow tells you which field applies — emit the one for the route you took, never both:
|
|
22
22
|
|
|
23
23
|
```
|
|
24
|
-
|
|
24
|
+
signal: pr-fixed
|
|
25
25
|
token: a1b2c3d4e5f6
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
1.
|
|
28
|
+
1. Build the wire form `[bx:KIND:TOKEN]` from the field your skill's flow selects — KIND = that field's value (the `signal:` value by default, or an alternate like `spec-signal:`), TOKEN = the `token:` value — and emit it filled. `<pr_number>` (only `pr-created`, and `code-ready` when publishing as a PR) is the number of the PR you just created/opened with `gh pr create` — the descriptor carries no PR-number field.
|
|
29
29
|
2. Emit the filled signal **alone on its own line**.
|
|
30
|
-
3. **Never
|
|
31
|
-
4. Emit the kind
|
|
30
|
+
3. **Never emit an angle-bracket placeholder** like `[bx:pr-fixed:<token>]` verbatim — the scanner's strict regex cannot match placeholders, so it fires nothing and the task hangs forever waiting on a signal.
|
|
31
|
+
4. Emit the single kind your phase skill's flow selects, **exactly once**, only when its precondition holds. baxian consumes the first matching signal whose token matches the active dispatch; the token rotates every dispatch, so a stale or guessed token never fires.
|
|
32
32
|
|
|
33
33
|
## Signal catalog
|
|
34
34
|
|
|
35
35
|
Phase signals — the per-dispatch transition signals baxian consumes to advance a task. The dispatch prompt always names which one to emit and when.
|
|
36
36
|
|
|
37
|
+
Bootstrap handshake (before any task):
|
|
38
|
+
|
|
39
|
+
| Signal | Meaning |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `greeting` | one-time capability check at agent startup; prove you can load this skill and signal back. baxian holds the agent until it sees a valid `greeting` echo |
|
|
42
|
+
|
|
37
43
|
GitHub PR flow:
|
|
38
44
|
|
|
39
45
|
| Signal | Meaning |
|
|
@@ -1,35 +1,50 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: baxian-task-check
|
|
3
|
-
description: How
|
|
3
|
+
description: How a dev analyzes and executes a baxian-managed develop/code task — read the structured prompt, plan, run the develop or code flow, signal back.
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
baxian dispatches you with a block of `key: value` dispatch fields followed by the task `title:` and its description. Work in the directory named by `worktree:` — cd there before any file operation. Route on `phase:`: `develop` → §Develop, `code` → §Code.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
1. Read the prompt's `Title:` line and description — the authoritative task source (no `.baxian/task.md` file).
|
|
11
|
-
2. Identify acceptance criteria.
|
|
12
|
-
3. Plan: files to modify, tests to write.
|
|
9
|
+
If an `images:` list is present, read each path (baxian downloaded the user's uploads to the agent host) and factor them into the task.
|
|
13
10
|
|
|
14
|
-
##
|
|
15
|
-
- Explicit vs implied requirements
|
|
16
|
-
- Edge cases
|
|
17
|
-
- File/function references
|
|
18
|
-
- Linked docs, screenshots, specs
|
|
11
|
+
## Analyze
|
|
19
12
|
|
|
20
|
-
|
|
13
|
+
1. Read `title:` and the description — the authoritative task source (no `.baxian/task.md` file).
|
|
14
|
+
2. Identify acceptance criteria, explicit vs implied requirements, edge cases, file/function references, linked docs/specs.
|
|
15
|
+
3. Plan the files to modify and the tests to write.
|
|
16
|
+
|
|
17
|
+
When to ask vs proceed:
|
|
21
18
|
- Clear → start.
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
- Minor ambiguity → proceed, record the assumption (PR description, task note, or commit message).
|
|
20
|
+
- Blocked → pick a reasonable interpretation and record it after the `<!-- baxian:managed -->` marker (marker MUST be line 1), or create a task if truly blocked.
|
|
21
|
+
|
|
22
|
+
## Conventions
|
|
23
|
+
|
|
24
|
+
Your `exchange:` field selects the cross-agent medium:
|
|
25
|
+
- `github-pr` — communicate via the GitHub PR (description, commits, reviews, comments). A managed PR's description first line MUST be `<!-- baxian:managed -->`. Stay in scope — out-of-scope work goes to a new GitHub Issue.
|
|
26
|
+
- `server-files` — baxian reads your worktree directly; do NOT push or open a PR (the publish phase does that). Stay in scope.
|
|
27
|
+
|
|
28
|
+
A PR you open MUST be ready for review (not Draft): do NOT use `--draft`; if it is draft after creation, run `gh pr ready` before signaling.
|
|
29
|
+
|
|
30
|
+
## Develop
|
|
31
|
+
|
|
32
|
+
Two mutually-exclusive routes — pick ONE and emit only its signal:
|
|
33
|
+
|
|
34
|
+
- **SDD** (only when a `spec-signal:` field is present, i.e. a QA partner exists) — get your design reviewed first: follow §Specification-Driven Development, then emit `spec-signal:` (`spec-done`) with `token:`. Do NOT emit the default `signal:` on this route — that would skip spec review and push an unimplemented task forward. After QA approves the spec, baxian dispatches the code phase. Use SDD when the design is non-trivial; skip it when the change is small or unambiguous.
|
|
35
|
+
- **Direct** — implement the change, then emit `signal:` with `token:`: `exchange: github-pr` → after `gh pr create` (ready for review), emit `pr-created`; `exchange: server-files` → after a local commit (do NOT push), emit `code-done`.
|
|
36
|
+
|
|
37
|
+
## Code
|
|
38
|
+
|
|
39
|
+
The spec is approved at `.baxian/spec.md`. Implement it, then emit your `signal:` with `token:`:
|
|
40
|
+
- `exchange: github-pr` → commit + push, `gh pr create` (ready for review), emit `pr-created`.
|
|
41
|
+
- `exchange: server-files` → local commit only (do NOT push, no PR), emit `code-done`.
|
|
26
42
|
|
|
27
43
|
## Specification-Driven Development (SDD)
|
|
28
44
|
|
|
29
|
-
|
|
45
|
+
Use it to have QA review your design before you write code.
|
|
30
46
|
|
|
31
47
|
- Write the spec to `.baxian/spec.md` in your worktree. Do NOT commit or push it — baxian reads the file directly for QA review.
|
|
32
|
-
- Then emit the `spec-done`
|
|
33
|
-
- Skip it and implement directly when the change is small or the design is unambiguous.
|
|
48
|
+
- Then emit the `spec-signal:` (`spec-done`) with `token:`.
|
|
34
49
|
|
|
35
|
-
|
|
50
|
+
Signal wire format and emit rules: see the baxian-signals skill.
|