Academic Paper — Academic Paper Writing Agent Team

SkillSearch

Lets your agent write, plan, revise, and format academic papers with citations and multiple output formats.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Academic Paper — Academic Paper Writing Agent Team skill

About this capability

12-agent academic paper writing pipeline. 11 modes (full/plan/outline/revision/revision-coach/abstract/lit-review/format-convert/citation-check/disclosure/rebuttal-audit). 6 paper types, 5 citation formats, bilingual abstracts, LaTeX/DOCX-via-Pandoc/PDF output. Style Calibration + Writing Quality Ch

What this skill tells your AI

The instructions your AI receives, as published by imbad0202/academic-research-skills in academic-paper/SKILL.md and read by ahel’s review.

A general-purpose academic paper writing tool — 12-agent pipeline covering all disciplines, with higher education domain as the default reference.

v2.5 adds two writing quality features:

  • Style Calibration (intake Step 10, optional) — Provide 3+ past papers and the pipeline learns your writing voice (sentence rhythm, vocabulary preferences, citation integration style). Applied as a soft guide during drafting; discipline conventions always take priority. See shared/style_calibration_protocol.md.
  • Writing Quality Check (references/writing_quality_check.md) — Context-sensitive writing diagnostics applied during the draft self-review step: vague or overused terms, punctuation that interrupts the argument, throat-clearing openers, paragraph and sentence shapes that impair clarity. Prompts for judgment subordinate to author and venue requirements, not quotas (#825).

Routing discipline (v3.9.2): see .claude/CLAUDE.md "Routing Discipline (v3.9.2)" + shared/references/intent_clarification_protocol.md for cross-skill routing rules. This skill assumes routing has already settled — ambiguous cross-phase materials should have been clarified upstream.

Quick Start

Minimal command:

Write a paper on the impact of AI on higher education quality assurance
Write a paper on the impact of declining birth rates on private university management strategies

Execution flow:

  1. Configuration interview — paper type, discipline, citation format, output format
  2. Literature search — systematic search strategy, source screening
  3. Architecture design — paper structure, outline, word count allocation
  4. Argumentation construction — claim-evidence chains, logical flow
  5. Full-text drafting — section-by-section draft, register adjustment
  6. Citation compliance + bilingual abstract (parallel)
  7. Peer review — five-perspective categorical assessment, revision suggestions
  8. Output formatting — LaTeX/DOCX (via Pandoc)/PDF/Markdown

Trigger Conditions

Trigger Keywords

English: write paper, academic paper, paper outline, write abstract, revise paper, literature review paper, check citations, convert to LaTeX, convert format, format paper, conference paper, journal article, thesis chapter, research paper, guide my paper, help me plan my paper, step by step paper, draft manuscript, write methodology, write discussion, parse reviews, revision roadmap, help me with my revision, I got reviewer comments, convert citations

繁體中文: 寫論文, 學術論文, 論文大綱, 寫摘要, 修改論文, 文獻回顧論文, 檢查引用, 轉 LaTeX, 轉換格式, 研討會論文, 期刊文章, 學位論文, 研究論文, 引導我寫論文, 幫我規劃論文, 逐步寫論文, 寫方法論, 寫討論, 審查意見, 修訂路線圖, 幫我修改, 我收到審查意見, 轉換引用格式

한국어: 논문 작성, 논문 초안, 논문 개요, 초록 작성, 논문 수정, 인용 확인, 인용 형식 검사, LaTeX 변환, 서식 변환, 학위논문 작성, 학술지 논문 작성, 학회 논문 작성, 논문 계획을 도와줘, 단계별로 논문 쓰기, 심사 의견을 받았어, 심사 의견 반영, 답변서 점검, AI 사용 고지

Plan Mode Activation

Activate plan mode when the user wants guidance, step-by-step planning, or expresses uncertainty about paper structure. Default rule: when ambiguous between plan and full, prefer plan.

See references/plan_mode_protocol.md for full intent signals and activation rules.

Does NOT Trigger

ScenarioUse Instead
Deep research / fact-checking (not paper writing)deep-research
Reviewing a paper (structured review)academic-paper-reviewer
Full research-to-paper pipelineacademic-pipeline

Distinction from deep-research

Featureacademic-paperdeep-research
Primary outputPublishable paper draftResearch report
StructureJournal-ready (IMRaD, etc.)APA 7.0 report
CitationMulti-format (APA/Chicago/MLA/IEEE/Vancouver)APA 7.0 only
AbstractBilingual (zh-TW + EN)Single language
Peer reviewSimulated 5-dimension reviewEditorial review
Output formatLaTeX/DOCX (via Pandoc)/PDF/MarkdownMarkdown only
Revision loopMax 2 rounds with targeted feedbackMax 2 rounds

Agent Team (12 Agents)

#AgentRolePhase
1intake_agentConfiguration interview: paper type, discipline, journal, citation format, output format, language, word count; Handoff detection; Plan mode simplified interviewPhase 0
2literature_strategist_agentSearch strategy design, source screening, annotated bibliography, literature matrixPhase 1
3structure_architect_agentPaper structure selection, detailed outline, word count allocation, evidence mappingPhase 2
4argument_builder_agentArgument construction, claim-evidence chains, logical flow, counter-argument handling; Plan mode argument stress testPhase 3 / Plan Step 3
5draft_writer_agentSection-by-section full draft writing, discipline register adjustment, word count trackingPhase 4
6citation_compliance_agentCitation format verification, reference list completeness, DOI checkingPhase 5a
7abstract_bilingual_agentBilingual abstract (zh-TW + EN), 5-7 keywords eachPhase 5b
8peer_reviewer_agentSimulated double-blind review, five-perspective categorical assessment, revision suggestions (max 2 rounds)Phase 6
9formatter_agentConvert to LaTeX/DOCX (via Pandoc)/PDF/Markdown, journal formatting, cover letter, citation format conversion (APA 7 / Chicago / MLA / IEEE / Vancouver)Phase 7
10socratic_mentor_agentPlan mode Socratic mentor: chapter-by-chapter guidance, convergence criteria (4 signals), question taxonomy (4 types), INSIGHT extractionPlan Step 0-3
11visualization_agentParse paper data and generate publication-quality figure code (Python matplotlib / R ggplot2) with APA 7.0 formatting, colorblind-safe palettes, and LaTeX integrationPhase 4 / Phase 7
12revision_coach_agentParse unstructured reviewer comments into a Revision Roadmap, or explicitly identified real-committee comments into the separate #668 source-accounted concern tracker; works standaloneRevision-Coach mode

Output Formats

Text Formats

LaTeX (.tex + .bib), DOCX (via Pandoc), PDF (via LaTeX or Pandoc), Markdown.

Figures

When the paper contains quantitative results, the visualization_agent can generate publication-ready figures in Python (matplotlib/seaborn) or R (ggplot2) with APA 7.0 formatting and colorblind-safe palettes. Figures are delivered as runnable code + LaTeX \includegraphics integration code. See references/statistical_visualization_standards.md for chart type decision trees and code templates.

Citation Formats

APA 7.0 (default), Chicago (Author-Date or Notes-Bibliography), MLA 9, IEEE, Vancouver. The formatter_agent supports late-stage citation format conversion between any two supported formats via "Convert citations to [format]".


Orchestration Workflow (8 Phases)

Phase 0: CONFIG        -> [intake_agent]              -> Paper Configuration Record
Phase 1: RESEARCH      -> [literature_strategist]      -> Search Strategy + Source Corpus
Phase 2: ARCHITECTURE  -> [structure_architect]        -> Paper Outline + Evidence Map
Phase 3: ARGUMENTATION -> [argument_builder]           -> Argument Blueprint
Phase 4: DRAFTING      -> [draft_writer]               -> Complete Draft
Phase 5a: CITATIONS    -> [citation_compliance] ──┐    -> Citation Audit Report
Phase 5b: ABSTRACT     -> [abstract_bilingual]   ─┘    -> Bilingual Abstract + Keywords  (parallel)
Phase 6: PEER REVIEW   -> [peer_reviewer]              -> Review Report (max 2 revision loops)
Phase 7: FORMAT        -> [formatter]                  -> Final Output Package

See references/workflow_phase_details.md for detailed per-phase agent behavior and output descriptions.

Review-target criteria binding (#684)

When Phase 0 has produced an author-confirmed ReviewTargetContext (#683), the orchestrator initializes one pointer-only ReviewCriteriaBindingManifest and uses it unchanged across the formative, internal-evaluator, and external-panel consumers. The normative lifecycle, exact marker, closed roles, and explicit degraded path are defined in shared/references/review_criteria_consumer_protocol.md.

  • Phase 2 owns the FORMATIVE receipt. The Structure Architect maps selected criterion ids to planned sections and evidence needs; later writing phases reuse that receipt and do not re-resolve the target.
  • Phase 6a receives the same pointer authority and Target Criteria Brief while remaining paper-blind; its pre-commitment artifact owns the INTERNAL receipt. Phase 6b receives that unchanged artifact, may assess applicability after it sees the draft, and owns any Critical/Major constructive finding sidecar.
  • Scientific validity, venue fit, and submission readiness remain distinct. Criteria never authorize invented evidence, results, methods, or changes to the author's contribution claim.

Binding validation is a handoff-conformance check only. It never supplies an editorial verdict, severity, checkpoint state, or author triage. If the binding is unavailable, disclose criteria_binding_unavailable; do not claim venue alignment and do not silently reconstruct a target from model memory.

Checkpoint Rules

  1. ⚠️ IRON RULE: User must confirm Paper Configuration Record before proceeding to Phase 1
  2. Phase 2 -> 3: User must approve outline (can request restructuring)
  3. ⚠️ IRON RULE: Max 2 revision loops; unresolved items -> "Acknowledged Limitations"
  4. Peer Review Critical-severity issues block progression to Phase 7
  5. User can skip Phase 1 (literature) if providing own sources

v3.4.0 compliance (applies to full mode): Before finalization, compliance_agent runs RAISE principles-only check (warn-only; primary research is outside PRISMA-trAIce scope). Warnings are listed in the disclosure statement but never block the pipeline. See shared/raise_framework.md §Scope disclaimer.

Phase-by-phase Invocation Contract (v3.9.2)

academic-paper pipeline runs in 8 phases (Phase 0 intake → 7 formatting). Two invocation modes:

Mode A — orchestrator-driven (default): pipeline_orchestrator_agent (in academic-pipeline skill) runs all phases end-to-end with state tracking via Material Passport.

Mode B — phase-by-phase (cross-session resume): User invokes one agent per phase across sessions for long-running projects. Common pattern: write the draft in one session, return next week to citation-check / abstract / peer-review independently.

In Mode B, single-phase agents (Bucket A per docs/design/2026-05-18-ars-v3.9.2-agent-phase-classification.md) stay strictly within their assigned phase for writes. The 7 Bucket A agents in academic-paper are: literature_strategist (P1), structure_architect (P2), draft_writer (P4/P6 per invocation), citation_compliance (P5a), abstract_bilingual (P5b), peer_reviewer (P6), formatter (P7). Reads from upstream phases are allowed.

Multi-phase agents (Bucket B: argument_builder P3+Plan, visualization P4+P7) do exactly the work specified by the caller's invocation for that phase — no extension to other phases in the same call. The v3.6.6 generator-evaluator contract below additionally constrains draft_writer and peer_reviewer sub-phase behavior (Phase 4a/4b, Phase 6a/6b).

Routing into Mode B requires explicit user signal — /ars-<mode> slash command or [direct-mode] prefix. Ambiguous cross-phase input defaults to clarification per .claude/CLAUDE.md Routing Discipline + shared/references/intent_clarification_protocol.md.

Enforcement (v3.9.2): Phase Boundary blocks on Bucket A agents + advisory verifier (scripts/check_pipeline_integrity.py) + a deterministic PreToolUse write-scope guard in hook-enabled runtimes (#134 rescope, PR #294). Multi-phase envelope remains forward-scope (#134 Slices 3-5).

v3.6.6 Generator-Evaluator Contract Protocol

Authoritative orchestration block for the v3.6.6 contract-gated phase splits inside academic-paper full mode. Schema 13.1 since v3.6.6 (shared/sprint_contract.schema.json). Templates: shared/contracts/writer/full.json + shared/contracts/evaluator/full.json. Design spec: docs/design/2026-04-27-ars-v3.6.6-generator-evaluator-contract-design.md §5.

Applies to academic-paper full mode only. Nine non-full modes (plan, outline-only, revision, revision-coach, abstract-only, lit-review, format-convert, citation-check, disclosure) are byte-equivalent across v3.6.5 → v3.6.6 and do not invoke this protocol. (The later-added rebuttal-audit mode is likewise non-full and does not invoke this protocol.) Pipeline boundary unchanged: academic-pipeline Stage 2 dispatches academic-paper in plan or full mode (full only invokes this protocol); Stage 3 dispatches the separate academic-paper-reviewer skill (5-panel external editorial review). The in-pair Phase 6 evaluator under this protocol and the Stage 3 reviewer are different review layers — see design doc §5.1 audit conclusion 2.

Overview

v3.6.6 splits Phase 4 (writer drafting) and Phase 6 (in-pair evaluator review) into paper-blind / paper-visible call pairs gated by the writer_full and evaluator_full contracts. The split mirrors academic-paper-reviewer/references/sprint_contract_protocol.md (the v3.6.2 reviewer pattern) but adapts it for single-agent generator modes that have no panel and (for the writer) no scoring_plan.

The load-bearing mechanism is the physical separation of calls: writer Phase 4a never sees the runtime drafting artefacts; evaluator Phase 6a never sees the writer Phase 4b draft. This destroys the "read the paper, then rationalise the standard" drift path on the in-pair self-quality gate.

Four-call structure

For each academic-paper full invocation, Phase 4 + Phase 6 expand from two single calls into four separate model calls. Each call has its own system prompt and user content per the system-vs-user content discipline below.

  1. Phase 4a — writer paper-blind pre-commitment.
    • System prompt: ### Phase 4a — Writer paper-blind pre-commitment sub-section in academic-paper/agents/draft_writer_agent.md § "v3.6.6 Generator-Evaluator Contract Protocol".
    • User content: writer_full contract JSON + paper metadata only (title, field, word_count).
    • Output: ## Acceptance Criteria Paraphrase section + terminal [PRE-COMMITMENT-ACKNOWLEDGED] tag.
    • Lint: 3 structural checks (see § "Phase 4a / 6a output lint" below).
  2. Phase 4b — writer paper-visible drafting + self-scoring.
    • System prompt: ### Phase 4b — Writer paper-visible drafting + self-scoring sub-section in the same agent file.
    • User content: writer_full contract JSON (re-injected) + Phase 4a output wrapped in <phase4a_output>...</phase4a_output> data delimiter + upstream drafting artefacts (Paper Configuration Record, Paper Outline, Argument Blueprint, Annotated Bibliography incl. its Search Strategy / Schema 2 search_strategy (#548 — the bound the writer fills into search-bounded novelty claims), optional Style Profile, optional Knowledge Isolation Directive).
    • Output: ## Draft Body## Dimension Scores## Failure Condition Checks## Writer Decision.
    • Lint: 4 structural checks (see § "Phase 4b / 6b output lint" below).
  3. Phase 6a — evaluator paper-blind pre-commitment.
    • System prompt: ### Phase 6a — Evaluator paper-blind pre-commitment sub-section in academic-paper/agents/peer_reviewer_agent.md § "v3.6.6 Generator-Evaluator Contract Protocol".
    • User content: evaluator_full contract JSON + paper metadata + the writer's most recent <phase4a_output> (the writer artefact the evaluator must verify per disagreement_handling.pre_commitment_check_protocol.check_writer_artifact) +, when active, the pointer-only #684 manifest/Target Criteria Brief/INTERNAL marker.
    • Output: ## Contract Paraphrase + ## Scoring Plan (per-dimension dimension_id / what_to_look_for / what_triggers_block / what_triggers_warn) + pointer-only binding commitment (or criteria_binding_unavailable) + terminal [PRE-COMMITMENT-ACKNOWLEDGED] tag. No additional H2 is introduced.
    • Lint: 5 structural checks.
  4. Phase 6b — evaluator paper-visible scoring + decision.
    • System prompt: ### Phase 6b — Evaluator paper-visible scoring + decision sub-section in the same agent file.
    • User content: evaluator_full contract JSON (re-injected) + Phase 6a output wrapped in <phase6a_output>...</phase6a_output> + the writer's <phase4a_output> (unconditional per pre_commitment_check_protocol.check_writer_artifact) + the writer Phase 4b draft (the artefact under review) + the unchanged #684 authority when it was supplied in Phase 6a.
    • Output: ## Dimension Scores## Failure Condition Checks## Review Body## Evaluator Decision, plus the role marker/unavailable disclosure and a separately validated constructive sidecar when applicable.
    • Lint: 5 structural checks.

System prompt vs user content discipline

Mirrors sprint_contract_protocol.md §2 reviewer pattern verbatim:

  • System prompt carries invariant policy text only: the phase sub-section instructions from the agent file's ## v3.6.6 Generator-Evaluator Contract Protocol block, the lint description, and the phase-boundary tag conventions.
  • User content carries the contract JSON (re-injected per call) plus the runtime inputs allowed at that phase: paper metadata, <phase4a_output> / <phase6a_output> delimiter blocks, upstream drafting artefacts, the paper draft.

All dynamic LLM output (Phase Na runtime emissions, paper content) lives in user content via data delimiters, never in the system prompt. This prevents accidental elevation of dynamic per-paper content into the invariant policy surface.

Schema field name vs runtime emission distinction

pre_commitment_artifacts (snake_case, backticks) is the schema field name in shared/sprint_contract.schema.json — a configuration declaration in the frozen contract baseline. The "writer Phase 4a pre-commitment output" is the runtime emission — the actual Markdown text the writer agent emits in Phase 4a. The runtime emission lives inside <phase4a_output> and gets handed off to Phase 4b / Phase 6a / Phase 6b. Same pattern for disagreement_handling (schema field) vs "evaluator Phase 6a pre-commitment output" (runtime emission). Mixing the two leads to confusion between contract baseline configuration and LLM-generated content.

Phase 4a / 6a output lint

Mode-specific structural check counts, per sprint_contract_protocol.md §4 enumeration convention:

  • Writer Phase 4a (3 checks): required sections in order (## Acceptance Criteria Paraphrase, terminal [PRE-COMMITMENT-ACKNOWLEDGED]); paraphrase paragraph count ≥ pre_commitment_artifacts.acceptance_criteria_paraphrase.minimum_dimensions; Phase 4a content references contract JSON + paper metadata only. No ## Scoring Plan sectionwriter_full carries no scoring_plan.
  • Evaluator Phase 6a (5 checks): required sections in order (## Contract Paraphrase, ## Scoring Plan, terminal [PRE-COMMITMENT-ACKNOWLEDGED]); paraphrase paragraph count ≥ disagreement_handling.paraphrase_minimum_dimensions; one ### <Dn>: <name> subsection per acceptance dimension; each scoring_plan subsection contains disagreement_handling.scoring_plan.per_dimension_criteria four-field shape (dimension_id, what_to_look_for, what_triggers_block, what_triggers_warn); Phase 6a content references contract JSON + paper metadata + the writer's <phase4a_output> plus the paper-blind #684 pointer authority only (no full draft / paper content). The binding commitment is unbulleted pointer data after Scoring Plan, not an additional H2.

Retry semantics: lint failure on the first attempt → retry once with the specific lint gap hinted in the system prompt; second failure → mark this role unusable per § "Single-agent generator unusable handling" below.

Phase 4b / 6b output lint

  • Writer Phase 4b (4 checks): required sections in order — ## Draft Body, ## Dimension Scores, ## Failure Condition Checks, ## Writer Decision; Dimension Scores one-to-one across the seven writer dimensions D1–D7 (per shared/contracts/writer/full.json); Failure Condition Checks one-to-one across F1 / F4 / F2 / F3 / F0; Writer Decision derivable from F-condition severity precedence. No multi-dissent retry (writer has no scoring_plan to dissent against). No consistency check (writer Phase 4a emits no scoring_plan trigger tokens).
  • Evaluator Phase 6b (5 checks): required sections in order — ## Dimension Scores, ## Failure Condition Checks, ## Review Body, ## Evaluator Decision; Dimension Scores one-to-one across the five evaluator dimensions D1–D5 (per shared/contracts/evaluator/full.json); Failure Condition Checks one-to-one across F1 / F2 / F3 / F6 / F4 / F5 / F0; consistency check (Phase 6b score substring-matches Phase 6a disagreement_handling.scoring_plan.per_dimension_criteria trigger tokens); Evaluator Decision derivable from F-condition severity precedence. No multi-dissent retry (evaluator's intra-phase disagreement is encoded as F-condition action via disagreement_handling.disagreement_resolution, not as a retry trigger).

Multi-dissent retry remains reviewer-only (academic-paper-reviewer skill); generator modes have no panel and no scoring_plan dissent anchor.

Lint count summary across the three modes:

PhaseReviewer (zero-touch)WriterEvaluator
Phase 1 / 4a / 6a535
Phase 2 / 4b / 6b645

Single-agent generator unusable handling

When a writer or evaluator phase becomes unusable (Phase Na lint twice fail OR Phase Nb lint fail), academic-paper emits a phase-level abort tag and routes to user intervention:

  • Writer Phase 4 unusable[GENERATOR-PHASE-ABORTED: role=writer, contract=<id>, reason=<lint_failure_kind>] → abort academic-paper Phase 4 → user intervention decides retry / fallback / regression to Phase 3 (Argument Blueprint).
  • Evaluator Phase 6 unusable[GENERATOR-PHASE-ABORTED: role=evaluator, contract=<id>, reason=<lint_failure_kind>] → abort academic-paper Phase 6 → user intervention decides retry / fallback / regression to Phase 5 (Drafting completion).

[GENERATOR-PHASE-ABORTED] does not constitute a valid Phase 6b emission and cannot enter Stage 3 reviewer dispatch. Two valid Stage 3 entry paths exist (per design doc §5.1):

  • Standard path: evaluator Phase 6b emits F0 evaluator_decision=accept or F4 evaluator_decision=accept_with_dissent_note.
  • Exceptional path: evaluator Phase 6b emits F5 evaluator_decision=flag_for_reviewer_stage after the in-pair revision loop exhausts at round 2 with mandatory-dimension block recurring.

academic-paper carries no panel cardinality invariant for writer / evaluator (no panel_size field — Schema 13.1 §3.3.5 reviewer-conditional). There is no [PANEL-SHRUNK] analogue at the generator side; [GENERATOR-PHASE-ABORTED] is phase-level abort.

Operational monitor: track [GENERATOR-PHASE-ABORTED] rate over the first three months of v3.6.6 deployment. The denominator is per academic-paper full run — one user-perceived top-level invocation. The 5% threshold is (runs_with_any_abort) / (total_runs). If the rate exceeds 5%, v3.6.7 introduces graceful-degradation fallback (see § "Known limitations" below).

Cross-session resume scope

The v3.6.6 generator-evaluator round (Phase 4a + Phase 4b + Phase 6a + Phase 6b + in-pair revision loop) is an in-session atomic unit. Manual session split mid-round → writer Phase 4a output is lost; new session must restart academic-paper full mode from Phase 0.

Shortened here. Read the whole file on GitHub.

Signals

GitHub stars
48k
Forks
4k
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
academic-paper-imbad0202
Source
github.com/imbad0202/academic-research-skills