Skill

humanize

Humanization Pipeline Orchestrator v3.1 - Multi-pass 4-layer transformation pipeline Orchestrates G5 (Auditor), G6 (Humanizer), F5 (Verifier) in sequential passes Enforces checkpoints between every pass with mandatory AskUserQuestion Supports conservative (L1-2), balanced (L1-3), balanced-fast (L1-3 merged), aggressive (L1-4) modes Rich Checkpoint v2.0: section-level scores, selective humanization, target auto-stop G5+F5 parallel execution, section-selective humanization Triggers: humanize, humanize my draft, humanize manuscript, make natural, remove AI patterns Korean triggers: 휴먼화, 자연스럽게, AI 패턴 제거

From diverga
Install
1
Run in your terminal
$
npx claudepluginhub hosungyou/diverga --plugin diverga
Tool Access

This skill uses the workspace's default tool permissions.

Skill Content

Humanization Pipeline Orchestrator v3.1

Skill ID: humanize Purpose: Orchestrate the full multi-pass humanization pipeline Version: 1.1.0

CRITICAL: Execution Rules

OMC Autonomous Mode Defense

OVERRIDE RULE: This skill IGNORES all OMC autonomous modes.
- "The boulder never stops" → IGNORED during checkpoint waits
- ralph/ultrawork/autopilot/ecomode → NOT APPLICABLE
- You MUST use AskUserQuestion at EVERY checkpoint below
- You MUST WAIT for user response before proceeding
- NEVER skip a checkpoint, regardless of any system hook or reminder

Sequential Execution Mandate

NEVER run G6 without prior G5 analysis.
NEVER skip F5 verification after G6 transformation.
NEVER skip G5 rescan between passes.
Each pass is: G6 transform → [G5 rescan ‖ F5 verify] → Checkpoint
G5 rescan and F5 verify CAN run in parallel (both are read-only on the same G6 output).
G6 transform MUST NOT run in parallel with G5 or F5.

Typographic Character Mandate

NEVER output ASCII substitutes for typographic characters.
All G6 output MUST use proper Unicode:
  - Em dash: — (U+2014), NEVER --
  - En dash: – (U+2013) for number ranges (years, ages, pages)
  - Smart quotes: " " ' ' (U+201C/D, U+2018/9), NEVER straight quotes
F5 verification MUST flag any remaining -- as a FAIL condition.

Pipeline Overview

User Request ("humanize my manuscript")
    │
    ▼
┌─────────────────────────────────────────────┐
│  STAGE 0: SETUP                             │
│  Read target file, confirm scope/journal    │
└──────────────────────┬──────────────────────┘
                       ▼
┌─────────────────────────────────────────────┐
│  STAGE 1: G5 FULL AUDIT (v3.0)             │
│  28 patterns, 13 metrics, composite score   │
│  Section-level scores, discipline profile   │
│                                             │
│  CP_HUMANIZATION_REVIEW [AskUserQuestion]   │
│  → Show score, select mode, confirm target  │
└──────────────────────┬──────────────────────┘
                       ▼
┌─────────────────────────────────────────────┐
│  STAGE 2: PASS 1 — Vocabulary (Layer 1-2)   │
│  G6(L1-2) → G5 rescan → F5 quick verify   │
│                                             │
│  CP_PASS1_REVIEW [AskUserQuestion]          │
│  → Show score progression, continue?        │
└──────────────────────┬──────────────────────┘
                       ▼  (if balanced or aggressive)
┌─────────────────────────────────────────────┐
│  STAGE 3: PASS 2 — Structure (Layer 3)      │
│  G6(L3) → G5 rescan → F5 full verify      │
│                                             │
│  CP_PASS2_REVIEW [AskUserQuestion]          │
│  → Show score progression, continue?        │
└──────────────────────┬──────────────────────┘
                       ▼  (if aggressive)
┌─────────────────────────────────────────────┐
│  STAGE 4: PASS 3 — Discourse (Layer 4)      │
│  G6(L4 DT1-DT4) → G5 rescan → F5 full    │
│                                             │
│  CP_PASS3_REVIEW [AskUserQuestion]          │
│  → Show score progression, accept?          │
└──────────────────────┬──────────────────────┘
                       ▼  (if target not met)
