@stsepelin/checktrail 0.1.0-alpha.2 → 0.1.0-alpha.4

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 (49) hide show
  1. package/README.md +14 -6
  2. package/dist/src/adapters.js +3 -1
  3. package/dist/src/architecture.d.ts +1 -1
  4. package/dist/src/contract-schema.d.ts +1 -1
  5. package/dist/src/contracts.d.ts +1 -1
  6. package/dist/src/evidence.js +2 -1
  7. package/dist/src/finding-policy-schema.d.ts +1 -1
  8. package/dist/src/go-scope-policy.d.ts +11 -0
  9. package/dist/src/go-scope-policy.js +50 -0
  10. package/dist/src/go-scope.d.ts +1 -1
  11. package/dist/src/go-scope.js +42 -5
  12. package/dist/src/output.js +6 -0
  13. package/dist/src/report-validation.d.ts +7 -0
  14. package/dist/src/runtime-inventory.d.ts +2 -2
  15. package/dist/src/schemas.d.ts +17 -0
  16. package/dist/src/schemas.js +16 -2
  17. package/dist/src/types.d.ts +4 -1
  18. package/dist/src/types.js +1 -1
  19. package/dist/src/typescript-arguments.d.ts +4 -0
  20. package/dist/src/typescript-arguments.js +10 -0
  21. package/dist/src/typescript-runner.d.ts +1 -0
  22. package/dist/src/typescript-runner.js +19 -0
  23. package/dist/src/typescript.js +3 -9
  24. package/dist/src/vue-tsc-runner.js +2 -1
  25. package/docs/ACCEPTANCE.md +24 -13
  26. package/docs/CLIENTS.md +6 -4
  27. package/docs/GO-RACE.md +4 -2
  28. package/docs/GO-SCOPE.md +70 -5
  29. package/docs/INSTALLATION.md +6 -6
  30. package/docs/LANGUAGES.md +16 -1
  31. package/docs/MCP-COMPATIBILITY.md +6 -0
  32. package/docs/NATIVE-CI.md +4 -0
  33. package/docs/ONBOARDING.md +8 -2
  34. package/docs/PUBLIC-ADOPTION.md +118 -0
  35. package/docs/RELEASE.md +77 -20
  36. package/docs/SETUP-SCOPES.md +107 -0
  37. package/docs/STATUS.md +33 -11
  38. package/docs/TYPESCRIPT.md +78 -0
  39. package/docs/measurements/go-scope-policy-replay.json +91 -0
  40. package/docs/measurements/public-adoption-alpha2.json +2034 -0
  41. package/docs/measurements/release-alpha3.json +362 -0
  42. package/docs/measurements/typescript-legacy-replay.json +39 -0
  43. package/package.json +1 -1
  44. package/schemas/go-scope-policy.schema.json +31 -0
  45. package/schemas/plan-summary.schema.json +6 -1
  46. package/schemas/plan.schema.json +30 -0
  47. package/schemas/report-summary.schema.json +5 -0
  48. package/schemas/report.schema.json +30 -0
  49. package/server.json +2 -2
@@ -5,17 +5,27 @@ verification. It does not replace the plan or promote an unverified capability.
5
5
  Local implementation, local native evidence, hosted CI and publication are
6
6
  separate states. Follow the linked evidence for tested versions and limits.
7
7
 
