Experiment Report
by dakesan
This skill should be used when generating integrated reports from lab notebooks, improving existing reports, or exporting reports to PDF/typst. Triggered by requests like "generate report", "create summary", "refine report", "improve report", "export to PDF", "typst出力", "PDFに変換", "レポートを作成", or "export report to PDF". For PDF export, use scripts/export_pdf.sh (pandoc + typst).
Skill Details
Repository Files
1 file in this skill directory
name: experiment-report description: This skill should be used when generating integrated reports from lab notebooks, improving existing reports, or exporting reports to PDF/typst. Triggered by requests like "generate report", "create summary", "refine report", "improve report", "export to PDF", "typst出力", "PDFに変換", "レポートを作成", or "export report to PDF". For PDF export, use scripts/export_pdf.sh (pandoc + typst).
Experiment Report Management
Overview
Provides comprehensive report generation and refinement capabilities. Following the skill-creator pattern, this plugin handles both:
- Init (Generation): Mechanical extraction and templating from lab notebooks
- Refine (Improvement): AI-guided improvement for scientific rigor and clarity
Core Capabilities
1. Report Generation
Create integrated reports from completed lab notebooks using init_report.py.
Execution context: All commands assume execution from project root (where STEERING.md is located).
When to use: When ready to synthesize multiple experiments into a cohesive report.
Pre-Generation Checklist (MANDATORY)
Before running init_report.py, verify these requirements:
Step 1: Notebook Completeness
- All included notebooks have completed Results sections
- All included notebooks have completed Discussion sections
- All figures saved to
results/exp##/directory
Step 2: Project Alignment
- Report scope aligns with STEERING.md objectives
- Primary hypothesis/research question identified
- Notebooks collectively address the research question
Step 3: Evidence Verification
- List all figures needed for each finding
- Verify figure paths exist:
ls ../results/exp##/ - Identify key statistics for each claim
- Note any missing evidence to address
Pre-Generation Questions (ask user):
- "Which experiments are included?" (list Exp## numbers)
- "Is the Discussion section complete in each notebook?"
- "What is the main research question this report addresses?"
- "What are the 2-3 key claims you want to make?"
- "Are all figures saved to results/exp##/ directories?"
Workflow
- Complete pre-generation checklist above
- Run init script (from project root):
# If plugin repo is cloned via ghq: python ~/ghq/github.com/dakesan/bioinformatics-research-plugins/plugins/experiment-report/scripts/init_report.py \ --labnote notebook/labnote/Exp*.ipynb --output notebook/report/ # Or copy script to project and run locally: python scripts/init_report.py --labnote notebook/labnote/Exp*.ipynb --output notebook/report/ - Script generates template with claim-evidence structure
- Fill in evidence tables for each finding (verify paths exist)
- Complete quality gate checklists in each section
- Output:
notebook/report/Report_[title].md
Mapping rules (from lab notebooks to report):
| Lab Notebook Section | Report Section | Transformation |
|---|---|---|
| Hypothesis + Background | Background | Synthesize context |
| Materials & Methods | Methods Summary | Consolidate procedures |
| Results (observations) | Findings | Structure by theme |
| Discussion (interpretation) | Synthesis | Integrate interpretations |
| Limitations | Limitations | Consolidate caveats |
| Next Steps | Future Directions | Prioritize follow-ups |
| Key conclusion | Executive Summary | Distill to 3-5 sentences |
Command: /research-report
2. Report Refinement
Improve existing reports using references/refinement-guide.md criteria.
When to use: After initial report generation or when report needs improvement.
Workflow:
- User specifies existing report to refine
- Read current report content
- Evaluate against refinement criteria:
- Structure: Logical flow, clear sections
- Scientific rigor: Fact/interpretation separation, evidence-based claims
- Clarity: Concise writing, proper terminology
- Provide specific improvement suggestions
- Implement improvements (with user approval)
Refinement dimensions:
-
Structure & Organization:
- Executive Summary: 3-5 sentences, captures essence
- Logical flow: Each section builds on previous
- Redundancy: No unnecessary repetition
- Completeness: All findings addressed
-
Scientific Accuracy:
- Facts vs interpretation: Clearly separated
- Evidence: Every claim supported by data
- Limitations: Acknowledged appropriately
- Alternatives: Considered and discussed
- Statistics: Properly reported
-
Writing Quality:
- Clarity: Precise, unambiguous language
- Conciseness: Efficient communication
- Terminology: Consistent and appropriate
- Figures: Properly referenced
- Citations: Accurate and complete
Command: /research-refine
3. Report Structure
Standard report structure:
# [Report Title]
**Date**: YYYY-MM-DD
**Report Type**: Integrated Analysis Report
---
## Executive Summary
[3-5 sentences capturing key findings and implications]
## Background
[Research question, context, and rationale]
## Materials and Methods
[Consolidated methods from experiments]
## Findings
### Finding 1: [Title]
- **Observation**: [Factual description]
- **Evidence**: [Lab notebook references, figures]
### Finding 2: [Title]
[Repeat structure]
## Synthesis
[Integrated interpretation of findings]
## Limitations
[Acknowledged constraints and caveats]
## Future Directions
[Prioritized next steps]
## Conclusion
[Final synthesis and key takeaways]
## References
[Citations]
---
## Appendix
### Lab Notebooks
- Exp01_[name].ipynb
- Exp02_[name].md
### Supplementary Figures
[Links]
4. Quality Standards
Reports maintain separation between facts and interpretation (from research-project quality-standards.md):
In Findings section (Level 1: Facts):
- Present observations directly
- Reference source notebooks
- Include exact measurements
- Avoid interpretation
In Synthesis section (Level 2: Interpretation):
- Connect observations to meaning
- Cite supporting evidence
- Acknowledge assumptions
- Consider alternatives
In Conclusion section (Level 3: Broader implications):
- Synthesize evidence
- State confidence appropriately
- Suggest applications
- Identify unknowns
5. Figure Integration
Integrate figures from lab notebooks and analysis outputs into reports.
Figure sources:
- Jupyter notebooks: Inline outputs saved to
results/exp##/ - Command-line tools: Output images in
results/exp##/ - External analysis: Imported figures with proper attribution
Directory structure:
notebook/
├── labnote/
│ ├── Exp01_analysis.ipynb
│ └── Exp02_validation.md
├── report/
│ └── Report_Exp01-02_integrated.md
└── results/
├── exp01/
│ ├── fig01_heatmap.png
│ └── fig02_volcano.png
└── exp02/
└── fig01_validation.png
Markdown figure syntax:

*Figure 1: Heatmap showing top 50 differentially expressed genes (Exp01).*
Figure naming convention:
- Format:
fig##_description.{png,pdf,svg} - Examples:
fig01_heatmap.png,fig02_volcano_plot.pdf - Use descriptive names for clarity
Best practices:
- Save all figures to
results/exp##/during experiment execution - Use relative paths from report location (
../results/...) - Include figure captions with experiment reference
- Prefer PNG for raster, PDF/SVG for vector graphics
- Number figures sequentially within each experiment
Extracting figures from Jupyter notebooks:
# In notebook cell, save figure explicitly
import matplotlib.pyplot as plt
fig.savefig('../results/exp01/fig01_heatmap.png', dpi=150, bbox_inches='tight')
6. PDF Export
Export final reports to PDF using the provided shell script.
When to use: When user requests PDF output from a report.
Script location: scripts/export_pdf.sh
Usage:
# Basic export (output: Report_Exp01-02_integrated.pdf)
/path/to/plugins/experiment-report/scripts/export_pdf.sh Report_Exp01-02_integrated.md
# Custom output filename
/path/to/plugins/experiment-report/scripts/export_pdf.sh Report_Exp01-02_integrated.md custom_output.pdf
The script automatically:
- Detects template location (
assets/templates/report.typ) - Validates prerequisites (pandoc, typst)
- Reports file size on success
Prerequisites: pandoc, typst
brew install pandoc typst
Export workflow:
- Complete and refine Markdown report
- Verify all figure paths are correct (relative paths)
- Run the shell script
- Review PDF output for formatting issues
- Iterate if needed
Troubleshooting:
- Missing figures: Check relative paths from report directory
- Font issues: Ensure typst has access to required fonts
- Long tables: Consider splitting or using landscape orientation
Workflow Patterns
Pattern 1: Single Experiment Report
Scenario: Document one completed experiment
Steps:
- Ensure lab notebook complete
- Run:
/research-reportspecifying single notebook - Review generated report
- Refine:
/research-refineto improve clarity
Use case: Individual experiment worthy of formal documentation
Pattern 2: Integrated Multi-Experiment Report
Scenario: Synthesize multiple related experiments
Steps:
- Identify notebooks to include (e.g., Exp01-Exp05)
- Run:
/research-reportspecifying all notebooks - Script extracts and consolidates content
- AI synthesizes findings across experiments
- Refine:
/research-refineto improve integration
Use case: Project milestone, manuscript preparation
Pattern 3: Iterative Refinement
Scenario: Improve existing report quality
Steps:
- Identify report needing improvement
- Run:
/research-refineon existing report - Review suggestions organized by category:
- Structure improvements
- Scientific rigor issues
- Writing clarity enhancements
- Approve and implement changes
- Iterate if needed
Use case: Preparing for presentation, submission, or review
Resources
scripts/
init_report.py: Report generation script (executable)
commands/
research-report.md: Report generation command (/research-report)research-refine.md: Report refinement command (/research-refine)
references/
mapping-rules.md: Lab notebook → report section mappingrefinement-guide.md: Quality criteria for report improvement
Usage Notes
Generation Best Practices
-
Timing: Generate reports when:
- Multiple related experiments complete
- Ready for project milestone
- Preparing manuscript
- Need formal documentation
-
Scope: Include notebooks that:
- Address related questions
- Build on each other
- Collectively tell a story
-
Preparation: Before generating:
- Ensure all lab notebooks complete
- Review notebook quality
- Identify key findings
Refinement Best Practices
-
Multiple passes: Refine in stages:
- First pass: Structure and organization
- Second pass: Scientific rigor
- Third pass: Writing quality
-
Specific feedback: Request targeted improvements:
- "Improve executive summary"
- "Check fact/interpretation separation"
- "Enhance clarity in Methods"
-
Version control: Commit before and after refinement
Common Improvements
Executive Summary:
- ❌ Too long (>5 sentences) or too vague
- ✅ Concise (3-5 sentences), captures essence
Findings:
- ❌ Mixed facts and interpretation
- ✅ Pure observations, references to notebooks
Synthesis:
- ❌ Unsupported claims, circular reasoning
- ✅ Evidence-based, acknowledges limitations
Limitations:
- ❌ Missing or too apologetic
- ✅ Honest, constructive, identifies solutions
Future Directions:
- ❌ Vague ("more research needed")
- ✅ Specific next experiments with rationale
Integration with Workflow
Typical flow:
- Complete experiments → Lab notebooks (lab-notebook)
- Refine hypotheses → Hypothesis validation (hypothesis-driven)
- Generate report → Synthesis (experiment-report: init)
- Improve quality → Refinement (experiment-report: refine)
- Update project → STEERING.md (research-project)
Report triggers phase transitions:
- Generating report often signals end of Execution phase
- Moving to Integration or Publication phase
- Update STEERING.md accordingly
Examples
Example 1: Quick Single-Experiment Report
User: "Create a report for Exp03"
Related Skills
Attack Tree Construction
Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.
Grafana Dashboards
Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
Matplotlib
Foundational plotting library. Create line plots, scatter, bar, histograms, heatmaps, 3D, subplots, export PNG/PDF/SVG, for scientific visualization and publication figures.
Scientific Visualization
Create publication figures with matplotlib/seaborn/plotly. Multi-panel layouts, error bars, significance markers, colorblind-safe, export PDF/EPS/TIFF, for journal-ready scientific plots.
Seaborn
Statistical visualization. Scatter, box, violin, heatmaps, pair plots, regression, correlation matrices, KDE, faceted plots, for exploratory analysis and publication figures.
Shap
Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias or fairness, comparing models, or implementing explainable AI. Works with tree-based models (XGBoost, LightGBM, Random Forest), deep learning (TensorFlow, PyTorch), linear models, and any black-box model
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Query Writing
For writing and executing SQL queries - from simple single-table queries to complex multi-table JOINs and aggregations
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Scientific Visualization
Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib/seaborn/plotly with publication styles. For quick exploration use seaborn or plotly directly.
