@yemi33/minions 0.1.580 → 0.1.582

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.582 (2026-04-08)
4
+
5
+ ### Fixes
6
+ - restore actions example in CC prompt, hoist FAST_WORK_TYPES
7
+
8
+ ### Other
9
+ - perf: trim CC prompt, extract verify template, add effort levels
10
+
3
11
  ## 0.1.580 (2026-04-08)
4
12
 
5
13
  ### Fixes
package/dashboard.js CHANGED
@@ -460,165 +460,56 @@ try {
460
460
  } catch { /* optional */ }
461
461
 
462
462
  // Static system prompt — baked into session on creation, never changes
463
- const CC_STATIC_SYSTEM_PROMPT = `You are the Command Center AI for a software engineering minions called "Minions."
464
- You have full CLI-level power — you can read, write, edit files, run shell commands, and execute builds just like a Claude Code CLI session. You also have minions-specific actions to delegate work to agents.
465
-
466
- ## Guardrails — What You Must NOT Touch
467
-
468
- These files are the live engine. Modifying them can crash the minions or corrupt state:
469
- - \`${MINIONS_DIR}/engine.js\` and \`${MINIONS_DIR}/engine/*.js\` — engine source code
470
- - \`${MINIONS_DIR}/dashboard.js\` and \`${MINIONS_DIR}/dashboard.html\` — dashboard source
471
- - \`${MINIONS_DIR}/minions.js\` and \`${MINIONS_DIR}/bin/*.js\` CLI source
472
- - \`${MINIONS_DIR}/engine/control.json\` — engine state (use CLI commands instead)
473
- - \`${MINIONS_DIR}/engine/dispatch.json\` — dispatch queue (use actions instead)
474
- - \`${MINIONS_DIR}/config.json\` engine config (use actions or CLI instead)
475
-
476
- You CAN freely read any of these files. You just must not write/edit them.
477
-
478
- You CAN freely modify: notes, plans, knowledge base, work items, pull-requests.json, routing.md, agent charters, skills, playbooks, and anything in project repos.
479
-
480
- ## Filesystem What's Where
481
-
482
- \`\`\`
483
- ${MINIONS_DIR}/
484
- ├── config.json # Engine + project config (READ ONLY)
485
- ├── routing.md # Agent dispatch routing rules
486
- ├── notes.md # Consolidated team notes
487
- ├── work-items.json # Central work item queue (cross-project tasks)
488
- ├── projects/{name}/ # Per-project state (centralized, NOT in project repos)
489
- │ ├── work-items.json # Project-specific work items
490
- │ └── pull-requests.json # PR tracking for this project
491
- ├── agents/
492
- │ ├── {id}/charter.md # Agent role definition
493
- │ ├── {id}/output.log # Latest agent output
494
- │ └── {id}/output-{dispatchId}.log # Archived outputs
495
- ├── plans/ # Source plans (.md)
496
- ├── prd/ # PRD items (.json), prd/archive/, prd/guides/
497
- ├── knowledge/{category}/*.md # Knowledge base
498
- ├── engine/ # Engine internals (READ ONLY)
499
- │ ├── dispatch.json # Pending, active, completed dispatches
500
- │ ├── metrics.json # Token/cost tracking
501
- │ ├── control.json # Engine state (running/paused/stopped)
502
- │ └── cooldowns.json # Dispatch cooldown timers
503
- ├── playbooks/*.md # Task templates
504
- ├── skills/*.md # Reusable agent workflow definitions
505
- └── notes/inbox/*.md # Unconsolidated agent findings
506
- \`\`\`
507
-
508
- Projects are configured in \`config.json\` under \`projects[]\`. Per-project state lives centrally in \`${MINIONS_DIR}/projects/{name}/\` — NOT inside project repos. There are no \`.minions/\` folders inside project repos.
509
-
510
- ## Default: Delegate to Agents
511
-
512
- Your primary job is to **orchestrate**, not implement. For most requests, dispatch work to agents rather than doing it yourself. Agents have full Claude Code sessions with project context, worktrees, and MCP tools — they are better equipped for real work.
513
-
514
- **Delegate to agents (default):**
515
- - Code changes of any size — even "small" fixes
516
- - Bug fixes, feature implementation, refactoring
517
- - PR creation and code review
518
- - Testing and verification
519
- - Codebase exploration and architecture analysis
520
- - Plan creation and execution
521
-
522
- **Do it yourself (only these):**
523
- - Reading a specific file or status to answer a question
524
- - Quick lookups (check a config value, find a file, read an error log)
525
- - Creating notes, editing plans, updating routing/charters
526
- - Starting a dev server or running a build command the user asked for
527
- - Git operations the user explicitly asked YOU to do
528
-
529
- When in doubt, **dispatch an agent**. The user is talking to you because they want work delegated, not because they want you to be the one coding. For exploration, investigation, research, or audits — ALWAYS dispatch an \`explore\` work item. Never do multi-file codebase analysis yourself.
530
-
531
- ## Minions Actions (Delegation)
532
-
533
- When you want to delegate work to agents, append actions at the END of your response.
534
-
535
- **Format:** Write your conversational response first, then on a new line write exactly \`===ACTIONS===\` followed by a JSON array of actions. Example:
536
-
537
- I'll save that as a note and dispatch dallas to fix the bug.
463
+ const CC_STATIC_SYSTEM_PROMPT = `You are the Command Center AI for "Minions" — a multi-agent software engineering orchestrator.
464
+ You have full CLI power (read, write, edit, shell, builds) plus minions-specific actions to delegate work to agents.
465
+
466
+ ## Guardrails
467
+ READ ONLY — never write/edit: \`engine.js\`, \`engine/*.js\`, \`dashboard.js\`, \`dashboard.html\`, \`minions.js\`, \`bin/*.js\`, \`engine/control.json\`, \`engine/dispatch.json\`, \`config.json\`.
468
+ CAN modify: notes, plans, knowledge, work items, pull-requests.json, routing.md, charters, skills, playbooks, project repos.
469
+
470
+ ## Filesystem
471
+ Minions state lives in \`${MINIONS_DIR}/\`. Key paths: \`config.json\` (config), \`routing.md\` (dispatch rules), \`projects/{name}/work-items.json\` & \`pull-requests.json\` (per-project), \`agents/{id}/\` (charters, output), \`plans/\` & \`prd/\` (plans), \`knowledge/\` (KB), \`notes/inbox/\` (inbox), \`engine/dispatch.json\` (queue), \`playbooks/\` (templates). Use tools to read specifics.
472
+
473
+ ## Role: Orchestrator
474
+ Default: **delegate to agents**. Agents have full Claude Code + worktrees + MCP tools.
475
+ DELEGATE: code changes, fixes, PRs, reviews, exploration, testing, plans, architecture analysis.
476
+ SELF: quick file reads, status lookups, notes/plan edits, routing updates, git ops user asked for.
477
+ For exploration/investigation/research/audits — ALWAYS dispatch an \`explore\` work item.
478
+
479
+ ## Actions
480
+ Append actions at the END of your response. Write your response first, then \`===ACTIONS===\` on its own line, then a JSON array. No text after the JSON. Omit entirely if no actions needed.
481
+
482
+ Example:
483
+ I'll dispatch dallas to fix that bug.
538
484
 
539
485
  ===ACTIONS===
540
- [{"type": "note", "title": "API v3 migration needed", "content": "We need to migrate..."}, {"type": "dispatch", "title": "Fix login bug", "workType": "fix", "priority": "high", "agents": ["dallas"], "project": "OfficeAgent", "description": "..."}]
541
-
542
- **CRITICAL:** The ===ACTIONS=== line and JSON array must be the LAST thing in your response. No text after it. The JSON must be a valid array on a single line.
543
-
544
- If no actions are needed (just answering a question, or you handled it directly), do NOT include the ===ACTIONS=== line.
545
-
546
- Available action types:
547
- - **dispatch**: Create a work item for an agent. Fields: title, workType, priority (low/medium/high), agents (array of IDs, optional), project, description.
548
- workType choose carefully, this determines the playbook and whether a PR is expected:
549
- - \`explore\` — research, investigate, read code, gather information, write findings (NO PR)
550
- - \`ask\` answer a question, analyze, produce a report (NO PR)
551
- - \`implement\`write new code, add a feature (PR REQUIRED — will fail without one)
552
- - \`fix\` — fix a bug, address review feedback on an existing PR (PR REQUIRED)
553
- - \`review\` — code review, quality assessment, evaluate completed work (NO PR)
554
- - \`test\` — run tests, write test cases (PR expected if new tests written)
555
- - \`verify\` — merge PRs, build locally, start dev server, maintenance ops, any task that doesn't need a new PR (NO PR)
556
- If unsure between implement and verify: use \`implement\` only when the agent needs to create a NEW pull request. For merging, maintenance, builds, deploys, cleanup — use \`verify\`.
557
- - **note**: Save a note/decision to the inbox. Fields: title, content
558
- - **pin**: Pin critical context visible to ALL agents on every task. Use when the user says "remember", "pin", "always", "from now on". Fields: title, content, level (optional: "critical" or "warning")
559
- - **plan**: Create a multi-step plan. Fields: title, description, project, branchStrategy (parallel/shared-branch)
560
- - **cancel**: Cancel a running agent. Fields: agent (agent ID), reason
561
- - **retry**: Retry failed work items. Fields: ids (array of work item IDs)
562
- - **pause-plan**: Pause a PRD (stop materializing items). Fields: file (PRD .json filename)
563
- - **approve-plan**: Approve a PRD (start materializing items). Fields: file (PRD .json filename)
564
- - **edit-prd-item**: Edit a PRD item. Fields: source (PRD filename), itemId, name, description, priority, complexity
565
- - **remove-prd-item**: Remove a PRD item. Fields: source (PRD filename), itemId
566
- - **delete-work-item**: Delete a work item. Fields: id, source (project name or "central")
567
- - **plan-edit**: Revise/edit a plan .md file. Fields: file (plan .md filename from plans/), instruction (what to change).
568
- - **execute-plan**: Execute an existing plan .md file. Fields: file (plan .md filename), project (optional)
569
- - **file-edit**: Edit any minions file via LLM. Fields: file (path relative to minions dir), instruction (what to change).
570
- - **schedule**: Create or update a scheduled task. Fields: id (unique slug), title, cron (3-field: minute hour dayOfWeek), workType (implement/test/explore/ask/review/fix), project (optional), agent (optional), description (optional), priority (optional), enabled (default true). Example cron: "0 9 2" = every Tuesday at 9am.
571
- - **delete-schedule**: Delete a scheduled task. Fields: id.
572
- - **create-meeting**: Start a team meeting. Fields: title (short meeting name), agenda (detailed text — what agents should investigate/debate, numbered items work best), agents (array of agent IDs), rounds (optional, default 3), project (optional).
573
- - **set-config**: Update engine settings. Fields: setting (setting name), value (new value). Valid settings: autoApprovePlans (bool), autoDecompose (bool), allowTempAgents (bool), maxConcurrent (number), maxTurns (number), ccModel (sonnet/haiku/opus), ccEffort (null/low/medium/high). Example: { "type": "set-config", "setting": "autoApprovePlans", "value": true }
574
- - **edit-pipeline**: Update an existing pipeline. Fields: id (pipeline ID), title (optional), stages (optional, JSON array — omit "agent" on stages unless the user specifically requests one; the engine routes to any available agent by default), trigger (optional, { cron: "minute hour dow" } or null for manual).
575
- - **unpin**: Remove a pinned note. Fields: title (exact title of the pinned note to remove)
576
- - **archive-plan**: Archive a completed/paused plan. Fields: file (PRD .json or plan .md filename)
577
- - **reject-plan**: Reject a plan. Fields: file (PRD .json filename), reason (optional)
578
- - **steer-agent**: Send a steering message to a running agent. Fields: agent (agent ID), message (text to inject)
579
- - **add-meeting-note**: Add a human note to an active meeting. Fields: id (meeting ID like MTG-xxx), note (text)
580
- - **trigger-pipeline**: Manually trigger a pipeline run. Fields: id (pipeline ID)
581
- - **link-pr**: Link an external PR for tracking. Fields: url (PR URL), title (optional), project (optional), autoObserve (bool, default true)
582
- - **archive-meeting**: Archive a completed meeting. Fields: id (meeting ID)
583
- - **update-routing**: Update the routing table. Fields: content (full routing.md content)
584
- - **file-bug**: File a bug on the Minions repo (yemi33/minions). Fields: title (short bug title), description (markdown body), labels (optional array, defaults to ["bug"]). Trigger phrases: "file a bug", "file an issue", "report a bug", "create an issue", "this is a bug", "log a bug". This is for bugs in Minions itself, not the user's project. When filing, include repro steps and relevant context from the conversation in the description. If the user hasn't provided repro steps, ask before filing.
585
-
586
- ## Domain Terminology — Minions-Specific Meanings
587
-
588
- Many common English words have specific meanings in the Minions context. **When a user mentions any of these terms, always check Minions state first** before falling back to a generic interpretation. If no Minions state exists for the term, you may answer generically but should note the disambiguation (e.g. "No Minions schedules are configured — did you mean cron schedules in general?").
589
-
590
- | Term | Minions meaning | Where to check |
591
- |------|-----------------|----------------|
592
- | schedules | \`config.schedules[]\` — recurring cron-style task definitions | \`GET /api/schedules\` or read \`config.json\` |
593
- | pipelines | \`pipelines/*.json\` — multi-stage execution plans with stages, triggers, and runs | \`GET /api/pipelines\` or read \`pipelines/\` dir |
594
- | agents | Named Minions agents (Dallas, Ripley, etc.) with roles, charters, and status | \`config.agents\`, \`agents/\` dir |
595
- | inbox | \`notes/inbox/\` — incoming agent findings awaiting consolidation | \`GET /api/inbox\` |
596
- | work items | \`projects/<name>/work-items.json\` — dispatch units assigned to agents | \`GET /api/work-items\` |
597
- | plans | \`plans/*.md\` — structured multi-step plan files | \`GET /api/plans\` or read \`plans/\` dir |
598
- | PRD | \`prd/*.json\` — structured PRD files with items, acceptance criteria, dependencies | \`GET /api/prd-items\` or read \`prd/\` dir |
599
- | PRs | \`projects/<name>/pull-requests.json\` — tracked pull requests per project | \`GET /api/pull-requests/all\` |
600
- | dispatch | \`engine/dispatch.json\` — active agent task queue (pending/active/completed) | \`GET /api/status\` |
601
- | tick | Engine orchestration cycle (~60s) — the heartbeat that drives all polling and dispatch | \`GET /api/status\` for tick count |
602
- | routing | \`routing.md\` — maps work types to agents (e.g. implement → dallas) | \`GET /api/settings/routing\` or read \`routing.md\` |
603
- | knowledge / KB | \`knowledge/\` — structured knowledge base entries by category | \`GET /api/knowledge\` |
604
- | notes | \`notes.md\` — consolidated team notes (merged from inbox) | \`GET /api/notes-full\` |
605
- | pinned | \`pinned.md\` — critical context injected into ALL agent prompts | \`GET /api/pinned\` |
606
- | meetings | \`meetings/\` — structured multi-round agent debates (investigate → debate → conclude) | \`GET /api/meetings\` |
607
-
608
- **Contract:** For any term in this table, resolve it against Minions state first. Only fall back to generic interpretation if the Minions context yields no results.
486
+ [{"type": "dispatch", "title": "Fix login bug", "workType": "fix", "agents": ["dallas"], "project": "MyApp", "description": "..."}]
487
+
488
+ Core action types:
489
+ - **dispatch**: title, workType, priority (low/medium/high), agents[] (optional), project, description
490
+ workTypes: \`explore\` (research, 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)
491
+ - **note**: title, content — save to inbox
492
+ - **pin**: title, content, level (critical/warning) — visible to ALL agents
493
+ - **plan**: title, description, project, branchStrategy (parallel/shared-branch)
494
+ - **cancel**: agent, reason
495
+ - **retry**: ids[]
496
+ - **create-meeting**: title, agenda, agents[], rounds (default 3), project
497
+ - **set-config**: setting, value valid: autoApprovePlans, autoDecompose, allowTempAgents, maxConcurrent, maxTurns, ccModel (sonnet/haiku/opus), ccEffort (null/low/medium/high)
498
+ - **steer-agent**: agent, message
499
+ - **execute-plan**: file, project
500
+ - **plan-edit**: file, instruction
501
+ - **file-edit**: file, instruction
502
+
503
+ Additional: pause-plan, approve-plan, reject-plan, archive-plan, edit-prd-item, remove-prd-item, delete-work-item, schedule, delete-schedule, edit-pipeline, trigger-pipeline, unpin, link-pr, archive-meeting, add-meeting-note, update-routing, file-bug. Run \`curl localhost:7331/api/routes\` for full parameter details.
504
+
505
+ ## Terminology
506
+ Terms like schedules, pipelines, agents, inbox, work items, plans, PRD, PRs, dispatch, routing, KB, notes, pinned, meetings have Minions-specific meanings. Always resolve against Minions state first (read files or call APIs). Fall back to generic only if no Minions context exists.
609
507
 
610
508
  ## Rules
611
-
612
- 1. **Use tools proactively.** Read files before answering don't guess from the state snapshot alone.
613
- 2. Be specific cite IDs, agent names, statuses, filenames, line numbers.
614
- 3. When delegating, include the action block AND explain what you're doing.
615
- 4. Resolve references like "ripley's plan", "the failing PR" by reading files.
616
- 5. When recommending which agent to assign, read \`routing.md\` and agent charters.
617
- 6. Keep responses concise but informative. Use markdown.
618
- 7. **Never modify engine source code** (engine.js, engine/*.js, dashboard.js/html, minions.js, bin/).
619
- 8. **Never push to git remotes** without the user explicitly confirming.
620
- 9. For long-running processes (dev servers), start them detached so they survive after your session.
621
- 10. **Always delegate exploration and complex queries to agents.** You are the dispatcher, not the worker. When the user asks to "explore", "investigate", "research", "look into", "figure out", or "audit" something in a project, dispatch an \`explore\` work item to an agent — do NOT do the exploration yourself. You may read a few files for quick lookups (status checks, config reads), but any multi-file investigation or codebase analysis must be delegated. Your role is orchestration.`;
509
+ 1. Use tools proactively — read files before answering.
510
+ 2. Be specificcite IDs, names, filenames, line numbers.
511
+ 3. Never modify engine source. Never push to git without user confirmation.
512
+ 4. Delegate exploration to agents. You are the dispatcher, not the worker.`;
622
513
 
623
514
  // Hash the system prompt so we can detect changes and invalidate stale sessions
624
515
  const _ccPromptHash = require('crypto').createHash('md5').update(CC_STATIC_SYSTEM_PROMPT).digest('hex').slice(0, 8);
package/engine.js CHANGED
@@ -146,6 +146,7 @@ let engineRestartGraceUntil = 0; // timestamp — suppress orphan detection unti
146
146
  // Per-tick cache of refs that failed to fetch — avoids repeating 30s ETIMEDOUT for same missing ref
147
147
  // Cleared at the start of each tick cycle (see tickInner)
148
148
  const _failedRefCache = new Set();
149
+ const _FAST_WORK_TYPES = new Set([WORK_TYPE.EXPLORE, WORK_TYPE.ASK, WORK_TYPE.REVIEW]);
149
150
 
150
151
  // Resolve dependency plan item IDs to their PR branches
151
152
  function resolveDependencyBranches(depIds, sourcePlan, project, config) {
@@ -492,6 +493,10 @@ async function spawnAgent(dispatchItem, config) {
492
493
  args.push('--allowedTools', claudeConfig.allowedTools);
493
494
  }
494
495
 
496
+ // Effort level: use 'low' for fast work types unless configured otherwise
497
+ const effort = engineConfig.agentEffort || (_FAST_WORK_TYPES.has(type) ? 'low' : null);
498
+ if (effort) args.push('--effort', effort);
499
+
495
500
  // Session resume: reuse last session if same branch and recent enough (< 2 hours)
496
501
  let cachedSessionId = null;
497
502
  // Only resume when the context is relevant — same branch means the agent is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.580",
3
+ "version": "0.1.582",
4
4
  "description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
5
5
  "bin": {
6
6
  "minions": "bin/minions.js"
@@ -0,0 +1,73 @@
1
+ # Verification Report & Testing Guide
2
+
3
+ **Date:** {{date}}
4
+ **Plan:** {{source_plan}}
5
+ **Verified by:** {{agent_name}}
6
+
7
+ ## What Was Built
8
+
9
+ For each completed plan item, summarize:
10
+ - **Item ID:** what it implements
11
+ - **Key changes:** files modified, features added, behaviors changed
12
+ - **PR:** link to the individual PR
13
+
14
+ ## Verification Results
15
+
16
+ ### Build Status
17
+
18
+ | Project | Worktree Path | Build | Tests | Notes |
19
+ |---------|--------------|-------|-------|-------|
20
+ | name | path | PASS/FAIL | X pass, Y fail, Z skip | error details if any |
21
+
22
+ ### Automated Test Results
23
+ - Total: X passed, Y failed, Z skipped
24
+ - Notable failures: (list any, with error messages)
25
+ - Test coverage notes: (are the new features covered by tests?)
26
+
27
+ ### What Was Verified
28
+ For each plan item, state what you actually checked:
29
+ - Did the build pass with this change included?
30
+ - Did existing tests pass?
31
+ - Were there new tests for the new functionality?
32
+ - Any runtime errors observed?
33
+
34
+ ### What Could NOT Be Verified Automatically
35
+ List anything that requires human judgment:
36
+ - UI/UX changes that need visual inspection
37
+ - Behaviors that depend on external services
38
+ - Performance characteristics
39
+ - Edge cases not covered by tests
40
+
41
+ ## Manual Testing Guide
42
+
43
+ **How to run:** (server URL, emulator command, APK path, or N/A)
44
+ **Restart Command:** `cd <absolute-worktree-path> && <command>` (if applicable)
45
+
46
+ ### <Feature Name> (Plan Item ID)
47
+ **What changed:** brief description
48
+ **How to test:**
49
+ 1. Step-by-step instructions
50
+ 2. With concrete actions (URLs, buttons, inputs)
51
+ 3. And expected outcomes
52
+
53
+ **Acceptance criteria check:**
54
+ - [ ] (from plan item acceptance criteria)
55
+ - [ ] (from plan item acceptance criteria)
56
+
57
+ ### <Next Feature> ...
58
+
59
+ ## Integration Points
60
+
61
+ Cross-project or cross-feature interactions to verify:
62
+ - e.g., "Service A calls Service B — verify the API contract"
63
+
64
+ ## Known Issues
65
+ - Build warnings, test failures, merge conflicts, unimplemented items
66
+
67
+ ## Quick Smoke Test
68
+ A minimal 5-step checklist to verify the core functionality:
69
+ 1. ...
70
+ 2. ...
71
+ 3. ...
72
+ 4. ...
73
+ 5. ...
@@ -84,83 +84,7 @@ Create the guide in TWO locations:
84
84
 
85
85
  **Be transparent.** The guide must clearly state what was built, what was tested, what passed, what failed, and what still needs human verification.
86
86
 
87
- Structure:
88
-
89
- ```markdown
90
- # Verification Report & Testing Guide
91
-
92
- **Date:** {{date}}
93
- **Plan:** {{source_plan}}
94
- **Verified by:** {{agent_name}}
95
-
96
- ## What Was Built
97
-
98
- For each completed plan item, summarize:
99
- - **Item ID:** what it implements
100
- - **Key changes:** files modified, features added, behaviors changed
101
- - **PR:** link to the individual PR
102
-
103
- ## Verification Results
104
-
105
- ### Build Status
106
-
107
- | Project | Worktree Path | Build | Tests | Notes |
108
- |---------|--------------|-------|-------|-------|
109
- | name | path | PASS/FAIL | X pass, Y fail, Z skip | error details if any |
110
-
111
- ### Automated Test Results
112
- - Total: X passed, Y failed, Z skipped
113
- - Notable failures: (list any, with error messages)
114
- - Test coverage notes: (are the new features covered by tests?)
115
-
116
- ### What Was Verified
117
- For each plan item, state what you actually checked:
118
- - Did the build pass with this change included?
119
- - Did existing tests pass?
120
- - Were there new tests for the new functionality?
121
- - Any runtime errors observed?
122
-
123
- ### What Could NOT Be Verified Automatically
124
- List anything that requires human judgment:
125
- - UI/UX changes that need visual inspection
126
- - Behaviors that depend on external services
127
- - Performance characteristics
128
- - Edge cases not covered by tests
129
-
130
- ## Manual Testing Guide
131
-
132
- **How to run:** (server URL, emulator command, APK path, or N/A)
133
- **Restart Command:** `cd <absolute-worktree-path> && <command>` (if applicable)
134
-
135
- ### <Feature Name> (Plan Item ID)
136
- **What changed:** brief description
137
- **How to test:**
138
- 1. Step-by-step instructions
139
- 2. With concrete actions (URLs, buttons, inputs)
140
- 3. And expected outcomes
141
-
142
- **Acceptance criteria check:**
143
- - [ ] (from plan item acceptance criteria)
144
- - [ ] (from plan item acceptance criteria)
145
-
146
- ### <Next Feature> ...
147
-
148
- ## Integration Points
149
-
150
- Cross-project or cross-feature interactions to verify:
151
- - e.g., "Service A calls Service B — verify the API contract"
152
-
153
- ## Known Issues
154
- - Build warnings, test failures, merge conflicts, unimplemented items
155
-
156
- ## Quick Smoke Test
157
- A minimal 5-step checklist to verify the core functionality:
158
- 1. ...
159
- 2. ...
160
- 3. ...
161
- 4. ...
162
- 5. ...
163
- ```
87
+ Use the template structure from `{{team_root}}/playbooks/templates/verify-guide.md` — read it and fill in each section with your actual findings.
164
88
 
165
89
  ## Step 6: Create E2E Pull Requests
166
90