devrites 4.0.11 → 4.1.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 +14 -0
- package/README.md +5 -3
- package/docs/architecture.md +4 -4
- package/docs/command-map.md +4 -3
- package/docs/flow.md +2 -1
- package/docs/orchestration.md +45 -4
- package/docs/skills.md +5 -4
- package/engine/internal/devritespaths/paths.go +5 -4
- package/engine/internal/hostpack/hostpack.go +9 -4
- package/engine/internal/hostpack/hostpack_test.go +16 -7
- package/engine/internal/install/install_test.go +5 -0
- package/pack/.claude/agents/devrites-code-reviewer.md +6 -1
- package/pack/.claude/agents/devrites-plan-drafter.md +5 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +6 -0
- package/pack/.claude/agents/devrites-proof-runner.md +7 -1
- package/pack/.claude/agents/devrites-retrospector.md +21 -25
- package/pack/.claude/agents/devrites-security-auditor.md +7 -3
- package/pack/.claude/agents/devrites-slice-wright.md +30 -4
- package/pack/.claude/agents/devrites-spec-reviewer.md +5 -0
- package/pack/.claude/agents/devrites-strategy-reviewer.md +3 -4
- package/pack/.claude/agents/devrites-test-analyst.md +5 -0
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +12 -16
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -14
- package/pack/.claude/skills/devrites-doubt/SKILL.md +3 -4
- package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -4
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +6 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +5 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -8
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +11 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +19 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +9 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +9 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +95 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +28 -29
- package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +70 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/integration-reliability.md +79 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +10 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +20 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/repository-topology.md +73 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +51 -16
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +35 -40
- package/pack/.claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +4 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +51 -6
- package/pack/.claude/skills/rite/SKILL.md +2 -0
- package/pack/.claude/skills/rite-adopt/SKILL.md +8 -10
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +13 -15
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +26 -11
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +47 -6
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +12 -0
- package/pack/.claude/skills/rite-build/SKILL.md +7 -1
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +6 -1
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +37 -4
- package/pack/.claude/skills/rite-clarify/SKILL.md +3 -2
- package/pack/.claude/skills/rite-converge/SKILL.md +4 -2
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +8 -4
- package/pack/.claude/skills/rite-customize/SKILL.md +16 -18
- package/pack/.claude/skills/rite-define/SKILL.md +60 -62
- package/pack/.claude/skills/rite-define/reference/plan-template.md +88 -71
- package/pack/.claude/skills/rite-explain/SKILL.md +2 -1
- package/pack/.claude/skills/rite-learn/SKILL.md +28 -32
- package/pack/.claude/skills/rite-plan/SKILL.md +42 -45
- package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +11 -2
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +2 -0
- package/pack/.claude/skills/rite-polish/reference/adr-promotion.md +7 -7
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +24 -31
- package/pack/.claude/skills/rite-prove/SKILL.md +12 -15
- package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +28 -0
- package/pack/.claude/skills/rite-review/SKILL.md +5 -4
- package/pack/.claude/skills/rite-review/reference/five-axis-review.md +6 -0
- package/pack/.claude/skills/rite-review/reference/security-review.md +7 -2
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +3 -0
- package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +19 -4
- package/pack/.claude/skills/rite-ship/reference/rollout.md +62 -43
- package/pack/.claude/skills/rite-spec/SKILL.md +8 -1
- package/pack/.claude/skills/rite-spec/reference/ai-spec-template.md +13 -6
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +14 -2
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +33 -4
- package/pack/.claude/skills/rite-temper/SKILL.md +5 -1
- package/pack/.claude/skills/rite-vet/SKILL.md +14 -10
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +5 -3
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +67 -77
- package/pack/.claude/skills/rite-watch-pr/SKILL.md +85 -0
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +4 -5
- package/pack/.claude/workflows/devrites-readonly-review.js +194 -0
- package/pack/generated/README.md +1 -1
- package/pack/generated/claude/agents/devrites-code-reviewer.md +6 -1
- package/pack/generated/claude/agents/devrites-plan-drafter.md +5 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +6 -0
- package/pack/generated/claude/agents/devrites-proof-runner.md +7 -1
- package/pack/generated/claude/agents/devrites-retrospector.md +21 -25
- package/pack/generated/claude/agents/devrites-security-auditor.md +7 -3
- package/pack/generated/claude/agents/devrites-slice-wright.md +30 -4
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +5 -0
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +3 -4
- package/pack/generated/claude/agents/devrites-test-analyst.md +5 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +12 -16
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -14
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +3 -4
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -4
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +6 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +5 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -8
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +11 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +19 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +9 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +9 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +95 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +28 -29
- package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +70 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/integration-reliability.md +79 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +10 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +20 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/repository-topology.md +73 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +51 -16
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +35 -40
- package/pack/generated/claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +4 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +51 -6
- package/pack/generated/claude/skills/rite/SKILL.md +2 -0
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +8 -10
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +13 -15
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +26 -11
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +47 -6
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +12 -0
- package/pack/generated/claude/skills/rite-build/SKILL.md +7 -1
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +6 -1
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +37 -4
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +3 -2
- package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +8 -4
- package/pack/generated/claude/skills/rite-customize/SKILL.md +16 -18
- package/pack/generated/claude/skills/rite-define/SKILL.md +60 -62
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +88 -71
- package/pack/generated/claude/skills/rite-explain/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-learn/SKILL.md +28 -32
- package/pack/generated/claude/skills/rite-plan/SKILL.md +42 -45
- package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +11 -2
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +2 -0
- package/pack/generated/claude/skills/rite-polish/reference/adr-promotion.md +7 -7
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +24 -31
- package/pack/generated/claude/skills/rite-prove/SKILL.md +12 -15
- package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +28 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +5 -4
- package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +6 -0
- package/pack/generated/claude/skills/rite-review/reference/security-review.md +7 -2
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +3 -0
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +19 -4
- package/pack/generated/claude/skills/rite-ship/reference/rollout.md +62 -43
- package/pack/generated/claude/skills/rite-spec/SKILL.md +8 -1
- package/pack/generated/claude/skills/rite-spec/reference/ai-spec-template.md +13 -6
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +14 -2
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +33 -4
- package/pack/generated/claude/skills/rite-temper/SKILL.md +5 -1
- package/pack/generated/claude/skills/rite-vet/SKILL.md +14 -10
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +5 -3
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +67 -77
- package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +85 -0
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +4 -5
- package/pack/generated/claude/workflows/devrites-readonly-review.js +194 -0
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +6 -1
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +5 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +6 -0
- package/pack/generated/codex/agents/devrites-proof-runner.toml +7 -1
- package/pack/generated/codex/agents/devrites-retrospector.toml +21 -25
- package/pack/generated/codex/agents/devrites-security-auditor.toml +7 -3
- package/pack/generated/codex/agents/devrites-slice-wright.toml +30 -4
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +5 -0
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +3 -4
- package/pack/generated/codex/agents/devrites-test-analyst.toml +5 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +12 -16
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -14
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +3 -4
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +3 -4
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +6 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +5 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +33 -8
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +11 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +19 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +9 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +9 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +95 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +5 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +28 -29
- package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +70 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/integration-reliability.md +79 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +10 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +20 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/repository-topology.md +73 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +6 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +51 -16
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +35 -40
- package/pack/generated/codex/skills/devrites-lib/reference/standards/test-proof-checklist.md +4 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +51 -6
- package/pack/generated/codex/skills/rite/SKILL.md +2 -0
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +8 -10
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +13 -15
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +26 -11
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +47 -6
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +12 -0
- package/pack/generated/codex/skills/rite-build/SKILL.md +7 -1
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +6 -1
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +37 -4
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +3 -2
- package/pack/generated/codex/skills/rite-converge/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +8 -4
- package/pack/generated/codex/skills/rite-customize/SKILL.md +16 -18
- package/pack/generated/codex/skills/rite-define/SKILL.md +60 -62
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +88 -71
- package/pack/generated/codex/skills/rite-explain/SKILL.md +2 -1
- package/pack/generated/codex/skills/rite-learn/SKILL.md +28 -32
- package/pack/generated/codex/skills/rite-plan/SKILL.md +42 -45
- package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +11 -2
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +2 -0
- package/pack/generated/codex/skills/rite-polish/reference/adr-promotion.md +7 -7
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +24 -31
- package/pack/generated/codex/skills/rite-prove/SKILL.md +12 -15
- package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +28 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +6 -0
- package/pack/generated/codex/skills/rite-review/reference/security-review.md +7 -2
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +3 -0
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +19 -4
- package/pack/generated/codex/skills/rite-ship/reference/rollout.md +62 -43
- package/pack/generated/codex/skills/rite-spec/SKILL.md +8 -1
- package/pack/generated/codex/skills/rite-spec/reference/ai-spec-template.md +13 -6
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +14 -2
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +33 -4
- package/pack/generated/codex/skills/rite-temper/SKILL.md +5 -1
- package/pack/generated/codex/skills/rite-vet/SKILL.md +14 -10
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +5 -3
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +67 -77
- package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +85 -0
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +4 -5
- package/package.json +1 -1
- package/scripts/build-host-artifacts.sh +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
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
|
+
## [4.1.0](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.12...v4.1.0) (2026-08-12)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
* **rite:** add bounded host-native loop operations ([af8f50e](https://github.com/ViktorsBaikers/DevRites/commit/af8f50e434160a7ab33d7e4c8b5b387c4097bfdc))
|
|
10
|
+
* **rite:** deepen engineering risk guidance ([a109d35](https://github.com/ViktorsBaikers/DevRites/commit/a109d35788d831f037361cbc5c491d0b2cb2dd64))
|
|
11
|
+
* **rite:** govern decision horizons and learnings ([af48088](https://github.com/ViktorsBaikers/DevRites/commit/af48088157107e08f60a82659d7e445180ed1e96))
|
|
12
|
+
|
|
13
|
+
## [4.0.12](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.11...v4.0.12) (2026-08-09)
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
* **rite:** keep internal replans in autocomplete ([9dbbd30](https://github.com/ViktorsBaikers/DevRites/commit/9dbbd30d6fbb088f2b175b6c4af06a9d7e5e9114))
|
|
18
|
+
|
|
5
19
|
## [4.0.11](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.10...v4.0.11) (2026-08-08)
|
|
6
20
|
|
|
7
21
|
### Fixed
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
|
|
|
28
28
|
Unattended runs may create local WIP checkpoint commits along the way, but they
|
|
29
29
|
remain local unless Ship's disclosed plan includes an approved remote action.
|
|
30
30
|
|
|
31
|
-
**Status:** [`v4.0
|
|
31
|
+
**Status:** [`v4.1.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v4.1.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
32
32
|
|
|
33
33
|
This is the latest published release; `main` may contain unreleased work.
|
|
34
34
|
|
|
@@ -107,6 +107,8 @@ Some work needs a different route:
|
|
|
107
107
|
Autocomplete reopens a stale missing-writer stop once instead of preserving the
|
|
108
108
|
obsolete recovery count. The first real root-materializer failure then counts as
|
|
109
109
|
attempt one under normal fingerprint recovery; it is not terminal by itself.
|
|
110
|
+
Likewise, an internal `NEEDS_REPLAN` result stays inside Autocomplete: it runs
|
|
111
|
+
the next Plan repair and narrow Vet without returning a command to the user.
|
|
110
112
|
- [`/rite-upgrade [slug]`](pack/.claude/skills/rite-upgrade/SKILL.md) is a
|
|
111
113
|
compatibility route for an older active workspace that cannot resume. Age or
|
|
112
114
|
cursor form alone never triggers repair; it is not a lifecycle phase.
|
|
@@ -379,8 +381,8 @@ through Claude Code or Codex plugin stores.
|
|
|
379
381
|
|
|
380
382
|
## Skills and agents
|
|
381
383
|
|
|
382
|
-
The pack ships
|
|
383
|
-
the `rite` menu and
|
|
384
|
+
The pack ships 44 skills: 33 public and 11 internal. The public surface contains
|
|
385
|
+
the `rite` menu and 32 `rite-*` workflows and utilities. Ten `devrites-*`
|
|
384
386
|
specialists load when a matching task needs them; `devrites-lib` carries the
|
|
385
387
|
shared contracts and engineering standards.
|
|
386
388
|
|
package/docs/architecture.md
CHANGED
|
@@ -33,8 +33,8 @@ cursor readers, traceability rules, and phase-relative completeness model, see
|
|
|
33
33
|
2. **Public utility and on-ramp skills**: `rite-adopt`, `rite-quick`,
|
|
34
34
|
`rite-frame`, `rite-status`, `rite-doctor`, `rite-upgrade`, `rite-learn`, `rite-explain`,
|
|
35
35
|
`rite-customize`, `rite-zoom-out`, `rite-prototype`, `rite-handoff`,
|
|
36
|
-
`rite-pressure-test`, `rite-pov`, `rite-dogfood`, `rite-pr-feedback`,
|
|
37
|
-
`rite-autocomplete`. These are public commands. `rite-autocomplete` is the
|
|
36
|
+
`rite-pressure-test`, `rite-pov`, `rite-dogfood`, `rite-pr-feedback`,
|
|
37
|
+
`rite-watch-pr`, and `rite-autocomplete`. These are public commands. `rite-autocomplete` is the
|
|
38
38
|
unattended orchestrator. By default it drives the reversible lifecycle
|
|
39
39
|
through Seal GO and stops. Explicit `--ship` enters Ship preflight but still
|
|
40
40
|
waits for a fresh literal `GO` and native approval before mutation. It
|
|
@@ -381,8 +381,8 @@ contract.
|
|
|
381
381
|
|
|
382
382
|
## Design choices at a glance
|
|
383
383
|
|
|
384
|
-
- **Surface**:
|
|
385
|
-
menu:
|
|
384
|
+
- **Surface**: 32 public `rite-*` skills (44 total), plus the thin `/rite`
|
|
385
|
+
menu: 33 public and 11 internal. The lifecycle
|
|
386
386
|
includes mandatory adaptive Clarify, optional Temper, mandatory Vet, and
|
|
387
387
|
Converge recovery; Seal **decides** and Ship **executes + closes**. Ten
|
|
388
388
|
`devrites-*` specialist skills are model-invoked; `devrites-lib` is the
|
package/docs/command-map.md
CHANGED
|
@@ -19,8 +19,8 @@ mean that a skill is internal; each `SKILL.md` uses `user-invocable:` to set
|
|
|
19
19
|
visibility. Public utilities use the `rite-*` prefix: `rite-quick`,
|
|
20
20
|
`rite-frame`, `rite-adopt`, `rite-learn`, `rite-doctor`, `rite-customize`,
|
|
21
21
|
`rite-zoom-out`, `rite-prototype`, `rite-handoff`, `rite-pressure-test`,
|
|
22
|
-
`rite-autocomplete`, `rite-explain`, `rite-pov`, `rite-dogfood`,
|
|
23
|
-
`rite-pr-feedback`, plus the evidence-gated workspace compatibility command
|
|
22
|
+
`rite-autocomplete`, `rite-explain`, `rite-pov`, `rite-dogfood`,
|
|
23
|
+
`rite-pr-feedback`, and `rite-watch-pr`, plus the evidence-gated workspace compatibility command
|
|
24
24
|
`rite-upgrade`. The host may invoke `devrites-*` specialists through the model.
|
|
25
25
|
`devrites-lib` is the non-workflow library exception.
|
|
26
26
|
|
|
@@ -113,6 +113,7 @@ See [`cli.md`](cli.md).
|
|
|
113
113
|
| [`/rite-pov`](../pack/.claude/skills/rite-pov/SKILL.md) | utility | `[candidate/link/question]` | Project-grounded verdict on one outside option after live repository and primary-source evidence. | live code/docs + external sources | `decisions.md` or ADR only on request |
|
|
114
114
|
| [`/rite-dogfood`](../pack/.claude/skills/rite-dogfood/SKILL.md) | utility | `[feature-slug\|branch] [--port N]` | Diff-scoped browser QA: map changed user journeys, run scenario matrix, fix small obvious breakages, write dogfood report. Explicit-only. | diff + app routes + browser | `.devrites/work/<slug>/dogfood.md` + safe fixes |
|
|
115
115
|
| [`/rite-pr-feedback`](../pack/.claude/skills/rite-pr-feedback/SKILL.md) | utility | `[PR number\|thread URL\|blank for current branch]` | Resolve GitHub PR review feedback: fetch unresolved threads, judge centrally, fix valid items, reply, resolve. Explicit-only. | PR threads + code | code/tests + PR replies/resolutions |
|
|
116
|
+
| [`/rite-watch-pr`](../pack/.claude/skills/rite-watch-pr/SKILL.md) | utility | `[PR number\|PR URL\|blank for current branch]` | Observe one GitHub PR/CI/review snapshot, classify one next action, and stop. Safe for capability-admitted native schedules/events; never mutates code, Git, checks, threads, or PR state. | PR/check/review metadata + bounded failed-log excerpts | none |
|
|
116
117
|
| [`/rite-pressure-test`](../pack/.claude/skills/rite-pressure-test/SKILL.md) | utility | `[idea]` | Pressure-test a rough idea: 3 to 5 genuinely different options → converge on one with trade-off + hinge. | spec / surrounding code | `decisions.md` (optional) |
|
|
117
118
|
| [`/rite-doctor`](../pack/.claude/skills/rite-doctor/SKILL.md) | diagnostic | none | Diagnose the DevRites binary, pack, schema, and native host permission/profile configuration. | install + host config | none |
|
|
118
119
|
|
|
@@ -183,7 +184,7 @@ index is in
|
|
|
183
184
|
[`pack/.claude/skills/devrites-lib/reference/standards/README.md`](../pack/.claude/skills/devrites-lib/reference/standards/README.md).
|
|
184
185
|
|
|
185
186
|
- `core.md` (always-on): operating rules + universal anti-rationalizations + 1-line craft disciplines + persistence-before-stopping summary.
|
|
186
|
-
- On-demand rules and checklists (read by the phase that needs them): `coding-style.md` · `prose-style.md` · `error-handling.md` · `testing.md` · `spec-grammar.md` · `code-review.md` · `edge-case-trace.md` · `principles.md` · `security.md` · `performance.md` · `observability.md` · `developer-experience.md` · `patterns.md` · `git-workflow.md` · `ci-cd.md` · `hooks.md` · `documentation.md` · `development-workflow.md` · `deprecation.md` · `elicitation.md` · `agents.md` · `context-hygiene.md` · `anti-patterns.md` · `afk-hitl.md` · `tooling.md` · `skill-authoring.md` · `definition-of-done.md` · `review-checklist.md` · `test-proof-checklist.md` · `browser-proof-checklist.md` · `security-checklist.md`
|
|
187
|
+
- On-demand rules and checklists (read by the phase that needs them): `coding-style.md` · `prose-style.md` · `error-handling.md` · `testing.md` · `spec-grammar.md` · `code-review.md` · `edge-case-trace.md` · `principles.md` · `security.md` · `repository-topology.md` · `data-integrity.md` · `integration-reliability.md` · `performance.md` · `observability.md` · `developer-experience.md` · `patterns.md` · `git-workflow.md` · `ci-cd.md` · `hooks.md` · `documentation.md` · `development-workflow.md` · `deprecation.md` · `elicitation.md` · `agents.md` · `context-hygiene.md` · `anti-patterns.md` · `afk-hitl.md` · `loop-operations.md` · `tooling.md` · `skill-authoring.md` · `definition-of-done.md` · `review-checklist.md` · `test-proof-checklist.md` · `browser-proof-checklist.md` · `security-checklist.md`
|
|
187
188
|
- `anti-patterns.md`: pack-wide rationalizations + red flags. Loaded by each per-phase `rite-*/reference/anti-patterns.md`; can be loaded directly for cross-phase reluctance.
|
|
188
189
|
|
|
189
190
|
## Trigger conditions (auto-selection)
|
package/docs/flow.md
CHANGED
|
@@ -375,7 +375,7 @@ separately by `disable-model-invocation`.
|
|
|
375
375
|
|
|
376
376
|
```mermaid
|
|
377
377
|
flowchart TB
|
|
378
|
-
subgraph Public["Public (user-invocable: true):
|
|
378
|
+
subgraph Public["Public (user-invocable: true): 33 skills"]
|
|
379
379
|
direction TB
|
|
380
380
|
R1[/rite/]
|
|
381
381
|
R2[/rite-spec/]
|
|
@@ -405,6 +405,7 @@ flowchart TB
|
|
|
405
405
|
RDO[/rite-dogfood/]
|
|
406
406
|
RPOV[/rite-pov/]
|
|
407
407
|
RPF[/rite-pr-feedback/]
|
|
408
|
+
RWP[/rite-watch-pr/]
|
|
408
409
|
IPT[/rite-pressure-test/]
|
|
409
410
|
D1[/rite-zoom-out/]
|
|
410
411
|
D2[/rite-prototype/]
|
package/docs/orchestration.md
CHANGED
|
@@ -28,8 +28,9 @@ root reconciles semantics; engine checks deterministic structure/state/safety
|
|
|
28
28
|
workspace-capable for its writer child to execute.
|
|
29
29
|
- The role catalog has one source/test writer, `devrites-slice-wright`. Claude
|
|
30
30
|
and Codex make only that exact specialist writable.
|
|
31
|
-
- Leaves never invoke leaves, ask the human, change phase,
|
|
32
|
-
|
|
31
|
+
- Leaves never invoke leaves, ask the human, change phase, push, deploy, migrate live
|
|
32
|
+
data, or write canonical workflow state. Only an eligible isolated-worktree wright
|
|
33
|
+
may create one local unpushed transfer commit; same-worktree leaves never commit.
|
|
33
34
|
|
|
34
35
|
Skills name the exact role and bounded task in normal language. The host owns
|
|
35
36
|
internal spawn fields, scheduling, waiting, follow-ups, and result delivery.
|
|
@@ -65,6 +66,35 @@ sibling cannot erase it.
|
|
|
65
66
|
An evidenced clean result is valid. Reviewers must account for their rubric and
|
|
66
67
|
inspected scope, but they never manufacture a finding to fill a quota.
|
|
67
68
|
|
|
69
|
+
## Read-only Claude workflow pilot
|
|
70
|
+
|
|
71
|
+
Claude installs `.claude/workflows/devrites-readonly-review.js` as an optional
|
|
72
|
+
adapter for immutable-candidate discovery, four independent reviewer roles, one
|
|
73
|
+
adversarial verification pass, and a completeness check. Its script owns only
|
|
74
|
+
transient fan-out and intermediate results. It cannot write source, tests,
|
|
75
|
+
`.devrites/**`, Git, proof, lifecycle state, or shared services; it never invokes
|
|
76
|
+
`devrites-slice-wright`.
|
|
77
|
+
|
|
78
|
+
The caller still admits every returned role result under the normal result-closure
|
|
79
|
+
contract and performs final reconciliation. A workflow timeout, missing role,
|
|
80
|
+
malformed result, unread input, or incomplete verification is a gap. The adapter does
|
|
81
|
+
not replace `/rite-review`, alter required rosters, or create another durable state
|
|
82
|
+
plane.
|
|
83
|
+
|
|
84
|
+
Codex keeps the same portable skill/agent semantics through native agent dispatch and
|
|
85
|
+
has no fake workflow mirror. Provider parity applies to review meaning and evidence,
|
|
86
|
+
not to this optional Claude orchestration optimization. Use the pilot only when an
|
|
87
|
+
immutable candidate already exists; lifecycle writes, proof execution, human gates,
|
|
88
|
+
and final decisions remain with the rite root.
|
|
89
|
+
|
|
90
|
+
Host capabilities are admitted independently. Codex CLI agent threads and inherited
|
|
91
|
+
sandboxes establish context/permission separation, not filesystem worktree isolation;
|
|
92
|
+
without an explicit named-agent worktree and reconciliation interface, Codex uses the
|
|
93
|
+
serial same-worktree writer. Likewise, goals or hooks do not prove native time/event
|
|
94
|
+
activation. Unsupported activation remains `unavailable` rather than being emulated by
|
|
95
|
+
a DevRites scheduler or shell loop. The claim-bounded acceptance rows live in
|
|
96
|
+
[`codex-acceptance.json`](../evals/native-host/codex-acceptance.json).
|
|
97
|
+
|
|
68
98
|
## Slice-wright lifecycle
|
|
69
99
|
|
|
70
100
|
For Claude or Codex, the root states the smallest exact project-relative source
|
|
@@ -86,8 +116,19 @@ symlink escapes, duplicates, and `.devrites/**` are invalid.
|
|
|
86
116
|
Exact-path scope is instruction-backed on both hosts; native sandboxes provide
|
|
87
117
|
the broader writer/read-only split. An unauthorized delta is rejected and the
|
|
88
118
|
same bounded writer must restore it before work continues. The root never
|
|
89
|
-
widens the contract or rewrites source.
|
|
90
|
-
|
|
119
|
+
widens the contract or rewrites source.
|
|
120
|
+
|
|
121
|
+
A serial native-worktree pilot may isolate `devrites-slice-wright` when the candidate
|
|
122
|
+
baseline is committed and clean, the repository is not a submodule child, baseline
|
|
123
|
+
proof is green, and the host exposes explicit result reconciliation. The wright
|
|
124
|
+
returns one local unpushed transfer commit; root proves its exact paths and unchanged
|
|
125
|
+
base before native transfer, then re-proves the reconciled candidate. Missing transfer,
|
|
126
|
+
conflict, extra paths, moved base, or cleanup failure stops with worktree evidence
|
|
127
|
+
preserved. No ad hoc copy/cherry-pick/merge occurs from the read-only root.
|
|
128
|
+
|
|
129
|
+
Isolation does not authorize throughput. At most one writer runs across all linked
|
|
130
|
+
worktrees for the workspace; parallel writers remain forbidden until serial transfer,
|
|
131
|
+
conflict, proof, and review measurements justify a separate design.
|
|
91
132
|
|
|
92
133
|
## Engine boundary
|
|
93
134
|
|
package/docs/skills.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# All
|
|
1
|
+
# All 44 skills
|
|
2
2
|
|
|
3
|
-
The pack contains
|
|
3
|
+
The pack contains 44 skills: the `rite` menu, 32 user-invocable `rite-*`
|
|
4
4
|
workflow and utility skills, 10 model-invoked `devrites-*` specialists, and the
|
|
5
5
|
internal `devrites-lib` library. `devrites-lib` is not a command. It holds shared
|
|
6
6
|
references and the few explicit script exceptions.
|
|
@@ -37,7 +37,7 @@ contract when a rite names parallel reviewers.
|
|
|
37
37
|
|
|
38
38
|
`rite-*` is the namespace for lifecycle and utility commands. Its utilities are
|
|
39
39
|
`rite-quick`, `rite-frame`, `rite-adopt`, `rite-learn`, `rite-customize`,
|
|
40
|
-
`rite-explain`, `rite-pov`, `rite-dogfood`, `rite-pr-feedback`, `rite-doctor`,
|
|
40
|
+
`rite-explain`, `rite-pov`, `rite-dogfood`, `rite-pr-feedback`, `rite-watch-pr`, `rite-doctor`,
|
|
41
41
|
`rite-upgrade`, `rite-prototype`, `rite-handoff`, `rite-zoom-out`, and
|
|
42
42
|
`rite-pressure-test`.
|
|
43
43
|
Some specialized utilities set `disable-model-invocation: true` and run only
|
|
@@ -222,7 +222,7 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
|
|
|
222
222
|
|
|
223
223
|
| Skill | What It Does | Use When |
|
|
224
224
|
|---|---|---|
|
|
225
|
-
| [`rite-autocomplete`](../pack/.claude/skills/rite-autocomplete/SKILL.md) | Runs the whole lifecycle unattended (spec → clarify → … → seal → ship), choosing the recommended option at each soft gate and recording the rationale in `decisions.md`. A vague prompt triggers one up-front spec/clarify window; after decision coverage is CLEAR it runs without per-phase iteration, pausing only for genuine product/scope/policy decisions, irreversible risk, human-only access/actions, NO-GO, or budget exhaustion. Objective red checks use bounded technical recovery, including cold-resume recovery from retained one-shot evidence and one-time migration of stale missing-writer stops when an upgraded contract supplies the first supported workflow-artifact writer. That migration applies once, but the first real materializer failure is only attempt one under normal bounded recovery. Spending an action authorization blocks only another real execution, not offline repair. Default stops at Seal GO; `--ship` (alias `--yolo`) reaches Ship preflight but still requires a fresh literal `GO` and native approval. | "Autocomplete", "do the whole thing", "run the full cycle", "one-shot this feature". |
|
|
225
|
+
| [`rite-autocomplete`](../pack/.claude/skills/rite-autocomplete/SKILL.md) | Runs the whole lifecycle unattended (spec → clarify → … → seal → ship), choosing the recommended option at each soft gate and recording the rationale in `decisions.md`. A vague prompt triggers one up-front spec/clarify window; after decision coverage is CLEAR it runs without per-phase iteration, pausing only for genuine product/scope/policy decisions, irreversible risk, human-only access/actions, NO-GO, or budget exhaustion. Objective red checks use bounded technical recovery, including cold-resume recovery from retained one-shot evidence and one-time migration of stale missing-writer stops when an upgraded contract supplies the first supported workflow-artifact writer. That migration applies once, but the first real materializer failure is only attempt one under normal bounded recovery. Internal `NEEDS_REPLAN` and newly discovered agent-owned review findings remain caller-owned backward edges rather than user-facing stops. Spending an action authorization blocks only another real execution, not offline repair. Default stops at Seal GO; `--ship` (alias `--yolo`) reaches Ship preflight but still requires a fresh literal `GO` and native approval. | "Autocomplete", "do the whole thing", "run the full cycle", "one-shot this feature". |
|
|
226
226
|
| [`rite-zoom-out`](../pack/.claude/skills/rite-zoom-out/SKILL.md) | Map the modules, callers, callees, and decisions in an unfamiliar area using the project's domain glossary. | Explicit-only: `/rite-zoom-out` / `/rite zoom-out`. |
|
|
227
227
|
| [`rite-prototype`](../pack/.claude/skills/rite-prototype/SKILL.md) | Throwaway code answering ONE design question: logic harness OR 2 to 4 UI variations on one route. | Explicit-only: `/rite-prototype` / `/rite prototype`. |
|
|
228
228
|
| [`rite-handoff`](../pack/.claude/skills/rite-handoff/SKILL.md) | Compact chat session → handoff doc. References existing `.devrites/work/<slug>/` artifacts by path. | Explicit-only: `/rite-handoff` / `/rite handoff`. |
|
|
@@ -231,6 +231,7 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
|
|
|
231
231
|
| [`rite-pov`](../pack/.claude/skills/rite-pov/SKILL.md) | Project-grounded verdict on a named external option: adopt / trial / hold / reject / not-our-problem after project + external floors clear. | "should we adopt X", "switch to Y", CVE/deprecation relevance, bounded external comparisons. |
|
|
232
232
|
| [`rite-dogfood`](../pack/.claude/skills/rite-dogfood/SKILL.md) | Diff-scoped browser QA: map changed user journeys, run scenario matrix, fix small obvious breakages, write `dogfood.md`. | Explicit-only after prove/polish/review when browser UX confidence matters. |
|
|
233
233
|
| [`rite-pr-feedback`](../pack/.claude/skills/rite-pr-feedback/SKILL.md) | Resolve PR review feedback: fetch unresolved threads, judge centrally, fix valid items, reply, resolve. | Explicit-only: `/rite-pr-feedback` / `/rite pr-feedback`. |
|
|
234
|
+
| [`rite-watch-pr`](../pack/.claude/skills/rite-watch-pr/SKILL.md) | Observe one PR/CI/review snapshot and report one next action without mutation. | Read-only capability-admitted native schedule/event observation or `/rite-watch-pr`. |
|
|
234
235
|
|
|
235
236
|
### Foundation: engineering rules
|
|
236
237
|
|
|
@@ -13,10 +13,11 @@ import (
|
|
|
13
13
|
const (
|
|
14
14
|
DevritesRootName = ".devrites"
|
|
15
15
|
|
|
16
|
-
ClaudeSkillsTarget
|
|
17
|
-
CodexSkillsTarget
|
|
18
|
-
ClaudeAgentsTarget
|
|
19
|
-
CodexAgentsTarget
|
|
16
|
+
ClaudeSkillsTarget = ".claude/skills"
|
|
17
|
+
CodexSkillsTarget = ".agents/skills"
|
|
18
|
+
ClaudeAgentsTarget = ".claude/agents"
|
|
19
|
+
CodexAgentsTarget = ".codex/agents"
|
|
20
|
+
ClaudeWorkflowsTarget = ".claude/workflows"
|
|
20
21
|
|
|
21
22
|
ManifestName = ".claude/devrites.manifest"
|
|
22
23
|
)
|
|
@@ -14,10 +14,11 @@ import (
|
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
const (
|
|
17
|
-
ClaudeSkillsTarget
|
|
18
|
-
CodexSkillsTarget
|
|
19
|
-
ClaudeAgentsTarget
|
|
20
|
-
CodexAgentsTarget
|
|
17
|
+
ClaudeSkillsTarget = devritespaths.ClaudeSkillsTarget
|
|
18
|
+
CodexSkillsTarget = devritespaths.CodexSkillsTarget
|
|
19
|
+
ClaudeAgentsTarget = devritespaths.ClaudeAgentsTarget
|
|
20
|
+
CodexAgentsTarget = devritespaths.CodexAgentsTarget
|
|
21
|
+
ClaudeWorkflowsTarget = devritespaths.ClaudeWorkflowsTarget
|
|
21
22
|
)
|
|
22
23
|
|
|
23
24
|
//go:embed templates/*.tmpl
|
|
@@ -126,6 +127,7 @@ func RequiredPayload(withCodex bool) []string {
|
|
|
126
127
|
required := []string{
|
|
127
128
|
"claude/skills",
|
|
128
129
|
"claude/agents",
|
|
130
|
+
"claude/workflows",
|
|
129
131
|
"claude/settings.json",
|
|
130
132
|
}
|
|
131
133
|
if withCodex {
|
|
@@ -162,6 +164,9 @@ func InstallTrees(withSkills, withAgents, withCodex bool) []Tree {
|
|
|
162
164
|
trees = append(trees, Tree{PayloadPrefix: "codex/agents", TargetPrefix: CodexAgentsTarget})
|
|
163
165
|
}
|
|
164
166
|
}
|
|
167
|
+
if withSkills && withAgents {
|
|
168
|
+
trees = append(trees, Tree{PayloadPrefix: "claude/workflows", TargetPrefix: ClaudeWorkflowsTarget})
|
|
169
|
+
}
|
|
165
170
|
return trees
|
|
166
171
|
}
|
|
167
172
|
|
|
@@ -10,13 +10,14 @@ import (
|
|
|
10
10
|
|
|
11
11
|
func TestValidatePayloadRequiresClaudeAndCodexFiles(t *testing.T) {
|
|
12
12
|
payload := fstest.MapFS{
|
|
13
|
-
"claude/skills/rite/SKILL.md":
|
|
14
|
-
"claude/agents/devrites-code-reviewer.md":
|
|
15
|
-
"claude/
|
|
16
|
-
"
|
|
17
|
-
"codex/
|
|
18
|
-
"codex/
|
|
19
|
-
"codex/
|
|
13
|
+
"claude/skills/rite/SKILL.md": {},
|
|
14
|
+
"claude/agents/devrites-code-reviewer.md": {},
|
|
15
|
+
"claude/workflows/devrites-readonly-review.js": {},
|
|
16
|
+
"claude/settings.json": {},
|
|
17
|
+
"codex/skills/rite/SKILL.md": {},
|
|
18
|
+
"codex/agents/devrites-code-reviewer.toml": {},
|
|
19
|
+
"codex/AGENTS.md": {},
|
|
20
|
+
"codex/config.toml": {},
|
|
20
21
|
}
|
|
21
22
|
if err := ValidatePayload(payload, true); err != nil {
|
|
22
23
|
t.Fatal(err)
|
|
@@ -38,10 +39,18 @@ func TestInstallTreesMapPayloadsToTargets(t *testing.T) {
|
|
|
38
39
|
{PayloadPrefix: "codex/skills", TargetPrefix: ".agents/skills"},
|
|
39
40
|
{PayloadPrefix: "claude/agents", TargetPrefix: ".claude/agents"},
|
|
40
41
|
{PayloadPrefix: "codex/agents", TargetPrefix: ".codex/agents"},
|
|
42
|
+
{PayloadPrefix: "claude/workflows", TargetPrefix: ".claude/workflows"},
|
|
41
43
|
}
|
|
42
44
|
if !reflect.DeepEqual(got, want) {
|
|
43
45
|
t.Fatalf("InstallTrees() = %#v, want %#v", got, want)
|
|
44
46
|
}
|
|
47
|
+
for _, trees := range [][]Tree{InstallTrees(true, false, true), InstallTrees(false, true, true)} {
|
|
48
|
+
for _, tree := range trees {
|
|
49
|
+
if tree.PayloadPrefix == "claude/workflows" {
|
|
50
|
+
t.Fatal("Claude workflow installed without both skills and agents")
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
45
54
|
}
|
|
46
55
|
|
|
47
56
|
func TestAliasTemplateOutput(t *testing.T) {
|
|
@@ -313,11 +313,15 @@ func TestGeneratedPayloadInstallsVerbatim(t *testing.T) {
|
|
|
313
313
|
target := t.TempDir()
|
|
314
314
|
sentinel := "generated sentinel"
|
|
315
315
|
testutil.WriteFile(t, filepath.Join(payload, "codex", "skills", "rite", "SKILL.md"), sentinel+"\n")
|
|
316
|
+
testutil.WriteFile(t, filepath.Join(payload, "claude", "workflows", "devrites-readonly-review.js"), sentinel+"\n")
|
|
316
317
|
|
|
317
318
|
runInstall(t, target, payload, func(o *Options) {})
|
|
318
319
|
if got := testutil.ReadFile(t, filepath.Join(target, ".agents", "skills", "rite", "SKILL.md")); got != sentinel+"\n" {
|
|
319
320
|
t.Fatalf("codex payload was not installed verbatim: %q", got)
|
|
320
321
|
}
|
|
322
|
+
if got := testutil.ReadFile(t, filepath.Join(target, ".claude", "workflows", "devrites-readonly-review.js")); got != sentinel+"\n" {
|
|
323
|
+
t.Fatalf("Claude workflow payload was not installed verbatim: %q", got)
|
|
324
|
+
}
|
|
321
325
|
}
|
|
322
326
|
|
|
323
327
|
func TestInstallBinaryUsesEngineHandoff(t *testing.T) {
|
|
@@ -1220,6 +1224,7 @@ func writeTestPayload(t *testing.T, root string) {
|
|
|
1220
1224
|
t.Helper()
|
|
1221
1225
|
testutil.WriteFile(t, filepath.Join(root, "claude", "skills", "rite", "SKILL.md"), "claude rite\n")
|
|
1222
1226
|
testutil.WriteFile(t, filepath.Join(root, "claude", "agents", "devrites-code-reviewer.md"), "agent\n")
|
|
1227
|
+
testutil.WriteFile(t, filepath.Join(root, "claude", "workflows", "devrites-readonly-review.js"), "return { read_only: true }\n")
|
|
1223
1228
|
testutil.WriteFile(t, filepath.Join(root, "claude", "settings.json"), `{
|
|
1224
1229
|
"permissions": {
|
|
1225
1230
|
"defaultMode": "plan",
|
|
@@ -20,6 +20,8 @@ change.
|
|
|
20
20
|
`coding-style.md`, `patterns.md`, and `edge-case-trace.md`. On Codex, use the
|
|
21
21
|
mirrors under `.agents/skills/devrites-lib/reference/standards/`. Apply the current
|
|
22
22
|
files, not a summary you remember.
|
|
23
|
+
From `spec.md`'s applicability map, load only triggered `repository-topology.md`,
|
|
24
|
+
`data-integrity.md`, or `integration-reliability.md`; their cases remain feature-scoped.
|
|
23
25
|
|
|
24
26
|
## Inputs
|
|
25
27
|
You receive a feature slug or workspace path (`.devrites/work/<slug>/`) and the
|
|
@@ -38,7 +40,8 @@ feature scope and read the touched files.
|
|
|
38
40
|
`file:line` and the test that misses it. See `testing.md` § The verification gap.
|
|
39
41
|
- **Correctness:** check logic, null, empty, and boundary values, error paths, races,
|
|
40
42
|
and assumptions. For branching or boundary changes, run the edge-case trace over
|
|
41
|
-
|
|
43
|
+
relevant probe classes, fixed-set siblings, real wiring, negative intent, and deletion
|
|
44
|
+
contracts. Verify the accepted failure/recovery disposition rather than re-listing cases.
|
|
42
45
|
- **Readability:** check naming, function size, nesting, and comments that explain
|
|
43
46
|
*why*. A new conditional **bolted onto an unrelated flow** is a design smell, not a
|
|
44
47
|
nit; it may need its own helper, state, or policy. Repeated conditionals with the
|
|
@@ -52,6 +55,8 @@ feature scope and read the touched files.
|
|
|
52
55
|
owning layer?
|
|
53
56
|
- Has a type boundary been left implicit through an unnecessary `any`, `unknown`,
|
|
54
57
|
cast, or silent fallback that hides an unclear invariant?
|
|
58
|
+
- Are repository/deployable roots, canonical contract and mutable-state ownership,
|
|
59
|
+
shared resources, and sync/async consistency boundaries preserved without a cycle?
|
|
55
60
|
- **Maintainability:** dead code, leftover TODOs or logs, and convention drift. Check
|
|
56
61
|
**file size as well as diff size**. If a small diff pushes an already-large file
|
|
57
62
|
past a healthy boundary, flag decompose-then-add and recommend extracting helpers
|
|
@@ -25,6 +25,10 @@ slices in dependency order. Map every REQ and AC to a slice and executable proof
|
|
|
25
25
|
name rollback and failure paths; keep acceptance-changing proposals separate. Durable
|
|
26
26
|
proof commands must be portable repository commands, never host-local wrappers,
|
|
27
27
|
user-specific absolute paths, or temporary proof trees.
|
|
28
|
+
Reconcile `spec.md`'s applicability map against live evidence. When triggered, apply
|
|
29
|
+
`repository-topology.md`, `data-integrity.md`, or `integration-reliability.md` and include
|
|
30
|
+
its required plan output with owner, partial-failure/recovery path, deployment order, slice,
|
|
31
|
+
and proof. Do not copy a standard or turn a false `not applicable` into a planning shortcut.
|
|
28
32
|
For every consumptive action, apply `one-shot-actions.md`: draft a durable bounded
|
|
29
33
|
artifact, a finite injective map from every failure emit seam to a stable non-secret
|
|
30
34
|
boundary ID and offline decision, per-seam fault fixtures, cleanup-survival proof,
|
|
@@ -65,6 +69,7 @@ dependency_order: []
|
|
|
65
69
|
technical_decisions: []
|
|
66
70
|
human_owned_choices: []
|
|
67
71
|
validation_commands: []
|
|
72
|
+
applicability_disposition: []
|
|
68
73
|
```
|
|
69
74
|
|
|
70
75
|
The root validates the cross-file bundle and persists accepted content.
|
|
@@ -36,6 +36,10 @@ line, and then assign the band. Do not choose a score and justify it afterward:
|
|
|
36
36
|
table: one reused artifact plus provider- and consumer-side asserting tests that consume
|
|
37
37
|
it. Missing, one-sided, duplicated-contract, vague, or non-consuming proof is `broken`; when no
|
|
38
38
|
boundary changes, require the specific no-impact statement.
|
|
39
|
+
Compare the spec applicability map with live roots, deployables, data ownership,
|
|
40
|
+
integrations, and delivery units. Apply the triggered topology/data/integration standard;
|
|
41
|
+
a missing owner, intermediate deployment state, partial-failure recovery, or required
|
|
42
|
+
plan/proof row is `broken`.
|
|
39
43
|
2. **Scope discipline & reuse:** ask whether this is the minimum diff that meets
|
|
40
44
|
acceptance and whether existing code solves any sub-problem. More than eight
|
|
41
45
|
files or two new services or modules is a complexity smell unless the complexity
|
|
@@ -48,6 +52,8 @@ line, and then assign the band. Do not choose a score and justify it afterward:
|
|
|
48
52
|
Changed behavior without a regression test is critical. Select unit, integration/E2E,
|
|
49
53
|
or eval by path. Shared-contract provider and consumer tests must both consume the
|
|
50
54
|
artifact named in `Shared contract proof`.
|
|
55
|
+
Applicable data/integration/topology risks require discriminating cases; reject a mock
|
|
56
|
+
that cannot reproduce the risk or one member's tests offered as cross-root proof.
|
|
51
57
|
5. **Performance:** check N+1 or unbounded queries, repeated hot-path work, and
|
|
52
58
|
oversized payloads. The plan must measure them or name the measurement, not
|
|
53
59
|
speculate about micro-optimizations.
|
|
@@ -32,7 +32,13 @@ and only the orchestrator-supplied changed paths.
|
|
|
32
32
|
evidence surface>` and a `failures` gap route Spec Drift.
|
|
33
33
|
5. For UI scope, inspect only supplied browser artifacts and route-scoped root
|
|
34
34
|
results. Missing browser proof is `cannot_verify`.
|
|
35
|
-
6.
|
|
35
|
+
6. Reconcile the spec applicability map with the final diff. For triggered topology,
|
|
36
|
+
data, or integration rows, require the focused standard's relevant discriminating
|
|
37
|
+
failure/recovery proof or an evidence-backed dismissal. A generic suite, source
|
|
38
|
+
inspection, one-root result for another root, or risk-erasing mock cannot pass.
|
|
39
|
+
7. Accept `pre-existing`/environment-only only with a supplied dated baseline for the
|
|
40
|
+
same command/cwd/prerequisites/material environment; otherwise use `cannot_verify`.
|
|
41
|
+
8. Recheck supplied before/after candidate identities. A mismatch or unexpected
|
|
36
42
|
repository mutation fails the side-effect boundary.
|
|
37
43
|
|
|
38
44
|
## Rules
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devrites-retrospector
|
|
3
|
-
description: Read-only
|
|
3
|
+
description: Read-only analyst of recurring cross-feature lessons in reviewed Markdown.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
permissionMode: plan
|
|
6
6
|
---
|
|
@@ -9,48 +9,44 @@ permissionMode: plan
|
|
|
9
9
|
|
|
10
10
|
## Role / scope
|
|
11
11
|
|
|
12
|
-
Inspect
|
|
13
|
-
Use native file search; do not
|
|
14
|
-
agents.
|
|
12
|
+
Inspect only supplied archive paths and necessary live authoritative repository sources.
|
|
13
|
+
Use native file search; do not use engine miners, indexes, telemetry, or agents.
|
|
15
14
|
|
|
16
15
|
## Analyze
|
|
17
16
|
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
- Compare candidates with existing `AGENTS.md`, `CLAUDE.md`, scoped standards,
|
|
25
|
-
and accepted ADRs so guidance is stated once.
|
|
17
|
+
- Keep two-feature corrections or one rationale-backed durable product/architecture decision.
|
|
18
|
+
- Verify live claims; cite currentness. Unverifiable = `unknown`, not false.
|
|
19
|
+
- Name trigger/non-trigger; drop generic, stale, one-off, unbounded advice.
|
|
20
|
+
- Search instructions/standards/ADRs for duplicate, contrary, or superseded guidance;
|
|
21
|
+
choose one canonical home + discovery route.
|
|
22
|
+
- Update/narrow/replace/retire at its owner; no rival rule or learning ledger/index/queue.
|
|
26
23
|
|
|
27
24
|
## Classify
|
|
28
25
|
|
|
29
|
-
- **project instruction** —
|
|
30
|
-
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
33
|
-
- **drop** — one-off, stale, duplicate, or unsupported.
|
|
26
|
+
- **project instruction** — instruction/standard;
|
|
27
|
+
- **architecture decision** — ADR;
|
|
28
|
+
- **feature decision** — `decisions.md`;
|
|
29
|
+
- **drop** — unsupported/duplicate/stale/one-off/unknown-currentness.
|
|
34
30
|
|
|
35
|
-
Return findings only
|
|
36
|
-
another agent, or manufacture scores and trends.
|
|
31
|
+
Return findings only; do not write, promote, ask, or score.
|
|
37
32
|
|
|
38
33
|
## Output
|
|
39
34
|
|
|
40
35
|
```text
|
|
41
36
|
Retrospective scope: <features inspected>
|
|
42
37
|
Candidates:
|
|
43
|
-
- [project instruction | architecture decision | feature decision] <
|
|
44
|
-
Evidence: <
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
- [project instruction | architecture decision | feature decision] <lesson>
|
|
39
|
+
Evidence/currentness: <archive refs>; <live source + signal | unknown>
|
|
40
|
+
Scope: applies <trigger>; does not apply <boundary>
|
|
41
|
+
Authority: existing <path|none>; canonical <path>; consumers/discovery <route>
|
|
42
|
+
Disposition: <no conflict | update/narrow/replace/retire path + reason>
|
|
43
|
+
Dropped: <count + reasons>
|
|
48
44
|
No durable candidate: <yes | no>
|
|
49
45
|
```
|
|
50
46
|
|
|
51
47
|
## Tools / read-write mode
|
|
52
48
|
|
|
53
|
-
Read-only
|
|
49
|
+
Read-only.
|
|
54
50
|
|
|
55
51
|
## Composition
|
|
56
52
|
|
|
@@ -47,10 +47,11 @@ Apply the OWASP LLM Top 10 (`.claude/skills/devrites-lib/reference/standards/sec
|
|
|
47
47
|
prompts and context. Enforce authorization server-side rather than in a prompt,
|
|
48
48
|
and never transmit or log PII or secrets.
|
|
49
49
|
- **Supply chain & poisoning (LLM03 / LLM04 / LLM08):** pin and vet models,
|
|
50
|
-
weights, datasets, and RAG or embedding sources. Treat them as untrusted
|
|
50
|
+
weights, datasets, and RAG or embedding sources. Treat them as untrusted; check
|
|
51
|
+
provenance, tenant/ACL retrieval filters, poisoning, freshness, and deletion.
|
|
51
52
|
- **Overreliance (LLM09)** / **unbounded consumption (LLM10):** ground
|
|
52
|
-
consequential calls
|
|
53
|
-
cost, and time.
|
|
53
|
+
consequential calls, cite only supporting retrieved sources, define insufficient-context
|
|
54
|
+
behavior, and keep a human in the loop. Limit request rate, tokens, cost, and time.
|
|
54
55
|
|
|
55
56
|
When the diff changes a DevRites agent, hook, or tool grant, apply the same checks
|
|
56
57
|
to the pack. Confirm least agency, including read-only tools where required, no
|
|
@@ -60,6 +61,9 @@ secrets in prompts, and no trust in model or tool output as instructions.
|
|
|
60
61
|
Apply the three-tier discipline from
|
|
61
62
|
`.claude/skills/devrites-lib/reference/standards/security.md`. Flag any value that
|
|
62
63
|
reaches the trusted tier without crossing the required boundary.
|
|
64
|
+
Explicitly trace authn versus per-resource authz, tenant scope across storage/cache/search/
|
|
65
|
+
jobs/model context, privilege-changing actions, resolved filesystem/archive paths, request
|
|
66
|
+
forgery control, unsafe deserialization, and fail-closed environment defaults when relevant.
|
|
63
67
|
|
|
64
68
|
## Rules
|
|
65
69
|
- Don't edit. Findings only, labeled Critical / Important / Suggestion / Nit / FYI with
|
|
@@ -33,12 +33,20 @@ with one objective and exact permitted source/test paths.
|
|
|
33
33
|
target/relevant call path, local implementation/error conventions, reuse seam,
|
|
34
34
|
test seam, and in-scope principles/rules. Do not read for reassurance. If an
|
|
35
35
|
essential item is missing from permitted context, return `Escalation`; never guess.
|
|
36
|
+
8. **Isolated worktree transfer is explicit.** Only when the dispatch contract names
|
|
37
|
+
`Isolation: native-worktree`, run `git rev-parse HEAD` as the first command and
|
|
38
|
+
require exact equality with supplied `worktree_base` before reading or editing.
|
|
39
|
+
Mismatch returns a gap with no write. After green proof, create one local, unpushed
|
|
40
|
+
transfer commit. Never push, merge, rebase, or remove the worktree. Without that
|
|
41
|
+
exact mode, do not commit.
|
|
36
42
|
|
|
37
43
|
## The contract you receive
|
|
38
44
|
The orchestrator supplies each item inline or by path. All workspace paths are
|
|
39
45
|
relative to the **Workspace root** named in the contract:
|
|
40
46
|
- **Slice:** id/name, goal, acceptance criteria, **scope boundary** (what it will and will
|
|
41
47
|
**not** touch), mode (HITL/AFK + any budget).
|
|
48
|
+
- **Isolation:** `same-worktree` or `native-worktree`; native mode also supplies the
|
|
49
|
+
exact committed `worktree_base` SHA and requires a local transfer commit.
|
|
42
50
|
- **Targets:** the exact project-relative paths listed in the dispatch task,
|
|
43
51
|
plus interfaces and signatures to match. Your return cannot widen this set.
|
|
44
52
|
- **Context to read yourself:** `spec.md`, `plan.md`, `decisions.md`, `assumptions.md`,
|
|
@@ -46,7 +54,9 @@ relative to the **Workspace root** named in the contract:
|
|
|
46
54
|
`rite-polish/reference/anti-ai-slop.md`, and `design-brief.md` when the slice is UI.
|
|
47
55
|
- **Rules in scope** (`.claude/skills/devrites-lib/reference/standards/`): `coding-style.md`, `error-handling.md`, `testing.md`,
|
|
48
56
|
`patterns.md`; `security.md` when input/auth/data/integrations are touched; `performance.md`
|
|
49
|
-
when the slice touches a hot path, a query, or a large payload
|
|
57
|
+
when the slice touches a hot path, a query, or a large payload; and only when named by
|
|
58
|
+
the vetted applicability contract, `repository-topology.md`, `data-integrity.md`, or
|
|
59
|
+
`integration-reliability.md`. These files are authoritative:
|
|
50
60
|
read the in-scope one rather than guessing the standard.
|
|
51
61
|
|
|
52
62
|
**Before ORIENT, restate** the slice goal, acceptance criteria, and scope boundary
|
|
@@ -73,6 +83,10 @@ an escalation and do not proceed.**
|
|
|
73
83
|
Confirm that it fails for the expected reason. Use the project's existing test
|
|
74
84
|
runner rather than adding one.
|
|
75
85
|
3. **IMPLEMENT the smallest complete version**, in the project's style.
|
|
86
|
+
Preserve every applicable invariant and implement the plan's named partial-failure,
|
|
87
|
+
duplicate/retry/concurrency/interruption/tenant/timeout/order/rollback behavior. If
|
|
88
|
+
the live seam disproves the applicability or recovery plan, stop with evidence; do
|
|
89
|
+
not invent a local fallback or broaden the slice.
|
|
76
90
|
- **For a UI slice, invoke `devrites-frontend-craft` first.** Build from
|
|
77
91
|
`design-brief.md` under the full skill rules. Cover empty, loading, error, and
|
|
78
92
|
success states; use project tokens and existing components; meet WCAG 2.2 AA;
|
|
@@ -103,7 +117,12 @@ an escalation and do not proceed.**
|
|
|
103
117
|
`dead_ends`. Resolution is progress, while a different cause returns to the caller as a
|
|
104
118
|
new fingerprint. At the limit return the gate and repro. `Escalation` is only for product/irreversible choices
|
|
105
119
|
or human-only access; technical failure is a blocker.
|
|
106
|
-
5. **
|
|
120
|
+
5. **TRANSFER when isolated.** After green writer-safe proof, verify the diff again,
|
|
121
|
+
stage only exact task paths, and create one new local commit whose message names
|
|
122
|
+
the slice transfer. Record its SHA. If the commit fails or includes any extra
|
|
123
|
+
path, return the failure and preserve the worktree; never bypass hooks or amend.
|
|
124
|
+
In `same-worktree` mode skip this step and leave the approved diff uncommitted.
|
|
125
|
+
6. **RETURN** the structured artifact (below) and stop. Do not start the next slice.
|
|
107
126
|
|
|
108
127
|
## Code quality: consume the rules, don't reinvent them
|
|
109
128
|
Apply the authoritative rule files and canonical anti-slop list named in the contract.
|
|
@@ -143,6 +162,9 @@ never authorizes a path:
|
|
|
143
162
|
```yaml
|
|
144
163
|
slice: <id — name>
|
|
145
164
|
restated_scope: <goal · acceptance · boundary>
|
|
165
|
+
isolation: same-worktree | native-worktree
|
|
166
|
+
worktree_base: <commit sha | none>
|
|
167
|
+
transfer_commit: <commit sha | none>
|
|
146
168
|
files_changed:
|
|
147
169
|
- path: <project-relative path>
|
|
148
170
|
line: <line|n/a>
|
|
@@ -170,13 +192,17 @@ Every key is required; use an empty array when there is nothing to report.
|
|
|
170
192
|
the smallest complete implementation; green gates backed by **real command output**;
|
|
171
193
|
the project's idiom and existing code reused first; **no code or UI slop**; nothing
|
|
172
194
|
beyond the spec; bookkeeping returned instead of written; irreversible-risk items in
|
|
173
|
-
`Escalation`;
|
|
195
|
+
`Escalation`; every triggered topology/data/integration behavior implemented and its
|
|
196
|
+
writer-safe proof run (or exact vetted root-owned proof reported `not-run`); and every
|
|
197
|
+
declared principle honored or the conflict escalated. Fix any
|
|
174
198
|
failure or move it to `Escalation` instead of shipping it quietly.
|
|
175
199
|
|
|
176
200
|
## Tools / read-write mode
|
|
177
201
|
|
|
178
202
|
Write-capable for code and tests only at the exact paths in the current slice
|
|
179
|
-
contract; do not write `.devrites/` bookkeeping.
|
|
203
|
+
contract; do not write `.devrites/` bookkeeping. In exact `native-worktree` mode,
|
|
204
|
+
Git staging and one local transfer commit are permitted only for those paths; all
|
|
205
|
+
other Git mutation and every remote action remain forbidden.
|
|
180
206
|
|
|
181
207
|
## Composition
|
|
182
208
|
|