The taw commandSite skills

Site skills

The Claude Code skills every TAW site carries, how they get into a theme, and how taw-fleet runs them on any Mac.

Every TAW theme carries Claude Code skills in its .claude/skills/ folder. When Claude Code starts in the theme folder, it finds them. taw-fleet starts it there for you, so a site's AI tools work on any Mac that has taw-fleet and the site, with nothing else checked out.

What a theme carries

SkillWhat it doesComes from
resolve-commentsWorks through the client's BugSmash comments: sorts them, edits TAW fields on production, opens a PR for theme changes, drafts blog posts, then replies and resolvestaw/core 1.89+
perf-auditRuns GTMetrix and PageSpeed, ties each finding to a fix in the theme, and checks again after the fixtaw/core 1.89+
build-siteBuilds a whole site from a brief, on a branch: the design system, site options, header, footer and menus, then each page with its content and images, ending with the theme's checks. taw-fleet's new-site skill writes the brief from a link and hands over to ittaw/core 1.96+
update-theme, audit-seo, visual-check, populate-content, build-page…The scaffold's own skillstaw-theme
Any skill marked owner: siteA skill written for this one site, such as how its client writes postsThe site itself

A site's own skills and notes win over the framework's when they disagree. Put client conventions there, or in the theme's CLAUDE.md, rather than editing a framework skill: sync replaces framework skills and never touches the site's own.

Get them into a theme

From taw/core 1.91, updates install them for you: taw update, or a plain composer update through taw/core's Composer hook, runs the 1.89.0/site-skills migration. It's skipped when the theme's taw.json sets "scaffold": "off". See Updating a site.

To install them by hand:

taw sync installs them with the rest of the scaffold. In taw-fleet, press S on the theme, or U to update every theme.

composer update taw/core
taw sync --apply

taw-fleet doctor reports skills.missing when a theme's taw/core ships skills the theme hasn't installed yet.

Run them from taw-fleet

  • Press a on a site to see its theme's skills with their descriptions. Pick one, and Claude Code opens beside the dashboard, in the theme folder, with what taw-fleet knows about the site: its URLs, repository, deploy branch, BugSmash project and open findings.
  • Press X to go straight to resolve-comments on the site's open BugSmash comments.

When Claude Code closes, the dashboard refreshes. After resolve-comments, it checks BugSmash again.

Production writes

Skills that change the live site, like resolve-comments, write through taw-fleet wp-remote. It calls the site's WordPress REST API as a bot user whose password stays in your macOS Keychain, so it never appears in a Claude transcript or a file.

Create the bot user

In the site's wp-admin, go to Users → Add New. Give it a name like claude-bot and the Editor role. Then open the user, go to Application Passwords, and create one named "taw-fleet".

Store it on your Mac

printf 'claude-bot:xxxx xxxx xxxx xxxx xxxx xxxx' | taw-fleet wp-remote key import awesome-company

Repeat on each Mac that works on the site.

Check it

taw-fleet wp-remote key show awesome-company

You see the bot's name and its role, editor. The password is never shown.

You can also call it yourself:

taw-fleet wp-remote awesome-company GET '/wp/v2/pages?slug=nosotros&context=edit'
taw-fleet wp-remote awesome-company POST /wp/v2/pages/12 --data @meta.json
taw-fleet wp-remote awesome-company POST /wp/v2/media --file hero.webp

wp-remote has no DELETE: taw-fleet never deletes anything on production. It uses the ?rest_route= form of each URL, because some hosts' firewalls block /wp-json/wp/v2/users, and it retries when a host answers with an empty page.

Troubleshooting