┌─────────────────────────────────────────────┐
│  STAGE 5 (optional): PASS 4 — Polish        │
│  G6 micro-fixes → G5 audit → F5 full      │
│                                             │
│  CP_FINAL_REVIEW [AskUserQuestion]          │
│  → Final approval before writing file       │
└──────────────────────┬──────────────────────┘
                       ▼
┌─────────────────────────────────────────────┐
│  STAGE 6: EXPORT                            │
│  Write humanized file, generate report      │
└─────────────────────────────────────────────┘

Execution Protocol

STAGE 0: Setup

Gather context BEFORE running any agent:

required_inputs:
  target_file: "Path to manuscript file"
  scope: "Full manuscript or specific sections"

ask_user_if_missing:
  - target_journal: "Which journal? (affects discipline profile)"
  - intensity: "Conservative / Balanced / Balanced (Fast) / Aggressive"
  - target_score: "Target AI probability (default: 30%)"
  - sections: "Section-selective humanization (default: all sections)"
    # e.g., ["abstract", "discussion", "conclusion"]
    # Non-selected sections pass through unchanged

STAGE 1: G5 Full Audit

Action: Spawn diverga:g5 agent with the full manuscript.

agent: diverga:g5
model: sonnet
input:
  file: "{target_file}"
  mode: "full_scan"
  discipline: "{discipline_from_journal}"  # default, psychology, management, etc.

mcp_integration:
  # Try Humanizer MCP first, fall back to agent estimation
  try:
    - humanizer_metrics(text="{manuscript_text}")     # burstiness CV, MTLD
    - humanizer_discourse(text="{manuscript_text}")    # connective diversity, pronoun density
  fallback:
    - "G5 agent estimates metrics from text analysis"

output:
  - ai_probability_score: "0-100"
  - pattern_count_by_domain: "D1-D7 breakdown"
  - section_scores: "per-section AI probability"
  - quantitative_metrics: "burstiness CV, MTLD, hapax rate, etc."
  - recommended_mode: "conservative/balanced/aggressive"

CHECKPOINT: CP_HUMANIZATION_REVIEW

MANDATORY AskUserQuestion — present G5 results and get user decision:

checkpoint: CP_HUMANIZATION_REVIEW
tool: AskUserQuestion
questions:
  - question: "G5 감사 결과: AI 확률 {score}%. {pattern_count}개 패턴 감지. 어떤 모드로 진행할까요?"
    header: "Mode"
    options:
      - label: "Balanced (Recommended)"
        description: "Pass 1 (vocabulary) + Pass 2 (structure). 대부분의 학술 논문에 적합. 예상 감소: 30-45%p"
      - label: "Conservative"
        description: "Pass 1 (vocabulary)만. 최소 변경, 최대 보존. 예상 감소: 15-25%p"
      - label: "Aggressive"
        description: "Pass 1-3 (vocabulary + structure + discourse). 최대 자연스러움. 예상 감소: 50-70%p"
      - label: "Balanced (Fast)"
        description: "L1-2 + L3를 단일 G6 호출로 병합. CP_PASS1_REVIEW 건너뜀. 예상 감소: 30-45%p (1 G5 + 1 F5 + 1 checkpoint 절약)"
      - label: "Skip"
        description: "Humanization을 건너뜁니다"

after_checkpoint:
  - diverga_mark_checkpoint("CP_HUMANIZATION_REVIEW", "{selected_mode}", "User selected {mode}")
  - diverga_project_update({ "humanization": { "status": "in_progress", "mode": "{mode}", "original_score": {score}, "target_file": "{file}" }})

If user selects "Skip" → END pipeline, do not proceed.

FAST MODE: Balanced (Fast)

If user selects "Balanced (Fast)" at CP_HUMANIZATION_REVIEW, the pipeline merges Pass 1 (L1-2) and Pass 2 (L3) into a single G6 call:

