Stand up the monorepo skeleton and land the first Phase 0 artifacts: pairing threat model, plugin catalog, builder detect, 20-prompt golden harness, and synthetic 2GB mirror timing.
52 lines
2.8 KiB
Markdown
52 lines
2.8 KiB
Markdown
# 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/ React + TypeScript frontend (empty until Phase 0 gate)
|
|
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
|
|
PRD.md Product requirements (v2.0 — non-technical-first)
|
|
IMPLEMENTATION.md TDD build guide with 8-sprint Phase 1 plan
|
|
```
|
|
|
|
## 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, Express/Fastify, PostgreSQL (Wursor data), Redis (SSE/queue)
|
|
- Frontend: React + TypeScript, Vite
|
|
- 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)
|