devrites 2.5.0 → 2.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +8 -7
- package/SECURITY.md +1 -1
- package/docs/skills.md +1 -1
- package/docs/usage.md +2 -2
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +18 -12
- package/pack/.claude/skills/rite-build/SKILL.md +17 -6
- package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +1 -1
- package/pack/.claude/skills/rite-prove/SKILL.md +1 -1
- package/pack/.claude/skills/rite-prove/reference/browser-proof.md +1 -1
- package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +8 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
|
|
4
4
|
|
|
5
|
+
## [2.5.2](https://github.com/ViktorsBaikers/DevRites/compare/v2.5.1...v2.5.2) (2026-06-28)
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
* **skills:** swap browser-harness for Playwright MCP ([9c13e72](https://github.com/ViktorsBaikers/DevRites/commit/9c13e72c94e81f7df6dc7d07bf23acdfd4d18ddd))
|
|
10
|
+
|
|
11
|
+
## [2.5.1](https://github.com/ViktorsBaikers/DevRites/compare/v2.5.0...v2.5.1) (2026-06-28)
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
* **rite:** ask HITL build gaps inline instead of deferring to resolve ([33266f1](https://github.com/ViktorsBaikers/DevRites/commit/33266f19d9ad30f53fc8ef267f486a5562be61c7))
|
|
16
|
+
|
|
5
17
|
## [2.5.0](https://github.com/ViktorsBaikers/DevRites/compare/v2.4.0...v2.5.0) (2026-06-28)
|
|
6
18
|
|
|
7
19
|
### Added
|
package/README.md
CHANGED
|
@@ -101,14 +101,14 @@ Full diagram set (lifecycle, polish orchestrator, review fan-out, debug loop,
|
|
|
101
101
|
rules carrier, workspace state, namespace map) →
|
|
102
102
|
[`docs/flow.md`](docs/flow.md).
|
|
103
103
|
|
|
104
|
-
**Status:** [`v2.5.
|
|
104
|
+
**Status:** [`v2.5.2`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v2.5.2) — see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
105
105
|
|
|
106
106
|
## Contents
|
|
107
107
|
|
|
108
108
|
- [Why distributed skills](#why-distributed-skills-not-one-engine)
|
|
109
109
|
- [Modes — HITL & AFK](#modes--hitl--afk)
|
|
110
110
|
- [Install](#install) — [npx / bash](#installing) · [upgrade](#upgrading-an-existing-install)
|
|
111
|
-
- [Recommended setup](#recommended-setup-optional-but-devrites-is-much-sharper-with-it) — codegraph · graphify ·
|
|
111
|
+
- [Recommended setup](#recommended-setup-optional-but-devrites-is-much-sharper-with-it) — codegraph · graphify · Playwright MCP
|
|
112
112
|
- [Skills](#skills) — 36 total · full catalogue in [`docs/skills.md`](docs/skills.md)
|
|
113
113
|
- [Typical workflow](#typical-workflow) · [Worked examples](docs/usage.md)
|
|
114
114
|
- [Engineering rules](#engineering-rules) · [Browser proof ladder](#browser-proof-ladder) · [Frontend & fullstack](#frontend--fullstack)
|
|
@@ -274,7 +274,7 @@ one and **degrades gracefully** when it's absent.
|
|
|
274
274
|
|---|---|---|
|
|
275
275
|
| **codegraph** | A code-intelligence index. `/rite-spec`, `/rite-define`, and `/rite-plan` use it to understand structure, **placement**, callers, and **impact** cheaply — deeper investigation and sharper specs, at a fraction of the tokens of reading files. | Build the index in your project (e.g. `codegraph init`) so its `codegraph_*` tools / a `.codegraph/` are present. |
|
|
276
276
|
| **graphify** | A codebase → knowledge-graph (`graphify-out/`) — same benefit for "where is X / what calls Y / what would Z break". | Generate it for your project (the `/graphify` skill). |
|
|
277
|
-
| **[
|
|
277
|
+
| **[Playwright MCP](https://github.com/microsoft/playwright-mcp)** | Drives a real browser so `/rite-prove` and `/rite-polish` capture **real UI evidence** — screenshots, console, network, responsive — the top rung of the proof ladder (paired with **Chrome DevTools MCP** for Lighthouse / perf trace). | Configure the Playwright MCP server in Claude Code; DevRites detects it, never installs it. |
|
|
278
278
|
|
|
279
279
|
Without them, DevRites reads files instead of a code graph and uses Claude Code's built-in
|
|
280
280
|
`/run`+`/verify` (or documented manual steps) instead of a browser. With them: deeper
|
|
@@ -431,7 +431,7 @@ the build, records the drift in `drift.md`, asks you when product behavior
|
|
|
431
431
|
changes, and routes through `/rite-plan repair` before resuming.
|
|
432
432
|
|
|
433
433
|
Worked examples (spec-then-plan, mid-build drift, UI feature with
|
|
434
|
-
|
|
434
|
+
Playwright MCP, backend-only, polish modes, zoom-out, mid-flight handoff):
|
|
435
435
|
**[docs/usage.md](docs/usage.md)**.
|
|
436
436
|
|
|
437
437
|
## Engineering rules
|
|
@@ -452,9 +452,10 @@ diagram: [`docs/flow.md` § Engineering-rules loading](docs/flow.md#6-engineerin
|
|
|
452
452
|
|
|
453
453
|
## Browser proof ladder
|
|
454
454
|
|
|
455
|
-
For UI work DevRites prefers real runtime evidence, top-down: **
|
|
456
|
-
|
|
457
|
-
E2E** (Playwright / Cypress / Capybara) → **manual
|
|
455
|
+
For UI work DevRites prefers real runtime evidence, top-down: **Playwright MCP** (if
|
|
456
|
+
configured, paired with **Chrome DevTools MCP** for Lighthouse / perf trace) → Claude Code
|
|
457
|
+
**`/run`+`/verify`** → **project-native E2E** (Playwright / Cypress / Capybara) → **manual
|
|
458
|
+
fallback**. It detects tooling but
|
|
458
459
|
never installs it, stops at auth walls, and treats a screenshot **path** as unproven
|
|
459
460
|
until it's opened and described.
|
|
460
461
|
|
package/SECURITY.md
CHANGED
|
@@ -175,7 +175,7 @@ settings file is never overwritten on update, so your own permission rules are s
|
|
|
175
175
|
|
|
176
176
|
DevRites vendors no third-party code (see `NOTICE.md`). It depends on Claude
|
|
177
177
|
Code itself and, optionally and at the user's choice, on codegraph /
|
|
178
|
-
graphify /
|
|
178
|
+
graphify / Playwright MCP — each of which is invoked through its own
|
|
179
179
|
documented interface, not bundled.
|
|
180
180
|
|
|
181
181
|
### Known non-issues
|
package/docs/skills.md
CHANGED
|
@@ -126,7 +126,7 @@ The 11 model-invoked internal specialists (hidden from the menu): `devrites-inte
|
|
|
126
126
|
| Skill | What It Does | Use When |
|
|
127
127
|
|---|---|---|
|
|
128
128
|
| [`rite-prove`](../pack/.claude/skills/rite-prove/SKILL.md) | Tests + build + runtime + browser evidence for the current scope. | All slices built; ready for full verification. |
|
|
129
|
-
| [`devrites-browser-proof`](../pack/.claude/skills/devrites-browser-proof/SKILL.md) | Browser proof ladder:
|
|
129
|
+
| [`devrites-browser-proof`](../pack/.claude/skills/devrites-browser-proof/SKILL.md) | Browser proof ladder: Playwright MCP → Chrome DevTools MCP → `/run`+`/verify` → project E2E → manual. Auto-emits the structured **Visual Verdict** (per-criterion PASS/FAIL vs `design-brief.md`) for UI slices — consumed by `devrites-frontend-reviewer` and gated at `/rite-seal`. | Scope touches UI. |
|
|
130
130
|
|
|
131
131
|
### Polish — Normalize, then ship-quality detail pass
|
|
132
132
|
|
package/docs/usage.md
CHANGED
|
@@ -115,7 +115,7 @@ You: 2
|
|
|
115
115
|
/rite-build # resumes on the corrected plan
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
-
## 4) UI feature with
|
|
118
|
+
## 4) UI feature with Playwright MCP
|
|
119
119
|
|
|
120
120
|
```text
|
|
121
121
|
/rite-spec settings-theme-toggle
|
|
@@ -133,7 +133,7 @@ You: 2
|
|
|
133
133
|
anti-AI-slop
|
|
134
134
|
|
|
135
135
|
/rite-prove
|
|
136
|
-
→ devrites-browser-proof:
|
|
136
|
+
→ devrites-browser-proof: Playwright MCP detected → browser_navigate(route),
|
|
137
137
|
screenshot at 375 + 1280, exercise the toggle, check console clean,
|
|
138
138
|
**compare to references/**, record to browser-evidence.md
|
|
139
139
|
|
|
@@ -14,13 +14,17 @@ The same ladder captures a **developer-facing docs / getting-started page** for
|
|
|
14
14
|
commands match what actually runs, and note the result in `browser-evidence.md` / `devex.md`.
|
|
15
15
|
|
|
16
16
|
## Ladder (top-down)
|
|
17
|
-
1. **
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
1. **Playwright MCP** (preferred) — detect by tool availability (the `browser_*` tools are
|
|
18
|
+
present, e.g. `browser_navigate`); detect, don't install. Drives a Playwright-managed
|
|
19
|
+
browser. Pattern: `browser_navigate(url)` → `browser_snapshot()` (the accessibility tree
|
|
20
|
+
is the primary perception) → `browser_click` / `browser_type` on a **ref from the
|
|
21
|
+
snapshot** → `browser_take_screenshot()`. Read `browser_console_messages()` and
|
|
22
|
+
`browser_network_requests()` for console/network evidence; `browser_resize(w,h)` for each
|
|
23
|
+
responsive viewport. Act on snapshot refs, not pixel coordinates.
|
|
24
|
+
2. **Chrome DevTools MCP** (when configured — use **alongside** Playwright MCP for more
|
|
25
|
+
detail) — screenshots, DOM, console, network, performance trace, accessibility tree, and
|
|
26
|
+
`lighthouse_audit`. Playwright MCP drives the flow; DevTools MCP adds Lighthouse + the perf
|
|
27
|
+
trace Playwright can't produce.
|
|
24
28
|
3. **Claude Code `/run` + `/verify`** (if available) — launch + observe the app.
|
|
25
29
|
4. **Project-native E2E** (only if present) — Playwright/Cypress/Capybara/Selenium via
|
|
26
30
|
the project's existing commands. Don't add a new framework.
|
|
@@ -31,11 +35,13 @@ If `spec.md` carries a perf budget — or a frontend regression risk is visible
|
|
|
31
35
|
CWV numbers here so the perf reviewer judges real data instead of guessing. Use the highest
|
|
32
36
|
rung available; **detect, don't install**.
|
|
33
37
|
|
|
34
|
-
1. **Chrome DevTools MCP** (
|
|
35
|
-
Lighthouse performance score. Source label: **Lab (Lighthouse)**. A
|
|
36
|
-
gives **Trace (DevTools)** attribution.
|
|
37
|
-
2. **
|
|
38
|
-
label: **Trace (DevTools)
|
|
38
|
+
1. **Chrome DevTools MCP** (preferred for CWV when configured) — `lighthouse_audit` for
|
|
39
|
+
LCP/INP/CLS + the Lighthouse performance score. Source label: **Lab (Lighthouse)**. A
|
|
40
|
+
`performance_*` trace gives **Trace (DevTools)** attribution.
|
|
41
|
+
2. **Playwright MCP** — `browser_navigate` the route, then `browser_evaluate` the web-vitals
|
|
42
|
+
library to read LCP/INP/CLS off the live page. Source label: **Trace (DevTools)** (a
|
|
43
|
+
real-page number, not a Lighthouse score). Use **alongside** rung 1 when both are present —
|
|
44
|
+
the lab score and the trace corroborate each other.
|
|
39
45
|
3. **CrUX / PageSpeed Insights** — only if the user supplied an API key. Field data, p75.
|
|
40
46
|
Source label: **Field (CrUX)**.
|
|
41
47
|
4. **None available** → mark CWV **pending (manual)** and name the exact command
|
|
@@ -105,12 +105,23 @@ writes; read them yourself for the doubt/record gates or in the inline fallback:
|
|
|
105
105
|
right next slice. Write the slice's `Mode` to `state.md` as `Slice mode: <HITL|AFK>` on
|
|
106
106
|
**every** selection (not only on the HITL pause path); `/rite-resolve` clears or updates
|
|
107
107
|
it on resume.
|
|
108
|
-
2a. **HITL gate (pre-action pause).** Read the slice's `Mode`. If `HITL
|
|
109
|
-
checkpoint per
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
2a. **HITL gate (pre-action pause).** Read the slice's `Mode`. If `HITL`, surface the
|
|
109
|
+
checkpoint as a ranked **option set** and resolve it **before** any code lands, per
|
|
110
|
+
[`reference/checkpoint-protocol.md`](reference/checkpoint-protocol.md). Branch on whether
|
|
111
|
+
a human is here:
|
|
112
|
+
- **Human present (interactive — no `.devrites/AFK`) → ask inline via `AskUserQuestion`.**
|
|
113
|
+
This is the default for an interactive build. Render 2–4 options, the recommended one
|
|
114
|
+
**first and labelled `(Recommended)`**, each with its dimension-tagged rationale + the
|
|
115
|
+
trade-off it accepts, plus the `Something else — I'll describe it` escape hatch. The
|
|
116
|
+
human picks; record the pick to `questions.md` (`answered`) + `decisions.md` (through the
|
|
117
|
+
`resolve.sh` writer), clear the gate, and **continue to step 3 in place** — do **not**
|
|
118
|
+
STOP, do **not** route through `/rite-resolve`.
|
|
119
|
+
- **Human absent / AFK (`.devrites/AFK` present) → auto-pick or persist + STOP.** For a gate
|
|
120
|
+
in `allow_gates`, auto-pick the recommended option (option 1) and proceed; otherwise
|
|
121
|
+
append the `questions.md` entry, write the `Awaiting human` block to `state.md`, set
|
|
122
|
+
`Status: awaiting_human`, fire the `notify:` hook, then **STOP** — resume when the user
|
|
123
|
+
runs `/rite-resolve <qid> "<answer>"`. `blocking` / `escalating` / irreversible-risk gates
|
|
124
|
+
always take this stop path, never the AFK auto-pick.
|
|
114
125
|
3. **Snapshot the tree, then dispatch the build core to `devrites-slice-wright`** — one `Task`
|
|
115
126
|
call, fresh context. **First**, capture the pre-dispatch tree so the reconcile gate (step 6)
|
|
116
127
|
can prove you never touched source — run this immediately before the `Task` call:
|
|
@@ -91,7 +91,7 @@ If the project has the tools, run them; capture evidence in `evidence.md`.
|
|
|
91
91
|
- `prefers-reduced-motion`: emulate in DevTools → re-verify motion.
|
|
92
92
|
- Throttle to "Slow 3G" → re-verify loading + error states.
|
|
93
93
|
- Lighthouse / axe / pa11y → re-verify accessibility floor.
|
|
94
|
-
-
|
|
94
|
+
- Playwright MCP or Chrome DevTools MCP (per `devrites-browser-proof`) → capture
|
|
95
95
|
screenshots of the worst-case input states above.
|
|
96
96
|
|
|
97
97
|
## Reporting in `/rite-polish`
|
|
@@ -14,7 +14,7 @@ workspace first; if none, run `/rite-spec <feature>`.
|
|
|
14
14
|
> single change; `/run` launches the app. `/rite-prove` is feature-scoped:
|
|
15
15
|
> it walks `spec.md` acceptance criteria one-by-one, runs the full relevant
|
|
16
16
|
> test suite + build/typecheck/lint, ascends the browser-proof ladder
|
|
17
|
-
> (
|
|
17
|
+
> (Playwright MCP → DevTools MCP → `/run`+`/verify` → project E2E →
|
|
18
18
|
> manual), and writes `evidence.md` + `browser-evidence.md` keyed to the
|
|
19
19
|
> active `.devrites/work/<slug>/`. Use `/verify` or `/run` on their own
|
|
20
20
|
> when there is no DevRites feature workspace.
|
|
@@ -5,7 +5,7 @@ What `browser-evidence.md` must capture for a UI slice. Delegates to
|
|
|
5
5
|
|
|
6
6
|
```markdown
|
|
7
7
|
## Slice <N> — <name> (<date>)
|
|
8
|
-
- Tooling:
|
|
8
|
+
- Tooling: playwright-mcp | devtools-mcp | /run+/verify | <e2e> | manual
|
|
9
9
|
- Route(s): <url(s) exercised>
|
|
10
10
|
- Viewports: 375 / 768 / 1280 (note which were checked)
|
|
11
11
|
- Screenshots: <path(s)> — described: <what is actually visible>
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
Prefer real runtime evidence. For UI/browser work, try tools top-down and record which
|
|
4
4
|
rung you used. Detect, don't install — browser tooling setup is the user's call.
|
|
5
5
|
|
|
6
|
-
1. **
|
|
7
|
-
- Detect:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
1. **Playwright MCP** (preferred when configured)
|
|
7
|
+
- Detect: the Playwright MCP `browser_*` tools are available (e.g. `browser_navigate`).
|
|
8
|
+
Capabilities: navigation, accessibility-tree snapshots, screenshots, ref-based
|
|
9
|
+
clicks/typing, console messages, network requests, `browser_evaluate`. Drives a
|
|
10
|
+
Playwright-managed browser; detect, don't install.
|
|
11
|
+
2. **Chrome DevTools MCP** (when configured — pairs with Playwright MCP for Lighthouse, the
|
|
12
|
+
perf trace, and deeper DOM) — screenshots, DOM, console, network, performance,
|
|
13
|
+
accessibility tree.
|
|
12
14
|
3. **Claude Code `/run` and `/verify`** (if available) — launch and observe the app;
|
|
13
15
|
prefer a project-specific run/verify skill if one exists.
|
|
14
16
|
4. **Project-native E2E** (only if already present) — Playwright, Cypress, Capybara,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "DevRites — disciplined senior-engineer workflow skills pack for Claude Code",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|