From content-writing
Provision a new content-writing workspace on disk. Use when the user wants to start a new writing project (general writing, blog, opinion blog, or document-templates library). Accepts a workspace name and optional variant. Scaffolds the workspace, personalises CLAUDE.md from user memory, and (by default) creates a GitHub repo.
How this skill is triggered — by the user, by Claude, or both
Slash command
/content-writing:new-workspaceThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates a new workspace for writing projects. This plugin's commands (`/content-writing:draft`, `/content-writing:proofread`, `/content-writing:publish`, etc.) are globally available once installed — this skill only provisions the **data scaffold** (CLAUDE.md, drafts/, research/, etc.) that those commands read from and write to.
Creates a new workspace for writing projects. This plugin's commands (/content-writing:draft, /content-writing:proofread, /content-writing:publish, etc.) are globally available once installed — this skill only provisions the data scaffold (CLAUDE.md, drafts/, research/, etc.) that those commands read from and write to.
$ARGUMENTS is parsed as:
~/repos/github/my-repos.--variant=<general-writing|blog|opinion-piece|document-templates> (optional): which scaffold to copy. Default: general-writing.--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./content-writing:new-workspace essay-on-agents
/content-writing:new-workspace my-blog --variant=blog
/content-writing:new-workspace hot-takes --variant=opinion-piece
/content-writing:new-workspace client-doc-templates --variant=document-templates --private
Extract workspace name, target parent path, variant, and flags from $ARGUMENTS. If workspace name is missing, ask the user for it before proceeding.
The bundled scaffold lives at ${CLAUDE_SKILL_DIR}/../../template/<variant>/. Confirm it exists. If the variant isn't one of general-writing | blog | opinion-piece | document-templates, tell the user which variants are available.
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.
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.
Open the new workspace's CLAUDE.md and:
{{placeholders}} with the user's answers or sensible defaults.Ask the user only for facts this plugin can't infer:
/content-writing:publish works.posts/. Optional.cd <target-parent>/<workspace-name>
git init
git add .
git commit -m "Initial workspace from content-writing plugin"
Unless --local-only is set:
gh repo create <workspace-name> --<public|private> --source=. --push
Use --public by default, --private if flag was passed.
Tell the user:
/content-writing:draft, /content-writing:proofread, /content-writing:new-version for general writing; /content-writing:new-post, /content-writing:generate-index, /content-writing:publish for blog / opinion-piece; /content-writing:add-example, /content-writing:analyze-style, /content-writing:generate-style-guide for an examples collection — usable in any variant).blog: reminder to configure the CMS MCP before /content-writing:publish.${CLAUDE_SKILL_DIR}/../../template/ (not ${CLAUDE_PLUGIN_ROOT} — that variable isn't exported in skill bash injection, only in hooks/MCP)..claude/commands/, .claude/agents/, or .claude/skills/ into the new workspace. If the user wants workspace-local overrides, they can add them manually later.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin content-writing