| name | new-workspace |
| description | Provision a new ai-engineering workspace on disk. Use when the user wants to start a new prompt workspace — either a curated prompt-library (catalog) or a prompt-factory (combinatorial generation + eval). Accepts a workspace name and optional variant. Scaffolds the workspace, personalises CLAUDE.md from the user's global memory, and (by default) creates a GitHub repo. |
| disable-model-invocation | true |
| allowed-tools | Bash(mkdir *), Bash(cp *), Bash(cat *), Bash(git init *), Bash(git add *), Bash(git commit *), Bash(gh repo create *), Bash(gh auth status), Bash(git push *), Read |
Provision AI-Engineering Workspace
Creates a new workspace for prompt engineering work. This plugin's commands (/ai-engineering:craft-prompt, /ai-engineering:eval-prompt, /ai-engineering:catalog-prompt, /ai-engineering:version-prompt, /ai-engineering:search-prompts, /ai-engineering:configure-variables, /ai-engineering:generate-prompts) are globally available once the plugin is installed — this skill only provisions the data scaffold (CLAUDE.md, prompts/ or variables+templates+generated/, etc.) that those commands read from and write to.
Arguments
$ARGUMENTS is parsed as:
- First positional: workspace name (kebab-case, used as directory and GitHub repo name). Required.
- Second positional (optional): target parent path. Defaults to
~/repos/github/my-repos.
--variant=<prompt-library|prompt-factory> (optional): which scaffold to copy. Default: prompt-library.
--local-only (optional): skip GitHub repo creation and push. Default: create a public GitHub repo and push.
--private (optional): create the GitHub repo as private. Default: public.
Variants
prompt-library (default) — curated, category-organised collection of individual prompts with rich frontmatter for search and reuse.
prompt-factory — combinatorial prompt generation. Variable dimensions under variables/, assembly templates under templates/, generated outputs under generated/, and evaluations under evals/.
Examples
/ai-engineering:new-workspace my-prompt-library
/ai-engineering:new-workspace client-prompts --variant=prompt-factory
/ai-engineering:new-workspace scratch-prompts --local-only
/ai-engineering:new-workspace private-prompts --private
Procedure
1. Parse arguments
Extract workspace name, target parent path, variant, and flags from $ARGUMENTS. If workspace name is missing, ask the user for it before proceeding. Validate the variant is one of prompt-library or prompt-factory; if not, list the available variants and stop.
2. Resolve the scaffold path
The bundled scaffold lives at ${CLAUDE_SKILL_DIR}/../../template/<variant>/. Confirm it exists.
3. Read ambient facts
Read ~/.claude/CLAUDE.md if it exists. Extract OS, locale, timezone, and user identity facts. These will personalise the workspace's CLAUDE.md at step 5.
4. Create the workspace directory
mkdir -p <target-parent>/<workspace-name>
cp -r ${CLAUDE_SKILL_DIR}/../../template/<variant>/. <target-parent>/<workspace-name>/
Do not copy any .claude/ tree. The plugin's primitives are global and must not be shadowed by workspace-local duplicates.
5. Personalise CLAUDE.md
Open the new workspace's CLAUDE.md and:
- Replace any placeholder identity or locale markers with the facts from step 3.
- Add a short header noting the workspace name and variant.
- Embed the user's OS/locale/timezone so downstream commands can skip re-asking.
6. Prompt for workspace-specific facts
Ask the user only for facts this plugin cannot infer:
- Both variants: default target model(s) the prompts in this workspace are written for (e.g.
claude-sonnet-4, gpt-5, general). Record in CLAUDE.md as DEFAULT_MODELS.
- prompt-library variant: an initial category list (optional — can be grown over time). If provided, pre-create the folders under
prompts/ and skeleton definition files under categories/.
- prompt-factory variant: whether to scaffold the starter variable dimensions (
persona, tone, domain, constraints, output-format). If yes, remind the user to run /ai-engineering:configure-variables to populate options.
7. Initialise git and (optionally) publish
cd <target-parent>/<workspace-name>
git init
git add .
git commit -m "Initial workspace from ai-engineering plugin"
Unless --local-only is set:
gh repo create <workspace-name> --<public|private> --source=. --push
Use --public by default, --private if flag was passed.
8. Print next steps
Tell the user:
- Workspace path.
- Variant chosen.
- Which plugin commands apply:
- prompt-library:
/ai-engineering:craft-prompt, /ai-engineering:search-prompts, /ai-engineering:catalog-prompt, /ai-engineering:eval-prompt, /ai-engineering:version-prompt.
- prompt-factory:
/ai-engineering:configure-variables, /ai-engineering:generate-prompts, /ai-engineering:eval-prompt, /ai-engineering:catalog-prompt, /ai-engineering:version-prompt.
- For the
prompt-engineer subagent: mention it is available for multi-step prompt-engineering tasks.
- Reminder that the workspace is data — the user can delete/move it freely without losing the plugin's commands.
Notes
- The scaffold path must be resolved via
${CLAUDE_SKILL_DIR}/../../template/ (not ${CLAUDE_PLUGIN_ROOT} — that variable is only exported in hooks/MCP contexts, not in skill bash injection).
- Never copy
.claude/commands/, .claude/agents/, or .claude/skills/ into the new workspace. Workspace-local overrides, if wanted, must be added manually afterwards.
- Don't hard-code any personal paths or identifiers here — everything comes from user memory or prompts.