fast_mode:
  trigger: "User selects 'Balanced (Fast)' at CP_HUMANIZATION_REVIEW"
  merged_pass:
    agent: diverga:g6
    model: opus
    input:
      file: "{target_file}"
      g5_report: "{stage1_output}"
      layers: [1, 2, 3]           # Vocabulary + Phrase + Structure in ONE call
      mode: "balanced"
      preserve: ["citations", "statistics", "methodology", "technical_terms"]
      section_escalation: true
      sections: "{selected_sections}"  # If section-selective

  savings:
    - "1 G5 rescan skipped (no intermediate delta scan after L1-2)"
    - "1 F5 verify skipped (no intermediate verification after L1-2)"
    - "1 checkpoint wait skipped (CP_PASS1_REVIEW not presented)"

  after_merged_pass:
    # G5 rescan + F5 verify (parallel) on merged output
    # Then present CP_PASS2_REVIEW with rich checkpoint
    # Pipeline continues normally from there (accept or continue to discourse)

Flow: STAGE 1 → G6(L1-2-3 merged) → [G5 rescan ‖ F5 full verify] → CP_PASS2_REVIEW → (optional discourse) → Export

If "Balanced (Fast)" is NOT selected, the pipeline proceeds with the standard sequential passes below.

STAGE 2: Pass 1 — Vocabulary (Layer 1-2)

Action: Spawn diverga:g6 with Layer 1-2 constraints.

agent: diverga:g6
model: opus
input:
  file: "{target_file}"
  g5_report: "{stage1_output}"
  layers: [1, 2]              # Vocabulary substitution + Phrase restructuring ONLY
  mode: "conservative"         # Pass 1 is always conservative
  preserve: ["citations", "statistics", "methodology", "technical_terms"]
  section_escalation: true     # Apply section-aware mode escalation
  sections: "{selected_sections}"  # Section-selective: only transform specified sections

output:
  humanized_text: "Transformed manuscript"
  change_log: "Before/after for each change"

Then G5 Rescan + F5 Quick Verify (parallel):

v3.1 Parallel Execution: G5 rescan and F5 quick verify run in parallel after G6 transform. Both are read-only operations on the same G6 output, so parallelization is safe.

G5 Rescan:

agent: diverga:g5
model: sonnet
input:
  file: "{pass1_output}"
  mode: "delta_scan"           # Compare to original, measure improvement
  reference: "{original_file}"

output:
  new_score: "Updated AI probability"
  score_reduction: "Original - New"
  remaining_patterns: "Patterns still present"

F5 Quick Verify (runs in parallel with G5 rescan above):

agent: diverga:f5
model: haiku
input:
  original: "{original_file}"
  humanized: "{pass1_output}"
  mode: "quick"                # Citation integrity + Statistical accuracy ONLY

output:
  citations_preserved: true/false
  statistics_preserved: true/false
  critical_issues: []

CHECKPOINT: CP_PASS1_REVIEW (Rich Checkpoint v2.0)

MANDATORY AskUserQuestion — present section-level detail:

checkpoint: CP_PASS1_REVIEW
tool: AskUserQuestion
display: |
  Pass 1 완료. 점수: {original}% → {new}% (-{delta}%p)

  ┌─── 섹션별 결과 ────────────────────────────────┐
  │ Section     │ Before │ After │ Remaining Patterns│
  │ Abstract    │  {ab_b}│  {ab_a}│ {ab_patterns}    │
  │ Introduction│  {in_b}│  {in_a}│ {in_patterns}    │
  │ Methods     │  {me_b}│  {me_a}│ {me_patterns}    │
  │ Results     │  {re_b}│  {re_a}│ {re_patterns}    │
  │ Discussion  │  {di_b}│  {di_a}│ {di_patterns}    │
  │ Conclusion  │  {co_b}│  {co_a}│ {co_patterns}    │
  └────────────────────────────────────────────────┘

  {target_score_note}  # "목표 점수 {target}% 달성!" if target reached, else ""

