Skip to content
Back to skills

Generate Report

ASecurity

Consolidates literature review, idea discovery, refined proposal, experiment plan, experiment results, and automated review into a single NARRATIVE_REPORT.md that is rich enough to drive the downstream paper-writing-pipeline (paper-plan → paper-figure-generate → paper-draft → paper-review-loop → paper-convert).

  • 103 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 6, 2026
researchgobash

Works with

  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned June 6, 2026

npx -y skills add GRIND-Lab-Core/night_owl_research_agent --skill generate-report --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Generate Report?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Generate Report
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/grind-lab-core-generate-report/badge)](https://www.skillsdirectory.com/skills/grind-lab-core-generate-report)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: generate-report
description: Consolidates literature review, idea discovery, refined proposal, experiment plan, experiment results, and automated review into a single NARRATIVE_REPORT.md that is rich enough to drive the downstream paper-writing-pipeline (paper-plan → paper-figure-generate → paper-draft → paper-review-loop → paper-convert).
argument-hint: [optional-focus-or-output-path]
allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, Agent, WebSearch, WebFetch, mcp__codex__codex, mcp__codex__codex-reply
---

# Skill: generate-report

You build `output/NARRATIVE_REPORT.md` — the single source-of-truth narrative that the downstream `paper-writing-pipeline` reads in its first phase. The report must contain every claim, number, figure spec, citation hook, and limitation the paper-plan / paper-draft skills need so they do not have to re-derive context from scattered logs.

Focus / override: **$ARGUMENTS**

---

## Constants

- **REVIEWER_MODEL = `gpt-5.4`** — Optional Codex MCP review pass over the final narrative.
- **TARGET_VENUE** — Read from `program.md` Section 2 or `research_contract.md`. Default `IJGIS`.
- **OUTPUT_PATH = `output/NARRATIVE_REPORT.md`**
- **TEMPLATE = `skills/generate-report/templates/NARRATIVE_REPORT_TEMPLATE.md`**

---

## Phase 1: Gather Inputs

Read all of the following. Any missing file is a soft failure — record it under "Missing Inputs" in the narrative and continue.

Primary inputs (MUST read):
- `output/LIT_REVIEW_REPORT.md` — themes, gap analysis, key citations
- `output/IDEA_REPORT.md` — ranked idea candidates, pilot scores, chosen idea rationale
- `output/refine-logs/FINAL_PROPOSAL.md` — refined research proposal (problem / method / contributions)
- `output/refine-logs/EXPERIMENT_PLAN.md` — experiment design, run order, success criteria
- `output/EXPERIMENT_RESULT.md` — actual quantitative results
- `output/AUTO_REVIEW._REPORT.md` — adversarial review feedback and required fixes

Supporting inputs (read if referenced or needed for gap-filling):
- `research_contract.md`, `program.md` — active idea, venue, success criteria
- `memory/APPROVED_CLAIMS.md` — verified claims only
- `output/PROJ_NOTES.md` — compact discovery log
- `output/EXPERIMENT_LOG.md` — full experiment record
- `data/DATA_MANIFEST.md` — dataset provenance
- `output/spatial-analysis/` — spatial diagnostics and maps
- `output/figures/` — any already-generated plots or JSONs

> If context remains under budget, scan the entire `night_owl_research_agent/` project for anything that materially changes the story (e.g., new figures, last-minute claims, deprecated methods). Err on the side of reading more context — the downstream pipeline cannot.

---

## Phase 2: Reconcile Evidence

Before writing, resolve conflicts between sources:

1. **Claim vs. result**: Every claim must trace to a row in `memory/APPROVED_CLAIMS.md` or a specific number in `output/EXPERIMENT_RESULT.md`. Flag unsupported claims as `[NEEDS_EVIDENCE]`.
2. **Proposal vs. executed plan**: If `FINAL_PROPOSAL.md` proposed an experiment that was not actually run per `EXPERIMENT_RESULT.md`, record it under "Deferred / Not Executed".
3. **Review fixes applied?**: Cross-check `AUTO_REVIEW._REPORT.md` CRITICAL/MAJOR items against `EXPERIMENT_RESULT.md` and method descriptions. Items not yet addressed go into "Outstanding Review Issues".
4. **Numbers must be exact**: Quote metrics verbatim (e.g., `R² = 0.78`, `Moran's I = 0.12 (p < 0.01)`). Never round or paraphrase.

---

## Phase 3: Write NARRATIVE_REPORT.md

Follow `skills/generate-report/templates/NARRATIVE_REPORT_TEMPLATE.md`. Fill every section — do not ship a template with empty placeholders. If a section genuinely does not apply, write "N/A — reason".

Required content, at minimum:

1. **One-paragraph paper summary** + one-sentence contribution (this is what paper-plan uses to frame the abstract and hero figure).
2. **Problem & motivation** — quantified scale, drawn from LIT_REVIEW_REPORT and FINAL_PROPOSAL.
3. **Gap analysis** — explicit gaps closed by this work, with boundary citations from LIT_REVIEW_REPORT.
4. **Contributions** — numbered, each tied to a specific experiment / claim / figure.
5. **Method** — enough detail for paper-draft to write Methods without re-reading FINAL_PROPOSAL: datasets, study area, preprocessing, model, hyperparameters, evaluation protocol.
6. **Experiments & results** — per-experiment: hypothesis, setup, headline numbers, tables/figures produced, pass/fail vs. success criteria from EXPERIMENT_PLAN.
7. **Claims–evidence matrix** — table: claim | evidence source | quantitative support | figure/table id.
8. **Figure & table plan** — for each: id, type (hero / architecture / map / plot / table), caption draft, data source path, priority. The hero figure needs extra detail (what it compares, visual expectation, why a skim reader gets it).
9. **Related work synthesis** — themes and key papers already verified in LIT_REVIEW_REPORT; group them the way the paper will cite them.
10. **Limitations & threats to validity** — concrete, not generic; include anything from AUTO_REVIEW._REPORT.md not yet fixed.
11. **Reviewer-raised issues and their resolution status** — mirror of AUTO_REVIEW._REPORT.md with status column (`addressed` / `deferred` / `rejected — rationale`).
12. **Future work** — 3–5 specific directions derived from limitations and deferred experiments.
13. **Venue target & page budget** — from program.md / research_contract.md.
14. **Citation seed list** — already-verified keys from LIT_REVIEW_REPORT the paper-draft bib will draw from. Do NOT invent BibTeX here.
15. **Appendix: file-level provenance** — path + one-line summary of every input file consumed, plus a "Missing Inputs" subsection.

---

## Phase 4: Self-Check

Before saving, verify:

- [ ] Every numbered contribution maps to ≥1 row in the claims–evidence matrix.
- [ ] Every claim in the matrix has a file path + line-level reference (e.g., `EXPERIMENT_RESULT.md §3.2`).
- [ ] Every figure in the figure plan has a concrete data source or is flagged as manual.
- [ ] Every CRITICAL/MAJOR item from AUTO_REVIEW._REPORT.md appears in Section 11 with a status.
- [ ] No claim exceeds what APPROVED_CLAIMS.md supports (no fabrication).
- [ ] Venue and page budget are consistent with program.md.
- [ ] Hero figure description is detailed enough that paper-figure-generate can draft it.

If any check fails, fix the narrative before writing.

---

## Phase 5: Optional Cross-Review

If `REVIEWER_MODEL` is reachable via Codex MCP, send the final narrative for a pass:

```
mcp__codex__codex:
  model: gpt-5.4
  config: {"model_reasoning_effort": "xhigh"}
  prompt: |
    This NARRATIVE_REPORT.md will be the sole input to a paper-writing pipeline.
    Score 1–10 on: (1) story clarity, (2) claim–evidence coverage, (3) figure plan
    completeness, (4) gap articulation, (5) venue fit. For each weakness, give the
    MINIMUM edit required. Be specific and actionable.

    [paste full narrative]
```

If external LLM is not configured, spawn a subagent review instead. Apply feedback, then save.

---

## Phase 6: Output

Write the final narrative to `output/NARRATIVE_REPORT.md`. Append a one-line entry to `output/PROJ_NOTES.md`:

```
[YYYY-MM-DD] generate-report: NARRATIVE_REPORT.md built from LIT_REVIEW / IDEA_REPORT / FINAL_PROPOSAL / EXPERIMENT_PLAN / EXPERIMENT_RESULT / AUTO_REVIEW._REPORT — [N] claims, [M] figures, venue=[VENUE]
```

Report back to the user:

```
📝 NARRATIVE_REPORT.md generated:
- Contributions: [N]
- Claims–evidence rows: [M]
- Figures planned: [auto: X, manual: Y, hero: 1]
- Outstanding review issues: [K]
- Missing inputs: [list or "none"]

Ready to invoke /paper-writing-pipeline "output/NARRATIVE_REPORT.md".
```

---

## Key Rules

- **Large file handling**: If Write fails due to size, fall back to Bash heredoc writes in chunks. Do not ask the user.
- **Never fabricate claims, numbers, or citations.** If an input is missing, flag it; do not guess.
- **Quote numbers verbatim** from `EXPERIMENT_RESULT.md` and `APPROVED_CLAIMS.md`.
- **Preserve provenance.** Every non-trivial statement in the narrative should point to an input file.
- **The narrative is a contract with the next pipeline** — paper-plan, paper-figure-generate, and paper-draft will not re-read the scattered logs. If it is not in NARRATIVE_REPORT.md, it will not appear in the paper.
- **Do NOT generate author info, BibTeX entries, or LaTeX** — those belong to the downstream skills.
- **Respect Prohibited Behaviors in `CLAUDE.md`** — especially the ban on fabricated results and skipping `result-to-claim`.

Files in this skill

  • SKILL.md8.5 KB
  • templates/NARRATIVE_REPORT_TEMPLATE.md7.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.