← ClaudeAtlas

convertlisted

Restructure an EXISTING flat git repository into a Promotion-Gated Publish Workspace (the source/release repo pattern), preserving its git history. The existing repo becomes the private source/ tree; a workspace-root infra repo and a derived public release/ tree are scaffolded around it, with a starter manifest seeded from the repo's tracked files. Use when the user wants to convert/migrate an existing project to the source/release pattern, or to migrate a legacy environment-development/environment-staging workspace to the new vocabulary. For a brand-new empty project, use the g-workspace-init plugin instead.
rohingosling/claude-skills · ★ 1 · Data & Documents · score 77
Install: claude install-skill rohingosling/claude-skills
# g-workspace-convert Convert an existing **flat** git repository into a **Promotion-Gated Publish Workspace**: the existing repo becomes the private `source/` tree (history preserved), and a workspace-root infrastructure repo plus an empty derived `release/` tree are scaffolded around it. The pattern is specified in the bundled `${CLAUDE_SKILL_DIR}/reference/workspace-pattern.md`. This skill bundles and reuses the templates and scaffolding from **g-workspace-init** so it is self-contained. This is the higher-risk counterpart of g-workspace-init: it **relocates the user's repository** and is analysis-driven (the manifest must be curated). Always run the dry-run first and confirm with the user before applying. ## What it does 1. **Relocates** the existing repo into `<workspace-root>/source/` (move by default; `--copy` to keep the original). Git history is preserved intact. 2. **Scaffolds** the workspace infrastructure (`CLAUDE.md`, `manifests/release.manifest.yaml`, `tools/promote.{py,bat}`, `tools/verify.{py,bat}`, root `.gitignore`, `release/.gitignore`, `backup/`). 3. **Initialises** the workspace-root repo and the `release/` repo (`source/` keeps its existing repo). 4. **Seeds** the manifest with the repo's detected top-level entries as commented include candidates. It **never** changes git remotes (it detects and reports `origin`) and **never** overwrites existing files. ## Instructions 1. **Confirm the input is an existing flat git repo** (not already a work