Skill 详情
miles
Designs, builds, redesigns, and exports websites, including WordPress themes.
使用前先检查
自动化审核只检查相关性,不代表安全审查或推荐。使用前请阅读来源中的说明。
SKILL.md
这段内容是审核时保存的快照。外部来源才是完整且最新的版本。
---
name: miles
description: Use Miles AI, an expert WordPress designer, through composable CLI primitives. Use when the user wants to design or build a website, get design options for content they already have, design around existing copy or a brief, convert HTML into a WordPress block theme, edit or redesign a site, export site deliverables, resume work on an existing Miles site, or update/uninstall the Miles skill. Triggers include mentions of Miles, bymiles.ai, start.bymiles.ai, "build a website", "design directions", "WordPress theme", or supplying content/briefs that need a designed site.
hooks:
SessionStart:
- hooks:
- type: command
command: "MILES_SKILL_DIR=\"${MILES_SKILL_DIR:-${CLAUDE_SKILL_DIR:-}}\"; MILES_CLI=\"${MILES_CLI:-${MILES_SKILL_DIR}/scripts/miles}\"; chmod +x \"$MILES_CLI\" 2>/dev/null || true; \"$MILES_CLI\" hook-init 2>/dev/null || true; \"$MILES_CLI\" check-auth 2>/dev/null || true"
once: true
PostToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "MILES_SKILL_DIR=\"${MILES_SKILL_DIR:-${CLAUDE_SKILL_DIR:-}}\"; MILES_CLI=\"${MILES_CLI:-${MILES_SKILL_DIR}/scripts/miles}\"; \"$MILES_CLI\" hook 2>/dev/null || true"
UserPromptSubmit:
- hooks:
- type: command
command: "MILES_SKILL_DIR=\"${MILES_SKILL_DIR:-${CLAUDE_SKILL_DIR:-}}\"; MILES_CLI=\"${MILES_CLI:-${MILES_SKILL_DIR}/scripts/miles}\"; \"$MILES_CLI\" hook-prompt 2>/dev/null || true"
---
# Miles AI Website Designer
Miles is an AI website designer you drive through a CLI of composable primitives. Each primitive does one job with structured JSON output and meaningful exit codes, and they chain into the full guided design workflow when the user wants the complete experience. You can run the whole journey (discovery interview → brief → design directions → build → WordPress theme) or jump in at exactly the step you need.
Run every command through the bundled CLI. `$MILES_CLI` means the path to this skill's `scripts/miles` launcher:
```bash
MILES_SKILL_DIR="${MILES_SKILL_DIR:-/path/to/miles}"
MILES_CLI="${MILES_CLI:-$MILES_SKILL_DIR/scripts/miles}"
"$MILES_CLI" doctor --json
```
Set the Bash timeout to 10 minutes (600000ms) for long-running commands — site building and theme conversion take minutes. Use `MILES_HOME=/path/to/isolated/state` for a clean test environment (default `~/.miles`).
## Command Surface
This is the supported public command surface. Do not invent other commands. HEADLESS = works with no browser. CONDITIONAL = can finish headlessly only when the underlying turn is not browser-backed. BROWSER = needs a connected dashboard via `connect-browser` first. LOCAL = filesystem helper; any Miles server operation inside it is still capability-gated. Reference files in `references/` carry each command's flags, JSON schema, and judgment — load them when you use the command.
| Command | Mode | What it does | Reference |
|---|---|---|---|
| `miles auth [login\|poll\|status\|logout]` | HEADLESS | Device-code login lifecycle | [auth.md](references/auth.md) |
| `miles account-status --json` | HEADLESS | Plan, credits, site count — headroom check | [account-status.md](references/account-status.md) |
| `miles site-create "<description>" [--brief <file>] [--attach <file>]` | HEADLESS | New cloud site + conversation, or a conversation on the active paired local WordPress site; `--brief` skips discovery | [site-create.md](references/site-create.md) |
| `miles say "<message>" [--attach <file>]` | HEADLESS* | Talk to Miles: answers, brief feedback, edits | [say.md](references/say.md) |
| `miles upload-assets <file> [...]` | HEADLESS | Upload brand assets (logo, imagery, content docs) → reusable refs | [upload-assets.md](references/upload-assets.md) |
| `miles design-directions --json` | HEADLESS | List generated design directions with ids + previews | [design-directions.md](references/design-directions.md) |
| `miles build-site --design <n>` | HEADLESS | Commit 在 GitHub 阅读完整来源 (打开外部页面)