musubix3 0.1.0 → 0.1.2
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-implementation/SKILL.md +9 -2
- package/.github/skills/sdd-quality/SKILL.md +15 -6
- package/CHANGELOG.md +32 -0
- package/README-ja.md +45 -15
- package/README.md +47 -15
- package/dist/packages/analysis/src/adapters.d.ts +1 -0
- package/dist/packages/analysis/src/adapters.js +92 -5
- package/dist/packages/analysis/src/adapters.js.map +1 -1
- package/dist/packages/analysis/src/config.d.ts +10 -0
- package/dist/packages/analysis/src/config.js +121 -10
- package/dist/packages/analysis/src/config.js.map +1 -1
- package/dist/packages/analysis/src/files.js +19 -1
- package/dist/packages/analysis/src/files.js.map +1 -1
- package/dist/packages/analysis/src/formal.d.ts +2 -0
- package/dist/packages/analysis/src/formal.js +14 -2
- package/dist/packages/analysis/src/formal.js.map +1 -1
- package/dist/packages/analysis/src/gate.d.ts +6 -0
- package/dist/packages/analysis/src/gate.js +36 -5
- package/dist/packages/analysis/src/gate.js.map +1 -1
- package/dist/packages/analysis/src/mutation.d.ts +15 -1
- package/dist/packages/analysis/src/mutation.js +86 -0
- package/dist/packages/analysis/src/mutation.js.map +1 -1
- package/dist/packages/analysis/src/tdd.js +17 -5
- package/dist/packages/analysis/src/tdd.js.map +1 -1
- package/dist/packages/analysis/src/workflow.js +5 -3
- package/dist/packages/analysis/src/workflow.js.map +1 -1
- package/dist/packages/cli/src/main.js +23 -7
- package/dist/packages/cli/src/main.js.map +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"owner": { "name": "nahisaho" },
|
|
4
4
|
"metadata": {
|
|
5
5
|
"description": "GitHub Copilot CLI specification-driven development skills",
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.2"
|
|
7
7
|
},
|
|
8
8
|
"plugins": [
|
|
9
9
|
{
|
|
10
10
|
"name": "musubix3",
|
|
11
11
|
"source": ".",
|
|
12
|
-
"version": "0.1.
|
|
12
|
+
"version": "0.1.2",
|
|
13
13
|
"description": "Evidence-driven SDD without duplicating native Copilot capabilities."
|
|
14
14
|
}
|
|
15
15
|
]
|
|
@@ -20,6 +20,9 @@ After the work, run `npx musubix3 workflow-record sdd-implementation complete
|
|
|
20
20
|
Follow its native identity contract: pytest/Cargo use underscore names, Go
|
|
21
21
|
uses a `TEST-*` subtest, and JUnit uses an exact `@Tag("TEST-*")` plus an
|
|
22
22
|
underscore-form ID in the method name.
|
|
23
|
+
Run the repository formatter before recording Red. Formatting is part of the
|
|
24
|
+
test fingerprint: after Red, do not edit or reformat the authoritative test
|
|
25
|
+
until the matching Green has been recorded.
|
|
23
26
|
Make the runner emit a fresh
|
|
24
27
|
`musubix-json` report containing only the selected test (plus declared
|
|
25
28
|
deterministic `operations` counters when applicable) and run
|
|
@@ -43,11 +46,15 @@ After the work, run `npx musubix3 workflow-record sdd-implementation complete
|
|
|
43
46
|
Put annotations in the authoritative source and test files, including
|
|
44
47
|
supported non-JS/TS files; never add a proxy file just to increase coverage.
|
|
45
48
|
An annotation establishes a link, not proof that code or tests are correct.
|
|
46
|
-
5.
|
|
49
|
+
5. Before recording Red, run every configured `tdd.redPreflightCommands`
|
|
50
|
+
formatter/check and let musubix3 enforce that preflight. Then run the
|
|
51
|
+
project's actual focused tests/typecheck/build; fix failures.
|
|
47
52
|
When mutation evidence is required, use the project's existing lightweight
|
|
48
53
|
mutation mechanism to emit schema-v1 deterministic identities, requirement/
|
|
49
54
|
test linkage, source/test SHA-256, operator/location, and killed status.
|
|
50
|
-
Never fabricate results or add a large mutation dependency.
|
|
55
|
+
Never fabricate results or add a large mutation dependency. Use
|
|
56
|
+
`npx musubix3 mutation doctor --json` to inspect locally available engines
|
|
57
|
+
and configuration recommendations.
|
|
51
58
|
6. Regenerate `npx musubix3 trace build`, check `trace check --strict`, then
|
|
52
59
|
`npx musubix3 gate --changed`. Configure real command/argument arrays first.
|
|
53
60
|
7. Use Copilot's native review and security-review capabilities when appropriate.
|
|
@@ -8,7 +8,6 @@ Follow the user's input language (日本語 / English). Use native Copilot revie
|
|
|
8
8
|
security review for their specialist reasoning; this skill does not replace them.
|
|
9
9
|
After the work, run `npx musubix3 workflow-record sdd-quality complete --status
|
|
10
10
|
completed` exactly once.
|
|
11
|
-
|
|
12
11
|
1. Inspect `.musubix/config.json` and `.musubix/policy-baseline.json` before
|
|
13
12
|
running commands. Only execute trusted project configuration. Commands are
|
|
14
13
|
executable/argument arrays, not shell text. Never edit the baseline without
|
|
@@ -18,11 +17,19 @@ completed` exactly once.
|
|
|
18
17
|
custom report or a built-in Vitest/Jest, pytest, Go test, Cargo or JUnit
|
|
19
18
|
adapter. Require executable native adapter contracts in CI; JUnit targets use
|
|
20
19
|
an exact `@Tag("TEST-*")`, and pytest requires `pytest-json-report`. Review
|
|
21
|
-
`requiredChecks`, coverage thresholds and architecture rules.
|
|
20
|
+
`requiredChecks`, `qualityProfile`, coverage thresholds and architecture rules.
|
|
21
|
+
Use `recommended` or `release` only when all profile requirements are
|
|
22
|
+
intentionally configured; profile validation never invents missing evidence. Use strict
|
|
22
23
|
`codeGraph.mode` when unresolved computed module loading must block release,
|
|
23
24
|
and ensure the trusted baseline prevents downgrading it. Configure a
|
|
24
25
|
fresh structured `testReport` for `test-identities`. Do not weaken policy.
|
|
25
26
|
3. Run `npx musubix3 gate --json` or `npx musubix3 gate --changed --json`.
|
|
27
|
+
`evidence refresh --json` runs the same fail-closed pipeline. If `input-stability` fails,
|
|
28
|
+
inspect its per-path added/modified/deleted diagnostics and stop generators
|
|
29
|
+
or formatters before rerunning. Standard dependency/build directories,
|
|
30
|
+
including manifest-scoped Cargo and Maven `target/` and conventional `.venv`
|
|
31
|
+
or `venv` roots with a regular `pyvenv.cfg`, are excluded; arbitrary source
|
|
32
|
+
directories and source-like generated inputs are not silently ignored.
|
|
26
33
|
Changed mode reports Git changes and dependent files but conservatively runs
|
|
27
34
|
all checks, including commands. It never treats unrun checks as successful.
|
|
28
35
|
When `tdd` is required, confirm every command has test-scoped `tddArgs`, every
|
|
@@ -34,8 +41,9 @@ completed` exactly once.
|
|
|
34
41
|
Treat workflow records as declarations until `workflow-verify` binds each
|
|
35
42
|
completed declaration to one distinct completed Copilot Skill tool call.
|
|
36
43
|
In strict mode require one final successful result, matching session UUID,
|
|
37
|
-
causal
|
|
38
|
-
transcript hash. Ensure the
|
|
44
|
+
causal transcript order, policy-bounded concurrent-event clock skew, bounded
|
|
45
|
+
freshness, complete tool lifecycles and canonical transcript hash. Ensure the
|
|
46
|
+
baseline protects strict/session/freshness/event-skew policy.
|
|
39
47
|
When `change-history` is required,
|
|
40
48
|
confirm ordered checkpoints, chained TDD records, requirement-scoped Code
|
|
41
49
|
Graph changes, exact CHANGE requirement enumeration, measurable Acceptance,
|
|
@@ -53,7 +61,8 @@ completed` exactly once.
|
|
|
53
61
|
identities bound to must functional requirements, current source/test
|
|
54
62
|
fingerprints, operator/location, authoritative tests, and killed results.
|
|
55
63
|
Reject survived, skipped, duplicate, conflicting, stale, or unlinked mutants.
|
|
56
|
-
|
|
64
|
+
Run `mutation doctor` for language-aware local probes and remediation;
|
|
65
|
+
musubix3 validates evidence and does not bundle a mutation engine.
|
|
57
66
|
Missing required tools, commands, artifacts or evidence block readiness.
|
|
58
67
|
5. Use native review/security-review as needed, recording their findings
|
|
59
68
|
separately from machine evidence. Never fabricate review or test results.
|
|
@@ -66,4 +75,4 @@ completed` exactly once.
|
|
|
66
75
|
Ensure the baseline protects CI-required mode, strict OIDC and key binding.
|
|
67
76
|
Never store a private key or overstate OIDC as proof of arbitrary runner work.
|
|
68
77
|
7. Run `npx musubix3 status --json`; stale evidence must be refreshed. Report
|
|
69
|
-
limitations and residual risks before handoff
|
|
78
|
+
limitations and residual risks before handoff; no resident watcher or REPL.
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.1.2 - 2026-09-07
|
|
6
|
+
|
|
7
|
+
- Exclude conventional `.venv` and `venv` Python environments identified by a
|
|
8
|
+
regular `pyvenv.cfg` file from project snapshots and Code Graph indexing,
|
|
9
|
+
without allowing the marker to hide arbitrary source directories.
|
|
10
|
+
- Add configurable `tdd.redPreflightCommands` so formatters and other plain
|
|
11
|
+
preflight commands complete before a Red test fingerprint is captured.
|
|
12
|
+
- Add explicit `custom`, `minimal`, `recommended`, and `release` quality
|
|
13
|
+
profiles with fail-closed requirements for stronger profiles.
|
|
14
|
+
- Accept bounded timestamp skew for causally ordered concurrent Copilot tool
|
|
15
|
+
events in strict workflow verification, with a policy-protected
|
|
16
|
+
`workflow.maxEventSkewMs` limit.
|
|
17
|
+
- Add `mutation doctor` with language-aware local engine probes, attempted
|
|
18
|
+
commands, and actionable configuration recommendations.
|
|
19
|
+
|
|
20
|
+
## 0.1.1 - 2026-09-07
|
|
21
|
+
|
|
22
|
+
- Preserve fail-closed input-stability checks while reporting every added,
|
|
23
|
+
modified, or deleted path with before/after SHA-256 fingerprints.
|
|
24
|
+
- Exclude standard Cargo and Maven `target/` build output from project input
|
|
25
|
+
snapshots without ignoring source-like generated inputs.
|
|
26
|
+
- Merge legacy Cargo/Go `test` subcommands without producing duplicated commands
|
|
27
|
+
such as `cargo test test`, and reject conflicting adapter-owned report flags.
|
|
28
|
+
- Discover JUnit XML recursively so nested multi-module report directories can
|
|
29
|
+
be normalized.
|
|
30
|
+
- Add `evidence refresh` as an explicit entry point for the deterministic
|
|
31
|
+
evidence and quality-gate pipeline.
|
|
32
|
+
- Extend `formal doctor` with every attempted solver command and actionable
|
|
33
|
+
installation/configuration recommendations.
|
|
34
|
+
- Clarify Skill guidance to format tests before recording Red and to investigate
|
|
35
|
+
per-path input-stability diagnostics without weakening quality policy.
|
|
36
|
+
|
|
5
37
|
## 0.1.0 - 2026-09-07
|
|
6
38
|
|
|
7
39
|
- Add SHA-pinned cross-platform CI, reproducible native/formal toolchains, and
|
package/README-ja.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# musubix3
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**最新公開版 v0.1.2 · GitHub Copilot CLI 専用 · Node.js ≥20 · TypeScript · MIT**
|
|
4
4
|
|
|
5
5
|
[English](README.md)
|
|
6
6
|
|
|
7
|
+
[musubix2 から musubix3 で変わったこと](MUSUBIX2-TO-MUSUBIX3.md)
|
|
8
|
+
|
|
7
9
|
要求 → 憲章 → 設計・ADR → 実装 → 追跡可能性 → 品質根拠、という
|
|
8
10
|
仕様駆動開発(SDD)を、8つの Skills と決定的な検証エンジンで支援します。
|
|
9
11
|
形式的整合性検査、コンパイラによる依存解析、ローカル知識検索も含みます。
|
|
@@ -14,8 +16,25 @@ ID の接続や SAT 判定だけで、実装の正しさを保証するもので
|
|
|
14
16
|
|
|
15
17
|
## クイックスタート
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
対象プロジェクトで、公開済みパッケージを実行します。
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
npx musubix3@0.1.2 --version
|
|
23
|
+
npx musubix3@0.1.2 init --dry-run
|
|
24
|
+
npx musubix3@0.1.2 init
|
|
25
|
+
copilot
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
バージョンを固定してプロジェクトへインストールする場合は、次を実行します。
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
npm install --save-dev --save-exact musubix3@0.1.2
|
|
32
|
+
npx --no-install musubix3 --version
|
|
33
|
+
npx --no-install musubix3 init --dry-run
|
|
34
|
+
npx --no-install musubix3 init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
リポジトリ自体をビルドする場合は、次を実行します。
|
|
19
38
|
|
|
20
39
|
```sh
|
|
21
40
|
git clone https://github.com/nahisaho/musubix3.git
|
|
@@ -23,16 +42,6 @@ cd musubix3
|
|
|
23
42
|
npm install
|
|
24
43
|
npm run build
|
|
25
44
|
node dist/packages/cli/src/main.js --help
|
|
26
|
-
node dist/packages/cli/src/main.js init --root ../your-project --dry-run
|
|
27
|
-
node dist/packages/cli/src/main.js init --root ../your-project
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
npm 公開後は、対象プロジェクトで実行します。
|
|
31
|
-
|
|
32
|
-
```sh
|
|
33
|
-
npx musubix3 init --dry-run
|
|
34
|
-
npx musubix3 init
|
|
35
|
-
copilot
|
|
36
45
|
```
|
|
37
46
|
|
|
38
47
|
Copilot に「sdd-requirements でこの機能の要求を定義し、設計を計画して」と依頼します。
|
|
@@ -167,8 +176,10 @@ npx musubix3 status --json
|
|
|
167
176
|
| `knowledge query <text> [--limit 10]` | TF-IDF/cosine のランキングと陳腐化情報 |
|
|
168
177
|
| `formal generate <file> [--format both\|smt2\|lean]` | SHA-256付きの再現可能なsolver入力生成 |
|
|
169
178
|
| `formal doctor` | Z3、Lean、`lake env lean` の存在とバージョン確認 |
|
|
179
|
+
| `mutation doctor` | 言語別のローカルmutation engine確認と導入推奨 |
|
|
170
180
|
| `formal check <file> [--solver auto\|none\|z3\|lean]` | 明示的なBoolean・条件・数値・時間・状態遷移モデルを検査 |
|
|
171
181
|
| `model-correspondence validate` | Formal JSON→生成trace→正本passing testの証拠を再検証 |
|
|
182
|
+
| `evidence refresh [--changed]` | 同じfail-closed gate pipelineで派生証拠を再生成 |
|
|
172
183
|
| `mutation validate` | 要求scopeのschema-v1 killed-mutant証拠を再検証 |
|
|
173
184
|
| `tdd red\|green\|refactor <TEST-ID> --requirement <REQ-ID> --command <name>` | 検証可能なTDDフェーズを実行・記録 |
|
|
174
185
|
| `workflow-record <skill> <phase> --status <status>` | 自己申告のworkflow宣言を記録 |
|
|
@@ -317,6 +328,7 @@ version: 1.0.0
|
|
|
317
328
|
{
|
|
318
329
|
"schemaVersion": 1,
|
|
319
330
|
"language": "auto",
|
|
331
|
+
"qualityProfile": "custom",
|
|
320
332
|
"commands": [
|
|
321
333
|
{ "name": "typecheck", "command": "npm", "args": ["run", "typecheck"], "required": true, "timeoutMs": 120000 },
|
|
322
334
|
{
|
|
@@ -332,10 +344,12 @@ version: 1.0.0
|
|
|
332
344
|
"thresholds": { "design": 1, "implementation": 1, "tests": 1 },
|
|
333
345
|
"formal": { "solver": "none", "minModeledFraction": 0, "timeoutMs": 12000 },
|
|
334
346
|
"mutation": { "mode": "compatible" },
|
|
347
|
+
"tdd": { "redPreflightCommands": [] },
|
|
335
348
|
"workflow": {
|
|
336
349
|
"mode": "compatible",
|
|
337
350
|
"maxAgeSeconds": 3600,
|
|
338
|
-
"maxFutureSkewSeconds": 60
|
|
351
|
+
"maxFutureSkewSeconds": 60,
|
|
352
|
+
"maxEventSkewMs": 1000
|
|
339
353
|
},
|
|
340
354
|
"attestation": {
|
|
341
355
|
"mode": "local",
|
|
@@ -356,6 +370,15 @@ version: 1.0.0
|
|
|
356
370
|
|
|
357
371
|
未知の設定キー、不正な閾値、重複コマンドはエラーです。
|
|
358
372
|
glob は `*` / `**` / `?` に対応し、外部依存は `npm:` 接頭辞で表現します。
|
|
373
|
+
`qualityProfile`の既定値は`custom`です。`minimal`はSDDの基本gate、
|
|
374
|
+
`recommended`はstrict Code Graph、TDD、構造化test identityも要求し、
|
|
375
|
+
`release`はformal、mutation、workflow、変更、performance、CI attestationを
|
|
376
|
+
含む完全なrelease checkを要求します。不足設定や弱い設定を証拠で補ったことにはしません。
|
|
377
|
+
`tdd.redPreflightCommands`にはformatter等のplain command名を指定でき、
|
|
378
|
+
Redのtest fingerprintを取得する前に成功が必須です。
|
|
379
|
+
通常ファイルの`pyvenv.cfg`を含む`.venv`と`venv`はsnapshotと
|
|
380
|
+
Code Graphから除外されますが、任意のsource directoryにmarkerを置いても
|
|
381
|
+
除外されません。
|
|
359
382
|
`codeGraph.mode` の既定値は `compatible` で、未解決の計算された
|
|
360
383
|
`import()` / `require()` は警告です。`strict` にするとグラフゲートを阻止する
|
|
361
384
|
エラーになります。信頼済みbaselineが `strict` の場合、`compatible` への
|
|
@@ -376,7 +399,9 @@ command reportでpassしたことを要求します。欠落・改変・stale・
|
|
|
376
399
|
|
|
377
400
|
`.musubix/policy-baseline.json` は必須チェック、閾値、アーキテクチャ、
|
|
378
401
|
Formalポリシー、mutation mode、workflow strict/session/freshness、CI必須attestation、
|
|
379
|
-
strict OIDC identity/key binding
|
|
402
|
+
strict OIDC identity/key binding、必須コマンド名の最低条件です。Red preflightを
|
|
403
|
+
要求するbaselineは正規化済み`commands`定義も保持し、同名formatterへの
|
|
404
|
+
すり替えを拒否します。弱体化は拒否され、
|
|
380
405
|
変更ゲート中のbaseline変更には独立承認が必要です。CODEOWNERS等で保護してください。
|
|
381
406
|
|
|
382
407
|
**信頼した設定だけを実行してください。** ゲートは環境変数を継承し、シェルを
|
|
@@ -456,6 +481,11 @@ strict検証は`workflow.maxAgeSeconds`と`workflow.maxFutureSkewSeconds`で
|
|
|
456
481
|
terminal transcriptの古さと未来方向clock skewも制限します。
|
|
457
482
|
並行eventはtimestamp順で出力されない場合があるため、全体sortではなくtool/resultの
|
|
458
483
|
因果順序を検査します。
|
|
484
|
+
gate実行中に入力が変わった場合、`input-stability`は追加・変更・削除された各pathと
|
|
485
|
+
前後のSHA-256を報告します。Cargo/Mavenの標準`target/`は除外しますが、
|
|
486
|
+
source相当の生成入力はfail-closedのままです。組込みadapterは対象test選択とreport引数を
|
|
487
|
+
所有します。Cargo/Goの既存設定にある先頭`test`は安全に統合し、
|
|
488
|
+
`--json-report`など競合するreport引数は早期拒否します。
|
|
459
489
|
実行中の入力変更は失敗、その後の変更は `status` で stale になります。
|
|
460
490
|
`maxAgeSeconds`より古いattestation、または`maxFutureSkewSeconds`を超えて未来の
|
|
461
491
|
`issuedAt`は失敗します。local modeは未署名を明示します。
|
package/README.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# musubix3
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Latest published v0.1.2 · 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)
|
|
8
|
+
|
|
7
9
|
Specification-driven development (SDD) skills backed by deterministic checks:
|
|
8
10
|
requirements → constitution → design/ADRs → implementation → traceability →
|
|
9
11
|
quality evidence. Optional formal consistency, compiler dependency analysis and
|
|
@@ -16,8 +18,25 @@ or requirements are satisfiable.
|
|
|
16
18
|
|
|
17
19
|
## Quick start
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
Run the published package from the target project:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
npx musubix3@0.1.2 --version
|
|
25
|
+
npx musubix3@0.1.2 init --dry-run
|
|
26
|
+
npx musubix3@0.1.2 init
|
|
27
|
+
copilot
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
For a reproducible project-local installation:
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
npm install --save-dev --save-exact musubix3@0.1.2
|
|
34
|
+
npx --no-install musubix3 --version
|
|
35
|
+
npx --no-install musubix3 init --dry-run
|
|
36
|
+
npx --no-install musubix3 init
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
To build the repository itself:
|
|
21
40
|
|
|
22
41
|
```sh
|
|
23
42
|
git clone https://github.com/nahisaho/musubix3.git
|
|
@@ -25,16 +44,6 @@ cd musubix3
|
|
|
25
44
|
npm install
|
|
26
45
|
npm run build
|
|
27
46
|
node dist/packages/cli/src/main.js --help
|
|
28
|
-
node dist/packages/cli/src/main.js init --root ../your-project --dry-run
|
|
29
|
-
node dist/packages/cli/src/main.js init --root ../your-project
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Once available on npm, from your target project:
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
npx musubix3 init --dry-run
|
|
36
|
-
npx musubix3 init
|
|
37
|
-
copilot
|
|
38
47
|
```
|
|
39
48
|
|
|
40
49
|
Ask Copilot: “Use sdd-change to add this feature and propagate it through the
|
|
@@ -175,8 +184,10 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
|
|
|
175
184
|
| `knowledge query <text> [--limit 10]` | Deterministic TF-IDF/cosine results and staleness flag |
|
|
176
185
|
| `formal generate <file> [--format both\|smt2\|lean]` | Reproducible solver inputs with SHA-256 evidence |
|
|
177
186
|
| `formal doctor` | Probe Z3, Lean, and `lake env lean` availability and versions |
|
|
187
|
+
| `mutation doctor` | Probe language-aware local mutation engines and show setup recommendations |
|
|
178
188
|
| `formal check <file> [--solver auto\|none\|z3\|lean]` | Check the explicit Boolean/conditional/numeric/temporal/transition model |
|
|
179
189
|
| `model-correspondence validate` | Revalidate Formal JSON → generated trace → authoritative passing test evidence |
|
|
190
|
+
| `evidence refresh [--changed]` | Regenerate derived evidence through the same fail-closed gate pipeline |
|
|
180
191
|
| `mutation validate` | Revalidate requirement-scoped schema-v1 killed-mutant evidence |
|
|
181
192
|
| `tdd red\|green\|refactor <TEST-ID> --requirement <REQ-ID> --command <name>` | Execute and record a verified TDD phase |
|
|
182
193
|
| `workflow-record <skill> <phase> --status <status>` | Record a compact self-reported workflow declaration |
|
|
@@ -318,6 +329,7 @@ Example `.musubix/config.json` (adapt command arguments to your own project):
|
|
|
318
329
|
{
|
|
319
330
|
"schemaVersion": 1,
|
|
320
331
|
"language": "auto",
|
|
332
|
+
"qualityProfile": "custom",
|
|
321
333
|
"commands": [
|
|
322
334
|
{ "name": "typecheck", "command": "npm", "args": ["run", "typecheck"], "required": true, "timeoutMs": 120000 },
|
|
323
335
|
{
|
|
@@ -333,10 +345,12 @@ Example `.musubix/config.json` (adapt command arguments to your own project):
|
|
|
333
345
|
"thresholds": { "design": 1, "implementation": 1, "tests": 1 },
|
|
334
346
|
"formal": { "solver": "none", "minModeledFraction": 0, "timeoutMs": 12000 },
|
|
335
347
|
"mutation": { "mode": "compatible" },
|
|
348
|
+
"tdd": { "redPreflightCommands": [] },
|
|
336
349
|
"workflow": {
|
|
337
350
|
"mode": "compatible",
|
|
338
351
|
"maxAgeSeconds": 3600,
|
|
339
|
-
"maxFutureSkewSeconds": 60
|
|
352
|
+
"maxFutureSkewSeconds": 60,
|
|
353
|
+
"maxEventSkewMs": 1000
|
|
340
354
|
},
|
|
341
355
|
"attestation": {
|
|
342
356
|
"mode": "local",
|
|
@@ -357,6 +371,16 @@ Example `.musubix/config.json` (adapt command arguments to your own project):
|
|
|
357
371
|
|
|
358
372
|
Config is validated strictly; misspelled keys, invalid bounds and duplicate
|
|
359
373
|
commands fail closed. Globs support `*`, `**`, `?`; external imports use `npm:`.
|
|
374
|
+
`qualityProfile` is `custom` by default. `minimal` preserves the core SDD gate,
|
|
375
|
+
`recommended` also requires strict Code Graph, TDD and structured test
|
|
376
|
+
identities, and `release` requires the complete formal, mutation, workflow,
|
|
377
|
+
change, performance and CI-attestation checks. Stronger profiles reject missing
|
|
378
|
+
or weakened settings rather than silently filling in evidence.
|
|
379
|
+
Use `tdd.redPreflightCommands` to reference plain configured formatter commands;
|
|
380
|
+
they must pass before Red captures the authoritative test fingerprint.
|
|
381
|
+
Conventional `.venv` and `venv` Python environments containing a regular
|
|
382
|
+
`pyvenv.cfg` are excluded from source snapshots and Code Graph indexing.
|
|
383
|
+
Arbitrary source directories containing that marker remain tracked.
|
|
360
384
|
`codeGraph.mode` defaults to `compatible`, where unresolved computed
|
|
361
385
|
`import()`/`require()` calls remain warnings. Set it to `strict` to make those
|
|
362
386
|
diagnostics gate-blocking errors. A trusted strict policy baseline prevents
|
|
@@ -381,7 +405,9 @@ diagnostic codes are stable English; human status labels include Japanese.
|
|
|
381
405
|
`.musubix/policy-baseline.json` records minimum required checks, coverage,
|
|
382
406
|
architecture, formal policy, mutation mode, workflow strict/session/freshness settings,
|
|
383
407
|
CI-required attestation and strict OIDC identity/key binding, and required
|
|
384
|
-
command names.
|
|
408
|
+
command names. A baseline that requires TDD Red preflights must also include
|
|
409
|
+
their normalized `commands` definitions, which prevents replacing a trusted
|
|
410
|
+
formatter while retaining its name. Weakening is rejected; changing the baseline in `gate --changed`
|
|
385
411
|
requires independent approval. Protect the baseline with review/CODEOWNERS.
|
|
386
412
|
|
|
387
413
|
**Only run trusted configuration**: gates execute its commands with inherited
|
|
@@ -482,6 +508,12 @@ Strict verification also bounds terminal transcript age and future clock skew
|
|
|
482
508
|
with `workflow.maxAgeSeconds` and `workflow.maxFutureSkewSeconds`.
|
|
483
509
|
Unrelated concurrent events may be emitted out of timestamp order, so strict mode
|
|
484
510
|
checks causal tool/result ordering rather than imposing a global timestamp sort.
|
|
511
|
+
If project inputs change while a gate is running, `input-stability` reports each
|
|
512
|
+
added, modified, or deleted path with before/after SHA-256 values. Standard
|
|
513
|
+
Cargo/Maven `target/` output is excluded, but source-like generated inputs remain
|
|
514
|
+
fail-closed. Built-in adapters own their targeting and report arguments. A
|
|
515
|
+
legacy leading Cargo/Go `test` subcommand is merged safely; conflicting report
|
|
516
|
+
flags such as `--json-report` are rejected.
|
|
485
517
|
Changes during a gate fail input stability; later source/config changes make
|
|
486
518
|
`status` stale. Attestations older than `maxAgeSeconds`, or issued farther in the
|
|
487
519
|
future than `maxFutureSkewSeconds`, fail. Local mode explicitly reports unsigned
|
|
@@ -6,6 +6,7 @@ export interface AdapterInvocation {
|
|
|
6
6
|
reportPath: string;
|
|
7
7
|
source: 'file' | 'directory' | 'stdout';
|
|
8
8
|
}
|
|
9
|
+
export declare function mergeAdapterArgs(adapter: TestAdapter, configuredArgs: string[], invocationArgs: string[]): string[];
|
|
9
10
|
export declare function adapterInvocation(adapter: TestAdapter, commandName: string, testId?: string, testPath?: string): AdapterInvocation;
|
|
10
11
|
export declare function clearAdapterOutput(invocation: AdapterInvocation, absolutePath: string): Promise<void>;
|
|
11
12
|
export declare function readAdapterOutput(invocation: AdapterInvocation, absolutePath: string, stdout: string): Promise<string | null>;
|
|
@@ -1,6 +1,84 @@
|
|
|
1
|
-
import { dirname } from 'node:path';
|
|
1
|
+
import { dirname, posix } from 'node:path';
|
|
2
2
|
import { mkdir, readdir, readFile, rm, unlink, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { exists } from './files.js';
|
|
4
|
+
const goValueFlags = new Set([
|
|
5
|
+
'-C', '-asmflags', '-bench', '-benchtime', '-blockprofile', '-blockprofilerate',
|
|
6
|
+
'-buildmode', '-compiler',
|
|
7
|
+
'-count', '-covermode', '-coverpkg', '-coverprofile', '-cpu', '-cpuprofile', '-exec',
|
|
8
|
+
'-fuzz', '-fuzzminimizetime', '-fuzztime', '-gccgoflags', '-gcflags',
|
|
9
|
+
'-installsuffix', '-ldflags', '-list', '-memprofile', '-memprofilerate',
|
|
10
|
+
'-mod', '-modfile', '-mutexprofile',
|
|
11
|
+
'-mutexprofilefraction', '-o', '-outputdir', '-overlay', '-p', '-parallel',
|
|
12
|
+
'-pgo', '-pkgdir', '-run', '-shuffle', '-skip', '-tags', '-timeout', '-toolexec', '-trace',
|
|
13
|
+
'-vet',
|
|
14
|
+
]);
|
|
15
|
+
function partitionGoArgs(args) {
|
|
16
|
+
const flags = [];
|
|
17
|
+
const packages = [];
|
|
18
|
+
let directory;
|
|
19
|
+
for (let index = 0; index < args.length; index++) {
|
|
20
|
+
const arg = args[index];
|
|
21
|
+
if (arg === '-args') {
|
|
22
|
+
return { flags, packages, passthrough: args.slice(index + 1), ...(directory ? { directory } : {}) };
|
|
23
|
+
}
|
|
24
|
+
if (arg.startsWith('-')) {
|
|
25
|
+
flags.push(arg);
|
|
26
|
+
const flag = arg.split('=', 1)[0];
|
|
27
|
+
if (!arg.includes('=') && goValueFlags.has(flag) && args[index + 1] !== undefined) {
|
|
28
|
+
const value = args[++index];
|
|
29
|
+
flags.push(value);
|
|
30
|
+
if (flag === '-C')
|
|
31
|
+
directory = value;
|
|
32
|
+
}
|
|
33
|
+
else if (flag === '-C' && arg.includes('=')) {
|
|
34
|
+
directory = arg.slice(arg.indexOf('=') + 1);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
packages.push(arg);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { flags, packages, passthrough: [], ...(directory ? { directory } : {}) };
|
|
42
|
+
}
|
|
43
|
+
export function mergeAdapterArgs(adapter, configuredArgs, invocationArgs) {
|
|
44
|
+
if (adapter === 'cargo' && configuredArgs[0] === 'test' && invocationArgs[0] === 'test') {
|
|
45
|
+
const configuredSeparator = configuredArgs.indexOf('--');
|
|
46
|
+
const invocationSeparator = invocationArgs.indexOf('--');
|
|
47
|
+
const configuredCommandArgs = configuredSeparator < 0 ? configuredArgs.slice(1) : configuredArgs.slice(1, configuredSeparator);
|
|
48
|
+
const configuredHarnessArgs = configuredSeparator < 0 ? [] : configuredArgs.slice(configuredSeparator + 1);
|
|
49
|
+
const invocationCommandArgs = invocationSeparator < 0 ? invocationArgs.slice(1) : invocationArgs.slice(1, invocationSeparator);
|
|
50
|
+
const invocationHarnessArgs = invocationSeparator < 0 ? [] : invocationArgs.slice(invocationSeparator + 1);
|
|
51
|
+
return [
|
|
52
|
+
'test',
|
|
53
|
+
...configuredCommandArgs,
|
|
54
|
+
...invocationCommandArgs,
|
|
55
|
+
...(configuredHarnessArgs.length || invocationHarnessArgs.length
|
|
56
|
+
? ['--', ...configuredHarnessArgs, ...invocationHarnessArgs]
|
|
57
|
+
: []),
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
if (adapter === 'go-test' && configuredArgs[0] === 'test' && invocationArgs[0] === 'test') {
|
|
61
|
+
const configured = partitionGoArgs(configuredArgs.slice(1));
|
|
62
|
+
const generatedPackage = invocationArgs[2];
|
|
63
|
+
const targeted = invocationArgs.includes('-run');
|
|
64
|
+
if (configured.directory && posix.isAbsolute(configured.directory)) {
|
|
65
|
+
throw new Error('The go-test adapter requires a relative -C directory so it can preserve targeted package scope.');
|
|
66
|
+
}
|
|
67
|
+
const targetedPackage = configured.directory && generatedPackage.startsWith('./')
|
|
68
|
+
? posix.relative(configured.directory, generatedPackage.slice(2)) || '.'
|
|
69
|
+
: generatedPackage;
|
|
70
|
+
const packages = !targeted && configured.packages.length ? configured.packages : [targetedPackage];
|
|
71
|
+
return [
|
|
72
|
+
'test',
|
|
73
|
+
...configured.flags,
|
|
74
|
+
'-json',
|
|
75
|
+
...packages,
|
|
76
|
+
...invocationArgs.slice(3),
|
|
77
|
+
...(configured.passthrough.length ? ['-args', ...configured.passthrough] : []),
|
|
78
|
+
];
|
|
79
|
+
}
|
|
80
|
+
return [...configuredArgs, ...invocationArgs];
|
|
81
|
+
}
|
|
4
82
|
function reportPath(commandName, testId, adapter) {
|
|
5
83
|
const suffix = adapter === 'junit' ? '' : '.json';
|
|
6
84
|
return testId
|
|
@@ -72,12 +150,21 @@ export async function readAdapterOutput(invocation, absolutePath, stdout) {
|
|
|
72
150
|
return null;
|
|
73
151
|
if (invocation.source === 'file')
|
|
74
152
|
return readFile(absolutePath, 'utf8');
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
.sort((a, b) => a.name.localeCompare(b.name))
|
|
153
|
+
async function xmlFiles(directory) {
|
|
154
|
+
const found = [];
|
|
155
|
+
for (const entry of (await readdir(directory, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name))) {
|
|
156
|
+
const path = `${directory}/${entry.name}`;
|
|
157
|
+
if (entry.isDirectory())
|
|
158
|
+
found.push(...await xmlFiles(path));
|
|
159
|
+
else if (entry.isFile() && entry.name.endsWith('.xml'))
|
|
160
|
+
found.push(path);
|
|
161
|
+
}
|
|
162
|
+
return found;
|
|
163
|
+
}
|
|
164
|
+
const entries = await xmlFiles(absolutePath);
|
|
78
165
|
if (!entries.length)
|
|
79
166
|
return null;
|
|
80
|
-
return (await Promise.all(entries.map((entry) => readFile(
|
|
167
|
+
return (await Promise.all(entries.map((entry) => readFile(entry, 'utf8')))).join('\n');
|
|
81
168
|
}
|
|
82
169
|
function idOf(value) {
|
|
83
170
|
if (typeof value !== 'string')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../../packages/analysis/src/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAYpC,SAAS,UAAU,CAAC,WAAmB,EAAE,MAAe,EAAE,OAAqB;IAC7E,MAAM,MAAM,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAClD,OAAO,MAAM;QACX,CAAC,CAAC,4BAA4B,WAAW,IAAI,MAAM,GAAG,MAAM,EAAE;QAC9D,CAAC,CAAC,4BAA4B,WAAW,aAAa,MAAM,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAoB,EACpB,WAAmB,EACnB,MAAe,EACf,QAAiB;IAEjB,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,IAAI,EAAE,CAAC;YACjH,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,IAAI,EAAE,CAAC;YAC5H,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,sBAAsB,IAAI,EAAE,CAAC;YACjI,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC/H,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnI,CAAC;IACD,OAAO;QACL,IAAI,EAAE;YACJ,mBAAmB;YACnB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE;YAClE,iBAAiB,IAAI,EAAE;SACxB;QACD,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,WAAW;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAA6B,EAAE,YAAoB;IAC1F,IAAI,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW;YAAE,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;;YAC9E,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAA6B,EAAE,YAAoB,EAAE,MAAc;IACzG,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;SACnE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAChE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnH,CAAC;AAED,SAAS,IAAI,CAAC,KAAc;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,KAAK,GAAG,8DAA8D,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC;AAChE,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9E,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7F,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,MAAM,CAAC,KAAiC;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8C,CAAC;IACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACjI,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAoB,EAAE,IAAY,EAAE,YAAqB;IAC9F,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,KAAK,MAAM,KAAK,IAAI,MAAwC,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,KAAK,MAAM,SAAS,IAAI,UAA4C,EAAE,CAAC;gBACrE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC7D,IAAI,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAmC,EAAE,CAAC;YACrG,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAC1D,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACzG,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,qDAAqD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,kEAAkE,CAAC,EAAE,CAAC;YACtG,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxJ,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,YAAY;QAC3B,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE;QACvF,CAAC,CAAC,UAAU,CAAC;IACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,OAAO,UAAU,CAAC,CAAC;IACnH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../../packages/analysis/src/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,7 @@ export interface WorkflowConfig {
|
|
|
55
55
|
expectedSessionId?: string;
|
|
56
56
|
maxAgeSeconds?: number;
|
|
57
57
|
maxFutureSkewSeconds?: number;
|
|
58
|
+
maxEventSkewMs?: number;
|
|
58
59
|
}
|
|
59
60
|
export interface CodeGraphConfig {
|
|
60
61
|
mode: 'compatible' | 'strict';
|
|
@@ -62,9 +63,14 @@ export interface CodeGraphConfig {
|
|
|
62
63
|
export interface MutationConfig {
|
|
63
64
|
mode: 'compatible' | 'strict';
|
|
64
65
|
}
|
|
66
|
+
export interface TddConfig {
|
|
67
|
+
redPreflightCommands: string[];
|
|
68
|
+
}
|
|
69
|
+
export type QualityProfile = 'custom' | 'minimal' | 'recommended' | 'release';
|
|
65
70
|
export interface Config {
|
|
66
71
|
schemaVersion: 1;
|
|
67
72
|
language: 'auto' | 'en' | 'ja';
|
|
73
|
+
qualityProfile: QualityProfile;
|
|
68
74
|
commands: CommandConfig[];
|
|
69
75
|
requiredChecks: string[];
|
|
70
76
|
thresholds: {
|
|
@@ -79,17 +85,21 @@ export interface Config {
|
|
|
79
85
|
codeGraph: CodeGraphConfig;
|
|
80
86
|
formal: FormalConfig;
|
|
81
87
|
mutation: MutationConfig;
|
|
88
|
+
tdd: TddConfig;
|
|
82
89
|
workflow: WorkflowConfig;
|
|
83
90
|
attestation: AttestationConfig;
|
|
84
91
|
}
|
|
85
92
|
export interface PolicyBaseline {
|
|
86
93
|
schemaVersion: 1;
|
|
94
|
+
qualityProfile: QualityProfile;
|
|
95
|
+
commands: CommandConfig[];
|
|
87
96
|
requiredChecks: string[];
|
|
88
97
|
thresholds: Config['thresholds'];
|
|
89
98
|
architecture: Config['architecture'];
|
|
90
99
|
codeGraph: Config['codeGraph'];
|
|
91
100
|
formal: Pick<FormalConfig, 'solver' | 'minModeledFraction'>;
|
|
92
101
|
mutation: MutationConfig;
|
|
102
|
+
tdd: TddConfig;
|
|
93
103
|
workflow: WorkflowConfig;
|
|
94
104
|
attestation: AttestationConfig;
|
|
95
105
|
requiredCommands: string[];
|