Skip to content

Commit 29092c9

Browse files
ifahimrezaclaude
andcommitted
docs: roadmap reset and a ChatGPT section that matches OpenAI's current pages
Four pillars, an explicit NO list, and the constraints that do not move. The ChatGPT docs gain the app/plugin vocabulary, the frozen-tool-list behaviour, and why a chat attachment cannot be uploaded. Closes #166 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ApYKEKcBnpuz8w6BX2agfH
1 parent fd1c77b commit 29092c9

2 files changed

Lines changed: 117 additions & 69 deletions

File tree

ROADMAP.md

Lines changed: 87 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,89 @@
11
# Saddle — direction
22

3-
Moved out of `CLAUDE.md` on 2026-08-12. It was a dated section in a file that
4-
loads on every task; roadmaps belong where they can go stale without misleading
5-
anyone mid-session.
6-
7-
Each item becomes a GitHub issue when it's picked up. The positioning narrative
8-
behind it is in `STATUS.md` (2026-08-12 entry).
9-
10-
**Re-derived 2026-08-15: items 1 and 2 have SHIPPED.** The text below was
11-
written before they did; it is kept because items 3–6 still stand on it. Read
12-
the gap description as history, not as the current state.
13-
14-
## The gap that matters — as it stood on 2026-08-12
15-
16-
**On a block theme, Saddle can build a page but not a site.** Verified against
17-
the tree: there are zero abilities for templates, template parts, global styles,
18-
user patterns or fonts, and no reference anywhere in `includes/` to
19-
`wp_template`, `wp_global_styles`, `wp_font_family` or `wp_block`.
20-
21-
Worse, `saddle/bootstrap-design-system` **silently no-ops on block themes**
22-
(`includes/abilities/blocks.php`): it returns `applied: false` and tells the
23-
owner to go do it by hand in Appearance → Editor → Styles. Only Divi, via Pro's
24-
filter, gets a design system actually written. An agent on a block-theme site
25-
cannot see the header, cannot set the palette, and cannot save what it built as
26-
a reusable pattern.
27-
28-
## Ordered, and deliberately split by risk
29-
30-
1. ~~**Site-editor reads (free, DB-only).**~~ **SHIPPED.** `list-templates`,
31-
`get-template`, `get-global-styles` and `list-saved-patterns` are registered
32-
in `includes/abilities/site-editor.php`, read tier. `list-fonts` was not
33-
built and nobody has asked for it.
34-
2. ~~**Make `bootstrap-design-system` real on block themes.**~~ **SHIPPED.**
35-
`includes/abilities/blocks.php` resolves a `$store` — builder, global-styles,
36-
or none — *before* the gate, so a classic-theme site is refused up front with
37-
a reason instead of spending a single-use token to be told to go do it by
38-
hand. The block-theme path writes the spec into global styles.
39-
3. **Template / part / pattern writes (free, DB-only).** `set-template`,
40-
`create-template-part`, and "save this subtree as a pattern" built on
41-
`Saddle_Tree`. Approval-gated on overwrite.
42-
4. **Filesystem export — a separate addon, never free.** The block-theme
43-
equivalent of Create Block Theme, agent-driven: plan → export → clean, moving
44-
templates, parts, global styles, patterns and fonts out of the database and
45-
into theme files so an agency can version-control them. Native PHP via
46-
`WP_Filesystem`**not** a bash or WP-CLI wrapper (see the hard line in
47-
`CLAUDE.md`). The `clean` step is exactly what `Saddle_Approval::gate()` was
48-
built for.
49-
5. **If code-writing ever happens, it is that same addon, and CSS first.** A
50-
child theme stylesheet or Additional CSS is non-executable, covers most "make
51-
it look right" work, and pairs directly with `get-design-system`. Data files
52-
(`templates/*.html`, `theme.json`) next. PHP templates only if demand proves
53-
it out. Every one of them goes through diff-preview → confirm → `saddle_log`
54-
revertable, which is the whole differentiator.
55-
6. **The Divi analogue belongs in Pro.** Theme Builder templates, Global Presets
56-
and Global Colors all live in the database with no version-control story. Pro
57-
already reads all three; a JSON export/import into a repo is the direct
58-
parallel.
59-
60-
## Constraint on all of the above
61-
62-
Nothing that adds a filesystem write ships in free while the WordPress.org
63-
submission is in flight.
3+
Reset on 2026-09-07 (issue #166). The previous version, written 2026-08-12 around the
4+
block-theme gap, is in git history; items 1 and 2 of it shipped, item 3 is carried
5+
below, items 4–6 are folded into the pillars. Each item here becomes a GitHub issue
6+
when it is picked up; this file names direction, not tickets.
7+
8+
## What changed the picture (2026-09-06 research)
9+
10+
- **Elegant Themes shipped Divi AI Agents on 2026-09-04**, built into Divi 5, with an
11+
official MCP "on the way". "An AI that builds Divi pages" is no longer something
12+
only Pro offers. What survives as Pro's reason to exist: it runs from the
13+
developer's own Claude Code or Codex, on a live site, with no relay, no code
14+
execution, and a lint → render → verify loop the agent can be held to.
15+
- **What the community actually asks for**, in order: (1) not being afraid of write
16+
access on production, (2) bulk content and meta operations — the one concrete
17+
success story anyone told was SEO meta on 300 posts, (3) verifying from outside
18+
the tool that wrote, because "the MCP read its own write back and reported
19+
success while the public page served old content". Nobody sells (1) as the
20+
headline.
21+
- **Respira** sells duplicate-first / approval / 90-day undo across 17 builders for
22+
€9/month — through their own server. **WPVibe** (SeedProd) is a hosted relay with
23+
12,000 sites. Saddle's edge over both is one sentence, and it has to be the first
24+
sentence everywhere.
25+
26+
## The sentence
27+
28+
> Self-hosted WordPress MCP for Claude Code. Nothing leaves your site, nothing
29+
> executes agent code, every destructive step previews and asks. Safe on a live site.
30+
31+
## Pillars, in priority order
32+
33+
1. **Ship what exists.** WordPress.org approval of 1.0.0; a green CI that means
34+
green; Pro releases for what is already on `main`.
35+
2. **The production-safe write path is the product.** A drafts-only policy switch
36+
(the advice every thread gives by hand, as a checkbox); bulk post operations with
37+
preview → confirm token → batch undo, the same shape Pro's `wc-bulk-*` already
38+
has; `upload-media` accepting inline content so a write-capable client without a
39+
public URL is not stranded; `verify-page` proving the *public* page serves the
40+
new content, not just the read-back. All free.
41+
3. **The agency workflow.** Divi design-system export/import as JSON (Pro) —
42+
global colors, fonts, variables, presets, Theme Builder templates, library
43+
items — the version-control story Divi AI Agents does not have. Template, part
44+
and pattern writes on block themes (free, DB-only, built on `Saddle_Tree`,
45+
approval-gated on overwrite) — the gap the previous roadmap called the one that
46+
matters.
47+
4. **Say it out loud.** The sentence above leads both readmes and plugpress.co. A
48+
comparison page against Divi AI Agents, Respira and WPVibe on five rows: where
49+
traffic goes, code execution, works on a live site, verify loop, price. A
50+
token-per-task benchmark, because nobody measures it and address-based edits
51+
with compact reads are Saddle's answer to the "burns a five-hour window in an
52+
hour" complaint.
53+
54+
## Explicit NO list
55+
56+
Do not open issues for these. If a paying customer asks by name, the ask goes on
57+
the issue and the rule is revisited there.
58+
59+
- **New builders.** Elementor has six competing MCP servers; Bricks 2.4 ships its
60+
own abilities natively; only Divi has paying customers.
61+
- **Partner-plugin wrappers without a named customer** (Slim SEO was closed on this
62+
rule).
63+
- **Divi 4 → 5 conversion.** Divi ships its own converter.
64+
- **Filesystem writes in free, ever.** A theme-export addon is the only place that
65+
belongs, and CSS or code writing anywhere waits until that addon exists.
66+
- **Admin UI redesigns.** The re-brand landed 2026-08-25.
67+
- **Runtime license checks in Pro** (decided 2026-07-12, saddle-pro#23).
68+
- Per-connection access profiles, comment abilities, activity-log export and
69+
retention — closed as not planned on 2026-09-07.
70+
71+
## Kept, not scheduled (label `later`)
72+
73+
- **Custom post type support across the content abilities.** Real agency pull, but
74+
it touches the whole read-authorization funnel; size it after the pillar-2 work.
75+
- **Menu abilities.** Divi AI Agents covers menus on Divi; block themes have the
76+
navigation block.
77+
- **Rate limiting on the MCP surface.** Do it after the positioning copy so it can
78+
be named there.
79+
80+
## Constraints that do not move
81+
82+
- Nothing that adds a filesystem write ships in free while a WordPress.org
83+
submission is in flight, and nothing self-hosted is published without a version
84+
bump Fahim approved.
85+
- Tool changes stay backward compatible — new optional parameters only. ChatGPT
86+
freezes an approved connector's tool list until an admin refreshes it, and a
87+
renamed tool or new required parameter errors there with no prompt to update.
88+
- The three non-negotiables in `CLAUDE.md` apply to every item above without
89+
exception.

docs/connections.md

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,36 @@ screen, then choose Allow.
132132

133133
Only administrators can approve a connection.
134134

135-
### Two things to expect
136-
137-
**On ChatGPT Plus and Pro, connectors are read-only.** Fully write-capable
138-
connectors need a Business, Enterprise or Edu workspace. So if ChatGPT reads your
139-
site happily but won't create a post, nothing is broken — that's ChatGPT's limit,
140-
not Saddle's.
141-
142-
**ChatGPT Go doesn't have connectors at all.** You'll need Plus or above.
135+
### What to expect
136+
137+
Re-checked against OpenAI's own help pages on 2026-09-07. In their current
138+
vocabulary Saddle is an **app** (the thing that connects to an external service);
139+
a **plugin** is a bundle of apps and skills you install from the Plugins
140+
Directory. Installing a plugin never bypasses an app's own limits, so everything
141+
below applies whichever screen you reach Saddle through.
142+
143+
**On ChatGPT Plus and Pro, custom apps are read-only.** OpenAI's developer-mode
144+
page says full MCP support, including write and modify actions, is available to
145+
Business, Enterprise and Edu workspaces, and that Pro users can connect MCP apps
146+
with read/fetch permissions only. So if ChatGPT reads your site happily but won't
147+
create a post or upload media, nothing is broken — that's ChatGPT's limit, not
148+
Saddle's. A Business workspace is the only fix.
149+
150+
**ChatGPT Go doesn't have apps at all.** You'll need Plus or above.
151+
152+
**On a workspace plan, the tool list is frozen when an admin approves it.** ChatGPT
153+
keeps a snapshot of Saddle's tools from the moment the connection is published.
154+
Saddle only ever adds optional parameters, so an existing connection keeps working
155+
across updates — but a brand-new tool won't appear until an admin opens the app in
156+
Workspace settings and refreshes its actions.
157+
158+
**Agent mode never uses custom apps, and deep research only reads.** Ask in a
159+
normal chat, with the app selected, for anything that writes.
160+
161+
**Uploading media needs a public URL.** A file you attach in the chat lives in
162+
ChatGPT's sandbox with no address Saddle can fetch, so `upload-media` can't reach
163+
it. Point it at a file that is already online (or use the Unsplash tools). Inline
164+
upload for write-capable clients is on the roadmap.
143165

144166
---
145167

0 commit comments

Comments
 (0)