From text-generation
Generates structured JSON data files with metadata. Triggered when the user asks to "export as JSON", "create a JSON file", "structured data export", "data dump", "export data", or requests JSON output. Also triggered automatically as the data-first step when multiple output formats are requested from the same data.
npx claudepluginhub equiforte/reporting-services-plugins --plugin text-generationThis skill is limited to using the following tools:
Generate structured JSON data files with metadata and provenance tracking. This skill serves two purposes:
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Share bugs, ideas, or general feedback.
Generate structured JSON data files with metadata and provenance tracking. This skill serves two purposes:
Before generating output, check that {WORKING_DIR}/.reporting-resolved/brand-config.json exists. If it does not, tell the user: "The branding plugin is required but has not run. Please install the branding plugin and run /reporting-plugins:brand first." Do not produce unbranded output.
Read .reporting-resolved/brand-config.json for firm name, date format, and confidentiality settings.
output/text/{slug}-{YYYY-MM-DD}-{HHmm}-{xxx}.jsonEvery JSON file must follow this structure:
{
"meta": {
"title": "Document Title",
"generated_at": "2026-04-04T14:30:00Z",
"firm": "Acme Inc",
"confidential": true,
"sources": ["source-1", "source-2"]
},
"data": {
// payload here
}
}
meta section (required)| Field | Type | Description |
|---|---|---|
title | string | Document title |
generated_at | string (ISO 8601) | Timestamp of generation |
firm | string | Firm name from resolved brand config |
confidential | boolean | True unless user explicitly says otherwise |
sources | string[] | Data sources used (for provenance tracking) |
data section (required)The payload structure depends on the content. Common patterns:
KPI data:
{
"data": {
"kpis": [
{ "label": "Revenue", "value": 12400000, "formatted": "$12.4M", "delta": "+8.2%", "trend": "up" }
]
}
}
Tabular data:
{
"data": {
"tables": [
{
"name": "Revenue by Quarter",
"columns": ["Quarter", "Revenue", "Growth"],
"rows": [
["Q1 2026", "$12.4M", "+8.2%"]
]
}
]
}
}
Mixed content (for data-first multi-format):
{
"data": {
"kpis": [...],
"tables": [...],
"charts": [...],
"sections": [
{ "heading": "Executive Summary", "content": "..." }
]
}
}
null for missing values, not empty strings.data section. Include a formatted field alongside for display purposes.When this skill runs as part of a multi-format request:
formatted field alongside raw values so generators can use either.output/text/ before any other generator runs.