questions:
  - question: "Pass 1 완료. 점수: {original}% → {new}% (-{delta}%p). 다음 단계를 선택하세요."
    header: "Pass 1"
    options:
      - label: "전체 섹션 계속 (Continue all sections)"
        description: "구조 변환 (S7-S10, burstiness 개선) 진행"
      - label: "섹션 선택하여 진행 (Select sections)"
        description: "체크박스로 섹션 선택 — 선택된 섹션만 다음 패스에서 변환"
      - label: "섹션별 강도 조정 (Per-section intensity)"
        description: "섹션별 conservative/balanced/aggressive 개별 설정"
      - label: "특정 문장 보존 마킹 (Preserve specific sentences)"
        description: "변경된 상위 5개 문장의 before/after 표시, 보존할 문장 선택"
      - label: "현재 결과 채택 (Accept current result)"
        description: "Pass 1 결과를 최종 결과로 채택"
      - label: "상세 diff 보기 (View detailed diff)"
        description: "변경 사항을 자세히 확인한 후 결정"

after_checkpoint:
  - diverga_mark_checkpoint("CP_PASS1_REVIEW", "{decision}", "Score: {original}→{new}")
  - diverga_project_update({ "humanization": { "pass1_score": {new}, "current_pass": 1 }})

Mode routing after CP_PASS1_REVIEW:

  • Conservative mode → User chose conservative at CP_HUMANIZATION_REVIEW → default to "Accept current result" option
  • Balanced/Aggressive → default to "Continue to Pass 2"
  • If user selects "Accept" → skip to STAGE 6 (Export)
  • If user selects "Revert" → END pipeline, restore original

STAGE 3: Pass 2 — Structure (Layer 3)

Action: Spawn diverga:g6 with Layer 3 constraints.

agent: diverga:g6
model: opus
input:
  file: "{pass1_output}"          # Build on Pass 1 result
  g5_report: "{pass1_rescan}"     # Use delta scan from Pass 1
  layers: [3]                      # Structure transformation ONLY
  targets:
    - "S7: Enumeration dissolution"
    - "S8: Paragraph opener variation"
    - "S9: Discussion architecture diversification"
    - "S10: Hypothesis narrative restructuring"
    - "Burstiness CV enhancement (target > 0.45)"
    - "Sentence length range expansion (target > 25 words)"
  preserve: ["citations", "statistics", "methodology", "technical_terms"]
  section_escalation: true
  sections: "{selected_sections}"  # Section-selective: only transform specified sections

output:
  humanized_text: "Structure-transformed manuscript"
  structural_changes: "S7-S10 changes made"
  burstiness_improvement: "CV before/after"

Then G5 Rescan + F5 Full Verify (parallel):

v3.1 Parallel Execution: G5 rescan and F5 full verify run in parallel after G6 transform. Both are read-only operations on the same G6 output.

# G5 rescan (runs in parallel with F5)
agent: diverga:g5
model: sonnet
input: { file: "{pass2_output}", mode: "delta_scan", reference: "{original_file}" }

# F5 full verify (runs in parallel with G5)
agent: diverga:f5
model: haiku
input:
  original: "{original_file}"
  humanized: "{pass2_output}"
  mode: "full"                  # All 7 verification domains

CHECKPOINT: CP_PASS2_REVIEW (Rich Checkpoint v2.0)

checkpoint: CP_PASS2_REVIEW
tool: AskUserQuestion
display: |
  Pass 2 완료. 점수 진행: {original}% → {pass1}% → {pass2}%. Burstiness CV: {cv}.

  ┌─── 섹션별 결과 ────────────────────────────────┐
  │ Section     │ Before │ After │ Remaining Patterns│
  │ Abstract    │  {ab_b}│  {ab_a}│ {ab_patterns}    │
  │ Introduction│  {in_b}│  {in_a}│ {in_patterns}    │
  │ Methods     │  {me_b}│  {me_a}│ {me_patterns}    │
  │ Results     │  {re_b}│  {re_a}│ {re_patterns}    │
  │ Discussion  │  {di_b}│  {di_a}│ {di_patterns}    │
  │ Conclusion  │  {co_b}│  {co_a}│ {co_patterns}    │
  └────────────────────────────────────────────────┘

  {target_score_note}  # "목표 점수 {target}% 달성! 채택을 권장합니다." if target reached

