Files
wursor/AGENTS.md
T
Claude 6947113027 feat(web): marketing Home page and the product component library (ADR 0023)
Product UI components are built once at design size from the Figma file and reused by the marketing mockups and, later, the app. Text contrast tokens now meet WCAG AA in both themes, with a test. Pricing stays hidden until decided.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SdXCbrN5PtGExkpvMaMHx
2026-10-12 15:25:50 +00:00

3.5 KiB

Wursor — Agent Guide

This repository is Wursor, the agentic WordPress management platform. Before starting any non-trivial task, read this file and follow the skill routing below.

The product, in one line

Non-technical WordPress site owners describe what they want; Wursor makes it happen in a cloud sandbox, shows a live preview, and deploys on approval. The interface is chat → preview → approve. Nothing else.

Repo layout

api/               Node.js + TypeScript API server (empty until Phase 0 gate)
web/               Next.js (App Router) + TypeScript frontend (ADR 0018): app/ routes, src/product (app UI components), src/marketing, src/ui, src/styles (tokens)
plugin/            WordPress plugin (PHP) — empty until Phase 0 gate
infrastructure/    Docker images, warm pool, GC, deploy scripts
e2e/               Playwright + e2e/golden/ harness
spikes/            Phase 0 written results — gate before product code
docs/decisions/    Architecture Decision Records (0001–…)
PRD.md             Product requirements (v2.0 — non-technical-first)
IMPLEMENTATION.md  TDD build guide with 8-sprint Phase 1 plan
CHANGELOG.md       Keep-a-Changelog log of changes

Skill routing — use the precheck first

The .agents/skills/ directory is a family of rigor skills modeled on Cursor's pstack. The entry point for any non-trivial task is wursor-precheck — it routes to the right playbook and sets the verification bar.

Task shape Skill
Any non-trivial task — start here wursor-precheck
How does X work / why was Y built this way wursor-investigation
A defect — reproduce, root-cause, fix wursor-bug-fix
New behavior, TDD-first from a data shape wursor-feature
Review a diff / PR across lenses wursor-review
Any code change with a test path wursor-tdd
Capture a reviewable decision trail wursor-decision-log
Structure, tradeoffs, verification standards wursor-principles

Hard rules

  1. Tests first. No implementation without a failing test (see wursor-tdd). Coverage floors: api/ + web/ ≥ 90%, plugin/ ≥ 80%.
  2. Prove it works. A task is not done on self-report — run the test, start the sandbox, hit the endpoint.
  3. Non-technical-first. The user never sees a diff, a terminal, a settings screen, or an error log. If a change would leak engineer-only UI into the product, it's wrong.
  4. Safety. Never touch a live WordPress site, production credentials, or real user data from this repo. Sandboxes are the only environment code runs against.
  5. Decisions are logged. Non-trivial choices get a decision-log entry (see wursor-decision-log).

Stack notes

  • Backend: Node.js + TypeScript, Fastify (Wursor API), PostgreSQL (Wursor data), Redis (SSE/queue)
  • Frontend: Next.js (App Router) + React + TypeScript. Server layer holds tokens; browser gets a session cookie only (ADR 0018). Existing Vite shell is being migrated.
  • Sign-in: emailed 8-character code, emailed link and passkeys (ADR 0019)
  • Cloud sites: provisioned on WeOwn Cloud behind the platform interface (ADR 0020)
  • Hosting: DigitalOcean for Wursor and WeOwn Cloud, one VPC per plane, Terraform (ADR 0022)
  • Direction: see PRD.md (Headless, revision 4) and IMPLEMENTATION.md section 0
  • Sandboxes: Docker on VPS, pre-baked WordPress image, overlayfs layers, media proxied (not copied)
  • Plugin: standard WordPress PHP plugin, REST API + token auth
  • Tests: vitest (api, web), phpunit (plugin), Playwright (e2e)