| name | proposal-writing |
| description | Write business or technical proposals that propose a course of action with rationale, costs, and implementation plan |
Proposal Writing
When to Use
Use this skill when tasked with writing a proposal, project pitch, RFC, business case, or any persuasive document that recommends a course of action. This is for knowledge work proposals -- recommending strategies, initiatives, process changes, or investments -- not for writing code documentation or API specs.
Common scenarios:
- Proposing a new initiative, project, or program
- Writing an RFC (Request for Comments) for a technical or process change
- Building a business case for investment or resource allocation
- Pitching an approach to solve an identified problem
- Recommending a vendor, tool, or strategy with justification
Principles
- Lead with the problem, not the solution. The reader must feel the pain before they will accept the cure. Spend proportionate effort defining the problem clearly.
- Quantify wherever possible. "This will save approximately 40 hours per month" is persuasive. "This will save time" is not.
- Acknowledge costs and risks honestly. A proposal that ignores downsides loses credibility. Address them head-on and show you have mitigation plans.
- Write for the decision-maker. The first page should contain everything they need to say yes or no. Details come after.
- One proposal, one recommendation. If you have multiple options, make a clear recommendation. Do not present a menu and ask the reader to choose.
Output Template
# Proposal: [Title]
**Date:** YYYY-MM-DD
**Author:** [agent name]
**Status:** Draft | Under Review | Approved | Rejected
**Decision Required By:** [date or milestone]
## Problem Statement
### Current Situation
[What is happening now. Be specific and factual.]
### Impact
[Why this matters. Quantify: cost, time lost, risk exposure, missed opportunity.]
| Impact Area | Metric | Current Value | Target Value |
|-------------|--------|---------------|--------------|
| [area] | [metric] | [current] | [desired] |
### Root Cause
[Why the current situation exists. What underlying factors drive it.]
## Proposed Solution
### Overview
[2-3 sentence summary of what is proposed]
### How It Works
[Detailed description of the proposed approach. Break into numbered steps or phases if complex.]
### Why This Approach
[Rationale for choosing this approach over alternatives. Reference specific criteria.]
## Benefits
| Benefit | Description | Estimated Value | Timeline to Realize |
|---------|-------------|-----------------|---------------------|
| [benefit 1] | [description] | [quantified] | [when] |
| [benefit 2] | [description] | [quantified] | [when] |
## Costs and Resources
| Item | Cost | Type | Notes |
|------|------|------|-------|
| [item 1] | [amount] | [one-time/recurring] | [details] |
| [item 2] | [amount] | [one-time/recurring] | [details] |
| **Total** | **[amount]** | | |
## Risks and Mitigations
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| [risk 1] | [H/M/L] | [H/M/L] | [what we will do about it] |
| [risk 2] | [H/M/L] | [H/M/L] | [what we will do about it] |
## Alternatives Considered
| Alternative | Pros | Cons | Why Not Chosen |
|------------|------|------|----------------|
| [option A] | [pros] | [cons] | [reason] |
| Do nothing | [pros] | [cons] | [reason] |
## Implementation Plan
### Phase 1: [Name] (Weeks 1-N)
- [ ] [Deliverable 1]
- [ ] [Deliverable 2]
### Phase 2: [Name] (Weeks N-M)
- [ ] [Deliverable 3]
- [ ] [Deliverable 4]
### Timeline
| Phase | Start | End | Key Milestone | Owner |
|-------|-------|-----|---------------|-------|
| Phase 1 | [date] | [date] | [milestone] | [who] |
| Phase 2 | [date] | [date] | [milestone] | [who] |
## Success Criteria
| Criterion | Measurement | Target | Evaluation Date |
|-----------|-------------|--------|-----------------|
| [criterion] | [how measured] | [target value] | [when to check] |
## Decision Requested
[Exactly what you are asking the reader to approve, fund, or authorize. Be specific.]
Procedure
1. Gather Background Materials
TASK_ID="$1"
TOPIC="$2"
bash /home/shared/scripts/task.sh get "$TASK_ID" | jq -r '.description'
echo "=== Related Documents ==="
rg -l -i "$TOPIC" /home/shared/ ~/workspace/ 2>/dev/null \
| grep -E '\.(md|txt|csv|json|yaml)$' | head -20
echo ""
echo "=== Prior Research ==="
find /home/shared/ -name '*research*' -o -name '*analysis*' -o -name '*review*' \
| grep -i "$TOPIC" 2>/dev/null
echo ""
echo "=== Existing Proposals ==="
find /home/shared/ ~/workspace/ -name '*proposal*' -o -name '*rfc*' -o -name '*pitch*' \
2>/dev/null | head -10
echo ""
echo "=== Registered Artifacts ==="
bash /home/shared/scripts/artifact.sh list 2>/dev/null \
| jq -r '.[] | select(.name | test("'"$TOPIC"'"; "i")) | "\(.name) — \(.path)"' 2>/dev/null
2. Define the Problem
This is the most critical step. A poorly defined problem produces a weak proposal.
WORK_DIR="/tmp/proposal-${TOPIC}"
mkdir -p "$WORK_DIR"
cat > "$WORK_DIR/problem-definition.md" <<'EOF'
[Observable facts, not interpretations]
[Specific stakeholders or teams]
[Numbers: cost, time, frequency, error rate]
[Duration and trend: getting worse, stable, improving?]
[Prior attempts and why they did not fully succeed]
[Projected impact of inaction over 3, 6, 12 months]
EOF
3. Research and Quantify the Impact
echo "=== Quantifying Impact ==="
rg -n '\b\d+\.?\d*\s*(%|percent|hours|days|dollars|\$|cost|spent|lost|error|fail)' \
/home/shared/ ~/workspace/ 2>/dev/null | head -20
find /home/shared/ -name '*.csv' -o -name '*.json' \
| xargs grep -li "$TOPIC" 2>/dev/null
bash /home/shared/scripts/task.sh list 2>/dev/null \
| jq '[.[] | select(.description | test("'"$TOPIC"'"; "i"))] | length' 2>/dev/null
4. Develop the Proposed Solution
cat > "$WORK_DIR/solution-outline.md" <<'EOF'
1. [Concrete change 1]
2. [Concrete change 2]
3. [Concrete change 3]
- [Unchanged element — important for managing scope expectations]
- People: [who and how much of their time]
- Tools: [what tools or systems]
- Budget: [dollar amount or effort estimate]
- Time: [duration]
- [Success metric 1 with target value]
- [Success metric 2 with target value]
EOF
5. Assess Costs, Risks, and Alternatives
python3 <<'PYEOF'
import json
costs = [
{"item": "Example item 1", "cost": 0, "type": "one-time", "notes": ""},
{"item": "Example item 2", "cost": 0, "type": "recurring/month", "notes": ""},
]
total_onetime = sum(c["cost"] for c in costs if c["type"] == "one-time")
total_recurring = sum(c["cost"] for c in costs if "recurring" in c["type"])
print(f"One-time costs: ${total_onetime:,.0f}")
print(f"Recurring costs: ${total_recurring:,.0f}/month")
print(f"First-year total: ${total_onetime + total_recurring * 12:,.0f}")
print("\n| Item | Cost | Type | Notes |")
print("|------|------|------|-------|")
for c in costs:
print(f"| {c['item']} | ${c['cost']:,.0f} | {c['type']} | {c['notes']} |")
PYEOF
For risks:
cat > "$WORK_DIR/risks.md" <<'EOF'
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| [What could go wrong] | [H/M/L] | [H/M/L] | [Specific action to reduce] |
Scoring guide:
- H likelihood: >50% chance of occurring
- M likelihood: 10-50% chance
- L likelihood: <10% chance
- H impact: blocks the initiative or causes significant damage
- M impact: delays or degrades the initiative
- L impact: minor inconvenience, easily absorbed
EOF
6. Build the Implementation Timeline
cat > "$WORK_DIR/timeline.md" <<'EOF'
| Phase | Duration | Deliverables | Dependencies | Owner |
|-------|----------|-------------|-------------|-------|
| 1: [Name] | [N weeks] | [what is delivered] | [what must happen first] | [who] |
| 2: [Name] | [N weeks] | [what is delivered] | [Phase 1 complete] | [who] |
| 3: [Name] | [N weeks] | [what is delivered] | [Phase 2 complete] | [who] |
Key milestones:
- Week N: [milestone — a decision point or deliverable]
- Week M: [milestone]
EOF
7. Write the Proposal
PROPOSAL_FILE="/home/shared/proposal-$(date +%Y%m%d)-${TOPIC}.md"
cat "$WORK_DIR/problem-definition.md"
cat "$WORK_DIR/solution-outline.md"
cat "$WORK_DIR/risks.md"
cat "$WORK_DIR/timeline.md"
cat > "$PROPOSAL_FILE" <<'PROPOSAL'
**Date:** YYYY-MM-DD
**Author:** [agent name]
**Status:** Draft
**Decision Required By:** [date]
...
...
...
...
...
...
...
...
[Exactly what approval or authorization is being sought]
PROPOSAL
echo "Proposal written to: $PROPOSAL_FILE"
8. Self-Review Before Submission
Run these checks on your draft:
PROPOSAL_FILE="/home/shared/proposal-$(date +%Y%m%d)-${TOPIC}.md"
echo "=== Proposal Quality Checks ==="
echo "--- Quantified impact ---"
rg '\d+' "$PROPOSAL_FILE" | head -10
QUANT_COUNT=$(rg -c '\b\d+\.?\d*\s*(%|hours|days|\$|cost)' "$PROPOSAL_FILE" 2>/dev/null || echo 0)
echo "Quantified claims found: $QUANT_COUNT"
[ "$QUANT_COUNT" -lt 3 ] && echo "WARNING: Proposal needs more quantified evidence"
echo ""
echo "--- Required sections ---"
for section in "Problem Statement" "Proposed Solution" "Benefits" "Costs" "Risks" "Alternatives" "Implementation" "Success Criteria" "Decision Requested"; do
if rg -q "$section" "$PROPOSAL_FILE" 2>/dev/null; then
echo " OK: $section"
else
echo " MISSING: $section"
fi
done
echo ""
echo "--- Do-nothing alternative ---"
if rg -qi "do nothing\|status quo\|no action\|inaction" "$PROPOSAL_FILE" 2>/dev/null; then
echo " OK: Do-nothing scenario addressed"
else
echo " WARNING: Missing do-nothing/status quo alternative"
fi
echo ""
echo "--- Length ---"
WC=$(wc -w < "$PROPOSAL_FILE")
echo " Word count: $WC"
[ "$WC" -lt 300 ] && echo " WARNING: Proposal may be too thin (< 300 words)"
[ "$WC" -gt 3000 ] && echo " WARNING: Proposal may be too long (> 3000 words). Consider tightening."
9. Register and Notify
bash /home/shared/scripts/artifact.sh register \
--name "proposal-${TOPIC}" \
--type "proposal" \
--path "$PROPOSAL_FILE" \
--description "Proposal: ${TOPIC}"
bash /home/shared/scripts/send-mail.sh \
--to "$REQUESTING_AGENT" \
--subject "Proposal ready for review: ${TOPIC}" \
--body "Draft proposal available at: $PROPOSAL_FILE"
Quality Checklist