{
  "generated_at": "2026-06-09T18:29:50Z",
  "artifacts": [
    {
      "name": "Bibliography exports",
      "outputs": [
        "bibliography.bib",
        "bibliography.csl.json",
        "bibliography.ris",
        "data/works.json"
      ],
      "sources": [
        "pages/BIBLIOGRAPHY.md",
        "papers/biblio_table.py"
      ],
      "command": "python3 code/orchestrators/export_bibliography.py"
    },
    {
      "name": "Scholar metrics sync",
      "outputs": [
        "pages/BIBLIOGRAPHY.md (badge)",
        "index.html (meta/og/stat/li)",
        "pages/PROFILE.md (prose + metrics table)",
        "pages/LINKS.md",
        "publications.html (header metrics pill)"
      ],
      "sources": [
        "data/scholar-snapshot.json",
        "code/orchestrators/sync_scholar_metrics.py"
      ],
      "command": "python3 code/orchestrators/sync_scholar_metrics.py"
    },
    {
      "name": "Current count report",
      "outputs": [
        "reports/current_counts.md",
        "data/current-counts.json"
      ],
      "sources": [
        "pages/BIBLIOGRAPHY.md",
        "papers/README.md",
        "pages/SOFTWARE.md",
        "data/works.json",
        "data/software.json",
        "data/github-repositories.json",
        "reports/public_source_snapshot_*.json",
        "reports/paired_publications_*.json"
      ],
      "command": "uv run python3 code/orchestrators/build_current_counts.py"
    },
    {
      "name": "Agent data exports",
      "outputs": [
        "data/software.json",
        "data/people.json",
        "data/organizations.json",
        "data/claims.json"
      ],
      "sources": [
        "pages/SOFTWARE.md",
        "papers/software_table.py",
        "data/scholar-snapshot.json",
        "code/orchestrators/export_agent_data.py"
      ],
      "command": "python3 code/orchestrators/export_agent_data.py"
    },
    {
      "name": "Resume and CV exports",
      "outputs": [
        "data/resume.json",
        "resume/full.txt",
        "resume/academic.txt",
        "resume/software-consulting.txt",
        "resume/teaching-service.txt",
        "resume/resume.pdf",
        "resume/verify.html"
      ],
      "sources": [
        "resume/source.json",
        "data/works.json",
        "data/software.json",
        "data/scholar-snapshot.json",
        "data/claims.json",
        "code/src/resume_data.py",
        "code/orchestrators/build_resume.py"
      ],
      "command": "uv run python3 code/orchestrators/build_resume.py --all"
    },
    {
      "name": "Software catalog HTML sync",
      "outputs": [
        "software.html",
        "data/software-ld.json"
      ],
      "sources": [
        "pages/SOFTWARE.md",
        "papers/software_table.py",
        "papers/sync_software_html.py"
      ],
      "command": "python3 papers/sync_software_html.py --apply"
    },
    {
      "name": "Full GitHub repository inventory",
      "outputs": [
        "data/github-repositories.json",
        "repositories.html"
      ],
      "sources": [
        "GitHub REST API",
        "data/software.json",
        "code/orchestrators/build_github_inventory.py"
      ],
      "command": "python3 code/orchestrators/build_github_inventory.py"
    },
    {
      "name": "Paired publication sync report",
      "outputs": [
        "reports/paired_publications_2026-06-09.json"
      ],
      "sources": [
        "GitHub Releases API",
        "Zenodo Records API",
        "docs/PUBLICATION_SYNC.md",
        "code/src/publication_pairing.py",
        "code/orchestrators/sync_paired_publications.py"
      ],
      "command": "python3 code/orchestrators/sync_paired_publications.py"
    },
    {
      "name": "Paired publication review decisions",
      "outputs": [
        "data/paired-publication-decisions.json",
        "reports/paired_publications_review_queue_2026-06-04.md"
      ],
      "sources": [
        "reports/paired_publications_2026-06-09.json",
        "manual review decision"
      ],
      "command": "manual review; update data/paired-publication-decisions.json"
    },
    {
      "name": "Domain pages",
      "outputs": [
        "domains.html",
        "domain-*.html",
        "pages/DOMAINS.md"
      ],
      "sources": [
        "data/works.json",
        "data/software.json",
        "code/orchestrators/build_domain_pages.py"
      ],
      "command": "python3 code/orchestrators/build_domain_pages.py"
    },
    {
      "name": "Work pages",
      "outputs": [
        "works/*.html",
        "data/work-enrichment.json"
      ],
      "sources": [
        "data/works.json",
        "papers/*/README.md",
        "papers/*/SKILL.md"
      ],
      "command": "python3 code/orchestrators/build_work_pages.py"
    },
    {
      "name": "Paper folder pages",
      "outputs": [
        "papers/*/index.html"
      ],
      "sources": [
        "data/works.json",
        "papers/*/README.md",
        "papers/*/AGENTS.md",
        "papers/*/*.pdf"
      ],
      "command": "python3 code/orchestrators/build_paper_pages.py"
    },
    {
      "name": "Evidence pages",
      "outputs": [
        "evidence.html",
        "pages/EVIDENCE.md"
      ],
      "sources": [
        "data/claims.json",
        "code/orchestrators/build_evidence_page.py"
      ],
      "command": "python3 code/orchestrators/build_evidence_page.py"
    },
    {
      "name": "Search index",
      "outputs": [
        "search-index.json"
      ],
      "sources": [
        "data/*.json",
        "data/work-enrichment.json"
      ],
      "command": "python3 code/orchestrators/build_search_index.py"
    },
    {
      "name": "Data catalog",
      "outputs": [
        "catalog.html",
        "data/catalog.json"
      ],
      "sources": [
        "code/orchestrators/build_catalog.py",
        "data/*.json"
      ],
      "command": "python3 code/orchestrators/build_catalog.py"
    },
    {
      "name": "Exports hub",
      "outputs": [
        "exports.html"
      ],
      "sources": [
        "code/orchestrators/build_exports_page.py",
        "data/catalog.json"
      ],
      "command": "python3 code/orchestrators/build_exports_page.py"
    },
    {
      "name": "Updates page",
      "outputs": [
        "updates.html"
      ],
      "sources": [
        "CHANGELOG.md",
        "code/orchestrators/build_updates_page.py"
      ],
      "command": "python3 code/orchestrators/build_updates_page.py"
    },
    {
      "name": "External link report",
      "outputs": [
        "reports/external_links_2026-05-15.json"
      ],
      "sources": [
        "site-critical HTML, Markdown, and JSON-LD files"
      ],
      "command": "python3 code/orchestrators/check_external_links.py"
    },
    {
      "name": "Public source snapshot",
      "outputs": [
        "reports/public_source_snapshot_2026-06-09.json"
      ],
      "sources": [
        "GitHub, ORCID, PubMed, Europe PMC, Crossref, Zenodo public APIs"
      ],
      "command": "python3 code/orchestrators/refresh_public_sources.py"
    },
    {
      "name": "Public source inventory",
      "outputs": [
        "reports/public_source_inventory_2026-06-09.json"
      ],
      "sources": [
        "ORCID, Crossref, PubMed, Europe PMC, Zenodo, Wikidata, Semantic Scholar, GitHub, AII pages"
      ],
      "command": "python3 code/orchestrators/refresh_public_source_inventory.py"
    },
    {
      "name": "External link triage",
      "outputs": [
        "reports/external_links_triage_2026-05-15.json",
        "reports/external_links_triage_2026-05-15.md"
      ],
      "sources": [
        "reports/external_links_2026-05-15.json"
      ],
      "command": "python3 code/orchestrators/build_external_link_triage.py"
    },
    {
      "name": "Asset size audit",
      "outputs": [
        "reports/asset_size_2026-06-09.json"
      ],
      "sources": [
        "root HTML pages",
        "og-*.jpg",
        "data/*.json",
        "style.css",
        "sw.js"
      ],
      "command": "python3 code/orchestrators/audit_assets.py"
    },
    {
      "name": "Static accessibility report",
      "outputs": [
        "reports/accessibility_static_2026-06-09.json"
      ],
      "sources": [
        "root HTML pages",
        "style.css",
        "code/orchestrators/accessibility_audit.py"
      ],
      "command": "python3 code/orchestrators/accessibility_audit.py"
    },
    {
      "name": "Browser smoke checks",
      "outputs": [
        "reports/browser-smoke/2026-05-28/*.png",
        "reports/browser-smoke/2026-05-28/manifest.json"
      ],
      "sources": [
        "root HTML pages",
        "works/index.html",
        "search-index.json"
      ],
      "command": "python3 code/orchestrators/browser_smoke.py"
    },
    {
      "name": "Live site verification",
      "outputs": [
        "reports/live_site_verification_2026-05-15.json"
      ],
      "sources": [
        "https://danielarifriedman.com/",
        "GitHub Pages API"
      ],
      "command": "python3 code/orchestrators/verify_live_site.py"
    },
    {
      "name": "Feed",
      "outputs": [
        "feed.xml"
      ],
      "sources": [
        "data/works.json",
        "code/orchestrators/generate_feed.py"
      ],
      "command": "python3 code/orchestrators/generate_feed.py"
    },
    {
      "name": "Sitemap",
      "outputs": [
        "sitemap.xml"
      ],
      "sources": [
        "works/*.html",
        "code/src/sitemap_policy.py",
        "code/orchestrators/build_sitemap.py"
      ],
      "command": "python3 code/orchestrators/build_sitemap.py"
    },
    {
      "name": "Visual QA",
      "outputs": [
        "reports/visual-qa/2026-05-28/*.png",
        "reports/visual-qa/2026-05-28/manifest.json"
      ],
      "sources": [
        "root HTML pages",
        "style.css"
      ],
      "command": "python3 code/orchestrators/visual_qa.py"
    }
  ]
}
