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 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.5.2`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v2.5.2) — see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
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` one-liner —
149
- both run the same installer and ship skills, agents, **rules**, and aliases.
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 — `~/.claude` is refused.
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 slash-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.
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
- **Two invocation forms.** 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.
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 writes to `~/.claude`.
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 any target under `~/.claude`); **no network access** in installer or
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` (in the DevRites source) is a dependency-free MCP **stdio** server
31
- that exposes the read/gate operations as MCP tools (`devrites_orient`, `devrites_ready`,
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
- Register it in a project's `.mcp.json`, running from the project root (it auto-finds the
37
- installed CLI; override the path with the `DEVRITES_CLI` env var):
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
- 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.
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
  |---|---|---|---|