devrites 2.5.2 → 2.6.0
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 +6 -0
- package/README.md +24 -13
- package/bin/devrites.mjs +2 -1
- package/docs/cli-mcp.md +9 -4
- package/docs/skills.md +2 -2
- package/install.sh +558 -9
- package/mcp/devrites-mcp.mjs +2 -0
- package/pack/.claude/hooks/devrites-a1-guard.sh +34 -16
- package/pack/.claude/hooks/devrites-reviewer-readonly.sh +11 -2
- package/pack/.claude/hooks/devrites-wright-scope.sh +38 -9
- package/pack/.claude/skills/devrites-lib/scripts/doctor.sh +68 -4
- package/pack/.claude/skills/rite-doctor/SKILL.md +2 -1
- package/package.json +3 -2
- package/scripts/check-no-global-writes.sh +4 -4
- package/scripts/install-lib.sh +11 -1
- package/scripts/merge-codex-hooks.mjs +78 -0
- package/scripts/pin.sh +42 -5
- package/uninstall.sh +60 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
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.6.0](https://github.com/ViktorsBaikers/DevRites/compare/v2.5.2...v2.6.0) (2026-07-05)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
* **installer:** add Codex support ([cd19c70](https://github.com/ViktorsBaikers/DevRites/commit/cd19c70e6c6df5a38a3524c4cb3f8e9885ffedc3))
|
|
10
|
+
|
|
5
11
|
## [2.5.2](https://github.com/ViktorsBaikers/DevRites/compare/v2.5.1...v2.5.2) (2026-06-28)
|
|
6
12
|
|
|
7
13
|
### Changed
|
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ recorded-exception escape hatch instead of silent work-arounds.
|
|
|
36
36
|
archive/<slug>/ # shipped task, moved here intact (all .md preserved)
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
**Stop your AI from shipping half-baked code.** DevRites turns Claude Code into a
|
|
39
|
+
**Stop your AI from shipping half-baked code.** DevRites turns Claude Code or Codex into a
|
|
40
40
|
disciplined senior engineer — one that asks the right questions before writing a line,
|
|
41
41
|
ships features you can actually trust, and refuses to claim "done" without proof.
|
|
42
42
|
|
|
@@ -101,7 +101,7 @@ 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.
|
|
104
|
+
**Status:** [`v2.6.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v2.6.0) — see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
105
105
|
|
|
106
106
|
## Contents
|
|
107
107
|
|
|
@@ -145,8 +145,9 @@ Full rationale: [`docs/architecture.md`](docs/architecture.md).
|
|
|
145
145
|
## Install
|
|
146
146
|
|
|
147
147
|
DevRites installs **into a project** (project-local only — it never writes to
|
|
148
|
-
`~/.claude`). Install with `npx` (recommended) or the `curl | bash`
|
|
149
|
-
both run the same installer and ship skills,
|
|
148
|
+
`~/.claude` or `~/.codex`). Install with `npx` (recommended) or the `curl | bash`
|
|
149
|
+
one-liner — both run the same installer and ship Claude Code skills, Codex skills,
|
|
150
|
+
agents, **rules**, and aliases.
|
|
150
151
|
|
|
151
152
|
### Installing
|
|
152
153
|
|
|
@@ -168,7 +169,7 @@ npx devrites@latest uninstall
|
|
|
168
169
|
`npx devrites` is a thin wrapper over the same installer below — the pack is bundled in the
|
|
169
170
|
package, so the install runs **offline** and is **pinned** to the version you request
|
|
170
171
|
(`@latest`, `@1.18.0`, …). It accepts every flag the bash installer does and is still
|
|
171
|
-
project-local (it never writes to `~/.claude`). Requires `bash` — built in on macOS/Linux;
|
|
172
|
+
project-local (it never writes to `~/.claude` or `~/.codex`). Requires `bash` — built in on macOS/Linux;
|
|
172
173
|
on Windows run it inside Git Bash or WSL, or use the `curl | bash` one-liner below.
|
|
173
174
|
|
|
174
175
|
**One-liner over the network** — no `git clone` or Node required:
|
|
@@ -189,7 +190,7 @@ curl -fsSL https://raw.githubusercontent.com/ViktorsBaikers/DevRites/main/instal
|
|
|
189
190
|
|
|
190
191
|
The script is self-bootstrapping: when piped through `bash` it auto-downloads the latest
|
|
191
192
|
release tarball (or the `main` source archive as fallback) into `/tmp` and re-execs from
|
|
192
|
-
there. Requires `curl` and `tar`. No global writes, ever —
|
|
193
|
+
there. Requires `curl` and `tar`. No global writes, ever — global agent homes are refused.
|
|
193
194
|
|
|
194
195
|
**From a local checkout** (same script, no network needed):
|
|
195
196
|
|
|
@@ -208,6 +209,7 @@ Common flags:
|
|
|
208
209
|
| `--force` | Overwrite existing non-DevRites files |
|
|
209
210
|
| `--no-rules` | Skip the engineering rules |
|
|
210
211
|
| `--no-agents` | Skip the review subagents |
|
|
212
|
+
| `--no-codex` | Skip Codex support files (`.agents/skills`, `.codex/agents`, `AGENTS.md`) |
|
|
211
213
|
| `--rules-only` | Install only the engineering rules |
|
|
212
214
|
| `--short-aliases=all` | Add `/define`, `/build`, `/prove`, `/seal` short aliases (off by default) |
|
|
213
215
|
|
|
@@ -261,7 +263,8 @@ curl -fsSL https://raw.githubusercontent.com/ViktorsBaikers/DevRites/main/uninst
|
|
|
261
263
|
./uninstall.sh --dry-run # preview, change nothing
|
|
262
264
|
```
|
|
263
265
|
|
|
264
|
-
Removes only files listed in `.claude/devrites.manifest` and prunes empty dirs
|
|
266
|
+
Removes only files listed in `.claude/devrites.manifest` and prunes empty dirs,
|
|
267
|
+
including Codex mirrors when they were installed.
|
|
265
268
|
`.devrites/work/` (your feature data) is always preserved.
|
|
266
269
|
|
|
267
270
|
## Recommended setup (optional, but DevRites is much sharper with it)
|
|
@@ -282,9 +285,15 @@ investigation, cheaper context, and real browser proof. None are required.
|
|
|
282
285
|
|
|
283
286
|
## Skills
|
|
284
287
|
|
|
285
|
-
The pack ships **36 skills total** — 24 user-invocable `rite-*` workflow + utility skills, 11 model-invoked `devrites-*` specialists, plus the internal `devrites-lib` library (scripts the workflow skills run, not a command). **Prefix convention:** `rite-*` is the user-facing
|
|
288
|
+
The pack ships **36 skills total** — 24 user-invocable `rite-*` workflow + utility skills, 11 model-invoked `devrites-*` specialists, plus the internal `devrites-lib` library (scripts the workflow skills run, not a command). **Prefix convention:** `rite-*` is the user-facing command surface; `devrites-*` is internal (model-invoked, hidden from the menu). Each skill is a structured workflow with its own operating rules, anti-rationalization tables, and red flags. Engineering rules live at `.claude/rules/`; each `rite-*` skill Reads `.claude/rules/core.md` as its first step, and the other 22 rule files load on demand.
|
|
286
289
|
|
|
287
|
-
**
|
|
290
|
+
**Claude Code invocation.** Every user-invocable skill responds to **both** `/rite <verb>` (menu form — type `/rite` to discover) and `/rite-<verb>` (direct shortcut — muscle memory). The forms are equivalent: `/rite build slice-2` ≡ `/rite-build slice-2`. Use whichever reads more naturally.
|
|
291
|
+
|
|
292
|
+
**Codex invocation.** The installer mirrors the same skills to `.agents/skills/`, mirrors DevRites rules to `.agents/devrites/rules/`, injects a Codex compatibility block after each skill's front matter, generates project custom agents in `.codex/agents/`, installs Codex hooks in `.codex/hooks.json` + `.codex/hooks/`, installs the DevRites MCP server at `.codex/mcp/devrites-mcp.mjs`, and creates or merges the needed Codex guidance into `AGENTS.md`. If `AGENTS.md` already exists, DevRites adds a marked block instead of replacing your guidance. In Codex, invoke DevRites via `$rite`, `$rite-spec`, or `/skills`; if you prefer a Claude-only footprint, install with `--no-codex`. Codex must trust the project `.codex/` layer and review the hooks via `/hooks` before non-managed hooks run.
|
|
293
|
+
|
|
294
|
+
**Rules in Codex.** DevRites engineering rules are mirrored as Markdown under `.agents/devrites/rules/` because they are workflow/craft instructions, not Codex command-approval `.rules` files. The generated `AGENTS.md` block and every mirrored `.agents/skills/*/SKILL.md` tell Codex to read `.agents/devrites/rules/core.md` before workflow work and load the other `.agents/devrites/rules/*.md` files on demand.
|
|
295
|
+
|
|
296
|
+
**DevRites MCP in Codex.** The installer adds a marked `[mcp_servers.devrites]` block to `.codex/config.toml` and copies the MCP server into `.codex/mcp/`. That gives Codex deterministic tools for DevRites state and gates (`devrites_status`, `devrites_ready`, `devrites_evidence_fresh`, `devrites_acceptance`, and related workspace helpers) without relying on prose or ad-hoc shell commands.
|
|
288
297
|
|
|
289
298
|
**Custom pinned aliases** (optional). Add your own one-word shortcuts to any `rite-*` skill at runtime with `scripts/pin.sh` — useful for muscle-memory commands like `/b` → `/rite-build` or `/ship` → `/rite-ship`. The wrapper is a thin delegate (same shape the installer uses for `--short-aliases=all`); pinned aliases are manifest-tracked so `./uninstall.sh` cleans them up.
|
|
290
299
|
|
|
@@ -295,7 +304,7 @@ The pack ships **36 skills total** — 24 user-invocable `rite-*` workflow + uti
|
|
|
295
304
|
./scripts/pin.sh remove b # drop the alias
|
|
296
305
|
```
|
|
297
306
|
|
|
298
|
-
Pinned aliases live at `.claude/skills/<alias>/SKILL.md`. The script refuses `rite-*` names, unknown targets, and
|
|
307
|
+
Pinned aliases live at `.claude/skills/<alias>/SKILL.md` and mirror to `.agents/skills/<alias>/SKILL.md` when Codex support is installed. The script refuses `rite-*` names, unknown targets, and global agent homes.
|
|
299
308
|
|
|
300
309
|
### Full skill + agent inventory
|
|
301
310
|
|
|
@@ -479,7 +488,7 @@ real UI state, and **prove both layers** (contract tests + browser proof).
|
|
|
479
488
|
|
|
480
489
|
## Safety & scope
|
|
481
490
|
|
|
482
|
-
- **Project-local only.** Never writes to `~/.claude`. Manifest-managed install/uninstall.
|
|
491
|
+
- **Project-local only.** Never writes to `~/.claude` or `~/.codex`. Manifest-managed install/uninstall.
|
|
483
492
|
- **Feature scope only.** Review/simplify/polish/security stay within the active feature
|
|
484
493
|
and touched files — no project-wide refactors, no drive-by cleanup.
|
|
485
494
|
- **One slice at a time.** `/rite-build` stops after a single verified slice.
|
|
@@ -503,6 +512,8 @@ devrites/
|
|
|
503
512
|
pack/.claude/ # skills/ 36 skills — 24 public + 12 internal ─┐
|
|
504
513
|
# agents/ 13 read-only + 1 writer (slice-wright) ├─ the pack
|
|
505
514
|
# rules/ 23 rule files + README index ┘
|
|
515
|
+
installed projects # .claude/ runtime assets; .agents/skills + .codex/agents
|
|
516
|
+
# + .codex/hooks/config/mcp + AGENTS.md for Codex
|
|
506
517
|
evals/ # trigger evals (20/skill) + golden/ outcome-eval fixtures
|
|
507
518
|
docs/ # architecture · skills · command-map · usage · flow · release · cli-mcp
|
|
508
519
|
internal/ # research, development notes (gitignored)
|
|
@@ -526,7 +537,7 @@ Cross-links: [architecture](docs/architecture.md) ·
|
|
|
526
537
|
DevRites is auditable Markdown + a small set of shell scripts. The complete security
|
|
527
538
|
policy, including private vulnerability reporting and recommended managed-deployment
|
|
528
539
|
settings, lives in [`SECURITY.md`](SECURITY.md). Highlights: **project-local only**
|
|
529
|
-
(installer refuses
|
|
540
|
+
(installer refuses global Claude/Codex agent homes); **no network access** in installer or
|
|
530
541
|
skills (no remote code execution); **`!` shell injection removed** from `/rite` and
|
|
531
542
|
`/rite-status` (state loaded via a `Bash`-invoked script that reads only DevRites' own
|
|
532
543
|
state under `.devrites/`); **auto-trigger** is a deliberate design choice mitigated by
|
|
@@ -551,4 +562,4 @@ repository in package registries or plugin marketplaces* are permitted without a
|
|
|
551
562
|
distributing it, distributing modified versions, mirroring as a fork, or commercial /
|
|
552
563
|
organizational use — requires **approval on request** (ask via
|
|
553
564
|
[the repo](https://github.com/ViktorsBaikers/DevRites)). Source-available. See
|
|
554
|
-
[`LICENSE`](LICENSE). DevRites is independent software for use with Claude Code.
|
|
565
|
+
[`LICENSE`](LICENSE). DevRites is independent software for use with Claude Code and Codex.
|
package/bin/devrites.mjs
CHANGED
|
@@ -44,13 +44,14 @@ Common flags (passed straight through to the installer):
|
|
|
44
44
|
--dry-run Show the plan, change nothing
|
|
45
45
|
--force Overwrite existing non-DevRites files
|
|
46
46
|
--rules-only Install only the engineering rules
|
|
47
|
+
--no-codex Skip Codex support files (.agents, .codex, AGENTS.md)
|
|
47
48
|
--short-aliases=all Also install /define /build /prove /seal
|
|
48
49
|
--no-agents Skip the review subagents
|
|
49
50
|
|
|
50
51
|
--version Print the devrites version
|
|
51
52
|
--help Show this help (use "<subcommand> --help" for installer-level detail)
|
|
52
53
|
|
|
53
|
-
DevRites is project-local — it never writes to ~/.claude.
|
|
54
|
+
DevRites is project-local — it never writes to ~/.claude or ~/.codex.
|
|
54
55
|
Requires bash (Git Bash or WSL on Windows). No-Node fallback:
|
|
55
56
|
curl -fsSL https://raw.githubusercontent.com/ViktorsBaikers/DevRites/main/install.sh | bash
|
|
56
57
|
`);
|
package/docs/cli-mcp.md
CHANGED
|
@@ -27,14 +27,19 @@ any agent's loop or a pre-merge CI step. `devrites help` lists them all.
|
|
|
27
27
|
|
|
28
28
|
## The MCP server
|
|
29
29
|
|
|
30
|
-
`mcp/devrites-mcp.mjs`
|
|
31
|
-
|
|
30
|
+
`mcp/devrites-mcp.mjs` is a dependency-free MCP **stdio** server that exposes the
|
|
31
|
+
read/gate operations as MCP tools (`devrites_orient`, `devrites_ready`,
|
|
32
32
|
`devrites_evidence_fresh`, `devrites_acceptance`, `devrites_status`, `devrites_active`,
|
|
33
33
|
`devrites_list`, `devrites_use`). It shells out to the CLI, so it stays a thin surface over
|
|
34
34
|
the same scripts — no SDK, no dependencies.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
For Codex installs, DevRites copies the server to `.codex/mcp/devrites-mcp.mjs` and
|
|
37
|
+
adds a marked `[mcp_servers.devrites]` block to `.codex/config.toml`. After the project
|
|
38
|
+
`.codex/` layer is trusted, Codex can use those MCP tools directly.
|
|
39
|
+
|
|
40
|
+
For other MCP clients, register the source server in a project's `.mcp.json`, running
|
|
41
|
+
from the project root (it auto-finds the installed CLI; override the path with the
|
|
42
|
+
`DEVRITES_CLI` env var):
|
|
38
43
|
|
|
39
44
|
```json
|
|
40
45
|
{
|
package/docs/skills.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# All 36 skills
|
|
2
2
|
|
|
3
|
-
The pack ships **36 skills total** — 24 user-invocable `rite-*` workflow + utility skills and 11 model-invoked `devrites-*` specialists, plus the internal `devrites-lib` library skill (`user-invocable: false`, not a command) that ships the cross-cutting scripts the workflow skills run: the read-only orientation preamble and the `readiness` / `evidence-fresh` / `acceptance` gate scripts, plus the `tick-afk` / `resolve` / `close-out` state mutators. Each skill is a structured workflow with its own operating rules, anti-rationalization tables, and red flags. Engineering rules live at `.claude/rules/`; each `rite-*` skill Reads `.claude/rules/core.md` as its first step (step 0) and pulls the other 22 rule files on demand (no carrier skill, no session-start autoload). A unified `devrites` CLI and an MCP server expose the `devrites-lib` ops to any tool (see [`cli-mcp.md`](cli-mcp.md)).
|
|
3
|
+
The pack ships **36 skills total** — 24 user-invocable `rite-*` workflow + utility skills and 11 model-invoked `devrites-*` specialists, plus the internal `devrites-lib` library skill (`user-invocable: false`, not a command) that ships the cross-cutting scripts the workflow skills run: the read-only orientation preamble and the `readiness` / `evidence-fresh` / `acceptance` gate scripts, plus the `tick-afk` / `resolve` / `close-out` state mutators. Each skill is a structured workflow with its own operating rules, anti-rationalization tables, and red flags. Engineering rules live at `.claude/rules/`; each `rite-*` skill Reads `.claude/rules/core.md` as its first step (step 0) and pulls the other 22 rule files on demand (no carrier skill, no session-start autoload). The installer mirrors skills to `.agents/skills` for Codex, mirrors rules to `.agents/devrites/rules`, injects Codex-specific dispatch/rules guidance into those mirrors, generates `.codex/agents` from the DevRites review agents, installs Codex hooks in `.codex/hooks.json` + `.codex/hooks/`, merges DevRites guidance into `AGENTS.md`, and registers the project-local DevRites MCP server through `.codex/config.toml`. A unified `devrites` CLI and an MCP server expose the `devrites-lib` ops to any tool (see [`cli-mcp.md`](cli-mcp.md)).
|
|
4
4
|
|
|
5
5
|
**Naming convention.** `rite-*` is the user-facing slash-command surface (lifecycle phases plus utilities — `rite-quick`, `rite-frame`, `rite-adopt`, `rite-learn`, `rite-doctor`, `rite-prototype`, `rite-handoff`, `rite-zoom-out`, `rite-pressure-test`). `devrites-*` is internal (model-invoked, hidden from the menu) and collision-avoiding against bundled Claude Code skill names. Visibility is governed by each skill's `user-invocable:` flag; the prefix mirrors it.
|
|
6
6
|
|
|
@@ -31,7 +31,7 @@ single `## Gotchas` heading is a possible future normalization; the content alre
|
|
|
31
31
|
|
|
32
32
|
## Commands quick reference
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
In Claude Code, every user-invocable skill responds to **both** `/rite <verb>` (menu form — type `/rite` for the discoverable entry point) and `/rite-<verb>` (direct shortcut). Both hit the same skill; use whichever reads more naturally. In Codex, use `$rite`, `$rite-<verb>`, or `/skills` to select the mirrored skill from `.agents/skills`; when a skill dispatches a DevRites subagent, the Codex mirror instructs Codex to use the matching `.codex/agents/devrites-*.toml` custom agent. The generated `AGENTS.md` block tells Codex to read `.agents/devrites/rules/core.md` before DevRites workflow work.
|
|
35
35
|
|
|
36
36
|
| Menu form | Direct shortcut | Phase | Does |
|
|
37
37
|
|---|---|---|---|
|