@codacy/verity-cli 0.31.1-experimental.be74f71 → 0.31.1-experimental.f2f59c0

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 CHANGED
@@ -5,6 +5,75 @@ All notable changes to Verity are documented here. This project follows
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ### ⌨️ The setup questions answer to arrow keys
9
+
10
+ - **`verity init` no longer asks you to type a number.** Analysis intensity and
11
+ the review moments are arrow-key lists: `↑↓` to move, `space` to toggle a
12
+ moment, `enter` to confirm — with the recommended answer already under the
13
+ cursor and the default set already ticked, so **Enter alone still gives exactly
14
+ what it gave before**.
15
+ - **Digits still work.** This prompt used to be "type a number", and muscle memory
16
+ should not be punished for an interface improvement — a digit moves the cursor
17
+ rather than confirming, so it composes with the arrows instead of being a
18
+ second, hidden way to answer. `j`/`k` move too.
19
+ - **An empty moment selection is refused, not accepted.** Unticking everything and
20
+ pressing Enter says so instead of installing a review tool that reviews nothing
21
+ — the same invariant the typed prompt held by falling back.
22
+ - **Three rungs of degradation, same default at each.** Arrow keys on a real
23
+ terminal; the typed number prompt when the terminal cannot do raw mode; the
24
+ default when there is no terminal at all or stdin ends. An interface improvement
25
+ must not become a new way for a setup to get stuck — CI, pipes and agent Bash
26
+ calls behave exactly as before.
27
+ - **The terminal is restored on every exit,** including Ctrl+C, which restores
28
+ before exiting: raw mode left on outlives the process and makes the user's next
29
+ shell prompt unusable.
30
+
31
+ ## [Unreleased]
32
+
33
+ ### 🤝 Joining a project that already has a Standard
34
+
35
+ - **`verity init` now offers the Standard the service already holds** for this
36
+ repository, instead of asking a model to invent a second one. Everyone after the
37
+ first person on a project — a teammate cloning the repo, the same person on
38
+ another machine, a CI box — gets the team's actual configuration
39
+ (`standard.yaml`, the analysis config, `.verityignore`, `VERITY.md`) written
40
+ straight to disk, and the model phase is skipped entirely.
41
+ - **This is a correctness fix as much as a speed one.** `verity standard push`
42
+ auto-versions, so a re-synthesis does not produce a private copy — it produces
43
+ v4, and v4 is what the team is held to from then on.
44
+ - **Nothing about it can block a setup.** No token, offline, a 404, a service that
45
+ errors: every one of those falls through to the regular flow. An unreliable
46
+ answer is never reported as "no Standard stored" — that would offer a fresh
47
+ synthesis over one the team already agreed.
48
+ - Unattended runs (`--yes`, CI) adopt without asking, for the same reason: a CI
49
+ box quietly authoring a new version of the team's Standard is not an outcome
50
+ anyone would choose on purpose.
51
+ - **`--no-adopt` opts out**, for a script that wants a fresh synthesis on purpose.
52
+ It skips the request as well as the write: asking a question whose answer is
53
+ discarded is a network call the user declined, and in a locked-down CI it is one
54
+ that can fail loudly for no reason.
55
+ - **Declining is remembered per VERSION, never as a mute.** Say no and init stops
56
+ asking about *that* Standard — and offers the next one, because a new version is
57
+ new information. A boolean "never again" would have been the familiar
58
+ silent-forever failure: decline on Monday meaning to synthesize later, forget,
59
+ and every later run stays quiet while the project has no local config at all.
60
+
61
+ ### 🔧 Fixed
62
+
63
+ - **An upgrade no longer removes the gates you chose.** `.verity/setup.json` only
64
+ exists from this release, so every project configured before it had no recorded
65
+ answer — including everyone who picked commit/push gates through the old
66
+ `/verity-setup`. The first upgraded `verity init` fell back to the shipped
67
+ default and reconciled those gates away, turning Stop back on. What you chose is
68
+ still legible in `.claude/settings.json`, so init reads it.
69
+ - `verity doctor` names the artifact that is actually missing instead of telling
70
+ you to run a phase that will decline: with a Standard adopted and no analysis
71
+ config, `/verity-setup` would have answered "already configured".
72
+ - The setup skill learned the same case — Standard present, analysis config
73
+ missing — and writes only the config rather than re-synthesizing the Standard.
74
+
75
+ ## [Unreleased]
76
+
8
77
  **Setup is one command.** `verity init` and `/verity-setup` were two half-flows
9
78
  that overlapped — and the overlap was not harmless: init wired the Stop hook,
10
79
  then the skill reconciled the hooks to a selection it asked for afterwards,
package/README.md CHANGED
@@ -11,9 +11,31 @@ verity init
11
11
  ```
12
12
 
13
13
  `verity init` is the whole setup. It asks how deeply to review and when
14
- (on stop / before commit / before push), wires everything, offers the optional
15
- GitHub login then launches Claude Code to finish the half that needs a model:
16
- reading your codebase and synthesizing the Standard (`/verity-setup`).
14
+ (on stop / before commit / before push) with arrow-key lists `↑↓` to move,
15
+ `space` to toggle, `enter` to confirm, and Enter alone takes the recommended
16
+ answers wires everything, offers the optional GitHub login — then either **adopts the Standard your team already has**, or
17
+ launches Claude Code to synthesize one from your codebase (`/verity-setup`).
18
+
19
+ ### Joining a project that already uses Verity
20
+
21
+ A Standard belongs to the project, not to your machine. So once you are signed in,
22
+ init asks the service whether this repository already has one:
23
+
24
+ ```
25
+ This repository already has a Standard on Verity: version 3, pushed by claude-code
26
+ on 2026-08-12 · with analysis config and .verityignore
27
+ Use the existing Standard? [Y/n]
28
+ ```
29
+
30
+ Say yes and it writes `.verity/standard.yaml`, `.codacy/codacy.config.json`,
31
+ `.verityignore` and `VERITY.md` straight from the service — no model phase, and no
32
+ second version of your team's Standard (`verity standard push` auto-versions, so a
33
+ fresh synthesis would become the version everyone is held to). Say no and it stops asking about
34
+ that version — and offers the next one, since a new version is new information.
35
+ With no Standard stored yet, the regular flow runs.
36
+ `--no-adopt` opts out of the whole check, including the request. Offline, signed out, or a service
37
+ that cannot answer: also the regular flow — setup has never needed the network and
38
+ still doesn't.
17
39
 
18
40
  If Claude Code isn't on your PATH, or you're already inside a session, init prints
19
41
  the one command to run instead. `verity setup` is an alias for the same command.
@@ -22,6 +44,7 @@ the one command to run instead. `verity setup` is an alias for the same command.
22
44
  |------|-----|
23
45
  | `--yes` | Take the recommended answer for every question — no prompts at all (CI, scripts, agents). Includes the GitHub login, whose unattended answer is **skip**: the project stays local-only until you run `verity login`. |
24
46
  | `--no-setup` | Stop after the deterministic phase; don't launch Claude Code |
47
+ | `--no-adopt` | Don't offer the Standard the service already holds for this repo — synthesize a fresh one. Skips the request entirely |
25
48
  | `--force` | Overwrite the installed skills even when they differ |
26
49
 
27
50
  Run `verity doctor` any time to see prerequisites, which phase is done, the hook