@codacy/verity-cli 0.34.4 โ 0.34.5-experimental.7268b07
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 +0 -24
- package/README.md +96 -60
- package/bin/verity.js +12116 -10030
- package/data/skills/verity-analyze/SKILL.md +2 -2
- package/data/skills/verity-init/SKILL.md +162 -139
- package/data/skills/verity-setup/SKILL.md +35 -367
- package/data/skills/verity-setup/patterns-reference.yaml +4 -330
- package/data/skills/verity-setup/standard-template.yaml +2 -9
- package/package.json +2 -9
- package/data/skills/verity-setup/validate-patterns.mjs +0 -345
package/CHANGELOG.md
CHANGED
|
@@ -64,30 +64,6 @@ installs are untouched.
|
|
|
64
64
|
which is the ordinary case for someone whose first Verity install *is* the
|
|
65
65
|
plugin.
|
|
66
66
|
|
|
67
|
-
## [0.34.4] โ 2026-10-26
|
|
68
|
-
|
|
69
|
-
**A formal finding is checked before it blocks a push, and formal looks for security bugs.**
|
|
70
|
-
|
|
71
|
-
### ๐ก๏ธ Formal verification
|
|
72
|
-
|
|
73
|
-
- **A reproduced counterexample is checked before it blocks.** A replay proves
|
|
74
|
-
that a failing order runs against stubs of your code. It does not prove that
|
|
75
|
-
the order can happen in production. Verity now investigates each reproduced
|
|
76
|
-
counterexample with the read-only tools of the agent review. It follows the
|
|
77
|
-
code to its entry point and looks for what prevents the order: a lock, a
|
|
78
|
-
unique constraint, a transaction, an idempotency key. Two independent checks
|
|
79
|
-
run, and the more cautious answer governs. A finding is lowered only when
|
|
80
|
-
every quote of the check appears in your code: PREVENTED and ARTIFACT show as
|
|
81
|
-
checked and never block, and REAL-LOW is reported without blocking. A check
|
|
82
|
-
that does not finish leaves the finding as it was.
|
|
83
|
-
`VERITY_FORMAL_VERIFY=off` turns the check off.
|
|
84
|
-
- **Formal looks for security bugs.** The ranker gives each target a lens
|
|
85
|
-
(security or reliability) and up to three concrete hypotheses. A security
|
|
86
|
-
target is modelled from the attacker's side: isolation between tenants,
|
|
87
|
-
revocation, flow binding, event order, and check-then-use.
|
|
88
|
-
- **Generation sees the push.** The lines that your push changed are marked in
|
|
89
|
-
the code that formal models, so it looks first for a bug that the change made.
|
|
90
|
-
|
|
91
67
|
## [0.34.3] โ 2026-10-21
|
|
92
68
|
|
|
93
69
|
**`verity usage` shows the reviews of each member of your org.**
|
package/README.md
CHANGED
|
@@ -10,75 +10,103 @@ cd your-project
|
|
|
10
10
|
verity init
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
`verity init` is the whole setup
|
|
14
|
-
|
|
15
|
-
before push) with arrow-key lists โ `โโ` to move, `space` to toggle, `enter` to
|
|
16
|
-
confirm, and Enter alone takes the recommended answers โ wires everything, offers
|
|
17
|
-
the optional GitHub login, and then gets this project a Standard: **the one your
|
|
18
|
-
team already has**, or one **derived from your codebase** if there isn't one yet.
|
|
13
|
+
`verity init` is the whole setup. It asks two things, and every other choice is
|
|
14
|
+
a default that it states in one line:
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
```
|
|
17
|
+
โ Verity ยท acme/payments
|
|
18
|
+
โ Looked at your repository
|
|
19
|
+
โ Verity reviews every turn, every commit and every push
|
|
20
|
+
โ To change it, run verity config moments, or just ask Claude.
|
|
21
|
+
โ Hooks here: this project's .claude/settings.json
|
|
22
|
+
โ Signed in as you@example.com โ question 1
|
|
23
|
+
โ Profile sent ยท no source code โ question 2
|
|
24
|
+
โ 6 rules for this repository ยท from 500 commits and 2 docs ยท 14s
|
|
25
|
+
โ Standard v1 saved
|
|
26
|
+
โ Ready in 41s.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
1. **Sign in.** Enter opens GitHub's device page in your browser with the code
|
|
30
|
+
already on your clipboard. If the Verity GitHub App cannot see the repository,
|
|
31
|
+
init opens the install page and waits for it. Press `s` to skip: then only the
|
|
32
|
+
local security scan runs, because AI review needs sign-in.
|
|
33
|
+
2. **Send a repo profile?** Only asked when you are signed in and the repository
|
|
34
|
+
has no Standard yet. The profile holds languages, frameworks and dependency
|
|
35
|
+
names, folder names, commit subjects with the paths they changed, and
|
|
36
|
+
CLAUDE.md and AGENTS.md without their code blocks. This step sends no source
|
|
37
|
+
code, diffs or author names, and Verity does not store the profile. Read it
|
|
38
|
+
first: init writes it to `.verity/repo-profile.json`, and `v` shows it. The
|
|
39
|
+
service writes review rules for this repository from it. Later, each review
|
|
40
|
+
sends the code that changed.
|
|
41
|
+
|
|
42
|
+
When it ends, start a new Claude Code session: Claude Code reads hooks when a
|
|
43
|
+
session starts. Under the plugin, Verity reviews from your next turn.
|
|
23
44
|
|
|
24
45
|
### Where the Standard comes from
|
|
25
46
|
|
|
26
47
|
| Situation | What init does |
|
|
27
48
|
|---|---|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
49
|
+
| `.verity/standard.yaml` already exists | keeps it, and shares it if the service has none |
|
|
50
|
+
| The service has a Standard for this repo | uses it, without asking: the team's Standard wins |
|
|
51
|
+
| Neither, and you send the profile | the service writes project rules into v1 |
|
|
52
|
+
| Neither, and you do not (or you are not signed in) | builds one from Verity's catalogue for your languages |
|
|
31
53
|
|
|
32
|
-
The
|
|
33
|
-
read from your manifests
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
the auth middleware"); `custom_patterns` stays empty until a model proposes them
|
|
37
|
-
or you write them by hand.
|
|
54
|
+
The catalogue Standard is a lookup, not a guess: languages and frameworks are
|
|
55
|
+
counted and read from your manifests. Add project rules to it later with
|
|
56
|
+
`verity standard generate`, or edit `.verity/standard.yaml` and run
|
|
57
|
+
`verity standard push`.
|
|
38
58
|
|
|
39
|
-
###
|
|
40
|
-
|
|
41
|
-
A Standard belongs to the project, not to your machine. So once you are signed in,
|
|
42
|
-
init asks the service whether this repository already has one:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
This repository already has a Standard on Verity: version 3, pushed by claude-code
|
|
46
|
-
on 2026-08-12 ยท with analysis config and .verityignore
|
|
47
|
-
Use the existing Standard? [Y/n]
|
|
48
|
-
```
|
|
59
|
+
### Defaults, and how to change them
|
|
49
60
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
`--no-adopt` opts out of the whole check, including the request. Offline, signed out, or a service
|
|
57
|
-
that cannot answer: also the regular flow โ setup has never needed the network and
|
|
58
|
-
still doesn't.
|
|
61
|
+
| Default | Change it with |
|
|
62
|
+
|---|---|
|
|
63
|
+
| Verity reviews every turn, every commit and every push | `verity config moments turn,commit,push` (any of them, or `none`), or ask Claude |
|
|
64
|
+
| Static analysis is the Trivy security scan (its database downloads in the background at init) | nothing to configure |
|
|
65
|
+
| Formal verification at push is on for a new project; Lean 4 downloads in the background | `verity config formal off`, or `VERITY_NO_LEAN=1` before init |
|
|
66
|
+
| Cost & usage telemetry is off | `verity telemetry install` |
|
|
59
67
|
|
|
60
|
-
|
|
61
|
-
|
|
68
|
+
A re-run keeps what you chose before: the recorded moments, a kept Standard, and
|
|
69
|
+
anything you set with `verity config`.
|
|
62
70
|
|
|
63
71
|
| Flag | Use |
|
|
64
72
|
|------|-----|
|
|
65
|
-
| `--yes` |
|
|
66
|
-
| `--
|
|
67
|
-
| `--no-adopt` | Don't
|
|
73
|
+
| `--yes` | Ask nothing (CI, scripts, agents). Sign-in is skipped unless you are signed in already, and the profile is sent only with `--profile send`. |
|
|
74
|
+
| `--profile send\|skip` | Answer the profile question without being asked. `/verity:init` asks in the Claude Code session and passes it down |
|
|
75
|
+
| `--no-adopt` | Don't use the Standard the service holds for this repo: build a new one. Skips the request entirely |
|
|
76
|
+
| `--moments <list>` | Set the moments for this run instead of the default: `stop,pre-commit,pre-push`, or `none` |
|
|
77
|
+
| `--telemetry on\|off` | Turn cost & usage telemetry on or off (init does not ask) |
|
|
78
|
+
| `--untrack-memory` ยท `--untrack-state` | Stop tracking the knowledge graph, or committed Verity state, in git (init does not ask) |
|
|
68
79
|
| `--force` | Overwrite the installed skills even when they differ |
|
|
69
|
-
| `--
|
|
70
|
-
|
|
80
|
+
| `--no-setup` ยท `--intensity` | Accepted and ignored, for old scripts and plugin skills |
|
|
81
|
+
|
|
82
|
+
Press Ctrl-C at any point: every step can run again, so nothing is left
|
|
83
|
+
half-written. `verity setup` is an alias for the same command. Run
|
|
84
|
+
`verity doctor` any time to see prerequisites, the hook wiring, and what is
|
|
85
|
+
still missing.
|
|
71
86
|
|
|
72
|
-
|
|
73
|
-
|
|
87
|
+
### What init reports
|
|
88
|
+
|
|
89
|
+
Once you are signed in, init sends one small event per step to the Verity
|
|
90
|
+
service, so that we can see where setup stops. Each event holds the step, how it
|
|
91
|
+
ended (for the profile step: sent, declined or not asked), and the time since
|
|
92
|
+
init started. A random id links the steps of one run,
|
|
93
|
+
and the events are linked to your account. Init sends no repository name, no
|
|
94
|
+
paths and no machine id.
|
|
95
|
+
|
|
96
|
+
Before you sign in, nothing is sent. The steps wait in `~/.verity/init-trace.json`
|
|
97
|
+
and go with your next signed-in run. A run that is never followed by a sign-in is
|
|
98
|
+
never sent, and its entry is dropped after 30 days. Set `DO_NOT_TRACK=1` to turn
|
|
99
|
+
all of this off. It is also off in CI.
|
|
74
100
|
|
|
75
101
|
### Output
|
|
76
102
|
|
|
77
|
-
Human output goes to **stderr**; stdout carries only data (`--json`).
|
|
78
|
-
wordmark, and the
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
103
|
+
Human output goes to **stderr**; stdout carries only data (`--json`). The
|
|
104
|
+
wordmark, the colours and the motion appear only when stderr is a terminal. In
|
|
105
|
+
CI, in a pipe, or when init runs inside a Claude Code session you get the same
|
|
106
|
+
results as plain lines: no art, no motion, no escape sequences, and no question
|
|
107
|
+
that nobody can answer. `NO_COLOR` and `TERM=dumb` keep the motion and drop the
|
|
108
|
+
colour; `VERITY_REDUCED_MOTION=1` keeps the colour and drops the motion;
|
|
109
|
+
`VERITY_NO_BROWSER=1` stops sign-in from opening a browser.
|
|
82
110
|
|
|
83
111
|
### Permission denied?
|
|
84
112
|
|
|
@@ -143,10 +171,9 @@ No re-setup needed: your token, Standard, and run history all carry over.
|
|
|
143
171
|
| Command | Description |
|
|
144
172
|
|---------|-------------|
|
|
145
173
|
| **Core** | |
|
|
146
|
-
| `verity init` | Set up Verity in this project,
|
|
174
|
+
| `verity init` | Set up Verity in this project: two questions (sign in, send a repo profile), the hooks, and the Standard (alias: `verity setup`) |
|
|
147
175
|
| `verity doctor` | Prerequisites, setup phase, hook wiring, and what is still missing (`--json` for the machine-readable report) |
|
|
148
|
-
| `verity standard synthesize` | Derive the Standard
|
|
149
|
-
| `verity standard synthesize --config-only` | Rewrite only the analysis config, from the Standard already here โ the fix for a stale one |
|
|
176
|
+
| `verity standard synthesize` | Derive the Standard from this codebase โ no model, no network (`--push`, `--force`). Static analysis is Trivy only and needs no config |
|
|
150
177
|
| `verity analyze` | Run analysis on changed files (stop hook) |
|
|
151
178
|
| `verity analyze --mode <mode>` | Force analysis mode (standard/plan/debug/skip) |
|
|
152
179
|
| `verity review --files <paths>` | On-demand analysis (advisory) |
|
|
@@ -167,7 +194,8 @@ No re-setup needed: your token, Standard, and run history all carry over.
|
|
|
167
194
|
| `verity logout --others` | Sign out every OTHER machine (e.g. a lost laptop) |
|
|
168
195
|
| `verity logout --all` | Sign out everywhere, including here |
|
|
169
196
|
| `verity hooks install` | Wire Claude Code hooks |
|
|
170
|
-
| `verity
|
|
197
|
+
| `verity config moments turn,commit,push` | Change WHEN Verity reviews: each turn, each commit, each push (all three by default; `none` turns them off) |
|
|
198
|
+
| `verity hooks install --moments stop,pre-commit,pre-push` | The same, in the hook names (kept for scripts) |
|
|
171
199
|
| `verity standard push` | Upload project Standard |
|
|
172
200
|
| **Knowledge** | |
|
|
173
201
|
| `verity reflect` | Trigger knowledge extraction for current task |
|
|
@@ -177,8 +205,8 @@ No re-setup needed: your token, Standard, and run history all carry over.
|
|
|
177
205
|
| `verity memory untrack` | Stop committing `.verity/memory/` โ the graph stays on disk and leaves your diffs |
|
|
178
206
|
| `verity memory track` | Commit the graph on purpose, and record that so nothing offers to change it |
|
|
179
207
|
| **Formal verification** | |
|
|
180
|
-
| `verity config formal push` |
|
|
181
|
-
| `verity config formal off` |
|
|
208
|
+
| `verity config formal push` | Turn it on for this checkout: at push, one risky changed function may get a Lean model, checked and replayed (see below). On by default for a new project |
|
|
209
|
+
| `verity config formal off` | Turn it off |
|
|
182
210
|
| `verity lean status` / `install` / `remove` | The managed Lean 4 toolchain the models are checked with (โ800 MB download, 2.7 GB on disk) |
|
|
183
211
|
| `verity prove candidates [paths]` | Rank the riskiest code from git history and shape signals, no model |
|
|
184
212
|
| `verity prove auto [files]` | Run the push-time phase by hand on the commits ahead of upstream |
|
|
@@ -195,7 +223,7 @@ No re-setup needed: your token, Standard, and run history all carry over.
|
|
|
195
223
|
|
|
196
224
|
| Skill | Description |
|
|
197
225
|
|-------|-------------|
|
|
198
|
-
| `/verity-setup` |
|
|
226
|
+
| `/verity-setup` | Proposes project-specific `custom_patterns` from the code (optional; `verity init` already derives the Standard) |
|
|
199
227
|
| `/verity-analyze` | On-demand analysis |
|
|
200
228
|
| `/verity-status` | Project health dashboard |
|
|
201
229
|
| `/verity-feedback` | Feedback (general + per-finding) |
|
|
@@ -221,9 +249,17 @@ or plain code stops in under a second with a named reason. Counterexamples can
|
|
|
221
249
|
only be replayed for **TypeScript, JavaScript and Python**; other languages stop
|
|
222
250
|
before any model is paid for.
|
|
223
251
|
|
|
252
|
+
For a new project, `verity init` turns this on and starts the Lean 4 download
|
|
253
|
+
in the background (โ800 MB, 2.7 GB on disk; `verity lean status` shows the
|
|
254
|
+
progress). Until Lean is ready, a push reports `formal: skipped (no-toolchain:
|
|
255
|
+
Lean installing, 63%)` and the gate decision does not change. Init does not
|
|
256
|
+
start the download in CI (unless `VERITY_LEAN=1`), with `VERITY_NO_LEAN=1`,
|
|
257
|
+
with formal off, or with less than 3.75 GB free. A re-run of init never turns
|
|
258
|
+
formal on.
|
|
259
|
+
|
|
224
260
|
```bash
|
|
225
|
-
verity config formal
|
|
226
|
-
verity lean install # the toolchain,
|
|
261
|
+
verity config formal off # turn it off for this checkout
|
|
262
|
+
verity lean install # the toolchain, if the background download did not run
|
|
227
263
|
verity prove auto # try it by hand on what is ahead of upstream
|
|
228
264
|
```
|
|
229
265
|
|