@codacy/verity-cli 0.31.1-experimental.79dc9c2 → 0.31.1-experimental.be74f71
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 +81 -3
- package/README.md +28 -3
- package/bin/verity.js +1259 -422
- package/data/skills/verity-setup/SKILL.md +120 -278
- package/package.json +1 -1
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
# /verity-setup — Configure Verity for this project
|
|
2
2
|
|
|
3
|
-
You are
|
|
3
|
+
You are finishing Verity's setup: the half that needs a model.
|
|
4
|
+
|
|
5
|
+
**`verity init` already ran the deterministic half** — prerequisites, the skills,
|
|
6
|
+
the Claude Code hooks (reconciled to the moments the user chose), `.gitignore`,
|
|
7
|
+
the CLAUDE.md instructions, the optional GitHub login, and telemetry. It recorded
|
|
8
|
+
the user's answers in `.verity/setup.json` and then handed off to you.
|
|
9
|
+
|
|
10
|
+
So: **do not re-ask what init asked, and do not re-write what init wrote.** Wiring
|
|
11
|
+
hooks or a `.gitignore` block here is how the two flows drifted apart before — the
|
|
12
|
+
skill reconciled hooks init had just installed, silently removing them.
|
|
13
|
+
|
|
14
|
+
**What is yours** — everything a program cannot decide:
|
|
15
|
+
1. Read the codebase and understand it (Step 2).
|
|
16
|
+
2. Synthesize `.verity/standard.yaml` from what you found (Step 4).
|
|
17
|
+
3. Write `.codacy/codacy.config.json` with curated, validated pattern ids (Step 5).
|
|
18
|
+
4. Upload both, seed the knowledge base, write `VERITY.md` (Steps 7–8).
|
|
4
19
|
|
|
5
20
|
**Reference files** (installed in this project at `.claude/skills/verity-setup/`):
|
|
6
21
|
- `patterns-reference.yaml` — Research-backed patterns catalog (quality, security, language-specific)
|
|
@@ -8,17 +23,38 @@ You are setting up Verity, a quality gate for AI-generated code. Follow every st
|
|
|
8
23
|
|
|
9
24
|
---
|
|
10
25
|
|
|
11
|
-
## Step 1:
|
|
26
|
+
## Step 1: Confirm the deterministic phase ran
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
verity doctor --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
One read gives you prerequisites, which phase is done, the user's recorded
|
|
33
|
+
answers, the hook wiring, and a `next` list. Branch on it:
|
|
34
|
+
|
|
35
|
+
- **`phases.init.done` is false** → `verity init` has not run in this project.
|
|
36
|
+
Run it (it is idempotent, and it is what installed this skill):
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
verity init --yes --no-setup
|
|
40
|
+
```
|
|
12
41
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
42
|
+
`--yes` takes the recommended answer for every question — use it only because
|
|
43
|
+
you are already inside a Claude Code session and cannot ask on init's terminal.
|
|
44
|
+
Tell the user which defaults were taken and that `verity init` (run by hand in a
|
|
45
|
+
terminal) is where those choices are made. `--no-setup` stops init from trying
|
|
46
|
+
to launch a second Claude Code session on top of this one.
|
|
47
|
+
- **`blocked` is true** → a required prerequisite is missing. Show the
|
|
48
|
+
`prerequisites[].remedy` lines and stop; nothing below can work.
|
|
49
|
+
- **`artifacts.verityMd` is true and the user did not pass `--force`** → already
|
|
50
|
+
configured. Say "Already configured. Run `/verity-setup --force` to
|
|
51
|
+
reconfigure." and stop.
|
|
52
|
+
- A **warn**-status prerequisite (Claude Code, `@codacy/analysis-cli`) is not
|
|
53
|
+
fatal. Mention it once — a missing analysis CLI means no static findings — and
|
|
54
|
+
continue.
|
|
55
|
+
|
|
56
|
+
Then get the git remote: `git remote get-url origin`. If there is none, ask the
|
|
57
|
+
user for a project identifier to use instead.
|
|
22
58
|
|
|
23
59
|
---
|
|
24
60
|
|
|
@@ -60,74 +96,30 @@ Record all findings. You will use them in the next steps.
|
|
|
60
96
|
|
|
61
97
|
---
|
|
62
98
|
|
|
63
|
-
## Step 3:
|
|
64
|
-
|
|
65
|
-
Use the **AskUserQuestion** tool to ask:
|
|
66
|
-
|
|
67
|
-
> **Analysis intensity:**
|
|
68
|
-
> - **lightweight** — Critical security only. Fastest (~3s). Good for rapid iteration.
|
|
69
|
-
> - **balanced** (recommended) — Security + quality. Good coverage (~8s).
|
|
70
|
-
> - **thorough** — All tools, all rules. Most comprehensive (~15s).
|
|
71
|
-
>
|
|
72
|
-
> Which mode? [balanced]
|
|
73
|
-
|
|
74
|
-
Default to `balanced` if the user says "default" or doesn't specify a preference.
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Step 3a: Choose analysis moments
|
|
79
|
-
|
|
80
|
-
This decides **when** Verity reviews code. Use the **AskUserQuestion** tool with
|
|
81
|
-
`multiSelect: true`:
|
|
82
|
-
|
|
83
|
-
> **When should Verity review your code? (select all that apply)**
|
|
84
|
-
> - **On stop** (recommended) — after every agent turn. Fast feedback while you work.
|
|
85
|
-
> - **Before commit** — gates `git commit`; reviews the **staged** diff and blocks the commit on FAIL.
|
|
86
|
-
> - **Before push / PR** — gates `git push` and `gh pr create`; reviews the **to-be-pushed** commits and blocks on FAIL.
|
|
87
|
-
>
|
|
88
|
-
> Default: **On stop**
|
|
89
|
-
|
|
90
|
-
Notes to convey if asked:
|
|
91
|
-
- The git-moment gates run an independent reviewer at the boundary the customer cares
|
|
92
|
-
about; a FAIL blocks the commit/push so the agent fixes issues before they land
|
|
93
|
-
(capped at 2 review cycles so you're never stuck).
|
|
94
|
-
- These are **Claude Code** hooks (they fire when the agent runs `git commit`/`git push`),
|
|
95
|
-
not native git hooks — no `.git/hooks` files, no GitHub App.
|
|
96
|
-
- "On stop" alone matches today's behavior. Many teams pick **Before commit + Before push**
|
|
97
|
-
and turn **On stop** off to review only at real boundaries.
|
|
98
|
-
|
|
99
|
-
Map the selection to moment ids: On stop → `stop`, Before commit → `pre-commit`,
|
|
100
|
-
Before push/PR → `pre-push`. Remember this list; you apply it in **Step 9**.
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Step 3b: Ask about cost & usage telemetry (opt-in)
|
|
99
|
+
## Step 3: Read the choices already made
|
|
105
100
|
|
|
106
|
-
|
|
107
|
-
cost and token data comes from Claude Code's own OpenTelemetry export, so with telemetry off
|
|
108
|
-
the dashboard stays empty.
|
|
101
|
+
From the `verity doctor --json` output in Step 1:
|
|
109
102
|
|
|
110
|
-
|
|
103
|
+
| Field | What it is | Where you use it |
|
|
104
|
+
|---|---|---|
|
|
105
|
+
| `answers.intensity` | `lightweight` \| `balanced` \| `thorough` | Step 4 (`process_constraints.analysis_mode`) and Step 5 (which tools/patterns) |
|
|
106
|
+
| `answers.moments` | `stop`, `pre-commit`, `pre-push` | Nothing to do — the hooks are already wired to exactly this |
|
|
107
|
+
| `answers.telemetry` | `enabled` \| `declined` \| `deferred` | Nothing to do — mention `deferred` once (see below) |
|
|
111
108
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
```
|
|
109
|
+
**Do not ask these again.** They were asked on init's terminal, and the machine
|
|
110
|
+
state already reflects them.
|
|
115
111
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
112
|
+
If `answers.intensity` is `null` (a project set up before this file existed, or a
|
|
113
|
+
failed write), that is the only case where you ask — a single question, defaulting
|
|
114
|
+
to `balanced`:
|
|
119
115
|
|
|
120
|
-
> **
|
|
121
|
-
>
|
|
122
|
-
> tree — by receiving Claude Code's built-in **OpenTelemetry** export. This sends usage
|
|
123
|
-
> **metrics and traces only** (model names, token counts, USD cost, agent types, session IDs).
|
|
124
|
-
> It does **NOT** send your prompts, code, or tool input/output. Without it, the `/usage`
|
|
125
|
-
> dashboard stays empty.
|
|
126
|
-
> - **Yes** (recommended) — enable telemetry
|
|
127
|
-
> - **No** — skip (you can enable later with `verity telemetry install`)
|
|
116
|
+
> **Analysis intensity:** lightweight (critical security only, ~3s) ·
|
|
117
|
+
> **balanced** (security + quality, ~8s) · thorough (all tools, all rules, ~15s)
|
|
128
118
|
|
|
129
|
-
|
|
130
|
-
|
|
119
|
+
If `answers.telemetry` is `deferred`, the user asked for cost & usage telemetry
|
|
120
|
+
before a token existed. Say so once, and that `verity login` followed by
|
|
121
|
+
`verity telemetry install` finishes it. Do not run either — logging in is the
|
|
122
|
+
user's decision to make at a terminal.
|
|
131
123
|
|
|
132
124
|
---
|
|
133
125
|
|
|
@@ -149,9 +141,9 @@ Generate `.verity/standard.yaml` by filling in the template:
|
|
|
149
141
|
- Existing code patterns (e.g., "RLS policies on all Supabase tables")
|
|
150
142
|
- Each pattern needs: id, description, severity, rationale
|
|
151
143
|
|
|
152
|
-
5. **process_constraints**: Set `analysis_mode` to
|
|
144
|
+
5. **process_constraints**: Set `analysis_mode` to `answers.intensity` from Step 3. Keep `self_healing_limit: 2`. Leave the knowledge-system flags (`compound_enabled`, `memory_graph_enabled`, `memory_graph_budget_tokens`, `knowledge_injection_budget_tokens`, `finding_autosuppress_threshold`) and intent thresholds (`intent_fail_threshold`, `intent_warn_threshold`) at their template defaults — they're surfaced so users can tune later, not so you pick new values during setup.
|
|
153
145
|
|
|
154
|
-
6. **tool_configuration**: Based on detected languages +
|
|
146
|
+
6. **tool_configuration**: Based on detected languages + the intensity from Step 3, select tools from the patterns reference `tool_recommendations` section. For existing tool configs, set the config_file path.
|
|
155
147
|
|
|
156
148
|
Write the file to `.verity/standard.yaml`. Show the user a summary:
|
|
157
149
|
> **Standard synthesized:**
|
|
@@ -480,57 +472,47 @@ binary — Semgrep needs Opengrep installed separately, and at `--log-level erro
|
|
|
480
472
|
|
|
481
473
|
---
|
|
482
474
|
|
|
483
|
-
## Step 6:
|
|
484
|
-
|
|
485
|
-
Login now happens in `verity init` (an optional, skippable step), **not** here.
|
|
486
|
-
This step only checks whether the user authenticated during init, and branches
|
|
487
|
-
the rest of setup accordingly.
|
|
475
|
+
## Step 6: Check authentication
|
|
488
476
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
used **once** to verify that, then discarded. Verity never stores it.
|
|
492
|
-
- It does **not** give Verity access to their code. Code checked by the gate is
|
|
493
|
-
analyzed **in memory and discarded** — Verity never stores their code.
|
|
494
|
-
- It is **required to store and access run history** for the repo (past results,
|
|
495
|
-
trends, and shareable reports).
|
|
496
|
-
- Skipping keeps Verity fully **local-only**: the gate still runs and shows
|
|
497
|
-
findings, but nothing is uploaded.
|
|
477
|
+
Login happens in `verity init` (an optional, skippable step), **not** here. This
|
|
478
|
+
step only checks whether it happened, and branches the rest of setup.
|
|
498
479
|
|
|
499
480
|
```bash
|
|
500
481
|
verity auth verify
|
|
501
482
|
```
|
|
502
483
|
|
|
503
|
-
- **Token valid** (prints the project name):
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
and continue to Step 8. Tell the user they can authenticate anytime to unlock
|
|
511
|
-
deep review, history, and shareable reports by running:
|
|
484
|
+
- **Token valid** (prints the project name): continue to Step 7 — the Standard,
|
|
485
|
+
config, and knowledge base will upload.
|
|
486
|
+
- **Not authenticated / no token**: the user skipped login in `verity init` (or
|
|
487
|
+
lacks write access). Verity runs in **local-only mode** — the gate still runs
|
|
488
|
+
and surfaces findings, but nothing uploads and no history is stored. **Skip
|
|
489
|
+
Step 7** (it requires a token) and continue to Step 8. Tell them they can
|
|
490
|
+
authenticate anytime with:
|
|
512
491
|
|
|
513
492
|
```bash
|
|
514
493
|
verity login # one GitHub login covers every repo you can write to
|
|
515
|
-
# or: verity init # re-runs init; offers the same auth prompt
|
|
516
494
|
```
|
|
517
495
|
|
|
518
|
-
|
|
519
|
-
flow** ("open https://github.com/login/device and enter code WXYZ-1234"),
|
|
520
|
-
proving the user has **write access** before the service issues a token. The
|
|
521
|
-
GitHub App requests only read-only permissions (Metadata + Email addresses);
|
|
522
|
-
the provider token is used once server-side to sweep the repositories the user
|
|
523
|
-
can write to, and is never persisted.
|
|
524
|
-
|
|
525
|
-
**One login covers every repository** the user can write to, not just this one.
|
|
526
|
-
Re-running `verity login` is also how access to newly-granted repos is picked
|
|
527
|
-
up, and how an expired verification is restored. If login reports this
|
|
528
|
-
repository is **not covered**, the Verity GitHub App has not been granted
|
|
529
|
-
access to it — grant it, then re-run `verity login`.
|
|
496
|
+
Then re-run `/verity-setup --force` to upload what was generated locally.
|
|
530
497
|
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
498
|
+
**If the user asks what signing in does or why it matters:**
|
|
499
|
+
- It confirms they have **write access to this repository** — the GitHub token is
|
|
500
|
+
used **once** for that check, then discarded. Verity never stores it.
|
|
501
|
+
- It does **not** give Verity access to their code. Code checked by the gate is
|
|
502
|
+
analyzed **in memory and discarded**.
|
|
503
|
+
- It is **required to store and access run history** (past results, trends,
|
|
504
|
+
shareable reports).
|
|
505
|
+
- Login is **provider-gated** (GitHub today) via a GitHub App **device flow**
|
|
506
|
+
("open https://github.com/login/device and enter code WXYZ-1234"). The App
|
|
507
|
+
requests only read-only permissions (Metadata + Email addresses).
|
|
508
|
+
- **One login covers every repository** the user can write to. Re-running
|
|
509
|
+
`verity login` is also how newly-granted repos are picked up and how an expired
|
|
510
|
+
verification is restored. If login reports this repository is **not covered**,
|
|
511
|
+
the Verity GitHub App has not been granted access to it — grant it, then re-run
|
|
512
|
+
`verity login`.
|
|
513
|
+
|
|
514
|
+
The token and service_url live in the single global file `~/.verity/credentials`
|
|
515
|
+
— nothing secret is written into the repo.
|
|
534
516
|
|
|
535
517
|
---
|
|
536
518
|
|
|
@@ -570,31 +552,6 @@ This derives a small set of descriptive memory nodes from what you already analy
|
|
|
570
552
|
|
|
571
553
|
---
|
|
572
554
|
|
|
573
|
-
## Step 7b: Enable telemetry (only if the user opted in at Step 3b)
|
|
574
|
-
|
|
575
|
-
> **Skip this step if the user is not authenticated** (local-only mode) — telemetry
|
|
576
|
-
> export requires the token. Note that `/usage` stays empty until they authenticate
|
|
577
|
-
> and run `verity telemetry install`.
|
|
578
|
-
|
|
579
|
-
If — and only if — the user said **Yes** in Step 3b, enable the Claude Code telemetry export
|
|
580
|
-
now (the token from Step 6 must already exist):
|
|
581
|
-
|
|
582
|
-
```bash
|
|
583
|
-
verity telemetry install
|
|
584
|
-
```
|
|
585
|
-
|
|
586
|
-
This writes the `OTEL_*` env block plus an `otelHeadersHelper` to `.claude/settings.local.json`
|
|
587
|
-
and points Claude Code's OpenTelemetry exporter at Verity's OTLP endpoint. No token is written to
|
|
588
|
-
the file — the helper (`verity telemetry headers`) resolves the project token from
|
|
589
|
-
`~/.verity/credentials` at session start, so the secret never lands in the repo. Tell the user it
|
|
590
|
-
takes effect on their **next** Claude Code session, that first metrics appear within ~60s of
|
|
591
|
-
activity, and point them at `/usage`.
|
|
592
|
-
|
|
593
|
-
If the user declined, skip this step and note that `/usage` will stay empty until they run
|
|
594
|
-
`verity telemetry install`.
|
|
595
|
-
|
|
596
|
-
---
|
|
597
|
-
|
|
598
555
|
## Step 8: Generate VERITY.md file
|
|
599
556
|
|
|
600
557
|
Create `VERITY.md` at the project root with this content:
|
|
@@ -633,125 +590,7 @@ Every time the coding agent stops, the Verity hook:
|
|
|
633
590
|
|
|
634
591
|
---
|
|
635
592
|
|
|
636
|
-
## Step
|
|
637
|
-
|
|
638
|
-
If `CLAUDE.md` exists (or `.claude/CLAUDE.md`), append these two blocks. If it doesn't exist, create it with these blocks. Do NOT overwrite existing content — append only.
|
|
639
|
-
|
|
640
|
-
```markdown
|
|
641
|
-
|
|
642
|
-
## Project Knowledge Base
|
|
643
|
-
> Read `.verity/memory/index.md` for accumulated project context, decisions, and conventions.
|
|
644
|
-
|
|
645
|
-
## Post-task reflection
|
|
646
|
-
When a task is complete (you've created a PR, the user says "done" or "ship it",
|
|
647
|
-
or the work is clearly finished), **draft the reflection yourself first** — 1–3
|
|
648
|
-
concrete things worth remembering (a decision, a gotcha, or a pattern), each
|
|
649
|
-
cited with the files / PR / commands / error-signatures it came from. Skip
|
|
650
|
-
entirely if nothing non-obvious happened.
|
|
651
|
-
|
|
652
|
-
Then, depending on how the session is running:
|
|
653
|
-
|
|
654
|
-
- **Interactive** (a person is at the keyboard): show your draft and ask one
|
|
655
|
-
question before recording —
|
|
656
|
-
|
|
657
|
-
> "Here's my reflection draft for the project memory: \<draft\>. Anything to
|
|
658
|
-
> confirm, correct, or add before I record it? (Say 'skip' to drop it.)"
|
|
659
|
-
|
|
660
|
-
Record the final text (with their corrections) via
|
|
661
|
-
`verity reflect --user-input "<final reflection>" --kind <kind>`. If they say
|
|
662
|
-
"skip", do not record.
|
|
663
|
-
|
|
664
|
-
- **Autonomous** (headless / CI / cron, or `VERITY_AUTONOMOUS=1`): record your
|
|
665
|
-
draft directly, never blocking —
|
|
666
|
-
`verity reflect --user-input "<your draft>" --kind <kind> --autonomous`.
|
|
667
|
-
```
|
|
668
|
-
|
|
669
|
-
These blocks enable two capabilities:
|
|
670
|
-
1. **Knowledge Base pointer** — agents can browse `.verity/memory/` for project context on demand (KNOWLEDGE-SYSTEM §8.2 Path B)
|
|
671
|
-
2. **Post-task reflection** — the compound moment where the agent drafts a cited reflection and the user confirms/corrects it (interactive) or it's auto-recorded (autonomous), entering the knowledge base (KNOWLEDGE-SYSTEM §9.3)
|
|
672
|
-
|
|
673
|
-
---
|
|
674
|
-
|
|
675
|
-
## Step 9: Wire the selected moments
|
|
676
|
-
|
|
677
|
-
Apply the moments the user chose in **Step 3a**. Pass the comma-separated moment ids
|
|
678
|
-
(always include the always-on intent hook automatically):
|
|
679
|
-
|
|
680
|
-
```bash
|
|
681
|
-
# Example: user chose On stop + Before commit + Before push
|
|
682
|
-
verity hooks install --moments stop,pre-commit,pre-push
|
|
683
|
-
```
|
|
684
|
-
|
|
685
|
-
`--moments` reconciles Verity's own hooks in `.claude/settings.json` to **exactly**
|
|
686
|
-
the selection (adding the git-moment gate, removing the Stop hook if unselected),
|
|
687
|
-
while preserving every non-Verity hook. The `verity intent capture` hook is always
|
|
688
|
-
installed. If the user picked only `stop` (the default), pass `--moments stop`.
|
|
689
|
-
|
|
690
|
-
Then verify:
|
|
691
|
-
|
|
692
|
-
```bash
|
|
693
|
-
verity hooks check
|
|
694
|
-
```
|
|
695
|
-
|
|
696
|
-
Expected output (for `stop,pre-commit,pre-push`):
|
|
697
|
-
```
|
|
698
|
-
[verity] Stop hook (verity analyze): installed
|
|
699
|
-
[verity] Intent hook (verity intent capture): installed
|
|
700
|
-
[verity] Git-moment gate (verity guard): installed [commit, push]
|
|
701
|
-
```
|
|
702
|
-
|
|
703
|
-
The git-moment gate is a single `PreToolUse(Bash)` hook (`verity guard`) that
|
|
704
|
-
intercepts `git commit` / `git push` / `gh pr create` and reviews the staged or
|
|
705
|
-
to-be-pushed diff before it lands.
|
|
706
|
-
|
|
707
|
-
---
|
|
708
|
-
|
|
709
|
-
## Step 10: Update .gitignore
|
|
710
|
-
|
|
711
|
-
Add these entries to `.gitignore` (create it if it doesn't exist, append if it does):
|
|
712
|
-
|
|
713
|
-
```
|
|
714
|
-
# Verity — machine-local state. Everything in .verity/ is ignored EXCEPT the
|
|
715
|
-
# shared standard and the knowledge graph, which are meant to be committed.
|
|
716
|
-
.verity/*
|
|
717
|
-
!.verity/standard.yaml
|
|
718
|
-
!.verity/memory/
|
|
719
|
-
.verity/memory/log.md
|
|
720
|
-
.claude/settings.local.json
|
|
721
|
-
```
|
|
722
|
-
|
|
723
|
-
This is a whitelist on purpose: `.verity/` accumulates state files over time
|
|
724
|
-
(`.snapshot/` holds byte-for-byte copies of analyzed files — including any
|
|
725
|
-
secret the gate just flagged — plus `.cache/`, `.logs/`, `.baseline`,
|
|
726
|
-
`.task-context`, session-suffixed `.last-analysis.*` files, and whatever comes
|
|
727
|
-
next). Enumerating them one by one is how `.snapshot/` ended up committed in a
|
|
728
|
-
real repo; ignoring everything and re-including the two shared artifacts means
|
|
729
|
-
a future state file can never repeat that.
|
|
730
|
-
|
|
731
|
-
**If the repo previously committed Verity state** (check with
|
|
732
|
-
`git ls-files .verity`), untrack everything except the shared artifacts once:
|
|
733
|
-
|
|
734
|
-
```bash
|
|
735
|
-
git rm -r --cached .verity
|
|
736
|
-
git add .verity/standard.yaml .verity/memory
|
|
737
|
-
```
|
|
738
|
-
|
|
739
|
-
`.claude/settings.local.json` is machine-local Claude Code config (telemetry endpoint + an
|
|
740
|
-
`otelHeadersHelper` reference — no token). `verity telemetry install` adds this entry
|
|
741
|
-
automatically.
|
|
742
|
-
|
|
743
|
-
Do NOT gitignore `.verity/standard.yaml` or `VERITY.md` — those should be committed.
|
|
744
|
-
|
|
745
|
-
**Commit the knowledge graph, but not its log.** The nodes under `.verity/memory/<domain>/` and `.verity/memory/index.md` are durable project knowledge meant to be committed and reviewed. But `.verity/memory/log.md` is an append-only, per-run timestamped activity log — it churns on every analysis and carries no reviewable content, so it is gitignored above. If a project already committed it, untrack it once with `git rm --cached .verity/memory/log.md`.
|
|
746
|
-
|
|
747
|
-
**No secrets live in the repo anymore.** The project token is stored only in the single global
|
|
748
|
-
file `~/.verity/credentials` (outside the repo, keyed by git remote), so there is no
|
|
749
|
-
`.verity/credentials` to ignore. If an older install left one behind, the CLI folds it into the
|
|
750
|
-
global store and removes it automatically on the next `verity` command.
|
|
751
|
-
|
|
752
|
-
---
|
|
753
|
-
|
|
754
|
-
## Step 10b: Offer a `.verityignore` (optional)
|
|
593
|
+
## Step 9: Offer a `.verityignore` (optional)
|
|
755
594
|
|
|
756
595
|
Only if the codebase analysis in Step 2 found committed generated output —
|
|
757
596
|
`dist/`, `build/`, vendored bundles, generated API clients, large fixture
|
|
@@ -793,32 +632,35 @@ Two things to tell the user, because both surprise people:
|
|
|
793
632
|
Excluded files are still named in every run's coverage ledger, and the share of
|
|
794
633
|
changed files they cover is reported — an ignore file is never silent.
|
|
795
634
|
|
|
796
|
-
|
|
635
|
+
---
|
|
797
636
|
|
|
798
|
-
|
|
637
|
+
## Step 10: Show summary
|
|
638
|
+
|
|
639
|
+
Report both halves, so the user sees one flow rather than two:
|
|
799
640
|
|
|
800
641
|
```
|
|
801
|
-
=== Verity
|
|
642
|
+
=== Verity setup complete ===
|
|
802
643
|
|
|
803
644
|
Project: ${PROJECT_NAME}
|
|
804
645
|
Languages: ${LANGUAGES}
|
|
805
646
|
Frameworks: ${FRAMEWORKS}
|
|
806
647
|
Architecture: ${ARCHITECTURE}
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
Next: You should now be seeing the first analysis happening below. The hook will fire automatically every time your agent stops working on something.
|
|
648
|
+
Intensity: ${MODE} (chosen during verity init)
|
|
649
|
+
|
|
650
|
+
This step wrote:
|
|
651
|
+
.verity/standard.yaml — Standard v1 (4 quality, 7 security, N custom patterns)
|
|
652
|
+
.codacy/codacy.config.json — ${TOOL_LIST}, curated patterns, validated
|
|
653
|
+
VERITY.md — project quality overview
|
|
654
|
+
.verityignore — only if you created one in Step 9
|
|
655
|
+
|
|
656
|
+
Already in place from verity init:
|
|
657
|
+
Hooks: ${MOMENTS} (+ intent, baseline, compact, session-end)
|
|
658
|
+
Telemetry: ${TELEMETRY_STATUS}
|
|
659
|
+
Uploads: ${authenticated ? "on — runs & memory sync to Verity" : "off — local-only mode"}
|
|
660
|
+
|
|
661
|
+
Next: the gate now runs at the moments you chose. You should see the first
|
|
662
|
+
analysis below.
|
|
824
663
|
```
|
|
664
|
+
|
|
665
|
+
Run `verity doctor` if anything above looks wrong — it reports the real state of
|
|
666
|
+
every part of the install.
|
package/package.json
CHANGED