@stsepelin/checktrail 0.1.0-alpha.1 → 0.1.0-alpha.3
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 +15 -5
- package/dist/src/cli.js +75 -3
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +1 -0
- package/dist/src/onboarding.d.ts +50 -0
- package/dist/src/onboarding.js +295 -0
- package/dist/src/types.d.ts +1 -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 +23 -13
- package/docs/ARCHITECTURE.md +3 -1
- package/docs/INSTALLATION.md +10 -6
- package/docs/LANGUAGES.md +14 -0
- package/docs/NATIVE-CI.md +4 -0
- package/docs/ONBOARDING.md +133 -0
- package/docs/PUBLIC-ADOPTION.md +116 -0
- package/docs/RELEASE.md +41 -9
- package/docs/SKILLS.md +123 -0
- package/docs/STATUS.md +26 -8
- package/docs/TYPESCRIPT.md +78 -0
- package/docs/measurements/public-adoption-alpha2.json +2034 -0
- package/docs/measurements/typescript-legacy-replay.json +39 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/docs/ACCEPTANCE.md
CHANGED
|
@@ -5,17 +5,25 @@ 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.2 and its MCP Registry entry are published. Hosted CI passed at `4ce8398`; 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. An [unreleased compiler fix](TYPESCRIPT.md) now passes the
|
|
23
|
+
known TypeScript 4.9.5 case; workflow/documentation and platform coverage remain
|
|
24
|
+
follow-up work. The observations do not establish full upstream CI coverage or
|
|
25
|
+
general review effectiveness.
|
|
26
|
+
|
|
19
27
|
1. Extend independently authored evaluation cohorts to additional implemented
|
|
20
28
|
language/rule families, preserving the verifier freeze and recording exact
|
|
21
29
|
selection, exclusions, native baselines and interpretation limits. New fixtures
|
|
@@ -43,11 +51,13 @@ run. The local worker/store are available independently; standard Tasks must sta
|
|
|
43
51
|
unadvertised until routing and the integrated wire/lifecycle suite pass. See
|
|
44
52
|
`MCP-COMPATIBILITY.md` for the reproduction and upstream issue.
|
|
45
53
|
|
|
46
|
-
The public repository
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
The public repository, npm preview `0.1.0-alpha.2` and its MCP Registry entry are
|
|
55
|
+
published. The [hosted run at 4ce8398](https://github.com/stsepelin/checktrail/actions/runs/35590670960)
|
|
56
|
+
passed all jobs, and fresh public installation was verified. Alpha.2 adds
|
|
57
|
+
[setup commands](ONBOARDING.md). The [GitHub prerelease](https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.2)
|
|
58
|
+
is also published with the verified tarball and checksum. npm tag cleanup remains
|
|
59
|
+
unresolved. The repository's explicit-action requirements still apply.
|
|
60
|
+
`RELEASE.md` defines the concrete
|
|
51
61
|
candidate checks and the authorization sequence; a local green run does not
|
|
52
62
|
replace external acceptance.
|
|
53
63
|
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -58,7 +58,9 @@ pass by a parser. Source changes during execution invalidate a green result.
|
|
|
58
58
|
|
|
59
59
|
Use bounded process output and timeouts, terminate the process group on supported
|
|
60
60
|
POSIX hosts, and propagate cancellation. No automatic dependency installation,
|
|
61
|
-
source rewriting, infrastructure startup
|
|
61
|
+
source rewriting, infrastructure startup or deployment. The explicit `init --write`
|
|
62
|
+
setup command can create a new `checktrail.json`; it preserves existing
|
|
63
|
+
configuration and grants no execution. See [ONBOARDING.md](ONBOARDING.md).
|
|
62
64
|
Executed project code still has the process user's privileges; this is not a
|
|
63
65
|
sandbox. Tests may modify files or access networks and must be trusted accordingly.
|
|
64
66
|
|
package/docs/INSTALLATION.md
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
# Install the preview
|
|
2
2
|
|
|
3
|
-
The
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
The published preview is `0.1.0-alpha.2` on
|
|
4
|
+
[npm](https://www.npmjs.com/package/@stsepelin/checktrail).
|
|
5
|
+
Use the exact version below. `next` points to alpha.2; `latest` still points to
|
|
6
|
+
alpha.1 because npm rejected its removal. Neither tag implies a stable release.
|
|
7
|
+
Alpha.2 includes [project setup and diagnosis](ONBOARDING.md).
|
|
7
8
|
|
|
8
9
|
Use Node.js 22 or newer on macOS or Linux. Windows execution is not supported.
|
|
9
10
|
Install each project's compilers, linters and test runners separately; Checktrail
|
|
10
11
|
does not download them. Missing tools produce incomplete results.
|
|
11
12
|
|
|
13
|
+
For agent workflows, see [installing skills with `npx skills`](SKILLS.md).
|
|
14
|
+
Skills install separately from the engine and MCP configuration.
|
|
15
|
+
|
|
12
16
|
## CLI
|
|
13
17
|
|
|
14
18
|
Install the exact version once:
|
|
15
19
|
|
|
16
20
|
```sh
|
|
17
|
-
npm install --global --ignore-scripts @stsepelin/checktrail@0.1.0-alpha.
|
|
21
|
+
npm install --global --ignore-scripts @stsepelin/checktrail@0.1.0-alpha.2
|
|
18
22
|
checktrail --version
|
|
19
23
|
```
|
|
20
24
|
|
|
@@ -84,7 +88,7 @@ Validation uses asynchronous calls and supports cancellation. Standard MCP Tasks
|
|
|
84
88
|
is not advertised; the durable worker is a separate library API. See
|
|
85
89
|
[client coverage](CLIENTS.md) and [MCP compatibility](MCP-COMPATIBILITY.md).
|
|
86
90
|
|
|
87
|
-
##
|
|
91
|
+
## Source checkout or unpublished candidate
|
|
88
92
|
|
|
89
93
|
Build the public source checkout:
|
|
90
94
|
|
package/docs/LANGUAGES.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Language and ecosystem roadmap
|
|
2
2
|
|
|
3
|
+
The [setup guide](ONBOARDING.md) describes conservative
|
|
4
|
+
per-language configuration proposals and static tool diagnosis. Setup does not
|
|
5
|
+
extend the execution capabilities or native evidence listed below.
|
|
6
|
+
|
|
3
7
|
Capability levels are discovery, planning, execution, structured evidence,
|
|
4
8
|
semantic rules, and integration validation. None implies the next. This file's
|
|
5
9
|
initial scope column describes the experimental implementation. Node, Python,
|
|
@@ -111,3 +115,13 @@ skip, so its aggregate pass count is not evidence for every native profile.
|
|
|
111
115
|
The prepared CI language profiles and native container helpers require exact
|
|
112
116
|
regression names through `NATIVE-CI.md`. Their required results are separate from
|
|
113
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
|
+
the adapter's `--noCheck` option; this older version is not verified support.
|
|
122
|
+
Go platform exclusions remain inconclusive even when native tests exit zero.
|
|
123
|
+
|
|
124
|
+
The unreleased [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.
|
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,
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Project setup
|
|
2
|
+
|
|
3
|
+
These commands are available in `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.
|
|
10
|
+
|
|
11
|
+
## Preview and create a policy
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
checktrail init --root "$PWD"
|
|
15
|
+
checktrail init --root "$PWD" --write
|
|
16
|
+
checktrail doctor --root "$PWD" --detailed
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`init` returns JSON with a proposed `configuration`. The preview changes nothing.
|
|
20
|
+
`--write` creates `checktrail.json` only when every discovered ecosystem has a
|
|
21
|
+
selected supported check, publishing complete contents without replacing an
|
|
22
|
+
existing file. A valid existing policy returns `preserved`, retaining its bytes,
|
|
23
|
+
packs, environment requirements and workspace graph. Invalid policies, directories
|
|
24
|
+
and symlinks are errors and remain untouched. There is no overwrite option.
|
|
25
|
+
|
|
26
|
+
The preview includes relative project paths, groups ecosystems sharing a directory
|
|
27
|
+
and preserves nested project boundaries. It does not infer workspace dependencies,
|
|
28
|
+
grant execution, install tools, run scripts or import project code. Use `doctor`
|
|
29
|
+
and the detailed plan to inspect prerequisites before running validation.
|
|
30
|
+
|
|
31
|
+
| Ecosystem | Initial selection |
|
|
32
|
+
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| JavaScript / TypeScript | Exact test scripts `node --test`, `vitest run`, `jest`, or `playwright test`; other commands need selection. Linters and type checks require explicit selection. |
|
|
34
|
+
| Python | Explicit runner/check selection required; a manifest cannot identify a test framework. |
|
|
35
|
+
| Go | Existing format, vet and test defaults. |
|
|
36
|
+
| PHP | Syntax only; tests and analysis require explicit selection. |
|
|
37
|
+
| Rust, Java, C#, Ruby, Swift, C/C++ | Existing bounded adapter defaults; profiles, tools and dependencies still need preparation. |
|
|
38
|
+
| Infrastructure | GitHub Actions checking where applicable; other infrastructure remains an unresolved gap. |
|
|
39
|
+
|
|
40
|
+
`needs-selection` exits `2`, returns no partial configuration and writes nothing.
|
|
41
|
+
Its `unresolved` entries list paths, ecosystems and registered choices; those
|
|
42
|
+
choices do not promise tools are installed or applicable to every source file.
|
|
43
|
+
Repeated `--check PATH#CHECK_ID` arguments select the complete check set for a path:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
checktrail init --root "$PWD" --check '.#python.pytest' --check '.#python.ruff'
|
|
47
|
+
checktrail init --root "$PWD" --check '.#python.pytest' --check '.#python.ruff' --write
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Paths must exactly match discovered roots. For a polyglot directory, include
|
|
51
|
+
checks for every discovered ecosystem there. Unmentioned paths keep defaults.
|
|
52
|
+
Unknown and duplicate IDs are errors. Setup never silently drops unsupported
|
|
53
|
+
ecosystems. External adapters and private overlays are supported by planning and
|
|
54
|
+
diagnosis but are not generated by `init`.
|
|
55
|
+
|
|
56
|
+
## Diagnose setup without execution
|
|
57
|
+
|
|
58
|
+
`doctor` reuses the planner. It reports invalid configuration, unavailable checks,
|
|
59
|
+
missing/non-executable programs, invalid JS tool metadata, missing required
|
|
60
|
+
environment, empty plans, unsupported platforms and ecosystems omitted by policy.
|
|
61
|
+
An intentionally narrowed policy can therefore produce `unselected-project`.
|
|
62
|
+
|
|
63
|
+
Executable checks use the effective PATH and file permissions. Diagnosis never
|
|
64
|
+
runs version commands, imports modules, boots frameworks or runs tests. Prepare
|
|
65
|
+
native tools and activate Python environments on the PATH used for validation.
|
|
66
|
+
|
|
67
|
+
Output always includes `validationPerformed: false` and unverified runtime
|
|
68
|
+
properties. `no-static-blockers` exits `0`; `attention-required` exits `2`.
|
|
69
|
+
Neither means validation passed. Tool compatibility, importable modules, services
|
|
70
|
+
and execution results still need a trusted `run`.
|
|
71
|
+
|
|
72
|
+
Summary output omits paths and raw errors. `--detailed` adds paths and diagnostic
|
|
73
|
+
details that can contain absolute paths. Supported options include
|
|
74
|
+
`--policy-overlay`, pinned `--adapter` references and `--allow-env NAME`.
|
|
75
|
+
Environment values are not printed. Git selection and execution flags are rejected.
|
|
76
|
+
|
|
77
|
+
## Generate MCP configuration
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
checktrail mcp-config --root "$PWD" --client codex
|
|
81
|
+
checktrail mcp-config --root "$PWD" --client claude-code
|
|
82
|
+
checktrail mcp-config --root "$PWD" --client claude-desktop
|
|
83
|
+
checktrail mcp-config --root "$PWD" --client cursor
|
|
84
|
+
checktrail mcp-config --root "$PWD" --client vscode
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Output is JSON containing `format` and a `configuration` string. Merge the decoded
|
|
88
|
+
string's server entry into the appropriate client configuration. The generator
|
|
89
|
+
never opens or overwrites client files. Do not redirect the JSON envelope over
|
|
90
|
+
an existing configuration.
|
|
91
|
+
|
|
92
|
+
| Client | Generated format / location |
|
|
93
|
+
| -------------- | ------------------------------------------------------------- |
|
|
94
|
+
| Codex | TOML `mcp_servers.checktrail`; Codex `config.toml`. |
|
|
95
|
+
| Claude Code | JSON `mcpServers.checktrail`; project `.mcp.json`. |
|
|
96
|
+
| Claude Desktop | JSON `mcpServers.checktrail`; developer MCP configuration. |
|
|
97
|
+
| Cursor | JSON `mcpServers.checktrail`; `.cursor/mcp.json`. |
|
|
98
|
+
| VS Code | JSON `servers.checktrail`, `type: stdio`; `.vscode/mcp.json`. |
|
|
99
|
+
|
|
100
|
+
Snippets capture the canonical absolute root and pin the generating engine version
|
|
101
|
+
in `npx --yes --ignore-scripts @stsepelin/checktrail@VERSION serve`. Execution
|
|
102
|
+
and detailed output remain disabled; client trust settings still apply. Roots
|
|
103
|
+
containing `${` are rejected because client interpolation could change the root.
|
|
104
|
+
|
|
105
|
+
Generation needs no network; starting npx may download the pinned package. The
|
|
106
|
+
version must be published first. For an unpublished candidate, use its installed
|
|
107
|
+
absolute `checktrail` executable with `serve --root /absolute/project` instead.
|
|
108
|
+
After reviewing an update, regenerate/merge the entry and restart the client.
|
|
109
|
+
Updating a global CLI does not change an npx version pin.
|
|
110
|
+
|
|
111
|
+
Formats follow official [Codex](https://developers.openai.com/codex/mcp/),
|
|
112
|
+
[Claude Code](https://code.claude.com/docs/en/mcp),
|
|
113
|
+
[Cursor](https://cursor.com/docs/mcp), and
|
|
114
|
+
[VS Code](https://code.visualstudio.com/docs/agent-customization/mcp-servers)
|
|
115
|
+
documentation. Generation is not proof of a client connection; [CLIENTS.md](CLIENTS.md)
|
|
116
|
+
records tested application profiles and limits.
|
|
117
|
+
|
|
118
|
+
## Upgrade and rollback verification
|
|
119
|
+
|
|
120
|
+
Build and prepare the npm cache for both reviewed artifacts, then run:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
node scripts/verify-package-upgrade.mjs /absolute/baseline.tgz /absolute/candidate.tgz
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The verifier installs baseline → candidate → baseline into one isolated consumer
|
|
127
|
+
offline with lifecycle scripts disabled. Each stage checks the CLI version,
|
|
128
|
+
planning, a native Node test, MCP planning and denied untrusted execution. Project
|
|
129
|
+
source, policy and existing client configuration must remain byte-identical.
|
|
130
|
+
The candidate must preserve the policy through `init --write`, diagnose it, and
|
|
131
|
+
import the baseline report through SARIF export. Output records artifact hashes
|
|
132
|
+
and measured stages. This exercises a synthetic Node workflow, not migration of
|
|
133
|
+
every language/tool profile.
|
|
@@ -0,0 +1,116 @@
|
|
|
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
|
+
## Unreleased follow-up
|
|
59
|
+
|
|
60
|
+
The [compiler compatibility fix](TYPESCRIPT.md) now passes a known-case mitt replay
|
|
61
|
+
with TypeScript 4.9.5 through a locally packed CLI, library and MCP. The observations
|
|
62
|
+
above still describe published alpha.2; they are not replaced by the fixed source
|
|
63
|
+
checkout's results. Workflow/documentation setup and Go platform coverage remain
|
|
64
|
+
separate work.
|
|
65
|
+
|
|
66
|
+
## Reproduce
|
|
67
|
+
|
|
68
|
+
Use macOS arm64 with Node 26.8.1 and Go 1.27.1 to reproduce the recorded host
|
|
69
|
+
profile. PHP and Python use the image identities in the measurement record;
|
|
70
|
+
Docker execution disables networking and mounts project inputs read-only.
|
|
71
|
+
The host does not impose an OS network sandbox. No Sail is used.
|
|
72
|
+
|
|
73
|
+
Download the tarball and `SHA256SUMS` from the
|
|
74
|
+
[alpha.2 GitHub release](https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.2),
|
|
75
|
+
then verify SHA-256
|
|
76
|
+
`ffd0564f40a12a238a52fe25fe8c34fb36cf6f6480be7b6994bab82a3bd657fb`.
|
|
77
|
+
The original measurement installed the exact version from npm; reproduction
|
|
78
|
+
installs that same verified tarball with lifecycle scripts disabled.
|
|
79
|
+
|
|
80
|
+
```sh
|
|
81
|
+
node scripts/prepare-public-adoption.mjs /new/adoption-directory /absolute/release.tgz
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Preparation downloads pinned public Git revisions and installs the engine and
|
|
85
|
+
explicit TypeScript tools. It does not run upstream package scripts. The TypeScript
|
|
86
|
+
tool profile is compiler 4.9.5 plus `@types/chai` 4.3.20, `@types/mocha` 7.0.2,
|
|
87
|
+
`@types/sinon` 9.0.11 and `@types/sinon-chai` 3.2.12. The preparation lockfile records
|
|
88
|
+
transitive dependency resolutions; it is not an upstream lockfile or a claim that
|
|
89
|
+
all upstream build/test dependencies were installed.
|
|
90
|
+
|
|
91
|
+
Prepare the Python/Node image using `scripts/external-tools.Dockerfile`, and the
|
|
92
|
+
PHP/Node image using `scripts/adoption-php.Dockerfile`. Compare local image IDs
|
|
93
|
+
with the record. A rebuilt image may have a different ID: a run with different
|
|
94
|
+
image bytes is a new environment observation, not a reproduction of that exact
|
|
95
|
+
runtime. The recorded Python image must already be present for this harness.
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
docker build --network=none --pull=false -f scripts/adoption-php.Dockerfile -t checktrail-adoption-php:alpha2 scripts
|
|
99
|
+
CHECKTRAIL_ADOPTION_PHP_IMAGE="$(docker image inspect checktrail-adoption-php:alpha2 --format '{{.Id}}')" \
|
|
100
|
+
node scripts/measure-public-adoption.mjs /new/adoption-directory /absolute/release.tgz
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Measurement downloads nothing. It verifies installed engine files against the
|
|
104
|
+
reviewed artifact, checks upstream revisions and tracked hashes, measures both
|
|
105
|
+
policy scopes, compares native accounting, and applies/removes the original
|
|
106
|
+
controls. mitt's generated declaration is prepared separately with the installed
|
|
107
|
+
compiler and removed afterwards. Fresh checkouts are required for another run;
|
|
108
|
+
the harness preserves detailed local evidence and created policies for inspection.
|
|
109
|
+
|
|
110
|
+
Raw process outputs stay under the prepared directory's `observations/` folder.
|
|
111
|
+
The committed record contains relative file names, counts, diagnostic codes,
|
|
112
|
+
versions, hashes, outcomes and timing observations, not source or raw tool prose.
|
|
113
|
+
Timings include CLI/process startup and, for containers, Docker invocation; cache
|
|
114
|
+
state, native/wrapper order and scheduling are uncontrolled. They do not support
|
|
115
|
+
a representative speed comparison. No model is invoked and no prior human/model
|
|
116
|
+
review workflow is compared.
|
package/docs/RELEASE.md
CHANGED
|
@@ -1,12 +1,42 @@
|
|
|
1
1
|
# Release preparation
|
|
2
2
|
|
|
3
3
|
The source is public at [stsepelin/checktrail](https://github.com/stsepelin/checktrail);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
`@stsepelin/checktrail@0.1.0-alpha.2` is published on npm. Its downloaded artifact
|
|
5
|
+
matched the reviewed tarball with SHA-256
|
|
6
|
+
`ffd0564f40a12a238a52fe25fe8c34fb36cf6f6480be7b6994bab82a3bd657fb`.
|
|
7
|
+
Fresh registry installation, CLI/library validation, generated npx startup with
|
|
8
|
+
fresh/warm caches and MCP pass/fail/incomplete results were verified. Alpha.2 adds
|
|
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.
|
|
10
40
|
|
|
11
41
|
## Prepared artifacts
|
|
12
42
|
|
|
@@ -24,8 +54,8 @@ publishing workflow are stored in this repository.
|
|
|
24
54
|
loads the installed metadata and verifies its actual startup command.
|
|
25
55
|
- CI definitions cover the host suite and prepared native profiles. Local
|
|
26
56
|
containers and package checks are evidence only for the environments actually
|
|
27
|
-
exercised.
|
|
28
|
-
|
|
57
|
+
exercised. The [hosted run at 4ce8398](https://github.com/stsepelin/checktrail/actions/runs/35590670960)
|
|
58
|
+
passed all jobs for the alpha.2 release commit. The local Claude Code health/discovery and
|
|
29
59
|
Codex direct app-server profiles have fresh-install evidence in `CLIENTS.md`.
|
|
30
60
|
|
|
31
61
|
The metadata follows the official registry
|
|
@@ -61,7 +91,7 @@ After explicit approval and npm authentication for the `@stsepelin` scope, publi
|
|
|
61
91
|
the approved file, not a newly packed working tree:
|
|
62
92
|
|
|
63
93
|
```sh
|
|
64
|
-
npm publish /absolute/path/stsepelin-checktrail-0.1.0-alpha.
|
|
94
|
+
npm publish /absolute/path/stsepelin-checktrail-0.1.0-alpha.3.tgz \
|
|
65
95
|
--tag next --access public --ignore-scripts --registry=https://registry.npmjs.org
|
|
66
96
|
```
|
|
67
97
|
|
|
@@ -93,6 +123,8 @@ GitHub private vulnerability reporting is enabled. Use the channel linked in
|
|
|
93
123
|
Run the corresponding native verification helpers for every advertised profile.
|
|
94
124
|
Record actual tool/platform results and explicit skips. Repeat registry schema
|
|
95
125
|
validation against its pinned bytes.
|
|
126
|
+
Run `scripts/verify-package-upgrade.mjs` with the reviewed previous and candidate
|
|
127
|
+
tarballs to verify offline upgrade, policy/report compatibility and rollback.
|
|
96
128
|
3. Inspect the exact tarball and its SHA-256, its source revision, dependency/notice
|
|
97
129
|
report, package allowlist, public examples and documentation. The smoke helper
|
|
98
130
|
compares repeated packing of the same checkout and tests a fresh offline install;
|
package/docs/SKILLS.md
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Install agent skills with npx skills
|
|
2
|
+
|
|
3
|
+
Checktrail provides portable workflows for setup, validation and review:
|
|
4
|
+
|
|
5
|
+
| Skill | Use it for |
|
|
6
|
+
| --------------------- | ------------------------------------------------------------------------------ |
|
|
7
|
+
| `checktrail-setup` | Configure project roots, select supported language checks and connect MCP |
|
|
8
|
+
| `checktrail-validate` | Run authorized checks and distinguish passed, failed and incomplete evidence |
|
|
9
|
+
| `checktrail-review` | Review code and test adequacy using validation evidence and advisory questions |
|
|
10
|
+
|
|
11
|
+
Each skill is self-contained in `skills/<name>/SKILL.md` and follows the
|
|
12
|
+
[Agent Skills format](https://agentskills.io/specification). The
|
|
13
|
+
[Vercel skills CLI](https://github.com/vercel-labs/skills) installs these folders
|
|
14
|
+
from GitHub. No Checktrail plugin or separate skills registry registration is
|
|
15
|
+
required for installation by repository URL.
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
These GitHub commands require the `skills/` directory to be present on the public
|
|
20
|
+
repository's default branch. For an unpublished checkout, use the local command
|
|
21
|
+
below. Listing the remote source first verifies what is available:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
npx skills add stsepelin/checktrail --list
|
|
25
|
+
npx skills add stsepelin/checktrail
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The interactive installer lets you choose skills and target agents. For an
|
|
29
|
+
explicit project installation, run from the repository where you want to use
|
|
30
|
+
Checktrail:
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
npx skills add stsepelin/checktrail \
|
|
34
|
+
--skill checktrail-setup checktrail-validate checktrail-review \
|
|
35
|
+
--agent codex claude-code cursor
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Choose only the agents you use. Add `--global` for a personal installation shared
|
|
39
|
+
across projects, or `--yes` when deliberately skipping installer prompts. The
|
|
40
|
+
default installation uses project directories; it does not configure an MCP server.
|
|
41
|
+
Use `--copy` if independent copies are preferable to the installer's default links.
|
|
42
|
+
|
|
43
|
+
To install from a local checkout before pushing, substitute its absolute path:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
npx skills add /absolute/path/to/checktrail --skill checktrail-validate --agent codex
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The CLI's agent target names are installer options, not evidence that Checktrail
|
|
50
|
+
has been tested end-to-end in every editor. See [client coverage](CLIENTS.md).
|
|
51
|
+
Reload skills or start a new session as required by the selected agent. Example
|
|
52
|
+
requests are "Set up Checktrail for this repository", "Validate these changes
|
|
53
|
+
with Checktrail", and "Review this diff using Checktrail evidence".
|
|
54
|
+
|
|
55
|
+
## Install the engine separately
|
|
56
|
+
|
|
57
|
+
`npx skills` installs instructions. It does not install the npm engine, native
|
|
58
|
+
language tools, an MCP server, or execution permissions. The skills support an
|
|
59
|
+
existing MCP connection or the CLI, including the published preview:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
npx --yes --ignore-scripts @stsepelin/checktrail@0.1.0-alpha.1 plan --root /absolute/project
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use Node.js 22+ on macOS or Linux. See [installation](INSTALLATION.md) for persistent
|
|
66
|
+
CLI installation, MCP registration and operator-controlled execution. Skills do
|
|
67
|
+
not expand native language coverage, grant trust, or replace required CI checks.
|
|
68
|
+
|
|
69
|
+
## Update and remove
|
|
70
|
+
|
|
71
|
+
For GitHub-installed project skills, update just Checktrail's workflows:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
npx skills update checktrail-setup checktrail-validate checktrail-review --project
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Use `--global` instead of `--project` for a global installation. Updates replace
|
|
78
|
+
installed instructions; keep project-specific policy in your project's own files.
|
|
79
|
+
Retain and review the project installation's `skills-lock.json` and file changes.
|
|
80
|
+
For local-path installations, re-run `skills add` against the updated checkout.
|
|
81
|
+
|
|
82
|
+
The installer version used for local verification is `skills@1.7.0`. It aliases
|
|
83
|
+
`skills check` to `skills update`; do not use `check` as a read-only update probe.
|
|
84
|
+
Use `npx skills list` to inspect installed skills. Pin the installer itself with
|
|
85
|
+
`npx skills@1.7.0` when reproducing the installation checks.
|
|
86
|
+
|
|
87
|
+
Skill updates and engine updates are separate. The skills declare the Checktrail
|
|
88
|
+
version they target. To update the engine, deliberately select a compatible npm
|
|
89
|
+
version and restart the MCP process. Updating skills never changes its root,
|
|
90
|
+
execution grant or output disclosure settings. For a reproducible skill revision,
|
|
91
|
+
install from a reviewed GitHub tree URL containing a commit SHA and the selected
|
|
92
|
+
skill path; re-add that same revision to roll back. Do not treat following a branch
|
|
93
|
+
as an immutable pin.
|
|
94
|
+
|
|
95
|
+
Remove the project skills with:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
npx skills remove checktrail-setup checktrail-validate checktrail-review
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Add `--global` for a global removal. This removes skills, not the separately
|
|
102
|
+
installed engine or MCP configuration.
|
|
103
|
+
|
|
104
|
+
## Verification boundaries
|
|
105
|
+
|
|
106
|
+
Local checks exercise discovery, selective installation, copy/link destinations,
|
|
107
|
+
file integrity, reinstallation from an updated local source and removal in
|
|
108
|
+
temporary projects. They do not modify personal agent installations. Skill format
|
|
109
|
+
validation does not prove model behavior or improved review quality. Installation
|
|
110
|
+
from the public GitHub source and remote update verification require the changes
|
|
111
|
+
to be pushed; a local installation is not evidence of either.
|
|
112
|
+
|
|
113
|
+
Reproduce the installation checks from the Checktrail checkout:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
npm install --prefix .checktrail/skills-tools --ignore-scripts --no-audit --no-fund \
|
|
117
|
+
--package-lock=false --save-exact skills@1.7.0
|
|
118
|
+
node scripts/verify-skills-install.mjs .checktrail/skills-tools/node_modules/skills/bin/cli.mjs
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The helper uses temporary project and installer-state directories, exercises the
|
|
122
|
+
real installer, and removes its fixtures afterward. It does not run a model,
|
|
123
|
+
register MCP, install global skills, or invoke remote skill updates.
|