@stsepelin/checktrail 0.1.0-alpha.3 → 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 +8 -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/docs/ACCEPTANCE.md +10 -8
- package/docs/CLIENTS.md +6 -4
- package/docs/GO-RACE.md +4 -2
- package/docs/GO-SCOPE.md +70 -5
- package/docs/INSTALLATION.md +5 -4
- package/docs/LANGUAGES.md +7 -2
- package/docs/MCP-COMPATIBILITY.md +6 -0
- package/docs/ONBOARDING.md +3 -2
- package/docs/PUBLIC-ADOPTION.md +7 -5
- package/docs/RELEASE.md +75 -40
- package/docs/SETUP-SCOPES.md +107 -0
- package/docs/STATUS.md +22 -11
- package/docs/TYPESCRIPT.md +2 -2
- package/docs/measurements/go-scope-policy-replay.json +91 -0
- package/docs/measurements/release-alpha3.json +362 -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/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,10 +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. `next` points to alpha.
|
|
5
|
+
Use the exact version below. `next` points to alpha.3; `latest` still points to
|
|
6
6
|
alpha.1 because npm rejected its removal. Neither tag implies a stable release.
|
|
7
|
-
Alpha.
|
|
7
|
+
Alpha.3 includes [project setup and diagnosis](ONBOARDING.md) and the
|
|
8
|
+
[TypeScript compatibility fix](TYPESCRIPT.md).
|
|
8
9
|
|
|
9
10
|
Use Node.js 22 or newer on macOS or Linux. Windows execution is not supported.
|
|
10
11
|
Install each project's compilers, linters and test runners separately; Checktrail
|
|
@@ -18,7 +19,7 @@ Skills install separately from the engine and MCP configuration.
|
|
|
18
19
|
Install the exact version once:
|
|
19
20
|
|
|
20
21
|
```sh
|
|
21
|
-
npm install --global --ignore-scripts @stsepelin/checktrail@0.1.0-alpha.
|
|
22
|
+
npm install --global --ignore-scripts @stsepelin/checktrail@0.1.0-alpha.3
|
|
22
23
|
checktrail --version
|
|
23
24
|
```
|
|
24
25
|
|
package/docs/LANGUAGES.md
CHANGED
|
@@ -118,10 +118,15 @@ the optional skips allowed by a developer's general test suite.
|
|
|
118
118
|
|
|
119
119
|
[Public adoption measurements](PUBLIC-ADOPTION.md) record alpha.2 on pinned
|
|
120
120
|
JavaScript, TypeScript, Python, Go and PHP libraries. TypeScript 4.9.5 rejects
|
|
121
|
-
|
|
121
|
+
alpha.2's `--noCheck` option; that published artifact does not support this profile.
|
|
122
122
|
Go platform exclusions remain inconclusive even when native tests exit zero.
|
|
123
123
|
|
|
124
|
-
The
|
|
124
|
+
The alpha.3 [TypeScript compatibility fix](TYPESCRIPT.md) exercises plain
|
|
125
125
|
TypeScript 4.9.5 and 6.0.3 using native capability-aware arguments. Published
|
|
126
126
|
alpha.2 retains the recorded older-compiler limitation; Vue and solution-build
|
|
127
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/ONBOARDING.md
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# Project setup
|
|
2
2
|
|
|
3
|
-
These commands are available
|
|
3
|
+
These commands are available since `0.1.0-alpha.2`. Follow the
|
|
4
4
|
[installation guide](INSTALLATION.md), with Node.js 22+ on macOS/Linux.
|
|
5
5
|
|
|
6
6
|
[Public adoption observations](PUBLIC-ADOPTION.md) show setup on real libraries,
|
|
7
7
|
including nested documentation projects, workflow prerequisites and older compiler
|
|
8
8
|
limitations. A narrowed policy can pass its selected checks while leaving other
|
|
9
|
-
repository checks unverified.
|
|
9
|
+
repository checks unverified. The [setup scope walkthrough](SETUP-SCOPES.md)
|
|
10
|
+
shows how to inspect those boundaries and interpret an intentionally narrowed policy.
|
|
10
11
|
|
|
11
12
|
## Preview and create a policy
|
|
12
13
|
|
package/docs/PUBLIC-ADOPTION.md
CHANGED
|
@@ -55,13 +55,15 @@ operations were checked against the project tree.
|
|
|
55
55
|
These are recorded adoption gaps, not fixes applied to the immutable alpha.2
|
|
56
56
|
package. No new engine version is published by this exercise.
|
|
57
57
|
|
|
58
|
-
##
|
|
58
|
+
## Alpha.3 follow-up
|
|
59
59
|
|
|
60
|
-
The [compiler compatibility fix](TYPESCRIPT.md)
|
|
61
|
-
with TypeScript 4.9.5 through
|
|
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
|
|
62
63
|
above still describe published alpha.2; they are not replaced by the fixed source
|
|
63
|
-
checkout's results.
|
|
64
|
-
|
|
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.
|
|
65
67
|
|
|
66
68
|
## Reproduce
|
|
67
69
|
|
package/docs/RELEASE.md
CHANGED
|
@@ -1,42 +1,77 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Releases and publication
|
|
2
2
|
|
|
3
|
-
The source is public at [stsepelin/checktrail](https://github.com/stsepelin/checktrail)
|
|
4
|
-
`@stsepelin/checktrail@0.1.0-alpha.
|
|
5
|
-
|
|
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
|
|
6
72
|
`ffd0564f40a12a238a52fe25fe8c34fb36cf6f6480be7b6994bab82a3bd657fb`.
|
|
7
|
-
|
|
8
|
-
fresh
|
|
9
|
-
[setup and diagnosis](ONBOARDING.md). The
|
|
10
|
-
[MCP Registry entry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.stsepelin%2Fchecktrail/versions/0.1.0-alpha.2)
|
|
11
|
-
is active and matches the alpha.2 release metadata, with execution disabled. The Registry omits
|
|
12
|
-
`isSecret: false`, whose schema default is false. No credentials or automatic
|
|
13
|
-
publishing workflow are stored here.
|
|
14
|
-
The [GitHub prerelease](https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.2)
|
|
15
|
-
points to source commit `4ce8398` and includes the same tarball plus `SHA256SUMS`.
|
|
16
|
-
The downloaded release asset was verified against the digest above.
|
|
17
|
-
|
|
18
|
-
Publication is configured for npm's `next` tag. After alpha.1 publication, the
|
|
19
|
-
registry assigned both `next` and `latest` to that preview; attempts to remove
|
|
20
|
-
`latest` returned HTTP 400. Alpha.2 publication updated `next` while leaving
|
|
21
|
-
`latest` on alpha.1. Cleanup remains unresolved; use exact versions, do not treat
|
|
22
|
-
`latest` as evidence of a stable release, and never republish an existing version.
|
|
23
|
-
|
|
24
|
-
## Alpha.3 candidate (unpublished)
|
|
25
|
-
|
|
26
|
-
The source candidate is `0.1.0-alpha.3`. It fixes the plain TypeScript adapter's
|
|
27
|
-
unsupported `--noCheck` argument on the exercised TypeScript 4.9.5 profile, while
|
|
28
|
-
retaining the TypeScript 6.0.3 override and native file accounting. Vue uses the
|
|
29
|
-
same capability helper with its existing verified modern toolchain; the separate
|
|
30
|
-
solution-build profile remains gated to TypeScript 6.0.3. See [TYPESCRIPT.md](TYPESCRIPT.md).
|
|
31
|
-
No dependencies or report/policy schemas change in this release preparation.
|
|
32
|
-
The alpha.2 adoption record remains historical evidence.
|
|
33
|
-
|
|
34
|
-
The candidate still targets Node.js 22 or newer on macOS and Linux. It does not
|
|
35
|
-
add standard MCP Tasks or legacy Vue support. Registry metadata keeps execution
|
|
36
|
-
disabled by default. Publication will use npm's `next` tag after release checks
|
|
37
|
-
and hosted CI succeed; the alpha.2 publication evidence above does not verify
|
|
38
|
-
this candidate. Exact artifact, client and upgrade/rollback evidence is retained
|
|
39
|
-
outside the package allowlist until publication is verified.
|
|
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.
|
|
40
75
|
|
|
41
76
|
## Prepared artifacts
|
|
42
77
|
|
|
@@ -54,8 +89,8 @@ outside the package allowlist until publication is verified.
|
|
|
54
89
|
loads the installed metadata and verifies its actual startup command.
|
|
55
90
|
- CI definitions cover the host suite and prepared native profiles. Local
|
|
56
91
|
containers and package checks are evidence only for the environments actually
|
|
57
|
-
exercised. The [hosted run at
|
|
58
|
-
passed all jobs for the alpha.
|
|
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
|
|
59
94
|
Codex direct app-server profiles have fresh-install evidence in `CLIENTS.md`.
|
|
60
95
|
|
|
61
96
|
The metadata follows the official registry
|
|
@@ -91,7 +126,7 @@ After explicit approval and npm authentication for the `@stsepelin` scope, publi
|
|
|
91
126
|
the approved file, not a newly packed working tree:
|
|
92
127
|
|
|
93
128
|
```sh
|
|
94
|
-
npm publish /absolute/path/
|
|
129
|
+
npm publish /absolute/path/reviewed-new-version.tgz \
|
|
95
130
|
--tag next --access public --ignore-scripts --registry=https://registry.npmjs.org
|
|
96
131
|
```
|
|
97
132
|
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Choose and understand setup coverage
|
|
2
|
+
|
|
3
|
+
A repository can contain a runnable library, a documentation project and CI
|
|
4
|
+
workflows. Each can need different tools. `init` proposes checks; `doctor` reports
|
|
5
|
+
static setup gaps; only a trusted `run` produces validation evidence.
|
|
6
|
+
|
|
7
|
+
Use the [installation guide](INSTALLATION.md) and inspect before writing:
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
checktrail init --root "$PWD"
|
|
11
|
+
checktrail plan --root "$PWD" --detailed
|
|
12
|
+
checktrail doctor --root "$PWD" --detailed
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
A `needs-selection` or `attention-required` result exits `2`. Read its JSON before
|
|
16
|
+
choosing checks. These inspection commands do not run project scripts or install
|
|
17
|
+
dependencies. Detailed output includes paths and may include absolute diagnostic paths.
|
|
18
|
+
|
|
19
|
+
## A library with documentation and workflows
|
|
20
|
+
|
|
21
|
+
Consider this original, generic repository:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
package.json scripts.test is "node --test"
|
|
25
|
+
sum.test.js one passing Node test
|
|
26
|
+
.github/workflows/verify.yml a GitHub Actions workflow
|
|
27
|
+
docs/requirements.txt documentation dependencies
|
|
28
|
+
docs/conf.py documentation configuration, no tests
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Discovery identifies JavaScript and infrastructure at `.`, and Python at `docs`.
|
|
32
|
+
The directory name does not prove that it is documentation, nor that it can be
|
|
33
|
+
ignored: the operator knows its purpose. Checktrail does not infer a documentation
|
|
34
|
+
build command from a Python manifest.
|
|
35
|
+
|
|
36
|
+
`init` returns `needs-selection` for the Python project and writes nothing, even
|
|
37
|
+
though the Node test command is recognized. Supplying a check for `.` does not
|
|
38
|
+
select it for nested projects. For example, this explicit preview covers all three
|
|
39
|
+
discovered ecosystems:
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
checktrail init --root "$PWD" \
|
|
43
|
+
--check '.#javascript.node-test' \
|
|
44
|
+
--check '.#infrastructure.actionlint' \
|
|
45
|
+
--check 'docs#python.unittest'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
It produces a policy preview, but the choice of `unittest` is not evidence of tests
|
|
49
|
+
in `docs`. If that policy is created with `--write`, `doctor --detailed` reports
|
|
50
|
+
`unavailable-check` for `python.unittest`: no candidate test files were discovered.
|
|
51
|
+
Choosing a runner merely to resolve setup selection does not validate documentation.
|
|
52
|
+
Use a separately supported check or the project's own documentation build; keep
|
|
53
|
+
that work outside Checktrail's coverage claim when no applicable adapter exists.
|
|
54
|
+
|
|
55
|
+
## Prepare workflow validation separately
|
|
56
|
+
|
|
57
|
+
`infrastructure.actionlint` is static workflow analysis. It does not execute CI
|
|
58
|
+
jobs or validate their shell bodies. It needs both the prepared native executable
|
|
59
|
+
and `checktrail.actionlint.json` beside the workflow repository root:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"schemaVersion": 1,
|
|
64
|
+
"runnerLabels": [],
|
|
65
|
+
"variables": []
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The empty arrays declare no extra runner labels or configuration variables. Review
|
|
70
|
+
actual workflow requirements before adopting those values. See [ACTIONLINT.md](ACTIONLINT.md)
|
|
71
|
+
for the supported tool version, configuration, dependency checks and limitations.
|
|
72
|
+
Without this configuration, diagnosis reports `unavailable-check`; without an
|
|
73
|
+
executable on the effective PATH it also reports `missing-executable`. Prepare the
|
|
74
|
+
tool explicitly, then repeat diagnosis. A successful Node test cannot supply this
|
|
75
|
+
workflow evidence.
|
|
76
|
+
|
|
77
|
+
## Interpret an intentionally narrowed policy
|
|
78
|
+
|
|
79
|
+
After reviewing the desired scope, an operator may explicitly maintain a
|
|
80
|
+
language-only policy. For the example above, it is:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"schemaVersion": 1,
|
|
85
|
+
"projects": [{ "path": ".", "checks": ["javascript.node-test"] }]
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Edit an existing policy deliberately; `init --write` preserves it and cannot
|
|
90
|
+
replace it or narrow its checks through `--check` arguments. Do not discard
|
|
91
|
+
existing overlays, packs, environment requirements or workspace dependencies.
|
|
92
|
+
|
|
93
|
+
With the language-only policy, the commands have different meanings:
|
|
94
|
+
|
|
95
|
+
| Command | Result for this example | Coverage |
|
|
96
|
+
| --------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
|
97
|
+
| `checktrail doctor --root "$PWD" --detailed` | `attention-required`, exit `2`; `unselected-project` for infrastructure at `.` and Python at `docs` | Workflow and documentation-project checks are omitted. |
|
|
98
|
+
| `checktrail run --root "$PWD" --trust-project --detailed` | `passed`, exit `0`, if the Node test passes | The selected Node test only. |
|
|
99
|
+
|
|
100
|
+
These results are consistent: validation passed its selected check while diagnosis
|
|
101
|
+
reported broader discovered scope left unselected. `doctor` does not assess every
|
|
102
|
+
possible check within a selected ecosystem either; selecting Node tests does not
|
|
103
|
+
claim linting, typing, browser behavior or documentation coverage.
|
|
104
|
+
|
|
105
|
+
Keep omitted work visible in your review and CI requirements. The
|
|
106
|
+
[public adoption report](PUBLIC-ADOPTION.md) records these distinctions on pinned
|
|
107
|
+
public projects; its historical results are not a claim about your repository.
|
package/docs/STATUS.md
CHANGED
|
@@ -3,17 +3,29 @@
|
|
|
3
3
|
This is an experimental foundation with public source at
|
|
4
4
|
[stsepelin/checktrail](https://github.com/stsepelin/checktrail).
|
|
5
5
|
Check the [installation guide](INSTALLATION.md) for package availability and setup.
|
|
6
|
-
The `0.1.0-alpha.
|
|
7
|
-
The [hosted run at
|
|
6
|
+
The `0.1.0-alpha.3` preview is published on npm and active in the MCP Registry.
|
|
7
|
+
The [hosted run at b0b447d](https://github.com/stsepelin/checktrail/actions/runs/35597877167)
|
|
8
8
|
passed all jobs. The published tarball matched the reviewed artifact; fresh
|
|
9
9
|
registry installation, CLI/library validation, generated npx startup and MCP
|
|
10
10
|
execution/trust behavior were verified. Earlier toolchain evidence remains in
|
|
11
11
|
`NATIVE-CI.md`; release details and tag limitations are in `RELEASE.md`.
|
|
12
|
-
The GitHub alpha.
|
|
13
|
-
[Public adoption](PUBLIC-ADOPTION.md) records
|
|
14
|
-
|
|
12
|
+
The GitHub alpha.3 prerelease includes the verified artifact and checksum.
|
|
13
|
+
[Public adoption](PUBLIC-ADOPTION.md) records alpha.2 on five pinned libraries, including incomplete
|
|
14
|
+
coverage and the TypeScript 4.9.5 incompatibility fixed in alpha.3.
|
|
15
15
|
|
|
16
|
-
## Alpha.
|
|
16
|
+
## Alpha.4 candidate (unpublished)
|
|
17
|
+
|
|
18
|
+
The checkout version is `0.1.0-alpha.4`. Release verification is in progress;
|
|
19
|
+
alpha.3 remains the published preview. No alpha.4 publication or hosted release
|
|
20
|
+
verification is claimed.
|
|
21
|
+
|
|
22
|
+
- [Go scope policy](GO-SCOPE.md): exact per-file declarations can acknowledge
|
|
23
|
+
native build-constraint exclusions. Go must confirm every exemption; stale
|
|
24
|
+
declarations and other omissions remain incomplete. Detailed reports retain
|
|
25
|
+
reasons and summaries show counts. Formatting still covers all source. Race
|
|
26
|
+
package listing now uses the same `-race` constraints as execution.
|
|
27
|
+
|
|
28
|
+
## Alpha.3 release
|
|
17
29
|
|
|
18
30
|
- [TypeScript compatibility](TYPESCRIPT.md): plain typechecking now passes the
|
|
19
31
|
native 4.9.5 regression while retaining the 6.0.3 `noCheck` override and native
|
|
@@ -164,11 +176,10 @@ a general speedup/graph-completeness claim.
|
|
|
164
176
|
|
|
165
177
|
## Release preparation
|
|
166
178
|
|
|
167
|
-
`server.json`, the npm package and the engine identify the
|
|
168
|
-
`0.1.0-alpha.3`
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
Historical publication evidence and the candidate sequence are in `RELEASE.md`.
|
|
179
|
+
`server.json`, the npm package and the engine identify the published
|
|
180
|
+
`0.1.0-alpha.3` preview. Its source commit passed hosted CI, the published tarball
|
|
181
|
+
matched the reviewed artifact, and fresh CLI/library/MCP installation checks passed.
|
|
182
|
+
Publication evidence and the sequence for future releases are in `RELEASE.md`.
|
|
172
183
|
|
|
173
184
|
## Pinned pack distribution
|
|
174
185
|
|
package/docs/TYPESCRIPT.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# TypeScript compiler compatibility
|
|
2
2
|
|
|
3
3
|
The source checkout's `javascript.typescript` profile now supports the exercised
|
|
4
|
-
TypeScript 4.9.5 and 6.0.3 configurations. This fix is
|
|
5
|
-
**
|
|
4
|
+
TypeScript 4.9.5 and 6.0.3 configurations. This fix is published in
|
|
5
|
+
**0.1.0-alpha.3**. Published alpha.2 still passes an option that
|
|
6
6
|
TypeScript 4.9.5 rejects. The original
|
|
7
7
|
[public adoption record](PUBLIC-ADOPTION.md) remains unchanged as release evidence.
|
|
8
8
|
Other compiler versions require their own native verification.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scope": "Known-case replay of an unreleased local package; excludes the JavaScript target without validating it; not an independent holdout",
|
|
3
|
+
"upstreamCommit": "2d3c2a9cc518326daf99a383f07c4d3c44317e4d",
|
|
4
|
+
"tarballSha256": "08069a85dc7863394a88218a1670a2e00381c7e176a1ae4c987ce8496a4c3e19",
|
|
5
|
+
"platform": "darwin",
|
|
6
|
+
"arch": "arm64",
|
|
7
|
+
"node": "v26.8.1",
|
|
8
|
+
"observations": [
|
|
9
|
+
{
|
|
10
|
+
"phase": "strict",
|
|
11
|
+
"outcome": "failed",
|
|
12
|
+
"checks": [
|
|
13
|
+
{
|
|
14
|
+
"id": "go.format",
|
|
15
|
+
"status": "failed"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "go.vet",
|
|
19
|
+
"status": "inconclusive"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "go.test",
|
|
23
|
+
"status": "inconclusive"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"mcpCounts": [0, 0, 0]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"phase": "declared",
|
|
30
|
+
"outcome": "failed",
|
|
31
|
+
"checks": [
|
|
32
|
+
{
|
|
33
|
+
"id": "go.format",
|
|
34
|
+
"status": "failed"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "go.vet",
|
|
38
|
+
"status": "passed"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "go.test",
|
|
42
|
+
"status": "passed",
|
|
43
|
+
"tests": {
|
|
44
|
+
"total": 213,
|
|
45
|
+
"passed": 212,
|
|
46
|
+
"failed": 0,
|
|
47
|
+
"skipped": 1
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"mcpCounts": [0, 1, 1]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"phase": "failing-test",
|
|
55
|
+
"outcome": "failed",
|
|
56
|
+
"checks": [
|
|
57
|
+
{
|
|
58
|
+
"id": "go.format",
|
|
59
|
+
"status": "failed"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "go.vet",
|
|
63
|
+
"status": "passed"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "go.test",
|
|
67
|
+
"status": "failed",
|
|
68
|
+
"tests": {
|
|
69
|
+
"total": 214,
|
|
70
|
+
"passed": 212,
|
|
71
|
+
"failed": 1,
|
|
72
|
+
"skipped": 1
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"mcpCounts": [0, 1, 1]
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"baseCommit": "bc0b95a511706475df97d1472b4724b36dbc2848",
|
|
80
|
+
"goVersion": "go version go1.27.1 darwin/arm64",
|
|
81
|
+
"sources": {
|
|
82
|
+
"src/go-scope-policy.ts": "be40a2fa681fd5c320e36ea4608a972cb369e045227e1e3fd539f915444287f3",
|
|
83
|
+
"src/go-scope.ts": "cc85c48962b91ab4b88977a78f8bddc62e866f8d863c265ffe1b1cfd523a4895",
|
|
84
|
+
"src/adapters.ts": "ba2dab60ac9ecf20d9843285b614d62b4853f06972e2e27946fe0f8de01c4a61",
|
|
85
|
+
"src/evidence.ts": "477a82d4b40cb3480fa9d5b6ab2a0d41c06685f275fda0abb061219eb2a7a086",
|
|
86
|
+
"src/output.ts": "6befd79c5cc095137edd5b11c6f29622ffa22f9d924ed64152a085abef7da891",
|
|
87
|
+
"src/schemas.ts": "e5add92fee2727e50222757703c8dd786b72c6ebf2b40d1fcad4864961805ee2",
|
|
88
|
+
"src/types.ts": "c30a5c65903342148a7a07c210d6c0b5231295bbf7b1d94944a29c070289587c"
|
|
89
|
+
},
|
|
90
|
+
"harnessSha256": "acd5dcad4cc8fce8818963f48714cc8af8139720f64779a2dbc79d6fb4866c3f"
|
|
91
|
+
}
|