devrites 4.4.2 → 4.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 +28 -0
- package/README.md +1 -1
- package/pack/.claude/agents/devrites-code-reviewer.md +16 -0
- package/pack/.claude/agents/devrites-devex-reviewer.md +4 -0
- package/pack/.claude/agents/devrites-doubt-reviewer.md +8 -0
- package/pack/.claude/agents/devrites-retrospector.md +2 -0
- package/pack/.claude/agents/devrites-security-auditor.md +10 -0
- package/pack/.claude/agents/devrites-spec-reviewer.md +3 -0
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +13 -13
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +4 -7
- package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +3 -4
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +17 -3
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +2 -0
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +5 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +24 -40
- package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +4 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +5 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +6 -18
- package/pack/.claude/skills/devrites-lib/reference/standards/debug-recovery.md +21 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +8 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +6 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +11 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +11 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +4 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +30 -31
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +87 -145
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +22 -17
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +20 -36
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +2 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +59 -81
- package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/index.md +11 -0
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/.claude/skills/rite-adopt/SKILL.md +10 -2
- package/pack/.claude/skills/rite-build/SKILL.md +12 -0
- package/pack/.claude/skills/rite-converge/SKILL.md +19 -0
- package/pack/.claude/skills/rite-define/reference/plan-template.md +15 -2
- package/pack/.claude/skills/rite-learn/SKILL.md +16 -16
- package/pack/.claude/skills/rite-polish/SKILL.md +13 -0
- package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +14 -53
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +7 -2
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +6 -1
- package/pack/.claude/skills/rite-prove/SKILL.md +9 -0
- package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +10 -0
- package/pack/.claude/skills/rite-review/SKILL.md +9 -0
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +5 -1
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +11 -4
- package/pack/.claude/skills/rite-status/SKILL.md +2 -0
- package/pack/.claude/skills/rite-vet/SKILL.md +14 -0
- package/pack/generated/claude/agents/devrites-code-reviewer.md +16 -0
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +4 -0
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +8 -0
- package/pack/generated/claude/agents/devrites-retrospector.md +2 -0
- package/pack/generated/claude/agents/devrites-security-auditor.md +10 -0
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +3 -0
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +13 -13
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +4 -7
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +3 -4
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +17 -3
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +2 -0
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +5 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +24 -40
- package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +4 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +5 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +6 -18
- package/pack/generated/claude/skills/devrites-lib/reference/standards/debug-recovery.md +21 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +8 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +6 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +11 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +11 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +4 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +30 -31
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +87 -145
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +22 -17
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +20 -36
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +2 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +59 -81
- package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/index.md +11 -0
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +10 -2
- package/pack/generated/claude/skills/rite-build/SKILL.md +12 -0
- package/pack/generated/claude/skills/rite-converge/SKILL.md +19 -0
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +15 -2
- package/pack/generated/claude/skills/rite-learn/SKILL.md +16 -16
- package/pack/generated/claude/skills/rite-polish/SKILL.md +13 -0
- package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +14 -53
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +7 -2
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +6 -1
- package/pack/generated/claude/skills/rite-prove/SKILL.md +9 -0
- package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +10 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +9 -0
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +5 -1
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +11 -4
- package/pack/generated/claude/skills/rite-status/SKILL.md +2 -0
- package/pack/generated/claude/skills/rite-vet/SKILL.md +14 -0
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +16 -0
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +4 -0
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +8 -0
- package/pack/generated/codex/agents/devrites-retrospector.toml +2 -0
- package/pack/generated/codex/agents/devrites-security-auditor.toml +10 -0
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +3 -0
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +13 -13
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +4 -7
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +3 -4
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +17 -3
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +5 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +24 -40
- package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +4 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +5 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +6 -18
- package/pack/generated/codex/skills/devrites-lib/reference/standards/debug-recovery.md +21 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +8 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +6 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +11 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +11 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +4 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +30 -31
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +87 -145
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +22 -17
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +20 -36
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +2 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +59 -81
- package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/index.md +11 -0
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +10 -2
- package/pack/generated/codex/skills/rite-build/SKILL.md +12 -0
- package/pack/generated/codex/skills/rite-converge/SKILL.md +19 -0
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +15 -2
- package/pack/generated/codex/skills/rite-learn/SKILL.md +16 -16
- package/pack/generated/codex/skills/rite-polish/SKILL.md +13 -0
- package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +14 -53
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +7 -2
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +6 -1
- package/pack/generated/codex/skills/rite-prove/SKILL.md +9 -0
- package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +10 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +9 -0
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +5 -1
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +11 -4
- package/pack/generated/codex/skills/rite-status/SKILL.md +2 -0
- package/pack/generated/codex/skills/rite-vet/SKILL.md +14 -0
- package/package.json +1 -1
|
@@ -52,13 +52,10 @@ match the neighbors.
|
|
|
52
52
|
dots as set dressing.
|
|
53
53
|
|
|
54
54
|
### Copy & data realism
|
|
55
|
-
Placeholder content is a tell even when the layout is clean:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
- **Copy self-audit** — re-read every visible string before shipping; anything grammatically
|
|
60
|
-
broken, referent-unclear, or "an LLM trying to sound thoughtful" gets rewritten. AI-cute
|
|
61
|
-
copy is worse than boring copy.
|
|
55
|
+
Placeholder content is a tell even when the layout is clean: fake-perfect numbers
|
|
56
|
+
(`99.99%`, `10,000+` — real data is ragged), placeholder people/brands ("John Doe",
|
|
57
|
+
"Acme"), filler verbs (Elevate / Seamless / Unleash). Re-read every visible string before
|
|
58
|
+
shipping; AI-cute copy is worse than boring copy.
|
|
62
59
|
|
|
63
60
|
### Category-reflex check — run at two altitudes
|
|
64
61
|
|
|
@@ -90,6 +87,8 @@ Each is pass/fail by counting or grep, not judgment:
|
|
|
90
87
|
- **Layout families** (hero, image+text split, card grid, bento, table…): no family more
|
|
91
88
|
than twice per page; never 3 consecutive image+text zigzags.
|
|
92
89
|
- **Icons**: 0 emoji-as-icon; exactly one icon set imported.
|
|
90
|
+
- **State presence in code**: default+hover+focus-visible+active+disabled for every interactive element; loading/error/empty where data delays or fails — an unreachable state's screenshot proves nothing.
|
|
91
|
+
- **Form inputs**: no border-width shifts between states; focus ring from outline/ring (not border swap); consistent control height; reserved helper slot; disabled beyond opacity alone.
|
|
93
92
|
|
|
94
93
|
## Code anti-slop (UI **and** backend)
|
|
95
94
|
- **Over-defensive checks** — `if (x && x.length > 0)` repeated, layered null guards,
|
|
@@ -158,49 +157,11 @@ Each is pass/fail by counting or grep, not judgment:
|
|
|
158
157
|
Reuse → extend → build new (`coding-style.md`, `patterns.md`); duplication beats the *wrong*
|
|
159
158
|
abstraction, but pasted clones are slop, not a deliberate AHA call.
|
|
160
159
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
for (const item of items) {
|
|
170
|
-
// add the item price to the total
|
|
171
|
-
total += item.price;
|
|
172
|
-
}
|
|
173
|
-
// return the final total
|
|
174
|
-
return total;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// After: the names carry it; no comment needed
|
|
178
|
-
function sumPrices(items) {
|
|
179
|
-
return items.reduce((total, item) => total + item.price, 0);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// A comment that earns its place — it explains WHY, not what:
|
|
183
|
-
// Prices are in minor units (cents); the gateway rejects fractional amounts.
|
|
184
|
-
const total = sumPrices(items);
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## Why these are banned
|
|
188
|
-
They signal "a model generated this" rather than "this team designed/wrote this." They
|
|
189
|
-
ignore the product's register and the project's idiom, add noise, hide bugs (defensive
|
|
190
|
-
catches), bloat the diff (over-engineering, beyond-spec), and often fail accessibility
|
|
191
|
-
or correctness review. They're cargo-cult, not craft.
|
|
192
|
-
|
|
193
|
-
## What to do instead
|
|
194
|
-
- **UI**: project tokens / shared components / consistent type & spacing
|
|
195
|
-
(`design-system-discovery.md`); content shapes layout; motion serves feedback;
|
|
196
|
-
reserve modals for focused interrupting tasks.
|
|
197
|
-
- **Code**: validate at trust boundaries (don't sprinkle null checks); catch narrow,
|
|
198
|
-
recover or rethrow; one clear name per concept; one responsibility per function;
|
|
199
|
-
reuse before write (`coding-style.md`); implement exactly the spec; let inherent
|
|
200
|
-
complexity be — don't pad with ceremony.
|
|
201
|
-
- If the project **does** use one of these intentionally, follow the project. Consistency
|
|
202
|
-
beats the rule.
|
|
203
|
-
|
|
204
|
-
## When in doubt: ask
|
|
205
|
-
A "robust" check or shiny abstraction you can't justify in one sentence is probably slop.
|
|
206
|
-
Delete it; or ask the user if it should exist.
|
|
160
|
+
## Why banned, what instead
|
|
161
|
+
They signal model-generated rather than team-designed work: they ignore register and
|
|
162
|
+
idiom, add noise, hide bugs (defensive catches), bloat diffs, and often fail a11y or
|
|
163
|
+
correctness review. Instead: project tokens/components, validate at trust boundaries,
|
|
164
|
+
catch narrow and rethrow, one clear name per concept, reuse first (`coding-style.md`),
|
|
165
|
+
implement exactly the spec. If the project intentionally uses one of these, follow the
|
|
166
|
+
project — consistency beats the rule. A check or abstraction you can't justify in one
|
|
167
|
+
sentence is slop: delete it or ask.
|
|
@@ -24,8 +24,13 @@ Step 0: Read `.agents/skills/devrites-lib/reference/standards/core.md`, plus `gi
|
|
|
24
24
|
2. **Fetch.** Use GitHub GraphQL/CLI to collect unresolved review threads with file, line, author, body, and thread id. Completion: every unresolved thread is represented once, or the fetch error is reported.
|
|
25
25
|
3. **Legitimacy gate.** For each item, read the surrounding code and classify: `fix`, `not-addressing`, `declined`, `reply-only`, or `needs-human`. Deduplicate overlapping items.
|
|
26
26
|
4. **Fix approved items.** Apply contained fixes, add/update tests when behavior changes, and run targeted checks. Larger product/API/security calls become `needs-human`.
|
|
27
|
-
5. **Commit/push.** Stage only touched files
|
|
28
|
-
|
|
27
|
+
5. **Commit/push.** Stage only touched files; commit only if changes exist; push the branch.
|
|
28
|
+
Push rejected (protected branch, non-fast-forward, hooks): stop and report the exact
|
|
29
|
+
rejection — never force-push or rewrite a shared branch. Post-push checks fail: record
|
|
30
|
+
the failing check, choose fix-forward or revert, put the choice + reason in the thread
|
|
31
|
+
reply — never a silent red push.
|
|
32
|
+
**Completion:** committed/pushed with SHA evidence and green checks, or no commit (empty
|
|
33
|
+
diff), or the push failure reported verbatim.
|
|
29
34
|
6. **Reply and resolve.** Reply to every thread with outcome and evidence. Resolve only `fix`, `not-addressing`, `declined`, and `reply-only`; leave `needs-human` open.
|
|
30
35
|
**Completion:** every thread has one recorded outcome and only permitted terminal outcomes are resolved.
|
|
31
36
|
7. **Verify.** Fetch unresolved threads again and report remaining intentional opens.
|
|
@@ -12,6 +12,7 @@ Use when the idea—not only requirements—is rough. Compare directions before
|
|
|
12
12
|
first and write only workspace/ticket artifacts.
|
|
13
13
|
|
|
14
14
|
## Diverge (widen)
|
|
15
|
+
|
|
15
16
|
- Search `decisions.md`, accepted ADRs, and relevant archives for rejected directions;
|
|
16
17
|
revive one only with evidence that answers its recorded reason, citing both.
|
|
17
18
|
- Generate 3-5 different shapes, including obvious, smaller, and different-boundary/data/
|
|
@@ -20,6 +21,7 @@ first and write only workspace/ticket artifacts.
|
|
|
20
21
|
- For each, name concrete entities/flows/surfaces, optimization, rough cost, and main risk.
|
|
21
22
|
|
|
22
23
|
## Converge (commit)
|
|
24
|
+
|
|
23
25
|
- Weigh options against the goal, constraints, and existing codebase conventions.
|
|
24
26
|
- Prefer felt pain over nice-to-have. Rank differentiation: new capability > 10× gain >
|
|
25
27
|
new audience > new context > better UX > cheaper; do not dress a vitamin as a painkiller.
|
|
@@ -33,10 +35,13 @@ If the hinge is an uncertain material fact, freeze at most three questions for
|
|
|
33
35
|
`unavailable`, never support. Record claim, support, strongest contrary evidence, and
|
|
34
36
|
`supported | assumption | refuted`. Refutation changes the recommendation; an assumption
|
|
35
37
|
advances only when non-decisive with bounded downside. Weak/conflicting decisive evidence
|
|
36
|
-
returns **Hold** with the resolving evidence, never `$rite-spec`.
|
|
38
|
+
returns **Hold** with the resolving evidence, never `$rite-spec`. Tie-breaker:
|
|
39
|
+
see [`intent-map.md`](../devrites-lib/reference/intent-map.md) (`rite-pressure-test`
|
|
40
|
+
vs `rite-spec`). Do not research preferences
|
|
37
41
|
or reversible implementation choices.
|
|
38
42
|
|
|
39
43
|
## Boundaries
|
|
44
|
+
|
|
40
45
|
- This is exploration, not specification. Output a **direction**, not a finished spec:
|
|
41
46
|
`$rite-spec` writes the spec.
|
|
42
47
|
- Don't over-explore: 3-5 options, one pass of convergence. If the user already knows
|
|
@@ -111,3 +111,12 @@ test changes.
|
|
|
111
111
|
|
|
112
112
|
> Do not claim an unobserved pass, skip browser proof, or proceed with pending
|
|
113
113
|
> slices. Load `reference/anti-patterns.md` when tempted to do so.
|
|
114
|
+
|
|
115
|
+
## Phase exit (observable)
|
|
116
|
+
|
|
117
|
+
**Complete when:** every criterion in `acceptance-proof.md` has discriminating
|
|
118
|
+
evidence bound to the current candidate digest, both independent validators admit
|
|
119
|
+
accounts, and `state.md` records Prove complete with no open `cannot_verify` rows.
|
|
120
|
+
|
|
121
|
+
**Failing case:** narrative "all tests passed" without `evidence.md` binding and
|
|
122
|
+
proof-runner admission → phase not complete; Seal blocks.
|
|
@@ -14,6 +14,16 @@ filtered, pending, zero-test, assertion-free, tautological, or unexecuted result
|
|
|
14
14
|
do not count. Build/compile/typecheck/lint prove only their static criterion;
|
|
15
15
|
discriminating shell assertions and golden/text comparisons may prove text/CLI.
|
|
16
16
|
|
|
17
|
+
## Silent-failure probe
|
|
18
|
+
|
|
19
|
+
When tests pass but error paths, dropped results, or partial success could hide
|
|
20
|
+
failure, require at least one **discriminating** check that would fail if the silent
|
|
21
|
+
path regressed (assert the failure surface, not only the happy path).
|
|
22
|
+
|
|
23
|
+
**Failing case:** handler returns success while logging or swallowing internally; the
|
|
24
|
+
suite stays green → map `cannot_verify` unless a test asserts the user-visible or
|
|
25
|
+
contract failure outcome.
|
|
26
|
+
|
|
17
27
|
## Backstop disposition
|
|
18
28
|
|
|
19
29
|
A `backstop` passes only on its spec-named independent held-out,
|
|
@@ -20,7 +20,9 @@ tell the user to run `$rite-spec <feature>`.
|
|
|
20
20
|
all workflow-named roles remain mandatory at every depth.
|
|
21
21
|
|
|
22
22
|
## Rules consulted (read on demand from `.agents/skills/devrites-lib/reference/standards/`)
|
|
23
|
+
|
|
23
24
|
Pull these via `Read` when the diff demands them:
|
|
25
|
+
|
|
24
26
|
- `code-review.md`: small PRs, severity labels, tests-first review focus.
|
|
25
27
|
- `review-checklist.md`: compact pass/fail sweep before reporting the verdict.
|
|
26
28
|
- `principles.md`: declared project invariants (`.devrites/principles.md`); a diff that violates one with no recorded exception is a Critical, blocking finding.
|
|
@@ -33,9 +35,13 @@ Pull these via `Read` when the diff demands them:
|
|
|
33
35
|
- `performance.md`: only when perf is relevant or a regression risk is visible.
|
|
34
36
|
|
|
35
37
|
## Operating rules
|
|
38
|
+
|
|
36
39
|
- **Feature scope only.** Review touched files + the diff. **NO whole-project refactors,
|
|
37
40
|
NO drive-by cleanup.** DO NOT delete suspected dead code outside this feature without
|
|
38
41
|
asking. Spec Drift Guard applies.
|
|
42
|
+
- **Silent-failure hunt:** when the suite is green, require proof that error paths and
|
|
43
|
+
partial-success branches would fail tests if broken. **Failing case:** tests pass but
|
|
44
|
+
handler returns success on internal error → Critical until an asserting test exists.
|
|
39
45
|
- **Review the finished product.** `$rite-polish` has already simplified code and
|
|
40
46
|
normalized or polished UI. If review finds a remaining complexity issue, record it as
|
|
41
47
|
a finding rather than rerunning a simplification pass.
|
|
@@ -49,6 +55,7 @@ Pull these via `Read` when the diff demands them:
|
|
|
49
55
|
route to `devrites-slice-wright`.
|
|
50
56
|
|
|
51
57
|
## Workflow
|
|
58
|
+
|
|
52
59
|
0. Read `.agents/skills/devrites-lib/reference/standards/core.md` first (the always-on operating rules); pull the
|
|
53
60
|
on-demand rules above as the diff demands them.
|
|
54
61
|
Then read the explicit or active workspace's `state.md` directly.
|
|
@@ -129,6 +136,7 @@ Pull these via `Read` when the diff demands them:
|
|
|
129
136
|
correction has affected proof plus a fresh Review.
|
|
130
137
|
|
|
131
138
|
## Finding labels
|
|
139
|
+
|
|
132
140
|
- **Critical:** must fix before seal (correctness/security/data loss).
|
|
133
141
|
- **Important:** should fix before seal (likely bug, real maintainability risk).
|
|
134
142
|
- **Suggestion:** worth doing, not blocking.
|
|
@@ -141,6 +149,7 @@ change is already small: a pure noise-economics lever). Only a **`blocking` Crit
|
|
|
141
149
|
seal; a `non-blocking` / `if-minor` finding is recorded, not a stop.
|
|
142
150
|
|
|
143
151
|
## Confidence and signal-to-noise
|
|
152
|
+
|
|
144
153
|
Apply [`agents.md` § Result admission](../devrites-lib/reference/standards/agents.md#result-admission).
|
|
145
154
|
Suppress unverifiable ≤4 hypotheses, require 7+ plus exact proof for
|
|
146
155
|
Critical/Important, and make every silent/unusable account a blocking gap. Roll
|
|
@@ -11,7 +11,7 @@ Emit `.devrites/work/<slug>/checklists/<domain>.md` per covered domain; skip
|
|
|
11
11
|
`none`. Each domain maps gaps to a `devrites-interview` dimension:
|
|
12
12
|
|
|
13
13
|
| Domain file | Tests the prose of |
|
|
14
|
-
|
|
14
|
+
| --- | --- |
|
|
15
15
|
| `functional.md` | Functional requirements + scenarios: is each capability stated, bounded, testable? |
|
|
16
16
|
| `data-model.md` | Key entities / data model: shapes, fields, lifecycle, relationships (skip if "none"). |
|
|
17
17
|
| `interaction.md` | API / UI impact + UX states: every screen state and contract named (skip if no UI/API). |
|
|
@@ -39,6 +39,7 @@ undefined stated-flow edge, or contradictory requirements. Other vague prose is
|
|
|
39
39
|
## Question bank
|
|
40
40
|
|
|
41
41
|
Each question checks one requirement-prose failure mode:
|
|
42
|
+
|
|
42
43
|
- **Measurability:** every "good / fast / prominent / simple / secure" carries a number, a budget,
|
|
43
44
|
or a named reference. No adjective stands in for a threshold.
|
|
44
45
|
- **Completeness:** every enumeration is closed (no "etc."); every requirement with a precondition
|
|
@@ -64,6 +65,8 @@ Each question checks one requirement-prose failure mode:
|
|
|
64
65
|
- **Preservation:** each material brownfield outcome appears in `Existing behavior
|
|
65
66
|
to preserve` with preserving REQ/AC and current evidence. Missing/vague “no
|
|
66
67
|
regressions” or unjustified `none` is CRITICAL.
|
|
68
|
+
**Failing case:** brownfield login still works but the table has no evidence column
|
|
69
|
+
→ CRITICAL until a test path, command, or observed contract is named.
|
|
67
70
|
- **Backstops:** each row names an independent held-out, property/metamorphic, or
|
|
68
71
|
direct behavioral check and the failure it discriminates; confidence/presence/self-review fail.
|
|
69
72
|
- **Non-functional:** each NFR names affected REQ/AC IDs or a bounded `global` scope;
|
|
@@ -80,6 +83,7 @@ unchecked**. A spec without checklists is not yet checked, so define stops and r
|
|
|
80
83
|
back here.
|
|
81
84
|
|
|
82
85
|
## Discipline
|
|
86
|
+
|
|
83
87
|
- Score honestly. Do not soften a checklist question to pass a weak spec.
|
|
84
88
|
- Don't pad. Five real questions that find one CRITICAL beat thirty rubber-stamped rows.
|
|
85
89
|
- If a question needs a function name, it belongs in `$rite-vet`'s `test-plan.md`.
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
Contract WHAT users get, WHY, success, and scope. HOW belongs in `plan.md`,
|
|
4
4
|
topology in `architecture.md`/`flows.md`, coverage in `traceability.md`.
|
|
5
5
|
|
|
6
|
-
Use `[NEEDS CLARIFICATION: <question>]` (blocking stops `$rite-clarify`)
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
Use `[NEEDS CLARIFICATION: <question>]` (blocking stops `$rite-clarify`); before readiness
|
|
7
|
+
every surviving marker converts to a gated `Q-###` open question (`spec-grammar.md` §
|
|
8
|
+
Unresolved-question markers — fail closed). Stable `REQ-001`/`AC-001` IDs; link, never
|
|
9
|
+
duplicate, source artifacts; over-budget requires `Budget override: <reason>`.
|
|
9
10
|
|
|
10
11
|
```markdown
|
|
11
12
|
# Spec: <Feature>
|
|
@@ -33,6 +34,12 @@ No implementation detail. True greenfield: `none — no existing behavior in the
|
|
|
33
34
|
| --- | --- | --- |
|
|
34
35
|
| <outcome that must not regress> | REQ-001 / AC-001 | <current evidence> |
|
|
35
36
|
|
|
37
|
+
Each preservation row **must** cite current evidence (test, runtime, contract, or
|
|
38
|
+
observed behavior). An empty or vague evidence cell blocks Spec readiness.
|
|
39
|
+
|
|
40
|
+
**Failing case:** row lists REQ-001 with evidence "none" or "TBD" → readiness gate
|
|
41
|
+
fails until evidence is named or the outcome is removed from scope.
|
|
42
|
+
|
|
36
43
|
## Stakeholders and priorities
|
|
37
44
|
| Actor/stakeholder | Observable outcome | Conflict / priority rule |
|
|
38
45
|
| --- | --- | --- |
|
|
@@ -104,7 +111,7 @@ status routes Define/Vet/Build/Prove to the named standard without copying it he
|
|
|
104
111
|
- Model/RAG/agent/eval/LLM-output scope: `ai-spec.md` from `ai-spec-template.md`.
|
|
105
112
|
- Otherwise: not applicable.
|
|
106
113
|
|
|
107
|
-
##
|
|
114
|
+
## Success metrics
|
|
108
115
|
- <Metric or observable proof.>
|
|
109
116
|
|
|
110
117
|
## Scope boundaries
|
|
@@ -18,6 +18,8 @@ artifacts only as needed. Never infer lifecycle state from `README.md` or chat.
|
|
|
18
18
|
|
|
19
19
|
If no workspace exists, recommend `$rite-spec <feature>` and stop.
|
|
20
20
|
|
|
21
|
+
If `state.md` is unreadable/malformed: report a gap with the defect and stop — never infer the phase from other files; `$rite-doctor`/`$rite-upgrade` own repair.
|
|
22
|
+
|
|
21
23
|
## Report
|
|
22
24
|
|
|
23
25
|
1. feature and one-line objective;
|
|
@@ -40,6 +40,12 @@ plan declares a root-authored executable workflow file, read
|
|
|
40
40
|
unverified or confidence ≤4 findings under `review-axes.md`.
|
|
41
41
|
- Auth, migration, public API, and data-model changes use maximum caution and the
|
|
42
42
|
irreversible-risk stop. Project principles never become trade-offs.
|
|
43
|
+
- **Governance-protected paths** (`.devrites/**`, pack skill/agent trees,
|
|
44
|
+
`NOTICE.md` generator regions, CI/hook config named in repo docs) require explicit
|
|
45
|
+
human approval before plan slices may edit them. A slice touching a protected path
|
|
46
|
+
without approval → Vet **NEEDS CLARIFICATION**.
|
|
47
|
+
**Failing case:** plan edits another feature's `state.md` without recorded approval →
|
|
48
|
+
fail closed.
|
|
43
49
|
- Use the lowest axis band; never average or round thin to ready. Search before
|
|
44
50
|
asking and resolve reversible technical choices. Ask only human-owned choices.
|
|
45
51
|
- Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
|
|
@@ -138,3 +144,11 @@ plan declares a root-authored executable workflow file, read
|
|
|
138
144
|
|
|
139
145
|
> Do not replace interactive review with artifacts, change acceptance through
|
|
140
146
|
> hardening, score without source evidence, or ignore unexplained complexity.
|
|
147
|
+
|
|
148
|
+
## Phase exit (observable)
|
|
149
|
+
|
|
150
|
+
**Complete when:** `eng-review.md` records exactly one readiness verdict, readiness
|
|
151
|
+
binding SHA-256 passes, and every required reviewer account is admitted.
|
|
152
|
+
|
|
153
|
+
**Failing case:** READY written while a required reviewer returned `Outcome: gap` →
|
|
154
|
+
not complete; restore NEEDS REPLAN or dispatch missing reviewer.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.0",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code and Codex",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|