supercov 2.0.0-x86_64-linux-gnu → 3.0.0-x86_64-linux-gnu

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -22
  3. data/lib/supercov.rb +1 -1
  4. data/libexec/supercov +0 -0
  5. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4505765730c33f2599ed2378eee96df3dbb08be008838476013887d77b8aba41
4
- data.tar.gz: 82a4b8d71352cf2f869e8d45c988b1521e54fb9b1539d3dd2c7aeac625075494
3
+ metadata.gz: 36a6877c46a00019122a51fb411fc380de4d1bc5f31de0b4ee77d4ec82f18638
4
+ data.tar.gz: 45d37b8fa59186e2439d130d64f2489a0b587123b9793331c1391706023fa818
5
5
  SHA512:
6
- metadata.gz: cf0d43adebba7b93796728a827cb140d77f9302f84d33e3d669c6cb3f1994a86f01323347b13c7132fbc9545eb480827c17a5fbea4f190aba7ccf2e991902d10
7
- data.tar.gz: 3cd157299602fdbd578d4bf9ab07d9414f47cd1c51775c4dd1f0f94b0334ef2782b846f8e88dd539f2f487e0a7a766b7c398e7d684f45ba4a8fdf03b2ad66ed0
6
+ metadata.gz: 995712aab3244f3ee948f6a737a98cd1a6bebf965f6dbd7eb8045c68752ee6c52a35332792324aac9610e2c2c1562ac933094c0b03dd47d4039b47f3b3881c20
7
+ data.tar.gz: da8849a7fc5dce3756c4a24328370b2fc82f2fd00421d370a268bedd943e7bc0729d05cbf65440c0ca80f2a56f9450555bfd39fcc26260a9f1a241e30fc459a7
data/README.md CHANGED
@@ -12,10 +12,12 @@ Measure code quality with npx supercov.
12
12
 
