.claude/skills/ar-progress-monitor/SKILL.md
Background progress watcher — reads status.json and updates task list checklist in real-time
npx skillsauth add ShinyGua/AutoArtsResearch ar-progress-monitorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run in the background alongside the main pipeline. Periodically read status.json and update a task list checklist so the user sees real-time progress (visible via Ctrl+T). Exit when the pipeline completes.
This agent runs via Agent(run_in_background=true) — it must NOT block the main pipeline.
Workspace path: $ARGUMENTS[0]
ALL_STAGES = [
"bootstrap",
"scoping",
"corpus_building",
"framing",
"evidence_building",
"argument_building",
"drafting",
"review",
"export"
]
STAGE_LABELS = {
"bootstrap": { subject: "Stage 0: Project bootstrap", activeForm: "Initialising project..." },
"scoping": { subject: "Stage 1: Topic scoping & research design", activeForm: "Scoping research topic..." },
"corpus_building": { subject: "Stage 2: Corpus retrieval & source audit", activeForm: "Building source corpus..." },
"framing": { subject: "Stage 3: Literature synthesis & method", activeForm: "Framing theory & method..." },
"evidence_building": { subject: "Stage 4: Source reading & evidence units", activeForm: "Extracting evidence..." },
"argument_building": { subject: "Stage 5: Claim construction & argument tree", activeForm: "Building argument tree..." },
"drafting": { subject: "Stage 6: Paper drafting from claims", activeForm: "Writing paper draft..." },
"review": { subject: "Stage 7: Review, verification & revision", activeForm: "Reviewing and revising paper..." },
"export": { subject: "Stage 8: Export to PDF & Word", activeForm: "Exporting final paper..." }
}
On first run, create 9 tasks using TaskCreate — one for each pipeline stage:
For each stage in ALL_STAGES:
TaskCreate(
subject: STAGE_LABELS[stage].subject,
description: "Pipeline stage for AutoArtsResearch",
activeForm: STAGE_LABELS[stage].activeForm
)
Store the returned task IDs so you can update them later. The mapping should be:
After creating all tasks, execute this loop continuously:
LOOP:
1. Read {workspace}/status.json
2. Extract stages_completed list and current state
3. Determine stage statuses:
- For each stage in ALL_STAGES:
- If stage is in stages_completed → "completed"
- If stage is the NEXT uncompleted stage → "in_progress"
- Otherwise → "pending"
4. For each stage, call TaskUpdate with the task ID and new status:
- TaskUpdate(taskId: task_ids[stage], status: determined_status)
- Only update if the status has changed from the previous poll
5. Check: if state == "READY_FOR_EXPORT" → mark export as completed, then EXIT loop
6. Sleep 5 seconds (use Bash: sleep 5)
7. Go to 1
Use the state field from status.json to determine which stage is currently active:
| State | Active Stage | |-------|-------------| | NEW_PROJECT, WAITING_FOR_TOPIC, TOPIC_RECEIVED | bootstrap | | SCOPING_IN_PROGRESS, SCOPING_APPROVED | scoping | | CORPUS_BUILDING, CORPUS_APPROVED | corpus_building | | FRAMING_IN_PROGRESS, METHOD_APPROVED | framing | | EVIDENCE_BUILDING | evidence_building | | ARGUMENT_BUILDING, ARGUMENT_APPROVED | argument_building | | DRAFTING | drafting | | REVIEWING, REVISING | review | | FINAL_APPROVAL, READY_FOR_EXPORT | export |
development
Theory agent — proposes theoretical frameworks, ranks by fit, and identifies rival theories
testing
Source auditor — classifies, scores reliability, verifies metadata, and recommends inclusion/exclusion for corpus sources
research
Topic scoping — refines topic seed into research question, scope boundaries, and feasibility assessment
development
Corpus retrieval — searches academic, policy, media, and report sources to build a curated corpus