devrites 7.0.10 → 7.0.12
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 +1 -1
- package/engine/internal/lib/anchors.go +45 -9
- package/engine/internal/lib/dispatch.go +1 -1
- package/pack/.claude/agents/devrites-proof-runner.md +1 -1
- package/pack/generated/claude/agents/devrites-proof-runner.md +1 -1
- package/pack/generated/codex/agents/devrites-proof-runner.toml +1 -1
- package/pack/generated/devin/agents/devrites-proof-runner.md +1 -1
- package/pack/generated/omp/agents/devrites-proof-runner.md +1 -1
- package/pack/generated/pi/agents/devrites-proof-runner.md +1 -1
- package/package.json +2 -2
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
|
+
## [7.0.12](https://github.com/ViktorsBaikers/DevRites/compare/v7.0.11...v7.0.12) (2026-10-24)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
* **devrites:** resolve nested standard citation paths ([#170](https://github.com/ViktorsBaikers/DevRites/issues/170)) ([05dc684](https://github.com/ViktorsBaikers/DevRites/commit/05dc684564b2541c36db5e479ae464417dfc56d8))
|
|
10
|
+
* **no-release:** label writer contract reminder as advisory ([#169](https://github.com/ViktorsBaikers/DevRites/issues/169)) ([47f298e](https://github.com/ViktorsBaikers/DevRites/commit/47f298e977622587bacad8dfe72eeb159ce8a528))
|
|
11
|
+
|
|
12
|
+
## [7.0.11](https://github.com/ViktorsBaikers/DevRites/compare/v7.0.10...v7.0.11) (2026-10-24)
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
* **deps:** restore dependency audits with bounded exceptions ([#168](https://github.com/ViktorsBaikers/DevRites/issues/168)) ([89b4aa7](https://github.com/ViktorsBaikers/DevRites/commit/89b4aa733d2395c09f979757cde094f57daca822))
|
|
17
|
+
* **devrites:** permit proof runner read-only inspection ([#167](https://github.com/ViktorsBaikers/DevRites/issues/167)) ([aa11b9e](https://github.com/ViktorsBaikers/DevRites/commit/aa11b9e889a67f11de943fa9d90bff9ed0fd6bf3))
|
|
18
|
+
|
|
5
19
|
## [7.0.10](https://github.com/ViktorsBaikers/DevRites/compare/v7.0.9...v7.0.10) (2026-10-23)
|
|
6
20
|
|
|
7
21
|
### Fixed
|
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ history can't lose it. After you clear the conversation, switch hosts, or hand
|
|
|
31
31
|
the feature to another engineer, the next session reads the same plan,
|
|
32
32
|
decisions, and evidence before it continues.
|
|
33
33
|
|
|
34
|
-
**Status:** [`v7.0.
|
|
34
|
+
**Status:** [`v7.0.12`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v7.0.12): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
35
35
|
|
|
36
36
|
This is the latest published release; `main` may contain unreleased work.
|
|
37
37
|
|
|
@@ -217,14 +217,15 @@ func (a anchorer) breaks(cells []string) (status, detail string) {
|
|
|
217
217
|
_, size := utf8.DecodeRuneInString(cited[open:])
|
|
218
218
|
name, quote := cited[:open], cited[open+size:closing]
|
|
219
219
|
var paths []string
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
file := mdName(name)
|
|
221
|
+
switch base := filepath.Base(file); {
|
|
222
|
+
case file == "":
|
|
222
223
|
paths = []string{filepath.Join(a.workspace, "spec.md"), filepath.Join(a.workspace, "decisions.md")}
|
|
223
|
-
case "spec.md"
|
|
224
|
+
case base == "spec.md" || base == "decisions.md":
|
|
224
225
|
paths = []string{filepath.Join(a.workspace, base)}
|
|
225
226
|
default:
|
|
226
|
-
if
|
|
227
|
-
paths = []string{
|
|
227
|
+
if path := a.standardPath(file); path != "" {
|
|
228
|
+
paths = []string{path}
|
|
228
229
|
}
|
|
229
230
|
}
|
|
230
231
|
var text []string
|
|
@@ -265,11 +266,46 @@ func (a anchorer) lines(rel string) ([]string, error) {
|
|
|
265
266
|
return nil, fmt.Errorf("%s is not a file under the workspace or project", rel)
|
|
266
267
|
}
|
|
267
268
|
|
|
268
|
-
|
|
269
|
+
func (a anchorer) standardPath(name string) string {
|
|
270
|
+
name = filepath.ToSlash(name)
|
|
271
|
+
if strings.Contains("/"+name+"/", "/../") || strings.ContainsRune(name, '\\') {
|
|
272
|
+
return ""
|
|
273
|
+
}
|
|
274
|
+
skills, err := resolveSkillsRoot(a.root, a.skillsRoot)
|
|
275
|
+
if err != nil {
|
|
276
|
+
return ""
|
|
277
|
+
}
|
|
278
|
+
standards, err := filepath.Abs(filepath.Join(skills, "devrites-lib", "reference", "standards"))
|
|
279
|
+
if err != nil {
|
|
280
|
+
return ""
|
|
281
|
+
}
|
|
282
|
+
full := name
|
|
283
|
+
if !filepath.IsAbs(full) {
|
|
284
|
+
full = filepath.Join(a.project, filepath.FromSlash(name))
|
|
285
|
+
}
|
|
286
|
+
if rel, err := filepath.Rel(standards, full); err != nil || !filepath.IsLocal(rel) {
|
|
287
|
+
if !filepath.IsLocal(name) {
|
|
288
|
+
return ""
|
|
289
|
+
}
|
|
290
|
+
full = filepath.Join(standards, filepath.FromSlash(name))
|
|
291
|
+
}
|
|
292
|
+
if !safepath.WithinResolved(full, standards) {
|
|
293
|
+
return ""
|
|
294
|
+
}
|
|
295
|
+
return full
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// mdName is the first .md path a breaks anchor names, or "".
|
|
269
299
|
func mdName(name string) string {
|
|
270
|
-
for
|
|
271
|
-
|
|
272
|
-
|
|
300
|
+
for i, part := range strings.Split(name, "`") {
|
|
301
|
+
fields := strings.Fields(part)
|
|
302
|
+
if i%2 == 1 {
|
|
303
|
+
fields = []string{part}
|
|
304
|
+
}
|
|
305
|
+
for _, field := range fields {
|
|
306
|
+
if field = strings.TrimRight(field, ",;:"); strings.HasSuffix(field, ".md") {
|
|
307
|
+
return field
|
|
308
|
+
}
|
|
273
309
|
}
|
|
274
310
|
}
|
|
275
311
|
return ""
|
|
@@ -773,7 +773,7 @@ func admitWrightRounds(root, slug string, f *dispatchFile, w *dispatchWave, revi
|
|
|
773
773
|
}
|
|
774
774
|
}
|
|
775
775
|
if kind == "wright" {
|
|
776
|
-
lines = append(lines, "dispatch: wright contract: name the writer-safe checks the wright runs (syntax/type/lint, unit and self-check suites, a narrow local smoke) and never forbid them; only artifact-producing, consumptive, or full canonical gates stay root-owned")
|
|
776
|
+
lines = append(lines, "dispatch: ADVISORY: wright contract reminder: name the writer-safe checks the wright runs (syntax/type/lint, unit and self-check suites, a narrow local smoke) and never forbid them; only artifact-producing, consumptive, or full canonical gates stay root-owned")
|
|
777
777
|
}
|
|
778
778
|
if len(overCap) == 0 {
|
|
779
779
|
if review != "" {
|
|
@@ -60,7 +60,7 @@ and only the orchestrator-supplied changed paths.
|
|
|
60
60
|
## Rules
|
|
61
61
|
|
|
62
62
|
- Read-only: do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
63
|
-
- Execute no
|
|
63
|
+
- Read-only local filesystem inspection and digest calculations are permitted. Execute no test, build, benchmark, gate, application or other effectful command; perform no external write. Invoke no agent and fix nothing.
|
|
64
64
|
- Return a reproduction. Unavailable proof is `cannot_verify`, never pass.
|
|
65
65
|
|
|
66
66
|
## Output format
|
|
@@ -66,7 +66,7 @@ and only the orchestrator-supplied changed paths.
|
|
|
66
66
|
## Rules
|
|
67
67
|
|
|
68
68
|
- Read-only: do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
69
|
-
- Execute no
|
|
69
|
+
- Read-only local filesystem inspection and digest calculations are permitted. Execute no test, build, benchmark, gate, application or other effectful command; perform no external write. Invoke no agent and fix nothing.
|
|
70
70
|
- Return a reproduction. Unavailable proof is `cannot_verify`, never pass.
|
|
71
71
|
|
|
72
72
|
## Output format
|
|
@@ -64,7 +64,7 @@ and only the orchestrator-supplied changed paths.
|
|
|
64
64
|
## Rules
|
|
65
65
|
|
|
66
66
|
- Read-only: do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
67
|
-
- Execute no
|
|
67
|
+
- Read-only local filesystem inspection and digest calculations are permitted. Execute no test, build, benchmark, gate, application or other effectful command; perform no external write. Invoke no agent and fix nothing.
|
|
68
68
|
- Return a reproduction. Unavailable proof is `cannot_verify`, never pass.
|
|
69
69
|
|
|
70
70
|
## Output format
|
|
@@ -68,7 +68,7 @@ and only the orchestrator-supplied changed paths.
|
|
|
68
68
|
## Rules
|
|
69
69
|
|
|
70
70
|
- Read-only: do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
71
|
-
- Execute no
|
|
71
|
+
- Read-only local filesystem inspection and digest calculations are permitted. Execute no test, build, benchmark, gate, application or other effectful command; perform no external write. Invoke no agent and fix nothing.
|
|
72
72
|
- Return a reproduction. Unavailable proof is `cannot_verify`, never pass.
|
|
73
73
|
|
|
74
74
|
## Output format
|
|
@@ -65,7 +65,7 @@ and only the orchestrator-supplied changed paths.
|
|
|
65
65
|
## Rules
|
|
66
66
|
|
|
67
67
|
- Read-only: do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
68
|
-
- Execute no
|
|
68
|
+
- Read-only local filesystem inspection and digest calculations are permitted. Execute no test, build, benchmark, gate, application or other effectful command; perform no external write. Invoke no agent and fix nothing.
|
|
69
69
|
- Return a reproduction. Unavailable proof is `cannot_verify`, never pass.
|
|
70
70
|
|
|
71
71
|
## Output format
|
|
@@ -66,7 +66,7 @@ and only the orchestrator-supplied changed paths.
|
|
|
66
66
|
## Rules
|
|
67
67
|
|
|
68
68
|
- Read-only: do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
69
|
-
- Execute no
|
|
69
|
+
- Read-only local filesystem inspection and digest calculations are permitted. Execute no test, build, benchmark, gate, application or other effectful command; perform no external write. Invoke no agent and fix nothing.
|
|
70
70
|
- Return a reproduction. Unavailable proof is `cannot_verify`, never pass.
|
|
71
71
|
|
|
72
72
|
## Output format
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.12",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, pi, and Devin CLI",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"@semantic-release/npm": {
|
|
93
93
|
"npm": "11.21.1"
|
|
94
94
|
},
|
|
95
|
-
"fast-uri": "3.1.
|
|
95
|
+
"fast-uri": "3.1.9",
|
|
96
96
|
"js-yaml": "4.3.2"
|
|
97
97
|
}
|
|
98
98
|
}
|