report

star 3

Deliver analysis findings as a polished output in one or more formats — Markdown, CSV, XLSX, JSON, plain text, or inline. Use as the final pipeline stage once analysis is done. Always asks for the format if unspecified, and always documents the artifacts and scripts it created.

jzaleski By jzaleski schedule Updated 6/16/2026

name: report description: "Deliver analysis findings as a polished output in one or more formats — Markdown, CSV, XLSX, JSON, plain text, or inline. Use as the final pipeline stage once analysis is done. Always asks for the format if unspecified, and always documents the artifacts and scripts it created."

Report Skill

Deliver the findings. This is the final stage of a data pipeline: analysis is done, and your job is to present it the way the user actually wants to consume it — in one or more output formats.

Always announce at start: "I'm using the report skill to write up the findings."

Work from: the findings and analysis artifacts (from the analyze skill, typically in .pipeline-cache/analysis/).

Step 1: Confirm the Output Format

If the user has not specified a format, ask before producing anything. Never generate a large artifact the user didn't ask for.

Format Good for
Markdown (.md) Human-readable narrative reports with tables and structure
CSV A clean result table for further spreadsheet work
XLSX Multi-sheet results, formatted tables for non-technical recipients
JSON Machine consumption / feeding another tool
Plain text Simple summaries, logs
Inline (terminal) Quick answers the user just wants to read now

One or more outputs are fine. A common pattern: a Markdown narrative plus a CSV of the underlying numbers. Confirm which combination the user wants.

Step 2: Write the Report

  • Lead with the answer. State the finding first, then support it.
  • Match length to the question — a one-number answer doesn't need ten paragraphs.
  • Include the supporting numbers, tables, or charts the finding rests on.
  • Surface caveats and assumptions honestly (carried forward from analysis).
  • Save file outputs to a sensible location (project root or a user-specified path), not buried in .pipeline-cache/ — the report is a deliverable, not a cache artifact.

Persistence is environment-adaptive. The report content is the canonical output in every environment — always render it inline (or in the requested format) so the user receives the deliverable directly:

  • When a durable working directory is available (e.g., opencode): write the requested file outputs (.md, .csv, .xlsx, etc.) to a sensible path and reference them.
  • When no durable filesystem is available (e.g., a Claude organizational skill): code execution still works for generating files (e.g. building an XLSX in the sandbox) — produce the requested format and deliver it as downloadable/copyable output rather than assuming a stable on-disk path. For text-shaped formats (Markdown, plain text, JSON), inline delivery is the deliverable itself.

Step 3: Artifacts & Scripts Section (Mandatory)

Every report ends with an Artifacts & Scripts section. This is non-negotiable. It tells the user what was created, where it lives, and what each piece does — so the work is reproducible and nothing is a mystery.

## Artifacts & Scripts

**Outputs delivered:**
- `report.md` — the narrative report (this file)
- `results.csv` — the underlying result table

**Pipeline cache (intermediate, safe to delete):**
- `.pipeline-cache/extracted/` — raw per-file extractions
- `.pipeline-cache/normalized/` — the cleaned, unified dataset
- `.pipeline-cache/analysis/` — intermediate analysis tables

**Scripts (in `scripts/`):**
- `extract.py` — pulled data from the source files
- `analyze.py` — computed the findings

**Decisions worth knowing:**
- [normalization/analysis judgment calls that affect interpretation, or "none"]

The section is mandatory in every environment, but adapt how it references artifacts: when a durable filesystem is available, list real paths as above. When none is available (e.g., a Claude organizational skill), list each artifact by name and how it was delivered (inline / downloadable) instead of a path that won't persist — the goal is unchanged: the user knows exactly what was produced, how it was computed, and what decisions shaped it.

Hard Constraints

  • Ask before reporting if format is unspecified. Never assume.
  • Never produce an unrequested output format.
  • The Artifacts & Scripts section is mandatory in every report.
  • No application logic changes — you deliver findings, you don't touch application code.

Report Format (status back to the orchestrator)

After delivering, report status using this format:

Status: DONE | DONE_WITH_CONCERNS

Delivered:
- [output files and/or inline summary, with paths]

Format(s):
- [what the user asked for]

Concerns:
- [anything worth flagging, or "none"]

This is the terminal stage of the pipeline. Once the report is delivered, the work is complete.

Install via CLI
npx skills add https://github.com/jzaleski/ai-tools --skill report
Repository Details
star Stars 3
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator