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
| Skill | What it does | Comes from |
|---|---|---|
resolve-comments | Works 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 resolves | taw/core 1.89+ |
perf-audit | Runs GTMetrix and PageSpeed, ties each finding to a fix in the theme, and checks again after the fix | taw/core 1.89+ |
build-site | Builds 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 it | taw/core 1.96+ |
update-theme, audit-seo, visual-check, populate-content, build-page… | The scaffold's own skills | taw-theme |
Any skill marked owner: site | A skill written for this one site, such as how its client writes posts | The 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
Block themes don't sync the classic scaffold, so they take only taw/core's skills:
composer update taw/core
taw skills: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
aon 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
Xto go straight toresolve-commentson 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.