8
- | Milestone | Implemented scope and evidence | Open acceptance work |
9
- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
10
- | M0: public contracts | Original public fixtures, MIT license, security/contribution guidance, schemas, explicit package allowlist, dependency notices and CI definitions. `STATUS.md`, `SECURITY.md`, `RELEASE.md`. | Public source and npm alpha.1 are published. Hosted CI passed at `bfc8cc4`; alpha.2 requires its own release commit, CI and publication verification. |
11
- | M1: executable foundation | Shared CLI/library/MCP engine, bounded inventory/runner, startup trust, native Node/Python/Go/PHP profiles, protocol and lifecycle regressions. `ARCHITECTURE.md`, `STATUS.md`, `MCP-COMPATIBILITY.md`. Fresh installed application-client profiles now have evidence in `CLIENTS.md`. | Application-client coverage beyond the named profiles. PHP remains unavailable when the consumer has no prepared runtime. |
12
- | M2: practical language validation | Explicit JS/TS, Python, Go and PHP native tool profiles, structured diagnostics/test evidence, versions, environments, workspace selection, scope accounting, SARIF/JUnit and finding ratchets. `LANGUAGES.md`, adapter documents, `WORKSPACES.md`, `FINDING-POLICY.md`, `NATIVE-CI.md`. | Hosted toolchain profiles passed at `52ba415`. Wider tool versions/framework configurations must be promoted separately; detection is not execution support. |
13
- | M3: framework/contracts | Native Laravel, Vue Router/Nuxt, Django/FastAPI assembly projections; imported runtime comparison, explicit architecture boundaries, producer/consumer schemas and a built package consumer. `RUNTIME-INVENTORY.md`, framework documents, `CONTRACTS.md`, `ARCHITECTURE-POLICY.md`, `examples/package-contract/README.md`. | Broader native semantics/import collection and live service integration are not implemented. Synthetic evidence does not establish equivalent results in a private application; private integration feedback must remain private. |
14
- | M4: ecosystem/distribution | Bounded Rust, Java, C#, Ruby, Swift, Clang and actionlint profiles; trusted external adapters, pinned data-only pack distribution, fresh offline package checks, production notice audit, measured performance and unpublished registry metadata. `LANGUAGES.md`, `EXTERNAL-ADAPTERS.md`, `PACK-DISTRIBUTION.md`, `PERFORMANCE.md`, `RELEASE.md`. | Alpha.2 release verification and MCP Registry registration. Windows execution and the unimplemented subsequent integrations in `LANGUAGES.md` remain unsupported. Runtime/container/development dependency provenance is broader than the production npm notice audit. |
15
- | M5: measured assistance | Advisory guidance, bounded Node mutation experiments, explicit-graph impact measurements, optional local/model review exchange, durable library task storage/worker, development evaluation and externally authored ESLint and Ruff integration cohorts. `GUIDANCE.md`, `MUTATIONS.md`, `IMPACT-MEASUREMENT.md`, `REVIEW-EXCHANGE.md`, `VALIDATION-TASKS.md`, `EVALUATION.md`, `EXTERNAL-EVALUATION.md`, `EXTERNAL-RUFF-EVALUATION.md`. | Standard MCP Tasks wire integration; wider held-out rule-family/review evidence, prior-workflow comparison and representative cost/latency measurement. No general equal-or-better review-quality claim is supported. |
8
+ | Milestone | Implemented scope and evidence | Open acceptance work |
9
+ | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
10
+ | M0: public contracts | Original public fixtures, MIT license, security/contribution guidance, schemas, explicit package allowlist, dependency notices and CI definitions. `STATUS.md`, `SECURITY.md`, `RELEASE.md`. | Public source, npm alpha.3 and its MCP Registry entry are published. Hosted CI passed at `b0b447d`; fresh registry installation was verified. |
11
+ | M1: executable foundation | Shared CLI/library/MCP engine, bounded inventory/runner, startup trust, native Node/Python/Go/PHP profiles, protocol and lifecycle regressions. `ARCHITECTURE.md`, `STATUS.md`, `MCP-COMPATIBILITY.md`. Fresh installed application-client profiles now have evidence in `CLIENTS.md`. | Application-client coverage beyond the named profiles. PHP remains unavailable when the consumer has no prepared runtime. |
12
+ | M2: practical language validation | Explicit JS/TS, Python, Go and PHP native tool profiles, structured diagnostics/test evidence, versions, environments, workspace selection, scope accounting, SARIF/JUnit and finding ratchets. `LANGUAGES.md`, adapter documents, `WORKSPACES.md`, `FINDING-POLICY.md`, `NATIVE-CI.md`. | Hosted toolchain profiles passed at `52ba415`. Wider tool versions/framework configurations must be promoted separately; detection is not execution support. |
13
+ | M3: framework/contracts | Native Laravel, Vue Router/Nuxt, Django/FastAPI assembly projections; imported runtime comparison, explicit architecture boundaries, producer/consumer schemas and a built package consumer. `RUNTIME-INVENTORY.md`, framework documents, `CONTRACTS.md`, `ARCHITECTURE-POLICY.md`, `examples/package-contract/README.md`. | Broader native semantics/import collection and live service integration are not implemented. Synthetic evidence does not establish equivalent results in a private application; private integration feedback must remain private. |
14
+ | M4: ecosystem/distribution | Bounded Rust, Java, C#, Ruby, Swift, Clang and actionlint profiles; trusted external adapters, pinned data-only pack distribution, fresh offline package checks, production notice audit, measured performance and published MCP Registry metadata. `LANGUAGES.md`, `EXTERNAL-ADAPTERS.md`, `PACK-DISTRIBUTION.md`, `PERFORMANCE.md`, `RELEASE.md`. | npm tag cleanup remains unresolved. Windows execution and the unimplemented subsequent integrations in `LANGUAGES.md` remain unsupported. Runtime/container/development dependency provenance is broader than the production npm notice audit. |
15
+ | M5: measured assistance | Advisory guidance, bounded Node mutation experiments, explicit-graph impact measurements, optional local/model review exchange, durable library task storage/worker, development evaluation and externally authored ESLint and Ruff integration cohorts. `GUIDANCE.md`, `MUTATIONS.md`, `IMPACT-MEASUREMENT.md`, `REVIEW-EXCHANGE.md`, `VALIDATION-TASKS.md`, `EVALUATION.md`, `EXTERNAL-EVALUATION.md`, `EXTERNAL-RUFF-EVALUATION.md`. | Standard MCP Tasks wire integration; wider held-out rule-family/review evidence, prior-workflow comparison and representative cost/latency measurement. No general equal-or-better review-quality claim is supported. |
16
16
 
17
17
  ## Remaining work that can proceed locally
18
18
 
19
+ [Public adoption measurements](PUBLIC-ADOPTION.md) now cover five pinned
20
+ JavaScript, TypeScript, Python, Go and PHP libraries. They expose an older
21
+ TypeScript compiler-option incompatibility and workflow/documentation/platform
22
+ coverage friction. The [alpha.3 compiler fix](TYPESCRIPT.md) now passes the
23
+ known TypeScript 4.9.5 case. [Setup guidance](SETUP-SCOPES.md) distinguishes
24
+ workflow/documentation coverage; an unreleased [Go scope policy](GO-SCOPE.md)
25
+ accounts for explicitly acknowledged native exclusions. Broader target coverage
26
+ remains follow-up work. The observations do not establish full upstream CI coverage or
27
+ general review effectiveness.
28
+
19
29
  1. Extend independently authored evaluation cohorts to additional implemented
