devrites 7.3.2 → 7.3.3
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 +16 -0
- package/README.md +1 -1
- package/docs/cli.md +15 -7
- package/docs/engine/commands.md +2 -2
- package/docs/engine/workspace-schema.md +4 -3
- package/engine/internal/hostpack/hostpack.go +1 -1
- package/engine/internal/lib/apply_bundle.go +25 -8
- package/engine/internal/lib/regression.go +0 -5
- package/engine/internal/lib/resolve.go +33 -16
- package/engine/internal/rootfacts/facts.go +11 -0
- package/engine/internal/state/lock_other.go +4 -0
- package/engine/internal/state/write.go +54 -13
- package/engine/main.go +2 -2
- package/pack/.claude/skills/rite-doctor/SKILL.md +70 -68
- package/pack/generated/README.md +1 -1
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +70 -68
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +70 -68
- package/pack/generated/devin/skills/rite-doctor/SKILL.md +70 -68
- package/pack/generated/dsh/skills/rite-doctor/SKILL.md +70 -68
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +1 -1
- package/pack/generated/omp/skills/rite-doctor/SKILL.md +70 -68
- package/pack/generated/pi/AGENTS.md +1 -1
- package/pack/generated/pi/skills/rite-doctor/SKILL.md +70 -68
- package/package.json +1 -1
- package/scripts/build-host-artifacts.sh +1 -1
- package/scripts/dsh-generate.py +5 -1
- package/scripts/omp-generate.sh +4 -4
- package/scripts/pi-generate.sh +3 -3
package/scripts/dsh-generate.py
CHANGED
|
@@ -117,7 +117,11 @@ def generate(source, target):
|
|
|
117
117
|
for path in (target / "skills").rglob("*.md"):
|
|
118
118
|
text = rewrite(path.read_text())
|
|
119
119
|
if path == target / "skills/rite-doctor/SKILL.md":
|
|
120
|
-
|
|
120
|
+
anchor = " File presence without effective loading is `WARN`;"
|
|
121
|
+
count = text.count(anchor)
|
|
122
|
+
if count != 1:
|
|
123
|
+
raise ValueError(f"{path}: expected exactly one DSH doctor insertion anchor, found {count}")
|
|
124
|
+
text = text.replace(anchor, DSH_DOCTOR + anchor, 1)
|
|
121
125
|
text = re.sub(r"(?<=\S) {2,}$", r"\\", text, flags=re.MULTILINE)
|
|
122
126
|
path.write_text("\n".join(line.rstrip() for line in text.splitlines()).rstrip() + "\n")
|
|
123
127
|
agents = target / "agents"
|
package/scripts/omp-generate.sh
CHANGED
|
@@ -47,8 +47,8 @@ gen_omp_markdown_file() {
|
|
|
47
47
|
-e 's#Skills name exact fresh roles; hosts select matching native profiles and#On omp, every `task` item (each `tasks[]` member) sets `agent` to the exact native profile;\nuse `agent: "devrites-code-reviewer"`, `agent: "devrites-test-analyst"`, or\n`agent: "devrites-slice-wright"` for those roles, including rechecks and repairs.\nKeep `.frontend`, `.backend`, and `.SLICE-001` on dispatch labels, not `agent`.\nAn omitted `agent` selects the default worker; `agent: "reviewer"` is generic. Hosts#' \
|
|
48
48
|
-e 's#`Agent` call#`task` call#g' \
|
|
49
49
|
-e 's#Claude: N concurrent Task wrights \(`acceptEdits`, cwd=worktree\)\.#omp: one `tasks[]` batch of N wrights; `task` has no `cwd` or `acceptEdits`, so each task names its absolute worktree path and the wright works only there.#g' \
|
|
50
|
-
-e 's#^Claude grants only the exact wright `acceptEdits`;#omp has no permission modes: only the wright'"'"'s `tools` allowlist has `edit`/`write
|
|
51
|
-
-e 's#^Claude grants only wright `acceptEdits`;#omp: only the wright'"'"'s `tools` allowlist has `edit`/`write`;
|
|
50
|
+
-e 's#^Claude grants only the exact wright `acceptEdits`;#omp has no permission modes: only the wright'"'"'s `tools` allowlist has `edit`/`write`; `bash` is not a filesystem sandbox. Read-only behavior stays instruction-enforced. Claude grants only the exact wright `acceptEdits`;#' \
|
|
51
|
+
-e 's#^Claude grants only wright `acceptEdits`;#omp: only the wright'"'"'s `tools` allowlist has `edit`/`write`; `bash` is not a filesystem sandbox. Read-only behavior stays instruction-enforced. Claude grants only wright `acceptEdits`;#' \
|
|
52
52
|
-e 's#`AskUserQuestion`#`ask`#g' \
|
|
53
53
|
-e 's#Invoke it with Claude'"'"'s `Skill` tool or Codex'"'"'s$#Invoke it with#' \
|
|
54
54
|
-e 's#Use the `Skill` tool on Claude Code or$#Load it with#' \
|
|
@@ -195,8 +195,8 @@ _omp_append_extension_tools() {
|
|
|
195
195
|
|
|
196
196
|
# Generate an omp Markdown agent from a Claude Code markdown agent.
|
|
197
197
|
# omp loads project/plugin agents from agents/*.md (YAML frontmatter + body).
|
|
198
|
-
#
|
|
199
|
-
#
|
|
198
|
+
# Only devrites-slice-wright, overhaul-*, and fast-builder get write/edit.
|
|
199
|
+
# Reviewers with bash are read-only by instruction, not filesystem-sandboxed.
|
|
200
200
|
gen_omp_agent() {
|
|
201
201
|
local _src="$1" _out="$2"
|
|
202
202
|
local _name _desc _tools_raw _tools _skills _desc_tmp _desc_omp _body_tmp _body_omp
|
package/scripts/pi-generate.sh
CHANGED
|
@@ -127,8 +127,8 @@ _pi_map_tools() {
|
|
|
127
127
|
|
|
128
128
|
# Generate a pi-subagents Markdown agent from a Claude Code markdown agent.
|
|
129
129
|
# pi-subagents loads project agents from .pi/agents/**/*.md (YAML frontmatter +
|
|
130
|
-
# body).
|
|
131
|
-
#
|
|
130
|
+
# body). Only devrites-slice-wright, overhaul-*, and fast-builder get write/edit.
|
|
131
|
+
# Reviewers with bash are read-only by instruction, not filesystem-sandboxed.
|
|
132
132
|
# inheritProjectContext keeps AGENTS.md/CLAUDE.md visible, matching Claude
|
|
133
133
|
# Code subagent semantics. A canonical `skills:` block list passes through.
|
|
134
134
|
gen_pi_agent() {
|
|
@@ -205,7 +205,7 @@ This project has DevRites installed for pi.
|
|
|
205
205
|
- In DevRites guidance, **invoke** means run a skill inline in the current context; **dispatch** means start a fresh agent with `subagent({ agent, task })` (or `runs.run`/`runs.all` in a `workflowScript`), wait for it, and reconcile its result.
|
|
206
206
|
- An asynchronous launch receipt is not a reviewer result or completion. Keep the returned native run/workflow handle and use the public management/status/completion API exposed by the installed tool schema to wait for and collect its terminal result. Reconcile that result before `devrites-engine dispatch ... return`; never re-dispatch to retrieve output. Host configuration may force asynchronous execution even with `async: false`.
|
|
207
207
|
- Routine native result collection uses the exposed public tool; it does not require a bespoke workflow capture helper, private transcripts, or source excavation. Preserve confidentiality and any one-shot limits. Failed, malformed, or unavailable terminal results remain `gap`, never a passed review.
|
|
208
|
-
- Among the lifecycle `devrites-*` specialists, only `devrites-slice-wright` may edit source or tests;
|
|
208
|
+
- Among the lifecycle `devrites-*` specialists, only `devrites-slice-wright` may edit source or tests; others lack `edit`/`write`, but `bash` makes read-only behavior instruction-enforced, not a filesystem sandbox. `/rite-doctor` step 3 checks loaded profiles/tools. Exact paths are instruction-enforced: put project-relative paths in the task, wait for the wright, compare its file list and `git diff --name-only` with that contract, and reject extra paths.
|
|
209
209
|
- The explicit `/overhaul` skill ships its own `overhaul-*` agents outside the DevRites lifecycle. They carry the full write tool set, are dispatched only by that skill, and follow its own approval gate and path contracts instead of the lifecycle writer rules above.
|
|
210
210
|
- The explicit `/rite-fast` skill ships its own `fast-*` agents. Only `fast-builder` carries write tools; `fast-planner`, `fast-checker`, and `fast-critic` stay read-only. `/rite-fast` dispatches them itself and applies its own exact-path contracts.
|
|
211
211
|
- DevRites runtime helpers run through the installed `devrites-engine` binary.
|