tokens-for-good 0.3.9 → 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 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.3.9",
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
- "LICENSE"
14
- ],
15
- "scripts": {
16
- "start": "node src/mcp-server.js",
17
- "test": "node --test src/**/*.test.js"
18
- },
19
- "keywords": [
20
- "mcp",
21
- "philanthropy",
22
- "nonprofit",
23
- "research",
24
- "tokens",
25
- "social-impact"
26
- ],
27
- "license": "MIT",
28
- "dependencies": {
29
- "@modelcontextprotocol/sdk": "^1.0.0",
30
- "zod": "^4.3.6"
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
+ ```