voyage/tests/lib
Kjell Tore Guttormsen 1989656a9c
feat(run): the run step names Claude Code's run; owner=run is a built-in owner (A2)
The coupling to Claude Code's built-in run skill (wave 4, order A2,
decisions 54 and 64). The plan's "run the thing" step, the executor's
End to end part and the plan template each say in one sentence that the
app is seen and driven with run, and that the verdict is still the
End-to-end: command, because run gives no exit code. The template quotes
the name instead of backticking it: every backticked span on a template
step bullet is read as a runnable example.

R2: lib/skills/routing.mjs keeps a short fixed list of Claude Code's own
skills a quiet case may name as owner (BUILTIN_OWNERS, only run, seen in
2.1.303). For such an owner only "not taken" is checked, and the report
says so; ROUTING_NEGATIVE_WON stands, and an owner on no list is still
ROUTING_UNKNOWN_OWNER. skill-writing-criteria-quiet-2 gets owner=run.

The trekplan.md paragraph is reflowed to its old line count so the stats
line_ref there does not move (order B edits the same file); the
trekexecute Phase 9 line_ref fixture moves by two lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:26:10 +02:00
..
agent-frontmatter.test.mjs fix(agents): no agent is pinned below the high floor 2026-10-05 17:40:53 +02:00
approval-log.test.mjs feat(brief): ceremony by size, one question round, logged and committed approvals 2026-10-06 19:44:42 +02:00
arch-rules.test.mjs refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs] 2026-10-12 21:06:47 +02:00
arg-parser.test.mjs feat(voyage): S11 — NW2 part B, integrate opt-in --workflow flag 2026-06-18 17:22:09 +02:00
artifact-commit-trailer.test.mjs fix(approval): a trailer with a blank or padded name is refused 2026-10-13 14:40:10 +02:00
artifact-commit.test.mjs refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs] 2026-10-12 21:06:47 +02:00
atomic-write.test.mjs refactor(ultraplan-local): extract atomicWriteJson to lib/util 2026-05-01 20:21:15 +02:00
autonomy-gate.test.mjs feat(ultraplan-local): add autonomy-gate state machine + manifest schema extensions for skip_commit_check + memory_write 2026-05-04 06:28:47 +02:00
bash-normalize.test.mjs feat(ultraplan-local): Spor 1 wave 1 — lib/parsers + 66 tests grønn 2026-05-01 05:35:28 +02:00
cache-analyzer.test.mjs test(observability): close 2 MAJOR test gaps from SKAL-2 review 2026-06-26 17:14:03 +02:00
claimed-order.test.mjs test(stats): a project_dir inside cwd finds the repo that holds it 2026-10-05 12:41:44 +02:00
cleanup.test.mjs feat(voyage)!: rename produced_by field values + validator comments [skip-docs] 2026-05-05 14:42:21 +02:00
coordinator-contract.test.mjs fix: close the gaps the review of the trial-5 fixes found 2026-10-18 20:11:08 +02:00
coupling-prose-pins.test.mjs feat(trekexecute): couple the executor to the review gate, the plan approval and the step checks 2026-10-09 19:22:00 +02:00
criteria-runner.test.mjs fix: round 6 of the release review of 6.3.0 2026-10-11 01:07:47 +02:00
critic-diff.test.mjs feat(plan): the operative line map and a deterministic line diff for the critic loop [skip-docs] 2026-10-15 16:49:21 +02:00
critic-severity-rules.test.mjs fix(plan): plan-critic and scope-guardian state rule B, mark previous findings and tag security findings 2026-10-16 01:06:42 +02:00
doc-consistency.test.mjs fix(docs): the trekbrief pass branch names no Brief Quality, and the stats rows span their blocks 2026-10-13 19:16:51 +02:00
done-line.test.mjs fix(execute): the step loop survives an adversarial review 2026-10-06 20:17:39 +02:00
engine-findings.test.mjs fix(review): close the gate's fail-open paths an independent review found 2026-10-06 20:03:16 +02:00
executor-prose-pins.test.mjs fix(execute): the helper and the executor give red proof no list 2026-10-14 12:32:29 +02:00
fidelity-diff.test.mjs fix: close the gaps the review of the trial-5 fixes found 2026-10-18 20:11:08 +02:00
files-reader-regressions.test.mjs fix(plan): a list joiner no longer ends the read of a plain path below 1.9 2026-10-13 12:26:07 +02:00
finding-id.test.mjs feat(ultraplan-local): add lib/parsers/finding-id.mjs (stable SHA1) 2026-05-01 13:28:05 +02:00
findings-schema.test.mjs feat(voyage): S9 — NW1 reviewer-output schema contract (TDD, ungated) 2026-06-18 14:06:07 +02:00
frontmatter.test.mjs feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs] 2026-05-05 15:08:20 +02:00
gates-flag-coverage.test.mjs feat(voyage)!: rename commands, templates, fixtures for v4.0.0 [skip-docs] 2026-05-05 14:13:44 +02:00
gold-corpus.test.mjs feat(eval): add gold.json golden corpus + loader/validator test 2026-06-26 11:51:46 +02:00
gold-eval.test.mjs feat(eval): SKAL-1·4b offline gold-scored output eval 2026-06-30 09:00:33 +02:00
gold-scorer.test.mjs feat(eval): SKAL-1·4b offline gold-scored output eval 2026-06-30 09:00:33 +02:00
guards-prose-pins.test.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
independent-review-fixes.test.mjs fix(tests): the suite no longer hands the session id to the lock CLI 2026-10-12 14:09:14 +02:00
intent-prose-pins.test.mjs feat(skills): interviewing - one source for the brief's question round (order 7e) 2026-10-17 07:44:42 +02:00
jaccard.test.mjs feat(ultraplan-local): add lib/parsers/jaccard.mjs 2026-05-01 13:28:44 +02:00
main-merge-gate.test.mjs feat(voyage)!: rename commands, templates, fixtures for v4.0.0 [skip-docs] 2026-05-05 14:13:44 +02:00
manifest-schema-extensions.test.mjs feat(voyage): add OPTIONAL_STRING_KEYS path to manifest-yaml — profile_used additive 2026-05-09 09:23:32 +02:00
manifest-yaml.test.mjs feat(graceful-handoff): 2.0 — migrate to skills/ with disable-model-invocation [skip-docs] 2026-05-01 05:45:26 +02:00
no-claude-code-launch.test.mjs fix(guard): refuse every asked-about call where no one can be asked 2026-10-09 19:36:21 +02:00
p10-model-free.test.mjs feat(routing): every eval case names its event; the P10 eval gate is exempted with its reason (A1) 2026-10-19 18:15:00 +02:00
park-attempt-files.test.mjs fix: close the gaps the review of the trial-5 fixes found 2026-10-18 20:11:08 +02:00
phase-signal-resolver.test.mjs test(validators): cover fable accept + unknown-model reject in both gate layers 2026-07-02 16:56:26 +02:00
plan-prose-pins.test.mjs feat(plan): plan_version 1.9 is the current target, the file first on every line [skip-docs] 2026-10-12 16:42:28 +02:00
plan-review-dedup.test.mjs fix(review): plan dedup passes the reviewers' marks and rule-B fields through and keeps distinct file-level findings 2026-10-16 00:14:02 +02:00
plan-schema.test.mjs feat(plan): plan_version 1.9 is the current target, the file first on every line [skip-docs] 2026-10-12 16:42:28 +02:00
plan-scope-sweep.test.mjs feat(plan): plan 1.8, the plan gate, the design part and the plan-side checks 2026-10-06 20:10:57 +02:00
plan-version-1-9-docs.test.mjs test(changelog): find the 6.4.0 section by its title, before and after the release commit 2026-10-17 00:13:32 +02:00
plugin-root-resolution.test.mjs feat(trekexecute): couple the executor to the review gate, the plan approval and the step checks 2026-10-09 19:22:00 +02:00
proevesett.test.mjs test(proevesett): a capitalised opposite verdict refuses says-pass/says-fail (red) 2026-09-23 11:33:19 +02:00
profile-application.test.mjs test(profiles): pin fable profile resolution end-to-end 2026-07-02 17:00:43 +02:00
profile-flag-coverage.test.mjs feat(voyage): document --profile flag in all 6 commands — SC #4 + arv-policy 2026-05-09 09:38:36 +02:00
profile-resolver.test.mjs test(profiles): pin fable profile resolution end-to-end 2026-07-02 17:00:43 +02:00
profile-stats-fields.test.mjs feat(trekresearch): emit and export the five STORM measurement fields 2026-08-09 15:01:15 +02:00
project-discovery.test.mjs feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs] 2026-05-05 15:08:20 +02:00
reading-defects.test.mjs fix: brief template teaches runnable criteria; commands call validators through the plugin root 2026-10-08 08:52:52 +02:00
red-proof.test.mjs refactor(simplify): drop a dead branch and repeated fixtures from the round-2 remediation 2026-10-14 13:43:24 +02:00
release-prose-pins.test.mjs feat(routing): every eval case names its event; the P10 eval gate is exempted with its reason (A1) 2026-10-19 18:15:00 +02:00
repo-tools.test.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
research-loop-cap.test.mjs refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs] 2026-10-12 21:06:47 +02:00
retired-references.test.mjs test(hygiene): no tracked file may carry a retired-repository reference (red) 2026-09-23 12:25:43 +02:00
retterunde-prose-pins.test.mjs fix(execute): the helper and the executor give red proof no list 2026-10-14 12:32:29 +02:00
retterunde.test.mjs fix(examples): the verbose-content test moves into the step that wires it [skip-docs] 2026-10-09 22:24:03 +02:00
review-630.test.mjs feat(routing): every eval case names its event; the P10 eval gate is exempted with its reason (A1) 2026-10-19 18:15:00 +02:00
review-determinism.test.mjs feat(voyage)!: rename commands, templates, fixtures for v4.0.0 [skip-docs] 2026-05-05 14:13:44 +02:00
review-findings-kept.test.mjs fix: close the gaps the review of the trial-5 fixes found 2026-10-18 20:11:08 +02:00
review-loop-docs.test.mjs test(changelog): find the 6.4.0 section by its title, before and after the release commit 2026-10-17 00:13:32 +02:00
review-prose-pins.test.mjs fix(ui): English labels where Voyage shows Norwegian to every user 2026-10-17 01:00:34 +02:00
review-recurrence.test.mjs fix(review): close the gate's fail-open paths an independent review found 2026-10-06 20:03:16 +02:00
rule-catalogue.test.mjs fix: the second lekerepo trial's faults that made a result wrong or misleading 2026-10-08 15:12:07 +02:00
run-coupling-prose-pins.test.mjs feat(run): the run step names Claude Code's run; owner=run is a built-in owner (A2) 2026-10-19 18:26:10 +02:00
session-id-isolation.test.mjs refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs] 2026-10-12 21:06:47 +02:00
session-orders.test.mjs refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs] 2026-10-12 21:06:47 +02:00
skill-lint.test.mjs feat(skills): skill workshop, test-first and debugging preloaded into the step helper 2026-10-08 21:38:58 +02:00
skill-routing.test.mjs feat(run): the run step names Claude Code's run; owner=run is a built-in owner (A2) 2026-10-19 18:26:10 +02:00
skills-brief-prose-pins.test.mjs feat(skills): interviewing - one source for the brief's question round (order 7e) 2026-10-17 07:44:42 +02:00
skills-criteria-prose-pins.test.mjs feat(skills): writing-criteria, one source for runnable criteria (order 7c) 2026-10-17 07:39:04 +02:00
skills-research-prose-pins.test.mjs merge: main (7a skills workshop, 9 rettepakke) into wave2-skills-research 2026-10-09 19:34:38 +02:00
skills-review-prose-pins.test.mjs feat(skills): reviewing-adversarially, one stance for every reviewer 2026-10-17 07:34:08 +02:00
skills-workshop-prose-pins.test.mjs feat(skills): skill workshop, test-first and debugging preloaded into the step helper 2026-10-08 21:38:58 +02:00
source-findings.test.mjs feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs] 2026-05-05 15:08:20 +02:00
stats-event-emit.test.mjs fix(tests): the suite no longer hands the session id to the lock CLI 2026-10-12 14:09:14 +02:00
stats-landing.test.mjs fix(tests): the suite no longer hands the session id to the lock CLI 2026-10-12 14:09:14 +02:00
step-check.test.mjs fix(tests): the suite no longer hands the session id to the lock CLI 2026-10-12 14:09:14 +02:00
synthesis-digest-schema.test.mjs feat(voyage): S12 — NW3 synthesis-agent built + measured → declined per measurement [skip-docs] 2026-06-18 17:58:39 +02:00
test-census.test.mjs feat(eval): SKAL-1·4b offline gold-scored output eval 2026-06-30 09:00:33 +02:00
test-first-multi-file.test.mjs fix(execute): below 1.8 a plan that names no test file gets the files the helper wrote 2026-10-14 18:17:24 +02:00
test-integrity.test.mjs fix(execute): the step loop survives an adversarial review 2026-10-06 20:17:39 +02:00
test-lock.test.mjs refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs] 2026-10-12 21:06:47 +02:00
timing-under-load.test.mjs fix(tests): the post-compact hook test takes its child timeout from the shared timing helper 2026-10-15 15:43:36 +02:00
token-usage.test.mjs feat(stats): add claude-fable-5 to PRICE_TABLE 2026-07-02 17:15:36 +02:00
trial-mechanical-fixes.test.mjs fix: the trial's mechanical faults -- approval label, import path, stats, annotate path, red kind 2026-10-08 06:53:15 +02:00
trial2-fixes.test.mjs fix: close what an independent review found in the trial 2 fixes 2026-10-08 15:21:56 +02:00
trial2-minor-prose-pins.test.mjs feat(trekplan): Regression and On failure step rules, and trial 2's minor fixes 2026-10-08 21:42:21 +02:00
trial2-minor.test.mjs feat(trekplan): Regression and On failure step rules, and trial 2's minor fixes 2026-10-08 21:42:21 +02:00
verdict-gate.test.mjs fix(review): a review with a control that did not run stops a merge 2026-10-06 20:06:29 +02:00