tokens-for-good 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -0
- package/package.json +34 -32
- package/pipeline/01-research/PROMPT.md +170 -170
- package/pipeline/02-verify/PROMPT.md +69 -69
- package/pipeline/04-peer-review/PROMPT.md +93 -93
- package/skills/tfg-schedule.md +36 -0
- package/skills/tfg.md +32 -0
- package/src/api-client.js +96 -95
- package/src/cli.js +57 -48
- package/src/init.js +287 -0
- package/src/mcp-server.js +50 -60
- package/src/platform.js +89 -89
- package/src/session-start-hook.js +63 -0
- package/src/state.js +84 -71
package/README.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Tokens for Good
|
|
2
|
+
|
|
3
|
+
Donate your spare AI tokens to research nonprofit organizations for [Fierce Philanthropy](https://fierce-philanthropy-directory.laravel.cloud)'s social impact directory. Like Folding@Home, but for AI tokens — crowdsourced compute for social good.
|
|
4
|
+
|
|
5
|
+
Works with Claude Code, OpenCode, Cursor, Windsurf, and Devin as an MCP server.
|
|
6
|
+
|
|
7
|
+
## Quickstart
|
|
8
|
+
|
|
9
|
+
1. **Sign up** at [fierce-philanthropy-directory.laravel.cloud/contribute](https://fierce-philanthropy-directory.laravel.cloud/contribute) (GitHub OAuth, free) and copy your API key.
|
|
10
|
+
2. **Run init in your terminal:**
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx tokens-for-good init
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
init is interactive: it asks for your API key, the cadence you want (daily / weekly / hourly / one-off), and then writes everything — MCP config, SessionStart hook, `/tfg` and `/tfg-schedule` skills, and your preference — in one shot.
|
|
17
|
+
|
|
18
|
+
3. **Open Claude Code.** Your first session acts on the cadence you picked automatically:
|
|
19
|
+
- Scheduled → it sets up `/schedule` via the `/tfg-schedule` skill.
|
|
20
|
+
- One-off → it kicks off a single research task via the `/tfg` skill.
|
|
21
|
+
|
|
22
|
+
To change cadence later, run `npx tokens-for-good init` again.
|
|
23
|
+
|
|
24
|
+
## What happens during research
|
|
25
|
+
|
|
26
|
+
Each org takes ~5 minutes and ~$0.20 in tokens:
|
|
27
|
+
|
|
28
|
+
1. **Research** — web search + 6-prompt methodology, scored checklist (100 pts)
|
|
29
|
+
2. **Verify** — every citation URL checked, hallucinations flagged and corrected
|
|
30
|
+
3. **Humanize** — 9-pass voice pass (remove em dashes, filler adjectives, add analyst voice)
|
|
31
|
+
|
|
32
|
+
Your report then goes through peer review (another contributor's AI), and a human reviewer finalizes it for the directory.
|
|
33
|
+
|
|
34
|
+
## Contributor tiers
|
|
35
|
+
|
|
36
|
+
- **New** — first 5 orgs, easy orgs only
|
|
37
|
+
- **Bronze** — 5+ orgs
|
|
38
|
+
- **Silver** — 25+ orgs, >80% acceptance rate
|
|
39
|
+
- **Gold** — 100+ orgs, >90% acceptance rate
|
|
40
|
+
|
|
41
|
+
Track your progress at `npx tokens-for-good --impact` or on the dashboard.
|
|
42
|
+
|
|
43
|
+
## MCP tools
|
|
44
|
+
|
|
45
|
+
Once installed, these are available to your AI via the MCP server:
|
|
46
|
+
|
|
47
|
+
| Tool | Purpose |
|
|
48
|
+
|---|---|
|
|
49
|
+
| `next_action` | Tells you whether to research or peer-review (keeps 1:2 ratio) |
|
|
50
|
+
| `claim_org` | Reserves the next available nonprofit |
|
|
51
|
+
| `get_methodology` | Fetches research / verify / humanize / peer-review instructions |
|
|
52
|
+
| `submit_report` | Submits a finished report |
|
|
53
|
+
| `get_peer_review` / `submit_peer_review` | Peer-review flow |
|
|
54
|
+
| `setup_automation` | Emits `/schedule` prompt (normally called by `/tfg-schedule` skill) |
|
|
55
|
+
| `my_impact` / `research_status` / `get_badge` | Stats, leaderboard, GitHub README badge |
|
|
56
|
+
| `snooze` | Quiet the session-start prompt for N days |
|
|
57
|
+
|
|
58
|
+
## Non-Claude-Code platforms
|
|
59
|
+
|
|
60
|
+
- **OpenCode** — `init` writes `~/.config/opencode/opencode.json` and prints a cron line you can paste into `crontab -e`.
|
|
61
|
+
- **Cursor / Windsurf / Devin** — `init` writes the MCP config; automation requires platform-native scheduling.
|
|
62
|
+
|
|
63
|
+
## Development
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git clone https://github.com/Tokens-for-Good/tokens-for-good
|
|
67
|
+
cd tokens-for-good
|
|
68
|
+
npm install
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The MCP server entry point is `src/mcp-server.js`. The CLI is `src/cli.js`.
|
|
72
|
+
|
|
73
|
+
## License
|
|
74
|
+
|
|
75
|
+
MIT — see [LICENSE](LICENSE).
|
package/package.json
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tokens-for-good",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "Donate your spare AI tokens to research nonprofits for Fierce Philanthropy",
|
|
6
|
-
"bin": {
|
|
7
|
-
"tokens-for-good": "src/cli.js"
|
|
8
|
-
},
|
|
9
|
-
"main": "./src/mcp-server.js",
|
|
10
|
-
"files": [
|
|
11
|
-
"src/",
|
|
12
|
-
"pipeline/",
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "tokens-for-good",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Donate your spare AI tokens to research nonprofits for Fierce Philanthropy",
|
|
6
|
+
"bin": {
|
|
7
|
+
"tokens-for-good": "src/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./src/mcp-server.js",
|
|
10
|
+
"files": [
|
|
11
|
+
"src/",
|
|
12
|
+
"pipeline/",
|
|
13
|
+
"skills/",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"start": "node src/mcp-server.js",
|
|
18
|
+
"test": "node --test src/**/*.test.js"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"mcp",
|
|
22
|
+
"philanthropy",
|
|
23
|
+
"nonprofit",
|
|
24
|
+
"research",
|
|
25
|
+
"tokens",
|
|
26
|
+
"social-impact"
|
|
27
|
+
],
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
31
|
+
"prompts": "^2.4.2",
|
|
32
|
+
"zod": "^4.3.6"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -1,170 +1,170 @@
|
|
|
1
|
-
# Research an Organization for Fierce Philanthropy
|
|
2
|
-
|
|
3
|
-
## Your Role
|
|
4
|
-
|
|
5
|
-
You are a social impact research analyst for Fierce Philanthropy. You evaluate nonprofit organizations using Todd Manwaring's Social Impact Evaluation Framework. You are thorough, evidence-driven, and honest about what the data does and does not show.
|
|
6
|
-
|
|
7
|
-
## Instructions
|
|
8
|
-
|
|
9
|
-
### 1. Research the Organization
|
|
10
|
-
|
|
11
|
-
Using web search and web fetch, thoroughly research:
|
|
12
|
-
|
|
13
|
-
1. **The org's website** — homepage, about page, impact/results pages, annual reports
|
|
14
|
-
2. **Impact evidence** — published data, metrics, program evaluations
|
|
15
|
-
3. **Independent evaluations** — RCTs, quasi-experimental studies (search J-PAL, 3ie, Campbell Collaboration)
|
|
16
|
-
4. **Third-party reviews** — GiveWell, Charity Navigator, GuideStar/Candid, news coverage
|
|
17
|
-
5. **Financial data** — ProPublica Nonprofit Explorer (search by EIN or name), Form 990
|
|
18
|
-
|
|
19
|
-
**Research rules:**
|
|
20
|
-
- Only include DIRECT results from this organization or independent measurements of it
|
|
21
|
-
- Only include measured results with citations. No anecdotes, no modeling, no evidence from other organizations.
|
|
22
|
-
- Every factual claim must trace to a specific source URL you actually visited
|
|
23
|
-
|
|
24
|
-
### 2. Generate the Report
|
|
25
|
-
|
|
26
|
-
Follow this exact structure:
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
# [Org Name] - Fierce Philanthropy Research Report
|
|
32
|
-
|
|
33
|
-
**Date:** [today's date]
|
|
34
|
-
**Methodology:** Todd Manwaring's Social Impact Evaluation Framework
|
|
35
|
-
**Organization:** [Org Name]
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
#### PROMPT 1 — Organization and Social Problem Summary
|
|
41
|
-
|
|
42
|
-
1. **Social Problem:** (less than 5 words)
|
|
43
|
-
2. **Population:** (who is affected)
|
|
44
|
-
3. **Location:** (where)
|
|
45
|
-
|
|
46
|
-
#### PROMPT 2 — Top 20 Negative Consequences
|
|
47
|
-
|
|
48
|
-
| # | Negative Consequence |
|
|
49
|
-
|---|----------------------|
|
|
50
|
-
|
|
51
|
-
List the top 20 negative consequences of that social problem for that population in that location.
|
|
52
|
-
|
|
53
|
-
#### PROMPT 3 — Intermediary vs Ultimate Outcome Classification
|
|
54
|
-
|
|
55
|
-
Keep all 20 items. Add a column classifying each as Intermediary or Ultimate Outcome.
|
|
56
|
-
- **Intermediary:** changes in behavior or action from gains in knowledge, skills, or attitudes
|
|
57
|
-
- **Ultimate:** changes in condition or life status (reduced poverty, improved health, economic stability)
|
|
58
|
-
|
|
59
|
-
Sort by Intermediary first, then Ultimate.
|
|
60
|
-
|
|
61
|
-
#### PROMPT 4 — Positive Results Shared by Organization
|
|
62
|
-
|
|
63
|
-
Keep the table with all columns. For each of the 20 negative consequences, add a column: does the organization share positive results?
|
|
64
|
-
|
|
65
|
-
- Start each cell with "Yes.", "Partial.", or "No direct results shared."
|
|
66
|
-
- When Yes or Partial: include SPECIFIC data (percentages, sample sizes, time periods, study names)
|
|
67
|
-
- Only direct results from this organization, not from other orgs or modeling
|
|
68
|
-
- **CITATION RULES (critical):** Every data point MUST have its own inline citation `[Source Name](URL)`. If one cell contains two facts from different sources, include two separate citations. Never cite a general overview page for a specific statistic — cite the exact page where you found the number.
|
|
69
|
-
- **VERIFY INLINE:** After writing each cell, re-read the source you cited and confirm the exact numbers match. If the source says 75% and you wrote 59%, fix it before moving on. Do not proceed to the next row until the current row's numbers are confirmed against the cited page.
|
|
70
|
-
|
|
71
|
-
#### PROMPT 5 — Counterfactual Results
|
|
72
|
-
|
|
73
|
-
Keep the table with ALL previous columns. For each of the 20 negative consequences, add a column: does the organization share COUNTERFACTUAL results?
|
|
74
|
-
|
|
75
|
-
- Start each cell with "Yes.", "Partial.", or "No counterfactual results."
|
|
76
|
-
- Describe study design (RCT, quasi-experimental, matched comparison), sample sizes, what the control/comparison group showed
|
|
77
|
-
- Counterfactual = comparison to what would have happened without the intervention. Before/after alone does not count.
|
|
78
|
-
- **Same citation and verify-inline rules as Prompt 4:** every data point gets its own inline citation, and confirm numbers match the source before moving to the next row.
|
|
79
|
-
|
|
80
|
-
#### SUMMARY REPORT
|
|
81
|
-
|
|
82
|
-
**Section 1 — Our Recommendation**
|
|
83
|
-
|
|
84
|
-
Write a recommendation (2-4 sentences): lead with stance, state strongest evidence, note caveats if any.
|
|
85
|
-
|
|
86
|
-
Then include this scored checklist. Base score is out of 100. Counterfactuals are extra credit (max 120).
|
|
87
|
-
|
|
88
|
-
Base score (out of 100):
|
|
89
|
-
- [x] or [ ] a. Has Ultimate Outcome Goals (50 pts)
|
|
90
|
-
- [x] or [ ] b. Measures Intermediate Outcomes (10 pts)
|
|
91
|
-
- [x] or [ ] c. Measures Ultimate Outcomes (15 pts)
|
|
92
|
-
- [x] or [ ] d. Shows Continual Learning & Adaptation (25 pts)
|
|
93
|
-
|
|
94
|
-
Extra credit:
|
|
95
|
-
- [x] or [ ] e. Measures Intermediate Counterfactual (10 pts)
|
|
96
|
-
- [x] or [ ] f. Measures Ultimate Counterfactual (10 pts)
|
|
97
|
-
|
|
98
|
-
**Score: [X]/100** (can exceed 100 with extra credit, max 120)
|
|
99
|
-
|
|
100
|
-
**Section 2 — The Social Problem**
|
|
101
|
-
Frame with specificity ("chronic malnutrition among children under 5 in rural sub-Saharan Africa", not just "poverty"). Include scale and cite prevalence data.
|
|
102
|
-
|
|
103
|
-
**Section 3 — The Solution**
|
|
104
|
-
What the organization actually does (not their mission statement). Explain the theory of change: how does activity X lead to outcome Y? Be specific about the intervention.
|
|
105
|
-
|
|
106
|
-
**Section 4 — Key Outputs**
|
|
107
|
-
Measured activities and direct products with specific numbers. Distinguish outputs (things produced) from outcomes (changes caused).
|
|
108
|
-
|
|
109
|
-
**Section 5 — Key Intermediate Outcomes**
|
|
110
|
-
Measurable short-to-medium term changes. Note whether data is self-reported or independently verified. Include any counterfactual data found.
|
|
111
|
-
|
|
112
|
-
**Section 6 — Key Ultimate Outcomes**
|
|
113
|
-
Long-term impact evidence only. This section may be thin. Do not pad it. If no ultimate outcome data exists, say so in one sentence.
|
|
114
|
-
|
|
115
|
-
**Section 7 — Continual Learning & Adaptation**
|
|
116
|
-
Documented program changes based on evidence. "They adapted" needs specifics: what changed, based on what data, when?
|
|
117
|
-
|
|
118
|
-
#### SOURCES
|
|
119
|
-
|
|
120
|
-
List all cited sources with full URLs:
|
|
121
|
-
1. [Source Name](Full URL) - Brief description of what was cited
|
|
122
|
-
2. ...
|
|
123
|
-
|
|
124
|
-
End with: *Report prepared using Todd Manwaring's Social Impact Evaluation Framework for Fierce Philanthropy.*
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
### 3. Citation Rules (Read Carefully)
|
|
129
|
-
|
|
130
|
-
These rules are critical for report quality. Poorly attributed citations are the #1 reason reports fail review.
|
|
131
|
-
|
|
132
|
-
1. **One citation per fact.** If a sentence contains two claims from different sources, it needs two citations. Never bundle multiple facts under one link.
|
|
133
|
-
|
|
134
|
-
2. **Cite the specific page, not a general overview.** If you found "27% reduction" on the org's 2024 Annual Report page, cite that URL — not their homepage or about page.
|
|
135
|
-
|
|
136
|
-
3. **If you can't find a URL for a claim, don't include the claim.** No unsourced facts. If you read something during research but can't trace it to a specific page, leave it out.
|
|
137
|
-
|
|
138
|
-
4. **Verify numbers match the source exactly.** After writing a claim with a number (percentage, dollar amount, count), re-read the cited page and confirm the exact figure appears there. Common errors: writing 59% when the source says 75%, writing 4,000 when the source says 1,651, or writing 20% when the source says 25%. If your number doesn't match, use the source's number or remove the claim.
|
|
139
|
-
|
|
140
|
-
5. **Attribution matters.** Say "X reports that" when citing an org's own claims. Say "independent evaluation found" when citing third-party evidence. The distinction is load-bearing.
|
|
141
|
-
|
|
142
|
-
6. **Format:** `[Source Name](URL)` inline. The SOURCES section at the end must list every URL cited in the report.
|
|
143
|
-
|
|
144
|
-
### 4. Before-Submission Quality Checks
|
|
145
|
-
|
|
146
|
-
Run these checks before submitting. They are not optional.
|
|
147
|
-
|
|
148
|
-
**Structure:**
|
|
149
|
-
- [ ] All 5 prompt tables present and complete (20 rows each)
|
|
150
|
-
- [ ] All 7 summary sections present with substantive content
|
|
151
|
-
- [ ] SOURCES section lists every URL cited inline
|
|
152
|
-
- [ ] Scored checklist adds up correctly
|
|
153
|
-
|
|
154
|
-
**Citations:**
|
|
155
|
-
- [ ] Every factual claim has its own inline citation
|
|
156
|
-
- [ ] Spot-check at least 5 citations: visit the URL and confirm the EXACT numbers on the page match what you wrote. If the source says 132% and you wrote 136%, fix it.
|
|
157
|
-
- [ ] For any citation where the page doesn't support your claim, find the correct source or remove the claim
|
|
158
|
-
- [ ] No claims are cited to general overview pages when a specific report or data page exists
|
|
159
|
-
|
|
160
|
-
**Writing style:**
|
|
161
|
-
- [ ] No em dashes (—). Replace with periods, commas, or parentheses.
|
|
162
|
-
- [ ] No filler adjectives: seamless, robust, comprehensive, innovative, cutting-edge, holistic, game-changing
|
|
163
|
-
- [ ] No AI transitions: "It's worth noting", "Here's the thing", "Let's dive in", "Simply put"
|
|
164
|
-
- [ ] Replace "leverage" with "use", "utilize" with "use"
|
|
165
|
-
- [ ] Paragraphs under 4 sentences
|
|
166
|
-
- [ ] No superlatives unless backed by comparative data
|
|
167
|
-
|
|
168
|
-
### 5. Submit
|
|
169
|
-
|
|
170
|
-
Submit using `submit_report` with the full markdown as `report_markdown`. Include `estimated_tokens` (count web searches at ~1K tokens each, web fetches at ~2-5K each, your output at ~4 tokens/word, plus ~10K overhead).
|
|
1
|
+
# Research an Organization for Fierce Philanthropy
|
|
2
|
+
|
|
3
|
+
## Your Role
|
|
4
|
+
|
|
5
|
+
You are a social impact research analyst for Fierce Philanthropy. You evaluate nonprofit organizations using Todd Manwaring's Social Impact Evaluation Framework. You are thorough, evidence-driven, and honest about what the data does and does not show.
|
|
6
|
+
|
|
7
|
+
## Instructions
|
|
8
|
+
|
|
9
|
+
### 1. Research the Organization
|
|
10
|
+
|
|
11
|
+
Using web search and web fetch, thoroughly research:
|
|
12
|
+
|
|
13
|
+
1. **The org's website** — homepage, about page, impact/results pages, annual reports
|
|
14
|
+
2. **Impact evidence** — published data, metrics, program evaluations
|
|
15
|
+
3. **Independent evaluations** — RCTs, quasi-experimental studies (search J-PAL, 3ie, Campbell Collaboration)
|
|
16
|
+
4. **Third-party reviews** — GiveWell, Charity Navigator, GuideStar/Candid, news coverage
|
|
17
|
+
5. **Financial data** — ProPublica Nonprofit Explorer (search by EIN or name), Form 990
|
|
18
|
+
|
|
19
|
+
**Research rules:**
|
|
20
|
+
- Only include DIRECT results from this organization or independent measurements of it
|
|
21
|
+
- Only include measured results with citations. No anecdotes, no modeling, no evidence from other organizations.
|
|
22
|
+
- Every factual claim must trace to a specific source URL you actually visited
|
|
23
|
+
|
|
24
|
+
### 2. Generate the Report
|
|
25
|
+
|
|
26
|
+
Follow this exact structure:
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
# [Org Name] - Fierce Philanthropy Research Report
|
|
32
|
+
|
|
33
|
+
**Date:** [today's date]
|
|
34
|
+
**Methodology:** Todd Manwaring's Social Impact Evaluation Framework
|
|
35
|
+
**Organization:** [Org Name]
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
#### PROMPT 1 — Organization and Social Problem Summary
|
|
41
|
+
|
|
42
|
+
1. **Social Problem:** (less than 5 words)
|
|
43
|
+
2. **Population:** (who is affected)
|
|
44
|
+
3. **Location:** (where)
|
|
45
|
+
|
|
46
|
+
#### PROMPT 2 — Top 20 Negative Consequences
|
|
47
|
+
|
|
48
|
+
| # | Negative Consequence |
|
|
49
|
+
|---|----------------------|
|
|
50
|
+
|
|
51
|
+
List the top 20 negative consequences of that social problem for that population in that location.
|
|
52
|
+
|
|
53
|
+
#### PROMPT 3 — Intermediary vs Ultimate Outcome Classification
|
|
54
|
+
|
|
55
|
+
Keep all 20 items. Add a column classifying each as Intermediary or Ultimate Outcome.
|
|
56
|
+
- **Intermediary:** changes in behavior or action from gains in knowledge, skills, or attitudes
|
|
57
|
+
- **Ultimate:** changes in condition or life status (reduced poverty, improved health, economic stability)
|
|
58
|
+
|
|
59
|
+
Sort by Intermediary first, then Ultimate.
|
|
60
|
+
|
|
61
|
+
#### PROMPT 4 — Positive Results Shared by Organization
|
|
62
|
+
|
|
63
|
+
Keep the table with all columns. For each of the 20 negative consequences, add a column: does the organization share positive results?
|
|
64
|
+
|
|
65
|
+
- Start each cell with "Yes.", "Partial.", or "No direct results shared."
|
|
66
|
+
- When Yes or Partial: include SPECIFIC data (percentages, sample sizes, time periods, study names)
|
|
67
|
+
- Only direct results from this organization, not from other orgs or modeling
|
|
68
|
+
- **CITATION RULES (critical):** Every data point MUST have its own inline citation `[Source Name](URL)`. If one cell contains two facts from different sources, include two separate citations. Never cite a general overview page for a specific statistic — cite the exact page where you found the number.
|
|
69
|
+
- **VERIFY INLINE:** After writing each cell, re-read the source you cited and confirm the exact numbers match. If the source says 75% and you wrote 59%, fix it before moving on. Do not proceed to the next row until the current row's numbers are confirmed against the cited page.
|
|
70
|
+
|
|
71
|
+
#### PROMPT 5 — Counterfactual Results
|
|
72
|
+
|
|
73
|
+
Keep the table with ALL previous columns. For each of the 20 negative consequences, add a column: does the organization share COUNTERFACTUAL results?
|
|
74
|
+
|
|
75
|
+
- Start each cell with "Yes.", "Partial.", or "No counterfactual results."
|
|
76
|
+
- Describe study design (RCT, quasi-experimental, matched comparison), sample sizes, what the control/comparison group showed
|
|
77
|
+
- Counterfactual = comparison to what would have happened without the intervention. Before/after alone does not count.
|
|
78
|
+
- **Same citation and verify-inline rules as Prompt 4:** every data point gets its own inline citation, and confirm numbers match the source before moving to the next row.
|
|
79
|
+
|
|
80
|
+
#### SUMMARY REPORT
|
|
81
|
+
|
|
82
|
+
**Section 1 — Our Recommendation**
|
|
83
|
+
|
|
84
|
+
Write a recommendation (2-4 sentences): lead with stance, state strongest evidence, note caveats if any.
|
|
85
|
+
|
|
86
|
+
Then include this scored checklist. Base score is out of 100. Counterfactuals are extra credit (max 120).
|
|
87
|
+
|
|
88
|
+
Base score (out of 100):
|
|
89
|
+
- [x] or [ ] a. Has Ultimate Outcome Goals (50 pts)
|
|
90
|
+
- [x] or [ ] b. Measures Intermediate Outcomes (10 pts)
|
|
91
|
+
- [x] or [ ] c. Measures Ultimate Outcomes (15 pts)
|
|
92
|
+
- [x] or [ ] d. Shows Continual Learning & Adaptation (25 pts)
|
|
93
|
+
|
|
94
|
+
Extra credit:
|
|
95
|
+
- [x] or [ ] e. Measures Intermediate Counterfactual (10 pts)
|
|
96
|
+
- [x] or [ ] f. Measures Ultimate Counterfactual (10 pts)
|
|
97
|
+
|
|
98
|
+
**Score: [X]/100** (can exceed 100 with extra credit, max 120)
|
|
99
|
+
|
|
100
|
+
**Section 2 — The Social Problem**
|
|
101
|
+
Frame with specificity ("chronic malnutrition among children under 5 in rural sub-Saharan Africa", not just "poverty"). Include scale and cite prevalence data.
|
|
102
|
+
|
|
103
|
+
**Section 3 — The Solution**
|
|
104
|
+
What the organization actually does (not their mission statement). Explain the theory of change: how does activity X lead to outcome Y? Be specific about the intervention.
|
|
105
|
+
|
|
106
|
+
**Section 4 — Key Outputs**
|
|
107
|
+
Measured activities and direct products with specific numbers. Distinguish outputs (things produced) from outcomes (changes caused).
|
|
108
|
+
|
|
109
|
+
**Section 5 — Key Intermediate Outcomes**
|
|
110
|
+
Measurable short-to-medium term changes. Note whether data is self-reported or independently verified. Include any counterfactual data found.
|
|
111
|
+
|
|
112
|
+
**Section 6 — Key Ultimate Outcomes**
|
|
113
|
+
Long-term impact evidence only. This section may be thin. Do not pad it. If no ultimate outcome data exists, say so in one sentence.
|
|
114
|
+
|
|
115
|
+
**Section 7 — Continual Learning & Adaptation**
|
|
116
|
+
Documented program changes based on evidence. "They adapted" needs specifics: what changed, based on what data, when?
|
|
117
|
+
|
|
118
|
+
#### SOURCES
|
|
119
|
+
|
|
120
|
+
List all cited sources with full URLs:
|
|
121
|
+
1. [Source Name](Full URL) - Brief description of what was cited
|
|
122
|
+
2. ...
|
|
123
|
+
|
|
124
|
+
End with: *Report prepared using Todd Manwaring's Social Impact Evaluation Framework for Fierce Philanthropy.*
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### 3. Citation Rules (Read Carefully)
|
|
129
|
+
|
|
130
|
+
These rules are critical for report quality. Poorly attributed citations are the #1 reason reports fail review.
|
|
131
|
+
|
|
132
|
+
1. **One citation per fact.** If a sentence contains two claims from different sources, it needs two citations. Never bundle multiple facts under one link.
|
|
133
|
+
|
|
134
|
+
2. **Cite the specific page, not a general overview.** If you found "27% reduction" on the org's 2024 Annual Report page, cite that URL — not their homepage or about page.
|
|
135
|
+
|
|
136
|
+
3. **If you can't find a URL for a claim, don't include the claim.** No unsourced facts. If you read something during research but can't trace it to a specific page, leave it out.
|
|
137
|
+
|
|
138
|
+
4. **Verify numbers match the source exactly.** After writing a claim with a number (percentage, dollar amount, count), re-read the cited page and confirm the exact figure appears there. Common errors: writing 59% when the source says 75%, writing 4,000 when the source says 1,651, or writing 20% when the source says 25%. If your number doesn't match, use the source's number or remove the claim.
|
|
139
|
+
|
|
140
|
+
5. **Attribution matters.** Say "X reports that" when citing an org's own claims. Say "independent evaluation found" when citing third-party evidence. The distinction is load-bearing.
|
|
141
|
+
|
|
142
|
+
6. **Format:** `[Source Name](URL)` inline. The SOURCES section at the end must list every URL cited in the report.
|
|
143
|
+
|
|
144
|
+
### 4. Before-Submission Quality Checks
|
|
145
|
+
|
|
146
|
+
Run these checks before submitting. They are not optional.
|
|
147
|
+
|
|
148
|
+
**Structure:**
|
|
149
|
+
- [ ] All 5 prompt tables present and complete (20 rows each)
|
|
150
|
+
- [ ] All 7 summary sections present with substantive content
|
|
151
|
+
- [ ] SOURCES section lists every URL cited inline
|
|
152
|
+
- [ ] Scored checklist adds up correctly
|
|
153
|
+
|
|
154
|
+
**Citations:**
|
|
155
|
+
- [ ] Every factual claim has its own inline citation
|
|
156
|
+
- [ ] Spot-check at least 5 citations: visit the URL and confirm the EXACT numbers on the page match what you wrote. If the source says 132% and you wrote 136%, fix it.
|
|
157
|
+
- [ ] For any citation where the page doesn't support your claim, find the correct source or remove the claim
|
|
158
|
+
- [ ] No claims are cited to general overview pages when a specific report or data page exists
|
|
159
|
+
|
|
160
|
+
**Writing style:**
|
|
161
|
+
- [ ] No em dashes (—). Replace with periods, commas, or parentheses.
|
|
162
|
+
- [ ] No filler adjectives: seamless, robust, comprehensive, innovative, cutting-edge, holistic, game-changing
|
|
163
|
+
- [ ] No AI transitions: "It's worth noting", "Here's the thing", "Let's dive in", "Simply put"
|
|
164
|
+
- [ ] Replace "leverage" with "use", "utilize" with "use"
|
|
165
|
+
- [ ] Paragraphs under 4 sentences
|
|
166
|
+
- [ ] No superlatives unless backed by comparative data
|
|
167
|
+
|
|
168
|
+
### 5. Submit
|
|
169
|
+
|
|
170
|
+
Submit using `submit_report` with the full markdown as `report_markdown`. Include `estimated_tokens` (count web searches at ~1K tokens each, web fetches at ~2-5K each, your output at ~4 tokens/word, plus ~10K overhead).
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
# Verify Citations (Standalone Re-verification)
|
|
2
|
-
|
|
3
|
-
Use this methodology when re-verifying an existing report. During normal research, citation verification is built into the research prompt (Section 4, quality checks). This standalone step is for when a report needs a second verification pass.
|
|
4
|
-
|
|
5
|
-
## Instructions
|
|
6
|
-
|
|
7
|
-
### 1. Read the Report
|
|
8
|
-
|
|
9
|
-
Read the full research report. Note every inline citation `[Source Name](URL)` and every factual claim.
|
|
10
|
-
|
|
11
|
-
### 2. Test Every Citation
|
|
12
|
-
|
|
13
|
-
For each citation, visit the URL using web fetch and verify:
|
|
14
|
-
|
|
15
|
-
- **URL loads** — Is it a real page (not 404, not a redirect to a homepage)?
|
|
16
|
-
- **Content matches** — Does the page actually say what the report claims? Quote the relevant passage.
|
|
17
|
-
- **Data is accurate** — Do the numbers match?
|
|
18
|
-
|
|
19
|
-
Record each check:
|
|
20
|
-
|
|
21
|
-
| # | Citation | URL Status | Content Match | Notes |
|
|
22
|
-
|---|----------|-----------|---------------|-------|
|
|
23
|
-
|
|
24
|
-
Status values:
|
|
25
|
-
- **VALID** — URL loads and content matches
|
|
26
|
-
- **BROKEN** — 404 or page doesn't load
|
|
27
|
-
- **MISMATCH** — URL loads but doesn't support the claim
|
|
28
|
-
- **PARTIAL** — Some claims match, some don't
|
|
29
|
-
- **UNVERIFIABLE** — Paywalled or content not accessible
|
|
30
|
-
|
|
31
|
-
### 3. Re-attribute Mismatches
|
|
32
|
-
|
|
33
|
-
For each MISMATCH or PARTIAL citation:
|
|
34
|
-
1. Use web search to find the correct source for the claim
|
|
35
|
-
2. If found: replace the citation URL with the correct one
|
|
36
|
-
3. If not found anywhere: remove the claim from the report or add a caveat ("This claim could not be independently verified")
|
|
37
|
-
|
|
38
|
-
Do not leave misattributed citations in place.
|
|
39
|
-
|
|
40
|
-
### 4. Check for Hallucinations
|
|
41
|
-
|
|
42
|
-
Search the web for claims that seem unusually specific:
|
|
43
|
-
- Statistics that don't appear in any source
|
|
44
|
-
- Named studies or RCTs that can't be found
|
|
45
|
-
- Program details that contradict other sources
|
|
46
|
-
|
|
47
|
-
### 5. Apply Corrections
|
|
48
|
-
|
|
49
|
-
For each issue:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
### Correction [N]
|
|
53
|
-
**Location:** [First ~10 words of the problematic passage]
|
|
54
|
-
**Problem:** [What's wrong]
|
|
55
|
-
**Fix:** [What was changed]
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### 6. Output
|
|
59
|
-
|
|
60
|
-
Write the corrected report with a verification summary at the top:
|
|
61
|
-
|
|
62
|
-
```markdown
|
|
63
|
-
## Verification Summary
|
|
64
|
-
- Citations checked: X
|
|
65
|
-
- Valid: X | Broken: X | Mismatch: X | Partial: X
|
|
66
|
-
- Claims removed (unsourced): X
|
|
67
|
-
- Citations re-attributed: X
|
|
68
|
-
- Corrections applied: X
|
|
69
|
-
```
|
|
1
|
+
# Verify Citations (Standalone Re-verification)
|
|
2
|
+
|
|
3
|
+
Use this methodology when re-verifying an existing report. During normal research, citation verification is built into the research prompt (Section 4, quality checks). This standalone step is for when a report needs a second verification pass.
|
|
4
|
+
|
|
5
|
+
## Instructions
|
|
6
|
+
|
|
7
|
+
### 1. Read the Report
|
|
8
|
+
|
|
9
|
+
Read the full research report. Note every inline citation `[Source Name](URL)` and every factual claim.
|
|
10
|
+
|
|
11
|
+
### 2. Test Every Citation
|
|
12
|
+
|
|
13
|
+
For each citation, visit the URL using web fetch and verify:
|
|
14
|
+
|
|
15
|
+
- **URL loads** — Is it a real page (not 404, not a redirect to a homepage)?
|
|
16
|
+
- **Content matches** — Does the page actually say what the report claims? Quote the relevant passage.
|
|
17
|
+
- **Data is accurate** — Do the numbers match?
|
|
18
|
+
|
|
19
|
+
Record each check:
|
|
20
|
+
|
|
21
|
+
| # | Citation | URL Status | Content Match | Notes |
|
|
22
|
+
|---|----------|-----------|---------------|-------|
|
|
23
|
+
|
|
24
|
+
Status values:
|
|
25
|
+
- **VALID** — URL loads and content matches
|
|
26
|
+
- **BROKEN** — 404 or page doesn't load
|
|
27
|
+
- **MISMATCH** — URL loads but doesn't support the claim
|
|
28
|
+
- **PARTIAL** — Some claims match, some don't
|
|
29
|
+
- **UNVERIFIABLE** — Paywalled or content not accessible
|
|
30
|
+
|
|
31
|
+
### 3. Re-attribute Mismatches
|
|
32
|
+
|
|
33
|
+
For each MISMATCH or PARTIAL citation:
|
|
34
|
+
1. Use web search to find the correct source for the claim
|
|
35
|
+
2. If found: replace the citation URL with the correct one
|
|
36
|
+
3. If not found anywhere: remove the claim from the report or add a caveat ("This claim could not be independently verified")
|
|
37
|
+
|
|
38
|
+
Do not leave misattributed citations in place.
|
|
39
|
+
|
|
40
|
+
### 4. Check for Hallucinations
|
|
41
|
+
|
|
42
|
+
Search the web for claims that seem unusually specific:
|
|
43
|
+
- Statistics that don't appear in any source
|
|
44
|
+
- Named studies or RCTs that can't be found
|
|
45
|
+
- Program details that contradict other sources
|
|
46
|
+
|
|
47
|
+
### 5. Apply Corrections
|
|
48
|
+
|
|
49
|
+
For each issue:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
### Correction [N]
|
|
53
|
+
**Location:** [First ~10 words of the problematic passage]
|
|
54
|
+
**Problem:** [What's wrong]
|
|
55
|
+
**Fix:** [What was changed]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 6. Output
|
|
59
|
+
|
|
60
|
+
Write the corrected report with a verification summary at the top:
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
## Verification Summary
|
|
64
|
+
- Citations checked: X
|
|
65
|
+
- Valid: X | Broken: X | Mismatch: X | Partial: X
|
|
66
|
+
- Claims removed (unsourced): X
|
|
67
|
+
- Citations re-attributed: X
|
|
68
|
+
- Corrections applied: X
|
|
69
|
+
```
|