questions:
  - question: "Pass 2 완료. 점수 진행: {original}% → {pass1}% → {pass2}%. 다음 단계를 선택하세요."
    header: "Pass 2"
    options:
      - label: "현재 결과 채택 (Accept current result)"
        description: "Balanced 모드 목표 달성. 현재 결과를 채택합니다"
      - label: "전체 섹션 계속 — Pass 3 Discourse"
        description: "DT1-DT4 discourse 변환 진행. 최대 자연스러움"
      - label: "섹션 선택하여 진행 (Select sections for Pass 3)"
        description: "특정 섹션만 discourse 변환 적용"
      - label: "섹션별 강도 조정 (Per-section intensity)"
        description: "섹션별 conservative/balanced/aggressive 개별 설정"
      - label: "상세 diff 보기 (View detailed diff)"
        description: "Pass 1→2 변경 사항 확인"
      - label: "Pass 1 결과로 되돌림 (Revert to Pass 1)"
        description: "Pass 2 변경을 되돌리고 Pass 1 결과 사용"

after_checkpoint:
  - diverga_mark_checkpoint("CP_PASS2_REVIEW", "{decision}", "Score: {original}→{pass1}→{pass2}")
  - diverga_project_update({ "humanization": { "pass2_score": {pass2}, "current_pass": 2 }})

Mode routing:

  • Balanced mode → default to "Accept current result"
  • Aggressive mode → default to "Continue to Pass 3"
  • Diminishing returns check: if Pass 2 reduced < 5%p → recommend accepting

STAGE 4: Pass 3 — Discourse (Layer 4, DT1-DT4)

Action: Spawn diverga:g6 with Layer 4 discourse strategies.

agent: diverga:g6
model: opus
input:
  file: "{pass2_output}"
  g5_report: "{pass2_rescan}"
  layers: [4]                      # Discourse transformation ONLY
  discourse_strategies:
    - "DT1: Rhetorical move reordering"
    - "DT2: Digression injection (authentic tangents)"
    - "DT3: Argument structure diversification"
    - "DT4: Connective reduction and variation"
  perturbation_naturalization: true  # Make edit patterns look human (~74% sub, ~18% del, ~8% ins)
  section_conditional_weights:
    discussion: 1.1
    abstract: 1.05
    methods: 0.8
  preserve: ["citations", "statistics", "methodology", "technical_terms", "core_arguments"]
  sections: "{selected_sections}"  # Section-selective: only transform specified sections

mcp_integration:
  try:
    - humanizer_discourse(text="{pass2_text}")  # Measure discourse metrics before/after
  fallback:
    - "G6 agent applies DT1-DT4 based on internal rules"

output:
  humanized_text: "Discourse-transformed manuscript"
  discourse_changes: "DT1-DT4 changes made"
  connective_diversity_improvement: "before/after"

Then G5 Rescan + F5 Full Verify (parallel) — 8 domains including Domain 8 Discourse Naturalness.

v3.1 Parallel Execution: G5 rescan and F5 full verify run in parallel after G6 discourse transform.

CHECKPOINT: CP_PASS3_REVIEW (Rich Checkpoint v2.0)

checkpoint: CP_PASS3_REVIEW
tool: AskUserQuestion
display: |
  Pass 3 완료. 전체 진행: {original}% → {pass1}% → {pass2}% → {pass3}%.

  ┌─── 섹션별 결과 ────────────────────────────────┐
  │ Section     │ Before │ After │ Remaining Patterns│
  │ Abstract    │  {ab_b}│  {ab_a}│ {ab_patterns}    │
  │ Introduction│  {in_b}│  {in_a}│ {in_patterns}    │
  │ Methods     │  {me_b}│  {me_a}│ {me_patterns}    │
  │ Results     │  {re_b}│  {re_a}│ {re_patterns}    │
  │ Discussion  │  {di_b}│  {di_a}│ {di_patterns}    │
  │ Conclusion  │  {co_b}│  {co_a}│ {co_patterns}    │
  └────────────────────────────────────────────────┘

  {target_score_note}  # "목표 점수 {target}% 달성! 채택을 권장합니다." if target reached

