Skip to content

Commit fe9c4a4

Browse files
authored
docs: document optional Homeboy setup (#98)
1 parent c7d50f6 commit fe9c4a4

3 files changed

Lines changed: 125 additions & 3 deletions

File tree

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ systemctl start kimaki # or: systemctl start cc-connect
124124
| `--existing` | Add to existing WordPress (skip WP install) |
125125
| `--wp-path <path>` | Path to WordPress root (implies `--existing`) |
126126
| `--agent-slug <slug>` | Override Data Machine agent slug (default: derived from domain) |
127+
| `--with-homeboy` | Enable optional [Homeboy](https://github.com/Extra-Chill/homeboy) project setup for repo-aware developer workflows |
127128
| `--no-chat` | Skip chat bridge |
128129
| `--chat <bridge>` | Chat bridge: `kimaki` (Discord, default for OpenCode), `cc-connect` (default for Claude Code and Studio Code), `telegram` |
129130
| `--multisite` | Convert to WordPress Multisite (subdirectory by default) |
@@ -147,6 +148,9 @@ EXISTING_WP=~/Studio/my-site ./setup.sh --local --runtime claude-code
147148
# Local: Studio Code + DM (auto-detected in Studio sites)
148149
EXISTING_WP=~/Studio/my-site ./setup.sh --local --runtime studio-code
149150

151+
# Local: recommended developer power layer with Homeboy project setup
152+
EXISTING_WP=~/Studio/my-site ./setup.sh --local --with-homeboy
153+
150154
# Local: no chat bridge (terminal only)
151155
EXISTING_WP=~/Studio/my-site ./setup.sh --local --no-chat
152156

@@ -177,6 +181,7 @@ SITE_DOMAIN=example.com ./setup.sh --dry-run
177181
| **[OpenCode](https://opencode.ai)**, **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)**, or **[Studio Code](https://developer.wordpress.com/studio/)** | AI coding agent runtime | Selected via `--runtime` |
178182
| **[Data Machine](https://github.com/Extra-Chill/data-machine)** | Memory (SOUL/USER/MEMORY.md), self-scheduling, AI tools, Agent Ping | No — wp-coding-agents composes on top of DM |
179183
| **[Data Machine Code](https://github.com/Extra-Chill/data-machine-code)** | Workspace management, GitHub integration, git operations | Installed with Data Machine |
184+
| **[Homeboy](https://github.com/Extra-Chill/homeboy)** | Optional developer power layer for project status, component-aware checks, review loops, and WordPress extension verification | `--with-homeboy` |
180185
| **[Kimaki](https://kimaki.xyz)**, **[cc-connect](https://github.com/nichochar/cc-connect)**, or **[opencode-telegram](https://github.com/grinev/opencode-telegram-bot)** | Chat bridge (Discord, multi-platform, or Telegram) | `--no-chat` |
181186
| **SessionStart hook** | Syncs Data Machine agents into CLAUDE.md on every session (Claude Code and Studio Code) | Always installed |
182187
| **[WordPress agent skills](https://github.com/WordPress/agent-skills)** | WP development patterns (cloned at install) | `--no-skills` |
@@ -238,6 +243,51 @@ Data Machine is the substrate wp-coding-agents composes on top of — memory, sc
238243
- GitHub integration (issues, PRs, repos)
239244
- Policy-controlled git operations (add, commit, push with allowlists; primary checkout is read-only by default)
240245

246+
## Optional Homeboy Layer
247+
248+
`--with-homeboy` adds Homeboy as an optional, recommended developer power layer. Homeboy is not bundled or vendorized by wp-coding-agents; setup verifies or installs the external Homeboy CLI, verifies the WordPress extension, then exposes its availability to Data Machine Code so composed agent instructions can include Homeboy workflows.
249+
250+
The setup model is intentionally specific:
251+
252+
```text
253+
WordPress site root
254+
= Homeboy project
255+
256+
DMC workspace primary checkouts
257+
= Homeboy components attached to that project
258+
259+
DMC worktrees (`repo@branch`)
260+
= task-specific ephemeral worktrees skipped by default
261+
```
262+
263+
The site root is a Homeboy project, not a component, so setup does not create `homeboy.json` in the WordPress root. Primary Data Machine Code workspace checkouts that already contain `homeboy.json` can be attached as project components. Per-branch `@` worktrees are skipped by default because they are temporary task checkouts derived from the primary component repos.
264+
265+
When enabled, setup should leave you with:
266+
267+
- A Homeboy project for the WordPress site, derived from the site ID, domain, and base path
268+
- Attached Homeboy components for eligible DMC workspace primary checkouts
269+
- WordPress Homeboy extension installed and verified
270+
- Data Machine Code's `datamachine_code_homeboy_available` option synced with CLI availability
271+
- `AGENTS.md` recomposed so the conditional Homeboy guidance appears for coding agents
272+
273+
Verification commands:
274+
275+
```bash
276+
homeboy --version
277+
homeboy extension list
278+
homeboy project show <project-id>
279+
homeboy project components list <project-id>
280+
wp option get datamachine_code_homeboy_available --path=/path/to/wordpress
281+
wp datamachine memory compose AGENTS.md --path=/path/to/wordpress
282+
```
283+
284+
For WordPress Studio installs, use Studio's WP-CLI wrapper for the WordPress commands:
285+
286+
```bash
287+
studio wp option get datamachine_code_homeboy_available
288+
studio wp datamachine memory compose AGENTS.md
289+
```
290+
241291
## Why Root? (VPS only)
242292

243293
wp-coding-agents defaults to running the agent as `root` on VPS installs. On a single-purpose agent VPS, root keeps things simple:

skills/upgrade-wp-coding-agents/SKILL.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ compatibility: "Requires a wp-coding-agents repo clone and an existing setup. Wo
1010

1111
By default it also updates the setup-installed Data Machine plugins (`data-machine`, `data-machine-code`) to their latest version tags when those plugins are git checkouts. Use `--skip-plugins` to preserve the previous no-plugin-update behavior.
1212

13+
If the install was created with the optional Homeboy layer, upgrade should preserve that model: the WordPress site root is the Homeboy **project**, primary Data Machine Code workspace checkouts are attached **components**, and `repo@branch` worktrees remain skipped by default. Homeboy is external to wp-coding-agents; do not vendor it or treat the site root as a component during upgrade guidance.
14+
1315
## When to use
1416

1517
The user says something like:
@@ -46,13 +48,26 @@ The user says something like:
4648
```
4749
Passing output (`OK — ... scenario(s)`) proves `dm-context-filter` still strips the Kimaki-only prompt sections the Data Machine agent should not see. If this fails after a Kimaki upgrade, fix the filter or refresh snapshots intentionally before calling the upgrade healthy.
4850

51+
7. **Verify Homeboy when the install uses it.** Only do this when the user enabled Homeboy or `AGENTS.md` contains the Homeboy section. Run the project/component checks and pass failures through clearly:
52+
```bash
53+
homeboy --version
54+
homeboy extension list
55+
homeboy project show <project-id>
56+
homeboy project components list <project-id>
57+
wp option get datamachine_code_homeboy_available --path=/path/to/site
58+
wp datamachine memory compose AGENTS.md --path=/path/to/site
59+
```
60+
For WordPress Studio installs, use `studio wp option get datamachine_code_homeboy_available` and `studio wp datamachine memory compose AGENTS.md`. Do not create `homeboy.json` in the site root to "fix" a missing project; that confuses a Homeboy project with a component.
61+
4962
Run `./upgrade.sh --help` for scope flags (`--plugins-only`, `--skip-plugins`, `--kimaki-only`, `--skills-only`, `--agents-md-only`, `--repair-opencode-json`, etc.) and the full list of what the script touches and never touches.
5063

5164
## Never do
5265

5366
- **Never restart the chat bridge automatically.** It kills active sessions including the one you're talking in.
5467
- **Never skip the dry-run** on a live install.
5568
- **Never touch user state:** `opencode.json` (the script does additive-only repair), the WordPress DB, nginx, SSL certs, `~/.kimaki/` auth state and OAuth tokens, the DM workspace cloned repos, or agent memory files (`SOUL.md` / `MEMORY.md` / `USER.md`).
69+
- **Never vendor Homeboy** into wp-coding-agents or scaffold `homeboy.json` in the WordPress site root. The site root is a Homeboy project; component metadata belongs in attached primary workspace repos.
70+
- **Never auto-attach `@` worktrees** as Homeboy components during upgrade. They are task-specific DMC worktrees and are skipped by default.
5671
- **Never hardcode workspace paths** (`/var/lib/...`, `/opt/...`, `/var/www/...`, `/root/...`) in commands you give the user. Use `git rev-parse --show-toplevel`, `$(npm root -g)`, `$KIMAKI_DATA_DIR`, and the script's auto-detection.
5772

5873
## Source of truth

skills/wp-coding-agents-setup/SKILL.md

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,27 @@ This skill is for the **local agent** (Claude Code, Cursor, etc.) assisting with
4545
> - **Telegram** — Your agent gets a Telegram bot (via @grinev/opencode-telegram-bot). OpenCode only.
4646
> - **No chat bridge** — Run the agent manually via SSH or terminal when needed."
4747
48-
### Question 4: Agent Name
48+
### Question 4: Homeboy Developer Layer
49+
50+
> "Do you want the optional **Homeboy developer layer** enabled with `--with-homeboy`?
51+
>
52+
> - Recommended for developers who want repo-aware checks, project status, review loops, and WordPress extension verification.
53+
> - Homeboy is an external CLI; wp-coding-agents does not bundle or vendor it.
54+
> - Setup treats the WordPress site root as the Homeboy **project**, not a component.
55+
> - Data Machine Code primary workspace checkouts become attached Homeboy **components** when they already have `homeboy.json`.
56+
> - Data Machine Code `repo@branch` worktrees are skipped by default because they are task-specific."
57+
58+
If they say yes, add `--with-homeboy` to the setup command. Do not imply this is required for wp-coding-agents; it is a recommended power layer for code-heavy installs.
59+
60+
### Question 5: Agent Name
4961

5062
> "What would you like to name your agent? This becomes the agent slug used by Data Machine for identity and memory files.
5163
>
5264
> Default: derived from your site domain (e.g., `example` for example.com, `my-site` for my-site.local)"
5365
5466
Maps to `--agent-slug <name>`. If the user is happy with the default, skip this flag.
5567

56-
### Question 5: Server/Local Details
68+
### Question 6: Server/Local Details
5769

5870
**For VPS installs:**
5971

@@ -66,7 +78,7 @@ Maps to `--agent-slug <name>`. If the user is happy with the default, skip this
6678

6779
> "Where is WordPress installed on your machine? (e.g., `~/Studio/my-wordpress-website`, `/Applications/MAMP/htdocs/wordpress`)"
6880
69-
### Question 6: For Existing WordPress
81+
### Question 7: For Existing WordPress
7082

7183
If they chose existing WordPress (VPS or local):
7284

@@ -90,6 +102,7 @@ Based on their answers, construct the appropriate command:
90102
| **Local + Claude Code + DM** | `EXISTING_WP=~/Studio/my-site ./setup.sh --local --runtime claude-code` |
91103
| **Local + Studio Code + DM** | `EXISTING_WP=~/Studio/my-site ./setup.sh --local --runtime studio-code` |
92104
| **Local + multiple runtimes** | `EXISTING_WP=~/Studio/my-site ./setup.sh --local --runtime claude-code,studio-code` |
105+
| **Local + recommended Homeboy layer** | `EXISTING_WP=~/Studio/my-site ./setup.sh --local --with-homeboy` |
93106
| **Local + DM + Telegram** | `EXISTING_WP=~/Studio/my-site ./setup.sh --local --chat telegram` |
94107
| **Local + DM, no chat** | `EXISTING_WP=~/Studio/my-site ./setup.sh --local --no-chat` |
95108
| **Local (Studio) with WP_CMD** | `WP_CMD="studio wp" EXISTING_WP=~/Studio/my-site ./setup.sh --local` |
@@ -102,6 +115,7 @@ Add `--skip-ssl` to skip Let's Encrypt certificate.
102115
Add `--root` to run the agent as root (default is dedicated service user).
103116
Add `--no-skills` to skip WordPress agent skills.
104117
Add `--agent-slug <slug>` to override the Data Machine agent slug.
118+
Add `--with-homeboy` when the user wants the optional Homeboy developer power layer. Homeboy remains external; setup should verify or install the CLI and WordPress extension, create/update a Homeboy project for the WordPress site root, attach eligible Data Machine Code primary workspace checkouts as components, skip `@` worktrees by default, sync `datamachine_code_homeboy_available`, and recompose `AGENTS.md`.
105119

106120
**WordPress Studio note:** If the site runs under WordPress Studio, prefix the command with `WP_CMD="studio wp"` so setup.sh uses Studio's WP-CLI wrapper instead of bare `wp`. Studio is auto-detected when `studio` CLI and `STUDIO.md` are both present.
107121

@@ -245,6 +259,46 @@ grep 'kimaki-config: WARNING' "$HOME/.kimaki/kimaki.log" || true
245259

246260
If either `test -f` command fails, restart/re-run setup or upgrade before trusting a new OpenCode session. If the log contains a warning about the persistent plugin source dir or required OpenCode plugins, `dm-context-filter.ts` is not guaranteed to be active after restart.
247261

262+
### Homeboy (`--with-homeboy`)
263+
264+
If setup used `--with-homeboy`, verify the optional developer layer explicitly:
265+
266+
```bash
267+
homeboy --version
268+
homeboy extension list
269+
homeboy project show <project-id>
270+
homeboy project components list <project-id>
271+
```
272+
273+
Then verify Data Machine Code can see Homeboy and agent instructions were recomposed:
274+
275+
**VPS or standard WP-CLI:**
276+
```bash
277+
wp option get datamachine_code_homeboy_available --path=/path/to/site
278+
wp datamachine memory compose AGENTS.md --path=/path/to/site
279+
```
280+
281+
**WordPress Studio:**
282+
```bash
283+
studio wp option get datamachine_code_homeboy_available
284+
studio wp datamachine memory compose AGENTS.md
285+
```
286+
287+
Expected model:
288+
289+
```text
290+
WordPress site root
291+
= Homeboy project
292+
293+
DMC workspace primary checkouts
294+
= Homeboy components attached to that project
295+
296+
DMC worktrees (`repo@branch`)
297+
= task-specific ephemeral worktrees skipped by default
298+
```
299+
300+
Do not create `homeboy.json` in the WordPress site root. Do not attach `repo@branch` worktrees by default. Do not modify external component repos unless the user explicitly asks for a Homeboy adoption flow in that repo.
301+
248302
### Site Reachable (VPS)
249303

250304
```bash
@@ -325,6 +379,8 @@ Use when the user says things like:
325379
- "Add Claude Code / OpenCode to my existing WordPress site"
326380
- "Set up a local AI agent on my machine"
327381
- "Install wp-coding-agents with WordPress Studio"
382+
- "Set it up with Homeboy"
383+
- "Enable repo-aware Homeboy workflows"
328384

329385
**Do NOT use** for ongoing WordPress management — that's the agent's job after installation.
330386

@@ -341,3 +397,4 @@ Use when the user says things like:
341397
- **Telegram bot won't respond:** Verify `TELEGRAM_BOT_TOKEN` and `TELEGRAM_ALLOWED_USER_ID` are set, check that both `opencode-serve` and `opencode-telegram` services are running
342398
- **Data Machine not working:** Verify plugin active, run `wp action-scheduler run --allow-root` (VPS) or `studio wp action-scheduler run` (local)
343399
- **Runtime not found:** Check available runtimes with `ls runtimes/`, or install one (`npm install -g opencode-ai` or `npm install -g @anthropic-ai/claude-code`)
400+
- **Homeboy not available in AGENTS.md:** Verify `homeboy --version`, confirm `homeboy extension list` includes the WordPress extension, update `datamachine_code_homeboy_available`, then re-run `wp datamachine memory compose AGENTS.md` or `studio wp datamachine memory compose AGENTS.md`

0 commit comments

Comments
 (0)