devrites 2.4.0 → 2.5.1
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 +22 -2
- package/README.md +1 -1
- package/install.sh +31 -2
- package/pack/.claude/agents/devrites-security-auditor.md +6 -10
- package/pack/.claude/rules/agents.md +3 -2
- package/pack/.claude/rules/core.md +1 -1
- package/pack/.claude/rules/prose-style.md +1 -1
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +6 -7
- package/pack/.claude/skills/devrites-audit/SKILL.md +2 -2
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +3 -3
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-doubt/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +1 -1
- package/pack/.claude/skills/devrites-interview/SKILL.md +1 -1
- package/pack/.claude/skills/{rite-seal → devrites-lib}/reference/parallel-dispatch.md +19 -7
- package/pack/.claude/skills/devrites-lib/scripts/doubt-coverage.sh +35 -15
- package/pack/.claude/skills/devrites-lib/scripts/rites.sh +41 -0
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +1 -1
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +1 -1
- package/pack/.claude/skills/rite/SKILL.md +7 -25
- package/pack/.claude/skills/rite/reference/menu.md +10 -3
- package/pack/.claude/skills/rite-adopt/SKILL.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +1 -1
- package/pack/.claude/skills/rite-build/SKILL.md +56 -50
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +7 -3
- package/pack/.claude/skills/rite-define/SKILL.md +1 -1
- package/pack/.claude/skills/rite-doctor/SKILL.md +1 -1
- package/pack/.claude/skills/rite-frame/SKILL.md +1 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +4 -4
- package/pack/.claude/skills/rite-learn/SKILL.md +1 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +5 -1
- package/pack/.claude/skills/rite-polish/SKILL.md +1 -1
- package/pack/.claude/skills/rite-polish/reference/code.md +4 -0
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +3 -2
- package/pack/.claude/skills/rite-prototype/SKILL.md +5 -3
- package/pack/.claude/skills/rite-prove/SKILL.md +1 -1
- package/pack/.claude/skills/rite-quick/SKILL.md +1 -1
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +3 -2
- package/pack/.claude/skills/rite-review/SKILL.md +4 -4
- package/pack/.claude/skills/rite-review/reference/cognitive-load.md +4 -2
- package/pack/.claude/skills/rite-review/reference/five-axis-review.md +1 -1
- package/pack/.claude/skills/rite-review/reference/security-review.md +5 -0
- package/pack/.claude/skills/rite-seal/SKILL.md +18 -12
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +18 -2
- package/pack/.claude/skills/rite-ship/SKILL.md +1 -1
- package/pack/.claude/skills/rite-spec/SKILL.md +21 -2
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +12 -4
- package/pack/.claude/skills/rite-status/SKILL.md +1 -1
- package/pack/.claude/skills/rite-temper/SKILL.md +1 -1
- package/pack/.claude/skills/rite-vet/SKILL.md +1 -1
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +3 -2
- package/package.json +1 -1
- package/pack/.claude/skills/rite-review/reference/parallel-dispatch.md +0 -62
package/CHANGELOG.md
CHANGED
|
@@ -2,11 +2,31 @@
|
|
|
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.5.1](https://github.com/ViktorsBaikers/DevRites/compare/v2.5.0...v2.5.1) (2026-06-28)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
* **rite:** ask HITL build gaps inline instead of deferring to resolve ([33266f1](https://github.com/ViktorsBaikers/DevRites/commit/33266f19d9ad30f53fc8ef267f486a5562be61c7))
|
|
10
|
+
|
|
11
|
+
## [2.5.0](https://github.com/ViktorsBaikers/DevRites/compare/v2.4.0...v2.5.0) (2026-06-28)
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
* **installer:** prune files dropped from the pack on update ([830352a](https://github.com/ViktorsBaikers/DevRites/commit/830352ae19b2726cadd627ab7ca4f12b1b85c7fc))
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
* **devrites:** close skill-pack SSOT drift + consolidate review dispatch ([649db40](https://github.com/ViktorsBaikers/DevRites/commit/649db4040a120d04c35e91b8f69d51f610df9a5f))
|
|
20
|
+
|
|
21
|
+
## [2.4.0](https://github.com/ViktorsBaikers/DevRites/compare/v2.3.0...v2.4.0) (2026-06-28)
|
|
6
22
|
|
|
7
23
|
### Added
|
|
8
24
|
|
|
9
|
-
* **devrites:** enforce the doubt gate from invocation through seal ([
|
|
25
|
+
* **devrites:** enforce the doubt gate from invocation through seal ([6ff29d0](https://github.com/ViktorsBaikers/DevRites/commit/6ff29d0caa3384d6ba85f480369d0fb01d80fad1))
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
* **devrites:** calibrate doubt-coverage and close per-slice skip ([5bc09eb](https://github.com/ViktorsBaikers/DevRites/commit/5bc09eb94062f728bd855a2a581784e4e1197522))
|
|
10
30
|
|
|
11
31
|
## [2.3.0](https://github.com/ViktorsBaikers/DevRites/compare/v2.2.0...v2.3.0) (2026-06-23)
|
|
12
32
|
|
package/README.md
CHANGED
|
@@ -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.5.1`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v2.5.1) — see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
105
105
|
|
|
106
106
|
## Contents
|
|
107
107
|
|
package/install.sh
CHANGED
|
@@ -162,7 +162,7 @@ mkdir -p "$TMP_GEN_DIR"
|
|
|
162
162
|
cleanup() { rm -f "$MANIFEST_TMP"; rm -rf "$TMP_GEN_DIR"; }
|
|
163
163
|
trap cleanup EXIT
|
|
164
164
|
|
|
165
|
-
N_INSTALL=0; N_OVERWRITE=0; N_SKIP=0
|
|
165
|
+
N_INSTALL=0; N_OVERWRITE=0; N_SKIP=0; N_PRUNE=0
|
|
166
166
|
|
|
167
167
|
# install_file SRC RELDEST — copy one file, honoring conflict + manifest rules.
|
|
168
168
|
install_file() {
|
|
@@ -325,6 +325,35 @@ case "$ALIAS_MODE" in
|
|
|
325
325
|
esac
|
|
326
326
|
DR_INSTALL_FLAGS="$(printf '%s' "$DR_INSTALL_FLAGS" | sed 's/^ //')"
|
|
327
327
|
|
|
328
|
+
# ---- prune files dropped since the previous install ----------------------
|
|
329
|
+
# install_file only adds/overwrites; a file the prior manifest tracked but the
|
|
330
|
+
# current pack no longer ships would orphan on an in-place update (the path
|
|
331
|
+
# update.sh takes: download release → re-run install.sh --force). Remove
|
|
332
|
+
# exactly those: managed paths only (listed in the OLD manifest, absent from the
|
|
333
|
+
# new one), never unmanaged user files and never .devrites/ runtime state.
|
|
334
|
+
if [ -f "$PREV_MANIFEST" ]; then
|
|
335
|
+
while IFS= read -r _rel; do
|
|
336
|
+
case "$_rel" in ''|\#*) continue ;; esac # skip comments + blank lines
|
|
337
|
+
case "$_rel" in .devrites/*) continue ;; esac # never touch runtime state
|
|
338
|
+
grep -Fxq -- "$_rel" "$MANIFEST_TMP" && continue # still shipped → keep
|
|
339
|
+
_dead="$TARGET/$_rel"
|
|
340
|
+
[ -e "$_dead" ] || continue # already gone
|
|
341
|
+
if [ "$DRYRUN" -eq 1 ]; then
|
|
342
|
+
dr_say " [prune] $_rel ${DR_Y}(dropped from pack)${DR_R}"
|
|
343
|
+
else
|
|
344
|
+
rm -f "$_dead"
|
|
345
|
+
# tidy now-empty parent dirs, bounded strictly below .claude/
|
|
346
|
+
_d="$(dirname "$_dead")"
|
|
347
|
+
while [ "$_d" != "$TARGET/.claude" ] && [ "$_d" != "$TARGET" ] && [ "$_d" != "/" ]; do
|
|
348
|
+
rmdir "$_d" 2>/dev/null || break
|
|
349
|
+
_d="$(dirname "$_d")"
|
|
350
|
+
done
|
|
351
|
+
dr_say " [prune] $_rel"
|
|
352
|
+
fi
|
|
353
|
+
N_PRUNE=$((N_PRUNE+1))
|
|
354
|
+
done < "$PREV_MANIFEST"
|
|
355
|
+
fi
|
|
356
|
+
|
|
328
357
|
# ---- write manifest ------------------------------------------------------
|
|
329
358
|
if [ "$DRYRUN" -eq 0 ]; then
|
|
330
359
|
mkdir -p "$TARGET/.claude"
|
|
@@ -340,7 +369,7 @@ fi
|
|
|
340
369
|
# ---- summary -------------------------------------------------------------
|
|
341
370
|
dr_say ""
|
|
342
371
|
dr_ok "DevRites $([ "$DRYRUN" -eq 1 ] && echo 'plan complete (dry run)' || echo installed)"
|
|
343
|
-
dr_say " installed: $N_INSTALL overwritten: $N_OVERWRITE skipped(conflict): $N_SKIP"
|
|
372
|
+
dr_say " installed: $N_INSTALL overwritten: $N_OVERWRITE skipped(conflict): $N_SKIP pruned: $N_PRUNE"
|
|
344
373
|
dr_say ""
|
|
345
374
|
dr_say "${DR_B}Commands:${DR_R} /rite /rite-spec /rite-define /rite-plan /rite-build /rite-prove /rite-polish /rite-review /rite-seal /rite-status"
|
|
346
375
|
dr_say "${DR_B}Utilities:${DR_R} /rite-pressure-test /rite-zoom-out /rite-prototype /rite-handoff"
|
|
@@ -20,16 +20,12 @@ Workspace `.devrites/work/<slug>/`: read `spec.md` (data model / API / affected
|
|
|
20
20
|
`decisions.md`, `touched-files.md`. Run `git diff` and read the touched files.
|
|
21
21
|
|
|
22
22
|
## Audit (feature scope, OWASP-oriented)
|
|
23
|
-
- **
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- **SSRF / outbound** — URL allowlist/validation; timeouts; no untrusted reflection.
|
|
30
|
-
- **Misconfiguration** — safe defaults, debug off, CORS scoped, headers per project.
|
|
31
|
-
- **Dependencies** — new/updated packages free of known-vuln versions.
|
|
32
|
-
- **Deserialization** of untrusted data.
|
|
23
|
+
Walk the **single-sourced OWASP-web checklist** — injection, access control / IDOR, auth /
|
|
24
|
+
session / secrets, sensitive-data exposure, SSRF / outbound, misconfiguration, vulnerable
|
|
25
|
+
dependencies, unsafe deserialization — in
|
|
26
|
+
[`../skills/rite-review/reference/security-review.md`](../skills/rite-review/reference/security-review.md).
|
|
27
|
+
Apply each against the diff adversarially; the checklist is the *what*, this agent is the
|
|
28
|
+
independent *who*.
|
|
33
29
|
|
|
34
30
|
## AI / LLM surface (only when the feature calls a model / builds an agent / does RAG / exposes tool-use)
|
|
35
31
|
Apply the OWASP LLM Top 10 (`.claude/rules/security.md` § AI / LLM features):
|
|
@@ -90,8 +90,9 @@ The prefix mirrors visibility:
|
|
|
90
90
|
names (`prototype`, `handoff`, `diagnose`, etc.) — peer skill packs may
|
|
91
91
|
collide on the bare names internally even though these never appear in the
|
|
92
92
|
user's slash menu. Parallel reviewer fan-out at `/rite-seal` is no longer
|
|
93
|
-
a skill — it lives as a reference file
|
|
94
|
-
(`.claude/skills/
|
|
93
|
+
a skill — it lives as a shared reference file
|
|
94
|
+
(`.claude/skills/devrites-lib/reference/parallel-dispatch.md`), pointed at by both
|
|
95
|
+
`/rite-review` and `/rite-seal`.
|
|
95
96
|
|
|
96
97
|
The `/rite` menu carries the routing previously held by `devrites-selector`, which
|
|
97
98
|
has been removed. `user-invocable:` in each `SKILL.md` is the source of truth; the
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# DevRites core rules — always-on
|
|
2
2
|
|
|
3
3
|
The minimal always-on subset of the DevRites engineering rules. DevRites
|
|
4
|
-
`rite-*` skills Read `.claude/rules/core.md` as their first step; the other
|
|
4
|
+
`rite-*` skills Read `.claude/rules/core.md` as their first step; the other 22
|
|
5
5
|
rule files in this directory load on demand by the phase that needs them (see
|
|
6
6
|
`README.md` for the index).
|
|
7
7
|
|
|
@@ -31,7 +31,7 @@ means killing filler; in technical writing it means keeping the precise list.
|
|
|
31
31
|
| False binary contrast — "It's not X, it's Y", "The question isn't X. It's Y", "not just X but Y" | State Y directly. Drop the negation. |
|
|
32
32
|
| Fake profundity — "Let that sink in", "This is the deepest problem", "make no mistake" | Show the thing; trust the reader to weigh it. |
|
|
33
33
|
| Vague declaratives — "The implications are significant", "the reasons are structural" | Name the specific implication or reason. |
|
|
34
|
-
| Marketing adjectives
|
|
34
|
+
| Marketing adjectives *selling* the work — "a robust, scalable, seamless, production-ready solution" | Say what it does and what proves it. (Calibrated: "robust" / "scalable" / "comprehensive" are legitimate in a *precise technical claim* — "robust to a dropped connection, see `evidence.md`" — only slop when they sell. The canonical word-by-word tiering is `devrites-prose-craft/reference/banned-phrases.md` § AI vocabulary.) |
|
|
35
35
|
| Hedging stacks — "it's important to note that, generally, in most cases" | Make the claim, or cut it. |
|
|
36
36
|
| False agency — "the data tells us", "the complaint becomes a fix", "the decision emerges" | Name who did it. "The grader reads X and returns Y." |
|
|
37
37
|
| Meta-narration — "In this section we'll…", "Let me walk you through…", "as we'll see" | Let the text move; delete the announcement. |
|
|
@@ -35,11 +35,10 @@ contract. Neither side blocks on the other.
|
|
|
35
35
|
|
|
36
36
|
## Doubt the contract
|
|
37
37
|
Before standing the interface, run `devrites-doubt` — boundary decisions are exactly the
|
|
38
|
-
non-trivial kind worth an adversarial check.
|
|
39
|
-
`decisions.md`.
|
|
38
|
+
non-trivial kind worth an adversarial check.
|
|
40
39
|
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
|
|
40
|
+
## Done when
|
|
41
|
+
The contract is complete only when **every** field carries a type + optionality + unit,
|
|
42
|
+
**every** success and error status code is enumerated with its error-body shape, the
|
|
43
|
+
`devrites-doubt` verdict is accept, and the contract + rationale are recorded in
|
|
44
|
+
`decisions.md`. A contract that pins only the happy-path shape is not done.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-audit
|
|
3
|
-
description:
|
|
3
|
+
description: Audit the active feature read-only on one axis — security (OWASP, trust boundary, secrets), perf (measure-first, N+1, CWV), or simplify (Chesterton's Fence, deletion test). Use when the user says "security review", "perf check", or "simplify this". Not for write actions or whole-project audits.
|
|
4
4
|
argument-hint: "<security | perf | simplify>"
|
|
5
5
|
user-invocable: false
|
|
6
6
|
---
|
|
@@ -52,7 +52,7 @@ reconciles.
|
|
|
52
52
|
|
|
53
53
|
Rules for the dispatch:
|
|
54
54
|
|
|
55
|
-
- **One subagent per call.** This skill is not a fan-out; multi-axis fan-out is `/rite-seal`'s job (see `.claude/skills/
|
|
55
|
+
- **One subagent per call.** This skill is not a fan-out; multi-axis fan-out is `/rite-seal`'s job (see `.claude/skills/devrites-lib/reference/parallel-dispatch.md`).
|
|
56
56
|
- **No author context.** Do not pass the caller's analysis or framing of the change to the subagent — fresh, adversarial read is the point.
|
|
57
57
|
- **No cross-pollination.** If the caller wants more than one axis, dispatch each axis in its own `Task` call in a single message so the runtime parallelizes; each subagent gets only its own brief.
|
|
58
58
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-browser-proof
|
|
3
|
-
description: Prove UI behavior
|
|
3
|
+
description: Prove UI behavior in a real browser, capturing screenshots, console, network, interactions, and Core Web Vitals to `browser-evidence.md`. Use when the user says "check the UI in browser", "screenshot this", "prove it renders", or a Core Web Vital / perf budget needs measuring. Not for backend-only features.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -46,7 +46,7 @@ reads it in Measured mode) and note the tool + route in `browser-evidence.md`. N
|
|
|
46
46
|
a lab value as a field value or vice versa.
|
|
47
47
|
|
|
48
48
|
## Evidence schema → `browser-evidence.md`
|
|
49
|
-
Tooling used · route(s) · viewports (
|
|
49
|
+
Tooling used · route(s) · viewports (320/768/1024/1440 — the canonical responsive set; see [`devrites-frontend-craft/reference/quality-standards.md`](../devrites-frontend-craft/reference/quality-standards.md)) · screenshot paths **opened and
|
|
50
50
|
described** · console errors/warnings · network failures · interaction path tested ·
|
|
51
51
|
accessibility basics · responsive checks · **CWV capture** (tool + route + each
|
|
52
52
|
source-labeled value, or `pending (manual)` + the command) · **Visual Verdict** (the
|
|
@@ -67,7 +67,7 @@ error / success / disabled / long-content), plus key **design-reference** diffs
|
|
|
67
67
|
not the markup:
|
|
68
68
|
|
|
69
69
|
```markdown
|
|
70
|
-
## Visual Verdict — <route / component> (viewport:
|
|
70
|
+
## Visual Verdict — <route / component> (viewport: 320 / 1440)
|
|
71
71
|
| Criterion (source) | Expected | Observed (screenshot) | Verdict | Severity |
|
|
72
72
|
|---|---|---|---|---|
|
|
73
73
|
| empty state (brief) | welcoming copy + primary action | renders, copy present | PASS | — |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-debug-recovery
|
|
3
|
-
description: Debug systematically when tests, builds, or runtime/browser checks fail —
|
|
3
|
+
description: Debug systematically when tests, builds, or runtime/browser checks fail — reproduce, rank hypotheses, fix the root cause, regression-test. Use when the user says "debug this", "the build is red", or "the tests fail". Not for code review or flaky tests (fix the flake first).
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-doubt
|
|
3
|
-
description: Stress-test a single non-trivial decision
|
|
3
|
+
description: Stress-test a single non-trivial decision with an adversarial `devrites-doubt-reviewer` for an independent take. Use when the user says "are we sure", "double-check this", "what could go wrong", or a boundary / data-model / auth / public-API / migration change is about to commit. Not for post-merge review or trivial choices.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-frontend-craft
|
|
3
|
-
description: Implement frontend at senior designer-engineer quality — every state covered, anti-AI-slop, WCAG 2.2 AA. Use when the user says "build the UI", "
|
|
3
|
+
description: Implement frontend at senior designer-engineer quality — every state covered, anti-AI-slop, WCAG 2.2 AA. Use when the user says "build the UI", "design system", "a11y", or `/rite-build` detects UI. Not for polishing a built feature or design exploration.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ brief inline.
|
|
|
25
25
|
- success
|
|
26
26
|
- disabled / read-only / no-permission
|
|
27
27
|
- long content / overflow / many items
|
|
28
|
-
5. **Responsive** — how it reflows from small (
|
|
28
|
+
5. **Responsive** — how it reflows from small (320) to large (1440). What collapses,
|
|
29
29
|
stacks, hides, or scrolls.
|
|
30
30
|
6. **Accessibility** — focus order, labels, contrast, keyboard operability, semantics.
|
|
31
31
|
7. **Interaction model** — what's inline vs. navigated vs. (rarely) a modal; optimistic
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-interview
|
|
3
|
-
description:
|
|
3
|
+
description: Interview the user one question at a time to extract what they want. Use when the user says "interview me", "I'm not sure what I want", or `/rite-spec` / `/rite-define` flags the ask as underspecified. Not for casual clarification or ideation (use `/rite-pressure-test`).
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
# Parallel review dispatch
|
|
2
2
|
|
|
3
|
-
How `/rite-review` and `/rite-seal` fan out the fresh-context review subagents under
|
|
3
|
+
How `/rite-review` and `/rite-seal` fan out the fresh-context review subagents under
|
|
4
|
+
`.claude/agents/`. The **single source** for the dispatch + reconciliation contract — loaded on
|
|
5
|
+
demand by the calling skill (each points here); not a skill itself.
|
|
4
6
|
|
|
5
|
-
DevRites ships ten fresh-context review subagents under `.claude/agents/` (plus the
|
|
7
|
+
DevRites ships ten fresh-context review subagents under `.claude/agents/` (plus the
|
|
8
|
+
write-capable `devrites-slice-wright`, which is not a reviewer). Eight are post-build reviewers
|
|
9
|
+
used at the seal / multi-axis review; the other two are gate-specific and *not* part of this
|
|
10
|
+
fan-out — `devrites-strategy-reviewer` is **pre-plan** (it judges the spec for `/rite-temper`)
|
|
11
|
+
and `devrites-plan-reviewer` is **pre-build** (it judges the plan for `/rite-vet`). The seal and
|
|
12
|
+
the multi-axis review need most of the post-build reviewers running **at the same time**, on the
|
|
13
|
+
same workspace + diff, so the verdicts don't contaminate each other.
|
|
6
14
|
|
|
7
|
-
Pattern: delegate to specialized agents with isolated context, brief each one precisely, run
|
|
15
|
+
Pattern: delegate to specialized agents with isolated context, brief each one precisely, run
|
|
16
|
+
them concurrently, reconcile on return.
|
|
8
17
|
|
|
9
18
|
## When to use which subagent
|
|
10
19
|
|
|
11
20
|
| Subagent | Always | Conditional |
|
|
12
21
|
|---|---|---|
|
|
13
22
|
| `devrites-spec-reviewer` | `/rite-review` Spec axis; `/rite-seal` | — |
|
|
14
|
-
| `devrites-code-reviewer` | `/rite-review`
|
|
23
|
+
| `devrites-code-reviewer` | `/rite-review` Code-review axis; `/rite-seal` | — |
|
|
15
24
|
| `devrites-test-analyst` | `/rite-seal` | — |
|
|
16
25
|
| `devrites-frontend-reviewer` | — | UI files in the diff |
|
|
17
26
|
| `devrites-security-auditor` | — | input / auth / data / external integrations / secrets in scope |
|
|
@@ -19,6 +28,9 @@ Pattern: delegate to specialized agents with isolated context, brief each one pr
|
|
|
19
28
|
| `devrites-doubt-reviewer` | — | a non-trivial decision is being stood up (called from `devrites-doubt`) |
|
|
20
29
|
| `devrites-simplifier-reviewer` | — | `/rite-polish` Phase 1 audit (called from `devrites-audit simplify`) |
|
|
21
30
|
|
|
31
|
+
One entity, one name: the `devrites-code-reviewer`'s axis is the **Code-review axis** everywhere
|
|
32
|
+
(at both `/rite-review` and `/rite-seal`) — don't rename it per caller.
|
|
33
|
+
|
|
22
34
|
## Dispatch shape
|
|
23
35
|
|
|
24
36
|
For each chosen subagent, the caller uses the `Task` tool with this prompt shape:
|
|
@@ -58,12 +70,12 @@ Rules:
|
|
|
58
70
|
|
|
59
71
|
When the subagents return:
|
|
60
72
|
|
|
61
|
-
1. **Quote verbatim.** Place each subagent's findings under its own `## <axis>` heading in `review.md` / `seal.md`. Do not merge, re-rank, or summarize.
|
|
62
|
-
2. **Surface contradictions explicitly.** "Spec axis says complete,
|
|
73
|
+
1. **Quote verbatim.** Place each subagent's findings under its own `## <axis>` heading in `review.md` / `seal.md`. Do not merge, re-rank, or summarize. `devrites-code-reviewer` runs its **full** documented discipline (tests-first, correctness, readability, architecture, maintainability, standards); the inline lead **reconciles** the returned reports — it does not re-run those same axes itself.
|
|
74
|
+
2. **Surface contradictions explicitly.** "Spec axis says complete, Code-review axis says untestable" is a finding, not noise. The caller decides at the gate.
|
|
63
75
|
3. **Severity is the gate, not a score.** Sum the labels (`Critical / Important / Suggestion / Nit / FYI`) and apply the caller's gate (`/rite-seal` blocks on `Critical == 0`; `/rite-review` reports counts).
|
|
64
76
|
4. **One scale.** All subagents use the same five-label scale (Critical / Important / Suggestion / Nit / FYI). Reject any subagent output that invents its own. **Exception:** `devrites-simplifier-reviewer` deliberately emits only Suggestion / Nit / FYI (it is non-blocking by design) — that is a valid subset of the scale, not an invented one; do not reject it during reconciliation.
|
|
65
77
|
5. **Consensus roll-up (after the verbatim per-axis record).** Keep every axis's findings verbatim under its `## <axis>` heading (above), then add one deduped roll-up the gate reads: where **≥2 axes flag the same `file:line`**, raise it to the top and mark it *consensus* — independent corroboration raises confidence. A lone low-confidence finding with no `file:line` or evidence anchor drops out of the roll-up (it stays in its per-axis section). The roll-up reduces noise without hiding any axis — the verbatim sections are the audit trail; the roll-up is the actionable summary the gate acts on.
|
|
66
78
|
|
|
67
79
|
## Fallback
|
|
68
80
|
|
|
69
|
-
If the `Task` tool is unavailable in the current environment, the caller runs the relevant subagent discipline **inline** in its own context and flags the result as a fallback (not an independent review). The seal weighs the fallback differently — see [
|
|
81
|
+
If the `Task` tool is unavailable in the current environment, the caller runs the relevant subagent discipline **inline** in its own context and flags the result as a fallback (not an independent review). The seal weighs the fallback differently — see [`../../rite-seal/reference/risk-and-rollback.md`](../../rite-seal/reference/risk-and-rollback.md).
|
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# doubt-coverage.sh — did the build doubt the decisions it stood?
|
|
3
|
-
# Deterministic, zero-token.
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
3
|
+
# Deterministic, zero-token. Two checks, both sourced from records /rite-build writes:
|
|
4
|
+
# 1. decisions.md `## Decisions stood` — each stood decision ends `— doubt: <verdict>`; a
|
|
5
|
+
# `doubt: MISSING` token means the decision was recorded but never doubted (the unambiguous
|
|
6
|
+
# skip — caught even when only some slices skipped doubt).
|
|
7
|
+
# 2. footprint.log — `doubt` lines vs `wright` lines; zero doubt across any wright run is the
|
|
8
|
+
# coarse "no doubt ran at all" signal the seal then verifies against decisions.md.
|
|
9
|
+
# It cannot prove a 1:1 verdict-per-decision match beyond what the build recorded — the seal's
|
|
10
|
+
# prose gate (step 4a) + the reviewer fan-out judge the rest.
|
|
9
11
|
#
|
|
10
12
|
# doubt-coverage.sh <slug>
|
|
11
13
|
#
|
|
12
|
-
# Exit: 0 = doubt
|
|
13
|
-
# 1 = wright dispatch(es)
|
|
14
|
-
#
|
|
15
|
-
# decision — auth / public-API / migration — with no verdict).
|
|
14
|
+
# Exit: 0 = doubt covered, or not assessable (no log / no wright / inline build) → pass.
|
|
15
|
+
# 1 = footprint shows wright dispatch(es) but ZERO doubt → no doubt ran at all; a prompt to
|
|
16
|
+
# VERIFY against decisions.md (every-slice-trivial passes; a skipped decision is a finding).
|
|
16
17
|
# 2 = usage.
|
|
18
|
+
# 3 = decisions.md records a stood decision with `doubt: MISSING` → doubt was definitively
|
|
19
|
+
# skipped for a decision on record. The seal treats it as a finding.
|
|
17
20
|
set -u
|
|
18
21
|
|
|
19
22
|
slug="${1:-}"
|
|
20
23
|
[ -n "$slug" ] || { echo "usage: doubt-coverage.sh <slug>" >&2; exit 2; }
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
dir=".devrites/work/$slug"
|
|
26
|
+
log="$dir/footprint.log"
|
|
27
|
+
dec="$dir/decisions.md"
|
|
28
|
+
|
|
29
|
+
# A recorded stood decision that was never doubted is the unambiguous failure — check it first,
|
|
30
|
+
# and on every path (it survives the inline-build case below, where the footprint heuristic can't).
|
|
31
|
+
if [ -f "$dec" ] && grep -q 'doubt: MISSING' "$dec"; then
|
|
32
|
+
echo "doubt-coverage: SKIPPED — a '## Decisions stood' entry in decisions.md has doubt: MISSING."
|
|
33
|
+
echo "A decision was stood and recorded but never doubted. Re-dispatch doubt or escalate."
|
|
34
|
+
exit 3
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
# Inline build (Task tool unavailable): the wright + doubt ran in-context, dispatching nothing,
|
|
38
|
+
# so the footprint heuristic does not apply — the decisions.md check above is the assessment.
|
|
39
|
+
if [ -f "$dir/.reconcile-inline" ]; then
|
|
40
|
+
echo "doubt-coverage: inline build (.reconcile-inline) — footprint heuristic n/a; no MISSING"
|
|
41
|
+
echo "verdict recorded. Verify by hand that each stood decision carries a devrites-doubt verdict."
|
|
42
|
+
exit 0
|
|
43
|
+
fi
|
|
44
|
+
|
|
23
45
|
if [ ! -f "$log" ]; then
|
|
24
46
|
echo "doubt-coverage: no footprint log — nothing to assess (pass)"
|
|
25
47
|
exit 0
|
|
@@ -27,13 +49,11 @@ fi
|
|
|
27
49
|
|
|
28
50
|
w=$(awk '$2=="wright"{n++} END{print n+0}' "$log")
|
|
29
51
|
d=$(awk '$2=="doubt"{n++} END{print n+0}' "$log")
|
|
30
|
-
|
|
31
52
|
echo "doubt-coverage: $w wright · $d doubt"
|
|
32
53
|
|
|
33
54
|
if [ "$w" -gt 0 ] && [ "$d" -eq 0 ]; then
|
|
34
|
-
echo "doubt-coverage:
|
|
35
|
-
echo "'Decisions stood' was genuinely empty, or
|
|
36
|
-
echo "decisions.md before GO."
|
|
55
|
+
echo "doubt-coverage: no doubt dispatched across $w wright run(s). Either every slice's"
|
|
56
|
+
echo "'Decisions stood' was genuinely empty, or doubt was skipped — verify against decisions.md."
|
|
37
57
|
exit 1
|
|
38
58
|
fi
|
|
39
59
|
exit 0
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# rites.sh — locate and run a devrites-lib helper by name, across install layouts.
|
|
3
|
+
#
|
|
4
|
+
# Usage: rites.sh <name> [args...]
|
|
5
|
+
# <name> = helper basename without extension (preamble, readiness, reconcile,
|
|
6
|
+
# stuck, footprint, test-integrity, progress, conventions, tick-afk, ...).
|
|
7
|
+
#
|
|
8
|
+
# Runs <this-dir>/<name>.sh — or <name>.py via python3 — propagating its exit code
|
|
9
|
+
# unchanged, so callers that read `$?` (readiness/reconcile/test-integrity/tick-afk)
|
|
10
|
+
# keep working. A missing helper, or a .py helper with no python3, prints a degraded
|
|
11
|
+
# note to stderr and exits 0 (degraded-but-continue, the same standing as the inline
|
|
12
|
+
# `|| echo "(... unavailable)"` fallback this replaces).
|
|
13
|
+
#
|
|
14
|
+
# This is the single home for the three-layout script-resolution dance; callers only
|
|
15
|
+
# locate THIS script (one target) and name the helper they want.
|
|
16
|
+
set -u
|
|
17
|
+
|
|
18
|
+
dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)" || dir="."
|
|
19
|
+
name="${1:-}"
|
|
20
|
+
if [ -z "$name" ]; then
|
|
21
|
+
echo "rites: usage: rites.sh <name> [args...]" >&2
|
|
22
|
+
exit 2
|
|
23
|
+
fi
|
|
24
|
+
shift
|
|
25
|
+
|
|
26
|
+
sh="$dir/$name.sh"
|
|
27
|
+
py="$dir/$name.py"
|
|
28
|
+
|
|
29
|
+
if [ -f "$sh" ]; then
|
|
30
|
+
exec bash "$sh" "$@"
|
|
31
|
+
fi
|
|
32
|
+
if [ -f "$py" ]; then
|
|
33
|
+
if command -v python3 >/dev/null 2>&1; then
|
|
34
|
+
exec python3 "$py" "$@"
|
|
35
|
+
fi
|
|
36
|
+
echo "(devrites helper '$name' needs python3 — skipped)" >&2
|
|
37
|
+
exit 0
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
echo "(devrites helper '$name' unavailable on this install)" >&2
|
|
41
|
+
exit 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-prose-craft
|
|
3
|
-
description: Write the artifacts and chat replies a senior engineer would — direct, specific, human voice
|
|
3
|
+
description: Write the artifacts and chat replies a senior engineer would — direct, specific, human voice, with the default LLM tells stripped. Use when a DevRites phase writes prose (spec.md, plan.md, decisions.md, review.md, seal.md, commit/PR bodies) or a user-facing reply, and as the catch pass in /rite-polish. Not for code comments and naming (the build-time anti-slop charter covers those) or UI craft (use devrites-frontend-craft).
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-refresh-indexes
|
|
3
|
-
description: Keep the optional code-intelligence indexes — codebase-memory-mcp, codegraph, graphify — current after code changes so the next structural lookup reads live code
|
|
3
|
+
description: Keep the optional code-intelligence indexes — codebase-memory-mcp, codegraph, graphify — current after code changes so the next structural lookup reads live code. Use when a structural lookup disagrees with the live code, after a large change before a structural query, or the user says "reindex". The Stop hook does this automatically; this skill is the manual force + the reference for it. Not for agentmemory (a separate, judgment-based store).
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-source-driven
|
|
3
|
-
description: Verify uncertain framework or library behavior against official docs or installed source before relying on it, then record the source in `evidence.md` / `decisions.md`. Use when the user says "check the docs", "
|
|
3
|
+
description: Verify uncertain framework or library behavior against official docs or installed source before relying on it, then record the source in `evidence.md` / `decisions.md`. Use when the user says "check the docs", "verify this assumption", or build hits an unfamiliar framework call. Not for project-internal code or trivial stdlib calls.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-ux-shape
|
|
3
|
-
description: Plan the UX/UI before any code — produce the feature-level `design-brief.md`
|
|
3
|
+
description: Plan the UX/UI before any code — produce the feature-level `design-brief.md` the build then targets. Use when `/rite-spec` detects UI, or the user says "shape the UX" or "plan the UI before coding". Not for building (use `devrites-frontend-craft`), polishing a built UI (use `/rite-polish`), or throwaway exploration (use `/rite-prototype`).
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -40,6 +40,7 @@ F=.claude/skills/rite-$V/SKILL.md
|
|
|
40
40
|
| `ship` | `/rite-ship` | type-GO + commit/push/tag, then archive the task |
|
|
41
41
|
| `status [slug]` | `/rite-status` | active feature, next action, evidence |
|
|
42
42
|
| `doctor` | `/rite-doctor` | health check — install integrity, stale ACTIVE, orphaned gates, hook wiring |
|
|
43
|
+
| `learn [--mine \| "<lesson>"]` | `/rite-learn` | review the captured learning ledger → promote recurring lessons to project rules / principles |
|
|
43
44
|
| `use <slug>` | (inline) | switch the active feature — re-point `.devrites/ACTIVE` |
|
|
44
45
|
| `resolve <qid> "<answer>"` | `/rite-resolve` | answer a HITL gate |
|
|
45
46
|
| `prototype [question]` | `/rite-prototype` | throwaway prototype |
|
|
@@ -62,8 +63,8 @@ Specialist triggers (model-invoked inside the above):
|
|
|
62
63
|
`devrites-source-driven` (uncertain library) · `devrites-doubt` (non-trivial
|
|
63
64
|
decision) · `devrites-api-interface` (cross-boundary) ·
|
|
64
65
|
`devrites-audit <security|perf|simplify>` (single-axis review/polish pass) ·
|
|
65
|
-
`devrites-debug-recovery` (failures). Parallel reviewer fan-out at seal
|
|
66
|
-
|
|
66
|
+
`devrites-debug-recovery` (failures). Parallel reviewer fan-out at seal is a shared
|
|
67
|
+
reference (see [`devrites-lib/reference/parallel-dispatch.md`](../devrites-lib/reference/parallel-dispatch.md)).
|
|
67
68
|
|
|
68
69
|
## What to output
|
|
69
70
|
|
|
@@ -96,6 +97,7 @@ SEAL /rite seal ≡ /rite-seal final GO / NO-GO
|
|
|
96
97
|
SHIP /rite ship ≡ /rite-ship type-GO + commit/push/tag, then archive + clear ACTIVE
|
|
97
98
|
STATUS /rite status ≡ /rite-status active feature, next action, evidence, risks
|
|
98
99
|
DOCTOR /rite doctor ≡ /rite-doctor health check — install · stale ACTIVE · orphaned gates · hook wiring
|
|
100
|
+
LEARN /rite learn ... ≡ /rite-learn review captured lessons → promote to project rules / principles
|
|
99
101
|
SWITCH /rite use <slug> re-point .devrites/ACTIVE to another feature (inline)
|
|
100
102
|
RESUME /rite resolve ... ≡ /rite-resolve answer a HITL checkpoint
|
|
101
103
|
AUTO /rite autocomplete ... ≡ /rite-autocomplete run the whole lifecycle unattended (--ship to push)
|
|
@@ -110,26 +112,6 @@ UTILITY /rite frame | prototype | handoff | zoom-out | pressure-test (or
|
|
|
110
112
|
|
|
111
113
|
## Core operating rules (every DevRites skill enforces)
|
|
112
114
|
|
|
113
|
-
The
|
|
114
|
-
their first step, and the other rule files load on demand.
|
|
115
|
-
|
|
116
|
-
1. **Right step, right time** — smallest relevant workflow; don't load everything.
|
|
117
|
-
2. **No silent assumptions** — surface material assumptions; ask when the
|
|
118
|
-
answer changes scope, architecture, data model, UX, security, migration
|
|
119
|
-
risk, or acceptance.
|
|
120
|
-
3. **No guessing through confusion** — if requirements / code / tests / docs
|
|
121
|
-
conflict, stop, name the conflict, present options, wait for resolution
|
|
122
|
-
when the answer changes the product.
|
|
123
|
-
4. **Spec is living, not sacred** — change spec/plan only through the
|
|
124
|
-
Spec Drift Guard; never code against a known-wrong plan.
|
|
125
|
-
5. **One slice at a time** — `/rite-build` does one slice then stops.
|
|
126
|
-
6. **Evidence over confidence** — tests, builds, runtime, screenshots beat
|
|
127
|
-
assertions; record commands and output.
|
|
128
|
-
7. **Feature scope only** — review / simplify / polish / security stay within
|
|
129
|
-
the active feature and touched files.
|
|
130
|
-
8. **Prefer existing conventions** — follow the project's architecture,
|
|
131
|
-
components, tokens, tests, and commands.
|
|
132
|
-
9. **Verify uncertain facts at the source** — when framework / library
|
|
133
|
-
behaviour matters and isn't certain, check the docs or source and record it.
|
|
134
|
-
|
|
135
|
-
Detail in [reference/menu.md](reference/menu.md) when needed.
|
|
115
|
+
The operating rules live in `.claude/rules/core.md`; DevRites skills Read it as
|
|
116
|
+
their first step, and the other rule files load on demand. See
|
|
117
|
+
[`.claude/rules/README.md`](../../rules/README.md) for the full index.
|
|
@@ -8,21 +8,28 @@ what each command does or how phases connect.
|
|
|
8
8
|
| Phase | Command | Use when |
|
|
9
9
|
|---|---|---|
|
|
10
10
|
| Spec | `/rite-spec <feature>` | **Start here.** Investigate deeply → write spec.md. Asks you with options; gathers any design references you attach (optional). |
|
|
11
|
+
| Adopt | `/rite-adopt` | Onboard an existing codebase instead of starting fresh — reverse-derive spec.md + seed the conventions ledger. |
|
|
11
12
|
| Temper | `/rite-temper` | _Optional, before define._ Strategic review of the spec — scope mode (expand/selective/hold-rigor/reduce) + pre-mortem; hardens the spec. Best on big/risky features; mandatory in `/rite-autocomplete`. |
|
|
12
13
|
| Plan | `/rite-define` | Turn the approved spec into plan + vertical task slices + state. |
|
|
14
|
+
| Vet | `/rite-vet` | _Optional, before build._ Engineering review of the plan — scope · architecture · tests · perf; hardens the plan. Best on big/risky features; mandatory in `/rite-autocomplete`. |
|
|
13
15
|
| Re-plan | `/rite-plan` | The active plan is too big, wrong, stale, ambiguous, or blocked. |
|
|
14
16
|
| Build | `/rite-build` | Implement the next single vertical slice. Stops after one slice. |
|
|
15
17
|
| Prove | `/rite-prove` | Prove the current scope: tests, build, runtime, browser evidence. |
|
|
16
18
|
| Polish | `/rite-polish` | Code polish always; UI normalize + ship-quality polish if UI is in scope. Modes: `bolder/quieter/distill/harden/normalize-only`. |
|
|
17
19
|
| Review | `/rite-review` | Feature-scoped review before sealing. |
|
|
18
|
-
| Seal | `/rite-seal` | Final GO / NO-GO decision. |
|
|
20
|
+
| Seal | `/rite-seal` | Final GO / NO-GO decision (no git). |
|
|
21
|
+
| Ship | `/rite-ship` | Type-GO → commit/push/tag, then archive the task + clear ACTIVE. |
|
|
19
22
|
| Status | `/rite-status` | See where the active feature stands. |
|
|
23
|
+
| Doctor | `/rite-doctor` | Health check — install integrity, stale ACTIVE, orphaned gates, hook wiring. |
|
|
24
|
+
| Learn | `/rite-learn` | Review the captured learning ledger → promote recurring lessons to project rules / principles. |
|
|
20
25
|
|
|
21
26
|
## Typical orderings
|
|
22
27
|
|
|
23
28
|
- **Every feature**: `/rite-spec` (spec) → *(big feature? `/rite-temper` — strategic review)* →
|
|
24
|
-
`/rite-define` (plan) →
|
|
25
|
-
`/rite-
|
|
29
|
+
`/rite-define` (plan) → *(big feature? `/rite-vet` — engineering review)* →
|
|
30
|
+
`/rite-build` ×N (all slices) → `/rite-prove` (once all built) →
|
|
31
|
+
`/rite-polish` (always: code + UI if UI) → `/rite-review` → `/rite-seal` → `/rite-ship`.
|
|
32
|
+
- **Existing codebase**: `/rite-adopt` (onboard → spec.md + conventions) → continue at `/rite-define`.
|
|
26
33
|
- **Drift mid-build**: stop → drift question → `/rite-plan` (repair) → resume build.
|
|
27
34
|
|
|
28
35
|
## Rules this menu obeys
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-adopt
|
|
3
|
-
description: Bring an EXISTING codebase under DevRites — reverse-derive a `spec.md` of current behavior, placement, and architecture, and seed the project conventions ledger from the idioms the code already follows, then hand off to the lifecycle. Use when the user says "adopt this project"
|
|
3
|
+
description: Bring an EXISTING codebase under DevRites — reverse-derive a `spec.md` of current behavior, placement, and architecture, and seed the project conventions ledger from the idioms the code already follows, then hand off to the lifecycle. Use when the user says "adopt this project" or "reverse-engineer a spec from the existing app". Not for a brand-new feature or idea (use `/rite-spec`), planning an approved spec (`/rite-define`), or just mapping unfamiliar code without onboarding it (`/rite-zoom-out`).
|
|
4
4
|
argument-hint: "[path or area to adopt] [+ what you want to build next]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-autocomplete
|
|
3
|
-
description: Run the entire DevRites lifecycle end-to-end
|
|
3
|
+
description: Run the entire DevRites lifecycle end-to-end, unattended — no per-phase human iteration; `--ship` auto-confirms the final gate. Use when the user says "autocomplete", "one-shot this feature", or "ship it autonomously". Not for a single phase (use the specific `/rite-*` skill) or when the user wants to drive each step.
|
|
4
4
|
argument-hint: "[idea] [--ship|--yolo] [--max-slices N]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|