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 スキル -- 研究プロジェクトの管理

コマンド

/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からスキーマ v1 のSSOT.yamlを出力します。従来のproject.yamlの代わりに使用します。Phase 1C の自動強制(PostToolUse verify-refs フックが警告ではなくブロックする機能)に必要ですが、これだけでは不十分です。強制にはqc/migration_completeも必要ですが、initでは書き込まれません。initの後、migrate_project_to_ssot.py --project-root {target_dir} --mark-completeを実行して、SSOT.yamlを検証し、マーカーを書き込んでください。新規プロジェクトでは--ssotを指定してください。進行中のレガシープロジェクトは、/manage-project migrate-ssotを実行するまでproject.yamlを使用します。
  • --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が書き込まれます。qc/migration_completeはinitでは書き込まれません。このマーカーはmigrateスクリプトが担当します。--ssotプロジェクトでは、--mark-completeを指定して実行してください(project.yamlは不要です)。既存のSSOT.yamlを検証し、PASSの場合にのみマーカーを書き込みます。それまでは参照フックは警告モードのままです。

ひな形を手作業で作成しないでください。 スクリプトがディレクトリ構成と 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を検証し、PASSの場合にマーカーを書き込みます。 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の場合を除き、migrateスクリプトはqc/migration_completeに書き込みません。qc/migration_completeを手動でtouchしないでください。

エラーを解決した後に再実行してください。スクリプトは冪等です。

/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 の形式で作成します。


Project State Conventions

フェーズ番号:

  • 0 = 初期化(スキャフォールド作成済み)
  • 1 = アウトライン承認済み
  • 2 = 表/図のひな形承認済み
  • 3 = 方法(批評スコア >= 85)
  • 4 = 結果(批評スコア >= 85)
  • 5 = 考察(批評スコア >= 85)
  • 6 = 序論+要旨(批評スコア >= 85)
  • 7 = 推敲完了(AI パターン除去+チェックリスト+セルフレビュー >= 80)

フェーズのステータス値: pending | in_progress | complete | blocked

コメント