Publication Management Skill
This skill manages publication workflows for Quarto-based academic papers in this project.
When to Use
Activate this skill when the user:
- •Asks to check publication status ("what's the status of my papers?")
- •Wants to generate PDFs ("generate PDFs for all papers")
- •Needs to update publication URLs or status ("I just uploaded to SSRN")
- •Requests a publication TODO list ("what publications are pending?")
- •Mentions preprints, journals, or publication platforms
Publications in This Project
This project contains 6 Quarto publications:
- •Book: "How to End War and Disease" (
_quarto-manual.yml) - •Economics Paper: "The 1% Treaty" (
_quarto-1-pct-treaty-impact.yml) - •IAB Paper: "Incentive Alignment Bonds" (
_quarto-iab.yml) - •Wishocracy Paper: "RAPPA for Democratic Resource Allocation" (
_quarto-wishocracy.yml) - •dFDA Spec Paper: "Two-Stage Real-World Evidence Validation" (
_quarto-dfda-spec.yml) - •dFDA Impact Paper: "Cost-Benefit Analysis & ROI" (
_quarto-dfda-impact.yml)
Configuration Location
Each publication has a _quarto-*.yml file in the project root containing:
- •Path:
metadata.publishingsection - •Structure:
- •
own-site: {url, status} - •
preprints: [{platform, status, url, doi}] - •
journals: [{name, tier, status, url}]
- •
Important: Exclude files in _build_temp/ - those are build artifacts.
Core Workflows
1. Show Publication Status
When requested, display status for all papers:
Publication Status (6 papers) ───────────────────────────────────────── Economics Paper (1% Treaty) Config: _quarto-1-pct-treaty-impact.yml ✓ Own Site: deployed (https://impact.warondisease.org) ✓ Zenodo: auto-uploaded (DOI: 10.5281/zenodo.18161561) ⏳ SSRN: pending ⏳ arXiv: pending 📋 Journals: 3 targets (Health Affairs, Value in Health, PLOS Medicine) IAB Paper Config: _quarto-iab.yml ✓ Own Site: deployed (https://iab.warondisease.org) ✓ Zenodo: auto-uploaded (DOI: 10.5281/zenodo.18203222) ⏳ SSRN: pending ⏳ arXiv: pending 📋 Journals: 6 targets (AER, JPE, Public Choice, ...) [... continue for all 6 papers]
How to do it:
- •Use Glob to find all
_quarto-*.ymlfiles in project root - •Read each file and extract
metadata.publishingsection - •Display status with clear visual indicators:
- •✓ for deployed/auto-uploaded/published
- •⏳ for pending/target
- •📋 for lists
2. Generate Publication TODO List
When requested, show actionable checklist of pending items:
Publication TODO List
═════════════════════════════════════════
PREPRINTS (High Priority - Week 1-2)
─────────────────────────────────────────
Economics Paper:
[ ] Upload to SSRN (Social Science Research Network)
Category: econ.GN (General Economics)
[ ] Upload to arXiv (econ.GN category)
IAB Paper:
[ ] Upload to SSRN (Political Economy category)
[ ] Upload to arXiv (econ.GN or cs.GT - Game Theory)
Wishocracy Paper:
[ ] Upload to SSRN (Political Science / Public Choice)
[ ] Upload to arXiv (cs.GT - Game Theory)
dFDA Spec Paper:
[ ] Upload to medRxiv (Health sciences preprint)
[ ] Upload to arXiv (stat.ME - Methodology)
dFDA Impact Paper:
[ ] Upload to medRxiv (Health sciences)
[ ] Upload to SSRN (Health Economics)
[ ] Upload to arXiv (econ.GN)
─────────────────────────────────────────
JOURNALS (Medium Priority - Week 4+)
─────────────────────────────────────────
Economics Paper:
[ ] Submit to Health Affairs (Tier 1)
[ ] Submit to Value in Health (Tier 2)
[ ] Submit to PLOS Medicine (open access)
IAB Paper:
[ ] Submit to Public Choice (Tier 2)
[ ] Submit to American Economic Review (Tier 1)
[ ] Submit to Journal of Political Economy (Tier 1)
[... continue for all papers]
═════════════════════════════════════════
Summary: 15 pending preprints, 18 journal targets
How to generate:
- •Read
metadata.publishingfrom all configs - •Filter for
status: pending(preprints) orstatus: target(journals) - •Group by priority:
- •High: Preprints (SSRN, arXiv, medRxiv, OSF)
- •Medium: Journal submissions
- •Include relevant metadata (categories, tier levels)
3. Generate PDFs with Review
IMPORTANT: PDFs for publication should include quality review!
Review Levels
Users can choose thoroughness:
A. Basic Review (~2-5 min/paper - fast):
User: Generate PDFs (basic review) → 1. Pre-render validation + auto-fixes → 2. PDF generation → 3. Post-render validation → 4. Brief report
B. Standard Review (~5-10 min/paper - recommended):
User: Generate PDFs for publication → 1. Pre-render validation + auto-fixes → 2. Citation verification → 3. PDF generation → 4. Post-render validation → 5. Review report
C. Comprehensive Review (~15-30 min/paper - pre-submission):
User: Generate PDFs with full review → 1. Pre-render validation + auto-fixes → 2. AI content quality review → 3. Parameter methodology critique → 4. Citation verification → 5. PDF generation → 6. Post-render validation → 7. Detailed review report
Standard Review Workflow (Default)
When user requests PDF generation, run Standard Review:
Step 1: Pre-Render Validation + Auto-Fixes
python scripts/pre-render-validation.py
- •Detects: LaTeX errors, broken links, missing citations, unknown variables
- •If errors found: Use
/pre-render-validateskill to auto-fix - •Auto-fixable issues: ✅ LaTeX syntax errors ✅ Missing image references ✅ Broken cross-reference links ✅ Unknown variables ✅ Hardcoded numbers ✅ Missing citations ✅ GIF file wrapping ✅ Python syntax errors
Step 2: Citation Verification
- •Use
/verify-and-add-sourcesskill - •Ensures all claims properly cited
- •Searches for missing sources
- •Adds references to bibliography
Step 3: PDF Generation
python scripts/render-quarto.py <project> --to pdf
- •Includes built-in Python code leakage validation
Step 4: Post-Render Validation
python scripts/post-render-validation.py
- •Checks rendered HTML for issues
- •Validates: broken links, unrendered expressions, formatting
Step 5: Review Report Display publication readiness report with findings from all stages.
Comprehensive Review (Optional Steps)
For comprehensive review, add between Step 1 and Step 2:
Content Quality Review:
- •Use
/review-qmdskill on main paper file - •Checks: clarity, engagement, rigor, structure, tone
- •Generates improvement suggestions
- •Optional: apply improvements
Parameter Methodology Critique:
- •Use
/critique-calculationskill for key parameters - •Validates formulas, empirical backing, uncertainty
- •Identifies weaknesses and improvements
Example Output
Generating PDFs with Standard Review... [1/6] Economics Paper (1% Treaty) ═══════════════════════════════════════════ [Step 1/5] Pre-Render Validation Running: python scripts/pre-render-validation.py ✓ No LaTeX errors ✓ All images found ✓ All cross-references valid ⚠ 3 citations missing - Running auto-fix... ✓ Auto-fixed 3 missing citations [Step 2/5] Citation Verification Running: /verify-and-add-sources skill ✓ All 47 claims properly cited ✓ Bibliography complete [Step 3/5] PDF Generation Running: python scripts/render-quarto.py economics --to pdf ✓ Generated: _site/1-pct-treaty-impact/economics-paper.pdf (1.3 MB) ✓ No Python code leakage detected [Step 4/5] Post-Render Validation Running: python scripts/post-render-validation.py ✓ All internal links functional ✓ No unrendered expressions ✓ PDF navbar links valid [Step 5/5] Review Report ───────────────────────────────────────── PUBLICATION READINESS: ✓ READY Minor warnings: None Critical errors: None PDF ready for upload to SSRN, arXiv, journals ───────────────────────────────────────── [2/6] IAB Paper ═══════════════════════════════════════════ [... continues for all papers]
How to Implement
- •
Detect review level from user request:
- •"basic review" → Basic
- •"full review" / "comprehensive" → Comprehensive
- •Default → Standard
- •
Run validation pipeline:
python# Step 1: Pre-render validation subprocess.run(['python', 'scripts/pre-render-validation.py']) # If errors: use /pre-render-validate skill # Step 2 (Standard+): Citation verification # Use /verify-and-add-sources skill # Steps for Comprehensive only: # Use /review-qmd skill # Use /critique-calculation skill # Step 3: Generate PDF subprocess.run(['python', 'scripts/render-quarto.py', project, '--to', 'pdf']) # Step 4: Post-render validation subprocess.run(['python', 'scripts/post-render-validation.py'])
- •
Compile review report with findings from all stages
- •
Show review report and ask user if they want to:
- •Proceed with upload (if clean)
- •Fix warnings manually (if warnings)
- •Fix critical errors (if errors found)
4. Update Publication Metadata (Interactive)
When user reports uploading a paper, guide them through updating the config:
Example conversation:
User: I just uploaded the economics paper to SSRN
Claude: Great! Let me update the config. What's the SSRN URL?
User: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1234567
Claude: Should I change the status from "pending" to "submitted"?
User: Yes
Claude: [Shows preview of changes]
Preview of changes to _quarto-1-pct-treaty-impact.yml:
───────────────────────────────────────────
preprints:
- platform: ssrn
- status: pending
+ status: submitted
- url: ""
+ url: "https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1234567"
Apply these changes? (y/n)
User: y
Claude: ✓ Updated _quarto-1-pct-treaty-impact.yml
How to update YAML:
CRITICAL SAFETY RULES:
- •Always preview changes before writing
- •Wait for user confirmation
- •Use ruamel.yaml to preserve formatting (NOT PyYAML)
- •Only modify
metadata.publishingsection - •Verify the file parses after changes
Update workflow:
- •Read the appropriate
_quarto-*.ymlfile - •Navigate to
metadata.publishingsection - •Find the specific platform or journal entry
- •Update the relevant fields (status, url, doi)
- •Show diff preview
- •Get user confirmation
- •Write changes using Edit tool
- •Verify file still parses correctly
Status values:
- •
deployed- Own site is live - •
auto-uploaded- Zenodo automated upload - •
pending- Not yet uploaded - •
submitted- Uploaded/submitted but not published - •
published- Published and live - •
target- Journal target (not yet submitted) - •
rejected- Submission rejected
Implementation Notes
Discovery Pattern
# Find all Quarto config files (exclude build artifacts)
import glob
configs = [
f for f in glob.glob('_quarto-*.yml')
if '_build_temp' not in f
]
YAML Parsing (If Helper Script Needed)
Use ruamel.yaml to preserve formatting:
from ruamel.yaml import YAML
yaml = YAML()
yaml.preserve_quotes = True
yaml.default_flow_style = False
# Read
with open(config_file, 'r', encoding='utf-8') as f:
config = yaml.load(f)
# Access publishing metadata
publishing = config['metadata']['publishing']
# Modify
for preprint in publishing['preprints']:
if preprint['platform'] == 'ssrn':
preprint['status'] = 'submitted'
preprint['url'] = new_url
# Write (preserves original formatting)
with open(config_file, 'w', encoding='utf-8') as f:
yaml.dump(config, f)
PDF Output Paths
Each project has its PDF specified in the config under dih-render.pdf-output-file:
- •Book:
How-to-End-War-and-Disease.pdf - •Economics:
economics-paper.pdf - •IAB:
incentive-alignment-bonds-paper.pdf - •Wishocracy:
wishocracy-rappa-paper.pdf - •dFDA Spec:
dfda-spec-paper.pdf - •dFDA Impact:
dfda-impact-paper.pdf
All PDFs are output to _site/<project-name>/ directory.
Publication Platforms Reference
Preprint Servers
- •Zenodo: Auto-uploaded via GitHub Actions, assigns DOI
- •SSRN: Social Science Research Network (economics, political science)
- •arXiv: Physics, math, CS, econ (requires category)
- •medRxiv: Health sciences preprints
- •OSF Preprints: Open Science Framework
Journal Categories by Paper
- •Economics: Health Affairs, Value in Health, The Lancet, BMJ, PLOS Medicine
- •IAB: AER, JPE, Public Choice, Games & Economic Behavior, J. Public Econ
- •Wishocracy: APSR, J. Politics, Social Choice & Welfare, Public Choice
- •dFDA Spec: Clinical Pharm & Therapeutics, Pharmacoepidemiology, Drug Safety
- •dFDA Impact: Health Affairs, Value in Health, PharmacoEconomics
Examples
Example 1: Check Status
User: What's the publication status? → Skill displays status table for all 6 papers
Example 2: Generate PDFs
User: Generate PDFs for all papers → Skill runs render-quarto.py for each project → Reports success and file locations
Example 3: Update After Upload
User: I uploaded dFDA spec to medRxiv: https://medrxiv.org/content/10.1101/2025.01.15.12345678 → Skill identifies dFDA spec paper → Updates medRxiv preprint entry → Changes status to "submitted" → Adds URL → Previews changes → Updates _quarto-dfda-spec.yml after confirmation
Example 4: TODO List
User: What do I need to publish next? → Skill generates TODO list → Prioritizes preprints first → Shows 15 pending preprints, 18 journal targets → Includes submission categories and tiers
Tips for Success
- •Always show before changing: Preview YAML diffs before writing
- •Be specific: When updating, confirm which paper and platform
- •Context matters: Reference paper titles and DOIs for clarity
- •File safety: Only modify
metadata.publishing, never other sections - •Verify: After updates, confirm file still parses correctly
- •Batch operations: When generating PDFs, do all at once for efficiency
Future Enhancements
- •Automated peer review before submission
- •Bulk status updates via CSV import
- •Integration with Zenodo API to auto-fetch DOIs
- •Journal submission checklist generator
- •Citation count tracking from Google Scholar