aval-adr 1.3.1 → 1.4.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/README.md +47 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -79,6 +79,25 @@ Repo-specific caveats go in `.claude/aval-hook.local.md`. The hook appends that
|
|
|
79
79
|
file; installing again never touches it. `--check` is the drift detector for
|
|
80
80
|
CI: exit 0 wired, exit 1 stale.
|
|
81
81
|
|
|
82
|
+
Where the repository vendors packs, the hook also asks whether they are still
|
|
83
|
+
what their sources publish — at most once an hour per repository, under a
|
|
84
|
+
five-second budget that kills the remote call rather than waiting on it, and
|
|
85
|
+
speaking only when a pack is behind or edited:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
VENDORED DECISIONS ARE BEHIND THEIR SOURCE. The fleet has decided something
|
|
89
|
+
this repository has not adopted yet, so the heads below may be superseded:
|
|
90
|
+
behind fleet has 1bb600e, main now names e73638d
|
|
91
|
+
|
|
92
|
+
1 pack(s) behind. Run `aval add <source>` for each, read the diff, then `aval heads --write`.
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Offline, a slow remote, lost access: silence, on purpose. A notice that fired
|
|
96
|
+
on every flaky network would be the one nobody read on the day a decision
|
|
97
|
+
changed. The stamp that rates the hour lives under `$XDG_CACHE_HOME/aval`
|
|
98
|
+
(default `~/.cache/aval`), never in the repository. `aval add --check` by hand
|
|
99
|
+
always answers in full.
|
|
100
|
+
|
|
82
101
|
The hook pushes; **`aval mcp` lets an agent pull** — the same answers as native
|
|
83
102
|
tools, asked at the moment the question comes up rather than only at the top of
|
|
84
103
|
a session:
|
|
@@ -155,7 +174,7 @@ different edges:
|
|
|
155
174
|
| `aval hook install [--check]` | put the heads in front of an agent at session start |
|
|
156
175
|
| `aval pack [--write\|--check]` | publish this corpus's declarations for others to read |
|
|
157
176
|
| `aval add <source>… [--dry-run]` | vendor another repository's declarations |
|
|
158
|
-
| `aval add --check` | are the vendored packs still what their revisions name |
|
|
177
|
+
| `aval add --check [--quiet] [--budget S]` | are the vendored packs still what their revisions name; `--quiet` speaks only when one is not, `--budget` kills a remote call that has not answered in S seconds |
|
|
159
178
|
|
|
160
179
|
## Rules: what a decision does not settle
|
|
161
180
|
|
|
@@ -233,6 +252,33 @@ a disagreement with the fleet's answer at the fleet's scope.
|
|
|
233
252
|
Nothing in a pack is ever executed, so there is no trust prompt to match
|
|
234
253
|
`amont trust`. The review gate is the pull request that adds the file.
|
|
235
254
|
|
|
255
|
+
A pack goes stale silently otherwise, so there are two ways to be told. The
|
|
256
|
+
session hook asks (see [In front of an agent](#in-front-of-an-agent)). And a
|
|
257
|
+
consumer's CI can ask, as an advisory job, where its runner holds a credential
|
|
258
|
+
that can read the source — a private corpus is reachable from a private
|
|
259
|
+
consumer's runner with a deploy key, not from a public one's without:
|
|
260
|
+
|
|
261
|
+
```yaml
|
|
262
|
+
packs:
|
|
263
|
+
name: vendored decisions are current (advisory, non-blocking)
|
|
264
|
+
runs-on: ubuntu-latest
|
|
265
|
+
continue-on-error: true
|
|
266
|
+
steps:
|
|
267
|
+
- uses: actions/checkout@v4
|
|
268
|
+
- uses: webfactory/ssh-agent@v0.9.0 # or however the runner reaches the source
|
|
269
|
+
with:
|
|
270
|
+
ssh-private-key: ${{ secrets.DECISIONS_READ_KEY }}
|
|
271
|
+
- run: |
|
|
272
|
+
if ! aval add --check --quiet --budget 30 > packs.txt; then
|
|
273
|
+
cat packs.txt
|
|
274
|
+
echo "::warning::vendored decisions are behind or edited — run aval add"
|
|
275
|
+
fi
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Non-blocking for the same reason a dependency advisory is: a decision that
|
|
279
|
+
changed upstream is information about the fleet, not a defect in the change
|
|
280
|
+
under review.
|
|
281
|
+
|
|
236
282
|
That "inert" scopes to execution. A pack's text does reach an agent's context,
|
|
237
283
|
so the hook and the MCP tools both say that a record's wording is data rather
|
|
238
284
|
than instruction, and a value carrying a control character or a bidi override
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aval-adr",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Ask what the current architecture decision is, and get a typed answer",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adr",
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
"node": ">=18"
|
|
33
33
|
},
|
|
34
34
|
"optionalDependencies": {
|
|
35
|
-
"@aval-adr/darwin-arm64": "1.
|
|
36
|
-
"@aval-adr/darwin-x64": "1.
|
|
37
|
-
"@aval-adr/linux-arm64-gnu": "1.
|
|
38
|
-
"@aval-adr/linux-x64-gnu": "1.
|
|
39
|
-
"@aval-adr/linux-x64-musl": "1.
|
|
40
|
-
"@aval-adr/win32-x64": "1.
|
|
35
|
+
"@aval-adr/darwin-arm64": "1.4.0",
|
|
36
|
+
"@aval-adr/darwin-x64": "1.4.0",
|
|
37
|
+
"@aval-adr/linux-arm64-gnu": "1.4.0",
|
|
38
|
+
"@aval-adr/linux-x64-gnu": "1.4.0",
|
|
39
|
+
"@aval-adr/linux-x64-musl": "1.4.0",
|
|
40
|
+
"@aval-adr/win32-x64": "1.4.0"
|
|
41
41
|
}
|
|
42
42
|
}
|