release: @workspacejson/cli 0.6.0 canonical standard authority - #25
Conversation
…ETA-354) Repoint the producer's standard dependencies from the old-org publication lineage to the canonical one: @workspacejson/spec and @workspacejson/rules 0.4.4 -> 0.5.0. 0.4.4 was published from workspace-json/agents-audit; 0.5.0 is published from workspacejson/standard. The dependency edge, not just the version range, now points at the canonical publisher. This is an authority-migration release. No mining, ranking, provenance, retrieval or command-surface changes ride along. Minor rather than patch because dist/index.d.ts carries WorkspaceJsonV4 in an exported signature, so spec 0.5.0's CoChangeEntry union propagates to consumers of this package's types: reading `.rate` without narrowing stops compiling. The standard classified that same propagation as a minor; this package inherits it instead of hiding it behind a patch. agents-audit deliberately stays on 0.4.4. It is frozen, locked for judging, not published from this repository, and its published artifact declares no dependency on this package. The two packages now resolve different versions of the standard on purpose. Behavior: * Artifacts are byte-identical to the previously pinned build across every fixture tried — this repository, a minimal clean repo, an empty repo — modulo the generatedAt and hygiene.scannedAt timestamps. * The agents-audit frozen-source parity harness still reports exactly its ratified baseline of four expected differences. * computeHygieneScore is HygieneScore | null as of rules 0.5.0. Where it returns null the producer now omits generated.hygiene rather than substituting a value; the field is not in the schema's generated.required set, and every placeholder would be a measurement claim that was not made. This path is currently unreachable: the producer's rule set emits at least one finding for every input tried, including an empty repository, so computeHygieneScore never receives the empty array that yields null. The META-244 type-visibility guard is re-anchored. It worked by importing symbols present only in the real published package, with `version`'s literal type as the discriminator against a handwritten ambient stub. spec 0.5.0 widens `version` to `string` — exactly what the stub declared — so that half no longer discriminates. The guard now also imports validateStoredKey and StoredKeyResult, which are new in 0.5.0 and were never in the stub, restoring the compile-time property.
There was a problem hiding this comment.
qmarcelle has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
Reviewer's GuideAuthority-migration release for @workspacejson/cli to consume @workspacejson/spec and @workspacejson/rules 0.5.0, with guarded hygiene-block omission logic and updated type visibility tests, while keeping emitted artifacts effectively unchanged for normal inputs and aligning docs/metadata with the 0.6.0 manifest. Sequence diagram for hygiene block handling in generateWorkspaceJsonsequenceDiagram
actor Repo
participant cli_producer as generateWorkspaceJson
participant rules as computeHygieneScore
participant Artifact as workspace_json
Repo->>cli_producer: generateWorkspaceJson(options)
cli_producer->>rules: computeHygieneScore(findings)
rules-->>cli_producer: HygieneScore_or_null
alt score_is_null
cli_producer->>Artifact: emit generated without hygiene
else score_not_null
cli_producer->>Artifact: emit generated.hygiene with score grade counts scannedAt
end
cli_producer->>Artifact: isMateriallyCurrent(existing workspace)
alt unchanged_and_hygiene_defined
cli_producer->>Artifact: preserve generated.generatedAt
cli_producer->>Artifact: update hygiene.scannedAt
else unchanged_and_hygiene_undefined
cli_producer->>cli_producer: [do not create hygiene block]
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- The conditional spread around
hygieneingenerateWorkspaceJsonis doing a lot of work; consider extracting the hygiene omission/creation logic into a small helper to keep the main generator flow easier to follow and reduce the risk of reintroducing the “bare timestamp” state. - The
spec-contract-visibilitytest now hardcodes both the exact spec version string0.5.0and a concrete stored key ('src/a.ts'); consider loosening these assumptions (e.g., using a clearly synthetic valid key or a more generic version check) so future spec bumps or layout changes don’t require touching this guard test.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The conditional spread around `hygiene` in `generateWorkspaceJson` is doing a lot of work; consider extracting the hygiene omission/creation logic into a small helper to keep the main generator flow easier to follow and reduce the risk of reintroducing the “bare timestamp” state.
- The `spec-contract-visibility` test now hardcodes both the exact spec version string `0.5.0` and a concrete stored key (`'src/a.ts'`); consider loosening these assumptions (e.g., using a clearly synthetic valid key or a more generic version check) so future spec bumps or layout changes don’t require touching this guard test.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
qmarcelle has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|



What changed
Moves
@workspacejson/clifrom the old-org@workspacejson/spec/@workspacejson/rules0.4.4 authority to the canonicalworkspacejson/standard0.5.0 release and prepares@workspacejson/cli@0.6.0.This is an authority-migration release, not a capability release. No mining, ranking, retrieval, provenance-contract, or command-surface changes are included.
agents-auditdeliberately remains frozen on 0.4.4.Why 0.6.0
The CLI's emitted declarations expose Standard types.
spec@0.5.0introduces a source-levelCoChangeEntryunion break that propagates to CLI TypeScript consumers, so a minor release is more truthful than a patch.Behavioral proof
The prior pinned CLI and this release candidate were compared over four fixtures: this repository, a minimal clean repository, an empty Git repository, and a single-file repository. Produced artifacts were byte-identical after normalizing the two wall-clock timestamps (
generated.generatedAtandgenerated.hygiene.scannedAt). The frozenagents-auditparity harness remains at its ratified baseline: 25 passed, 4 expected differences, gate PASS.computeHygieneScoreis nullable in rules 0.5.0. If it returnsnull, the producer omits optionalgenerated.hygienerather than fabricating a score. The path is currently unreachable through the first-party producer; that separate Standard finding is being recorded on META-284.META-244's compile-time type-visibility discriminator is also re-anchored to the 0.5.0-only
validateStoredKey/StoredKeyResultsurface becauseversionis now widened tostring.Release discipline
eb7843b1f9e2dae91ba22f837431275ec2ccbaffcb4b579cd3e0028a56bc9a25970c2955e0ae30730.6.0to a guaranteed contradictory9.9.9so the guard remains non-vacuous after the real manifest became0.6.00.6.0@workspacejson/spec@0.5.0,@workspacejson/rules@0.5.0cli-v0.6.0tag exists yetmaincommitValidation
Local release validation before PR:
agents-auditfrozen-source parity unchangedPR CI initially exposed one vacuous red test in
check-package-docs.test.mjs: the test attempted to mutate the manifest to0.6.0, which is now the real version, so it no longer created a contradiction. The follow-up commit fixes only that test fixture; CI must be green before merge.Summary by Sourcery
Release @workspacejson/cli 0.6.0 against the canonical workspacejson/standard 0.5.0 authority without changing the CLI command or capability surface.
Bug Fixes:
Enhancements:
Documentation:
Tests: