paper-generator-orchestrator · git:20260915.459047e · 2026-09-15 · sha256 e009d68156a6d044

paper-generator-orchestrator git:20260915.459047eC

Immutable. This exact content is served forever at /api/v1/blob/e009d68156a6d044.

# Paper Generator Orchestrator: Automated Academic Paper Production

**Scope:** End-to-end orchestration for generating complete academic papers  
**Input:** Concepts (MD files) + ADRs (markdown) + title + authors  
**Output:** Complete paper.pdf (production-ready) + all intermediate artifacts  
**Complexity:** High (multi-agent orchestration with quality gates)  
**Time Investment:** First run ~2-4 hours, subsequent runs ~1-2 hours (template cached)

---

## Overview

This skill automates the entire academic paper generation workflow from Phase 1 (Research) through Phase 5 (Assembly). It:

1. **Orchestrates parallel research agents** to find references
2. **Validates narrative structure** before writing
3. **Generates content with depth heuristics** (enforces min paragraphs per section)
4. **Creates publication-quality diagrams** (SVG → PDF pipeline)
5. **Assembles final LaTeX** with automatic BibTeX formatting and compilation

The skill is **not just a template**—it enforces quality gates and re-runs work when gates fail.

---

## How to Invoke

```
/academic-paper-generator

Inputs:
  - Concept files (path to directory of .md files)
  - ADR files (path to directory of .md files)
  - Paper title (string)
  - Authors (list of strings with affiliations)
  - Output directory (path)
  - Scope (short: 4-8 pages, full: 12-20 pages, xfull: 20+ pages)

Outputs:
  - paper.pdf (final, production-ready)
  - paper.tex (LaTeX source)
  - paper.bib (BibTeX references)
  - figures/ (all diagrams in PDF + SVG source)
  - REPORT.md (documentation of choices made)
```

---

## Five-Phase Automated Workflow

### Phase 1: Automated Research & Reference Collection

**Parallel Research Agents (3-4 agents, concurrent):**

1. **Agent: Academic References**
   ```
   Prompt: "Find 20 peer-reviewed academic papers on [topic]. 
   Return: author, year, title, venue, URL, 1-line relevance to [thesis]"
   Schema: {papers: [{author, year, title, venue, url, relevance}]}
   ```

2. **Agent: Regulatory & Standards References**
   ```
   Prompt: "Find official text + commentary on: GDPR Art 30/32, EU AI Act Art 5/10/50, 
   HIPAA 45 CFR 164, PCI DSS Req 10. Return: regulation, article, requirement, link."
   Schema: {regulations: [{reg_name, article, text, link}]}
   ```

3. **Agent: Industry Incident Analysis**
   ```
   Prompt: "Find 5 major compliance/security incidents (2015-2025): 
   Equifax, Facebook, SolarWinds, [others]. Return: incident name, year, 
   root cause (in compliance terms), regulatory impact."
   Schema: {incidents: [{name, year, root_cause, regulatory_impact, url}]}
   ```

4. **Agent: Competitive/Related Work**
   ```
   Prompt: "Find papers on: compliance-as-code, formal verification of security, 
   audit trail design, multi-tenant isolation. Return: author, title, how it 
   differs from our approach."
   Schema: {related_work: [{author, title, relevance, differs_how}]}
   ```

**Output Aggregation:**
- Merge results into single reference database (CSV/JSON)
- Validate every URL is live (ping test)
- Flag missing references as errors (workflow pauses)

**Quality Gate:**
- Minimum 40 total references across all categories
- Every major section has ≥3 assigned references
- At least 1 incident per introduction section

---

### Phase 2: Automated Narrative Arc Validation

**Step 1: Extract Core Claim from Concepts/ADRs**
```
Scan all input files for patterns like:
  - "The problem is: X"
  - "We propose: Y"
  - "The key insight: Z"
  
Consolidate into single one-sentence claim.
Validate claim is:
  - ✓ Falsifiable (not obviously true)
  - ✓ Novel (not already known)
  - ✓ Significant (has implications)
```

**Step 2: Build Incident → Problem → Solution → Proof Chain**
```
Incidents:  [Equifax(2017), Facebook(2018), SolarWinds(2020)]
            ↓
Problem:    Common pattern: compliance mechanisms treated as optional features
            ↓
Solution:   Make compliance structural invariants (enforced by architecture)
            ↓
Proof:      CorvinOS deployed 12 months, 50+ tenants, zero incidents
```

