@webpresso/agent-kit 3.1.25 → 3.1.28
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/catalog/AGENTS.md.tpl +6 -10
- package/catalog/agent/commands/verify.md +2 -2
- package/catalog/agent/rules/changeset-release.md +7 -1
- package/catalog/agent/rules/workflow-skills-routing.md +6 -3
- package/catalog/agent/skills/autopilot/SKILL.md +48 -11
- package/catalog/agent/skills/claude/SKILL.md +7 -0
- package/catalog/agent/skills/codex/SKILL.md +7 -0
- package/catalog/agent/skills/fix/SKILL.md +33 -8
- package/catalog/agent/skills/grok/SKILL.md +7 -0
- package/catalog/agent/skills/investigate/SKILL.md +12 -1
- package/catalog/agent/skills/pll/SKILL.md +53 -48
- package/catalog/agent/skills/team/SKILL.md +26 -9
- package/catalog/agent/skills/ultragoal/SKILL.md +147 -19
- package/catalog/agent/skills/verify/SKILL.md +71 -51
- package/dist/esm/audit/blueprint-lifecycle-sql.d.ts +8 -0
- package/dist/esm/audit/blueprint-lifecycle-sql.js +25 -1
- package/dist/esm/ci/native-session-memory-cache.d.ts +9 -1
- package/dist/esm/ci/native-session-memory-cache.js +9 -1
- package/dist/esm/ci/vitest-ci-shards.d.ts +6 -4
- package/dist/esm/ci/vitest-ci-shards.js +6 -4
- package/dist/esm/cli/auto-update/guard-tombstone.d.ts +25 -0
- package/dist/esm/cli/auto-update/guard-tombstone.js +67 -0
- package/dist/esm/cli/auto-update/installer.d.ts +4 -17
- package/dist/esm/cli/auto-update/installer.js +6 -57
- package/dist/esm/cli/auto-update/self-invocation.d.ts +37 -0
- package/dist/esm/cli/auto-update/self-invocation.js +62 -0
- package/dist/esm/cli/commands/audit.js +1 -0
- package/dist/esm/cli/commands/dash/index.js +3 -3
- package/dist/esm/cli/commands/dash/plan-once-attention.d.ts +32 -0
- package/dist/esm/cli/commands/dash/plan-once-attention.js +50 -0
- package/dist/esm/cli/commands/dash/plan-once-schema.d.ts +73 -0
- package/dist/esm/cli/commands/dash/plan-once-schema.js +119 -0
- package/dist/esm/cli/commands/dash/plan-once.d.ts +122 -0
- package/dist/esm/cli/commands/dash/plan-once.js +224 -0
- package/dist/esm/cli/commands/dash/tui/ipc-protocol.d.ts +87 -0
- package/dist/esm/cli/commands/dash/tui/ipc-protocol.js +128 -0
- package/dist/esm/cli/commands/dash/tui/native-host.d.ts +34 -0
- package/dist/esm/cli/commands/dash/tui/native-host.js +256 -0
- package/dist/esm/cli/commands/dash/tui/native-path.d.ts +11 -0
- package/dist/esm/cli/commands/dash/tui/native-path.js +41 -0
- package/dist/esm/cli/commands/dash/tui/runtime.js +72 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-kit-global/index.js +1 -1
- package/dist/esm/cli/commands/package-manager.js +2 -1
- package/dist/esm/cli/commands/quality-log-store.d.ts +6 -0
- package/dist/esm/cli/commands/quality-log-store.js +55 -15
- package/dist/esm/cli/commands/self-install-guard.d.ts +14 -16
- package/dist/esm/cli/commands/self-install-guard.js +17 -23
- package/dist/esm/hooks/guard-switch/index.js +8 -4
- package/dist/esm/hooks/post-tool/lint-after-edit.js +6 -4
- package/dist/esm/hooks/precompact/index.js +5 -3
- package/dist/esm/hooks/sessionstart/index.d.ts +10 -0
- package/dist/esm/hooks/sessionstart/index.js +61 -4
- package/dist/esm/hooks/shared/types.d.ts +11 -0
- package/dist/esm/hooks/shared/types.js +21 -0
- package/dist/esm/paths/state-root.js +36 -3
- package/dist/esm/session-memory/current-session.js +2 -0
- package/dist/esm/session-memory/native-runtime.js +5 -3
- package/dist/esm/session-memory/native-warm-markers.d.ts +18 -0
- package/dist/esm/session-memory/native-warm-markers.js +22 -0
- package/dist/esm/session-memory/sync/types.d.ts +4 -0
- package/dist/esm/session-memory/types.d.ts +3 -1
- package/dist/esm/session-memory/types.js +2 -0
- package/dist/esm/ultragoal/runtime.js +44 -2
- package/package.json +15 -12
package/catalog/AGENTS.md.tpl
CHANGED
|
@@ -54,6 +54,8 @@ Catalog-owned surfaces:
|
|
|
54
54
|
- Reuse nearby utilities and patterns before adding new abstractions.
|
|
55
55
|
- Apply DRY, SOLID, YAGNI, and KISS.
|
|
56
56
|
- No hardcoded relative paths in executable code or config; derive from an explicit absolute anchor.
|
|
57
|
+
- Efficiency: MCP `wp_*` over shell; `ultragoal`/`/pll`; `/verify` local vs
|
|
58
|
+
`--merge-ready` (1 outside voice); `fix_budget`=1.
|
|
57
59
|
|
|
58
60
|
Hook invariant: global hooks use the canonical contract; skill hooks never
|
|
59
61
|
project into host settings. Bound hot paths; do not raise timeouts or hide work
|
|
@@ -62,16 +64,9 @@ asynchronously.
|
|
|
62
64
|
## Verify
|
|
63
65
|
|
|
64
66
|
Before claiming completion, run the narrowest checks that prove the change:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
- lint / format check
|
|
69
|
-
- affected tests
|
|
70
|
-
- repo policy checks such as `verify:paths` / `verify:secrets`
|
|
71
|
-
- docs or blueprint validation when docs/plans changed
|
|
72
|
-
- `wp sync --check` after template/catalog changes
|
|
73
|
-
|
|
74
|
-
If a gate fails, fix root cause or record the blocker with evidence.
|
|
67
|
+
MCP/`wp` quality tools, typecheck, lint/format, affected tests, policy checks,
|
|
68
|
+
docs/blueprint validation when those changed, and `wp sync --check` after
|
|
69
|
+
template/catalog changes. On failure, fix root cause or record the blocker.
|
|
75
70
|
|
|
76
71
|
## Communicate
|
|
77
72
|
|
|
@@ -149,6 +144,7 @@ Full details: `.agent/rules/package-conventions.md`
|
|
|
149
144
|
## Tech stack
|
|
150
145
|
|
|
151
146
|
{{TECH_STACK}}
|
|
147
|
+
|
|
152
148
|
<!-- <<< managed by webpresso (planning-and-release) -->
|
|
153
149
|
|
|
154
150
|
<!-- >>> user-owned (escalation-map) -->
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Post-implementation quality gate
|
|
3
|
-
argument-hint: "<target> [--full] where target is: package|file|plan-slug|all"
|
|
2
|
+
description: "Post-implementation quality gate: local checks by default; --merge-ready requires exactly one outside-voice approval. Runs TPH/test-quality audit, dead-code sweep, and docs refresh. Use after implementing a feature or fix, before claiming done, or when finalizing a blueprint."
|
|
3
|
+
argument-hint: "<target> [--full|--merge-ready] where target is: package|file|plan-slug|all"
|
|
4
4
|
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Task, TodoWrite
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -180,7 +180,13 @@ for the current repository and package configuration contract.
|
|
|
180
180
|
`npm view <package> version`. For consumer setup smoke, use
|
|
181
181
|
`vp install -g @webpresso/agent-kit@latest`, `wp setup`, and
|
|
182
182
|
`wp sync --check`.
|
|
183
|
-
6.
|
|
183
|
+
6. Version Packages PRs are authored via the **webpresso-dev** App installation
|
|
184
|
+
token in `release.yml` (not bare `GITHUB_TOKEN`). If a PR still has no WP
|
|
185
|
+
check / CI is `action_required` with zero jobs (legacy bot author or App
|
|
186
|
+
mint failure), follow
|
|
187
|
+
[`docs/runbooks/version-packages-bot-ci.md`](../../../docs/runbooks/version-packages-bot-ci.md)
|
|
188
|
+
(`gh run rerun` or Approve workflows). Do not admin-merge without WP check.
|
|
189
|
+
7. After the OIDC publish path succeeds, set npm package publishing access to
|
|
184
190
|
require two-factor authentication and disallow tokens, then revoke obsolete
|
|
185
191
|
automation tokens. Do not remove a credential that another verified release
|
|
186
192
|
path still needs.
|
|
@@ -73,7 +73,10 @@ Map routing intent like this:
|
|
|
73
73
|
`deep-research`
|
|
74
74
|
- debugging and regressions → `investigate` then `fix`
|
|
75
75
|
- bounded cleanup after behavior is green → `ai-deslop`
|
|
76
|
+
- multi-task / parallel execute → `ultragoal` + `/pll` (ready-queue, worktrees)
|
|
77
|
+
- local completeness → `/verify`; merge-ready outside voice → `/verify --merge-ready`
|
|
78
|
+
(exactly one sequential outside reviewer unless user sets N)
|
|
76
79
|
|
|
77
|
-
Use `wp_*`
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
Use the full `wp_*` MCP surface for tests, lint, typecheck, audits, session memory,
|
|
81
|
+
ultragoal, worktrees, PRs, and quality gates — not shell reimplementations. Use
|
|
82
|
+
curated outside-voice skills only within `review_budget` (default 0 local / 1 merge-ready).
|
|
@@ -5,9 +5,9 @@ title: Autopilot
|
|
|
5
5
|
status: active
|
|
6
6
|
scope: repo
|
|
7
7
|
applies_to: [agents]
|
|
8
|
-
related: [goal, plan-refine, verify, testing-philosophy]
|
|
8
|
+
related: [goal, plan-refine, verify, testing-philosophy, ultragoal, pll, fix]
|
|
9
9
|
created: "2026-07-10"
|
|
10
|
-
last_reviewed: "2026-07-
|
|
10
|
+
last_reviewed: "2026-07-21"
|
|
11
11
|
name: autopilot
|
|
12
12
|
description: "Drive a brief through the bounded native goal pipeline."
|
|
13
13
|
argument-hint: "<brief|force: brief>"
|
|
@@ -15,25 +15,62 @@ argument-hint: "<brief|force: brief>"
|
|
|
15
15
|
|
|
16
16
|
# Autopilot
|
|
17
17
|
|
|
18
|
-
Drive an approved brief through `plan -> execute -> qa -> validate -> land -> complete`
|
|
18
|
+
Drive an approved brief through `plan -> execute -> qa -> validate -> land -> complete`
|
|
19
|
+
using `wp_ultragoal_run` / `wp ultragoal run` and the current handoff.
|
|
20
|
+
|
|
21
|
+
## Outside-voice (required)
|
|
22
|
+
|
|
23
|
+
After each ultragoal **phase or plan-gate milestone**, run an **OpenCode Go** outside-voice review and pick the model by purpose (plan critique → DeepSeek Pro; coding quality → Kimi Code first; cheap recheck → DeepSeek Flash). Resolve IDs from live `opencode models opencode-go`. Lifecycle authority only via converged `wp review gate` — never self-approve. Full protocol: the `ultragoal` skill. Respect `review_budget` (default one sequential path; no multi-host stampede).
|
|
19
24
|
|
|
20
25
|
## Vague gate
|
|
21
26
|
|
|
22
|
-
A brief is anchored when it includes a file path, symbol, issue number, test name, or numbered steps
|
|
27
|
+
A brief is anchored when it includes a file path, symbol, issue number, test name, or numbered steps
|
|
28
|
+
(blueprint slug and explicit budgets also count). Route any unanchored brief through
|
|
29
|
+
`plan-refine` before execution.
|
|
30
|
+
|
|
31
|
+
**Reject** (unless rewritten with scope + budgets): “complete all”, “full autopilot”,
|
|
32
|
+
“go to sleep”, “elegantly merge everything” without a named blueprint/PR set.
|
|
33
|
+
|
|
34
|
+
A leading `force:` is the only explicit bypass; strip it before creating the goal and
|
|
35
|
+
record the bypass in the blueprint.
|
|
36
|
+
|
|
37
|
+
Default budgets if the user omits them: `concurrency=4`, `fix_budget=1`,
|
|
38
|
+
`review_budget=1`, no `/loop`. See `ultragoal` skill.
|
|
39
|
+
|
|
40
|
+
## Tooling map
|
|
41
|
+
|
|
42
|
+
| Pipeline step | Tools |
|
|
43
|
+
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| Plan | `plan-refine`, `wp_blueprint_*`, `wp_session_capture` for decisions |
|
|
45
|
+
| Create controller | `wp_ultragoal_new`, `wp_worktree` |
|
|
46
|
+
| Execute | ready-set via blueprint tools; `/pll` or parallel subagents; `wp_session_context` for delegates; `wp_blueprint_task_verify` only to complete tasks |
|
|
47
|
+
| Opportunistic repair | `/fix` up to `fix_budget`; else handoff backlog |
|
|
48
|
+
| QA | `wp_qa` / `wp_lint` / `wp_typecheck` / `wp_test`; PR checks via `wp_pr_status` / `wp_pr_wait` |
|
|
49
|
+
| Validate | one outside voice if merge-bound (OpenCode Go by purpose, or claude/codex/grok); `wp review gate` for authority |
|
|
50
|
+
| Land | `wp_pr_upsert`, green required checks, merge + owner cleanup |
|
|
51
|
+
| Blocked / stop | `wp_ultragoal_handoff` ≤40 lines; `wp_ultragoal_cancel` if abandoned |
|
|
23
52
|
|
|
24
53
|
## Pipeline
|
|
25
54
|
|
|
26
|
-
1. Plan
|
|
27
|
-
2. Execute
|
|
28
|
-
|
|
29
|
-
|
|
55
|
+
1. **Plan:** refine blueprints and satisfy provenance-backed promotion approvals.
|
|
56
|
+
2. **Execute:** implement current **ready** tasks in parallel up to `concurrency`; use only
|
|
57
|
+
`wp_blueprint_task_verify` to mark them done.
|
|
58
|
+
3. **QA:** run affected checks and `wp_qa`; preserve normalized failure evidence. Prefer
|
|
59
|
+
PR-bound CI when a PR exists.
|
|
60
|
+
4. **Validate:** obtain verification + code-review evidence within `review_budget`. Each
|
|
61
|
+
lane appends a tracked `reviews.md` record in one of these exact forms:
|
|
30
62
|
|
|
31
63
|
```text
|
|
32
64
|
<!-- wp:goal-validation {"kind":"verify","reviewer":"<identity>","artifact":"<tracked-path>"} -->
|
|
33
65
|
<!-- wp:goal-validation {"kind":"code-review","reviewer":"<different-identity>","artifact":"<tracked-path>"} -->
|
|
34
66
|
```
|
|
35
67
|
|
|
36
|
-
5. Land
|
|
37
|
-
|
|
68
|
+
5. **Land:** require green PR checks, complete the blueprint in the same PR, merge, and
|
|
69
|
+
run owner cleanup.
|
|
70
|
+
6. **Complete:** stop only when `wp_ultragoal_run` records terminal evidence.
|
|
38
71
|
|
|
39
|
-
Resume from durable state after interruption. Obey `WP_ULTRAGOAL_DISABLE=1`,
|
|
72
|
+
Resume from durable state after interruption. Obey `WP_ULTRAGOAL_DISABLE=1`,
|
|
73
|
+
iteration/error/validation caps, and repository ownership. Never self-approve, directly
|
|
74
|
+
mark tasks done, bypass evidence, push to main, or increase timeouts (keep every loop bounded and never increase timeouts). After every phase
|
|
75
|
+
transition recorded by `wp ultragoal run`, obtain a fresh OpenCode Go outside review
|
|
76
|
+
before treating the milestone as closed (see Outside-voice above and the `ultragoal` skill).
|
|
@@ -8,6 +8,13 @@ license: MIT
|
|
|
8
8
|
|
|
9
9
|
Use when a non-Claude host needs Claude to review a diff, challenge a plan, or answer a focused repo question. Keep it bounded/read-only unless asked otherwise, and report Claude output as advice, not verified fact.
|
|
10
10
|
|
|
11
|
+
## Single-shot budget (anti-stampede)
|
|
12
|
+
|
|
13
|
+
- Default: **one** review invocation per request.
|
|
14
|
+
- Do **not** spawn parallel Claude + Codex + Grok + OpenCode reviews unless the user set `review_budget`/`N` > 1.
|
|
15
|
+
- Prefer `wp review run` / `wp review gate` over hand-rolled multi-agent loops.
|
|
16
|
+
- Bounded payload only (see below). Split large diffs across sequential calls, never unbounded whole-PR dumps.
|
|
17
|
+
|
|
11
18
|
## Auth check
|
|
12
19
|
|
|
13
20
|
Use local Claude CLI login directly; do not route through Anthropic API-key env vars.
|
|
@@ -8,6 +8,13 @@ license: MIT
|
|
|
8
8
|
|
|
9
9
|
Use this skill from Claude or another non-Codex host when the user wants Codex to independently review a diff, challenge a plan, or answer a repo question. Keep Codex read-only by default and treat its answer as external advice until independently verified.
|
|
10
10
|
|
|
11
|
+
## Single-shot budget (anti-stampede)
|
|
12
|
+
|
|
13
|
+
- Default: **one** review invocation per request.
|
|
14
|
+
- Do **not** fan out parallel multi-host review matrices unless the user set `review_budget`/`N` > 1.
|
|
15
|
+
- Prefer `wp review run` / `wp review gate` over spawn/wait agent loops for review.
|
|
16
|
+
- Keep prompts bounded; no whole-repo paste.
|
|
17
|
+
|
|
11
18
|
## Auth check
|
|
12
19
|
|
|
13
20
|
```bash
|
|
@@ -7,7 +7,7 @@ scope: repo
|
|
|
7
7
|
applies_to: [agents]
|
|
8
8
|
related: [verify, testing-philosophy]
|
|
9
9
|
created: "2026-05-13"
|
|
10
|
-
last_reviewed: "2026-
|
|
10
|
+
last_reviewed: "2026-07-21"
|
|
11
11
|
name: fix
|
|
12
12
|
description: "Root-cause fix workflow that runs investigate first when diagnosis or failing proof is still missing."
|
|
13
13
|
argument-hint: '<target> where target is: file|symptom|error|test|"free-text description"'
|
|
@@ -23,18 +23,43 @@ This command turns "please fix it well" into an enforceable workflow: diagnose
|
|
|
23
23
|
first, repair at the owner, prove the repair, and escalate to `/verify` when
|
|
24
24
|
the blast radius is broader than a local fix.
|
|
25
25
|
|
|
26
|
+
## Tooling map
|
|
27
|
+
|
|
28
|
+
| Need | Prefer |
|
|
29
|
+
| ---------------------- | --------------------------------------------------------------------------- |
|
|
30
|
+
| Reproduce / large logs | `wp_session_execute`, `wp_session_batch_execute`, `wp_session_execute_file` |
|
|
31
|
+
| Recall prior evidence | `wp_session_search`, `wp_session_restore`, `wp_session_retrieve` |
|
|
32
|
+
| Capture decisions | `wp_session_capture` (do not paste full reports back as user text) |
|
|
33
|
+
| Scoped proof | `wp_test`, `wp_lint`, `wp_typecheck`, or `wp_qa` |
|
|
34
|
+
| Audits | `wp_audit` / `wp_audits` |
|
|
35
|
+
| Worktree isolation | `wp_worktree` / `wp blueprint start` — never thrash primary checkout |
|
|
36
|
+
| PR follow-up | `wp_pr_status`, `wp_pr_upsert` when landing the fix |
|
|
37
|
+
|
|
26
38
|
## Non-negotiable invariants
|
|
27
39
|
|
|
28
40
|
1. **Root cause, not symptom.** Trace the failure to the invariant that actually broke. Do not patch callers when the owner is fixable.
|
|
29
41
|
2. **Loud failures, no silent fallbacks.** No default shims, sentinel returns, or catch-and-continue behavior that hides missing config, bad state, or broken boundaries.
|
|
30
|
-
3. **Use the repo's real execution surface.** Prefer
|
|
42
|
+
3. **Use the repo's real execution surface.** Prefer MCP `wp_*` tools and repo wrappers over host Bash for search/test/lint. Use bounded session-memory paths for large output.
|
|
31
43
|
4. **Regression proof is mandatory.** Add or strengthen a test or other reliable proof that would fail against the old behavior.
|
|
32
44
|
5. **Raising timeouts is not a fix.** If a timeout fires, investigate the bottleneck. Only raise a bound when the repo already documents that workload and you can cite measurement.
|
|
33
45
|
6. **Zero suppressions, zero papering over.** No lint disables, ts-ignore, compat aliases, or "temporary" branches to sneak the fix through.
|
|
34
46
|
7. **Minimal correct diff.** Update every consumer of a changed contract in the same change, but do not bundle unrelated cleanup.
|
|
47
|
+
8. **Primary checkout is sacred.** If HEAD is detached, primary is dirty with unrelated work, or you are not on a managed worktree for non-trivial edits → **stop** and move to `wp_worktree` / blueprint owner. Never leave the primary checkout broken.
|
|
48
|
+
|
|
49
|
+
## Opportunistic fix budget (when called from ultragoal / autopilot / pll)
|
|
50
|
+
|
|
51
|
+
- At most **`fix_budget` (default 1)** pre-existing issues per controller phase.
|
|
52
|
+
- Each must have: named invariant, failing proof, owning path.
|
|
53
|
+
- If the repair needs its own blueprint or expands epic scope → **handoff backlog**, do not inline.
|
|
54
|
+
- Additional discoveries: list in the final report; do not thrash.
|
|
35
55
|
|
|
36
56
|
## Protocol
|
|
37
57
|
|
|
58
|
+
### Step 0a — Worktree preflight
|
|
59
|
+
|
|
60
|
+
Before editing: confirm you are on a managed worktree or an explicitly allowed branch.
|
|
61
|
+
If the primary checkout is dirty/detached with unrelated state, stop and isolate first.
|
|
62
|
+
|
|
38
63
|
### Step 0 — Run the investigate phase when evidence is missing
|
|
39
64
|
|
|
40
65
|
Before editing, check whether the current context already contains all of the
|
|
@@ -94,17 +119,17 @@ Do not keep production code written before the test as "reference". If you wrote
|
|
|
94
119
|
|
|
95
120
|
Run the narrowest checks that prove the repaired behavior on the real repo surface:
|
|
96
121
|
|
|
97
|
-
- targeted
|
|
98
|
-
-
|
|
99
|
-
-
|
|
122
|
+
- `wp_test` / targeted tests for the repaired path
|
|
123
|
+
- `wp_lint` / `wp_typecheck` for changed surfaces
|
|
124
|
+
- `wp_qa` only when the blast radius needs the bookend
|
|
100
125
|
|
|
101
126
|
Rules:
|
|
102
127
|
|
|
103
|
-
- Prefer
|
|
104
|
-
- Reuse fresh logs
|
|
128
|
+
- Prefer MCP `wp_*` over raw host Bash.
|
|
129
|
+
- Reuse fresh logs / session-memory indexed output; do not re-run long commands just to re-read.
|
|
105
130
|
- Read the exit code and summary before making a claim.
|
|
106
131
|
|
|
107
|
-
Escalate to `/verify <target>` when any of these are true:
|
|
132
|
+
Escalate to `/verify <target>` (local) or `/verify <target> --merge-ready` when any of these are true:
|
|
108
133
|
|
|
109
134
|
- the fix crosses packages
|
|
110
135
|
- the fix changes a public or shared contract
|
|
@@ -8,6 +8,13 @@ license: MIT
|
|
|
8
8
|
|
|
9
9
|
Use when a non-Grok host needs Grok Build to review a diff, challenge a plan, or answer a focused repo question. Keep it read-only by default. A provenance-backed Grok approval is first-class and satisfies the blueprint strong-reviewer gate alone, with the same rejection authority as Claude or Codex.
|
|
10
10
|
|
|
11
|
+
## Single-shot budget (anti-stampede)
|
|
12
|
+
|
|
13
|
+
- Default: **one** review invocation per request.
|
|
14
|
+
- Do **not** run parallel multi-host review swarms unless the user set `review_budget`/`N` > 1.
|
|
15
|
+
- Prefer `wp review run` / `wp review gate --provider grok` for lifecycle authority.
|
|
16
|
+
- Bounded prompts only.
|
|
17
|
+
|
|
11
18
|
## Auth / binary
|
|
12
19
|
|
|
13
20
|
```bash
|
|
@@ -17,10 +17,21 @@ flaky behavior, or confusing symptom before editing code.
|
|
|
17
17
|
- Stop once you can name the broken invariant, show the failing proof, and
|
|
18
18
|
point at the owner that should be repaired.
|
|
19
19
|
|
|
20
|
+
## Tooling map
|
|
21
|
+
|
|
22
|
+
| Need | Prefer |
|
|
23
|
+
| ---------------------- | ---------------------------------------------------------------- |
|
|
24
|
+
| Reproduce / large logs | `wp_session_execute`, `wp_session_batch_execute` |
|
|
25
|
+
| Large files | `wp_session_execute_file` |
|
|
26
|
+
| Prior continuity | `wp_session_search`, `wp_session_restore`, `wp_session_retrieve` |
|
|
27
|
+
| Capture findings | `wp_session_capture` (short pointer, not full paste-back) |
|
|
28
|
+
| Proof runs | `wp_test`, `wp_qa`, `wp_lint`, `wp_typecheck` |
|
|
29
|
+
| Code search/read | host Grep/Read first; avoid shell-as-IDE |
|
|
30
|
+
|
|
20
31
|
## Workflow
|
|
21
32
|
|
|
22
33
|
1. Reproduce or capture the failure.
|
|
23
|
-
- Run the exact failing command or trace the exact user path.
|
|
34
|
+
- Run the exact failing command or trace the exact user path (prefer `wp_session_execute`).
|
|
24
35
|
- Keep the evidence that matters: error text, failing assertion, exit code,
|
|
25
36
|
log path, or boundary mismatch.
|
|
26
37
|
2. Read the whole boundary.
|
|
@@ -5,78 +5,83 @@ title: PLL Skill — Blueprint-Aware Parallel Execution
|
|
|
5
5
|
status: active
|
|
6
6
|
scope: repo
|
|
7
7
|
applies_to: [agents]
|
|
8
|
-
related: []
|
|
8
|
+
related: [ultragoal, autopilot, team]
|
|
9
9
|
created: "2026-05-07"
|
|
10
|
-
last_reviewed: "2026-
|
|
10
|
+
last_reviewed: "2026-07-21"
|
|
11
11
|
name: pll
|
|
12
|
+
description: "Blueprint-aware parallel execution: ready-queue, max-parallel lanes, cascade-skip."
|
|
12
13
|
---
|
|
13
14
|
|
|
14
15
|
# PLL Skill — Blueprint-Aware Parallel Execution
|
|
15
16
|
|
|
16
|
-
Use
|
|
17
|
+
Use when the user invokes `/pll` or asks for Blueprint-aware parallel execution.
|
|
17
18
|
|
|
18
|
-
`/pll` is
|
|
19
|
-
|
|
20
|
-
`/pll
|
|
21
|
-
|
|
22
|
-
1. understands Blueprint/task dependencies
|
|
23
|
-
2. updates `wp blueprint` lifecycle state honestly
|
|
24
|
-
3. delegates generic parallel fan-out to the engine layer such as `$ultrawork` or host-native subagents
|
|
19
|
+
`/pll` is the operator-facing adapter over the same shared execution model as
|
|
20
|
+
`wp blueprint exec`: Blueprint-backed launch specs, backend vocabulary, and
|
|
21
|
+
runtime-state bridge. `/pll` stays manual and operator-facing; `ultragoal` is the
|
|
22
|
+
durable multi-phase controller that should call the same ready-queue rules.
|
|
25
23
|
|
|
26
24
|
## Responsibilities
|
|
27
25
|
|
|
28
|
-
1. **Input parsing**
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
26
|
+
1. **Input parsing** — inline task lists, files, or blueprint paths under `blueprints/`.
|
|
27
|
+
2. **Blueprint lifecycle** — `wp blueprint start`, task tools, finalize; never `wp blueprint move`
|
|
28
|
+
as the normal primitive. Prefer MCP: `wp_blueprint_list` / `get` / `context` /
|
|
29
|
+
`put` / `transition` / `task_verify`.
|
|
30
|
+
3. **Ready-queue (max parallel)** — compute tasks with satisfied deps; print the ready-set
|
|
31
|
+
before launching; fill up to `concurrency` (default 4, max 8; user can set `--max`).
|
|
32
|
+
4. **Engine delegation** — independent work → host subagents / `$ultrawork` / worktrees via
|
|
33
|
+
`wp_worktree`. Before each delegate: `wp_session_context` (no full-history paste).
|
|
34
|
+
5. **Verification** — complete tasks only with `wp_blueprint_task_verify` + repo proof
|
|
35
|
+
(`wp_qa` / `wp_test` / targeted tools). Large commands → `wp_session_execute` /
|
|
36
|
+
`wp_session_batch_execute`.
|
|
37
|
+
6. **Shared model** — same control-plane contract as `wp blueprint exec` and ultragoal execute.
|
|
38
|
+
|
|
39
|
+
## Ready-queue algorithm
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
ready = tasks where status=todo and all Depends are done
|
|
43
|
+
while ready or in_progress:
|
|
44
|
+
launch min(len(ready), concurrency - in_progress) implementers in worktrees
|
|
45
|
+
on success → verify with evidence → unlock dependents into ready
|
|
46
|
+
on hard fail → block task, cascade-skip dependents that require it, continue others
|
|
47
|
+
```
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
2. Treat `ORPHANS` as fallback work only when no roadmap child is actionable.
|
|
53
|
-
3. Keep the heuristic discoverable and auditable: `wp audit roadmap-links` checks bidirectional roadmap/child links, while `wp audit blueprint-lifecycle` checks lifecycle placement.
|
|
54
|
-
4. If command output changes, update `/pll` guidance and the shared blueprint output contract together.
|
|
49
|
+
Prioritize critical-path / high-fan-out tasks when choosing the next batch.
|
|
55
50
|
|
|
56
51
|
## Concurrency Limits
|
|
57
52
|
|
|
58
|
-
| Scope
|
|
59
|
-
|
|
|
60
|
-
| Default
|
|
61
|
-
|
|
|
62
|
-
|
|
|
53
|
+
| Scope | Guidance |
|
|
54
|
+
| --------------------------- | -------------------------------------------- |
|
|
55
|
+
| Default | Keep safe independent lanes busy (default 4) |
|
|
56
|
+
| Hard max | 8 unless the user explicitly raises |
|
|
57
|
+
| Test-heavy / build / deploy | Conservative (often 1–2) |
|
|
58
|
+
| Shared file ownership | Serialize or merge tasks — never two writers |
|
|
63
59
|
|
|
64
60
|
## Deadlock and Failure Handling
|
|
65
61
|
|
|
66
|
-
-
|
|
67
|
-
- Failed tasks stay blocked with reasons;
|
|
68
|
-
-
|
|
62
|
+
- No ready work but blocked tasks remain → report blockers + deps; stop or handoff.
|
|
63
|
+
- Failed tasks stay blocked with reasons; dependents cascade-skipped unless safe alone.
|
|
64
|
+
- Lifecycle mutation failure → stop (no stale plan execution).
|
|
65
|
+
- Capture decisions with `wp_session_capture`; resume via `wp_session_search` / `restore`.
|
|
66
|
+
|
|
67
|
+
## Roadmap-Aware Lane Picking
|
|
68
|
+
|
|
69
|
+
When no explicit task list is supplied, ground selection in `wp blueprint list`:
|
|
70
|
+
|
|
71
|
+
1. Prefer active `ROADMAP` rows; next `planned` `CHILD` with satisfied `depends_on:`.
|
|
72
|
+
2. `ORPHANS` only when no roadmap child is actionable.
|
|
73
|
+
3. Audits: `wp audit roadmap-links`, `wp audit blueprint-lifecycle`.
|
|
69
74
|
|
|
70
75
|
## When **NOT** to use
|
|
71
76
|
|
|
72
|
-
- Small
|
|
73
|
-
-
|
|
77
|
+
- Small strictly serial work → direct execution or `/fix`.
|
|
78
|
+
- Generic fan-out without blueprint lifecycle → host-native parallel only.
|
|
79
|
+
- Overnight multi-phase goals → `ultragoal` / `autopilot` (which should still use these rules).
|
|
74
80
|
|
|
75
|
-
## Quick Start
|
|
81
|
+
## Quick Start
|
|
76
82
|
|
|
77
83
|
```bash
|
|
78
84
|
/pll "lint auth, lint utils, typecheck api [depends: lint auth], test api [depends: typecheck api]"
|
|
79
85
|
/pll tasks.md --max=6
|
|
80
|
-
/pll blueprints/in-progress/new-launch.md
|
|
81
86
|
/pll blueprints/in-progress/new-launch/_overview.md
|
|
82
87
|
```
|
|
@@ -7,7 +7,7 @@ scope: repo
|
|
|
7
7
|
applies_to: [agents]
|
|
8
8
|
related: [autopilot, goal, plan-refine, verify]
|
|
9
9
|
created: "2026-07-13"
|
|
10
|
-
last_reviewed: "2026-07-
|
|
10
|
+
last_reviewed: "2026-07-21"
|
|
11
11
|
name: team
|
|
12
12
|
description: "Coordinate multiple dashboard-backed agent sessions on one task."
|
|
13
13
|
argument-hint: "<brief|role plan>"
|
|
@@ -18,32 +18,49 @@ argument-hint: "<brief|role plan>"
|
|
|
18
18
|
Use `team` when the work needs coordinated parallel lanes with a leader-owned
|
|
19
19
|
task list, explicit handoffs, and independent verification. Prefer native
|
|
20
20
|
subagents for small bounded lookups; use `team` when the parallel work should be
|
|
21
|
-
visible, durable, and operator-controllable from `wp dash`.
|
|
21
|
+
visible, durable, and operator-controllable from `wp dash`. Prefer `ultragoal` +
|
|
22
|
+
`/pll` when the work is blueprint-owned and does not need multi-provider dashboard
|
|
23
|
+
lanes.
|
|
24
|
+
|
|
25
|
+
## Tooling map
|
|
26
|
+
|
|
27
|
+
| Need | Prefer |
|
|
28
|
+
| --------------------- | --------------------------------------------------------------- |
|
|
29
|
+
| Dashboard / sessions | `wp dash`, `wp_fleet_status`, `wp_worker_tail` |
|
|
30
|
+
| Worktrees | `wp_worktree` per lane |
|
|
31
|
+
| Context-light handoff | `wp_session_context` (required before spawn — no history paste) |
|
|
32
|
+
| Continuity | `wp_session_capture` / `search` / `restore` |
|
|
33
|
+
| Blueprint tasks | `wp_blueprint_task_verify` only for completion |
|
|
34
|
+
| QA | `wp_qa` / targeted `wp_test` / `wp_lint` / `wp_typecheck` |
|
|
35
|
+
| PR | `wp_pr_upsert` / `wp_pr_status` / `wp_pr_wait` |
|
|
22
36
|
|
|
23
37
|
## Protocol
|
|
24
38
|
|
|
25
39
|
1. Start from a grounded brief or an approved blueprint. If scope is vague, run
|
|
26
|
-
`plan-refine` first and define task lanes, shared files, and verification.
|
|
40
|
+
`plan-refine` first and define task lanes, shared files, budgets, and verification.
|
|
27
41
|
2. Open or reuse `wp dash` and launch the provider sessions needed for the
|
|
28
42
|
lanes. Direct `wp claude`, `wp codex`, and `wp opencode` commands are
|
|
29
43
|
expected to enter the dashboard in interactive terminals.
|
|
30
44
|
3. Assign one owner per lane. Include the task, allowed files or surfaces,
|
|
31
45
|
expected output, verification command, and blocker-report rule.
|
|
32
|
-
4.
|
|
46
|
+
4. Before each worker spawn, build a bounded manifest with `wp_session_context`
|
|
47
|
+
(objective, constraints, evidence refs, remaining steps). Never copy parent transcripts.
|
|
48
|
+
5. Keep one lane or leader pass responsible for integration and evidence.
|
|
33
49
|
Workers report findings, patches, tests, and unresolved risks; they do not
|
|
34
50
|
self-approve or mark blueprint tasks complete.
|
|
35
|
-
|
|
51
|
+
6. Integrate only after checking shared-file conflicts, updated assumptions,
|
|
36
52
|
and verification evidence. Use `wp_blueprint_task_verify` for task completion
|
|
37
53
|
when a blueprint owns the work.
|
|
38
|
-
|
|
39
|
-
leader has recorded verification evidence.
|
|
54
|
+
7. Stop when every lane is complete, cancelled, or explicitly blocked and the
|
|
55
|
+
leader has recorded verification evidence (≤40-line handoff if blocked).
|
|
40
56
|
|
|
41
57
|
## Coordination Rules
|
|
42
58
|
|
|
43
59
|
- Use a single source of truth for assignments: the blueprint, goal handoff, or
|
|
44
60
|
leader-maintained task list.
|
|
45
|
-
-
|
|
46
|
-
|
|
61
|
+
- Cap concurrency (default 4). Cascade-skip dependents of hard failures.
|
|
62
|
+
- Opportunistic `/fix` uses `fix_budget` (default 1) total across the team, not per lane.
|
|
63
|
+
- Require ACK-style lane starts for shared files, dependency boundaries, or handoffs.
|
|
47
64
|
- Reassign or narrow blocked lanes instead of letting work drift.
|
|
48
65
|
- Escalate changed assumptions before widening scope.
|
|
49
66
|
- Never bypass review provenance, push to main, self-approve, or increase
|