Generate a client-ready Statement of Work with three named scope packages. Operate in one of two modes depending on arguments.
From founder-osnpx claudepluginhub thecloudtips/founder-os --plugin founder-ossow//generateGenerates a complete wiki for the current repo as a VitePress site with catalogue, onboarding guides, pages, dark-mode Mermaid diagrams, and citations.
/generateGenerates a Context Field with name, one-sentence description, and up to 5 specific inhibition constraints from a failure description, including root cause analysis.
/generateGenerates ADVPL/TLPP code for functions, classes, MVC structures, REST APIs, web services, entry points, and more for TOTVS Protheus.
/generateGenerate images from text prompts with optional --count (1-8), --styles, --variations, --format, and --seed controls. Calls Nano Banana tool and displays output from ./nanobanana-output/.
/generateCreates a voice profile by analyzing your writing samples via the voiceprint skill workflow, including introduction, setup, and multi-phase processing (~15 min).
/generateGenerates NotebookLM artifacts such as podcasts, videos, quizzes, reports, mind maps, flashcards, slide decks, infographics, and data tables from instructions.
Generate a client-ready Statement of Work with three named scope packages. Operate in one of two modes depending on arguments.
Extract these values from $ARGUMENTS:
[brief] (string, optional) — inline project brief text. If not provided, ask the user interactively.--team (boolean, default: false) — activate full 6-agent competing-hypotheses pipeline mode.--client=NAME (string, optional) — client name for the SOW header. If not provided, infer from the brief or ask the user.--budget=AMOUNT (string, optional) — maximum budget constraint (e.g., $50,000 or 50000). If not provided, pricing agent uses market rates.--weeks=N (integer, optional) — maximum timeline in weeks. If not provided, derive from scope.--output=PATH (string, default: ./sow-output/) — output directory for the generated SOW file.Check if context files exist at _infrastructure/context/active/. If the directory contains .md files, read business-info.md, strategy.md, and current-data.md. Use this context to personalize output (e.g., prioritize known clients, use correct terminology, align with current strategy). If files don't exist, skip silently.
Read the context-injection skill at _infrastructure/memory/context-injection/SKILL.md.
Query for memories relevant to the current input (company, contacts, topics detected in arguments).
If memories are returned, incorporate them into your working context for this execution.
Before generating in either mode:
notion-search with the query "SOW". Summarize any relevant historical scope, pricing, or risk patterns found. Note to the user if historical context was found and what it informed..sow-history file exists in the output directory. If it exists, read it and use its contents as additional calibration context for scope and pricing..sow-history is available, proceed without historical context and note this to the user.When --team is NOT present:
Read ALL 3 skills:
${CLAUDE_PLUGIN_ROOT}/skills/sow/scope-definition/SKILL.md${CLAUDE_PLUGIN_ROOT}/skills/sow/sow-writing/SKILL.md${CLAUDE_PLUGIN_ROOT}/skills/sow/risk-assessment/SKILL.mdCollect the project brief:
[brief] argument was provided, use it as the project description.Run context loading (see Context Loading section above).
Generate three SOW options internally applying the rules from all three skills:
Option A — Conservative (Foundation Package)
Option B — Balanced (Growth Package)
Option C — Ambitious (Transformation Package)
Respect --budget and --weeks constraints: if an option exceeds the constraint, adjust scope downward and note the change.
Determine the recommended option: the option whose risk score is Medium or below with the highest value delivery. Typically Option B unless budget or timeline constraints make Option A the only viable choice.
Create the output directory if it does not exist.
Derive the output filename as sow-[client-slug]-[YYYY-MM-DD].md where [client-slug] is the client name lowercased with spaces replaced by hyphens and [YYYY-MM-DD] is today's date.
Write the full SOW to ${output}/sow-[client-slug]-[YYYY-MM-DD].md using the three-option document format from the sow-writing skill. The document must include:
Present the output summary to the user:
## SOW Generated
**Client**: [Client Name]
**Output**: [output path]
**Options**: 3 ([Option A name] · [Option B name] · [Option C name])
**Recommended**: [Option B name] (Option B)
### Option Summary
| Option | Timeline | Price | Risk |
|--------|----------|-------|------|
| [Option A name] | N weeks | $XX,XXX | Low |
| **[Option B name] ✓** | N weeks | $XX,XXX | Medium |
| [Option C name] | N weeks | $XX,XXX | High |
_View the full SOW at [output path]_
Notion tracking (if Notion MCP is available):
Database discovery (ordered):
Resolve Company + Deal relations (only when writing to "[FOS] Deliverables" or "Founder OS HQ - Deliverables"):
Idempotent upsert: Check for existing record with same Client Name + Project Title. When using "[FOS] Deliverables" or "Founder OS HQ - Deliverables", also filter by Type = "SOW" to avoid collisions with other deliverable types.
Create or update the record:
--team)When --team IS present:
Read ${CLAUDE_PLUGIN_ROOT}/agents/sow/config.json.
Collect the project brief:
[brief] argument was provided, use it.Run context loading (see Context Loading section above).
Assemble a structured context object to pass to all Phase 1 agents:
{
"brief": "[project brief text]",
"client": "[client name]",
"budget_constraint": "[budget or null]",
"weeks_constraint": "[weeks or null]",
"historical_context": "[summary from Notion/.sow-history or null]",
"skills_paths": {
"scope_definition": "${CLAUDE_PLUGIN_ROOT}/skills/sow/scope-definition/SKILL.md",
"sow_writing": "${CLAUDE_PLUGIN_ROOT}/skills/sow/sow-writing/SKILL.md",
"risk_assessment": "${CLAUDE_PLUGIN_ROOT}/skills/sow/risk-assessment/SKILL.md"
}
}
Execute Phase 1 — spawn all three scope agents in parallel using the Task tool. Each agent reads its definition from its file path in teams/config.json and receives the structured context object. The agents are independent and must not communicate with each other.
scope-agent-a — conservative interpretation, P90 confidence, 20% bufferscope-agent-b — balanced interpretation, P75 confidence, 10% bufferscope-agent-c — ambitious interpretation, P60 confidence, 0% bufferWait for all Phase 1 agents to complete before proceeding. If fewer than 2 agents succeed (per minimum_hypotheses_required in config), halt and report the failure. If exactly 2 of 3 succeed, proceed and note which agent failed.
Collect Phase 1 outputs (three scope proposals). Structure them as a combined proposals object.
Execute Phase 2 — spawn risk-agent and pricing-agent in parallel using the Task tool. Each agent reads its definition from its file path and receives the structured context object plus all Phase 1 proposals.
risk-agent — scores risk dimensions for each proposalpricing-agent — estimates cost and validates value-for-money for each proposalWait for both Phase 2 agents to complete before proceeding.
Execute Phase 3 — invoke sow-lead with the structured context object plus all Phase 1 and Phase 2 outputs. The lead agent reads its definition from ${CLAUDE_PLUGIN_ROOT}/agents/sow/sow-lead.md and synthesizes all inputs into the final SOW document. The lead writes the output file to the --output directory.
Present the pipeline completion summary:
## SOW Pipeline Complete
**Client**: [Client Name]
**Output**: [output path]
**Pipeline**: 6 agents (3 scope · 1 risk · 1 pricing · 1 lead)
### Agent Timing
| Agent | Duration | Status |
|-------|----------|--------|
| scope-agent-a | Xs | Done |
| scope-agent-b | Xs | Done |
| scope-agent-c | Xs | Done |
| risk-agent | Xs | Done |
| pricing-agent | Xs | Done |
| sow-lead | Xs | Done |
### Scoring Matrix
| Option | Scope Score | Risk Score | Pricing Score | Total |
|--------|-------------|------------|---------------|-------|
| [Option A name] | X/10 | X/10 | X/10 | X/30 |
| [Option B name] | X/10 | X/10 | X/10 | X/30 |
| [Option C name] | X/10 | X/10 | X/10 | X/30 |
**Recommended**: [Recommended option name]
_View the full SOW at [output path]_
Write before writing the SOW file.--budget is not provided: generate all three SOW options without a budget ceiling; the pricing agent uses market rates derived from the sow-writing skill pricing tables.--weeks is not provided: derive timeline from scope estimates in each option; do not artificially constrain.Read the pattern-detection skill at _infrastructure/memory/pattern-detection/SKILL.md.
Log this execution as an observation with: plugin name, primary action performed, key entities (companies, contacts), and output summary.
Check for emerging patterns per the detection rules. If a memory reaches the adaptation threshold, append the notification to the output.
/founder-os:sow:generate "Build a customer portal for Acme Corp with dashboard, auth, and reporting"
/founder-os:sow:generate --client="TechCo" --budget=75000 --weeks=16
/founder-os:sow:generate --team "Redesign the onboarding flow for a SaaS product"
/founder-os:sow:generate --team --client="StartupXYZ" --output=./proposals/
/founder-os:sow:generate # Interactive: asks for brief