关于 manage-project
manage-project 是用于组织和跟踪研究项目(包括论文工作)的技能。它提供命令来初始化项目文件、将项目契约迁移到 SSOT、检查状态和记忆文件,并准备投稿清单与时间线。
主要功能
- 01初始化研究项目目录结构
- 02将项目契约迁移为 SSOT.yaml
- 03报告项目状态
- 04审查并更新项目记忆文件
- 05创建投稿清单和时间线
适用场景
- 01搭建新的论文项目
- 02将旧项目的 project.yaml 转为 SSOT.yaml
- 03检查项目进度和元数据
- 04根据投稿日期倒排任务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aperivue/ medsci-skills --skill manage-project安装后在 Claude Code 中输入/manage-project确认已加载。
包含的文件
除 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.sh详细介绍
Manage-Project Skill -- 研究项目管理
命令
/manage-project init {name} --type {type} --journal {journal} [--ssot] [--zotero-collection NAME]
参数:
{name}-- 项目标识符(例如,nnunet-skull-fracture、rfa-meta-analysis)--type-- 论文类型:original | meta | case | animal | technical | ai_validation | letter--journal-- 目标期刊:RYAI | AJR | Radiology | European_Radiology | KJR | INSI | AJNR | generic--ssot-- 从templates/SSOT.yaml.template生成SSOT.yaml(schema v1),而非旧版project.yaml。这是启用 Phase 1C 自动强制(PostToolUse verify-refs hook 从警告改为阻止)的必要条件,但仅靠它还不够;自动强制还需要qc/migration_complete,而 init 不会写入该标记。init 后,运行migrate_project_to_ssot.py --project-root {target_dir} --mark-complete,以验证 SSOT.yaml 并写入标记。新项目应传入--ssot;正在进行的旧项目应继续使用project.yaml,直到运行/manage-project migrate-ssot。--zotero-collection NAME-- 可选。通过 pyzotero 创建 Zotero 集合,并在契约中填入library_id和collection_key。需要ZOTERO_API_KEY和ZOTERO_LIBRARY_ID(可选ZOTERO_LIBRARY_TYPE,默认为user)。如果缺少 pyzotero 或凭据,仍会生成契约框架,其中library_id: null/collection_key: null,并打印 WARN。
SSOT 模板替换: {{PROJECT_ID}} → {name};{{PROJECT_TYPE}} → 根据 --type 映射得到的 SSOT
project_type 枚举值(original → original_research、meta → meta_analysis、
case → case_report、ai_validation → ai_validation,其他值 → other)。如果未传入
--zotero-collection,library_id / collection_key 将保持为 null,直到项目负责人关联现有集合。
运行 scripts/init_project.py:
python3 "${CLAUDE_SKILL_DIR}/scripts/init_project.py" \
--name {name} --type {type} --journal {journal} [--ssot] \
--project-root {target_dir}
该脚本会写入契约文件(传入 --ssot 时为 SSOT.yaml,否则为旧版 project.yaml)、目录框架、scripts/validate_project_contract.py 所需的最小占位文件(manuscript/index.qmd、artifact_manifest.json、qc/status.json)、记忆文件占位文件,以及 project_state.json。init 不会写入 qc/migration_complete——该标记由迁移脚本负责写入。对于使用 --ssot 的项目,运行迁移脚本并传入 --mark-complete(无需 project.yaml):它会验证现有的 SSOT.yaml,并且仅在验证通过时写入标记。在此之前,引用 hook 会保持警告模式。
不要手动搭建目录框架。 该脚本是目录树和 project_state.json 的事实来源;手动搭建的目录结构会与契约验证器的预期不符。只有在需要了解框架中的文件会放在哪里,或 project_state.json 字段含义时,才阅读 ${CLAUDE_SKILL_DIR}/references/init_scaffold.md。
运行脚本后,将匹配的报告规范检查清单从
${CLAUDE_SKILL_DIR}/../check-reporting/references/checklists/ 复制到 references/checklist_{GUIDELINE}.md。
/manage-project migrate-ssot [--no-mark-complete]
将使用旧版 project.yaml 的项目转换为 SSOT.yaml 格式;默认情况下会更新 qc/migration_complete,使 Phase 1C auto 模式从 warn 切换为 enforce。
对于原生使用 SSOT 的项目(存在 SSOT.yaml,不存在 project.yaml,例如 init --ssot),无需转换:--mark-complete 会验证现有的 SSOT.yaml,并在验证通过时写入标记;
不会重写 SSOT.yaml。
python3 "${CLAUDE_SKILL_DIR}/scripts/migrate_project_to_ssot.py" \
--project-root . --write --mark-complete
--no-mark-complete:仅使用--write运行。如果项目仍存在未解决的 QC 失败项,请使用此选项——直到迁移验证通过前,强制执行会延后。- 只有在生成的 SSOT.yaml 通过
validate_project_contract.py验证且contract_mode=ssot时,迁移脚本才会更新qc/migration_complete。请勿手动执行touch qc/migration_complete。
解决失败项后重新运行;该脚本具有幂等性。
/manage-project status
报告当前进度:读取 project_state.json,扫描现有文件,并检查项目记忆文件是否存在且内容一致。从目标期刊的档案 ${CLAUDE_SKILL_DIR}/../write-paper/references/journal_profiles/{JOURNAL}.md 获取字数限制,而非从记忆文件获取。按照 ${CLAUDE_SKILL_DIR}/references/status_output_format.md 的格式编排报告。
/manage-project sync-memory
审查并更新项目记忆文件:
- 检查
PROJECT.md、STATUS.md、CLAIMS.md、DATA_DICTIONARY.md、ANALYSIS_PLAN.md、REVIEW_LOG.md是否存在 - 找出过时或相互矛盾的项目元数据
- 建议需要创建或更新的最少文件;根据
${CLAUDE_SKILL_DIR}/references/scaffold_templates.md创建这些文件 - 根据当前稿件阶段,使
project_state.json保持一致
/manage-project checklist
读取 ${CLAUDE_SKILL_DIR}/references/pre_submission_checklist.md 中的投稿前检查清单,并将其写入 submission/pre_submission_checklist.md。然后建议运行 /self-review(稿件质量门禁)、/verify-refs(引文核查)和 AI 模式移除(/write-paper Phase 7)。
/manage-project timeline {submission_date}
从投稿日期倒推生成时间线,格式参照 ${CLAUDE_SKILL_DIR}/references/timeline_example.md。
项目状态约定
阶段编号:
- 0 = 初始化(已创建脚手架)
- 1 = 大纲已批准
- 2 = 表格/图片框架已批准
- 3 = 方法(critic >= 85)
- 4 = 结果(critic >= 85)
- 5 = 讨论(critic >= 85)
- 6 = 引言 + 摘要(critic >= 85)
- 7 = 润色完成(已移除 AI 模式 + 已完成检查清单 + 自我审查 >= 80)
阶段状态值: pending | in_progress | complete | blocked