About manage-project
manage-project is a skill for structuring and tracking research projects, including manuscript work. It provides commands to initialize project files, migrate project contracts to SSOT, review status and memory, and prepare submission checklists and timelines.
Key features
- 01Initialize research project scaffolds
- 02Migrate project contracts to SSOT.yaml
- 03Report project status
- 04Audit and refresh project memory files
- 05Create submission checklists and timelines
Use cases
- 01Set up a new manuscript project
- 02Convert a legacy project.yaml to SSOT.yaml
- 03Review project progress and metadata
- 04Plan tasks back from a submission date
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ aperivue/ medsci-skills --skill manage-projectAfter installing, type/manage-projectin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
skill.ymlreferences/init_scaffold.mdpre_submission_checklist.mdproject_state_template.jsonscaffold_templates.mdstatus_output_format.mdtimeline_example.mdscripts/init_project.pymigrate_project_to_ssot.pyvalidate_project_contract.pytemplates/SSOT.yaml.templatetests/test_ssot_mark_complete.shDetails
From the project READMEManage-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, but not sufficient, for Phase 1C auto-enforce (the PostToolUse verify-refs hook blocks instead of warns): enforce also needsqc/migration_complete, which init does not write. After init, runmigrate_project_to_ssot.py --project-root {target_dir} --mark-completeto validate the SSOT.yaml and write the marker. 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 script. For an --ssot project, run it with --mark-complete (no project.yaml
needed): it validates the existing SSOT.yaml and writes the marker only on PASS. Until then the
reference hook stays in warn mode.
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.
On an SSOT-native project (SSOT.yaml present, no project.yaml — e.g. init --ssot) there is nothing
to convert: --mark-complete validates the existing SSOT.yaml and writes the marker on PASS;
SSOT.yaml is not rewritten.
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