@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.
- package/README.md +14 -6
- package/dist/src/adapters.js +3 -1
- package/dist/src/architecture.d.ts +1 -1
- package/dist/src/contract-schema.d.ts +1 -1
- package/dist/src/contracts.d.ts +1 -1
- package/dist/src/evidence.js +2 -1
- package/dist/src/finding-policy-schema.d.ts +1 -1
- package/dist/src/go-scope-policy.d.ts +11 -0
- package/dist/src/go-scope-policy.js +50 -0
- package/dist/src/go-scope.d.ts +1 -1
- package/dist/src/go-scope.js +42 -5
- package/dist/src/output.js +6 -0
- package/dist/src/report-validation.d.ts +7 -0
- package/dist/src/runtime-inventory.d.ts +2 -2
- package/dist/src/schemas.d.ts +17 -0
- package/dist/src/schemas.js +16 -2
- package/dist/src/types.d.ts +4 -1
- package/dist/src/types.js +1 -1
- package/dist/src/typescript-arguments.d.ts +4 -0
- package/dist/src/typescript-arguments.js +10 -0
- package/dist/src/typescript-runner.d.ts +1 -0
- package/dist/src/typescript-runner.js +19 -0
- package/dist/src/typescript.js +3 -9
- package/dist/src/vue-tsc-runner.js +2 -1
- package/docs/ACCEPTANCE.md +24 -13
- package/docs/CLIENTS.md +6 -4
- package/docs/GO-RACE.md +4 -2
- package/docs/GO-SCOPE.md +70 -5
- package/docs/INSTALLATION.md +6 -6
- package/docs/LANGUAGES.md +16 -1
- package/docs/MCP-COMPATIBILITY.md +6 -0
- package/docs/NATIVE-CI.md +4 -0
- package/docs/ONBOARDING.md +8 -2
- package/docs/PUBLIC-ADOPTION.md +118 -0
- package/docs/RELEASE.md +77 -20
- package/docs/SETUP-SCOPES.md +107 -0
- package/docs/STATUS.md +33 -11
- package/docs/TYPESCRIPT.md +78 -0
- package/docs/measurements/go-scope-policy-replay.json +91 -0
- package/docs/measurements/public-adoption-alpha2.json +2034 -0
- package/docs/measurements/release-alpha3.json +362 -0
- package/docs/measurements/typescript-legacy-replay.json +39 -0
- package/package.json +1 -1
- package/schemas/go-scope-policy.schema.json +31 -0
- package/schemas/plan-summary.schema.json +6 -1
- package/schemas/plan.schema.json +30 -0
- package/schemas/report-summary.schema.json +5 -0
- package/schemas/report.schema.json +30 -0
- package/server.json +2 -2
package/docs/ACCEPTANCE.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
47
|
-
[hosted run at
|
|
48
|
-
passed all jobs
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
4
|
-
|
|
5
|
-
|
|
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.
|
|
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
|
|
14
|
-
incomplete; see [Go scope](GO-SCOPE.md)
|
|
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.
|
|
4
|
-
`go list -json ./...`.
|
|
5
|
-
|
|
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.
|
|
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`
|
package/docs/INSTALLATION.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Install the preview
|
|
2
2
|
|
|
3
|
-
The published preview is `0.1.0-alpha.
|
|
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.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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.
|
|
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
|
|
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,
|
package/docs/ONBOARDING.md
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
# Project setup
|
|
2
2
|
|
|
3
|
-
These commands are
|
|
4
|
-
|
|
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
|
-
#
|
|
2
|
-
|
|
3
|
-
The source is public at [stsepelin/checktrail](https://github.com/stsepelin/checktrail)
|
|
4
|
-
`@stsepelin/checktrail@0.1.0-alpha.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
|
36
|
-
passed all jobs
|
|
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/
|
|
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
|
|