@andresmassello/uscha 1.98.1 → 1.99.0

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/README.md CHANGED
@@ -40,7 +40,7 @@ Requires **Python 3.8+** on the machine (the engine is Python stdlib — no pip
40
40
  runtime dependencies). The npm package is a thin router; the canonical installer is
41
41
  `uscha-kit/install-uscha.py`.
42
42
 
43
- **Kit v1.98.1** <!-- uscha:version --> · [uscha.dev](https://uscha.dev) ·
43
+ **Kit v1.99.0** <!-- uscha:version --> · [uscha.dev](https://uscha.dev) ·
44
44
  [changelog](https://github.com/andresmassello/uscha/blob/main/uscha-kit/CHANGELOG.md)
45
45
  (the per-release changelogs live in the repo, not in the npm tarball)
46
46
 
@@ -169,7 +169,7 @@ automatic tool can perform: a human verdict.
169
169
  system (= 100% drift)
170
170
 
171
171
  round trip · bench-roundtrip — how much of the asset the reverse organs re-anchor
172
- from the compiled code: 0.828 measured (12 archetypes) — names AND behaviour
172
+ from the compiled code: 0.815 measured (12 archetypes) — names AND behaviour
173
173
  ```
174
174
 
175
175
  **What each arrow is, in the engine (kit 1.96.0, 53 subcommands, all measured):**
@@ -178,20 +178,25 @@ automatic tool can perform: a human verdict.
178
178
  |---|---|---|
179
179
  | Asset → typed graph | `ir-extract`, `ir-render` | the whole package becomes one canonical IR (M2, ADR-015) — deterministic, `UNTYPED` is a measurement not an error |
180
180
  | Forward, the compiler | `compile-validate`, `compile-ingest` | any model produces code; the engine validates the output contract and never compiles (M3, ADR-016) |
181
- | Forward, is it the *same* system? | `bootstrap-oracle`, `bootstrap-variance`, `bench` | a withheld oracle judges blind compilations — **12 archetypes, 9 PASS · 3 PARTIAL**, three Claude-family models (Haiku · Sonnet · Opus one vendor; cross-vendor not yet measured), JS included (M4/M5, ADR-017/018/028/029) |
181
+ | Forward, is it the *same* system? | `bootstrap-oracle`, `bootstrap-variance`, `bench` | a withheld oracle judges blind compilations — **12 archetypes, 8 PASS · 4 PARTIAL**, four blind compilers across two vendors (Haiku · Sonnet · Opus · OpenAI Codex `gpt-5.5`), JS included (M4/M5, ADR-017/018/028/029/042) |
182
182
  | Reverse, facts | `discover`, `golden-diff` (+ the `/uscha-characterize` skill) | system map + mechanically captured golden; typed candidate observations with evidence class (M1, ADR-013) |
183
183
  | Reverse, the human gate | `curate`, `promote`, `curation-check`, `bench-curate` | one verdict per candidate, append-only ledger verified against git; unjudged → `pr-ready` blocked naming it (ADR-009/010, INV-CURATION-01) |
184
- | Fidelity, honestly | `fidelity`, `roundtrip`, `bench-roundtrip`, `bench-r2` | per-compiler fidelity vector, id-level round trip, recoverability **0.828**, and the **noise floor** under every variance claim (ADR-014/022/027/030) |
185
-
186
- **Read the numbers the way the repo does.** 9 of 12 archetypes regenerate to the same system
187
- under an oracle the compilers never saw — that is the closed loop working. 0.828 is the mean
188
- *recoverability* of the asset from compiled code counting only static and behavioural
189
- footing. It read **0.062** until 1.90.0, with the behaviour dimension `UNMEASURED`, because no
190
- oracle case carried an AC tag a named absence, not a zero. The 12 bench oracles are now
191
- curated per case (`ORACLE-TAGS-CURATED.json`, human-authored; payloads and expectations
192
- untouched), so the dimension is measured and the number says the reverse organs anchor **names
193
- and behaviour**. Both numbers are published rather than smoothed, and what moved between them
194
- was the tagging, not the code under test. And `bench-r2` measured
184
+ | Fidelity, honestly | `fidelity`, `roundtrip`, `bench-roundtrip`, `bench-r2` | per-compiler fidelity vector, id-level round trip, recoverability **0.815**, and the **noise floor** under every variance claim (ADR-014/022/027/030) |
185
+
186
+ **Read the numbers the way the repo does.** 8 of 12 archetypes regenerate to the same system
187
+ under an oracle the compilers never saw — that is the closed loop working. It was 9 of 12 until
188
+ 1.99.0, when a fourth compiler from a second vendor read one genuinely ambiguous sentence in
189
+ `transformer` the other way and lost a case the three Claude-family models had agreed on
190
+ (ADR-042). The number went down because the bench got harder, and the whole point of the arm was
191
+ to let it. 0.815 is the mean *recoverability* of the asset from compiled code counting only
192
+ static and behavioural footing. It read **0.062** until 1.90.0, with the behaviour dimension
193
+ `UNMEASURED`, because no oracle case carried an AC tag — a named absence, not a zero. The 12
194
+ bench oracles are now curated per case (`ORACLE-TAGS-CURATED.json`, human-authored; payloads and
195
+ expectations untouched), so the dimension is measured and the number says the reverse organs
196
+ anchor **names and behaviour**; it read 0.828 over three compilers and 0.815 over four, because
197
+ an entry's recoverability is the mean over its compilations. Every number is published rather
198
+ than smoothed, and what moved between them was the tagging and the arm, not the code under test.
199
+ And `bench-r2` measured
195
200
  that same-model reruns differ structurally about as much as different models do (aggregate
196
201
  `NOISY`) — so one earlier variance narrative was **retracted**. Every claim above is a subcommand
197
202
  you can run; every unmeasured part is labeled. That honesty is the method applied to itself.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andresmassello/uscha",
3
- "version": "1.98.1",
3
+ "version": "1.99.0",
4
4
  "description": "Spec-driven development for LLM coding agents: 9 skills + a stdlib evidence engine. Facts block, guesses advise; the human approves.",
5
5
  "author": {
6
6
  "name": "Andres Massello",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "uscha",
4
- "version": "1.98.1",
4
+ "version": "1.99.0",
5
5
  "displayName": "Uscha",
6
6
  "description": "Spec-driven development for LLM coding agents: 9 skills (discovery, adr-refine, reverse-discovery, characterize, devloop, sysdoc, rubric, mirador, status) + a stdlib measurement engine (qa_ledger.py, 53 subcommands + universal installer + npm/npx router). Facts block, guesses advise; the human approves.",
7
7
  "author": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uscha",
3
- "version": "1.98.1",
3
+ "version": "1.99.0",
4
4
  "description": "Uscha spec-driven development methodology for coding agents. Includes npm/npx router.",
5
5
  "author": {
6
6
  "name": "Andres Massello",
@@ -1,6 +1,6 @@
1
1
  # uscha-kit
2
2
 
3
- **Kit version:** v1.98.1 <!-- uscha:version --> · **[uscha.dev](https://uscha.dev)**
3
+ **Kit version:** v1.99.0 <!-- uscha:version --> · **[uscha.dev](https://uscha.dev)**
4
4
 
5
5
  Spec-driven orchestrator + multi-repo QA for Claude Code, with a deterministic ledger.
6
6
  **Nine skills** (`uscha-discovery`, `uscha-adr-refine`, `uscha-devloop`, `uscha-sysdoc`, `uscha-reverse-discovery`,
package/uscha-kit/VERSION CHANGED
@@ -1 +1 @@
1
- uscha-kit 1.98.1
1
+ uscha-kit 1.99.0
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.98.1",
2
+ "version": "1.99.0",
3
3
  "project": null,
4
4
  "defaults": {
5
5
  "coverage_threshold": 60,