Draft fundable grant proposals: funder fit research, letters of intent, narrative structure (problem, approach, impact), budget basics, and common rejection reasons. Use when someone needs help writing a grant proposal or LOI.
./install.sh grant-writing-basicsname: grant_writing_basics description: "Draft fundable grant proposals: funder fit research, letters of intent, narrative structure (problem, approach, impact), budget basics, and common rejection reasons. Use when someone needs help writing a grant proposal or LOI."
This skill helps draft grant proposals at the narrative craft layer: checking fit with a funder, writing letters of intent (LOIs), structuring the core narrative (problem, approach, impact), building a basic line-item budget with justification, and avoiding the common reasons proposals get rejected. It stays at the craft of the proposal itself, not fundraising strategy, donor cultivation, or nonprofit management.
Cousin check against the catalog: cold-email-drafting covers short outreach emails to strangers; resume-craft covers job applications about a person; essay-writing covers personal and academic essays. None of them address funder alignment, LOIs, evaluation plans, or budget narratives, which is what lives here. If the user wants grant strategy (which funders to court, donor pipelines, campaign planning), this skill is not the right tool; send them to a fundraising resource instead.
Before drafting anything, collect:
Research the funder before writing a word. This step kills most rejections early.
Many foundations ask for an LOI before inviting a full proposal. Keep it to one or two pages:
Use the funder's section order when one is given. Otherwise use the standard set below, which matches what funders across foundations and government programs commonly ask for. Generate a checklist first with the inline script in this skill, then draft section by section.
Executive summary. One page, written last. Organization intro, project summary, amount requested, expected outcomes.
Statement of need. Open with the affected population, not the organization. The problem in this community with specific, verifiable numbers: how many people, what the gap is, what happens if nothing changes. Cite evidence the user supplied. A citywide statistic proves nothing about the specific neighborhood served, so keep data local.
Goals and objectives. Goals state the change; objectives make it measurable: how much change, for whom, by when. Include a baseline for every target. "Serve more youth" is not an objective; "enroll 120 youth, with 80 completing the program by month 12" is.
Project description (approach). What you will do, who is involved, where, when. Methods, activities, timeline, staffing. Explain why this approach fits the problem's causes. Reviewers fund plans that respond to the problem, not intentions.
Evaluation plan. How you will know it worked: indicators tied to the objectives, data sources, collection methods, who analyzes, and the reporting schedule. Concrete indicators, not "we will assess outcomes."
Organizational capacity. Mission, history, relevant past results, key staff. Prove capacity with past outcomes; claims without evidence read as puffery. Understated and documented beats loud and vague.
Sustainability plan. What continues after the grant period, and how. Include only if the funder asks; a weak placeholder line ("we will seek more grants") hurts more than it helps.
Check the draft against the most common rejection reasons, verified against funder-published guidance:
Fix every flagged item or mark it clearly as needing the user's input before the proposal can go out.
Every run produces:
[EVIDENCE NEEDED: ...], never filled with invented statistics.[EVIDENCE NEEDED: ...] for any claim requiring real data the user has not supplied.Save the following as outline_checklist.py, then run python3 outline_checklist.py. It prints a section-by-section checklist with prompts and a pre-submit audit block. The code below was run locally and produces the output shown in testing.
python
#!/usr/bin/env python3
"""Print a grant proposal outline checklist with section prompts.
Usage: save as outline_checklist.py, then run: python3 outline_checklist.py
Outputs a plain-text checklist of standard proposal sections. Customize word
limits to match the funder's guidelines before drafting.
"""
SECTIONS = [
("Executive summary", "One page. Org intro, project summary, amount requested, expected outcomes."),
("Statement of need", "The problem in this community, with specific numbers. Who is affected, what gap this closes."),
("Goals and objectives", "Measurable results with baselines and targets. SMART where possible."),
("Project description / approach", "What you will do, who is involved, where, when. Methods, activities, timeline, staffing."),
("Evaluation plan", "Indicators, data sources, collection methods, who analyzes, reporting schedule."),
("Organizational capacity", "Mission, history, relevant past results, key staff. Proof, not claims."),
("Sustainability plan", "What continues after the grant period ends. Only include if the funder asks."),
("Budget and justification", "Line-item budget with a narrative explaining each cost. Every budget line must appear in the narrative, and vice versa."),
("Attachments checklist", "501(c)(3) letter, board list, financials, letters of support, anything the funder requires."),
]
def main():
print("GRANT PROPOSAL OUTLINE CHECKLIST")
print("=" * 40)
for i, (name, prompt) in enumerate(SECTIONS, 1):
print(f"\n{i}. {name}")
print(f" Prompt: {prompt}")
print(f" [ ] Drafted [ ] Within page/word limit [ ] Evidence attached")
print("\nPre-submit audit:")
print(" [ ] Matches funder's stated priorities")
print(" [ ] No generic filler; all claims have evidence or are flagged")
print(" [ ] Budget math checked; narrative and budget agree")
if __name__ == "__main__":
main()
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.