
Pmstudio Sync
Use when linked docs drift, when a source file changes and downstream PRDs, decks, or...
Install
npx skills add coco-research/coco --skill pmstudio-sync -g -a claude-code -y- Repository
- coco-research/coco797
- Category
- Writing
- Updated
- 3d ago
- License
- See repository
- Context cost
- Mediumabout 1,936 tokens
- Runs scripts
- No, instructions only
What it does
Use when linked docs drift, when a source file changes and downstream PRDs, decks, or notes must follow, or when a .sync-report.md exists. Diffs the proposed edits, applies them only after approval, and never overwrites a target file.
Doc Sync, Cascading Document Updater
What This Skill Does
Maintains consistency across a documentation ecosystem where one source change (e.g., a new meeting note) should cascade updates to multiple downstream documents (PRD, presentation, project memory).
This is NOT a background watcher. This skill is the Claude-side processor that:
- Reads a sync report or detects changes directly
- Extracts actionable content from new/modified source files
- Proposes specific edits to each downstream target
- Applies changes only after user approval
Prerequisites
Infrastructure (one-time setup)
The persistent detection layer runs outside Claude Code via /pm:sync-init:
| Component | Path | Purpose |
|---|---|---|
| Orchestrator | ~/.claude/scripts/project-sync-orchestrator.sh | Email search + file detection + report generation |
| launchd agent | ~/Library/LaunchAgents/com.claude.project-sync.<name>.plist | Background scheduler (every 2 hours) |
| State dir | ~/.claude/state/<project-name>/ | Logs, timestamps, cached config (outside OneDrive) |
Per-Project Config
Each project needs .sync-watch.json in its root:
{
"project_name": "My Project",
"watch_dirs": ["docs/meeting-notes", "docs/research"],
"target_docs": {
"tier1": [
{
"path": "docs/PRD.html",
"name": "Product Requirements",
"update_from": ["meeting-notes", "research"],
"what": "Requirements, user stories, decisions"
}
],
"tier2": [
{
"path": "docs/presentation.html",
"name": "Stakeholder Deck",
"update_from": ["meeting-notes"],
"what": "Stakeholder updates, timeline changes"
}
]
},
"ignore_patterns": [".*", "*.tmp", "~$*"],
"file_types": [".md", ".html", ".docx", ".xlsx", ".pdf"]
}
