vibeqm-check 0.0.0-stage → 0.4.3

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Eduardo Sanchez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,163 @@
1
- # Temporary Holding Version
1
+ # vibeqm-check
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ A free self-assessment for the **Vibe Quality Model (VibeQM)**: run it on a git
4
+ repository and it tells you the level the evidence supports, what is missing for
5
+ the next one, and how to close each gap.
6
+
7
+ The Vibe Quality Model takes AI-assisted development from ad-hoc to professional:
8
+ requirements, tests that can fail, real reviews, security scans and records, done
9
+ largely by the AI agent itself, at a quality that employers and customers can trust.
10
+ Five levels, each defined by evidence anyone can open. More at
11
+ [vibeqm.com](https://vibeqm.com).
12
+
13
+ ## Run it
14
+
15
+ ```bash
16
+ npx vibeqm-check # in the repository to assess
17
+ npx vibeqm-check path/to/repo
18
+ npx vibeqm-check --json # machine-readable results
19
+ npx vibeqm-check --out report.md # write the report to a file (or report.json)
20
+ npx vibeqm-check --offline # never ask the code host
21
+ npx vibeqm-check init # create the Level 2 template files, after you confirm
22
+ npx vibeqm-check --help
23
+ ```
24
+
25
+ Requires Node.js 20 or later and git.
26
+
27
+ The tool was first called `vqm-check`, the name the first editions of the book use.
28
+ npm publishes it as `vibeqm-check`; installed (`npm install -g vibeqm-check`), it
29
+ answers to both names.
30
+
31
+ ## Read-only and private
32
+
33
+ - **It changes nothing on its own.** The tool reads the repository and its git
34
+ history; it writes no files, commits, settings or hooks. There are two
35
+ exceptions, both only when you ask: a report you request with `--out`, written
36
+ where you say, and the template files `vibeqm-check init` creates after you
37
+ confirm the list. Neither ever overwrites an existing file, and neither commits.
38
+ - **It sends nothing to us.** There is no account, no telemetry and no server of ours
39
+ involved: the checks run on your machine, and the report is printed there.
40
+ - **The one outside call is optional and yours.** If the GitHub CLI (`gh`) is logged
41
+ in, the tool asks GitHub, with your own login, for this repository's CI runs and
42
+ merged pull requests, read-only, to see checks that failed and reviews that
43
+ happened. `--offline` turns that off.
44
+ - The AI prompt it prints goes nowhere by itself; you decide whether to give it to
45
+ your coding agent.
46
+
47
+ Inside an AI coding agent, run it as a shell command (in Claude Code:
48
+ `! npx vibeqm-check`). The report is written so the agent can act on it.
49
+
50
+ ## Start from the templates
51
+
52
+ `npx vibeqm-check init` creates the files a repository needs for Level 2: a rules file
53
+ for AI agents (`AGENTS.md`), agent permissions, a CI workflow with secret scanning
54
+ and static security analysis, issue and pull request templates, and short
55
+ requirements, decisions and plan files under `VibeQM/`. It shows the list first,
56
+ skips files that already exist, and writes only after you say yes (`--yes` when not
57
+ run in a terminal). Fill every `<...>` with your repository's facts: the checks don't
58
+ count a file that still has them. The templates come from the
59
+ [companion repository](https://github.com/vibeqm/vqm).
60
+
61
+ ## What you get
62
+
63
+ - **The level** your repository's evidence supports, Level 1 to 3. Levels 4 and 5
64
+ need measurements over time, which this version does not yet compute.
65
+ - **Every check, with one of three results:**
66
+ - **Met:** the evidence exists, and the report names it (a file, a setting, a hook,
67
+ a commit).
68
+ - **Not met:** the tool looked and the evidence is absent.
69
+ - **Not visible:** the evidence lives outside the repository (for example settings
70
+ on your code host). It counts as not met until a person attaches proof.
71
+ - **For every open check:** why it matters, concrete steps for this repository, how to
72
+ confirm it worked, and an estimate in minutes.
73
+ - **A prompt** at the end that your AI coding agent can follow to close the gaps,
74
+ cheapest first. The prompt tells the agent to produce real evidence, and to ask you
75
+ before writing any proof on your behalf.
76
+
77
+ ## What counts as a peer review
78
+
79
+ Review once per push or pull request, not per commit: one review covers every commit
80
+ since the last reviewed one, and nothing should reach staging or production
81
+ unreviewed. Commits not pushed yet are not counted until they are pushed. A commit
82
+ counts as reviewed when any of these holds:
83
+
84
+ - it carries a `Reviewed-by:` trailer naming a person (`Name <email>`) or a model from
85
+ a company that did not write the change, and a review record exists: a review file
86
+ added in the same commit, or a review file (under a `reviews/` folder) that names it;
87
+ - a pull request holding it was approved, or had changes requested, by someone other
88
+ than its author (read from GitHub);
89
+ - a push-review record with a passing verdict, written by a hook for the range of
90
+ commits being pushed, by a model from another company, covers it.
91
+
92
+ The reviewer doesn't have to cost money: a person counts, and so does an open-weight
93
+ model from another company run locally (for example with Ollama), or a free API tier such as Google's Gemini API (read its data terms: free-tier content may be used to improve Google's products).
94
+ A chat subscription alone gives no API a hook can call.
95
+
96
+ Review is measured from the first reviewed change: earlier history is never claimed as
97
+ reviewed. After 20 changes, all of them reviewed, the check reads **Met**. Any change
98
+ since then without a review reads **Not met**.
99
+
100
+ ## Proof for what the tool can't see
101
+
102
+ Some evidence cannot be read from a repository: branch protection on your code host,
103
+ a planted-fault drill that predates the history, a note on how production is kept
104
+ apart. Record it in a `vqm-proof.json` file, in the repository or any parent folder
105
+ (files in parent folders are merged; for the same check, the nearest wins):
106
+
107
+ ```json
108
+ {
109
+ "proofs": [
110
+ {
111
+ "gate": "Checks seen to fail",
112
+ "evidence": "Planted fault: broke a unit test, the pre-commit hook refused the commit",
113
+ "by": "A. Person",
114
+ "date": "2026-10-10",
115
+ "ref": "docs/drills.md"
116
+ }
117
+ ]
118
+ }
119
+ ```
120
+
121
+ A proof only turns **Not visible** into **Met (attested)**. It never overrides **Not
122
+ met**, because what the tool saw outranks what anyone says. Proof is signed by a
123
+ named person and expires after a year.
124
+
125
+ ## In a GitHub workflow
126
+
127
+ Run the checks on every pull request, so a level that slips is noticed on the change
128
+ that caused it. The report appears on the run's summary page.
129
+
130
+ ```yaml
131
+ - uses: actions/checkout@v4
132
+ with: { fetch-depth: 0 } # the checks sample history
133
+ - uses: vibeqm/vibeqm-check@v0.4.3
134
+ with: { min-level: 2 } # optional: fail the run below this level
135
+ ```
136
+
137
+ To let the action read the repository's CI runs and pull requests, give the job
138
+ read access (`permissions: { contents: read, actions: read, pull-requests: read }`).
139
+ Pass `offline: true` to read the repository only.
140
+
141
+ ## What it is, and what it is not
142
+
143
+ `vibeqm-check` is the scripted half of the VibeQM assessment procedure: the facts a command
144
+ can establish. A formal VibeQM assessment adds judgment by two AI models from different
145
+ companies, the lower result standing if they disagree, and a person's countersignature.
146
+ A result is stated as **"VibeQM self-assessed: Level N"**, with the date and the assessor.
147
+ No official body stands behind the levels, and a VibeQM level is not equivalent to a
148
+ level in any other model.
149
+
150
+ The Vibe Quality Model is an independent framework.
151
+
152
+ ## Develop
153
+
154
+ ```bash
155
+ npm install
156
+ npm test # builds, then runs the tests: each check is tested against small
157
+ # repositories built to pass or fail it
158
+ node dist/src/cli.js [path]
159
+ ```
160
+
161
+ ## License
162
+
163
+ MIT. See [LICENSE](LICENSE).