MassGen Skill
Delegate tasks to your MassGen team.
Before You Launch
Check that a config exists:
bash
ls .massgen/config.yaml 2>/dev/null || ls ~/.config/massgen/config.yaml 2>/dev/null
If no config exists, set one up:
- Default (browser): run
uv run massgen --web-quickstart
— user picks
models and keys in the browser
- Headless: read
references/config_setup.md
— you discover available
backends via , check the user's API keys, discuss
preferences, and generate config with
If config exists — launch immediately. No need to ask questions first.
Important: Only Add What's Asked
Do NOT add extra flags unless the user explicitly requests them:
- No unless the user asks for diverse approaches
- No unless the user wants detailed decomposition
- No unless the user wants speed over quality
The defaults are good. Let MassGen handle the rest.
Quick Dispatch
1. Detect Mode
| User Intent | CLI Flags |
|---|
| General task (write, build, research, design) | (default) |
| Review/critique existing work | --checklist-criteria-preset evaluation
|
| Plan a feature or project | |
| Plan and auto-execute | |
| Write requirements/spec | |
| Execute an existing plan | --execute-plan <path_or_latest>
|
| Execute against an existing spec | --execute-spec <path_or_latest>
|
2. Write Criteria
Always write opinionated evaluation criteria tailored to the task. Criteria
shape what agents produce, not just how they're scored. Save to a temp file and
pass via
. Aim for 4-7 criteria.
Required JSON format — each criterion needs
,
, and
:
json
{
"aspiration": "A site a designer would screenshot for their portfolio",
"criteria": [
{
"text": "Design coherence: Does it feel authored or assembled? ...",
"category": "primary",
"anti_patterns": ["unmodified library defaults", "AI-generic aesthetics"]
},
{
"text": "Content depth: Every section teaches something specific ...",
"category": "standard",
"anti_patterns": ["Wikipedia-summary prose", "filler sections"]
}
]
}
Categories:
(ONE — where the model needs most push),
(must-pass),
(nice-to-have). See
references/criteria_guide.md
for
full guidance on writing effective opinionated criteria.
For evaluate/plan/spec modes, you can use
--checklist-criteria-preset
instead of writing custom criteria (presets:
,
,
,
,
,
,
).
3. Build Prompt
General: User's task with relevant context.
Evaluate: What to evaluate. Auto-gather git diff, changed files, test
output. Keep it factual — what was built, not your quality opinion. Let
agents discover issues independently.
Plan: Goal + constraints.
Spec: Problem statement + user needs + constraints.
4. Choose CWD Context
Default to when the task produces files. If the deliverable is a file
(code, docs, config, README, website, etc.), agents need write access. Use
only when agents need to
read the codebase for context but their output is
pure text (an answer, review, or analysis) — not files.
| Scenario | Flag |
|---|
| Task produces/modifies files in the project (code, docs, configs, etc.) | |
| Task needs codebase context but output is text only (review, analysis, Q&A) | |
| Isolated task, no codebase needed (default) | (omit flag) |
Rule of thumb: if the user says "write", "create", "build", "rewrite",
"update", or "edit" something in the project →
.
5. Run
Always use the wrapper script:
bash
# Isolated task (default, no cwd-context needed)
bash "$SKILL_DIR/scripts/massgen_run.sh" \
--mode general \
--criteria /tmp/massgen_criteria.json \
"Create an SVG of a butterfly mixed with a panda"
# Task that writes to the project → rw
bash "$SKILL_DIR/scripts/massgen_run.sh" \
--mode general --cwd-context rw \
--criteria /tmp/massgen_criteria.json \
"Rewrite the README with better examples and structure"
The wrapper includes
by default. The run starts
immediately — the user can open
http://localhost:8000/ anytime to monitor
progress.
Tell the user about this URL.
Run in the background. MassGen prints these for tracking:
- — full run data
STATUS: <path>/status.json
— live status
- — winning agent's answer.txt
Expect 15-45 minutes for multi-round runs.
5b. Review Notification (when )
When agents have write access (
), automatically add
so the user can review git diffs before changes are applied.
Review requires
(the wrapper's default).
Headless (): If the user explicitly requests headless mode
with
, skip
— changes are applied directly
without a review gate. Warn the user that there will be no diff review.
After launching the MassGen run,
also launch the review watcher in the
background. Parse
from the MassGen output first:
bash
# Launch the watcher (reads LOG_DIR from the MassGen run output)
bash "$SKILL_DIR/scripts/review_watcher.sh" "$LOG_DIR"
The watcher polls
and prints structured markers when review
is ready:
__REVIEW_PENDING__
REVIEW_URL: http://localhost:8000/?v=2
REVIEW_API: http://localhost:8000/api/sessions/{id}/review-response
FILES_CHANGED: src/foo.py (M), src/bar.py (A)
__END_REVIEW_INFO__
When you see
, tell the user:
"MassGen has changes ready for review. You can open the WebUI to review
diffs visually, or tell me which files to approve/reject."
Two resolution paths:
- Browser: User opens the REVIEW_URL and approves/rejects in the UI.
- Agent (text-based): Fetch diffs via
GET /api/sessions/{id}/review
,
show the user a summary, then submit their decision:
bash
# Approve all
curl -X POST "$REVIEW_API" -H "Content-Type: application/json" \
-d '{"approved": true, "action": "approve"}'
# Approve specific files
curl -X POST "$REVIEW_API" -H "Content-Type: application/json" \
-d '{"approved": true, "approved_files": ["src/foo.py"]}'
# Reject all
curl -X POST "$REVIEW_API" -H "Content-Type: application/json" \
-d '{"approved": false, "action": "reject"}'
Either path resolves the review — the other side auto-closes. After
resolution,
__REVIEW_COMPLETE__ APPROVED=true|false
is printed.
6. Read Results
Read the
path from the output. The winning agent's workspace is
always in the
directory next to
.
Workspace paths in
are best-effort normalized to reference the
adjacent
directory. However, always navigate to the
next to
as the ground truth — not paths mentioned in the text.
For
plan mode,
is in the workspace.
For
spec mode,
is in the workspace.
Optional Flags (only when requested)
| Flag | Purpose |
|---|
| One-shot, no voting/refinement |
| Decomposition depth: (default), , , |
--plan-thoroughness thorough
| Deeper strategic reasoning (default: ) |
| Agent diversity: , , , or |
| Give agents read access to codebase |
| Give agents write access to codebase |
| Enable WebUI for watching progress (on by default in wrapper) |
Config
MassGen auto-discovers config from
or
~/.config/massgen/config.yaml
. See setup instructions above.
References
Only consult when the quick dispatch isn't enough:
| File | When |
|---|
references/criteria_guide.md
| Criteria format, tiers, examples |
references/config_setup.md
| Headless config creation |
references/advanced_workflows.md
| Checkpoint loops, living documents, structured eval, plan-evaluate integration |