20
30
  language/rule families, preserving the verifier freeze and recording exact
21
31
  selection, exclusions, native baselines and interpretation limits. New fixtures
@@ -43,11 +53,12 @@ run. The local worker/store are available independently; standard Tasks must sta
43
53
  unadvertised until routing and the integrated wire/lifecycle suite pass. See
44
54
  `MCP-COMPATIBILITY.md` for the reproduction and upstream issue.
45
55
 
46
- The public repository and npm preview `0.1.0-alpha.1` are published. The
47
- [hosted run at bfc8cc4](https://github.com/stsepelin/checktrail/actions/runs/35585998184)
48
- passed all jobs. Alpha.2 adds [setup commands](ONBOARDING.md); it requires its own
49
- release CI and publication. GitHub releases and MCP Registry registration remain
50
- pending. The repository's explicit-action requirements still apply.
56
+ The public repository, npm preview `0.1.0-alpha.3` and its MCP Registry entry are
57
+ published. The [hosted run at b0b447d](https://github.com/stsepelin/checktrail/actions/runs/35597877167)
58
+ passed all jobs, and fresh public installation was verified. Alpha.3 adds
59
+ [legacy compiler compatibility](TYPESCRIPT.md) to the existing [setup commands](ONBOARDING.md). The [GitHub prerelease](https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.3)
60
+ is also published with the verified tarball and checksum. npm tag cleanup remains
61
+ unresolved. The repository's explicit-action requirements still apply.
51
62
  `RELEASE.md` defines the concrete
52
63
  candidate checks and the authorization sequence; a local green run does not
53
64
  replace external acceptance.
package/docs/CLIENTS.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # Application client compatibility
2
2
 
3
- The recorded snapshots below predate the Checktrail rename and retain their
4
- original package identities. A release candidate needs its own client checks;
5
- see [RENAMING.md](RENAMING.md).
3
+ The [alpha.3 release record](measurements/release-alpha3.json) repeats the named
4
+ profiles below against the exact published artifact. The original standalone
5
+ snapshots predate the Checktrail rename and retain their original identities.
6
+ A future release needs its own checks; see [RENAMING.md](RENAMING.md).
6
7
 
7
8
  The local package was installed offline into a fresh temporary consumer and tested
8
9
  with Claude Code 2.1.263 and Codex CLI 0.154.0 on macOS arm64, Node 26.8.1. These
@@ -106,4 +107,5 @@ The runtime digest identifies the installed `dist/src` tree independently.
106
107
 
107
108
  These local checks satisfy only the named client profiles. Claude Desktop,
108
109
  Cursor, VS Code integrations, other client versions and target operating systems
109
- remain unverified. No public package installation or hosted CI run is implied.
110
+ remain unverified. These original snapshots do not establish public installation or hosted CI;
111
+ alpha.3 publication and hosted evidence are recorded separately in [RELEASE.md](RELEASE.md).
package/docs/GO-RACE.md CHANGED
@@ -10,8 +10,10 @@ cost and requires the operator to select this check.
10
10
  The native fixture runs two workers repeatedly updating one shared counter. The
11
11
  unprotected version must fail with an actual `DATA RACE` diagnostic; atomic
12
12
  updates must pass and yield the exact combined count. A passing run cannot
13
- establish freedom from races on paths it did not execute. Native package/file evidence now makes excluded source and untested packages
14
- incomplete; see [Go scope](GO-SCOPE.md). A build/OS matrix is not implemented.
13
+ establish freedom from races on paths it did not execute. Native package/file evidence makes undeclared excluded source and untested packages
14
+ incomplete; see [Go scope](GO-SCOPE.md) for the unreleased explicit exclusion policy.
15
+ The source checkout also passes `-race` to package listing so it uses the same build
16
+ constraints as the tests. A build/OS matrix is not implemented.
15
17
 
16
18
  A supported Go race platform and C compiler are required. Compilation and runtime
17
19
  errors are retained in detailed output; no compiler, library or toolchain is
package/docs/GO-SCOPE.md CHANGED
@@ -1,15 +1,16 @@
1
1
  # Go scope and Staticcheck
2
2
 
3
- `go.vet`, `go.test`, `go.test-race` and `go.staticcheck` first run native
4
- `go list -json ./...`. A passing result requires the union of native Go, cgo and
5
- internal/external test source files to exactly match the inventoried Go files.
3
+ `go.vet`, `go.test`, `go.test-race`, `go.staticcheck` and `go.golangci-lint` first run
4
+ native `go list -json ./...`. The race profile includes `-race` in both listing and
5
+ test execution, so their build constraints agree. By default, a passing result
6
+ requires the union of native Go, cgo and internal/external test source files to
7
+ exactly match the inventoried Go files.
6
8
  Malformed package output, missing packages, duplicate/unexpected files and load
7
9
  errors prevent completeness. Real diagnostic/test failures retain their failure
8
10
  status even when scope is incomplete.
9
11
 
10
12
  Files excluded by build tags, OS/architecture suffixes or Go directory conventions
11
- remain unverified. The current policy has no build-matrix or per-file exception
12
- contract, so such projects are conservatively incomplete. This includes intentional
13
+ remain unverified. Without an explicit scope policy, such projects are conservatively incomplete. This includes intentional
13
14
  `testdata` Go files if they are inventoried but not compiled. Do not treat that as
14
15
  a source defect or remove valid platform-specific code to obtain a passing run.
15
16
 
@@ -26,6 +27,70 @@ programs. Cross-module workspace builds need a separate explicit profile. Native
26
27
  compiler/analyzer caches may be used; test result caching remains disabled.
27
28
  Dependencies and toolchains must be prepared separately.
28
29
 
30
+ ## Explicit exclusions in the source checkout (unreleased)
31
+
32
+ The source checkout adds `checktrail.go-scope.json` at each Go module root.
33
+ Published alpha.3 does not support this policy yet. Opt in only after reviewing
34
+ which files the intended native run leaves unverified:
35
+
36
+ ```json
37
+ {
38
+ "schemaVersion": 1,
39
+ "excludedFiles": [
40
+ {
41
+ "path": "platform_windows.go",
42
+ "reason": "Windows implementation; validated separately on its target"
43
+ }
44
+ ]
45
+ }
46
+ ```
47
+
48
+ Paths are exact, case-sensitive, module-relative inventoried `.go` files. Globs,
49
+ parent traversal, absolute paths, duplicate entries, blank reasons, unknown fields,
50
+ missing files and symlink/directory policy files are rejected. An empty list keeps
51
+ strict coverage. Planning only reads this file; native commands still require
52
+ operator trust. A reason records the operator's statement, not proof of another run.
53
+ The schema is [go-scope-policy.schema.json](../schemas/go-scope-policy.schema.json).
54
+
55
+ For each selected native check, every declared file must appear in Go's
56
+ `IgnoredGoFiles`, and every other inventoried Go file must appear exactly once in
57
+ its selected source lists. An exemption becomes stale if its file disappears or
58
+ becomes selected. New omissions, duplicate/contradictory native entries, malformed
59
+ or interrupted output remain incomplete. A whole package excluded from `./...`,
60
+ `testdata`, dot/underscore files and arbitrary unlisted files cannot be excused by
61
+ this policy unless native package evidence accounts for them as ignored Go files.
62
+
63
+ The same policy applies to vet, tests, race tests, Staticcheck and golangci-lint.
64
+ A file ignored by ordinary tests may be selected under `-race`; one shared
65
+ exemption then cannot pass both profiles. Do not exempt active code to suppress a
66
+ diagnostic. Real diagnostics/test failures still fail. Every tested package still
67
+ needs a passing test; exempted source supplies no test evidence. Formatting ignores
68
+ the scope policy and checks every inventoried Go file.
69
+
70
+ Detailed plans and reports retain the declarations as `goScope`; the original
71
+ `scope` remains the complete inventory. A passing native check covers that scope
72
+ minus its reconciled exemptions. Summary plans and reports expose
73
+ `goExcludedFileCount` without paths or reasons. This is the number declared, even
74
+ on an incomplete or unexecuted plan; it does not independently establish that the
75
+ exemptions reconciled. Other-platform and excluded build-tag behavior is unverified.
76
+
77
+ This policy does not introduce build-tag flags, cross-compilation, cross-target
78
+ test execution or a build matrix. Use separately prepared native target runs for
79
+ coverage outside the selected profile. Existing protected Go settings stay intact.
80
+
81
+ ## Known-case replay
82
+
83
+ The [pinned public UUID replay](measurements/go-scope-policy-replay.json) uses the
84
+ same upstream revision as the alpha.2 adoption exercise, with an unreleased packed
85
+ CLI/library/MCP. Default scope remains inconclusive for vet/tests. Explicitly
86
+ acknowledging `node_js.go` makes those selected native checks pass while retaining
87
+ the skipped test and the existing formatting failure. An injected failing test
88
+ still fails through all three surfaces. The JavaScript-target file is unverified;
89
+ this is a known-case regression replay, not independent effectiveness evidence.
90
+ The upstream tracked files and original policy were preserved; temporary scope
91
+ policy and failing control were removed. The record identifies the tested tarball
92
+ and runtime source hashes; adding this record changes later package bytes.
93
+
29
94
  ## Staticcheck
30
95
 
31
96
  Select `go.staticcheck` explicitly. It requires the installed `staticcheck`
@@ -1,11 +1,11 @@
1
1
  # Install the preview
2
2
 
3
- The published preview is `0.1.0-alpha.1` on
3
+ The published preview is `0.1.0-alpha.3` on
4
4
  [npm](https://www.npmjs.com/package/@stsepelin/checktrail).
5
- Use the exact version below. The registry currently assigns both `next` and
6
- `latest` to that preview; `latest` is not a stable-release guarantee.
7
- The alpha.2 candidate adds [project setup and diagnosis](ONBOARDING.md) and is
8
- available from source or a reviewed candidate tarball until published.
5
+ Use the exact version below. `next` points to alpha.3; `latest` still points to
6
+ alpha.1 because npm rejected its removal. Neither tag implies a stable release.
7
+ Alpha.3 includes [project setup and diagnosis](ONBOARDING.md) and the
8
+ [TypeScript compatibility fix](TYPESCRIPT.md).
9
9
 
10
10
  Use Node.js 22 or newer on macOS or Linux. Windows execution is not supported.
11
11
  Install each project's compilers, linters and test runners separately; Checktrail
@@ -19,7 +19,7 @@ Skills install separately from the engine and MCP configuration.
19
19
  Install the exact version once:
20
20
 
21
21
  ```sh
22
- npm install --global --ignore-scripts @stsepelin/checktrail@0.1.0-alpha.1
22
+ npm install --global --ignore-scripts @stsepelin/checktrail@0.1.0-alpha.3
23
23
  checktrail --version
24
24
  ```
25
25
 
package/docs/LANGUAGES.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Language and ecosystem roadmap
2
2
 
3
- The alpha.2 candidate's [setup guide](ONBOARDING.md) describes conservative
3
+ The [setup guide](ONBOARDING.md) describes conservative
4
4
  per-language configuration proposals and static tool diagnosis. Setup does not
5
5
  extend the execution capabilities or native evidence listed below.
6
6
 
@@ -115,3 +115,18 @@ skip, so its aggregate pass count is not evidence for every native profile.
115
115
  The prepared CI language profiles and native container helpers require exact
116
116
  regression names through `NATIVE-CI.md`. Their required results are separate from
117
117
  the optional skips allowed by a developer's general test suite.
118
+
119
+ [Public adoption measurements](PUBLIC-ADOPTION.md) record alpha.2 on pinned
120
+ JavaScript, TypeScript, Python, Go and PHP libraries. TypeScript 4.9.5 rejects
121
+ alpha.2's `--noCheck` option; that published artifact does not support this profile.
122
+ Go platform exclusions remain inconclusive even when native tests exit zero.
123
+
124
+ The alpha.3 [TypeScript compatibility fix](TYPESCRIPT.md) exercises plain
125
+ TypeScript 4.9.5 and 6.0.3 using native capability-aware arguments. Published
126
+ alpha.2 retains the recorded older-compiler limitation; Vue and solution-build
127
+ profiles retain their separately verified versions.
128
+
129
+ The source checkout adds an unreleased [Go scope policy](GO-SCOPE.md) for exact,
130
+ native-confirmed ignored files. It retains unverified exclusions in reports and
131
+ does not claim a build matrix or add custom build-tag execution. Published alpha.3
132
+ keeps the original strict exclusion behavior.
@@ -46,6 +46,12 @@ extension handlers run. This was reproduced locally; `tasks/update` reaches its
46
46
  handler in the same probe. Upstream tracks the method-registry collision in
47
47
  [typescript-sdk#2598](https://github.com/modelcontextprotocol/typescript-sdk/issues/2598).
48
48
 
49
+ Rechecked on 2026-09-21: npm's latest server/client SDK versions are still 2.0.0,
50
+ the local probe still returns `-32601` for get/cancel and reaches update, and the
51
+ [proposed upstream fix](https://github.com/modelcontextprotocol/typescript-sdk/pull/2599)
52
+ remains open. The package retains its pinned SDK; no transport interception or
53
+ protocol workaround is introduced.
54
+
49
55
  Run `npm run probe:mcp-tasks` from the source checkout to repeat the routing probe. Exit `2` means one or
50
56
  more handlers were unreachable; exit `0` means routing works. A routing success
51
57
  does not establish Tasks conformance. The probe is separate from the ordinary
package/docs/NATIVE-CI.md CHANGED
@@ -22,6 +22,10 @@ checks. The separate PHP syntax helper checks its exact successful TAP test name
22
22
  the external-adapter helper already checks exact required native names for each
23
23
  of its different runtime containers.
24
24
 
25
+ The main matrix also prepares the separately locked TypeScript 4.9.5 compiler
26
+ from `scripts/typescript-legacy-tools/`. Its named native regression is mandatory
27
+ in the `javascript` profile; root build tooling stays on its existing compiler.
28
+
25
29
  A tool version preflight remains useful but is not the acceptance condition.
26
30
  Installing the expected binary cannot compensate for a skipped, renamed, removed
27
31
  or failing required test. When intentionally renaming or replacing a regression,
@@ -1,7 +1,13 @@
1
1
  # Project setup
2
2
 
3
- These commands are new in the unpublished `0.1.0-alpha.2` candidate. Use the
4
- source checkout or a reviewed candidate tarball, with Node.js 22+ on macOS/Linux.
3
+ These commands are available since `0.1.0-alpha.2`. Follow the
4
+ [installation guide](INSTALLATION.md), with Node.js 22+ on macOS/Linux.
5
+
6
+ [Public adoption observations](PUBLIC-ADOPTION.md) show setup on real libraries,
7
+ including nested documentation projects, workflow prerequisites and older compiler
8
+ limitations. A narrowed policy can pass its selected checks while leaving other
9
+ repository checks unverified. The [setup scope walkthrough](SETUP-SCOPES.md)
10
+ shows how to inspect those boundaries and interpret an intentionally narrowed policy.
5
11
 
6
12
  ## Preview and create a policy
7
13
 
@@ -0,0 +1,118 @@
1
+ # Public repository adoption: alpha.2
2
+
3
+ This exercise measures installation, policy setup and selected native checks on
4
+ public libraries. It uses the published alpha.2 artifact, not an edited engine.
5
+ The [selection plan](../scripts/public-adoption-plan.json) pins every upstream
6
+ commit. Upstream sources and their licenses remain in ignored local checkouts;
7
+ no upstream source is included in Checktrail's package or this report.
8
+
9
+ The projects were chosen for a small initial-language adoption sample, before
10
+ validation results were known. They were not replaced after failures. This is
11
+ not a randomized sample, an independent rule-effectiveness holdout, a replacement
12
+ for upstream CI, or a measurement of general false-positive rates.
13
+
14
+ ## Observations
15
+
16
+ The [measurement record](measurements/public-adoption-alpha2.json) separates the
17
+ policy created by `init` from an explicitly narrowed, root-language-only policy.
18
+ `doctor` continues to identify omitted ecosystems in the narrower policy.
19
+ A passing selected check does not mean the entire repository was validated.
20
+
21
+ | Public project | Selected language checks | Native baseline and alpha.2 observation |
22
+ | ---------------------------------------------------------------------------------------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
23
+ | [Nano ID](https://github.com/ai/nanoid/tree/57009b5eb8d757ae39bf5f4361dd30c9f23391b7) | Node tests | Both ran 79 tests successfully. The full policy remains incomplete without workflow configuration/tooling. Benchmark, browser tooling, size, prebuild, lint and declaration validation were not included. |
24
+ | [mitt](https://github.com/developit/mitt/tree/6b41670516ed8e8b738612f60491995470aa63b3) | TypeScript 4.9.5 | Initial native checking needs the generated root declaration. After generating it, native typechecking passes; alpha.2 still fails with TS5023 because this compiler does not support `--noCheck`. Mocha and other package scripts were not run. |
25
+ | [more-itertools](https://github.com/more-itertools/more-itertools/tree/1da45ae4b61a832ed080f08a8833784aad0a9534) | unittest, Python 3.12 | Both ran 928 tests successfully. Full setup also discovers workflows and a separate documentation project; its selected unittest check has no candidate tests. Documentation builds, type stubs and workflow validation remain outside the narrowed result. |
26
+ | [google/uuid](https://github.com/google/uuid/tree/2d3c2a9cc518326daf99a383f07c4d3c44317e4d) | gofmt, vet and tests, Go 1.27.1 | Native test events report 212 passes and one skip. Both formatting checks report the same seven files. Checktrail marks vet/tests inconclusive because the native platform selection omits `node_js.go`; the formatting failure makes the aggregate failed. |
27
+ | [PSR Log](https://github.com/php-fig/log/tree/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3) | PHP 8.4 syntax | All eight files pass native and Checktrail syntax checks. Host diagnosis reports PHP missing; prepared Linux execution succeeds. This provides no type, behavior or test evidence. |
28
+
29
+ Counts above describe this pinned snapshot and are reconciled with the linked
30
+ record. Go's zero exit status from `gofmt -l` does not mean formatted source;
31
+ its listed paths are findings. Its skipped test and platform-excluded file are
32
+ retained instead of turning native exit zero into complete validation.
33
+
34
+ Each checkout received an original, temporary failing control. Node, Python, Go
35
+ and PHP detected the intended failure. Go retained its existing skip and formatting
36
+ findings. TypeScript's native run diagnosed the inserted TS2322 error, but alpha.2
37
+ stopped at the unsupported compiler option; that is not credited as detection.
38
+ Controls were removed in `finally`, and tracked upstream file hashes remained
39
+ unchanged. `init --write` preservation was checked byte for byte, and read-only
40
+ operations were checked against the project tree.
41
+
42
+ ## What this changes in the roadmap
43
+
44
+ - TypeScript needs a capability/version preflight for older compilers, with a
45
+ clear unavailable-tool explanation, or an explicitly tested compatible invocation.
46
+ Alpha.2's existing native verification covers TypeScript 6.0.3; this exercise
47
+ does not extend that support to 4.9.5.
48
+ - Setup guidance should distinguish an executable language profile from workflow
49
+ tooling and documentation projects. Explicit narrowing must keep the omitted
50
+ coverage visible.
51
+ - Go needs an explicit policy for platform/build-tag coverage before a developer
52
+ can distinguish intentional target exclusions from accidentally missed source.
53
+ This observation does not justify silently ignoring excluded files.
54
+
55
+ These are recorded adoption gaps, not fixes applied to the immutable alpha.2
56
+ package. No new engine version is published by this exercise.
57
+
58
+ ## Alpha.3 follow-up
59
+
60
+ The [compiler compatibility fix](TYPESCRIPT.md) is published in alpha.3. Its exact
61
+ release artifact passes the known-case mitt replay with TypeScript 4.9.5 through
62
+ the CLI, library and MCP; see [release verification](RELEASE.md). The observations
63
+ above still describe published alpha.2; they are not replaced by the fixed source
64
+ checkout's results. The [setup scope guide](SETUP-SCOPES.md) explains omitted workflows and documentation.
65
+ An unreleased [Go scope policy](GO-SCOPE.md) now supports exact native-confirmed
66
+ exclusions; a target matrix remains separate work.
67
+
68
+ ## Reproduce
69
+
70
+ Use macOS arm64 with Node 26.8.1 and Go 1.27.1 to reproduce the recorded host
71
+ profile. PHP and Python use the image identities in the measurement record;
72
+ Docker execution disables networking and mounts project inputs read-only.
73
+ The host does not impose an OS network sandbox. No Sail is used.
74
+
75
+ Download the tarball and `SHA256SUMS` from the
76
+ [alpha.2 GitHub release](https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.2),
77
+ then verify SHA-256
78
+ `ffd0564f40a12a238a52fe25fe8c34fb36cf6f6480be7b6994bab82a3bd657fb`.
79
+ The original measurement installed the exact version from npm; reproduction
80
+ installs that same verified tarball with lifecycle scripts disabled.
81
+
82
+ ```sh
83
+ node scripts/prepare-public-adoption.mjs /new/adoption-directory /absolute/release.tgz
84
+ ```
85
+
86
+ Preparation downloads pinned public Git revisions and installs the engine and
87
+ explicit TypeScript tools. It does not run upstream package scripts. The TypeScript
88
+ tool profile is compiler 4.9.5 plus `@types/chai` 4.3.20, `@types/mocha` 7.0.2,
89
+ `@types/sinon` 9.0.11 and `@types/sinon-chai` 3.2.12. The preparation lockfile records
90
+ transitive dependency resolutions; it is not an upstream lockfile or a claim that
91
+ all upstream build/test dependencies were installed.
92
+
93
+ Prepare the Python/Node image using `scripts/external-tools.Dockerfile`, and the
94
+ PHP/Node image using `scripts/adoption-php.Dockerfile`. Compare local image IDs
95
+ with the record. A rebuilt image may have a different ID: a run with different
96
+ image bytes is a new environment observation, not a reproduction of that exact
97
+ runtime. The recorded Python image must already be present for this harness.
98
+
99
+ ```sh
100
+ docker build --network=none --pull=false -f scripts/adoption-php.Dockerfile -t checktrail-adoption-php:alpha2 scripts
101
+ CHECKTRAIL_ADOPTION_PHP_IMAGE="$(docker image inspect checktrail-adoption-php:alpha2 --format '{{.Id}}')" \
102
+ node scripts/measure-public-adoption.mjs /new/adoption-directory /absolute/release.tgz
103
+ ```
104
+
105
+ Measurement downloads nothing. It verifies installed engine files against the
106
+ reviewed artifact, checks upstream revisions and tracked hashes, measures both
107
+ policy scopes, compares native accounting, and applies/removes the original
108
+ controls. mitt's generated declaration is prepared separately with the installed
109
+ compiler and removed afterwards. Fresh checkouts are required for another run;
110
+ the harness preserves detailed local evidence and created policies for inspection.
111
+
112
+ Raw process outputs stay under the prepared directory's `observations/` folder.
113
+ The committed record contains relative file names, counts, diagnostic codes,
114
+ versions, hashes, outcomes and timing observations, not source or raw tool prose.
115
+ Timings include CLI/process startup and, for containers, Docker invocation; cache
116
+ state, native/wrapper order and scheduling are uncontrolled. They do not support
117
+ a representative speed comparison. No model is invoked and no prior human/model
118
+ review workflow is compared.
package/docs/RELEASE.md CHANGED
@@ -1,20 +1,77 @@
1
- # Release preparation
2
-
3
- The source is public at [stsepelin/checktrail](https://github.com/stsepelin/checktrail);
4
- `@stsepelin/checktrail@0.1.0-alpha.1` is published on npm. Its downloaded artifact
5
- matched the reviewed tarball with SHA-256
6
- `84003e184805b6c5362c0801c702a72e415040ae5142fcd70f01eb9758637d04`.
7
- Fresh registry installation, CLI and MCP startup were verified. The alpha.2
8
- candidate adds [setup and diagnosis](ONBOARDING.md); it is not yet published.
9
- `server.json` describes the intended `io.github.stsepelin/checktrail` MCP Registry
10
- identity with the candidate's matching npm version. Registry registration remains
11
- pending. No credentials or automatic publishing workflow are stored here.
12
-
13
- Publication is configured for npm's `next` tag. After alpha.1 publication, the
14
- registry assigned both `next` and `latest` to that preview; attempts to remove
15
- `latest` returned HTTP 400. The cause is unresolved. Use exact versions and
16
- resolve the tag policy before publishing another candidate; do not treat `latest`
17
- as evidence of a stable release or republish an existing version.
1
+ # Releases and publication
2
+
3
+ The source is public at [stsepelin/checktrail](https://github.com/stsepelin/checktrail).
4
+ The published preview is `@stsepelin/checktrail@0.1.0-alpha.3`.
5
+ Its downloaded npm artifact and GitHub release asset match the reviewed SHA-256:
6
+
7
+ ```text
8
+ 261d10acbac14dcd5d74f4b248a390e5790f22461fecd597e29b8044aef2daeb
9
+ ```
10
+
11
+ The [GitHub prerelease](https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.3)
12
+ and tag point to source commit `b0b447d5ea8973b3e427e179201a44b7baa1ca91` and include
13
+ the same tarball plus `SHA256SUMS`. The [hosted release run](https://github.com/stsepelin/checktrail/actions/runs/35597877167)
14
+ passed all jobs. The [MCP Registry entry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.stsepelin%2Fchecktrail/versions/0.1.0-alpha.3)
15
+ is active and matches `server.json`, with execution disabled. The Registry omits
16
+ `isSecret: false`, whose schema default is false.
17
+
18
+ Fresh public-registry installation verified CLI/library validation, generated
19
+ npx startup with fresh/warm caches, onboarding, and MCP pass/fail/incomplete
20
+ results, retained reports and execution denial. The exact artifact also passed
21
+ offline installation, alpha.2 → alpha.3 → alpha.2 upgrade/rollback, the known mitt
22
+ TypeScript 4.9.5 replay, Claude Code health/discovery and Codex direct MCP calls.
23
+ The [release record](measurements/release-alpha3.json) links these observations to
24
+ the artifact; client profile limits remain in [CLIENTS.md](CLIENTS.md).
25
+
26
+ ## Alpha.4 candidate (unpublished)
27
+
28
+ The checkout prepares `0.1.0-alpha.4` with optional exact Go file exclusions in
29
+ `checktrail.go-scope.json`. Native package evidence must account for each declared
30
+ exclusion. Active, absent or otherwise unaccounted-for declarations cannot pass.
31
+ Go formatting continues to cover the full source inventory, and race-test package
32
+ discovery now uses the same `-race` constraints as execution. See [GO-SCOPE.md](GO-SCOPE.md).
33
+
34
+ Detailed plan/report schemas add an optional `goScope` declaration and summaries
35
+ add an optional `goExcludedFileCount`. Consumers that validate with older strict
36
+ schemas must update their schemas before accepting these fields. The policy is
37
+ opt-in; existing projects retain strict scope accounting. Dependencies are unchanged.
38
+
39
+ Alpha.3 does not understand the new sidecar policy. Rolling back keeps its bytes
40
+ on disk but restores strict Go accounting, so a project relying on exclusions can
41
+ become incomplete. Exclusions never establish validation of another platform or
42
+ custom build-tag configuration. No cross-target execution is added.
43
+
44
+ Candidate verification and commit approval precede publication. The installed MCP
45
+ SDK routing probe was rechecked on 2026-09-21: standard Tasks remains unavailable;
46
+ see [MCP-COMPATIBILITY.md](MCP-COMPATIBILITY.md). The published preview and artifact
47
+ described above remain alpha.3 until a new release is explicitly authorized and verified.
48
+
49
+ ## Alpha.3 scope
50
+
51
+ Alpha.3 fixes the plain TypeScript adapter's unsupported `--noCheck` argument on
52
+ the exercised TypeScript 4.9.5 profile, retaining the TypeScript 6.0.3 override and
53
+ native file accounting. Vue uses the same capability helper with its verified
54
+ modern toolchain; solution-build remains gated to TypeScript 6.0.3. See
55
+ [TYPESCRIPT.md](TYPESCRIPT.md). Dependencies and report/policy schemas did not change.
56
+
57
+ The release targets Node.js 22 or newer on macOS and Linux. It does not add
58
+ standard MCP Tasks or legacy Vue support. The historical alpha.2
59
+ [adoption record](PUBLIC-ADOPTION.md) remains unchanged; its initial failures are
60
+ not rewritten as alpha.3 successes. The immutable tarball contains preparation-time
61
+ candidate documentation; current source documentation records verified publication.
62
+
63
+ ## Distribution tags and previous release
64
+
65
+ `next` points to alpha.3. `latest` remains on alpha.1 because npm rejected its
66
+ removal. Use exact versions; neither tag implies a stable release. Never republish
67
+ an existing version. No credentials or automatic publishing workflow are stored here.
68
+
69
+ The [alpha.2 prerelease](https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.2)
70
+ introduced [setup and diagnosis](ONBOARDING.md), from source commit `4ce8398`.
71
+ Its reviewed and downloaded artifact has SHA-256
72
+ `ffd0564f40a12a238a52fe25fe8c34fb36cf6f6480be7b6994bab82a3bd657fb`.
73
+ Its [hosted run](https://github.com/stsepelin/checktrail/actions/runs/35590670960)
74
+ and fresh installation checks passed; its npm and Registry versions remain published.
18
75
 
19
76
  ## Prepared artifacts
20
77
 
@@ -32,8 +89,8 @@ as evidence of a stable release or republish an existing version.
32
89
  loads the installed metadata and verifies its actual startup command.
33
90
  - CI definitions cover the host suite and prepared native profiles. Local
34
91
  containers and package checks are evidence only for the environments actually
35
- exercised. The [hosted run at bfc8cc4](https://github.com/stsepelin/checktrail/actions/runs/35585998184)
36
- passed all jobs; the alpha.2 release commit requires its own run. The local Claude Code health/discovery and
92
+ exercised. The [hosted run at b0b447d](https://github.com/stsepelin/checktrail/actions/runs/35597877167)
93
+ passed all jobs for the alpha.3 release commit. The local Claude Code health/discovery and
37
94
  Codex direct app-server profiles have fresh-install evidence in `CLIENTS.md`.
38
95
 
39
96
  The metadata follows the official registry
@@ -69,7 +126,7 @@ After explicit approval and npm authentication for the `@stsepelin` scope, publi
69
126
  the approved file, not a newly packed working tree:
70
127
 
71
128
  ```sh
72
- npm publish /absolute/path/stsepelin-checktrail-0.1.0-alpha.2.tgz \
129
+ npm publish /absolute/path/reviewed-new-version.tgz \
73
130
  --tag next --access public --ignore-scripts --registry=https://registry.npmjs.org
74
131
  ```
75
132