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 +21 -0
- package/README.md +162 -2
- package/dist/src/checks/basics.js +562 -0
- package/dist/src/checks/level2.js +207 -0
- package/dist/src/checks/level3.js +197 -0
- package/dist/src/cli.js +201 -0
- package/dist/src/fixes.js +430 -0
- package/dist/src/git.js +42 -0
- package/dist/src/host.js +45 -0
- package/dist/src/init.js +51 -0
- package/dist/src/proof.js +105 -0
- package/dist/src/report.js +103 -0
- package/dist/src/terminal.js +154 -0
- package/dist/src/types.js +2 -0
- package/package.json +48 -4
- package/templates/level-2/.claude/settings.json +47 -0
- package/templates/level-2/.github/ISSUE_TEMPLATE/change-request.md +19 -0
- package/templates/level-2/.github/dependabot.yml +12 -0
- package/templates/level-2/.github/pull_request_template.md +12 -0
- package/templates/level-2/.github/workflows/checks.yml +47 -0
- package/templates/level-2/AGENTS.md +51 -0
- package/templates/level-2/VibeQM/README.md +16 -0
- package/templates/level-2/VibeQM/decisions/DECISIONS.md +8 -0
- package/templates/level-2/VibeQM/plan/PROJECT_PLAN.md +14 -0
- package/templates/level-2/VibeQM/requirements/REQUIREMENTS.md +17 -0
- package/templates/level-2/VibeQM/tailoring/TAILORING.md +11 -0
- package/templates/level-2/gitignore +4 -0
- package/templates/level-2/vqm-proof.json +1 -0
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
|
-
#
|
|
1
|
+
# vibeqm-check
|
|
2
2
|
|
|
3
|
-
|
|
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).
|