Skip to content
Back to skills

Report Template

ASecurity

Publication-quality PDF report generation using Typst templates. Produces professional scientific reports with colored section bands, styled tables, figure captions, callout boxes, and page headers/footers.

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 12, 2026
ai-agentspython

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

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

Scanned September 12, 2026

npx -y skills add stanfish06/skillquarium --skill report-template --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Report Template?

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

Security grade badge for Report Template
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/stanfish06-report-template/badge)](https://www.skillsdirectory.com/skills/stanfish06-report-template)

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: report-template
description: Publication-quality PDF report generation using Typst templates. Produces professional scientific reports with colored section bands, styled tables, figure captions, callout boxes, and page headers/footers.
---

# Report Template System

Generate publication-quality PDF reports using the BioClaw Typst template engine.

## Quick Start

```python
import sys
# Add this skill's directory (the folder containing report_builder.py) to sys.path,
# e.g. ~/.agents/skills/report-template in this vault.
sys.path.insert(0, "path/to/report-template")
from report_builder import ReportBuilder, T

report = ReportBuilder(
    title="My Analysis Report",
    subtitle="Project XYZ",
    author="BioClaw",
)

# Add a section: a heading followed by body text
report.heading(1, "Background")
report.text("Description of the project...")

# Add a table under its own heading
report.heading(1, "Results")
report.table(
    ["Sample", "Value", "Status"],
    [["A", "92.3", "Pass"], ["B", "87.1", "Pass"]],
    caption="Summary of results",
)

# Compile to PDF
report.compile("output/report.pdf")
```

## Available Components

Call methods on the `ReportBuilder` instance to append content in order. The `T`
namespace exposes the same helpers as static functions that return raw Typst
markup — combine them with `report.raw(...)`.

### Headings & Text
```python
report.heading(level, "Section title")   # level 1, 2, ...
report.text("Plain paragraph")
report.raw(T.bold("Bold") + " / " + T.italic("italic"))
report.raw(T.list(["Item 1", "Item 2"]))
report.raw(T.enum(["Step 1", "Step 2"]))
```

### Tables
```python
report.table(headers, rows, caption=None)
```

### Callout Boxes
```python
report.callout(text, title="Note", kind="note")
# kind: "note" (blue), "warning" (yellow), "success" (green), "danger" (red)
```

### Figures
```python
report.set_image_dir("path/to/figures")          # directory holding referenced images
report.image(path, caption=None, width="100%")   # path is relative to the image dir
```

### Metadata Blocks
```python
report.metadata_block([("Key", "Value"), ("Date", "2026-04-15")])
```

### Metric Cards
```python
report.metric_cards([
    {"label": "Samples", "value": "6"},
    {"label": "Quality", "value": "A+"},
])
```

### Layout
```python
report.pagebreak()
report.vspace("12pt")
```

## Template Features

- Dark navy section heading bands with white text
- Teal sub-heading accents
- Professional page headers and footers with page numbers
- Alternating-row table styling
- Four callout box types (note, warning, success, danger)
- Figure numbering and italic captions
- Key-value metadata blocks
- Metric card rows

## Requirements

- Python package: `typst` (`pip install typst`)
- No system dependencies required

Files in this skill

  • SKILL.md2.7 KB
  • report_builder.py14.1 KB
  • templates/scientific_report.typ5.8 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…