**Step 3: Generate Section Outline with Word Counts**
```
Introduction:        1000-1200 words (40% of body)
  - Hook (incidents): 300 words
  - Gap (current): 300 words
  - Thesis (ours): 200 words
  - Roadmap: 200 words

Methodology:         700-900 words (25% of body)
  - Formal model: 300 words
  - Threat model: 200 words
  - Principles: 200 words

Results:            1000-1200 words (35% of body)
  - Overview: 100 words
  - Mechanisms (×12): 2000 words total (150-200 per mechanism)

Conclusion:         300-400 words (remaining)

Total Target: 4000-5000 words (short), 8000-12000 words (full)
```

**Quality Gate:**
- Narrative arc is validated as: problem → solution → proof ✓
- Section word counts are reasonable and consistent
- At least one diagram is allocated to each major section
- References are pre-mapped to sections

---

### Phase 3: Automated Content Generation

**Per-Mechanism Content Template:**

For each mechanism (M1-M12, or custom from ADRs):
```
Agent Prompt:
"Write a 250-300 word section on [Mechanism Name] for an academic paper.

Include:
1. Regulatory Basis (1 paragraph, 50-70 words)
   - Cite the regulation [Article X]
   - Explain what it protects
   - Why current implementations fail

2. Structural Solution (1 paragraph, 80-100 words)
   - How we enforce it
   - Why it cannot be disabled
   - Implementation detail

3. Verification (1 paragraph, 50-70 words)
   - How auditors verify it
   - Complexity (O(n) or O(1))
   - Concrete verification method

Use references to:
  [GDPR2016], [EUAIAct2024], [IncidentRef], [AcademicRef]
  
Write in academic English. Be specific, not vague."

Schema: {
  title: string,
  regulatory_basis: string,
  solution: string,
  verification: string,
  references_used: [string],
  word_count: number
}
```

**Per-Section Content Generation:**

```
For Introduction:
  Agent: "Write introduction for paper on compliance-as-architecture.
          Hook: Equifax/Facebook/SolarWinds incidents (why they matter).
          Gap: Current approaches fail (cite ComplianceAsCode[2019]).
          Thesis: Compliance must be structural, not configurable.
          Cite: [Equifax2017], [Facebook2018], [SolarWinds2020], [ComplianceAsCode2019]"

For Methodology:
  Agent: "Write methodology section explaining formal model (CTL*),
          threat model (env vars, signals, code patching),
          design principles (fail-closed, audit-first).
          Use math where appropriate. Cite [Emerson2008], [FormalMethods2015]"

For Related Work:
  Agent: "Compare our approach to prior work on:
          - Compliance-as-Code
          - Formal Verification
          - Cryptographic Audit Trails
          - Multi-Tenant Isolation
          Cite: [ComplianceAsCode2019], [FormalMethods2015], etc.
          Explain how our approach differs (structural vs configurable)."
```

**Depth Enforcement:**
- Minimum 3-5 paragraphs per mechanism ✓
- Minimum word count per section enforced ✓
- All \cite{} commands resolved to actual references ✓
- No placeholder phrases like "...and so on" ✓

**Quality Gate:**
- Every section meets minimum word count
- Every \cite{} is resolved (no undefined citations)
- Density heuristics are met (3-5 para per major section)
- No section is <100 words or >500 words without justification

---

### Phase 4: Automated Diagram Generation & Conversion

**Diagram Specification from Mechanisms:**

```json
{
  "diagrams": [
    {
      "id": "threat_model",
      "title": "Threat Model: Four Adversarial Tactics",
      "type": "flow",
      "description": "Show how env-var injection, signal injection, code patching, 
                      and feature flags are all blocked by structural enforcement",
      "tool": "mermaid",  // or "graphviz", "tikz"
      "source": "figures/threat_model.mmd",
      "caption": "Figure 1: Threat Model. Four adversarial tactics are structurally blocked 
                  by enforcement below the configuration layer. An attacker cannot override 
                  binary-encoded invariants with environment variables or configuration."
    },
    {
      "id": "mechanisms_matrix",
      "title": "12 Mechanisms Overview Matrix",
      "type": "table",
      "description": "Table showing: mechanism name, regulatory basis, properties 
                      (non-toggleable, fail-closed, boot-wired, hash-protected)",
      "tool": "tikz",
      "source": "figures/mechanisms_matrix.tikz",
      "caption": "Figure 2: Compliance Mechanisms Matrix. Each mechanism is non-toggleable, 
                  fail-closed by design, and boot-wired. All are protected by cryptographic 
                  audit integrity."
    },
    // ... more diagrams
  ]
}
```