13
13
  Scoring needs a [TypeSafe AI](https://typesafe.ai) API key, and your coding agent will usually ask you for it. It costs about a cent per megabyte of source. Coverage needs no account, config file, import, custom reporter, or hosted service. Supercov is local, free, open source, and MIT licensed.
14
14
 
15
- [Website](https://supercov.com) · [Documentation](https://supercov.com/docs) · [npm](https://www.npmjs.com/package/supercov) · [GitHub](https://github.com/supercorp-ai/supercov)
15
+ [Website](https://supercov.com) · [Documentation](https://supercov.com/docs) · [npm](https://www.npmjs.com/package/supercov) · [GitHub](https://github.com/supercorp-ai/supercov) · [Discord](https://discord.gg/CudcAH53yF)
16
16
 
17
17
  Supported languages: [JavaScript](https://supercov.com/docs/javascript) · [TypeScript](https://supercov.com/docs/javascript) · [Rust](https://supercov.com/docs/rust) · [Python](https://supercov.com/docs/python) · [Ruby](https://supercov.com/docs/ruby) · [Go](https://supercov.com/docs/go) · [Java](https://supercov.com/docs/java) · [Kotlin](https://supercov.com/docs/kotlin).
18
18
 
19
+ In Claude Code, Codex and Gemini CLI you can also [install it as a plugin](#give-supercov-a-job).
20
+
19
21
  Supported by [Supercorp](https://supercorp.ai).
20
22
 
21
23
  [Agent workflow](https://supercov.com/docs/agent-loop): ask your coding agent
@@ -139,35 +141,57 @@ npx supercov -- python -m unittest
139
141
  npx supercov -- bundle exec rspec
140
142
  ```
141
143
 
142
- ## Map what assertions check
144
+ ## See what the tests assert
143
145
 
144
- Each normal test run creates an assertion map automatically. An agent can
145
- optionally fill in what the assertions check:
146
+ Coverage says which code ran; assertion coverage says which of it the tests
147
+ would catch breaking. Supercov asks [Jev](https://typesafe.ai), test by test,
148
+ whether changing each statement the test ran would make it fail:
146
149
 
147
150
  ```sh
148
- npx supercov runs latest assertions --json
149
- # Pin the returned run ID. Inspect assertions and the source that ran:
150
- npx supercov runs <run> assertion <assertion-id>
151
- npx supercov runs <run> source src/example.ts
152
- # Edit assertions.json, then validate and acknowledge:
153
- npx supercov runs <run> assertions validate --json
154
- # Copy examined expectedBasis tokens into assertions.json; save again.
155
- npx supercov runs <run> assertions check --require-mappings --json
156
- npx supercov runs <run> # includes the assertion percentage in the regular report
151
+ npx supercov -- npm test
152
+ TYPESAFE_API_KEY=... npx supercov runs latest assertions assess
153
+ npx supercov runs latest assertions # the share asserted and what is not
157
154
  ```
158
155
 
159
- After code or tests change, run the same test command again. Supercov reuses the
160
- newest available map for that command and language and identifies dirty flows. Rust owns
161
- validation, change tracking and reporting; the agent supplies semantic reasoning.
162
- The score is agent-assessed and separate from MC/DC. See
163
- [assertion maps](docs/assertion-maps.md) for the format and JS/TS limits, or run
164
- `supercov docs assertion-agent` for the agent workflow. `supercov assertions schema`
165
- exports the editor schema; `assertions validate --file <path>` checks JSON syntax.
156
+ Answers are reused across runs whenever the question is the same, so after a
157
+ commit only what changed is asked again. Every language Supercov measures. See
158
+ [assertion coverage](docs/assertions.md).
166
159
 
167
160
  ## Give Supercov a job
168
161
 
169
162
  Paste one of these prompts into Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, or any coding agent that can run terminal commands.
170
163
 
164
+ Or install the agent skill, and your agent reaches for Supercov on its own when you ask for tests, coverage, refactoring or a security scan. In Claude Code:
165
+
166
+ ```text
167
+ /plugin marketplace add supercorp-ai/supercov
168
+ /plugin install supercov@supercov
169
+ ```
170
+
171
+ In Codex:
172
+
173
+ ```bash
174
+ codex plugin marketplace add supercorp-ai/supercov
175
+ codex plugin add supercov@supercov
176
+ ```
177
+
178
+ In Gemini CLI:
179
+
180
+ ```bash
181
+ gemini extensions install https://github.com/supercorp-ai/supercov
182
+ ```
183
+
184
+ For Cursor, GitHub Copilot and other agents that read skills: `npx skills add supercorp-ai/supercov`.
185
+
186
+ The Claude Code plugin and the Gemini CLI extension also add four commands you can type:
187
+
188
+ | Command | What it does |
189
+ | --- | --- |
190
+ | `/supercov:coverage [test command]` | Writes one test for code no test reaches, and reports coverage before and after |
191
+ | `/supercov:security [patch]` | Scans the repository, or a change, for security vulnerabilities |
192
+ | `/supercov:quality [patch]` | Ranks files by code smells, or checks what a change introduced |
193
+ | `/supercov:review [--base ref]` | Checks a branch or uncommitted change for security and quality problems |
194
+
171
195
  ### Write the first useful test
172
196
 
173
197
  ```text
@@ -280,9 +304,11 @@ Supercov uses exact per-test attribution where an adapter is available. For othe
280
304
  | --- | --- |
281
305
  | Playwright | Exact per test, worker, retry, outcome, action, and assertion phase |
282
306
  | Vitest | Exact per test, with setup execution kept separate |
283
- | Jest | Exact per test, including parameterized tests; exact `expect` occurrence identity for assertion maps |
307
+ | Jest | Exact per test, including parameterized tests |
284
308
  | `node:test` | Exact per test |
285
- | AVA and Mocha | Aggregate structural coverage |
309
+ | Mocha | Exact per test and retry, `--parallel` included |
310
+ | AVA | Exact per test, concurrent tests included |
311
+ | node-tap 15 and newer | Exact per subtest |
286
312
  | Cargo's standard libtest runner | Exact test, attempt, and passing-assertion identity |
287
313
  | rustdoc doctests | Exact per doctest |
288
314
  | cargo-nextest | Exact test, attempt, retry, and binary identity |
@@ -352,6 +378,10 @@ npx supercov runs clean # remove all runs and the build cache
352
378
 
353
379
  [MIT licensed](LICENSE). Inspect, extend, and run it anywhere.
354
380
 
381
+ ## Community
382
+
383
+ Ask questions, share what you measured, and talk to the people building Supercov on [Discord](https://discord.gg/CudcAH53yF).
384
+
355
385
  ## Contributors
356
386
 
357
387
  - [@DaVinciTachyon](https://github.com/DaVinciTachyon)
data/lib/supercov.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Supercov
4
- VERSION = "2.0.0"
4
+ VERSION = "3.0.0"
5
5
  end
data/libexec/supercov CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: supercov
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: x86_64-linux-gnu
6
6
  authors:
7
7
  - Supercorp
@@ -9,7 +9,8 @@ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
- description: The platform-native Supercov CLI, powered by the single Rust engine.
12
+ description: Runs the project's existing tests, measures line, branch and MC/DC coverage,
13
+ and points coding agents at untested code, security risks and code smells.
13
14
  email:
14
15
  - hello@supercorp.ai
15
16
  executables: