mcpField
M
manage-project

manage-project

github.com/aperivue生产力35386 次安装1 天前更新
代码仓库

关于 manage-project

manage-project 是用于组织和跟踪研究项目(包括论文工作)的技能。它提供命令来初始化项目文件、将项目契约迁移到 SSOT、检查状态和记忆文件,并准备投稿清单与时间线。

主要功能

  1. 01初始化研究项目目录结构
  2. 02将项目契约迁移为 SSOT.yaml
  3. 03报告项目状态
  4. 04审查并更新项目记忆文件
  5. 05创建投稿清单和时间线

适用场景

  1. 01搭建新的论文项目
  2. 02将旧项目的 project.yaml 转为 SSOT.yaml
  3. 03检查项目进度和元数据
  4. 04根据投稿日期倒排任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aperivue/medsci-skills --skill manage-project

安装后在 Claude Code 中输入/manage-project确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skill.yml
references/
init_scaffold.md
pre_submission_checklist.md
project_state_template.json
scaffold_templates.md
status_output_format.md
timeline_example.md
scripts/
init_project.py
migrate_project_to_ssot.py
validate_project_contract.py
templates/
SSOT.yaml.template
tests/
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

评论

支持 Markdown