Source: https://github.com/aipoch/medical-research-skills
Grant Mock Reviewer
A simulated NIH study section reviewer that provides structured, rigorous critique of grant proposals using the official NIH scoring criteria and methodology.
Quick Check
Use this command to verify that the packaged script entry point can be parsed before deeper execution.
python -m py_compile scripts/main.py
Audit-Ready Commands
Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py -h
python scripts/main.py --help
When to Use
- Use this skill when the task needs Simulates NIH study section peer review for grant proposals. Triggers.
- Use this skill for academic writing tasks that require explicit assumptions, bounded scope, and a reproducible output format.
- Use this skill when you need a documented fallback path for missing inputs, execution errors, or partial evidence.
Workflow
- Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work.
- Validate that the request matches the documented scope and stop early if the task would require unsupported assumptions.
- Use the packaged script path or the documented reasoning path with only the inputs that are actually available.
- Return a structured result that separates assumptions, deliverables, risks, and unresolved items.
- If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion.
Capabilities
- NIH Scoring Rubric Application: Official 1-9 scale scoring across all 5 criteria
- Weakness Identification: Systematic detection of common proposal flaws
- Critique Generation: Structured written critiques for each review criterion
- Summary Statement: Complete mock Summary Statement output
- Revision Guidance: Prioritized, actionable recommendations for improvement
Usage
Command Line
# Full mock review with Summary Statement
python3 scripts/main.py --input proposal.pdf --format pdf --output review.md
# Review Specific Aims only
python3 scripts/main.py --input aims.pdf --section aims --output aims_review.md
# Targeted review (specific criterion focus)
python3 scripts/main.py --input proposal.pdf --focus approach --output approach_critique.md
# Generate NIH-style scores only
python3 scripts/main.py --input proposal.pdf --scores-only --output scores.json
# Compare before/after revision
python3 scripts/main.py --original original.pdf --revised revised.pdf --compare
As Library
from scripts.main import GrantMockReviewer
reviewer = GrantMockReviewer()
result = reviewer.review(
proposal_text=proposal_content,
grant_type="R01",
section="full"
)
print(result.summary_statement)
print(result.scores)
Parameters
| Parameter |
Type |
Default |
Required |
Description |
--input |
string |
- |
Yes |
Path to proposal file (PDF, DOCX, TXT, MD) |
--format |
string |
auto |
No |
Input file format (pdf, docx, txt, md) |
--section |
string |
full |
No |
Section to review (full, aims, significance, innovation, approach) |
--grant-type |
string |
R01 |
No |
Grant mechanism (R01, R21, R03, K99, F32) |
--focus |
string |
- |
No |
Focus on specific criterion (significance, investigator, innovation, approach, environment) |
--scores-only |
flag |
false |
No |
Output scores only (JSON) |
--output, -o |
string |
stdout |
No |
Output file path |
--original |
string |
- |
No |
Original proposal for comparison |
--revised |
string |
- |
No |
Revised proposal for comparison |
--compare |
flag |
false |
No |
Enable comparison mode |
NIH Scoring System
Overall Impact Score (1-9)
The single most important score reflecting the likelihood of the project to exert a sustained, powerful influence on the research field.
| Score |
Descriptor |
Likelihood of Funding |
| 1 |
Exceptional |
Very High |
| 2 |
Outstanding |
High |
| 3 |
Excellent |
Good |
| 4 |
Very Good |
Moderate |
| 5 |
Good |
Low-Moderate |
| 6 |
Satisfactory |
Low |
| 7 |
Fair |
Very Low |
| 8 |
Marginal |
Unlikely |
| 9 |
Poor |
Not Fundable |
Individual Criteria (1-9 each)
- Significance: Does the project address an important problem? Will scientific knowledge be advanced?
- Investigator(s): Are the PIs well-suited? Adequate experience and training?
- Innovation: Does it challenge current paradigms? Novel concepts, approaches, methods?
- Approach: Sound research design? Appropriate methods? Adequate controls? Address pitfalls?
- Environment: Adequate institutional support? Scientific environment conducive to success?
Score Interpretation
- 1-3 (High Priority): Compelling, well-developed proposals with strong approach
- 4-5 (Medium Priority): Good proposals with some weaknesses
- 6-9 (Low Priority): Significant weaknesses that diminish enthusiasm
Review Output Format
1. Score Summary
Overall Impact: [Score] - [Descriptor]
Criterion Scores:
- Significance: [Score]
- Investigator(s): [Score]
- Innovation: [Score]
- Approach: [Score]
- Environment: [Score]
2. Strengths
Bullet-point list of major strengths by criterion
3. Weaknesses
Bullet-point list of major weaknesses by criterion
4. Detailed Critique
Paragraph-form critique for each criterion following NIH style
5. Summary Statement
Complete narrative synthesis of the review
6. Revision Recommendations
Prioritized, actionable suggestions for improvement
Common Weaknesses Detected
Significance
- Insufficient justification for the research problem
- Incremental rather than transformative impact
- Unclear connection to human health/disease
- Overstatement of clinical significance without evidence
Investigator
- Lack of relevant expertise for proposed aims
- Insufficient track record in key methodologies
- PI overcommitted (excessive effort on other grants)
- Missing key collaborator expertise
Innovation
- Straightforward extension of published work
- Methods are standard rather than novel
- No challenging of existing paradigms
- Incremental rather than breakthrough potential
Approach
- Aims too ambitious for timeframe
- Insufficient preliminary data
- Inadequate experimental controls
- No discussion of pitfalls and alternatives
- Statistical analysis plan missing or inadequate
- Sample size/power calculations absent
Environment
- Inadequate institutional resources
- Missing core facility access
- Lack of relevant equipment
- Insufficient collaborative environment
Technical Difficulty
High - Requires deep understanding of NIH peer review processes, ability to apply standardized scoring rubrics consistently, and generation of clinically/scientifically accurate critique across diverse research domains.
Review Required: Human verification recommended before deployment in production settings.
References
references/nih_scoring_rubric.md - Complete NIH scoring guidelines
references/review_criteria_explained.md - Detailed criterion descriptions
references/common_weaknesses_catalog.md - Database of typical proposal flaws
references/summary_statement_templates.md - NIH-style statement templates
references/score_calibration_guide.md - Score assignment guidelines
Best Practices for Users
- Provide Complete Proposals: The tool works best with full Research Strategy sections
- Include Preliminary Data: Approach critique depends on feasibility evidence
- Review Multiple Times: Use iteratively as you revise
- Compare Versions: Track improvement between drafts
- Consider Multiple Perspectives: Supplement with human reviewer feedback
Limitations
- Cannot access external literature to verify claims
- May not capture domain-specific methodological nuances
- Scoring is simulated and may not match actual study section scores
- Best used as preparatory tool, not replacement for human review
Version
1.0.0 - Initial release with NIH R01/R21/R03 support
Risk Assessment
| Risk Indicator |
Assessment |
Level |
| Code Execution |
Python/R scripts executed locally |
Medium |
| Network Access |
No external API calls |
Low |
| File System Access |
Read input files, write output files |
Medium |
| Instruction Tampering |
Standard prompt guidelines |
Low |
| Data Exposure |
Output files saved to workspace |
Low |
Security Checklist
Prerequisites
# Python dependencies
pip install -r requirements.txt
Evaluation Criteria
Success Metrics
Test Cases
- Basic Functionality: Standard input → Expected output
- Edge Case: Invalid input → Graceful error handling
- Performance: Large dataset → Acceptable processing time
Lifecycle Status
- Current Stage: Draft
- Next Review Date: 2026-03-06
- Known Issues: None
- Planned Improvements:
- Performance optimization
- Additional feature support
Output Requirements
Every final response should make these items explicit when they are relevant:
- Objective or requested deliverable
- Inputs used and assumptions introduced
- Workflow or decision path
- Core result, recommendation, or artifact
- Constraints, risks, caveats, or validation needs
- Unresolved items and next-step checks
Error Handling
- If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
- If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
- If
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.
- Do not fabricate files, citations, data, search results, or execution outcomes.
Input Validation
This skill accepts requests that match the documented purpose of grant-mock-reviewer and include enough context to complete the workflow safely.
Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
grant-mock-reviewer only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
Response Template
Use the following fixed structure for non-trivial requests:
- Objective
- Inputs Received
- Assumptions
- Workflow
- Deliverable
- Risks and Limits
- Next Checks
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.
When Not to Use
- Do not proceed when required input files, identifiers, parameters, or context are missing — ask the user to provide them first.
- Do not assume capabilities beyond this skill's declared scope when the user requests external operations or inferences.
- Do not proceed without user confirmation when overwriting existing results, executing high-cost batch operations, or expanding task scope.
Required Inputs
| Field |
Required |
Format/Source |
Example |
If Missing |
| User task description |
Yes |
Text |
Research question, writing goal, analysis objective |
Stop and ask user to provide |
| Primary input material |
Depends on task |
Text, file path, ID, table, or literature |
PMID, PDF, CSV, DOCX, keywords, etc. |
Specify which material type is missing |
| Output preference |
No |
Text |
Language, format, target journal, template |
Use skill default format |
Output Contract
- Primary output: Structured result or target file aligned with this skill's objective.
- Optional output: Intermediate check notes, issue list, supplementary suggestions, or generated file paths.
- Format requirement: Unless the user specifies otherwise, prefer stable, reviewable Markdown or JSON; if the skill's bundled script requires a fixed format, use that format.
- If partially complete: Must explicitly mark as PARTIAL and state which steps are completed and which remain.
Failure Handling
- Missing critical input: Explicitly state which fields, files, or identifiers are missing and pause.
- Script, template, or resource execution failure: Report the failing step, likely cause, and recovery suggestions — do not silently degrade.
- Partial completion only: Return the verified portion first, then list remaining blockers and suggested next steps.
User Checkpoints
- Before executing batch processing, overwriting files, long-running searches, or multi-stage generation, confirm scope and output format with the user.
- Before proceeding when a key judgment is ambiguous, evidence is insufficient, or the workflow is entering the next stage, confirm with the user.
Quick Validation
- Check that key scripts, templates, or reference file paths this skill depends on exist.
- Check that the final output contains the core fields, sections, or files specified for this task.
- Check that results clearly mark assumptions, limitations, and incomplete items.
1---2name: grant-mock-reviewer3description: Simulate structured grant peer review for biomedical proposals; use when stress-testing significance, innovation, approach, feasibility, and reviewer-facing weaknesses before submission.4license: MIT5---6> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)
7
8# Grant Mock Reviewer
9
10A simulated NIH study section reviewer that provides structured, rigorous critique of grant proposals using the official NIH scoring criteria and methodology.
11
12## Quick Check
13
14Use this command to verify that the packaged script entry point can be parsed before deeper execution.
15
16```bash
17python -m py_compile scripts/main.py
18```
19
20## Audit-Ready Commands
21
22Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
23
24```bash
25python -m py_compile scripts/main.py
26python scripts/main.py --help
27python scripts/main.py -h
28python scripts/main.py --help
29```
30
31## When to Use
32
33- Use this skill when the task needs Simulates NIH study section peer review for grant proposals. Triggers.
34- Use this skill for academic writing tasks that require explicit assumptions, bounded scope, and a reproducible output format.
35- Use this skill when you need a documented fallback path for missing inputs, execution errors, or partial evidence.
36
37## Workflow
38
391. Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work.
402. Validate that the request matches the documented scope and stop early if the task would require unsupported assumptions.
413. Use the packaged script path or the documented reasoning path with only the inputs that are actually available.
424. Return a structured result that separates assumptions, deliverables, risks, and unresolved items.
435. If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion.
44
45## Capabilities
46
471. **NIH Scoring Rubric Application**: Official 1-9 scale scoring across all 5 criteria
482. **Weakness Identification**: Systematic detection of common proposal flaws
493. **Critique Generation**: Structured written critiques for each review criterion
504. **Summary Statement**: Complete mock Summary Statement output
515. **Revision Guidance**: Prioritized, actionable recommendations for improvement
52
53## Usage
54
55### Command Line
56
57```text
58# Full mock review with Summary Statement
59python3 scripts/main.py --input proposal.pdf --format pdf --output review.md
60
61# Review Specific Aims only
62python3 scripts/main.py --input aims.pdf --section aims --output aims_review.md
63
64# Targeted review (specific criterion focus)
65python3 scripts/main.py --input proposal.pdf --focus approach --output approach_critique.md
66
67# Generate NIH-style scores only
68python3 scripts/main.py --input proposal.pdf --scores-only --output scores.json
69
70# Compare before/after revision
71python3 scripts/main.py --original original.pdf --revised revised.pdf --compare
72```
73
74### As Library
75
76```python
77from scripts.main import GrantMockReviewer
78
79reviewer = GrantMockReviewer()
80result = reviewer.review(
81 proposal_text=proposal_content,
82 grant_type="R01",
83 section="full"
84)
85print(result.summary_statement)
86print(result.scores)
87```
88
89## Parameters
90
91| Parameter | Type | Default | Required | Description |
92|-----------|------|---------|----------|-------------|
93| `--input` | string | - | Yes | Path to proposal file (PDF, DOCX, TXT, MD) |
94| `--format` | string | auto | No | Input file format (pdf, docx, txt, md) |
95| `--section` | string | full | No | Section to review (full, aims, significance, innovation, approach) |
96| `--grant-type` | string | R01 | No | Grant mechanism (R01, R21, R03, K99, F32) |
97| `--focus` | string | - | No | Focus on specific criterion (significance, investigator, innovation, approach, environment) |
98| `--scores-only` | flag | false | No | Output scores only (JSON) |
99| `--output`, `-o` | string | stdout | No | Output file path |
100| `--original` | string | - | No | Original proposal for comparison |
101| `--revised` | string | - | No | Revised proposal for comparison |
102| `--compare` | flag | false | No | Enable comparison mode |
103
104## NIH Scoring System
105
106### Overall Impact Score (1-9)
107The single most important score reflecting the likelihood of the project to exert a sustained, powerful influence on the research field.
108
109| Score | Descriptor | Likelihood of Funding |
110|-------|------------|----------------------|
111| 1 | Exceptional | Very High |
112| 2 | Outstanding | High |
113| 3 | Excellent | Good |
114| 4 | Very Good | Moderate |
115| 5 | Good | Low-Moderate |
116| 6 | Satisfactory | Low |
117| 7 | Fair | Very Low |
118| 8 | Marginal | Unlikely |
119| 9 | Poor | Not Fundable |
120
121### Individual Criteria (1-9 each)
122
1231. **Significance**: Does the project address an important problem? Will scientific knowledge be advanced?
1242. **Investigator(s)**: Are the PIs well-suited? Adequate experience and training?
1253. **Innovation**: Does it challenge current paradigms? Novel concepts, approaches, methods?
1264. **Approach**: Sound research design? Appropriate methods? Adequate controls? Address pitfalls?
1275. **Environment**: Adequate institutional support? Scientific environment conducive to success?
128
129### Score Interpretation
130- **1-3 (High Priority)**: Compelling, well-developed proposals with strong approach
131- **4-5 (Medium Priority)**: Good proposals with some weaknesses
132- **6-9 (Low Priority)**: Significant weaknesses that diminish enthusiasm
133
134## Review Output Format
135
136### 1. Score Summary
137```
138Overall Impact: [Score] - [Descriptor]
139
140Criterion Scores:
141- Significance: [Score]
142- Investigator(s): [Score]
143- Innovation: [Score]
144- Approach: [Score]
145- Environment: [Score]
146```
147
148### 2. Strengths
149Bullet-point list of major strengths by criterion
150
151### 3. Weaknesses
152Bullet-point list of major weaknesses by criterion
153
154### 4. Detailed Critique
155Paragraph-form critique for each criterion following NIH style
156
157### 5. Summary Statement
158Complete narrative synthesis of the review
159
160### 6. Revision Recommendations
161Prioritized, actionable suggestions for improvement
162
163## Common Weaknesses Detected
164
165### Significance
166- Insufficient justification for the research problem
167- Incremental rather than transformative impact
168- Unclear connection to human health/disease
169- Overstatement of clinical significance without evidence
170
171### Investigator
172- Lack of relevant expertise for proposed aims
173- Insufficient track record in key methodologies
174- PI overcommitted (excessive effort on other grants)
175- Missing key collaborator expertise
176
177### Innovation
178- Straightforward extension of published work
179- Methods are standard rather than novel
180- No challenging of existing paradigms
181- Incremental rather than breakthrough potential
182
183### Approach
184- Aims too ambitious for timeframe
185- Insufficient preliminary data
186- Inadequate experimental controls
187- No discussion of pitfalls and alternatives
188- Statistical analysis plan missing or inadequate
189- Sample size/power calculations absent
190
191### Environment
192- Inadequate institutional resources
193- Missing core facility access
194- Lack of relevant equipment
195- Insufficient collaborative environment
196
197## Technical Difficulty
198
199**High** - Requires deep understanding of NIH peer review processes, ability to apply standardized scoring rubrics consistently, and generation of clinically/scientifically accurate critique across diverse research domains.
200
201**Review Required**: Human verification recommended before deployment in production settings.
202
203## References
204
205- `references/nih_scoring_rubric.md` - Complete NIH scoring guidelines
206- `references/review_criteria_explained.md` - Detailed criterion descriptions
207- `references/common_weaknesses_catalog.md` - Database of typical proposal flaws
208- `references/summary_statement_templates.md` - NIH-style statement templates
209- `references/score_calibration_guide.md` - Score assignment guidelines
210
211## Best Practices for Users
212
2131. **Provide Complete Proposals**: The tool works best with full Research Strategy sections
2142. **Include Preliminary Data**: Approach critique depends on feasibility evidence
2153. **Review Multiple Times**: Use iteratively as you revise
2164. **Compare Versions**: Track improvement between drafts
2175. **Consider Multiple Perspectives**: Supplement with human reviewer feedback
218
219## Limitations
220
2211. Cannot access external literature to verify claims
2222. May not capture domain-specific methodological nuances
2233. Scoring is simulated and may not match actual study section scores
2244. Best used as preparatory tool, not replacement for human review
225
226## Version
227
2281.0.0 - Initial release with NIH R01/R21/R03 support
229
230## Risk Assessment
231
232| Risk Indicator | Assessment | Level |
233|----------------|------------|-------|
234| Code Execution | Python/R scripts executed locally | Medium |
235| Network Access | No external API calls | Low |
236| File System Access | Read input files, write output files | Medium |
237| Instruction Tampering | Standard prompt guidelines | Low |
238| Data Exposure | Output files saved to workspace | Low |
239
240## Security Checklist
241
242- [ ] No hardcoded credentials or API keys
243- [ ] No unauthorized file system access (../)
244- [ ] Output does not expose sensitive information
245- [ ] Prompt injection protections in place
246- [ ] Input file paths validated (no ../ traversal)
247- [ ] Output directory restricted to workspace
248- [ ] Script execution in sandboxed environment
249- [ ] Error messages sanitized (no stack traces exposed)
250- [ ] Dependencies audited
251
252## Prerequisites
253
254```text
255# Python dependencies
256pip install -r requirements.txt
257```
258
259## Evaluation Criteria
260
261### Success Metrics
262- [ ] Successfully executes main functionality
263- [ ] Output meets quality standards
264- [ ] Handles edge cases gracefully
265- [ ] Performance is acceptable
266
267### Test Cases
2681. **Basic Functionality**: Standard input → Expected output
2692. **Edge Case**: Invalid input → Graceful error handling
2703. **Performance**: Large dataset → Acceptable processing time
271
272## Lifecycle Status
273
274- **Current Stage**: Draft
275- **Next Review Date**: 2026-03-06
276- **Known Issues**: None
277- **Planned Improvements**:
278 - Performance optimization
279 - Additional feature support
280
281## Output Requirements
282
283Every final response should make these items explicit when they are relevant:
284
285- Objective or requested deliverable
286- Inputs used and assumptions introduced
287- Workflow or decision path
288- Core result, recommendation, or artifact
289- Constraints, risks, caveats, or validation needs
290- Unresolved items and next-step checks
291
292## Error Handling
293
294- If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
295- If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
296- If `scripts/main.py` fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.
297- Do not fabricate files, citations, data, search results, or execution outcomes.
298
299## Input Validation
300
301This skill accepts requests that match the documented purpose of `grant-mock-reviewer` and include enough context to complete the workflow safely.
302
303Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
304
305> `grant-mock-reviewer` only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
306
307## Response Template
308
309Use the following fixed structure for non-trivial requests:
310
3111. Objective
3122. Inputs Received
3133. Assumptions
3144. Workflow
3155. Deliverable
3166. Risks and Limits
3177. Next Checks
318
319If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.
320
321## When Not to Use
322
323- Do not proceed when required input files, identifiers, parameters, or context are missing — ask the user to provide them first.
324- Do not assume capabilities beyond this skill's declared scope when the user requests external operations or inferences.
325- Do not proceed without user confirmation when overwriting existing results, executing high-cost batch operations, or expanding task scope.
326
327## Required Inputs
328
329| Field | Required | Format/Source | Example | If Missing |
330|---|---|---|---|---|
331| User task description | Yes | Text | Research question, writing goal, analysis objective | Stop and ask user to provide |
332| Primary input material | Depends on task | Text, file path, ID, table, or literature | PMID, PDF, CSV, DOCX, keywords, etc. | Specify which material type is missing |
333| Output preference | No | Text | Language, format, target journal, template | Use skill default format |
334
335## Output Contract
336
337- Primary output: Structured result or target file aligned with this skill's objective.
338- Optional output: Intermediate check notes, issue list, supplementary suggestions, or generated file paths.
339- Format requirement: Unless the user specifies otherwise, prefer stable, reviewable Markdown or JSON; if the skill's bundled script requires a fixed format, use that format.
340- If partially complete: Must explicitly mark as PARTIAL and state which steps are completed and which remain.
341
342## Failure Handling
343
344- Missing critical input: Explicitly state which fields, files, or identifiers are missing and pause.
345- Script, template, or resource execution failure: Report the failing step, likely cause, and recovery suggestions — do not silently degrade.
346- Partial completion only: Return the verified portion first, then list remaining blockers and suggested next steps.
347
348## User Checkpoints
349
350- Before executing batch processing, overwriting files, long-running searches, or multi-stage generation, confirm scope and output format with the user.
351- Before proceeding when a key judgment is ambiguous, evidence is insufficient, or the workflow is entering the next stage, confirm with the user.
352
353## Quick Validation
354
355- Check that key scripts, templates, or reference file paths this skill depends on exist.
356- Check that the final output contains the core fields, sections, or files specified for this task.
357- Check that results clearly mark assumptions, limitations, and incomplete items.