| name | scholar-anti-ai-writing |
| disable-model-invocation | true |
| description | Remove AI writing patterns from academic prose. Detects and fixes inflated symbolism, promotional language, superficial analyses, vague attributions, AI vocabulary, and formulaic structures. Supports English and Chinese. Triggers on "remove AI patterns", "humanize text", "anti-AI polish", "去除AI写作痕迹", "人性化处理". |
| allowed-tools | ["Bash","Edit","Glob","Grep","Read","Write","request_user_input","update_plan"] |
| session-mode | none |
| version | 0.5.55 |
Plan tracking: codex 无 TaskCreate/TaskUpdate/TodoWrite 任务板。进度清单用 update_plan({ explanation?, plan: [{ step, status }] }) 维护(整体提交步骤数组,status: pending | in_progress | completed),权威状态始终在 session 工件中;依赖/认领(addBlockedBy/owner)是工件字段,不是工具参数。
Scholar Anti-AI Writing
Detect and eliminate AI writing patterns from academic prose. Based on Wikipedia's "Signs of AI writing" guide. Supports both English and Chinese text.
Core insight: LLMs predict the most statistically likely outcome — creating detectable patterns. This skill identifies and rewrites those patterns while preserving meaning and adding authentic voice.
Pre-load (before execution)
- Codebase docs: If
.workflow/codebase/ARCHITECTURE.md exists, read for project context
- Specs:
maestro load --type spec --category coding — load coding conventions
- Wiki knowledge:
maestro search "academic writing research paper" --json — top 5 entries as prior context
- All optional — proceed without if unavailable
Architecture Overview
User: "Remove AI patterns from my paper"
|
v
┌──────────────────────────────────────────────────────────────┐
│ SKILL.md (Orchestrator) │
│ Collect preferences → Dispatch phases → Track progress │
└──────────┬───────────────────────────────────────────────────┘
|
┌───────┼───────────┬──────────────┐
v v v v
┌──────┐┌──────────┐┌──────────────┐
│ P1 ││ P2 ││ P3 │
│Detect││ Rewrite ││ Validate │
│ & ││ & Polish ││ & Score │
│Score ││ ││ │
└──┬───┘└────┬─────┘└──────┬───────┘
│ │ │
v v v
pattern polished final score
report prose + diff report
Key Design Principles
- Pattern detection + soul injection: Removing AI patterns is only half the job — add authentic voice.
- Preserve meaning: Core content and technical claims must remain intact.
- Language-aware: English and Chinese have different AI pattern signatures.
- Scoring-driven: Quantitative 5-dimension scoring (50-point scale) guides revision.
- Academic tone: Maintain scholarly register — humanize without becoming informal.
Interactive Preference Collection
Before dispatching to any phase, collect these preferences:
Questions to ask the user:
1. Input Source
"What text should I process? (file path, directory, or paste text)"
→ inputSource
2. Language
Options: English | Chinese | Bilingual (auto-detect per section)
→ language
3. Writing Context
Options: Academic Paper | Technical Report | Blog/Article | General Prose
→ writingContext
4. Aggressiveness
Options: Conservative (minimal changes) | Balanced (Recommended) | Aggressive (heavy rewrite)
→ aggressiveness
Store responses as antiAiPreferences context for all phases.
Auto Mode Defaults
When workflowPreferences.autoYes === true:
- Process all .tex files in cwd
- Auto-detect language
- Academic Paper context, Balanced aggressiveness
- Skip confirmation prompts
Execution Flow
COMPACT DIRECTIVE: Context compression MUST check update_plan phase status.
The phase currently marked in_progress is the active execution phase — preserve its FULL content.
Only compress phases marked completed or pending.
update_plan Setup
Anti-AI Writing:
- [ ] Phase 1: Detect & Score — scan for AI patterns, generate initial score
- [ ] Phase 2: Rewrite & Polish — rewrite flagged sections, add voice
- [ ] Phase 3: Validate & Score — re-score, verify quality threshold
Phase Sequence
Phase 1: Detect & Score
└─ Ref: phases/01-detect-score.md
├─ Input: inputSource, language
└─ Output: patternReport (flagged passages + initial scores)
Phase 2: Rewrite & Polish
└─ Ref: phases/02-rewrite-polish.md
├─ Input: patternReport, writingContext, aggressiveness
└─ Output: polishedText (rewritten content)
Phase 3: Validate & Score
└─ Ref: phases/03-validate-score.md
├─ Input: polishedText, original text
└─ Output: finalReport (before/after scores, diff)
Phase Reference Documents (read on-demand when phase executes):
Compact Rules:
- update_plan
in_progress → preserve full content, do not compress
- update_plan
completed → may compress to summary
- sentinel fallback → phases marked with sentinel contain compact sentinel; if only sentinel remains, must immediately
Read() to recover
Core Rules
- Never lose meaning: Technical claims, data, and specific facts must survive rewriting.
- Score before and after: Every processed text gets a 5-dimension score (50-point scale).
- Flag, don't force: In Conservative mode, highlight issues but let the user decide.
- Academic register: For papers, maintain formal-but-natural tone. No slang or casual language.
- Minimum threshold: Target score >= 35/50 for academic papers, >= 40/50 for submission-ready.
Quick Scoring System (5 dimensions, 10 points each)
| Dimension | Question | Target |
|---|
| Directness | Direct statements or announcements? | >= 7 |
| Rhythm | Varied or metronomic? | >= 7 |
| Trust | Respects reader intelligence? | >= 7 |
| Authenticity | Sounds human? | >= 7 |
| Density | Anything cuttable? | >= 7 |
Data Flow
Phase 1 ──patternReport──→ Phase 2
Phase 2 ──polishedText──→ Phase 3
Phase 1 ──originalText──→ Phase 3 (for comparison)
Error Handling
| Error | Action |
|---|
| File not found | Ask user for correct path |
| Mixed languages in one file | Process each section in detected language |
| Score below threshold after rewrite | Flag for manual review, suggest specific areas |
| LaTeX commands broken during rewrite | Preserve LaTeX structure, only modify prose content |
| User disagrees with changes | Offer side-by-side diff, allow per-section accept/reject |
Related Skills
- scholar-writing: Phase 5 (Anti-AI Polish) uses this skill's patterns
- scholar-review: Uses scoring to assess writing quality