**Automated SVG → PDF Conversion:**

```bash
# For each diagram source file:
for source in figures/*.mmd figures/*.graphviz figures/*.tikz; do
  # Convert to SVG (tool-dependent)
  mermaid "$source" -o "${source%.mmd}.svg"      # if mermaid
  # OR
  dot -Tsvg "$source" -o "${source%.graphviz}.svg"  # if graphviz
  
  # Convert SVG to PDF (reliable method)
  inkscape --export-type=pdf "${source%.mmd}.svg" -o "${source%.mmd}.pdf"
  
  # Validate PDF
  pdfinfo "${source%.mmd}.pdf" > /dev/null || ERROR "PDF conversion failed"
done
```

**Figure Reference Integration:**

```latex
\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{figures/threat_model.pdf}
\caption{Figure 1: Threat Model...}
\label{fig:threat_model}
\end{figure}

\textit{As shown in Figure~\ref{fig:threat_model}, ...}
```

**Quality Gate:**
- All SVG source files exist and are version-controlled ✓
- All PDF outputs are valid (pdfinfo succeeds) ✓
- No PNG files in figures directory (SVG/PDF only) ✓
- Every figure has a caption ✓
- Every figure is referenced in text (grep check) ✓

---

### Phase 5: Automated LaTeX Assembly & Compilation

**Template Generation:**

```latex
\documentclass[11pt,a4paper]{article}

% Generate from metadata:
\usepackage{arxiv}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage{amsmath}
\usepackage{graphicx}

\title{[TITLE_FROM_INPUT]}
\author{[AUTHORS_WITH_AFFILIATIONS_FROM_INPUT]}
\date{[CURRENT_DATE]}

\hypersetup{
    pdftitle=[TITLE_FROM_INPUT],
    pdfauthor=[AUTHORS_COMMA_SEPARATED],
    pdfkeywords=[KEYWORDS_FROM_CONTENT]
}

\begin{document}
\maketitle

% Auto-generated from Phase 3 outputs
\begin{abstract}
[ABSTRACT: 150-200 words, single paragraph]
\end{abstract}

\section{Introduction}
[AUTO_GENERATED_FROM_AGENTS + references]

\section{Methodology}
[AUTO_GENERATED_FROM_AGENTS + references]

\section{Results}
[AUTO_GENERATED_MECHANISMS + references]

\section{Related Work}
[AUTO_GENERATED_FROM_AGENTS + references]

\section{Conclusion}
[AUTO_GENERATED_FROM_AGENTS]

\bibliographystyle{plain}
\bibliography{paper}

\end{document}
```

**BibTeX Generation:**

```
Convert reference database (JSON/CSV) → .bib file:

For each reference:
  @article{AuthorYear,
    author = "First Last and Second Last",
    title = "Full Title",
    journal = "Journal Name",
    year = "YYYY",
    volume = "V",
    pages = "P1--P2",
    url = "https://..."
  }
```

**Compilation & Validation:**

```bash
# Step 1: Check for errors
tectonic paper.tex 2>&1 | tee paper.log

# Step 2: Validate output
pdfinfo paper.pdf 2>&1 | head -15

# Step 3: Quality checks
  - File size reasonable (20-500 KB)
  - Page count matches expectation
  - No undefined references (grep "undefined")
  - No missing figures (grep "Figure [0-9]" paper.tex | wc -l)
  
# Step 4: Return artifacts
  - paper.pdf ✓
  - paper.tex ✓
  - paper.bib ✓
  - figures/*.pdf ✓
  - REPORT.md (documentation)
```

**Quality Gate:**
- PDF compiles without errors or warnings ✓
- All figures render correctly (pdfinfo validates) ✓
- Page count is within expected range ✓
- No undefined references (\cite{} all resolved) ✓
- All figures referenced in text ✓

---

## Decision Matrix: When to Use This Skill

