Skip to main content

Claude skills

Four skills live in ~/.dotfiles/ai/skills/ and are symlinked into ~/.claude/skills on every shell start, so editing one takes effect immediately.

SkillTriggers onDoes
add-wp-mcpConnecting a WordPress site to Claude Code, or debugging one returning no toolsAdds or repairs a WordPress MCP server
generate-proposal"Build a proposal for [client]", or pointing at a discovery transcriptTranscript to costed estimate JSON
github-project-backlog"Get this onto a board", turning notes into epicsDrafts a backlog, then creates issues and a Projects board
website-wireframe"Create wireframes", client materials plus a website deliverableDiscovery to a React wireframe artifact

add-wp-mcp

Enforces local scope, credentials only through WP_API_URL / WP_API_USERNAME / WP_API_PASSWORD environment variables (the package ignores CLI flags), and remove-then-re-add rather than editing in place.

The insight worth keeping: claude mcp list showing "Connected" proves nothing. The skill verifies with a real stdio JSON-RPC handshake (initialize, notifications/initialized, tools/list) and a background-PID poll loop, because macOS has no timeout.

For local sites it uses NODE_EXTRA_CA_CERTS and explicitly bans NODE_TLS_REJECT_UNAUTHORIZED=0. See WordPress MCP.

generate-proposal

Reads a discovery transcript from the current directory (.txt, .md, .vtt) and produces a Code Addicts estimate: overview, five to eight scope sections, grouped deliverables, three to five sprints.

Each task's responsible must be exactly Client, Code Addicts, or Client / Code Addicts.

Prerequisite nothing else tells you about: it POSTs to http://localhost:3847/api/estimates, so the proposal generator app has to be running. If it isn't, the skill falls back to writing ./<uuid>.json locally.

github-project-backlog

Two phases, with a stop for approval between them.

Phase 1 drafts a backlog file with four to eight epics, three to six sub-tasks each. The heading format is load-bearing: epics must be exactly ## Epic <n>: <title> followed by a Goal: line, because scripts/create_github_backlog.py parses it.

Phase 2 checks gh auth status for the project scope, then creates one issue per epic (sub-tasks become a checklist inside the issue, not separate issues), creates or reuses a Projects v2 board, links it to the repo and adds everything.

Re-run safety: it matches issues by exact title, so running it again won't duplicate. But renaming an epic creates a new issue rather than renaming the old one.

website-wireframe

Four phases with a checkpoint after each.

  1. Fetch the client's sitemap.xml, or fall back to homepage nav links. Record every existing page and the homepage's sections as a baseline. Classify as Redesign, New build or Hybrid.
  2. Apply StoryBrand.
  3. Write section copy, and produce a CHANGES FROM LIVE SITE list.
  4. Build a React .jsx artifact in the Code Addicts style, dark sticky nav, dashed placeholder image boxes, amber annotations.

Every deviation from the live site needs a specific reason traceable to discovery. "Improves clarity" is explicitly rejected. Those reasons carry through into the artifact as annotations, which is what makes it useful in a client meeting.