resynclisted
Install: claude install-skill rohingosling/claude-skills
# g-workspace-resync
The promotion tooling is **vendored** per workspace (each `tools/promote.py` is a local copy, keeping the
workspace self-contained). This skill is the controlled way to update those vendored copies from a single
source of truth — the canonical templates bundled at `${CLAUDE_SKILL_DIR}/templates/` (the same templates
shipped by the g-workspace-init plugin) — so an improvement to `promote.py` reaches every workspace without
the hand-editing that causes drift.
It re-stamps only the **project-agnostic** tooling and never touches project-specific content.
| File | Behaviour |
|------|-----------|
| `tools/promote.py` | Always re-stamped from template (fully project-agnostic). |
| `tools/promote.bat` | Always re-stamped. |
| `tools/verify.bat` | Always re-stamped (generic venv wrapper). |
| `tools/verify.py` | Re-stamped **only if it is still the untouched stub** (`CONFIGURED = False`). A configured/customized verify.py is **skipped** and reported. |
It **never** touches `manifests/`, `CLAUDE.md`, `.gitignore`, `source/`, or `release/`, and makes **no git
commits**.
## Instructions
1. **Choose the targets.** Either explicit workspace roots, or discovery under a base directory (use
`python3` on macOS/Linux, `python` on Windows):
```
# explicit
python3 "${CLAUDE_SKILL_DIR}/scripts/resync_tooling.py" "<workspace-root>" ["<root2>" ...]
# discover all migrated workspaces under a base
python3 "${CLAUDE_SKILL_DIR}/scripts/resync_tooling.py" --d