voyage/tests/lib
Kjell Tore Guttormsen f6e18a1d09
feat(skills): interviewing - one source for the brief's question round (order 7e)
/trekbrief Phase 3 carried the interview form inline. It now asks for the
new skill voyage:interviewing by name (allowed-tools gains Skill) and keeps
only its own contract: the size class and budget, the three fixed questions
(framing first, class, storage), where each answer lands in the brief, and
the answers that decide nothing. Step 3a and the form points of Step 3c move
into the skill with their credits (Pocock, Osmani, Spec Kit; licences and
line ranges checked at the pinned commits).

Red baseline first (3 helper interviews against a fixed answer sheet,
Opus 5.5): 10-11 questions in round 1 (3 of 3), 15 of 31 without a
recommendation, a hollow answer written in as a decision (2 of 3), unasked
scope as a requirement (2 of 3). With the skill: 4, 0 of 12, 0 of 3, 0 of 3.
Fact questions and stopping did not fail without it.

Also: pointers to voyage:writing-criteria (S3) where criteria are asked and
written, both review skill names (S3 + S4) in the brief-reviewer prompt; the
intent pins that read moved text now read the skill, same assertions; the
Phase 7 line_ref moves with the shorter Phase 3; 7 eval cases (3/2/2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 07:44:42 +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(review): close the gate's fail-open paths an independent review found 2026-10-06 20:03:16 +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 feat(review): the review is a gate - verdict in the file, CC engine, project memory 2026-10-06 19:45:52 +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
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(release): a drilled release and rollback runbook, and a release check 2026-10-08 21:32:36 +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 fix(tests): the control-run test leaves headroom over a slow start 2026-10-14 18:07:12 +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: the second lekerepo trial's faults that made a result wrong or misleading 2026-10-08 15:12:07 +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
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(skills): skill workshop, test-first and debugging preloaded into the step helper 2026-10-08 21:38:58 +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-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-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