* test(#1951): add failing-first tests for reversibility tagging Red phase for issue #1951 (reversibility tagging: classify decisions by undo cost, gate one-way doors behind a checkpoint:decision). Tests assert, per the issue's acceptance criteria: - discuss-phase CONTEXT.md template records a **Reversibility:** field with a rationale on captured decisions, and states it is optional - gsd-planner @-references planner-reversibility.md and stays under the 49152-char agent cap (LARGE_CAP, tests/agent-size-budget.test.cjs) - a one-way rating inserts a checkpoint:decision before the dependent task; reversible inserts none; costly is flagged but never blocks - the taxonomy defaults to reversible when unsure (checkpoint-fatigue guard) and inserting a checkpoint implies autonomous: false - docs/reference/plan-md.md documents <reversibility> as optional with all three ratings - --no-reversibility-gates parses to REVERSIBILITY_GATES=false, is injected into the planner prompt, and is advertised in the command argument-hint and help full mode (argument-hint parity) - the override suppresses the gate but still persists the rating - cmdVerifyPlanStructure accepts every rating and the absent case (additive-validator guarantee, behavioral via runGsdTools) - parity: thinking-models-planning.md #4 adopts the canonical three-level taxonomy and the binary REVERSIBLE/IRREVERSIBLE vocabulary is gone - no content loss from the planner extraction made to fit under the cap Prose-contract assertions are Red until the implementation lands. The behavioral validator assertions pass immediately — regression guards proving the validator already accepts unknown optional tags. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(#1951): reversibility tagging — gate one-way-door decisions Classify planning decisions by what undoing them would cost, and give a one-way door a human beat before the agent walks through it (issue #1951, The Pragmatic Programmer Topic 15 'Reversibility'; Bezos's one-way/two-way door framing). Acceptance criteria met: - discuss-phase records an optional reversibility rating with a rationale on <decisions> entries in the phase CONTEXT.md template. Unrated decisions are treated as reversible, so existing phases are unaffected. - a one-way rating makes gsd-planner insert a checkpoint:decision before the task that implements the decision, reusing the existing checkpoint mechanism -- no new checkpoint machinery. - reversible ratings trigger no checkpoint; costly ratings are flagged in the plan but never block. - the rating persists on the task as the optional <reversibility rating=> element. cmdVerifyPlanStructure accepts every rating and the absent case; the structural validator does not reject unknown optional tags. - --no-reversibility-gates (REVERSIBILITY_GATES=false) suppresses checkpoint insertion for intentionally-unattended runs while still recording ratings -- the override changes what stops the run, not what the plan remembers. Single taxonomy, not two: references/thinking-models-planning.md #4 already shipped a binary REVERSIBLE/IRREVERSIBLE classification and is loaded by both gsd-planner and gsd-plan-checker. It is rewritten onto the canonical three-level vocabulary and now points at planner-reversibility.md as the taxonomy owner, with a parity test that fails if the surfaces diverge (DEFECT.GENERATIVE-FIX-DIVERGENCE). agents/gsd-planner.md sat 47 chars under the 49152 LARGE_CAP, so the checkpoint DO/DON'T guidance was relocated verbatim into planner-antipatterns.md -- already @-referenced from the same section for the same topic, so the planner still loads it and nothing was dropped. A test guards the relocation against content loss. Files: gsd-core/references/planner-reversibility.md (NEW, canonical taxonomy + emission rules + anti-patterns), gsd-planner.md, plan-phase workflow/command/help (flag wiring + parity), plan-md.md schema, discuss-phase context template, CONTEXT.md glossary, INVENTORY + manifest, size baselines, install goldens, plugin skills regen, changeset. Closes #1951 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(#1951): address orthogonal review findings Two isolated reviewers (correctness + security), neither of which authored the change. Every finding fixed: Security — the rationale is untrusted input (ADR-1577). It originates in conversation and flows CONTEXT.md -> planner -> PLAN.md -> executor, each hop an LLM reading the previous hop's output, with no validation on the path. planner-reversibility.md and the discuss-phase template now state it is data and never instructions, and name the </reversibility> early-termination hazard explicitly -- a rationale that closes its own element injects sibling structure the executor reads as real tasks. Four tests guard it. Correctness 1 — nothing machine-enforced the feature's own promise: a task rated one-way with no preceding checkpoint:decision validated as fully clean, so a planner error silently reopened the gap this feature exists to close. cmdVerifyPlanStructure now warns on an ungated one-way rating. A warning, not an error: <reversibility> stays additive and the plan stays valid. Four tests cover ungated (warns), gated (silent), still-valid, and reversible/costly never flagged. Correctness 2 — pass-always test. The --no-reversibility-gates parse test substring-matched the whole workflow file, and plan-phase.md prose mentions both tokens in one sentence, so it passed with the bash conditional deleted: it was testing the documentation, not the parser. Now scoped to the fenced bash blocks and matched as one physical line, with a negative control confirming prose alone cannot satisfy it. Correctness 3 — costly had no itemized emission rule, only one-way did, so two agents could diverge on whether to tag costly at all. Correctness 4 — template convention break: the example ratings were bare while every sibling field uses [...] to signal substitution, inviting an LLM to copy one-way/costly forward as boilerplate. Now bracketed. Correctness 5 — latent false-green: .includes('reversible') also matches inside irreversible/irreversibility, which appear in anti-pattern prose, so a surface that dropped the real taxonomy entry would still pass. Now word-boundary matched. ADR-857 phase-6 ceiling — the first gsd-test run caught plan-phase.md 1216 bytes over its frozen 94519 ceiling (it had 49 bytes of headroom on next). The ceiling may only rise for privileged host machinery, and reversibility gating is optional-feature logic, so the wiring was slimmed to its minimum and the explanatory prose moved to the reference files the planner already loads. plan-phase.md is now 94400 bytes -- 119 under the ceiling and 70 bytes SMALLER than on next, so the host loop shrank while gaining the feature, which is what phase 6 ratchets toward. The tracer contract (tests/tracer-bullet.test.cjs) is unchanged. Lint — fixed an unnecessary non-null assertion in verify.cts and a CRLF-fragile bare \n regex in the new test (DEFECT.WINDOWS-CRLF-TEST- PORTABILITY, the #1658/#1668/#2206/#2449/#2450 class). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(#1951): checkpoint fixture must carry the common task elements The gated-one-way fixture built a checkpoint:decision task from the abbreviated skeleton in gsd-planner.md, which shows only the checkpoint-specific elements (<decision>/<context>/<resume-signal>). cmdVerifyPlanStructure requires <name> and <action> on EVERY task regardless of type, so the fixture failed validation for reasons that had nothing to do with reversibility: errors: ["Task missing <name> element", "Task 'unnamed' missing <action>"] Caught by gsd-test on 14d14a39 (2 failures, both this fixture). The canonical shape is in tests/verify.test.cjs:266 — a checkpoint task carries <name>/<files>/<action>/<verify> like any other. Fixture corrected to match. Verified behaviorally against the real gsd-tools CLI across all four cases: gated one-way (valid, silent), ungated one-way (valid, warns), costly (valid, silent), absent (valid, silent). Not a product defect: the validator's every-task contract is intentional and pre-existing, and docs/reference/plan-md.md scopes its required-element list to type=auto/tracer only because those are the elements a planner must author, not because checkpoints are exempt from <name>. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore(#1951): backfill changeset pr number to 2471 * fix(#1951): CodeQL incomplete-sanitization + prompt-injection scan collision Both CI failures were real defects in code this PR added, not false positives. CodeQL js/incomplete-sanitization (high), reversibility-tagging.test.cjs:46 — the namesRating helper built its regex with `rating.replace(/[-]/g, '\\-')`, which escapes the hyphen but not backslash, so the escape was incomplete. It was also unnecessary: `-` carries no special meaning outside a character class. Replaced with a complete metacharacter escape (backslash included). Word-boundary behavior verified unchanged across all three ratings — notably that "irreversible" prose still does not satisfy a "reversible" match, which is the false-green this helper exists to prevent. Prompt injection scan — the checkpoint fixture used the human-verification child element inside <verify>. That tag name is a fake-instruction-boundary pattern in scripts/prompt-injection-scan.sh, and the scan runs over changed files, so copying the shape from tests/verify.test.cjs (unflagged only because it is not in this diff) tripped the gate. Switched to the documented plain-prose <verify> form. The first attempt at that fix failed the same gate a second time: the comment explaining the collision quoted the offending tag literally. The comment now names it in prose instead — the scanner does not care whether a match is code or commentary, which is the whole point of the DEFECT.PROMPT-INJECTION-SCAN-COLLISION note in CLAUDE.md. Verified locally before push: scan reports 0 findings across 57 changed files, eslint clean, and both fixtures still validate as designed (gated one-way silent, ungated one-way warns, neither errors). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(#1951): record measured cost and halve gsd-tools spawns The Windows shard 1/3 job timeout was traced to the sharding layer, not to this PR's assertions — see #2472. Two contributing factors were this file's own, and are fixed here. 1. tests/test-timings.json had no entry for reversibility-tagging.test.cjs, so scripts/run-tests.cjs weighted it at the table's median fallback (~315ms) for LPT chunk packing. It actually measures 5595ms — an 18x under-weight. Recorded the measured value from the green gsd-test run (max across the node22/node24 lanes, per gen-test-timings.cjs's convention). Only this one entry: a full regen churns 634 entries of run-to-run drift, and the table is explicitly advisory and un-gated, so a 637-line diff does not belong in a feature PR. 2. Each verifyPlan() spawns gsd-tools, which dominates this file's cost. Spawns cut from 9 to 6 with no coverage lost: - the ungated-one-way warning and its stays-valid assertion now share one plan instead of building the same plan twice; - the reversible/costly never-flagged-as-ungated test was strictly subsumed by the additive suite, which already runs those two ratings ungated and asserts no /reversibilit/ warning at all — and the gate warning's text contains both "reversibility" and "one-way", so the broader assertion catches it. It only re-spawned gsd-tools twice to prove the same thing. Both are symptom fixes. The shard imbalance itself (19/11/10 minutes against a 20-minute cap, from a cost-blind round-robin partition that also reshuffles downstream files whenever one is inserted) is tracked in #2472. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(#1951): checkpoint fixture adopts the #2444 type-branched contract Surfaced by rebasing onto next, which gained #2444 (branch plan-structure validation on task type=checkpoint:*) while this PR was in review. cmdVerifyPlanStructure no longer applies one required-element set to every task. A checkpoint:decision now requires <name> + <resume-signal> + <decision> + <options>, and is exempt from the <action>/<verify>/<done>/ <files> set that auto and tracer tasks carry. The gated-one-way fixture predated that split and failed on the new requirement: errors: ["Task 'Task 0: Confirm the on-disk format' missing <options>"] Fixture rewritten to mirror the checkpoint:decision contract exactly — real <options> with two <option> children — rather than padding it with fields checkpoints no longer need. That also drops the plain-prose <verify> the earlier revision carried purely to dodge the prompt-injection scan; a checkpoint task has no <verify> requirement at all, so the workaround is moot. Verified against the real gsd-tools CLI across all four cases: gated one-way (valid, silent), ungated one-way (valid, warns), costly (valid, silent), absent (valid, silent). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
651 lines
27 KiB
JSON
651 lines
27 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"generated_by": "scripts/gen-test-timings.cjs",
|
|
"unit": "ms",
|
|
"sources": [
|
|
"test-events-linux-node22.jsonl",
|
|
"test-events-linux-node24.jsonl"
|
|
],
|
|
"file_count": 638,
|
|
"timings": {
|
|
"active-workstream-store.test.cjs": 102,
|
|
"active-workstream-store.unit.test.cjs": 332,
|
|
"adapter-declarative-equivalence.test.cjs": 31,
|
|
"adapter-imperative.test.cjs": 63,
|
|
"adr-15-progress-converge.test.cjs": 50,
|
|
"adr-218-release-version-validation.test.cjs": 62,
|
|
"adr-22-plan-drift-guard.test.cjs": 2737,
|
|
"adr-230-pr-target-policy.test.cjs": 117,
|
|
"adr-612-collision-characterization.test.cjs": 88,
|
|
"adr-index-gate.test.cjs": 4976,
|
|
"adr-parser.property.test.cjs": 1305,
|
|
"adr-parser.test.cjs": 34,
|
|
"adr-parser.unit.test.cjs": 380,
|
|
"adr857-contribution-merge.test.cjs": 90,
|
|
"adr857-core-without-capabilities.test.cjs": 4109,
|
|
"adr857-predicate-boundary.test.cjs": 100,
|
|
"affected-tests-lib.test.cjs": 175,
|
|
"agent-classification-parity.test.cjs": 92,
|
|
"agent-frontmatter.test.cjs": 526,
|
|
"agent-install-check.test.cjs": 91,
|
|
"agent-install-validation.test.cjs": 7395,
|
|
"agent-required-reading-consistency.test.cjs": 142,
|
|
"agent-size-budget.test.cjs": 111,
|
|
"agent-skills-awareness.test.cjs": 55,
|
|
"agent-skills-bootstrap.test.cjs": 315,
|
|
"agent-skills.test.cjs": 20045,
|
|
"ai-evals.test.cjs": 4637,
|
|
"allowlist-ratchet.test.cjs": 70,
|
|
"analyze-dependencies.test.cjs": 30,
|
|
"anti-pattern-enforcement.test.cjs": 59,
|
|
"antigravity-repo-grounding.test.cjs": 220,
|
|
"antigravity-reviewer.test.cjs": 58,
|
|
"antigravity-upgrades.test.cjs": 4908,
|
|
"api-coverage-gate-e2e.test.cjs": 4990,
|
|
"api-coverage.test.cjs": 597,
|
|
"artifacts.test.cjs": 246,
|
|
"ask-user-questions-fallback.test.cjs": 108,
|
|
"assumption-delta-checkpoint-e2e.test.cjs": 3823,
|
|
"assumption-delta.test.cjs": 1017,
|
|
"atomic-write-coverage.test.cjs": 72,
|
|
"audit-command-cutover.test.cjs": 4706,
|
|
"audit-fix-command.test.cjs": 159,
|
|
"augment-conversion.test.cjs": 83,
|
|
"augment-upgrades.test.cjs": 6978,
|
|
"autonomous-allowed-tools.test.cjs": 19,
|
|
"autonomous-converge.test.cjs": 41,
|
|
"autonomous-decomposition.test.cjs": 42,
|
|
"autonomous-interactive.test.cjs": 47,
|
|
"autonomous-to-flag.test.cjs": 44,
|
|
"autonomous-ui-steps.test.cjs": 74,
|
|
"backwards-compat-phase-id.test.cjs": 51,
|
|
"broken-windows.test.cjs": 9220,
|
|
"bugs-1656-1657.test.cjs": 192,
|
|
"capability-cli.test.cjs": 37059,
|
|
"capability-command-dispatch.test.cjs": 177,
|
|
"capability-consent.test.cjs": 6516,
|
|
"capability-consumption.test.cjs": 203,
|
|
"capability-ledger.test.cjs": 1050,
|
|
"capability-lifecycle.test.cjs": 5010,
|
|
"capability-loader.test.cjs": 667,
|
|
"capability-manifest-version.test.cjs": 266,
|
|
"capability-matrix-sync.test.cjs": 31,
|
|
"capability-precedence-parity.test.cjs": 94,
|
|
"capability-registry.test.cjs": 31553,
|
|
"capability-source.test.cjs": 944,
|
|
"capability-state.test.cjs": 6635,
|
|
"capability-trust.test.cjs": 232,
|
|
"capability-writer.test.cjs": 3085,
|
|
"chain-flag-plan-phase.test.cjs": 91,
|
|
"changeset-cli.test.cjs": 6838,
|
|
"changeset-github-release-notes.test.cjs": 814,
|
|
"changeset-lint.test.cjs": 1006,
|
|
"changeset-new.test.cjs": 170,
|
|
"changeset-parse.test.cjs": 122,
|
|
"changeset-render.test.cjs": 37,
|
|
"changeset-serialize.test.cjs": 87,
|
|
"check-env.test.cjs": 9927,
|
|
"check-gap-analysis-plan-post-e2e.test.cjs": 14298,
|
|
"check-glossary-refs.test.cjs": 1108,
|
|
"check-predicate.test.cjs": 306,
|
|
"check-tdd-review-checkpoint-e2e.test.cjs": 5647,
|
|
"check-ui-plan-gate.test.cjs": 127,
|
|
"check-ui-safety-gate.test.cjs": 1839,
|
|
"check-update-config-dir.test.cjs": 277,
|
|
"ci-rebase-check.test.cjs": 1643,
|
|
"ci-test-scope.test.cjs": 40081,
|
|
"cjs-command-router-adapter.test.cjs": 6540,
|
|
"claude-imperative-reference.test.cjs": 72,
|
|
"claude-md-path.test.cjs": 3670,
|
|
"claude-md.test.cjs": 7773,
|
|
"claude-orchestration-command-router.test.cjs": 2626,
|
|
"claude-orchestration.test.cjs": 464,
|
|
"claude-skills-migration.test.cjs": 214,
|
|
"cleanup-branch-pruning.test.cjs": 49,
|
|
"cli-exit.test.cjs": 719,
|
|
"cline-beforetool-upgrade.test.cjs": 66,
|
|
"cline-dispatch-degradation.test.cjs": 135,
|
|
"cline-imperative-reference.test.cjs": 101,
|
|
"cline-install.test.cjs": 3279,
|
|
"cline-model-override-upgrade.test.cjs": 51,
|
|
"cline-support.test.cjs": 40,
|
|
"clock-seam.test.cjs": 8384,
|
|
"close-phase-todos-stage-deletion.test.cjs": 24,
|
|
"clusters.test.cjs": 59,
|
|
"code-review-agent-skills.test.cjs": 32,
|
|
"code-review-command.test.cjs": 413,
|
|
"code-review-flags.test.cjs": 119,
|
|
"code-review-pipeline-regression.test.cjs": 150,
|
|
"code-review-summary-parser.test.cjs": 87,
|
|
"code-review.test.cjs": 2574,
|
|
"codebuddy-install.test.cjs": 2807,
|
|
"codebuddy-upgrades.test.cjs": 2532,
|
|
"codex-config.test.cjs": 108295,
|
|
"codex-declarative-reference.test.cjs": 110,
|
|
"command-arg-projection.test.cjs": 50,
|
|
"command-contract.test.cjs": 1023,
|
|
"command-routing-hub.test.cjs": 29430,
|
|
"commands.test.cjs": 70578,
|
|
"commit-docs-bypass.test.cjs": 2188,
|
|
"commit-files-deletion.test.cjs": 2583,
|
|
"commit-files-pathspec.test.cjs": 4154,
|
|
"concurrency-safety.test.cjs": 12250,
|
|
"config-field-docs.test.cjs": 1203,
|
|
"config-get-default.test.cjs": 18007,
|
|
"config-loader.test.cjs": 6320,
|
|
"config-schema.property.test.cjs": 5229,
|
|
"config.test.cjs": 114417,
|
|
"configuration-migrate-config.test.cjs": 1751,
|
|
"context-enrichment.test.cjs": 124,
|
|
"context-utilization.property.test.cjs": 203,
|
|
"context-utilization.test.cjs": 109,
|
|
"context7-plugin-grant-parity.test.cjs": 111,
|
|
"continuation-grammar-parity.test.cjs": 62,
|
|
"contributor-standards.test.cjs": 63,
|
|
"conventional-title.property.test.cjs": 265,
|
|
"conventional-title.test.cjs": 175,
|
|
"copilot-install.test.cjs": 44480,
|
|
"copilot-upgrades.test.cjs": 4816,
|
|
"core-utils.test.cjs": 247,
|
|
"coverage-metadata-parser.test.cjs": 10769,
|
|
"coverage-uat-routing.test.cjs": 1959,
|
|
"cross-ai-execution.test.cjs": 97,
|
|
"cursor-conversion.test.cjs": 79,
|
|
"cursor-dispatch-upgrade.test.cjs": 68,
|
|
"cursor-hook-bus-upgrade.test.cjs": 69,
|
|
"cursor-hooks.test.cjs": 407,
|
|
"cursor-imperative-reference.test.cjs": 164,
|
|
"cursor-reviewer.test.cjs": 165,
|
|
"debug-session-management.test.cjs": 105,
|
|
"debugger-bug-taxonomy.test.cjs": 103,
|
|
"debugger-fix-acceptance.test.cjs": 83,
|
|
"debugger-prevention.test.cjs": 109,
|
|
"debugger-rca-branching.test.cjs": 112,
|
|
"debugger-repro-hardening.test.cjs": 90,
|
|
"debugger-sbfl.test.cjs": 207,
|
|
"debugger-semantic-recall.test.cjs": 73,
|
|
"decisions.test.cjs": 10172,
|
|
"declarative-reference-antigravity.test.cjs": 1177,
|
|
"declarative-reference-augment.test.cjs": 1271,
|
|
"declarative-reference-codebuddy.test.cjs": 1354,
|
|
"declarative-reference-copilot.test.cjs": 1410,
|
|
"declarative-reference-windsurf.test.cjs": 1779,
|
|
"declarative-reference-zcode.test.cjs": 1756,
|
|
"defaults-json-fallback.test.cjs": 118,
|
|
"derive-progress.property.test.cjs": 207,
|
|
"discord-release-summary.test.cjs": 35,
|
|
"discuss-all-flag.test.cjs": 100,
|
|
"discuss-checkpoint.test.cjs": 69,
|
|
"discuss-mode.test.cjs": 84,
|
|
"discuss-phase-power.test.cjs": 214,
|
|
"dispatcher.test.cjs": 15150,
|
|
"docs-parity-live-registry.test.cjs": 585,
|
|
"docs-update.test.cjs": 7877,
|
|
"drift-detection.test.cjs": 8590,
|
|
"edge-probe-docs-fixtures.test.cjs": 95,
|
|
"edge-probe-planner-contract.test.cjs": 33,
|
|
"edge-probe-spec-phase-contract.test.cjs": 39,
|
|
"edge-probe.test.cjs": 1251,
|
|
"edit-phase.test.cjs": 159,
|
|
"effort-sync-installed-runtime.test.cjs": 2194,
|
|
"ensure-runtime-build.test.cjs": 6601,
|
|
"eslint-rules.test.cjs": 793,
|
|
"eval.property.test.cjs": 207,
|
|
"eval.test.cjs": 92,
|
|
"event.test.cjs": 162,
|
|
"execute-mvp-tdd-gate.test.cjs": 1420,
|
|
"execute-phase-active-flags.test.cjs": 199,
|
|
"execute-phase-step-5-5-deviation-doc.test.cjs": 321,
|
|
"execute-phase-wave.test.cjs": 1293,
|
|
"execute-phase-worktree-artifacts.test.cjs": 73,
|
|
"execute-wave-post-gate-pipeline-e2e.test.cjs": 9138,
|
|
"executor-mvp-tdd-section.test.cjs": 109,
|
|
"explore-command.test.cjs": 44,
|
|
"external-descriptor-confinement.test.cjs": 56,
|
|
"external-descriptor-loader-wiring.test.cjs": 261,
|
|
"external-job-waiting.test.cjs": 82,
|
|
"external-job.test.cjs": 179,
|
|
"extract-learnings.test.cjs": 102,
|
|
"extraction-discipline-consistency.test.cjs": 67,
|
|
"federated-config-key-removal.test.cjs": 137,
|
|
"federated-config-loadconfig.test.cjs": 915,
|
|
"federated-config.test.cjs": 206,
|
|
"few-shot-calibration.test.cjs": 68,
|
|
"fix-1941-quick-worktree-stale-base.test.cjs": 31,
|
|
"fix-2068-resolve-execution-dynamic-routing.test.cjs": 4537,
|
|
"fix-2136-clock-local-today.test.cjs": 746,
|
|
"fix-2138-ship-note-lost-on-merge.test.cjs": 27,
|
|
"fix-2194-review-timeout-guidance.test.cjs": 57,
|
|
"fix-2196-debug-agent-handoff.test.cjs": 51,
|
|
"fix-2257-debug-nonterminal-resume.test.cjs": 104,
|
|
"fix-2284-hermes-agent-delegate-task-projection.test.cjs": 7880,
|
|
"fix-2285-claude-orchestration-wiring.test.cjs": 3226,
|
|
"fix-2287-deferred-items-reader.test.cjs": 2854,
|
|
"fix-2289-context-monitor-event-allowlist.test.cjs": 4471,
|
|
"fix-2297-resolve-model-ids-runtime-scoping.test.cjs": 333,
|
|
"fix-2337-add-todo-severity.test.cjs": 29,
|
|
"fix-2358-review-temp-path-scoping.test.cjs": 117,
|
|
"fixture-builder.test.cjs": 198,
|
|
"forensics.test.cjs": 92,
|
|
"format-github-release-notes.test.cjs": 57,
|
|
"frontmatter-cli.test.cjs": 14617,
|
|
"frontmatter.property.test.cjs": 2347,
|
|
"frontmatter.test.cjs": 7786,
|
|
"frontmatter.unit.test.cjs": 438,
|
|
"gap-checker.property.test.cjs": 10443,
|
|
"gate-predicate-evaluator.test.cjs": 113,
|
|
"gates-taxonomy.test.cjs": 92,
|
|
"gemini-runtime-removed.test.cjs": 5019,
|
|
"gen-registry.test.cjs": 1299,
|
|
"getdirname-registry-derivation.test.cjs": 41,
|
|
"git-base-branch.test.cjs": 6663,
|
|
"global-config-home-fragment.test.cjs": 56,
|
|
"golden-install-parity.test.cjs": 22621,
|
|
"golden-install-tree.test.cjs": 24864,
|
|
"golden-parity-single-source.test.cjs": 56,
|
|
"graphify-auto-update.slow.test.cjs": 31613,
|
|
"graphify-command-cutover.test.cjs": 10275,
|
|
"graphify-graph-path.test.cjs": 681,
|
|
"graphify-query.test.cjs": 1101,
|
|
"graphify-visualization.test.cjs": 3720,
|
|
"graphify.test.cjs": 1175,
|
|
"gsd-check-update-worker-platform-gate.test.cjs": 1382,
|
|
"gsd-mcp-server-bin.test.cjs": 451,
|
|
"gsd-mcp-server.test.cjs": 1033,
|
|
"gsd-researcher-app-aware.test.cjs": 79,
|
|
"gsd-researcher-flow-diagram.test.cjs": 101,
|
|
"gsd-settings-advanced.test.cjs": 2641,
|
|
"gsd-statusline-git.property.test.cjs": 1600,
|
|
"gsd-statusline-state.property.test.cjs": 223,
|
|
"gsd-statusline.test.cjs": 6310,
|
|
"gsd-tools-path-refs.test.cjs": 298,
|
|
"gsd-workflow.structure.test.cjs": 128,
|
|
"gsd2-import.test.cjs": 3459,
|
|
"handshake-serialized.test.cjs": 93,
|
|
"hardcoded-paths.test.cjs": 497,
|
|
"health-validation.test.cjs": 13246,
|
|
"helpers-cleanup.test.cjs": 89,
|
|
"helpers-process-isolation.test.cjs": 38,
|
|
"hermes-dispatch-upgrade.test.cjs": 75,
|
|
"hermes-imperative-reference.test.cjs": 169,
|
|
"hermes-skills-migration.test.cjs": 139,
|
|
"hook-bus.test.cjs": 65,
|
|
"hook-validation.test.cjs": 87,
|
|
"hooks-opt-in.test.cjs": 6422,
|
|
"host-integration-descriptors.test.cjs": 310,
|
|
"host-integration-validator-parity.test.cjs": 150,
|
|
"host-integration.test.cjs": 343,
|
|
"hub-logger-integration.test.cjs": 293,
|
|
"import-command.test.cjs": 207,
|
|
"ingest-docs.test.cjs": 3456,
|
|
"init-manager.test.cjs": 20615,
|
|
"init.test.cjs": 64096,
|
|
"injection-blocking-config.test.cjs": 661,
|
|
"inline-plan-threshold.test.cjs": 815,
|
|
"install-minimal-hooks.test.cjs": 136334,
|
|
"install-nested-layout.test.cjs": 1852,
|
|
"install-path-detection.test.cjs": 5261,
|
|
"install-regressions.test.cjs": 30044,
|
|
"install-runtime-artifacts.test.cjs": 30370,
|
|
"install-update-marker.test.cjs": 137,
|
|
"install-write-confinement.test.cjs": 5239,
|
|
"install.test.cjs": 114366,
|
|
"installer-migration-authoring.test.cjs": 90,
|
|
"installer-migration-install.integration.test.cjs": 55927,
|
|
"installer-migration-prune-stale-pristine.test.cjs": 118,
|
|
"installer-migration-rename-gsd-core.test.cjs": 145,
|
|
"installer-migration-report.test.cjs": 273,
|
|
"installer-migrations.test.cjs": 4798,
|
|
"intel-command-cutover.test.cjs": 6280,
|
|
"intel.test.cjs": 6372,
|
|
"inventory-headings-countfree.test.cjs": 51,
|
|
"inventory-manifest-sync.test.cjs": 42,
|
|
"io.test.cjs": 2003,
|
|
"ios-scaffold-safety.test.cjs": 97,
|
|
"issue-1575-agent-descriptor-parity.test.cjs": 2781,
|
|
"issue-1855-marketplace-manifest.test.cjs": 146,
|
|
"issue-2045-third-party-skills-surface.test.cjs": 2049,
|
|
"issue-2517-runtime-aware-profiles.test.cjs": 1598,
|
|
"issue-2639-codex-toml-neutralization.test.cjs": 47,
|
|
"issue-429-comment-text-gate.test.cjs": 1232,
|
|
"issue-498-identity-drift-lint.test.cjs": 211,
|
|
"issue-498-package-identity.test.cjs": 99,
|
|
"issue-498-update-backup-runtime-dir.test.cjs": 50,
|
|
"issue-498-update-context.test.cjs": 791,
|
|
"issue-57-runtime-install-no-drift.test.cjs": 148,
|
|
"issue-607-cache-lineage.test.cjs": 109,
|
|
"issue-607-installer-dry-run.install.test.cjs": 866,
|
|
"issue-607-legacy-cleanup.test.cjs": 181,
|
|
"issue-69-surface-keeps-nested.test.cjs": 463,
|
|
"issue-766-plugin-manifest.test.cjs": 442,
|
|
"issue-787-cline-hooks-agents.test.cjs": 7503,
|
|
"issue-815-update-next-channel.test.cjs": 125,
|
|
"issue-844-manifest-version-sync.test.cjs": 290,
|
|
"issue-dedupe.test.cjs": 303,
|
|
"issue-version-gate.test.cjs": 238,
|
|
"kilo-imperative-reference.test.cjs": 168,
|
|
"kilo-upgrades.test.cjs": 11403,
|
|
"kimi-agent-converter.test.cjs": 7497,
|
|
"kimi-imperative-reference.test.cjs": 95,
|
|
"kimi-skill-converter.test.cjs": 44,
|
|
"kimi-tool-mapping.test.cjs": 77,
|
|
"kimi-upgrades.test.cjs": 7445,
|
|
"learnings.test.cjs": 1921,
|
|
"lint-docs-required.test.cjs": 127,
|
|
"lint-legacy-dir-name.test.cjs": 957,
|
|
"lint-pr-check-project-dir.test.cjs": 520,
|
|
"lint-regression-test-names.test.cjs": 2172,
|
|
"lint-resolution-provenance.test.cjs": 91,
|
|
"lint-skill-deps.test.cjs": 1579,
|
|
"lint-test-file-count.test.cjs": 1486,
|
|
"list-seeds.property.test.cjs": 184,
|
|
"list-seeds.test.cjs": 8729,
|
|
"locking-bugs-1909-1916-1925-1927.test.cjs": 3269,
|
|
"logger.test.cjs": 146,
|
|
"loop-hook-firing-spike.test.cjs": 70,
|
|
"loop-hooks-empty-points-e2e.test.cjs": 11918,
|
|
"loop-hooks-ship-pre-e2e.test.cjs": 3698,
|
|
"loop-hooks-verify-post-e2e.test.cjs": 5985,
|
|
"loop-host-contract.test.cjs": 246,
|
|
"loop-render-hooks.test.cjs": 6447,
|
|
"m8-writestatemd-scan-after-lock.test.cjs": 58,
|
|
"m9-statelock-write-error-orphan.test.cjs": 40,
|
|
"managed-hooks.test.cjs": 10224,
|
|
"markdown-sectionizer.test.cjs": 2010,
|
|
"markdown-table.test.cjs": 313,
|
|
"mcp-tool-inheritance.test.cjs": 217,
|
|
"mempalace-capture-headless-invocation.test.cjs": 50,
|
|
"methodology-artifact.test.cjs": 85,
|
|
"milestone-archive.test.cjs": 8439,
|
|
"milestone-helper.test.cjs": 70,
|
|
"milestone-prefixed-convention.test.cjs": 3208,
|
|
"milestone-summary.test.cjs": 1646,
|
|
"milestone.test.cjs": 30666,
|
|
"model-adapter.test.cjs": 31,
|
|
"model-alias-map.test.cjs": 25,
|
|
"model-catalog-runtime-defaults.test.cjs": 74,
|
|
"model-catalog-valid-tiers.test.cjs": 58,
|
|
"model-profiles.test.cjs": 2200,
|
|
"model-resolver.test.cjs": 35231,
|
|
"model-routing-spawn-threading.test.cjs": 235,
|
|
"multi-runtime-select.test.cjs": 97,
|
|
"mutation-matrix-ratchet.test.cjs": 373,
|
|
"mutation-matrix-stdin-eagain.test.cjs": 35,
|
|
"mvp-phase-command.test.cjs": 61,
|
|
"mvp-phase-integration.test.cjs": 2508,
|
|
"mvp-phase-spidr.test.cjs": 32,
|
|
"new-milestone-clear-phases.test.cjs": 10113,
|
|
"new-project-mvp-prompt.test.cjs": 103,
|
|
"next-decimal-roadmap-scan.test.cjs": 4986,
|
|
"next-safety-gates.test.cjs": 97,
|
|
"next-up-clear-order.test.cjs": 223,
|
|
"no-bare-npm-exec.rule.test.cjs": 262,
|
|
"no-crlf-fragile-split.rule.test.cjs": 361,
|
|
"no-dead-sdk-refs.test.cjs": 155,
|
|
"no-hardcoded-home-gsd-tools.test.cjs": 285,
|
|
"no-hardcoded-tmp.rule.test.cjs": 369,
|
|
"no-path-literal-in-assert.rule.test.cjs": 588,
|
|
"no-phantom-issue-refs.test.cjs": 890,
|
|
"no-posix-mode-bit-assert.rule.test.cjs": 384,
|
|
"no-unguarded-nonportable-exec.rule.test.cjs": 670,
|
|
"non-claude-runtimes-registry-derivation.test.cjs": 57,
|
|
"normalize-path-in-content.rule.test.cjs": 1379,
|
|
"normalize-test-command.test.cjs": 257,
|
|
"npm-integrity-gate.test.cjs": 4285,
|
|
"onboard-command.test.cjs": 10665,
|
|
"opencode-command-dir-plural.test.cjs": 14645,
|
|
"opencode-imperative-reference.test.cjs": 71,
|
|
"opencode-permissions.test.cjs": 42,
|
|
"opencode-plugin-adapter.test.cjs": 2776,
|
|
"opencode-review-reconstruction.property.test.cjs": 35,
|
|
"orphan-worktree-detection.test.cjs": 1618,
|
|
"orphaned-hooks.test.cjs": 70,
|
|
"package-legitimacy-gate.test.cjs": 378,
|
|
"package-legitimacy.property.test.cjs": 167,
|
|
"package-legitimacy.test.cjs": 294,
|
|
"package-manifest.test.cjs": 59,
|
|
"package-name-single-source.test.cjs": 143,
|
|
"parallel-dependent-plans.test.cjs": 100,
|
|
"path-replacement.test.cjs": 347,
|
|
"pattern-mapper.test.cjs": 3386,
|
|
"pause-work-improvements.test.cjs": 337,
|
|
"perf-315-loadconfig-subrepo-scan.test.cjs": 46,
|
|
"perf-316-state-lock-buffer-alloc.test.cjs": 516,
|
|
"perf-317-context-monitor-fs.test.cjs": 5249,
|
|
"perf-407-planning-lock-buffer-alloc.test.cjs": 80,
|
|
"phase-command-router.test.cjs": 2814,
|
|
"phase-dependency-levels.test.cjs": 86,
|
|
"phase-id-drift-guard.test.cjs": 505,
|
|
"phase-id.test.cjs": 500,
|
|
"phase-lifecycle.test.cjs": 105,
|
|
"phase-locator.test.cjs": 239,
|
|
"phase.test.cjs": 136772,
|
|
"phase6-capability-docs.test.cjs": 71,
|
|
"phase6-capstone-conformance.test.cjs": 3569,
|
|
"phase6-planning-capabilities.test.cjs": 60,
|
|
"phase6-review-capabilities.test.cjs": 135,
|
|
"phases-command-router.test.cjs": 1234,
|
|
"pi-extension-reachability.test.cjs": 1653,
|
|
"pi-imperative-reference.test.cjs": 48,
|
|
"pi-upgrades.test.cjs": 114,
|
|
"pick-flag.test.cjs": 4302,
|
|
"plan-bounce.test.cjs": 1329,
|
|
"plan-phase-drift-guard.test.cjs": 631,
|
|
"plan-phase-mvp-flag.test.cjs": 1426,
|
|
"plan-phase-ui-redirect.test.cjs": 232,
|
|
"plan-pre-hook-e2e.test.cjs": 7778,
|
|
"plan-review-convergence.test.cjs": 1818,
|
|
"planner-decomposition.test.cjs": 189,
|
|
"planner-language-regression.test.cjs": 1075,
|
|
"planner-mvp-mode.test.cjs": 194,
|
|
"planning-workspace.test.cjs": 6988,
|
|
"platform-guard.unit.test.cjs": 693,
|
|
"playwright-ui-verify.test.cjs": 68,
|
|
"policy-138-nyquist-config-default.test.cjs": 33,
|
|
"policy-160-route0-resume.test.cjs": 102,
|
|
"policy-lint-shallow-checkout.test.cjs": 67,
|
|
"policy-release-no-npm-self-upgrade.test.cjs": 62,
|
|
"policy-shell-pinning.test.cjs": 396,
|
|
"portability-rule-disable-ban.test.cjs": 24574,
|
|
"portability-vocab-drift.test.cjs": 1546,
|
|
"post-planning-gaps-2493.test.cjs": 21648,
|
|
"pr-template-policy.test.cjs": 175,
|
|
"precommit-alias-drift-hook.test.cjs": 352,
|
|
"precondition-element.test.cjs": 1141,
|
|
"prepush-enterprise-email-hook.test.cjs": 178,
|
|
"probe-core.property.test.cjs": 325,
|
|
"probe-core.test.cjs": 252,
|
|
"product-name-purity.test.cjs": 69,
|
|
"profile-output.test.cjs": 10693,
|
|
"profile-pipeline.test.cjs": 4712,
|
|
"progress-forensic.test.cjs": 432,
|
|
"progress-mvp-display.test.cjs": 50,
|
|
"prohibition-enforcement.property.test.cjs": 291,
|
|
"prohibition-enforcement.test.cjs": 54884,
|
|
"prohibition-probe.docs-fixtures.test.cjs": 82,
|
|
"prohibition-probe.planner-contract.test.cjs": 25,
|
|
"prohibition-probe.schema.test.cjs": 140,
|
|
"prohibition-probe.spec-phase-contract.test.cjs": 56,
|
|
"prohibition-probe.validators.test.cjs": 37,
|
|
"prohibition-probe.verify-tier.test.cjs": 620,
|
|
"project-instruction-file-parity.test.cjs": 5145,
|
|
"project-root.test.cjs": 114,
|
|
"prompt-budget-cli.test.cjs": 2758,
|
|
"prompt-budget.property.test.cjs": 1749,
|
|
"prompt-budget.test.cjs": 68,
|
|
"prompt-budget.unit.test.cjs": 408,
|
|
"prompt-injection-scan.security.test.cjs": 1318,
|
|
"prompt-thinning.test.cjs": 356,
|
|
"prune-orphaned-worktrees.test.cjs": 1375,
|
|
"quick-branching.test.cjs": 1315,
|
|
"quick-commit-boundary.test.cjs": 67,
|
|
"quick-research.test.cjs": 3543,
|
|
"quick-session-management.test.cjs": 49,
|
|
"qwen-imperative-reference.test.cjs": 101,
|
|
"qwen-skills-migration.test.cjs": 534,
|
|
"qwen-upgrades.test.cjs": 4761,
|
|
"reachability-check.test.cjs": 55,
|
|
"read-guard.test.cjs": 2465,
|
|
"read-injection-scanner.property.test.cjs": 20842,
|
|
"read-injection-scanner.security.test.cjs": 4662,
|
|
"reapply-patches.test.cjs": 178,
|
|
"reapply-verify-hunks.test.cjs": 4848,
|
|
"redaction.test.cjs": 61,
|
|
"refactor-1390-t3-characterization.test.cjs": 138,
|
|
"registry-schema.test.cjs": 378,
|
|
"release-coverage-scope.test.cjs": 31,
|
|
"release-finalize-syncs-next-version.test.cjs": 55,
|
|
"release-tarball-smoke-bin-invocation.test.cjs": 35,
|
|
"release-tarball-smoke-workflow.test.cjs": 59,
|
|
"release-tarball-smoke.install.test.cjs": 144419,
|
|
"repo-invariants.test.cjs": 21850,
|
|
"repo-layout.test.cjs": 101,
|
|
"representative-corpus.test.cjs": 4322,
|
|
"require-fs-op-fallback.rule.test.cjs": 430,
|
|
"require-userprofile-with-home.rule.test.cjs": 205,
|
|
"research-agent-profiles.test.cjs": 316,
|
|
"research-cli.test.cjs": 11909,
|
|
"research-provider.property.test.cjs": 262,
|
|
"research-provider.test.cjs": 144,
|
|
"research-store.property.test.cjs": 326,
|
|
"research-store.test.cjs": 405,
|
|
"resolution.test.cjs": 37,
|
|
"reversibility-tagging.test.cjs": 5595,
|
|
"review-default-reviewers-config.test.cjs": 6391,
|
|
"review-default-reviewers-resolution.test.cjs": 81,
|
|
"review-default-reviewers-workflow.test.cjs": 128,
|
|
"review-model-config.test.cjs": 9411,
|
|
"review-reviewer-instances-config.test.cjs": 1998,
|
|
"review-reviewer-instances.test.cjs": 84,
|
|
"review-reviewer-selection.test.cjs": 61,
|
|
"roadmap-command-router.test.cjs": 77,
|
|
"roadmap-mode-field.test.cjs": 2558,
|
|
"roadmap-parser.test.cjs": 33080,
|
|
"roadmap-phase-fallback.test.cjs": 3736,
|
|
"roadmap-upgrade.test.cjs": 957,
|
|
"roadmap.test.cjs": 55342,
|
|
"roadmapper-granularity.test.cjs": 5203,
|
|
"run-tests-harness.test.cjs": 161263,
|
|
"run-with-timeout.test.cjs": 18008,
|
|
"runtime-artifact-install-plan.test.cjs": 142,
|
|
"runtime-artifact-layout-descriptor-drive.test.cjs": 322,
|
|
"runtime-artifact-layout-install-profiles.test.cjs": 2604,
|
|
"runtime-artifact-layout-surface.test.cjs": 1754,
|
|
"runtime-artifact-layout.test.cjs": 3980,
|
|
"runtime-config-adapter-registry.test.cjs": 196,
|
|
"runtime-converters.test.cjs": 893,
|
|
"runtime-flags.test.cjs": 62,
|
|
"runtime-homes-descriptor-drive.test.cjs": 473,
|
|
"runtime-homes.property.test.cjs": 501,
|
|
"runtime-label-policy.test.cjs": 51,
|
|
"runtime-launcher-parity.test.cjs": 3251,
|
|
"runtime-name-policy.test.cjs": 255,
|
|
"scan-command.test.cjs": 91,
|
|
"schema-drift.test.cjs": 6347,
|
|
"sdk-removal-query-family-dispatch.test.cjs": 3029,
|
|
"sdk-smoke.test.cjs": 42,
|
|
"secret-scan-lint.security.test.cjs": 4752,
|
|
"secure-phase-single-writer.test.cjs": 52,
|
|
"secure-phase.test.cjs": 261,
|
|
"security-dead-exports.regression.test.cjs": 112,
|
|
"security-prompt-injection.security.test.cjs": 9359,
|
|
"security-scan.security.test.cjs": 11654,
|
|
"security.test.cjs": 1956,
|
|
"seed-scan-new-milestone.test.cjs": 54,
|
|
"semver-compare.test.cjs": 168,
|
|
"settings-integrations.test.cjs": 13052,
|
|
"settings-jsonc.test.cjs": 149,
|
|
"sh-hook-paths.test.cjs": 195,
|
|
"shell-command-projection-dispatch.test.cjs": 3711,
|
|
"shell-command-projection-path-sep.test.cjs": 173,
|
|
"skill-frontmatter-contract.test.cjs": 872,
|
|
"skill-manifest.test.cjs": 4312,
|
|
"slash-command-namespace.test.cjs": 4520,
|
|
"slurm-adapter.test.cjs": 112,
|
|
"smart-entry.unit.test.cjs": 3312,
|
|
"spawn-liveness-banner.test.cjs": 160,
|
|
"spec-section.test.cjs": 606,
|
|
"stale-bake-guard.test.cjs": 376,
|
|
"state-acquirestatelock-non-eexist.test.cjs": 126,
|
|
"state-command-cutover.test.cjs": 1467,
|
|
"state-io.test.cjs": 72,
|
|
"state-prune.test.cjs": 6401,
|
|
"state-rebuild-cli.test.cjs": 3801,
|
|
"state-rebuild.test.cjs": 85,
|
|
"state-transition.test.cjs": 455,
|
|
"state.test.cjs": 116217,
|
|
"stats-mvp-display.test.cjs": 1082,
|
|
"subagent-timeout.test.cjs": 6840,
|
|
"surface-empty-manifest-agents.test.cjs": 119,
|
|
"surface-md-paths.regression.test.cjs": 38,
|
|
"sync-next-version.test.cjs": 148,
|
|
"table-schema-drift-lint.test.cjs": 789,
|
|
"tdd-mode.test.cjs": 8685,
|
|
"teams-status.test.cjs": 3434,
|
|
"temp-subdir.test.cjs": 93,
|
|
"template.test.cjs": 5110,
|
|
"test-failure-reasons.test.cjs": 47,
|
|
"test-gate-watch-mode.test.cjs": 198,
|
|
"thinking-model-guidance.test.cjs": 296,
|
|
"thinking-partner.test.cjs": 716,
|
|
"thread-session-management.test.cjs": 114,
|
|
"trace-correlation.test.cjs": 74,
|
|
"tracer-bullet.test.cjs": 2778,
|
|
"trae-imperative-reference.test.cjs": 66,
|
|
"trae-upgrades.test.cjs": 4593,
|
|
"transition-verification-gate.test.cjs": 38,
|
|
"tsconfig-noemit.test.cjs": 6383,
|
|
"uat-predicate.test.cjs": 668,
|
|
"uat.test.cjs": 15879,
|
|
"ui-checker-adversarial-stance.test.cjs": 26,
|
|
"ui-consideration-probe-docs-fixtures.test.cjs": 88,
|
|
"ui-consideration-probe.test.cjs": 347,
|
|
"ui-review-next-guidance.test.cjs": 65,
|
|
"ui-safety-gate.test.cjs": 78,
|
|
"ultraplan-phase.test.cjs": 169,
|
|
"untrusted-input-isolation.test.cjs": 706,
|
|
"update-custom-backup.test.cjs": 8333,
|
|
"update-size-baseline.test.cjs": 115,
|
|
"validate-context.test.cjs": 4346,
|
|
"validate-registry.test.cjs": 1266,
|
|
"verification-overrides.test.cjs": 136,
|
|
"verification-status.test.cjs": 614,
|
|
"verifier-behavior-unverified.test.cjs": 116,
|
|
"verifier-deferred-items.test.cjs": 92,
|
|
"verifier-mvp-section.test.cjs": 72,
|
|
"verifier-spotcheck-test-discipline.test.cjs": 139,
|
|
"verify-health.test.cjs": 34751,
|
|
"verify-mvp-uat.test.cjs": 63,
|
|
"verify-npm-publish.test.cjs": 100,
|
|
"verify-test-quality.test.cjs": 532,
|
|
"verify-work-auto-transition.test.cjs": 78,
|
|
"verify.test.cjs": 26790,
|
|
"vscode-browser-no-node-api.test.cjs": 36,
|
|
"vscode-extension-reachability.test.cjs": 1838,
|
|
"vscode-ide-reference.test.cjs": 155,
|
|
"vscode-lm-tools.test.cjs": 1616,
|
|
"vscode-subagent-dispatch.test.cjs": 1866,
|
|
"windows-robustness.test.cjs": 234,
|
|
"windsurf-conversion.test.cjs": 133,
|
|
"windsurf-hooks-bridge.test.cjs": 5096,
|
|
"windsurf-install.test.cjs": 47,
|
|
"workflow-compat.test.cjs": 386,
|
|
"workflow-guard-registration.test.cjs": 375,
|
|
"workflow-maintainer-skip.test.cjs": 142,
|
|
"workflow-shell-pinning.test.cjs": 101,
|
|
"workflow-size-budget.test.cjs": 473,
|
|
"workflow-size.test.cjs": 196,
|
|
"workflow-step-tag-balance.test.cjs": 336,
|
|
"workspace.test.cjs": 7399,
|
|
"workstream-inventory.test.cjs": 73,
|
|
"workstream-name-policy.test.cjs": 61,
|
|
"workstream.test.cjs": 40951,
|
|
"worktree-base-ref.test.cjs": 202,
|
|
"worktree-baseref-install.test.cjs": 11950,
|
|
"worktree-cleanup.test.cjs": 1901,
|
|
"worktree-safety.test.cjs": 14332,
|
|
"worktree.test.cjs": 1409,
|
|
"write-set.test.cjs": 172
|
|
}
|
|
}
|