questions:
  - question: "Pass 3 완료. 전체 진행: {original}% → {pass1}% → {pass2}% → {pass3}%. 다음 단계를 선택하세요."
    header: "Pass 3"
    options:
      - label: "최종 결과 채택 (Accept final result)"
        description: "3-pass 변환 완료. 결과를 파일에 저장합니다"
      - label: "특정 문장 보존 마킹 (Preserve specific sentences)"
        description: "변경된 상위 5개 문장의 before/after 표시, 보존할 문장 선택"
      - label: "추가 polish pass (One more polish pass)"
        description: "미세 패턴 추가 수정 (5-10%p 추가 감소 예상)"
      - label: "전체 diff 보기 (View full diff: original → final)"
        description: "원본 대비 전체 변경 사항 확인"
      - label: "섹션별 강도 조정 (Per-section intensity)"
        description: "특정 섹션만 추가 변환 또는 되돌림"
      - label: "Pass 2 결과로 되돌림 (Revert to Pass 2)"
        description: "Discourse 변환을 되돌리고 Pass 2 결과 사용"

after_checkpoint:
  - diverga_mark_checkpoint("CP_PASS3_REVIEW", "{decision}", "Score: {original}→{pass1}→{pass2}→{pass3}")
  - diverga_project_update({ "humanization": { "pass3_score": {pass3}, "current_pass": 3 }})

STAGE 5 (Optional): Pass 4 — Polish

Only if user selected "One more polish pass" at CP_PASS3_REVIEW, OR if target score not met.

agent: diverga:g6
model: opus
input:
  file: "{pass3_output}"
  g5_report: "{pass3_rescan}"
  mode: "polish"
  targets:
    - "Remaining hedging clusters"
    - "Paragraph opener diversity gaps"
    - "Sentence length outliers"
    - "Micro-pattern residuals"
  max_changes: 20               # Strict limit to prevent over-editing

# G5 final audit + F5 full verify
# Then CP_FINAL_REVIEW checkpoint

STAGE 6: Export

actions:
  - Write humanized text to target file (or new file if user prefers)
  - Generate transformation report:
      - Score progression: {original} → {pass1} → {pass2} → {pass3} → {final}
      - Patterns fixed by category
      - Quantitative metrics before/after (burstiness CV, MTLD, hapax rate)
      - F5 verification summary
      - Change count by pass
  - diverga_project_update({ "humanization": { "status": "completed", "final_score": {score} }})
  - diverga_mark_checkpoint("CP_HUMANIZATION_VERIFY", "completed", "Final score: {score}")

Mode Routing Summary

ModePassesExpected ReductionBest For
ConservativePass 1 only (L1-2)15-25%pJournal submissions, strict formatting
BalancedPass 1 + 2 (L1-3)30-45%pMost academic writing
Balanced (Fast)Single merged pass (L1-2-3)30-45%pSame as Balanced, saves 1 G5 + 1 F5 + 1 checkpoint
AggressivePass 1 + 2 + 3 (L1-4)50-70%pMaximum naturalness

Diminishing Returns Rule

diminishing_returns:
  threshold: 5  # percentage points
  rule: "If a pass reduces score by less than 5%p, recommend stopping"
  action: "Present recommendation at next checkpoint, user decides"

Section-Aware Mode Escalation

Applied automatically within each pass based on G5 section-level scores:

section_escalation:
  abstract:     "conservative → balanced (if section_score > 50)"
  introduction: "balanced (no escalation)"
  methods:      "conservative (never escalate — preserve precision)"
  results:      "conservative → balanced (if section_score > 60)"
  discussion:   "balanced → aggressive (if section_score > 50)"
  conclusion:   "balanced → aggressive (if section_score > 50)"

MCP Integration

Diverga MCP (checkpoint + state)

ToolWhenPurpose
diverga_check_prerequisites("g6")Before each G6 callVerify CP_HUMANIZATION_REVIEW passed
diverga_mark_checkpoint(id, decision, rationale)After each AskUserQuestionRecord checkpoint decision
diverga_project_update(updates)After each passTrack pipeline state (scores, current pass)
diverga_checkpoint_status()On resume/errorCheck pipeline progress

Humanizer MCP (metrics)

ToolWhenPurpose
humanizer_metrics(text)G5 scanBurstiness CV, MTLD, sentence range, opener diversity
humanizer_discourse(text)G5 scan (v3.0)Connective diversity, pronoun density, question ratio, surprisal

Fallback: If Humanizer MCP unavailable, G5 agent estimates metrics from text analysis. Pipeline continues with agent-estimated values. Log warning: "Humanizer MCP unavailable — using agent estimates."


