Detalle del Skill
manage-project
Project management specialized to medical manuscript research.
Revisar antes de usar
La revisión automática comprueba relevancia, no seguridad ni respaldo. Lee las instrucciones de la fuente antes de usar este Skill.
SKILL.md
Este extracto es una copia guardada durante la revisión. La fuente externa contiene la versión completa y actual.
---
name: manage-project
description: "Research project management for medical manuscripts. Scaffold project structure, track writing progress across phases, maintain project memory files, generate submission checklists and backwards timelines. Commands: init, status, sync-memory, checklist, timeline."
triggers: manage project, project init, project status, submission checklist, project scaffold, create project, new paper project
tools: Read, Write, Edit, Bash, Grep, Glob
model: inherit
---
# Manage-Project Skill -- Research Project Management
## Purpose
Scaffold new research projects, track manuscript writing progress, maintain lightweight project memory, generate pre-submission checklists, and create backwards submission timelines. Integrates with all other writing skills and the project-manager agent.
---
## Commands
### `/manage-project init {name} --type {type} --journal {journal} [--ssot] [--zotero-collection NAME]`
Create a complete project scaffold for a new research paper.
**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` -- Emit `SSOT.yaml` (schema v1) from `templates/SSOT.yaml.template` instead of legacy `project.yaml`. Required for Phase 1C auto-enforce (the PostToolUse verify-refs hook blocks instead of warns). New projects should pass `--ssot`; legacy in-flight projects stay on `project.yaml` until `/manage-project migrate-ssot` is run.
- `--zotero-collection NAME` -- Optional. Create a Zotero collection via pyzotero and populate `library_id` + `collection_key` in the contract. Requires `ZOTERO_API_KEY` + `ZOTERO_LIBRARY_ID` (optionally `ZOTERO_LIBRARY_TYPE`, default `user`). **Graceful degrade:** with pyzotero missing or credentials absent, the contract is scaffolded with `library_id: null` / `collection_key: null` and 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.
**Implementation:** backed by `scripts/init_project.py`. Invoke it directly when running outside
the skill harness (from the `medsci-skills` repo root):
```bash
python3 scripts/init_project.py \
--name {name} --type {type} --journal {journal} [--ssot] \
--project-root {target_dir}
```
The helper 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 templates,
and `project_state.json`. **`qc/migration_complete` is NOT written by init** — that marker belongs
to the migrate pipeline.
**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 on demand:**
| File | Read it when | Cost if read blindly |
|---|---|---|
| `references/init_scaffold.md` | you need to know where a scaffolded file lands, or what a `project_state.json` field means | ~1,400 tokens describing output the script already produces for you |
---
### `/manage-project migrate-ssot [--no-mark-complete]`
Thin wrapper over `scripts/migrate_project_to_ssot.py` that 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`.
```bash
python3 scripts/migrate_project_to_ssot.py \
--project-root . --write --mark-complete
```
- Leer la fuente completa en GitHub (abre una página externa)