@yemi33/minions 0.1.1633 → 0.1.1635

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.
@@ -0,0 +1,113 @@
1
+ # Docs Playbook
2
+
3
+ > Agent: {{agent_name}} ({{agent_role}}) | Task: {{item_name}} | ID: {{item_id}}
4
+
5
+ ## Context
6
+
7
+ Repo: {{repo_name}} | Org: {{ado_org}} | Project: {{ado_project}}
8
+ Team root: {{team_root}}
9
+ Project path: {{project_path}}
10
+
11
+ ## Mission
12
+
13
+ Update, expand, or rewrite project documentation. Targets include READMEs, CLAUDE.md,
14
+ files under `docs/`, JSDoc/TSDoc on exported APIs, and inline comments where they add
15
+ real WHY value (not WHAT — the code already says what). Keep voice consistent with the
16
+ project's existing docs.
17
+
18
+ ## Task
19
+
20
+ **{{item_name}}**
21
+
22
+ {{item_description}}
23
+
24
+ {{additional_context}}
25
+
26
+ {{references}}
27
+
28
+ {{acceptance_criteria}}
29
+
30
+ ## Steps
31
+
32
+ ### 1. Read the doc(s) and the code they describe
33
+
34
+ - Open the doc(s) being changed end-to-end before writing.
35
+ - Read the source they describe — function signatures, exported symbols, config keys,
36
+ CLI flags, file paths. Don't trust the existing doc; trust the code.
37
+ - For project-level docs (README, CLAUDE.md, /docs/*.md), skim adjacent docs so your
38
+ voice and structure match.
39
+
40
+ ### 2. Confirm doc reflects current code
41
+
42
+ For every claim in the doc you're touching, verify it against current code:
43
+
44
+ - Does the function still exist with that signature?
45
+ - Are the file paths correct?
46
+ - Are the listed flags / config keys still accepted?
47
+ - Are removed features still being documented?
48
+ - Are new features (visible in code) missing from the doc?
49
+
50
+ If the doc describes vapor, delete the section. If real features are missing, add them.
51
+
52
+ ### 3. Write or update concisely
53
+
54
+ - Match the project's existing voice — read 2-3 nearby docs to calibrate tone.
55
+ - Prefer concrete examples over abstract description.
56
+ - For code comments: follow the project's "Default to writing no comments" rule
57
+ (CLAUDE.md). Add comments only where they explain WHY a non-obvious choice was made,
58
+ never to restate WHAT the code does.
59
+ - For project-level docs: the bar is "would a new contributor understand this?"
60
+ - Keep tables, lists, and code blocks formatted consistently with surrounding docs.
61
+
62
+ ### 4. Verify
63
+
64
+ - Re-read the changed doc end-to-end after editing — does it still flow?
65
+ - If the project has doc-validation tests (lint, link-check, snippet-execution), run
66
+ them. Otherwise run `npm test` (or the project's documented test command) to make
67
+ sure nothing else broke.
68
+ - For docs with embedded code samples, mentally execute each sample against current
69
+ code — stale samples are worse than missing ones.
70
+
71
+ ## Acceptance
72
+
73
+ - Doc accurately reflects current code (no vapor, no missing features).
74
+ - Voice and structure match the rest of the project's docs.
75
+ - For inline code comments: follow project conventions; add comments only where they
76
+ explain WHY, never WHAT.
77
+ - For project-level docs: a new contributor could read it and understand the topic.
78
+ - Existing tests still pass; any doc-validation tests pass.
79
+
80
+ ## Git Workflow
81
+
82
+ You are already running in a git worktree on branch `{{branch_name}}`. Do NOT create
83
+ additional worktrees — the engine pre-created one for you. Do NOT remove the worktree —
84
+ the engine handles cleanup automatically.
85
+
86
+ Commit only the doc files (and any helper assets they reference). Do not bundle
87
+ unrelated code changes into a docs PR.
88
+
89
+ ```bash
90
+ git add <doc files>
91
+ git commit -m "{{commit_message}}"
92
+ git push -u origin {{branch_name}}
93
+ ```
94
+
95
+ PR creation is MANDATORY for docs tasks — docs go through the same review flow as code.
96
+ Use the appropriate repo-host tooling for PR creation. For Azure DevOps, prefer the
97
+ `az` CLI first and use the ADO MCP only as a fallback.
98
+
99
+ ## Rules
100
+
101
+ - Do NOT modify product code unless the task explicitly asks for it.
102
+ - Do NOT add comments that restate what the code does.
103
+ - Do NOT invent features that don't exist; verify against current code.
104
+ - Read `notes.md` for all team rules before starting.
105
+
106
+ ## When to Stop
107
+
108
+ Your task is complete once the doc accurately reflects current code, the PR is created
109
+ with the changed doc files, and any doc-validation tests pass. Do not continue editing
110
+ adjacent docs that weren't part of the task.
111
+
112
+ ## Team Decisions
113
+ {{notes_content}}
package/playbooks/fix.md CHANGED
@@ -45,7 +45,7 @@ Before pushing, prove the review fix did not break the branch:
45
45
  - Fix regressions you introduced. If failures are pre-existing or unrelated, capture the evidence and include it in the PR comment.
46
46
  - Do not push code that breaks existing tests or the build because of your changes.
47
47
 
48
- > ⚠️ **Long builds (Gradle, MSBuild, dotnet, fresh `npm install`)**: any command that may stay silent for more than ~4 minutes will be killed by the heartbeat monitor. Run it via `Bash(run_in_background: true)` then `Monitor` to stream stdout, OR pass an explicit `timeout` (max 600000 ms). See **Long-Running Build / Test Commands** below for the full pattern.
48
+ Long builds, dependency installs, and tests may be quiet for several minutes. Let the normal CLI command run naturally; do not add artificial heartbeat output or split commands just to show progress.
49
49
 
50
50
  ## Publish & Comment on PR
51
51
 
@@ -66,7 +66,7 @@ Before publishing, prove the shared branch still works with your change included
66
66
  - Fix regressions you introduced. If failures are pre-existing or caused by earlier branch work, capture the evidence and say so clearly.
67
67
  - Do not push code with a broken build or failing tests that you introduced.
68
68
 
69
- > ⚠️ **Long builds (Gradle, MSBuild, dotnet, fresh `npm install`)**: any command that may stay silent for more than ~4 minutes will be killed by the heartbeat monitor. Run it via `Bash(run_in_background: true)` then `Monitor` to stream stdout, OR pass an explicit `timeout` (max 600000 ms). See **Long-Running Build / Test Commands** below for the full pattern.
69
+ Long builds, dependency installs, and tests may be quiet for several minutes. Let the normal CLI command run naturally; do not add artificial heartbeat output or split commands just to show progress.
70
70
 
71
71
  ## Publish
72
72
 
@@ -20,15 +20,11 @@ Implement PRD item **{{item_id}}: {{item_name}}**
20
20
 
21
21
  {{checkpoint_context}}
22
22
 
23
- ## Projects
23
+ ## Project Scope
24
24
 
25
25
  Primary repo: **{{repo_name}}** ({{ado_org}}/{{ado_project}}) at `{{project_path}}`
26
26
 
27
- If this feature spans multiple projects, you may need to:
28
- 1. Read code from all listed project paths to understand integration points
29
- 2. Make changes in the primary project (your worktree)
30
- 3. If changes are needed in other projects, create separate worktrees and PRs for each
31
- 4. Note cross-repo dependencies in PR descriptions (e.g., "Requires office-bohemia PR #123")
27
+ If this feature spans multiple projects, inspect the relevant repos, make changes where they belong, and call out any cross-repo PR dependencies in PR descriptions.
32
28
 
33
29
  ## Health Check
34
30
 
@@ -62,7 +58,7 @@ Before publishing, prove the change with the repo's own documented checks:
62
58
  - Fix regressions you introduced. If failures are pre-existing or outside the task, capture the evidence and make that explicit in the PR.
63
59
  - Do not publish changes with a broken build or failing tests that you introduced.
64
60
 
65
- > ⚠️ **Long builds (Gradle, MSBuild, dotnet, fresh `npm install`)**: any command that may stay silent for more than ~4 minutes will be killed by the heartbeat monitor. Run it via `Bash(run_in_background: true)` then `Monitor` to stream stdout, OR pass an explicit `timeout` (max 600000 ms). See **Long-Running Build / Test Commands** below for the full pattern.
61
+ Long builds, dependency installs, and tests may be quiet for several minutes. Let the normal CLI command run naturally; do not add artificial heartbeat output or split commands just to show progress.
66
62
 
67
63
  ## Publish
68
64
 
@@ -1,17 +1,6 @@
1
- ## Quality Standard
1
+ ## Operating Principle
2
2
 
3
- Codex will review your changes make sure your implementation is thorough and not lazy.
4
-
5
- ## Reasoning and Teaching Posture
6
-
7
- - Act like you've already explained this yesterday. Do not ramble, re-teach obvious basics, or pad the answer. Get to the point fast.
8
- - You are an IQ 150 software engineering specialist. If the reasoning is average, vague, or hand-wavy, it is wrong.
9
- - You have a student who is eagerly trying to learn from you. Display model behavior: be rigorous, teach cleanly, and show what good engineering thinking looks like.
10
- - Explain concepts like you are teaching a packed auditorium. If the structure is weak or the example is forgettable, the explanation failed.
11
- - Always verify your claims. If you state something as true, earn it.
12
- - Treat every answer like there is $100 on the line. Sloppy logic, missed edge cases, and fake confidence lose the bet.
13
- - Assume another CLI is going to review the code and try to prove you wrong. Close every hole before you answer.
14
- - Leave no stone unturned when implementing or explaining. Half-checks, shallow analysis, and partial reasoning are not acceptable.
3
+ Treat a Minions assignment like the user typed the same task directly into a capable CLI agent. Optimize for the requested outcome and use the repo's own tools, conventions, and acceptance criteria.
15
4
 
16
5
  ## Context Window Awareness
17
6
 
@@ -61,39 +50,9 @@ Treat a Minions assignment like the user typed the same task directly into a cap
61
50
  Do **not** create a skill for one-off bug fixes, isolated command outputs, obvious repo facts, or anything already covered by existing docs/playbooks/skills.
62
51
  - Do TDD where it makes sense — write failing tests first, then implement, then verify tests pass. Especially for bug fixes (write a test that reproduces the bug) and new utility functions.
63
52
 
64
- ## Long-Running Build / Test Commands (Heartbeat Safety)
65
-
66
- The engine kills agents that produce no stdout for `heartbeatTimeout` (default **300s / 5 min**). A blocking shell call with zero stdout for that long is treated as hung. Cold builds (Gradle daemon spin-up, MSBuild restore, fresh `npm install`, `cargo build`) routinely exceed this with no intermediate output.
67
-
68
- **Two approved patterns — pick one when a command may exceed 4 minutes of silence:**
69
-
70
- ### Pattern A — Stream output via background process + Monitor (preferred)
71
-
72
- ```
73
- 1. Bash({ command: "./gradlew test", run_in_background: true }) # returns a bash_id immediately
74
- 2. Monitor({ bash_id: "<id>" }) # streams each stdout line as a notification
75
- ```
76
-
77
- Why: each line that the build emits arrives as a notification, which resets the heartbeat. You see live progress in the dashboard. The Monitor call itself is recognised by the engine as a blocking tool (heartbeat extended ~30 min).
78
-
79
- > ⚠️ **Never use `Monitor({ command: "tail -F <file> | grep ..." })` for long builds.** It looks tidy — only the lines you care about — but it is a heartbeat trap. Cold Gradle / MSBuild / `cargo build` spend 3–8 minutes in a startup + dependency-resolution phase that produces output that **does not match** typical filter terms (`BUILD SUCCESSFUL`, `BUILD FAILED`, `error:`). The grep filter swallows every line, Monitor emits zero notifications, the heartbeat fires at 300s, and the engine kills the agent mid-build. Always pass `bash_id` directly — every output line resets the heartbeat, and noisy output is the *whole point* of the pattern.
80
-
81
- ### Pattern B — Single Bash call with explicit `timeout`
82
-
83
- ```
84
- Bash({ command: "./gradlew test", timeout: 600000 }) # max 600000 = 10 min
85
- ```
86
-
87
- The engine reads `input.timeout` from the tool call and extends the heartbeat to `timeout + 60s` for that turn. **The extension is opt-in** — without an explicit `timeout`, the agent is killed at `heartbeatTimeout`. PowerShell tool follows the same rule.
88
-
89
- ### What NOT to do
90
-
91
- - Do NOT run `./gradlew`, `mvn`, `dotnet test`, or any cold-cache build as a default `Bash` call (no `timeout`, no `run_in_background`). It will hit the 120s Bash default, then the 300s heartbeat, and the engine will kill you.
92
- - Do NOT use `Monitor({ command: "tail | grep ..." })` for any build that has a silent startup phase (cold Gradle, MSBuild, fresh `npm install`, `cargo build`). The grep filter suppresses Gradle's startup output, Monitor emits nothing, heartbeat fires at 300s, agent is killed. Use `Monitor({ bash_id })` instead — noisy output is better than a dead agent.
93
- - Do NOT loop `sleep` to "wait it out" — sleep produces no stdout and looks identical to a hang.
94
- - Do NOT pipe through `tee` thinking that helps — heartbeat reads agent stdout, not the underlying file.
53
+ ## Long-Running Commands
95
54
 
96
- If you don't know how long a command takes, default to **Pattern A** there is no downside to streaming.
55
+ Builds, dependency installs, tests, and local servers can be quiet for long periods. Run the repo's normal CLI commands and let them finish; do not add artificial progress output, heartbeat loops, or command-specific workarounds just to keep Minions active.
97
56
 
98
57
  ## Checking PR and Build Status
99
58
 
package/playbooks/test.md CHANGED
@@ -15,60 +15,37 @@ Team root: {{team_root}}
15
15
 
16
16
  {{additional_context}}
17
17
 
18
- ## Instructions
18
+ ## Mission
19
19
 
20
- This is a **test/build/run task**. Your goal is to build, run, test, or verify something.
20
+ Build, run, test, or verify the requested target. This is a verification task unless the description explicitly asks for code or test changes.
21
21
 
22
- 1. **Navigate** to the correct project directory
23
- 2. You are already in the correct working directory. If you need a specific branch, use `git checkout` — do NOT create additional worktrees.
24
- 3. **Build** the project — follow the repo's build instructions (check CLAUDE.md, package.json, README)
25
- 4. **Run** if the task asks for it (e.g., `yarn start`, `yarn dev`, docker-compose, etc.)
26
- 5. **Test** if the task asks for it (e.g., `yarn test`, `pytest`, etc.)
27
- 6. **Write tests** if the task asks you to add or improve test coverage — commit and open a PR when done
28
- 7. **Report results** — what worked, what failed, build output, test results, localhost URL if running
22
+ ## Long-Running Commands
29
23
 
30
- ## Working Style
24
+ Builds, tests, dependency installs, and server startups can be silent for several minutes. Run the normal CLI commands and wait for them to finish; do not add progress pings or extra logging just to keep the engine active.
31
25
 
32
- Use subagents only for genuinely parallel, independent tasks. For building, testing, and reporting results, work directly — do not spawn subagents.
26
+ ## Approach
33
27
 
34
- ## Rules
28
+ Work from the current project checkout prepared by the engine. Follow the repo's own instructions (`CLAUDE.md`, README, package files, Makefiles, project scripts) and run the smallest sensible set of commands that proves the requested behavior.
35
29
 
36
- - **Do NOT modify production code** unless the task explicitly asks for a fix
37
- - **Create a PR** if the task involves writing or modifying files (new tests, test fixes, etc.) — follow the same PR conventions as implement tasks
38
- - **Do NOT push or create a PR** for pure build/run/verify tasks that make no file changes
39
- - Use PowerShell for build commands on Windows if applicable
40
- - If a build or test fails, report the error clearly — don't try to fix it unless asked
41
- - If running a local server, report the URL (e.g., http://localhost:3000)
30
+ If the task asks you to add or modify files, commit those focused changes, push the branch, and create a PR using the same conventions as implement tasks. For pure build/run/verify tasks, do not push or create a PR.
42
31
 
43
- ## Run Command
32
+ If a build or test fails, report the error clearly instead of fixing it unless the task explicitly asks for a fix.
44
33
 
45
- When the build succeeds and the task involves running a server or app, output a ready-to-paste run command using **absolute paths** so the user can launch it from any terminal. Format it exactly like this:
34
+ If the task involves a local server or app, report the URL and a ready-to-paste run command with absolute paths:
46
35
 
47
- ```
36
+ ```text
48
37
  ## Run Command
49
38
  cd <absolute-path-to-project-or-worktree> && <exact command to start the server>
50
39
  ```
51
40
 
52
- Example: `cd C:/Users/you/my-project && yarn dev`
53
-
54
- The agent process terminates after completion, so any dev server you start will die with it. The user needs this command to run it themselves.
55
-
56
- ## After Successful Completion
57
-
58
- Write your findings to `{{team_root}}/notes/inbox/{{agent_id}}-{{item_id}}-{{date}}.md` **only after a successful run**: all requested build/test/run steps completed, required checks passed, and any required PR was created.
59
-
60
- If any requested build, test, run, or file-change step fails or is blocked, do **not** write an inbox note. Report the failure clearly in your final response, including the command, error summary, and any next action needed.
61
-
62
- Include:
63
- - Build status
64
- - Test results if applicable
65
- - Any errors or warnings
66
- - The run command (absolute paths, copy-pasteable from any terminal)
67
- - Localhost URL if applicable
41
+ ## Findings
68
42
 
43
+ Write findings to `{{team_root}}/notes/inbox/{{agent_id}}-{{item_id}}-{{date}}.md` only after successful completion.
69
44
 
70
- ## When to Stop
45
+ Include build status, test results, errors or warnings, run command, localhost URL if applicable, and PR URL if file changes were made.
71
46
 
72
- Your task is complete once you have run the tests, written the success findings to the inbox file, and (if the task involved file changes) created and submitted a PR. If the run failed or was blocked, stop after reporting the failure in your final response; do not write an inbox file.
47
+ ## Constraints
73
48
 
74
- Do NOT remove worktrees the engine handles cleanup automatically.
49
+ - Do not modify production code unless explicitly asked.
50
+ - Use PowerShell for build commands on Windows if applicable.
51
+ - Do not remove worktrees; the engine handles cleanup automatically.
@@ -11,168 +11,56 @@ Repo: {{repo_name}} | Org: {{ado_org}} | ADO Project: {{ado_project}}
11
11
 
12
12
  {{task_description}}
13
13
 
14
- ## Your Task
14
+ ## Mission
15
15
 
16
- Verify that a set of related changes work correctly together. You must **figure out** how to build, test, and run this specific project do not assume any particular language, framework, or tooling. Follow this process:
16
+ Verify the completed plan as a whole: build and test the relevant project worktrees, identify how to run the user-facing app if there is one, create or update aggregate E2E PRs when needed, and write a transparent testing guide.
17
17
 
18
- 1. **Set up worktrees** with all PR branches merged
19
- 2. **Understand the project** — read its docs to learn how to build, test, and run it
20
- 3. **Build and test** from each worktree
21
- 4. **Start the application** if applicable (keep it running detached)
22
- 5. **Write a transparent verification report and testing guide**
23
- 6. **Create E2E pull requests**
18
+ ## Long-Running Commands
24
19
 
25
- ## Step 1: Set Up Worktrees
20
+ Builds, dependency installs, tests, and app startup can be silent for several minutes. Run the normal CLI commands and let them finish; do not emit artificial progress pings or heartbeat output.
26
21
 
27
- The description above contains setup commands that create **one worktree per project** and merge all PR branches into it. Run them.
22
+ ## Approach
28
23
 
29
- If any merge conflicts occur:
30
- - Resolve them, preferring the PR branch changes
31
- - Commit the resolution in the worktree
24
+ Use the setup information in the plan details to create or enter the aggregate worktrees and merge the relevant PR branches. Resolve merge conflicts only when needed to make the verification branch buildable, and record what was resolved.
32
25
 
33
- After setup, all changes for a project are in a single directory no switching between branches.
26
+ For each relevant worktree, follow the repo's own instructions (`CLAUDE.md`, README, package files, Makefiles, project scripts), install/restore dependencies as needed, build, and run tests where they exist. If a project fails, report the error and continue verifying the rest; do not turn this into an implementation/fix task.
34
27
 
35
- ## Step 2: Understand the Project
28
+ If there is a user-facing app, identify the normal command and URL. If the app needs to keep running after the agent exits, start it detached in the worktree, save the PID, verify the URL responds, and include restart/stop commands with absolute paths.
36
29
 
37
- For each project worktree, **read its documentation** to understand:
38
- - What language/framework it uses
39
- - How to install dependencies
40
- - How to build it
41
- - How to run tests
42
- - How to start it (if it has a runnable application)
30
+ ## Testing Guide
43
31
 
44
- Check these files: `CLAUDE.md`, `README.md`, `package.json`, `Makefile`, `Cargo.toml`, `pyproject.toml`, `build.gradle`, `CMakeLists.txt`, `docker-compose.yml`, `Podfile`, `build.gradle.kts`, `*.xcodeproj`, `*.xcworkspace`, or whatever build system the project uses.
32
+ Be transparent: clearly state what passed, what failed, what was not run, and why.
45
33
 
46
- Treat the repository's own docs, scripts, and config as the source of truth for build, test, and run commands. If the repo provides multiple options, choose the standard local verification path it recommends.
34
+ Always create the permanent guide linked from the dashboard:
47
35
 
48
- **Do not assume any specific platform.** The project could be a web app, mobile app (Android/iOS/React Native/Flutter), backend service, CLI tool, library, monorepo, or anything else. Adapt your verification approach to what the project actually is.
36
+ `{{team_root}}/prd/guides/verify-{{plan_slug}}.md`
49
37
 
50
- ## Step 3: Build and Test
38
+ Create the inbox copy only after a successful verification run:
51
39
 
52
- For each project worktree:
53
- 1. `cd` into the worktree path
54
- 2. Install dependencies using the command or workflow the repo specifies
55
- 3. Run the build using the repo's documented build command
56
- 4. Run the test suite the repo defines for full verification
57
- 5. Record: PASS or FAIL with error output, test counts (passed/failed/skipped)
40
+ `{{team_root}}/notes/inbox/verify-{{plan_slug}}.md`
58
41
 
59
- If a build or test fails, **do NOT fix it** report the exact error and continue with other projects.
42
+ A successful verification run means every required project build/test passed or was legitimately not applicable, each runnable app was started and smoke-checked when required, and the required E2E PRs were created or updated. If verification is failed, blocked, or partial, do not create the inbox copy; record the details in the permanent guide and final response instead.
60
43
 
61
- > ⚠️ **Long builds (Gradle, MSBuild, dotnet, fresh `npm install`)**: any command that may stay silent for more than ~4 minutes will be killed by the heartbeat monitor. Run it via `Bash(run_in_background: true)` then `Monitor` to stream stdout, OR pass an explicit `timeout` (max 600000 ms). See **Long-Running Build / Test Commands** below for the full pattern.
44
+ Use the template at `{{team_root}}/playbooks/templates/verify-guide.md` and clearly separate what was verified from what still needs human review.
62
45
 
63
- ## Step 4: Start the Application (if applicable)
46
+ ## E2E PRs
64
47
 
65
- Determine if the project has a **runnable application** (web server, API, desktop app, mobile emulator, etc.) by reading its documentation and build config. For mobile apps, check if an emulator/simulator can be launched or if building an APK/IPA is the appropriate verification step.
48
+ For each project with aggregate verification changes, create or update one draft/review PR that combines the plan branches into a single reviewable diff. Reuse an existing `e2e/{{plan_slug}}` branch/PR when present. Include the plan summary, merged PRs, testing guide, and build/test status. Do not auto-complete or merge these PRs.
66
49
 
67
- If found:
68
- 1. Start it **detached from your process** so it survives after you exit.
69
- - If the repo docs provide a local run or background-start command, use that.
70
- - Otherwise, use the detached-process mechanism that fits the current environment. Do not assume Bash, PowerShell, or any specific shell unless the repo or runtime clearly provides it.
71
- 2. Wait a few seconds, then verify it using the repo's documented smoke test, health check, startup output, or the lightest project-appropriate manual check.
72
- 3. Note the URL, port, process identifier, or equivalent runtime details the repo exposes
73
- 4. Output the exact restart command with **absolute worktree paths**
74
- 5. Include the stop command or shutdown procedure that matches how you started it
50
+ Track each E2E PR in the project's `.minions/pull-requests.json` if it is not already tracked.
75
51
 
76
- If the project has no runnable application, skip this step and note that in the guide.
77
-
78
- ## Step 5: Write the Verification Report and Testing Guide
79
-
80
- Always create the permanent guide linked from the dashboard:
81
- 1. **Permanent location**: `{{team_root}}/prd/guides/verify-{{plan_slug}}.md`
82
-
83
- Create the inbox copy only after a successful verification run:
84
- 2. **Inbox copy**: `{{team_root}}/notes/inbox/verify-{{plan_slug}}.md`
85
-
86
- A successful verification run means every required project build/test passed or was legitimately not applicable, each runnable app was started and smoke-checked when required, and the required E2E PRs were created or updated. If verification is failed, blocked, or partial, do **not** create the inbox copy; record the details in the permanent guide and final response instead.
87
-
88
- **Be transparent.** The guide must clearly state what was built, what was tested, what passed, what failed, and what still needs human verification.
89
-
90
- Use the template structure from `{{team_root}}/playbooks/templates/verify-guide.md` — read it and fill in each section with your actual findings.
91
-
92
- ## Step 6: Create E2E Pull Requests
93
-
94
- For each project that has changes, create a single **aggregate PR** that combines all the plan's branches into one. This gives the human reviewer a single diff showing the full picture.
95
-
96
- For each project worktree:
97
-
98
- 1. **Check for an existing E2E branch/PR first** — a prior verify run may have already created one:
99
- ```bash
100
- cd <worktree-path>
101
- git fetch origin
102
- # Check if the E2E branch already exists on remote
103
- git ls-remote --heads origin e2e/{{plan_slug}}
104
- ```
105
- - If the branch **already exists**: check out the existing branch (`git checkout e2e/{{plan_slug}}`), reset it to your current worktree state, and force-push to update it. Then check if a PR already exists for this branch — if so, **update that PR** instead of creating a new one.
106
- - If the branch **does not exist**: create it fresh:
107
- ```bash
108
- git checkout -b e2e/{{plan_slug}}
109
- git push origin e2e/{{plan_slug}}
110
- ```
111
-
112
- 2. **Check for an existing E2E PR** before creating a new one:
113
- - For GitHub: `gh pr list --head e2e/{{plan_slug}} --state open`
114
- - For ADO: use `az` CLI first to search for PRs with source branch `e2e/{{plan_slug}}`; use ADO MCP only as a fallback when `az` is unavailable or insufficient
115
- - If found, **update the existing PR** description with latest build/test results. Do NOT create a duplicate.
116
- - If not found, create a new PR targeting the project's main branch:
117
- - **Title:** `[E2E] <plan summary>`
118
- - **Description:** Include the plan summary, list of all individual PRs merged, build/test status from Step 3, and link to the testing guide
119
- - **Target branch:** the project's main branch (e.g., `main` or `master`)
120
- - **Do NOT auto-complete** — this is for review only
121
- - **Mark as draft** if the option is available
122
-
123
- 3. Add the E2E PR to the project's `.minions/pull-requests.json` (skip if it's already tracked):
124
- ```bash
125
- node -e "
126
- const fs = require('fs');
127
- const p = '<project-path>/.minions/pull-requests.json';
128
- const prs = JSON.parse(fs.readFileSync(p, 'utf8'));
129
- // Skip if already tracked
130
- if (prs.some(pr => pr.branch === 'e2e/{{plan_slug}}')) process.exit(0);
131
- prs.push({
132
- id: 'PR-<number>',
133
- title: '[E2E] <plan summary>',
134
- agent: '{{agent_name}}',
135
- branch: 'e2e/{{plan_slug}}',
136
- reviewStatus: 'pending',
137
- status: 'active',
138
- created: new Date().toISOString().slice(0,10),
139
- url: '<pr-url>',
140
- prdItems: []
141
- });
142
- fs.writeFileSync(p, JSON.stringify(prs, null, 2));
143
- "
144
- ```
145
-
146
- 4. Note the E2E PR URLs in the testing guide.
147
-
148
- ## Working Style
149
-
150
- Use subagents only for genuinely parallel, independent build/test tasks on separate project worktrees. For sequential work (docs → build → test → report), and for starting detached servers, work directly — do not spawn subagents.
151
-
152
- ## Rules
153
-
154
- - **Read the project docs first** — never assume a build system, language, or framework
155
- - Treat repo-provided docs, scripts, and config as the source of truth for build/test/run commands
156
- - Base testing steps on the **acceptance criteria** from each plan item
157
- - Include **concrete steps** — URLs, buttons to click, inputs to type, expected results
158
- - Be **transparent** — clearly separate what you verified vs what needs human review
159
- - If a project doesn't build, still document what SHOULD be testable once fixed
160
- - Do NOT fix code — only report issues
161
- - Leave all worktrees in place for the user to inspect
162
- - Start the application **detached** so it keeps running after your process exits
163
- - Use absolute paths everywhere so the user can copy-paste commands
164
- - E2E PRs are for review only — do NOT auto-complete or merge them
52
+ ## Constraints
165
53
 
54
+ - Do not assume any specific platform, language, framework, shell, build system, mobile app, web app, Android, or iOS target.
55
+ - Read project docs first; use `CLAUDE.md`, `README.md`, and nearby project configuration as the source of truth.
56
+ - Base manual testing steps on the plan acceptance criteria.
57
+ - If a project does not build, still document what should be testable once fixed.
58
+ - Do not fix product code except for merge-conflict resolutions needed to create the verification branch.
59
+ - Leave verification worktrees in place for user inspection.
60
+ - Use absolute paths in commands the user may copy.
166
61
 
167
62
  ## When to Stop
168
63
 
169
- Your task is complete once you have: (1) merged dependency branches, (2) built and tested, (3) written the verification report to the permanent guide, (4) written the inbox copy only if verification succeeded, and (5) created the E2E PR(s).
170
-
171
- **IMPORTANT: Your final message MUST include the E2E PR URL(s) so the engine can track them.** Example final message:
172
-
173
- ```
174
- Verification complete. E2E PR created: https://github.com/org/repo/pull/123
175
- Testing guide saved to prd/guides/verify-plan-name.md
176
- ```
64
+ Your task is complete once dependency branches are merged, build/test verification has run, the permanent guide is written, the inbox copy is written only if verification succeeded, and E2E PR URLs are included in your final response.
177
65
 
178
- Stop after confirming the PR was created.
66
+ Your final message MUST include each E2E PR URL and the testing guide path, for example: `E2E PR created: <url>` and `Testing guide: {{team_root}}/prd/guides/verify-{{plan_slug}}.md`.
@@ -30,6 +30,7 @@ Treat this like the user typed the task directly into a CLI agent:
30
30
  - Follow existing repo conventions and avoid unrelated cleanups.
31
31
  - Validate with the repo's documented build/test/check commands. Fix regressions you introduced; if failures are pre-existing or outside the task, document the evidence.
32
32
  - Do NOT publish code with a broken build or failing tests that you introduced.
33
+ - Long builds and tests may be quiet for several minutes. Let normal CLI commands run without artificial heartbeat output.
33
34
 
34
35
  After the change is ready for review, commit only relevant files, push `{{branch_name}}`, create the PR, and post implementation notes with the validation result:
35
36
 
@@ -77,6 +77,8 @@ Core action types:
77
77
  workTypes: `explore` (research/report only, NO PR), `ask` (answer/report, NO PR), `implement` (new code, PR REQUIRED), `fix` (bug fix, PR REQUIRED), `review` (code review, NO PR), `test` (tests, PR if new), `verify` (merge/build/maintenance, NO PR)
78
78
  If the user wants a design/architecture artifact committed through a PR, dispatch `implement` or `docs` rather than `explore`.
79
79
  When the user names a specific agent ("assign this to lambert"), put exactly that one name in `agents` (e.g. `"agents": ["lambert"]`). A single-agent assignment is hard-pinned by the server — it will queue for that agent only and skip the routing table. Use multi-agent arrays only when the user names multiple agents or asks for fan-out.
80
+ - **build-and-test**: pr, project (optional), agent (optional) — Run the build-and-test playbook against a PR. The agent will checkout the PR branch, run the project's build/test commands, and report results. Use when the user asks to "run tests on PR X" or "build PR X" or after a fix to verify nothing regressed.
81
+ Example: user says "run build and test on PR 1834" → `{"type":"build-and-test","pr":"1834"}`
80
82
  - **note**: title, content — save to inbox
81
83
  - **knowledge**: title, content, category (architecture/conventions/project-notes/build-reports/reviews) — create new KB entry or copy existing doc to KB
82
84
  - **pin-to-pinned**: title, content, level (critical/warning) — write to pinned.md, force-injected into ALL agent prompts (rarely needed)