musubix3 0.1.2 → 0.1.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/.github/plugin/marketplace.json +2 -2
- package/.github/skills/sdd-change/SKILL.md +2 -2
- package/.github/skills/sdd-formal-codegraph/SKILL.md +6 -6
- package/.github/skills/sdd-implementation/SKILL.md +4 -2
- package/.github/skills/sdd-quality/SKILL.md +4 -4
- package/.github/skills/sdd-traceability/SKILL.md +6 -2
- package/CHANGELOG.md +39 -0
- package/README-ja.md +121 -40
- package/README.md +104 -41
- package/dist/packages/analysis/src/adapters.js +134 -7
- package/dist/packages/analysis/src/adapters.js.map +1 -1
- package/dist/packages/analysis/src/config.d.ts +1 -1
- package/dist/packages/analysis/src/config.js +4 -3
- package/dist/packages/analysis/src/config.js.map +1 -1
- package/dist/packages/analysis/src/files.js +13 -1
- package/dist/packages/analysis/src/files.js.map +1 -1
- package/dist/packages/analysis/src/graph.d.ts +1 -0
- package/dist/packages/analysis/src/graph.js +673 -10
- package/dist/packages/analysis/src/graph.js.map +1 -1
- package/dist/packages/analysis/src/model-correspondence.js +5 -5
- package/dist/packages/analysis/src/model-correspondence.js.map +1 -1
- package/dist/packages/analysis/src/mutation.d.ts +1 -1
- package/dist/packages/analysis/src/mutation.js +11 -2
- package/dist/packages/analysis/src/mutation.js.map +1 -1
- package/dist/packages/analysis/src/performance.js +3 -5
- package/dist/packages/analysis/src/performance.js.map +1 -1
- package/dist/packages/analysis/src/process.js +3 -2
- package/dist/packages/analysis/src/process.js.map +1 -1
- package/dist/packages/analysis/src/tdd.js +7 -1
- package/dist/packages/analysis/src/tdd.js.map +1 -1
- package/dist/packages/analysis/src/trace.js +60 -8
- package/dist/packages/analysis/src/trace.js.map +1 -1
- package/dist/packages/analysis/src/workflow.d.ts +9 -0
- package/dist/packages/analysis/src/workflow.js +106 -2
- package/dist/packages/analysis/src/workflow.js.map +1 -1
- package/dist/packages/cli/src/main.js +17 -2
- package/dist/packages/cli/src/main.js.map +1 -1
- package/dist/packages/domain/src/constitution.d.ts +1 -1
- package/dist/packages/domain/src/constitution.js +1 -0
- package/dist/packages/domain/src/constitution.js.map +1 -1
- package/dist/packages/domain/src/requirements.js +6 -6
- package/dist/packages/domain/src/requirements.js.map +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
package/README.md
CHANGED
|
@@ -1,41 +1,78 @@
|
|
|
1
1
|
# musubix3
|
|
2
2
|
|
|
3
|
-
**Latest
|
|
3
|
+
**Latest release v0.1.4 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
|
|
4
4
|
|
|
5
5
|
[日本語](README-ja.md)
|
|
6
6
|
|
|
7
|
-
[What changed from musubix2 to musubix3 (Japanese)](MUSUBIX2-TO-MUSUBIX3.md)
|
|
7
|
+
[What changed from musubix2 to musubix3 (Japanese)](docs/MUSUBIX2-TO-MUSUBIX3.md)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
GitHub Copilot can plan, generate, edit, test, and review software. musubix3
|
|
10
|
+
adds repository-local specifications plus deterministic, fail-closed checks
|
|
11
|
+
over the evidence required by the repository's configured quality profile:
|
|
10
12
|
requirements → constitution → design/ADRs → implementation → traceability →
|
|
11
|
-
quality evidence.
|
|
12
|
-
local knowledge retrieval support the workflow.
|
|
13
|
+
quality evidence.
|
|
13
14
|
|
|
14
15
|
Learned from [musubix2](https://github.com/nahisaho/musubix2)'s concepts, rebuilt
|
|
15
16
|
cleanly in three workspaces. No artifact compatibility or migration is promised.
|
|
16
17
|
This repository does **not** guarantee correctness simply because IDs are linked
|
|
17
18
|
or requirements are satisfiable.
|
|
18
19
|
|
|
19
|
-
##
|
|
20
|
+
## Why GitHub Copilot alone is not enough
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
Copilot is the implementation engine. It understands a request, explores the
|
|
23
|
+
repository, proposes a plan, edits files, runs tools, and explains the result.
|
|
24
|
+
That is necessary, but a successful conversation is not durable proof that:
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
- the implemented behavior matches an explicit, measurable requirement;
|
|
27
|
+
- every requirement is connected to design, code, and an authoritative test;
|
|
28
|
+
- Red really failed before Green passed without the test being rewritten;
|
|
29
|
+
- test, graph, formal, and quality results still match the current source;
|
|
30
|
+
- a requirement change propagated through all affected artifacts in order;
|
|
31
|
+
- a policy was not weakened merely to make the final gate pass.
|
|
32
|
+
|
|
33
|
+
Conversation text such as “tests passed” or “implementation complete” is not
|
|
34
|
+
enough because it can become stale, omit scope, or disappear outside the
|
|
35
|
+
repository. Copilot should remain responsible for reasoning and development;
|
|
36
|
+
musubix3 makes the completion criteria persistent and machine-checkable.
|
|
37
|
+
|
|
38
|
+
| GitHub Copilot provides | musubix3 complements it with |
|
|
39
|
+
|---|---|
|
|
40
|
+
| Planning, coding, refactoring, and tool execution | Repository-local SDD Skills that require explicit requirements, design decisions, implementation links, and completion conditions |
|
|
41
|
+
| Test generation and runner execution | Structured TEST identities, native-report normalization, and verified Red/Green/Refactor evidence |
|
|
42
|
+
| Explanations of what changed | Typed requirement → design → code → test traceability and bidirectional impact analysis |
|
|
43
|
+
| Repository exploration | Deterministic Code Graph indexing, unresolved-local dependency diagnostics, and architecture gates |
|
|
44
|
+
| Suggestions for constraints and invariants | Optional Z3/Lean consistency checks and model-to-passing-test correspondence |
|
|
45
|
+
| A session-level completion report | Freshness, fingerprints, input-stability checks, protected policy baselines, attestations, and a fail-closed readiness gate |
|
|
46
|
+
|
|
47
|
+
musubix3 does **not** replace Copilot, add another coding agent, or claim that
|
|
48
|
+
formal satisfiability proves implementation correctness. Copilot performs the
|
|
49
|
+
development; musubix3 records the specification, checks the evidence, rejects
|
|
50
|
+
stale or incomplete required evidence, and leaves a reviewable answer to “why
|
|
51
|
+
does this repository's configured policy consider the change ready?”
|
|
52
|
+
|
|
53
|
+
## Quick start
|
|
29
54
|
|
|
30
55
|
For a reproducible project-local installation:
|
|
31
56
|
|
|
32
57
|
```sh
|
|
33
|
-
npm install --save-dev --save-exact musubix3@
|
|
58
|
+
npm install --save-dev --save-exact musubix3@latest
|
|
34
59
|
npx --no-install musubix3 --version
|
|
35
60
|
npx --no-install musubix3 init --dry-run
|
|
36
61
|
npx --no-install musubix3 init
|
|
62
|
+
copilot
|
|
37
63
|
```
|
|
38
64
|
|
|
65
|
+
For a one-time evaluation without pinning subsequent Skill-driven CLI runs:
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
npx musubix3@latest --version
|
|
69
|
+
npx musubix3@latest init --dry-run
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Install the exact local dependency before relying on generated Skills in
|
|
73
|
+
continued development; their commands intentionally use the repository-local
|
|
74
|
+
`npx --no-install musubix3` executable.
|
|
75
|
+
|
|
39
76
|
To build the repository itself:
|
|
40
77
|
|
|
41
78
|
```sh
|
|
@@ -78,7 +115,8 @@ install the npm package separately when running `npx musubix3` commands.
|
|
|
78
115
|
|
|
79
116
|
From an installed npm package, `npx musubix3 plugin-install` delegates directly to
|
|
80
117
|
`copilot plugin install <absolute-package-root>`. It does not edit Copilot
|
|
81
|
-
internals. For a durable local plugin path, prefer
|
|
118
|
+
internals. For a durable local plugin path, prefer
|
|
119
|
+
`npm install --save-dev --save-exact musubix3@latest`
|
|
82
120
|
and `npx --no-install musubix3 plugin-install` over an ephemeral npx cache.
|
|
83
121
|
|
|
84
122
|
### Native marketplace
|
|
@@ -95,8 +133,9 @@ These flows use the [native plugin interface](https://docs.github.com/en/copilot
|
|
|
95
133
|
|
|
96
134
|
### Repository-local skills / npm installer
|
|
97
135
|
|
|
98
|
-
Run `npx musubix3 init`
|
|
99
|
-
there yourself. Start Copilot in that trusted project.
|
|
136
|
+
Run `npx --no-install musubix3 init` after installing the exact local dependency,
|
|
137
|
+
or copy `.github/skills/sdd-*` there yourself. Start Copilot in that trusted project.
|
|
138
|
+
`init --root <dir>` targets
|
|
100
139
|
another project; `--feature <slug>` changes the starter directory and ID prefix.
|
|
101
140
|
Installing another feature does not reset existing configuration.
|
|
102
141
|
|
|
@@ -189,8 +228,10 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
|
|
|
189
228
|
| `model-correspondence validate` | Revalidate Formal JSON → generated trace → authoritative passing test evidence |
|
|
190
229
|
| `evidence refresh [--changed]` | Regenerate derived evidence through the same fail-closed gate pipeline |
|
|
191
230
|
| `mutation validate` | Revalidate requirement-scoped schema-v1 killed-mutant evidence |
|
|
231
|
+
| `tdd validate` | Validate persisted Red/Green/Refactor order, fingerprints, durations, and hash-chain evidence |
|
|
192
232
|
| `tdd red\|green\|refactor <TEST-ID> --requirement <REQ-ID> --command <name>` | Execute and record a verified TDD phase |
|
|
193
233
|
| `workflow-record <skill> <phase> --status <status>` | Record a compact self-reported workflow declaration |
|
|
234
|
+
| `workflow-sanitize <copilot.jsonl> <output-file> [--session-id <uuid>]` | Remove messages and non-Skill tool data before review or strict verification |
|
|
194
235
|
| `workflow-verify <copilot.jsonl> [--strict] [--session-id <uuid>]` | Reconcile Skill events; optionally require a complete successful session transcript |
|
|
195
236
|
| `attestation oidc-audience --key-id <id> [--public-key-file <pem>]` | Derive the GitHub custom audience that authorizes a signing key |
|
|
196
237
|
| `attestation payload --provider <name> --run-id <id> --key-id <id> [--public-key-file <pem>] [--github-oidc-token-file <jwt>]` | Emit canonical unsigned CI payload for external signing |
|
|
@@ -227,7 +268,7 @@ requires `tdd`; a `.musubix/changes/CHANGE-*.md` document additionally requires
|
|
|
227
268
|
changes.json # staged change checkpoints
|
|
228
269
|
order.json # shared monotonic TDD/change chronology ledger
|
|
229
270
|
performance.json # deterministic operation-budget observations
|
|
230
|
-
model-correspondence.json # Formal model → trace → fresh passing
|
|
271
|
+
model-correspondence.json # Formal model → trace → fresh passing-test correspondence evidence
|
|
231
272
|
mutation.json # fresh requirement-scoped mutation executions
|
|
232
273
|
attestation.json # optional externally signed CI provenance
|
|
233
274
|
cache/ # ignored; generated indexes and solver inputs
|
|
@@ -279,9 +320,11 @@ Where/While/When clauses. Japanese controlled forms are documented in
|
|
|
279
320
|
[README-ja.md](README-ja.md). These are syntax checks, not natural-language
|
|
280
321
|
understanding; arbitrary prose is deliberately rejected.
|
|
281
322
|
|
|
282
|
-
Source/test trace annotations are read from comments
|
|
283
|
-
|
|
284
|
-
|
|
323
|
+
Source/test trace annotations are read from language comments. JS/TS uses
|
|
324
|
+
parser-aware comment locations; Haskell supports `--` and `{- ... -}`, Lua
|
|
325
|
+
supports `--` and `--[[ ... ]]`, and Visual Basic supports apostrophe comments
|
|
326
|
+
including `'''` XML documentation. These scanners exclude string literals;
|
|
327
|
+
other languages require their supported line or block comments:
|
|
285
328
|
|
|
286
329
|
```ts
|
|
287
330
|
/** @id CODE-AUTH-001
|
|
@@ -380,7 +423,10 @@ Use `tdd.redPreflightCommands` to reference plain configured formatter commands;
|
|
|
380
423
|
they must pass before Red captures the authoritative test fingerprint.
|
|
381
424
|
Conventional `.venv` and `venv` Python environments containing a regular
|
|
382
425
|
`pyvenv.cfg` are excluded from source snapshots and Code Graph indexing.
|
|
383
|
-
|
|
426
|
+
Gradle `.gradle/`, Dart `.dart_tool/`, SwiftPM `.build/`, Zig
|
|
427
|
+
`.zig-cache/`/`zig-out/`, and .NET `.dotnet/` CLI homes are excluded only when
|
|
428
|
+
their parent contains the corresponding project manifest. Arbitrary same-named
|
|
429
|
+
source directories remain tracked.
|
|
384
430
|
`codeGraph.mode` defaults to `compatible`, where unresolved computed
|
|
385
431
|
`import()`/`require()` calls remain warnings. Set it to `strict` to make those
|
|
386
432
|
diagnostics gate-blocking errors. A trusted strict policy baseline prevents
|
|
@@ -416,15 +462,18 @@ failure or skip blocks readiness regardless of `requiredChecks.commands`.
|
|
|
416
462
|
Optional command failures are nonblocking unless a constitution rule rejects the
|
|
417
463
|
measured count. No configured commands is skipped, not passed.
|
|
418
464
|
TDD commands require either command-specific `tddArgs` plus a `tddReport`, or a
|
|
419
|
-
built-in `vitest`, `jest`, `pytest`, `go-test`, `cargo`, or `
|
|
465
|
+
built-in `vitest`, `jest`, `pytest`, `go-test`, `cargo`, `junit`, or `dotnet` adapter.
|
|
420
466
|
Explicit custom configuration takes precedence. Adapters derive targeted
|
|
421
467
|
arguments and normalize native JSON/JSONL/XML into `musubix-json`. Vitest/Jest
|
|
422
468
|
reports may contain unrelated skipped tests; targeted TDD selects only the
|
|
423
469
|
requested ID. pytest requires the JSON-report plugin and underscore-form test
|
|
424
470
|
names such as `test_TEST_APP_001`. Go uses a `TEST-*` subtest name, Cargo uses a
|
|
425
|
-
Rust identifier such as `test_app_001`. JUnit methods
|
|
426
|
-
`@Tag("TEST-APP-001")
|
|
427
|
-
|
|
471
|
+
Rust identifier such as `test_app_001`. JUnit methods should carry an exact
|
|
472
|
+
`@Tag("TEST-APP-001")` and an ID-bearing method name or `@DisplayName`; the
|
|
473
|
+
normalizer reads both testcase attributes and JUnit Platform display-name output.
|
|
474
|
+
xUnit tests use
|
|
475
|
+
`[Fact(DisplayName = "TEST-APP-001 ...")]` so TRX preserves the identity.
|
|
476
|
+
Before each phase, musubix3 deletes
|
|
428
477
|
the previous report, creates any required report parent directory, and requires a fresh
|
|
429
478
|
`musubix-json` document containing exactly the selected test. Its status must be
|
|
430
479
|
`failed` during Red and `passed` during Green/Refactor; `skipped`, `error`,
|
|
@@ -437,9 +486,10 @@ informational. Legacy chronology without order evidence fails with an explicit
|
|
|
437
486
|
migration diagnostic. Missing, reordered, altered or orphaned records invalidate
|
|
438
487
|
the evidence.
|
|
439
488
|
|
|
440
|
-
CI executes isolated native contracts for
|
|
489
|
+
CI executes isolated native contracts for Vitest, Jest,
|
|
441
490
|
pytest with `pytest-json-report`, Go test, Cargo test, and the pinned JUnit
|
|
442
|
-
Platform Console.
|
|
491
|
+
Platform Console. The .NET adapter consumes standard TRX and is additionally
|
|
492
|
+
validated by unit contracts and the C# application experiment. Each fixture contains an unrelated failing test, proving that
|
|
443
493
|
the generated selector executes only the requested identity and that the real
|
|
444
494
|
native report normalizes correctly. Jest is development-only; the Python,
|
|
445
495
|
Go/Rust, and Java/JUnit tooling is provisioned only in CI and is not shipped as
|
|
@@ -495,6 +545,8 @@ later full gate. `workflow-record` stores a self-reported Skill/phase/status and
|
|
|
495
545
|
optional command SHA-256 without storing command text. `workflow-verify` imports
|
|
496
546
|
only Skill invocation metadata from a Copilot JSONL log and binds every completed
|
|
497
547
|
declaration one-to-one, in order, to a distinct completed successful tool call.
|
|
548
|
+
Use `workflow-sanitize` first when the source transcript contains messages,
|
|
549
|
+
non-Skill tool arguments, or output that should not enter review evidence.
|
|
498
550
|
Each Skill invocation must therefore record exactly one final workflow outcome;
|
|
499
551
|
multi-phase chronology belongs in `change-record`, not duplicate workflow events.
|
|
500
552
|
Incomplete, failed, reused, out-of-order and stale bindings fail.
|
|
@@ -510,8 +562,9 @@ Unrelated concurrent events may be emitted out of timestamp order, so strict mod
|
|
|
510
562
|
checks causal tool/result ordering rather than imposing a global timestamp sort.
|
|
511
563
|
If project inputs change while a gate is running, `input-stability` reports each
|
|
512
564
|
added, modified, or deleted path with before/after SHA-256 values. Standard
|
|
513
|
-
Cargo/Maven `target
|
|
514
|
-
|
|
565
|
+
Cargo/Maven `target/`, manifest-scoped .NET `bin/` and `obj/`, and project-local
|
|
566
|
+
`.nuget/packages/` output are excluded, but source-like generated inputs remain fail-closed.
|
|
567
|
+
Built-in adapters own their targeting and report arguments. A
|
|
515
568
|
legacy leading Cargo/Go `test` subcommand is merged safely; conflicting report
|
|
516
569
|
flags such as `--json-report` are rejected.
|
|
517
570
|
Changes during a gate fail input stability; later source/config changes make
|
|
@@ -560,10 +613,13 @@ Example strict configuration:
|
|
|
560
613
|
}
|
|
561
614
|
```
|
|
562
615
|
|
|
563
|
-
|
|
616
|
+
For normal CLI use, generate an Ed25519 key outside musubix3 and pass only its public PEM to
|
|
564
617
|
`attestation oidc-audience`, request the GitHub Actions OIDC token with that exact
|
|
565
618
|
audience, then pass the public PEM and JWT files to `attestation payload` and sign
|
|
566
|
-
the emitted payload externally. musubix3 never reads or stores
|
|
619
|
+
the emitted payload externally. The `musubix3` CLI never accepts, reads, or stores
|
|
620
|
+
a private key. This repository's release-only automation separately generates an
|
|
621
|
+
ephemeral private key under the ignored `.test-work` directory, uses it for signing,
|
|
622
|
+
and deletes it before invoking CLI verification.
|
|
567
623
|
The short-lived JWT is included in the signed attestation and is intentionally
|
|
568
624
|
checked for current expiration, so verification must occur within its validity
|
|
569
625
|
window. This establishes that GitHub's OIDC identity authorized the signing key
|
|
@@ -608,14 +664,18 @@ transcript/session fields into the Ed25519 signature.
|
|
|
608
664
|
best-effort; symbol impact conservatively expands at **file** level. Nonliteral
|
|
609
665
|
loading is a compatibility warning unless `codeGraph.mode` is `strict`, when
|
|
610
666
|
it blocks graph gates; unresolved external packages remain warnings and
|
|
611
|
-
unresolved local imports are errors. Bundler-specific resolution
|
|
612
|
-
Rust, Python, Go, Java, C/C++,
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
667
|
+
unresolved local imports are errors. Bundler-specific resolution and
|
|
668
|
+
reflection remain out of scope. Rust, Python, Go, Java, Kotlin, C/C++,
|
|
669
|
+
Objective-C/Objective-C++, C#, F#, Visual Basic .NET, Ruby, PHP, Swift, Dart,
|
|
670
|
+
Scala, Elixir, Haskell, Lua, Zig, Solidity, R and Julia have conservative
|
|
671
|
+
native adapters for local imports/modules/includes, declarations and direct
|
|
672
|
+
calls. Other extensions are omitted from graph inputs. Ignored build/cache/dependency directories and
|
|
616
673
|
symlinks are not indexed; custom `.gitignore` rules are not a scan filter.
|
|
617
|
-
-
|
|
618
|
-
|
|
674
|
+
- Remaining architectural work includes evidence-backed strict call-resolution
|
|
675
|
+
ratio policy and broader native test-runner adapter coverage. Neither is
|
|
676
|
+
enabled speculatively by this release.
|
|
677
|
+
- Trace annotation comment syntax is documented above. Do not create JS/TS proxy
|
|
678
|
+
files for another language.
|
|
619
679
|
- Knowledge ranking is **TF-IDF/cosine, not GraphRAG** or semantic reasoning.
|
|
620
680
|
Japanese uses character bigrams. Git co-change and author-directory counts
|
|
621
681
|
cover at most 100 commits/30 files per commit; they indicate correlation and
|
|
@@ -641,8 +701,11 @@ npm run pack:smoke
|
|
|
641
701
|
Workspaces: `packages/domain` (pure validators), `packages/analysis` (evidence,
|
|
642
702
|
compiler and filesystem services), `packages/cli` (thin command/installation layer).
|
|
643
703
|
One build emits `dist/packages/**`. Published contents explicitly include hidden
|
|
644
|
-
skills, native manifests, built CLI/modules and assets. CI
|
|
645
|
-
|
|
704
|
+
skills, native manifests, built CLI/modules and assets. Core CI runs on Node 22
|
|
705
|
+
across Linux, Windows, and macOS, with additional Node 20 and Node 24 compatibility
|
|
706
|
+
checks on Linux. Native adapter and formal-solver integrations run on Linux with
|
|
707
|
+
pinned toolchains. Tests cover unit behavior, CLI exits, installer preservation,
|
|
708
|
+
and packaging.
|
|
646
709
|
`pack:smoke` installs the real tarball into an isolated `.test-work/` consumer,
|
|
647
710
|
checks its executable, ESM exports and installer, then removes the fixture.
|
|
648
711
|
Attestation APIs are available from both `musubix3/analysis` and the focused
|
|
@@ -77,10 +77,21 @@ export function mergeAdapterArgs(adapter, configuredArgs, invocationArgs) {
|
|
|
77
77
|
...(configured.passthrough.length ? ['-args', ...configured.passthrough] : []),
|
|
78
78
|
];
|
|
79
79
|
}
|
|
80
|
+
if (adapter === 'dotnet' && configuredArgs[0] === 'test' && invocationArgs[0] === 'test') {
|
|
81
|
+
const separator = configuredArgs.indexOf('--');
|
|
82
|
+
const commandArgs = separator < 0 ? configuredArgs.slice(1) : configuredArgs.slice(1, separator);
|
|
83
|
+
const runSettings = separator < 0 ? [] : configuredArgs.slice(separator + 1);
|
|
84
|
+
return [
|
|
85
|
+
'test',
|
|
86
|
+
...commandArgs,
|
|
87
|
+
...invocationArgs.slice(1),
|
|
88
|
+
...(separator < 0 ? [] : ['--', ...runSettings]),
|
|
89
|
+
];
|
|
90
|
+
}
|
|
80
91
|
return [...configuredArgs, ...invocationArgs];
|
|
81
92
|
}
|
|
82
93
|
function reportPath(commandName, testId, adapter) {
|
|
83
|
-
const suffix = adapter === 'junit' ? '' : '.json';
|
|
94
|
+
const suffix = adapter === 'junit' || adapter === 'dotnet' ? '' : '.json';
|
|
84
95
|
return testId
|
|
85
96
|
? `.musubix/evidence/native/${commandName}/${testId}${suffix}`
|
|
86
97
|
: `.musubix/evidence/native/${commandName}/aggregate${suffix}`;
|
|
@@ -118,6 +129,18 @@ export function adapterInvocation(adapter, commandName, testId, testPath) {
|
|
|
118
129
|
if (adapter === 'cargo') {
|
|
119
130
|
return { args: ['test', ...testId ? [identifier(testId)] : [], '--', '--format', 'pretty'], reportPath: path, source: 'stdout' };
|
|
120
131
|
}
|
|
132
|
+
if (adapter === 'dotnet') {
|
|
133
|
+
return {
|
|
134
|
+
args: [
|
|
135
|
+
'test',
|
|
136
|
+
'--logger', 'trx;LogFilePrefix=results',
|
|
137
|
+
'--results-directory', path,
|
|
138
|
+
...testId ? ['--filter', `DisplayName~${testId}|Name~${testId}`] : [],
|
|
139
|
+
],
|
|
140
|
+
reportPath: path,
|
|
141
|
+
source: 'directory',
|
|
142
|
+
};
|
|
143
|
+
}
|
|
121
144
|
return {
|
|
122
145
|
args: [
|
|
123
146
|
'--scan-class-path',
|
|
@@ -156,7 +179,7 @@ export async function readAdapterOutput(invocation, absolutePath, stdout) {
|
|
|
156
179
|
const path = `${directory}/${entry.name}`;
|
|
157
180
|
if (entry.isDirectory())
|
|
158
181
|
found.push(...await xmlFiles(path));
|
|
159
|
-
else if (entry.isFile() && entry.name.endsWith('.xml'))
|
|
182
|
+
else if (entry.isFile() && (entry.name.endsWith('.xml') || entry.name.endsWith('.trx')))
|
|
160
183
|
found.push(path);
|
|
161
184
|
}
|
|
162
185
|
return found;
|
|
@@ -176,7 +199,7 @@ function status(value) {
|
|
|
176
199
|
const normalized = String(value).toLowerCase();
|
|
177
200
|
if (['pass', 'passed', 'success', 'ok'].includes(normalized))
|
|
178
201
|
return 'passed';
|
|
179
|
-
if (['skip', 'skipped', 'pending', 'todo', 'ignored'].includes(normalized))
|
|
202
|
+
if (['skip', 'skipped', 'pending', 'todo', 'ignored', 'notexecuted'].includes(normalized))
|
|
180
203
|
return 'skipped';
|
|
181
204
|
if (['error', 'errored'].includes(normalized))
|
|
182
205
|
return 'error';
|
|
@@ -191,6 +214,100 @@ function unique(tests) {
|
|
|
191
214
|
}
|
|
192
215
|
return { schemaVersion: 1, tests: [...byId.values()].sort((a, b) => a.id.localeCompare(b.id)) };
|
|
193
216
|
}
|
|
217
|
+
function xmlAttribute(attributes, name) {
|
|
218
|
+
const match = new RegExp(`(?:^|\\s)${name}\\s*=\\s*("[^"]*"|'[^']*')`, 'i').exec(attributes);
|
|
219
|
+
if (!match?.[1])
|
|
220
|
+
return undefined;
|
|
221
|
+
return match[1].slice(1, -1)
|
|
222
|
+
.replaceAll('"', '"')
|
|
223
|
+
.replaceAll(''', "'")
|
|
224
|
+
.replaceAll('<', '<')
|
|
225
|
+
.replaceAll('>', '>')
|
|
226
|
+
.replaceAll('&', '&');
|
|
227
|
+
}
|
|
228
|
+
function dotnetResults(text) {
|
|
229
|
+
const tests = [];
|
|
230
|
+
const stack = [];
|
|
231
|
+
let cursor = 0;
|
|
232
|
+
while (cursor < text.length) {
|
|
233
|
+
const start = text.indexOf('<', cursor);
|
|
234
|
+
if (start < 0)
|
|
235
|
+
break;
|
|
236
|
+
if (text.startsWith('<!--', start)) {
|
|
237
|
+
const end = text.indexOf('-->', start + 4);
|
|
238
|
+
if (end < 0)
|
|
239
|
+
throw new Error('Malformed dotnet TRX: unterminated XML comment.');
|
|
240
|
+
cursor = end + 3;
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
if (text.startsWith('<![CDATA[', start)) {
|
|
244
|
+
const end = text.indexOf(']]>', start + 9);
|
|
245
|
+
if (end < 0)
|
|
246
|
+
throw new Error('Malformed dotnet TRX: unterminated CDATA section.');
|
|
247
|
+
cursor = end + 3;
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
if (text.startsWith('<?', start)) {
|
|
251
|
+
const end = text.indexOf('?>', start + 2);
|
|
252
|
+
if (end < 0)
|
|
253
|
+
throw new Error('Malformed dotnet TRX: unterminated processing instruction.');
|
|
254
|
+
cursor = end + 2;
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
if (text.startsWith('<!', start))
|
|
258
|
+
throw new Error('Malformed dotnet TRX: unsupported declaration.');
|
|
259
|
+
let end = start + 1;
|
|
260
|
+
let quote = '';
|
|
261
|
+
for (; end < text.length; end++) {
|
|
262
|
+
const character = text[end];
|
|
263
|
+
if (quote) {
|
|
264
|
+
if (character === quote)
|
|
265
|
+
quote = '';
|
|
266
|
+
}
|
|
267
|
+
else if (character === '"' || character === "'") {
|
|
268
|
+
quote = character;
|
|
269
|
+
}
|
|
270
|
+
else if (character === '>') {
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (end >= text.length)
|
|
275
|
+
throw new Error('Malformed dotnet TRX: unterminated XML element.');
|
|
276
|
+
const token = text.slice(start + 1, end).trim();
|
|
277
|
+
cursor = end + 1;
|
|
278
|
+
if (!token)
|
|
279
|
+
throw new Error('Malformed dotnet TRX: empty XML element.');
|
|
280
|
+
if (token.startsWith('/')) {
|
|
281
|
+
const name = token.slice(1).trim().split(/\s/, 1)[0]?.split(':').at(-1);
|
|
282
|
+
if (!name || stack.pop()?.toLowerCase() !== name.toLowerCase()) {
|
|
283
|
+
throw new Error('Malformed dotnet TRX: mismatched XML element.');
|
|
284
|
+
}
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
const selfClosing = token.endsWith('/');
|
|
288
|
+
const element = selfClosing ? token.slice(0, -1).trim() : token;
|
|
289
|
+
const qualifiedName = element.split(/\s/, 1)[0];
|
|
290
|
+
if (!qualifiedName)
|
|
291
|
+
throw new Error('Malformed dotnet TRX: missing XML element name.');
|
|
292
|
+
const name = qualifiedName?.split(':').at(-1);
|
|
293
|
+
if (!name)
|
|
294
|
+
throw new Error('Malformed dotnet TRX: missing XML element name.');
|
|
295
|
+
const attributes = element.slice(qualifiedName.length);
|
|
296
|
+
const hierarchy = [...stack, name].map((part) => part.toLowerCase());
|
|
297
|
+
if (name.toLowerCase() === 'unittestresult'
|
|
298
|
+
&& hierarchy.at(-2) === 'results'
|
|
299
|
+
&& hierarchy.includes('testrun')) {
|
|
300
|
+
const id = idOf(xmlAttribute(attributes, 'testName'));
|
|
301
|
+
if (id)
|
|
302
|
+
tests.push({ id, status: status(xmlAttribute(attributes, 'outcome')) });
|
|
303
|
+
}
|
|
304
|
+
if (!selfClosing)
|
|
305
|
+
stack.push(name);
|
|
306
|
+
}
|
|
307
|
+
if (stack.length)
|
|
308
|
+
throw new Error('Malformed dotnet TRX: unclosed XML element.');
|
|
309
|
+
return tests;
|
|
310
|
+
}
|
|
194
311
|
export function normalizeAdapterReport(adapter, text, targetTestId) {
|
|
195
312
|
const tests = [];
|
|
196
313
|
if (adapter === 'vitest' || adapter === 'jest') {
|
|
@@ -233,13 +350,19 @@ export function normalizeAdapterReport(adapter, text, targetTestId) {
|
|
|
233
350
|
tests.push({ id, status: status(match?.[2]) });
|
|
234
351
|
}
|
|
235
352
|
}
|
|
353
|
+
else if (adapter === 'dotnet') {
|
|
354
|
+
tests.push(...dotnetResults(text));
|
|
355
|
+
}
|
|
236
356
|
else {
|
|
237
357
|
for (const match of text.matchAll(/<testcase\b([^>]*)>([\s\S]*?)<\/testcase>|<testcase\b([^>]*)\/>/g)) {
|
|
238
358
|
const attributes = match[1] ?? match[3] ?? '';
|
|
239
|
-
const
|
|
359
|
+
const body = match[2] ?? '';
|
|
360
|
+
const identityText = /\bname="([^"]*)"/.exec(attributes)?.[1]
|
|
361
|
+
?? /\bclassname="([^"]*)"/.exec(attributes)?.[1];
|
|
362
|
+
const displayName = /<system-out\b[^>]*>[\s\S]*?(?:^|\r?\n)\s*display-name:\s*([^\r\n<]+)/m.exec(body)?.[1];
|
|
363
|
+
const id = idOf(identityText) ?? idOf(displayName);
|
|
240
364
|
if (!id)
|
|
241
365
|
continue;
|
|
242
|
-
const body = match[2] ?? '';
|
|
243
366
|
tests.push({ id, status: /<(?:error)\b/.test(body) ? 'error' : /<failure\b/.test(body) ? 'failed' : /<skipped\b/.test(body) ? 'skipped' : 'passed' });
|
|
244
367
|
}
|
|
245
368
|
}
|
|
@@ -247,8 +370,12 @@ export function normalizeAdapterReport(adapter, text, targetTestId) {
|
|
|
247
370
|
const selected = targetTestId
|
|
248
371
|
? { ...normalized, tests: normalized.tests.filter((test) => test.id === targetTestId) }
|
|
249
372
|
: normalized;
|
|
250
|
-
if (!selected.tests.length)
|
|
251
|
-
|
|
373
|
+
if (!selected.tests.length) {
|
|
374
|
+
const guidance = adapter === 'pytest'
|
|
375
|
+
? ' Pytest node IDs must include the normalized TEST ID (for example test_TEST_APP_001), or configure a project-local musubix-json runner.'
|
|
376
|
+
: '';
|
|
377
|
+
throw new Error(`No annotated TEST-* identities were found in the ${adapter} report.${guidance}`);
|
|
378
|
+
}
|
|
252
379
|
return selected;
|
|
253
380
|
}
|
|
254
381
|
//# sourceMappingURL=adapters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../../packages/analysis/src/adapters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../../packages/analysis/src/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export interface CommandConfig {
|
|
|
16
16
|
format: 'musubix-mutation-json';
|
|
17
17
|
path: string;
|
|
18
18
|
};
|
|
19
|
-
adapter?: 'vitest' | 'jest' | 'pytest' | 'go-test' | 'cargo' | 'junit';
|
|
19
|
+
adapter?: 'vitest' | 'jest' | 'pytest' | 'go-test' | 'cargo' | 'junit' | 'dotnet';
|
|
20
20
|
required: boolean;
|
|
21
21
|
timeoutMs: number;
|
|
22
22
|
}
|
|
@@ -70,6 +70,7 @@ function validateAdapterArgs(adapter, args, name) {
|
|
|
70
70
|
'go-test': ['-json', '-run'],
|
|
71
71
|
cargo: ['--format'],
|
|
72
72
|
junit: ['--scan-class-path', '--include-tag', '--reports-dir', '--fail-if-no-tests'],
|
|
73
|
+
dotnet: ['--filter', '--logger', '--results-directory'],
|
|
73
74
|
}[adapter];
|
|
74
75
|
const conflict = args.find((arg) => owned.some((value) => arg === value || arg.startsWith(`${value}=`)));
|
|
75
76
|
if (conflict) {
|
|
@@ -147,8 +148,8 @@ export function parseConfig(input) {
|
|
|
147
148
|
throw new Error('Command executable must be nonempty.');
|
|
148
149
|
if (c.required !== undefined && typeof c.required !== 'boolean')
|
|
149
150
|
throw new Error('command.required must be boolean.');
|
|
150
|
-
if (c.adapter !== undefined && !['vitest', 'jest', 'pytest', 'go-test', 'cargo', 'junit'].includes(String(c.adapter))) {
|
|
151
|
-
throw new Error('command.adapter must be vitest, jest, pytest, go-test, cargo, or
|
|
151
|
+
if (c.adapter !== undefined && !['vitest', 'jest', 'pytest', 'go-test', 'cargo', 'junit', 'dotnet'].includes(String(c.adapter))) {
|
|
152
|
+
throw new Error('command.adapter must be vitest, jest, pytest, go-test, cargo, junit, or dotnet.');
|
|
152
153
|
}
|
|
153
154
|
const timeoutMs = optional(c.timeoutMs, 120_000);
|
|
154
155
|
if (typeof timeoutMs !== 'number' || !Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > 3_600_000)
|
|
@@ -560,7 +561,7 @@ export function policyDiagnostics(config, baseline, changed = null) {
|
|
|
560
561
|
}
|
|
561
562
|
}
|
|
562
563
|
if (changed?.includes('.musubix/policy-baseline.json')) {
|
|
563
|
-
diagnostics.push(error('POLICY_APPROVAL_REQUIRED', 'The trusted policy baseline changed;
|
|
564
|
+
diagnostics.push(error('POLICY_APPROVAL_REQUIRED', 'The trusted policy baseline changed; commit the baseline in reviewable history and obtain approval from a reviewer other than the author before readiness can pass.', '.musubix/policy-baseline.json'));
|
|
564
565
|
}
|
|
565
566
|
return diagnostics;
|
|
566
567
|
}
|