| Scenario | Recommendation | Why |
|----------|----------------|-----|
| Writing a new academic paper from scratch | Use this skill | Orchestrates all phases; enforces quality gates |
| Updating an existing paper | Use manually (keep SKILL for reference) | Incremental changes may not need full re-run |
| Quick blog post or technical report | Use academic-paper-generation SKILL only | Simpler workflow, fewer phases |
| Conference paper with tight deadline | Use this skill (short scope) | Generates in ~2 hours with all quality gates |
| Journal submission with months to refine | Use this skill as starting point, then manual | Generates draft; authors refine for publication |

---

## Common Failure Modes & Recovery

| Failure | Symptom | Recovery |
|---------|---------|----------|
| References not found | Agent returns empty list | Manually add 5-10 references; re-run Phase 1 |
| Narrative arc broken | Sections don't connect | Run Phase 2 validation manually; fix outline |
| Content too thin | Word counts below minimum | Re-run Phase 3 with higher target word counts |
| Figure fails to convert | SVG → PDF produces invalid PDF | Check SVG syntax; use Inkscape GUI for manual export |
| Compilation fails | pdflatex error on undefined macros | Check BibTeX references; regenerate .bib file |

---

## Integration with Other Skills

**Prerequisite Skills:**
- `academic-paper-generation` (understanding phases and quality gates)
- `loop-driven-engineering` (for iterating on research, content, figures)
- `dialectical-reasoning` (for narrative arc validation)

**Produces Output For:**
- arXiv submission (`paper.pdf` is direct upload)
- IEEE/ACM journal submission (minor formatting tweaks needed)
- Conference paper submission (verify page limits)
- Internal documentation / knowledge base

---

## Automation Roadmap

**Phase 1 (Research):** ✅ Fully automated (4 parallel agents)
**Phase 2 (Narrative):** ✅ Mostly automated (validation + outline generation)
**Phase 3 (Content):** ✅ Mostly automated (per-section + per-mechanism agents)
**Phase 4 (Figures):** 🟡 Semi-automated (diagram specs generated, conversion scripted, but manual review needed)
**Phase 5 (Assembly):** ✅ Fully automated (template-driven, validated at end)

**Future Enhancements:**
- Automated diagram generation from mechanism descriptions (text → Mermaid)
- Automated abstract extraction from introduction
- Automated keyword extraction from content
- Integration with arXiv API for direct submission
- Multi-language support (generate papers in DE, ES, FR, etc.)

---

## Example Invocation

```bash
/paper-generator-orchestrator \
  --concepts /path/to/concepts/*.md \
  --adrs /path/to/adrs/*.md \
  --title "Structural Enforcement of Regulatory Compliance" \
  --authors "Silvio Jurk (Corvin Labs)" "René de la Barre (Corvin Labs)" \
  --scope full \
  --output /home/user/Corvin-Publications/paper-003-compliance
```

**Expected Output:**
```
✓ Phase 1: Research (40 references found, 5 incidents analyzed)
✓ Phase 2: Narrative (outline validated, word counts planned)
✓ Phase 3: Content (8500 words generated, 45 \cite{} resolved)
✓ Phase 4: Figures (6 diagrams created, SVG→PDF converted)
✓ Phase 5: Assembly (paper.pdf compiled, 18 pages, 650 KB)

Artifacts:
  paper.pdf                          650 KB  ✓
  paper.tex                          45 KB   ✓
  paper.bib                          12 KB   ✓
  figures/                           (6 PDF + 6 SVG source files)
  REPORT.md                          8 KB    ✓

Quality Gates: ALL PASSED ✓
Ready for submission to arXiv / journals.
```

---

## Key Difference from Manual Process

| Step | Manual | Automated |
|------|--------|-----------|
| Research (Phase 1) | 2-4 hours | 30 minutes (parallel agents) |
| Narrative (Phase 2) | 1-2 hours | 15 minutes (validated outline) |
| Writing (Phase 3) | 4-8 hours | 1-2 hours (agent-generated, then refined) |
| Figures (Phase 4) | 2-3 hours | 30-45 minutes (spec→SVG→PDF) |
| Assembly (Phase 5) | 30-60 min | 10-15 minutes (template-driven) |
| **Total** | **10-18 hours** | **~2-4 hours** |
| **Quality Gates** | Manual review | Automated validation + gates |

**Net benefit:** 75% time savings + enforced quality gates.