Skill v1.0.2
Automated scan100/10013 files
version: "1.0.2" name: manage-project description: Use when managing a manuscript project over time. Scaffolds the project structure, tracks writing progress across phases, maintains project memory files, and generates submission checklists and backwards timelines (commands init, status, sync-memory, checklist, timeline). metadata: triggers: "manage project, project init, project status, submission checklist, project scaffold, create project, new paper project"
Manage-Project Skill -- Research Project Management
Commands
/manage-project init {name} --type {type} --journal {journal} [--ssot] [--zotero-collection NAME]
Parameters:
{name}-- Project identifier (e.g.,nnunet-skull-fracture,rfa-meta-analysis)--type-- Paper type:original | meta | case | animal | technical | ai_validation | letter--journal-- Target journal:RYAI | AJR | Radiology | European_Radiology | KJR | INSI | AJNR | generic--ssot-- EmitSSOT.yaml(schema v1) fromtemplates/SSOT.yaml.templateinstead of legacyproject.yaml. Required for Phase 1C auto-enforce (the PostToolUse verify-refs hook blocks instead of warns). New projects should pass--ssot; legacy in-flight projects stay onproject.yamluntil/manage-project migrate-ssotis run.--zotero-collection NAME-- Optional. Create a Zotero collection via pyzotero and populatelibrary_id+collection_keyin the contract. RequiresZOTERO_API_KEY+ZOTERO_LIBRARY_ID(optionallyZOTERO_LIBRARY_TYPE, defaultuser). With pyzotero or the credentials missing, the contract is scaffolded withlibrary_id: null/collection_key: nulland a WARN is printed.
SSOT template substitutions: {{PROJECT_ID}} → {name}; {{PROJECT_TYPE}} → the SSOT project_type enum mapped from --type (original → original_research, meta → meta_analysis, case → case_report, ai_validation → ai_validation, else other). Without --zotero-collection, library_id / collection_key stay null until the owner links an existing collection.
Run scripts/init_project.py:
python3 "${CLAUDE_SKILL_DIR}/scripts/init_project.py" \--name {name} --type {type} --journal {journal} [--ssot] \--project-root {target_dir}
It writes the contract file (SSOT.yaml with --ssot, else legacy project.yaml), the directory scaffold, the minimal stubs scripts/validate_project_contract.py requires (manuscript/index.qmd, artifact_manifest.json, qc/status.json), the memory-file stubs, and project_state.json. `qc/migration_complete` is NOT written by init — that marker belongs to the migrate pipeline.
Do not hand-build the scaffold. The script is the source of truth for the tree and for project_state.json; a hand-built one drifts from what the contract validator expects. Read ${CLAUDE_SKILL_DIR}/references/init_scaffold.md only when you need to know where a scaffolded file lands or what a project_state.json field means.
After the script, copy the matching reporting-guideline checklist from ${CLAUDE_SKILL_DIR}/../check-reporting/references/checklists/ into references/checklist_{GUIDELINE}.md.
/manage-project migrate-ssot [--no-mark-complete]
Converts a legacy project.yaml project into SSOT.yaml form and, by default, touches qc/migration_complete so Phase 1C auto mode switches from warn to enforce.
python3 "${CLAUDE_SKILL_DIR}/scripts/migrate_project_to_ssot.py" \--project-root . --write --mark-complete
--no-mark-complete: run with--writeonly. Use it when the project still has open QC failures — enforcement is deferred until the migration is validated.- The migrate script refuses to touch
qc/migration_completeunless the generated SSOT.yaml passesvalidate_project_contract.pyANDcontract_mode=ssot. Do nottouch qc/migration_completemanually.
Re-run after resolving failures; the script is idempotent.
/manage-project status
Report current progress: read project_state.json, scan the existing files, and check whether the project memory files are present and aligned. Take word-count limits from the target journal's profile, ${CLAUDE_SKILL_DIR}/../write-paper/references/journal_profiles/{JOURNAL}.md, not from memory. Lay the report out as in ${CLAUDE_SKILL_DIR}/references/status_output_format.md.
/manage-project sync-memory
Audit and refresh the project memory files:
- check for
PROJECT.md,STATUS.md,CLAIMS.md,DATA_DICTIONARY.md,ANALYSIS_PLAN.md,REVIEW_LOG.md - identify stale or contradictory project metadata
- propose the minimum files to create or update; create them from
${CLAUDE_SKILL_DIR}/references/scaffold_templates.md - align
project_state.jsonwith the current manuscript phase
/manage-project checklist
Read the pre-submission checklist from ${CLAUDE_SKILL_DIR}/references/pre_submission_checklist.md and write it to submission/pre_submission_checklist.md. Then recommend /self-review (manuscript quality gate), /verify-refs (citation verification) and AI pattern removal (/write-paper Phase 7).
/manage-project timeline {submission_date}
Generate a backwards timeline from the submission date, in the layout of ${CLAUDE_SKILL_DIR}/references/timeline_example.md.
Project State Conventions
Phase numbers:
- 0 = Init (scaffold created)
- 1 = Outline approved
- 2 = Table/Figure shells approved
- 3 = Methods (critic >= 85)
- 4 = Results (critic >= 85)
- 5 = Discussion (critic >= 85)
- 6 = Introduction + Abstract (critic >= 85)
- 7 = Polish complete (AI pattern removal + checklist + self-review >= 80)
Phase status values: pending | in_progress | complete | blocked