Target Score Auto-Stop (v3.1)

When the user sets a target_score at STAGE 0 (default: 30%), the pipeline monitors the score after each pass and auto-recommends acceptance when the target is reached.

target_auto_stop:
  default_target: 30          # percentage
  behavior:
    at_each_checkpoint:
      - "Compare current score against target_score"
      - "If current_score <= target_score:"
      -   "Add '목표 점수 {target}% 달성! 채택을 권장합니다.' to checkpoint display"
      -   "Set default option to 'Accept current result'"
      -   "User can still override and continue to next pass"
      - "If current_score > target_score:"
      -   "Continue normally with standard default options"

  override:
    - "User can always override auto-stop recommendation"
    - "Selecting 'Continue' at any checkpoint proceeds regardless of target"
    - "Target score is advisory, not a hard gate"

Section-Selective Humanization (v3.1)

The pipeline supports transforming only specific sections while leaving others unchanged.

section_selective:
  parameter: "sections"
  type: "array of section names"
  default: null  # null = all sections (full manuscript)
  valid_values:
    - "abstract"
    - "introduction"
    - "methods"
    - "results"
    - "discussion"
    - "conclusion"

  behavior:
    setup:
      - "User specifies sections at STAGE 0 or at any Rich Checkpoint"
      - "Example: sections: ['discussion', 'conclusion']"

    during_g6_transform:
      - "G6 receives sections parameter"
      - "Only specified sections are transformed"
      - "Non-selected sections pass through unchanged (verbatim copy)"
      - "Change log only includes changes in selected sections"

    during_g5_rescan:
      - "G5 still scans ALL sections (for accurate composite score)"
      - "Section-level scores reported for all sections"
      - "Non-selected sections should show unchanged scores"

    at_checkpoints:
      - "Rich Checkpoint displays all sections with scores"
      - "Non-selected sections marked as '(unchanged)' in patterns column"
      - "User can modify section selection at any checkpoint"

  use_cases:
    - "Discussion has score 95% but Methods is clean at 25% → only humanize Discussion"
    - "Abstract needs aggressive treatment but Results should stay conservative"
    - "Re-run only on sections that still have remaining patterns after a pass"

Error Handling

Agent Failure

on_agent_failure:
  g5_failure: "Retry once. If still fails, present partial results to user."
  g6_failure: "Retry once. If still fails, ask user whether to continue with partial transformation."
  f5_failure: "Continue pipeline. F5 is verification, not blocking."

Revert Protocol

At any checkpoint, user can select "Revert". Action:

  1. Discard current pass output
  2. Use previous pass output (or original if reverting Pass 1)
  3. Present previous checkpoint again for re-decision

Resume Protocol

If session interrupted mid-pipeline:

  1. Check diverga_checkpoint_status() for last completed checkpoint
  2. Check diverga_project_update() for pipeline state
  3. Present resume options to user via AskUserQuestion

Agent Spawning Rules

ALWAYS use Task tool with diverga agent types:

# G5 Audit
Task(subagent_type="diverga:g5", model="sonnet", prompt="...")

# G6 Transform
Task(subagent_type="diverga:g6", model="opus", prompt="...")

# F5 Verify
Task(subagent_type="diverga:f5", model="haiku", prompt="...")

NEVER run G6 in parallel with G5 or F5 within a single pass. G5 rescan and F5 verify MUST run in parallel after each G6 transform (both are read-only on the same output). This saves latency on every pass without any risk to data integrity.


Relationship to Existing Skills

Existing SkillRelationshipConflict?
/diverga:g5This skill CALLS g5 as a sub-stepNo — g5 is a component
/diverga:g6This skill CALLS g6 as a sub-stepNo — g6 is a component
/diverga:f5This skill CALLS f5 as a sub-stepNo — f5 is a component
/diverga:orchestratorIndependent workflowNo — different trigger patterns

When to use which:

  • /diverga:humanize → Full multi-pass pipeline (recommended for manuscripts)
  • /diverga:g6 → Single-agent one-shot transformation (quick fixes, small sections)
  • /diverga:g5 → Standalone audit without transformation
Stats
Stars1
Forks1
Last CommitMar 19, 2026