|
4 | 4 | **Board:** [PlugPress HQ](https://github.com/orgs/plugpressco/projects/3) |
5 | 5 |
|
6 | 6 | ## Last session |
7 | | -2026-07-10 — Shipped Users read-only ([#13](https://github.com/plugpressco/saddle/issues/13)) + backlog reset for a scope replan: |
8 | | -- Built + **merged #13** (PR [#20](https://github.com/plugpressco/saddle/pull/20), squashed to `main` as `be79e28`): two read-tier user abilities, `saddle/list-users` + `saddle/get-user`, in new `includes/abilities/users.php` (wired in bootstrap require + `wp_abilities_api_init` hook). Both gated on the `list_users` cap (admins only by default) on top of the read tier; PII (email/real name/login) revealed only to callers who can `edit_users`. list-users supports role filter, search, ordering, pagination (`{items,total,total_pages,page}` envelope). No create/update/delete. Free ability count 50 → **52**. New `tests/users-test.php` (10 tests); full suite **244 green**; phpcs-clean; no eval/exec. |
9 | | -- **Backlog reset:** closed the session-created spinoffs (#14 comments, #15 revision-restore, #16–#19 deferred Phase 3) AND all roadmap docs (#12 Finalized Plan, #10 Design Quality, #9 Agent Context) as *not planned* — reopenable. Scope is being replanned; the new plan will be filed as fresh issues after discussion. Local plan `.md` files were already migrated + deleted 2026-07-07. |
| 7 | +2026-07-10 — **The Closed-Loop Quality Engine shipped, free half complete** (epic [#22](https://github.com/plugpressco/saddle/issues/22), PRs #28–#32, suite 244 → **300 green**): |
| 8 | +- **F1** `Saddle_Lint_Style_Accessor` companion interface (additive — older accessors keep working) + Gutenberg impl (#23/PR #28). |
| 9 | +- **F5** a11y rules: text-contrast (ancestor-walk effective bg, WCAG AA 4.5/3.0 thresholds), missing-alt-text, heading-order — all feature-detect the companion and skip silently without it (#27/PR #29). |
| 10 | +- **F2** Agent Eyes: `saddle/render-node` — effective persisted styles (one resolver shared with lint) + capped/sanitized HTML; whole-page = bounded section outline. New `saddle_render_accessor` filter (#24/PR #30). |
| 11 | +- **F3** preview transport: `saddle/get-preview-url` — HMAC (post-bound, 5-min TTL, rotating secret with grace), served via the public-preview posts_results flip, noindex; the agent's own client does the screenshotting, nothing leaves the install (#25/PR #31). |
| 12 | +- **F4** `saddle/verify-page` — structural + echo (silently-ignored attrs) + lint over freshly re-read state, deduped/ranked/capped findings at real addresses, deterministic 0–100 score. Builders plug in via `saddle_verify_builder_findings` (#26/PR #32). |
| 13 | +- The Pro half (Divi driver, quality judgments, brief, context discipline, builder memory, skill) shipped the same day — see `saddle-pro/STATUS.md`. |
| 14 | +- Old-backlog #7 (render preview) closed as delivered by this scope. |
10 | 15 |
|
11 | 16 | ## Next up |
12 | | -- **Scope replan** — define the new Saddle direction, then file it as fresh GitHub issues. Nothing in the old backlog restarts until then. |
13 | | -- CI: the PHPUnit job has never passed on GitHub Actions (no WP core set up in the runner — bootstrap looks for a local ABSPATH). Worth fixing as its own PR so future PRs get a real green. |
14 | | -- #13 live round-trip on a real site is the one remaining manual check (harness proves logic; a live `list-users`/`get-user` call over MCP confirms the transport surface). |
| 17 | +- **Live divi-dev round-trip** (the epic's last gate): build a seeded-bad page → `verify-page` flags at correct addresses → fix → score rises; screenshot a minted preview URL in Claude Code; confirm effective styles against real Divi 5.8. Then close #22. |
| 18 | +- Consider a free minor release (the scope note says: free ships minor, Pro's min-free constant bumps — the constant bump is still pending in Pro). |
| 19 | +- CI PHPUnit still red on GitHub Actions (no WP core in the runner) — fix as its own PR so future PRs get a real green. |
15 | 20 |
|
16 | 21 | ## Blockers / open questions |
17 | | -- Saddle scope under active replanning — hold new feature work until the new plan lands. |
18 | | -- (Prior) Theme-builder writes unverified live (no create-template ability → only real templates to test against). |
| 22 | +- Old work tickets #4–#6, #8 remain from the previous scope — #5 (design-system unify) partially overlaps the shipped brief/bundle; triage them against the new scope when convenient. |
0 commit comments