Install Manage Project
Pick your agent. Every command is ready to paste.
npx skills add Aperivue/medsci-skills --skill manage-projectThe open skills CLI detects your agents (Claude Code, Cursor, Codex and 70+ more) and installs to the right folder. Add -g to install globally.
01
Install it
Run the command above, or upload the folder in Claude.
02
Ask naturally
Describe the task. Your agent loads manage-project when the request matches its description.
03
Name it if needed
If it does not trigger, say “use the manage-project skill”. In Codex, type $manage-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, 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
Tips for Manage Project
- • Start a fresh session after installing so your agent picks up the new skill.
- • This skill ships scripts. Read them before the first run, and run it in a project without secrets first.
- • It bundles reference files. The agent reads them only when needed, so they cost no context until then.
- • It is part of a pack with 30 skills. Install only the ones you need with --skill to keep triggers precise.
- • If two skills overlap, mention the one you want by name.
Questions about Manage Project
What does the Manage Project skill do?
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).
How do I install Manage Project?
Run "npx skills add Aperivue/medsci-skills --skill manage-project" in your project. The skills CLI installs it for Claude Code, Cursor, Codex and 70+ other agents. In Claude on the web, upload the skill folder as a ZIP under Customize > Skills.
Does Manage Project work in Cursor and Codex?
Yes. Manage Project uses the open SKILL.md format, so it works in Claude Code, Claude, Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot and other agents that support agent skills.
Is Manage Project free?
Manage Project is open source on GitHub under the MIT license. It is free to install; check the license before commercial use.
Who made Manage Project?
Manage Project is published by Aperivue in the Aperivue/medsci-skills repository, together with 29 other skills.

