massgen
Invoke MassGen's multi-agent system. Use when the user wants multiple AI agents on a task: writing, code, review, planning, specs, research, design, or any task where parallel iteration beats working alone.
What this skill does
# 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 `--list-backends`, check the user's API keys, discuss
preferences, and generate config with `--quickstart --headless`
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 `--personas` unless the user asks for diverse approaches
- No `--plan-depth deep` unless the user wants detailed decomposition
- No `--quick` 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` |
| Plan and auto-execute | `--plan-and-execute` |
| Write requirements/spec | `--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 `--eval-criteria`. Aim for 4-7 criteria.
**Required JSON format** — each criterion needs `text`, `category`, and `anti_patterns`:
```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: `primary` (ONE — where the model needs most push), `standard`
(must-pass), `stretch` (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: `evaluation`, `planning`, `spec`,
`persona`, `decomposition`, `prompt`, `analysis`).
### 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 `rw` when the task produces files.** If the deliverable is a file
(code, docs, config, README, website, etc.), agents need write access. Use `ro`
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.) | `--cwd-context rw` |
| Task needs codebase context but output is text only (review, analysis, Q&A) | `--cwd-context ro` |
| 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 → `rw`.
### 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 `--web --no-browser` 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:
- `LOG_DIR: <path>` — full run data
- `STATUS: <path>/status.json` — live status
- `ANSWER: <path>` — winning agent's answer.txt
Expect 15-45 minutes for multi-round runs.
### 5b. Review Notification (when `--cwd-context rw`)
When agents have write access (`--cwd-context rw`), automatically add
`--web-review` so the user can review git diffs before changes are applied.
Review requires `--web` (the wrapper's default).
**Headless (`--no-web`)**: If the user explicitly requests headless mode
with `--cwd-context rw`, skip `--web-review` — 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 `LOG_DIR` 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 `status.json` 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 `__REVIEW_PENDING__`, 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:**
1. **Browser**: User opens the REVIEW_URL and approves/rejects in the UI.
2. **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 `ANSWER:` path from the output. The winning agent's workspace is
always in the `workspace/` directory next to `answer.txt`.
Workspace paths in `answer.txt` are best-effort normalized to reference the
adjacent `workspace/` directory. However, always navigate to the `workspace/`
next to `answer.txt` as the ground truth — not paths mentioned in the text.
For **plan** mode, `project_plan.json` is in the workspace.
For **spec** mode, `project_spec.json` is in the workspace.
## Optional Flags (only when requested)
| Flag | Purpose |
|------|---------|
| `--quick` | One-shot, no voting/refinement |
| `--plan-depth <level>` | Decomposition depth: `dynamic` (default), `shallow`, `medium`, `deep` |
| `--plan-thoroughness thorough` | Deeper strategic reasoning (default: `standard`) |
| `--personas <style>` | Agent diversity: `perspective`, `implementation`, `methodology`, or `off` |
| `--cwd-context ro` | Give agents read access to codebase |
| `--cwd-context rw` | Give agents write access to codebase |
| `--web --no-browser` | Enable WebUI for watching progress (on by default in wrapper) |
## Config
MassGen auto-discovers config from `.massgen/config.yaml` or
`~/.config/massgen/config.yaml`. See setup instructions aRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.