feat(voyage)!: rename commands, templates, fixtures for v4.0.0 [skip-docs]
This commit is contained in:
parent
a975c9943c
commit
47a4ad47d8
23 changed files with 99 additions and 98 deletions
|
|
@ -20,7 +20,7 @@ import { runHook } from '../helpers/hook-helper.mjs';
|
|||
|
||||
const HERE = dirname(fileURLToPath(import.meta.url));
|
||||
const ROOT = join(HERE, '..', '..');
|
||||
const COMMAND_FILE = join(ROOT, 'commands', 'ultracontinue-local.md');
|
||||
const COMMAND_FILE = join(ROOT, 'commands', 'trekcontinue.md');
|
||||
const PRE_BASH = join(ROOT, 'hooks', 'scripts', 'pre-bash-executor.mjs');
|
||||
|
||||
function readCommand() {
|
||||
|
|
@ -67,14 +67,14 @@ test('templates/plan-template.md declares plan_version: 1.7', () => {
|
|||
assert.match(tpl, /plan_version:\s*['"]?1\.7['"]?/);
|
||||
});
|
||||
|
||||
test('commands/ultraexecute-local.md still parses v1.7 plan schema', () => {
|
||||
const cmd = read('commands/ultraexecute-local.md');
|
||||
test('commands/trekexecute.md still parses v1.7 plan schema', () => {
|
||||
const cmd = read('commands/trekexecute.md');
|
||||
const tpl = read('templates/plan-template.md');
|
||||
const tplVersion = (tpl.match(/plan_version:\s*['"]?([\d.]+)['"]?/) || [])[1];
|
||||
assert.ok(tplVersion, 'templates/plan-template.md missing plan_version');
|
||||
assert.ok(
|
||||
cmd.includes(`plan_version`) || cmd.includes(`Step N:`) || cmd.includes('### Step '),
|
||||
'commands/ultraexecute-local.md should reference v1.7 plan-schema parsing',
|
||||
'commands/trekexecute.md should reference v1.7 plan-schema parsing',
|
||||
);
|
||||
});
|
||||
|
||||
|
|
@ -96,7 +96,7 @@ test('settings.json no longer carries vestigial exploration block', () => {
|
|||
|
||||
test('CLAUDE.md mentions all five pipeline commands', () => {
|
||||
const md = read('CLAUDE.md');
|
||||
for (const c of ['/ultrabrief-local', '/ultraresearch-local', '/ultraplan-local', '/ultraexecute-local', '/ultrareview-local']) {
|
||||
for (const c of ['/trekbrief', '/trekresearch', '/trekplan', '/trekexecute', '/trekreview']) {
|
||||
assert.ok(md.includes(c), `CLAUDE.md missing reference to ${c}`);
|
||||
}
|
||||
});
|
||||
|
|
@ -114,7 +114,7 @@ test('HANDOVER-CONTRACTS.md contains Handover 7 section (session-state)', () =>
|
|||
assert.ok(
|
||||
text.includes('## Handover 7'),
|
||||
'docs/HANDOVER-CONTRACTS.md should document Handover 7 (.session-state.local.json) ' +
|
||||
'consumed by /ultracontinue',
|
||||
'consumed by /trekcontinue',
|
||||
);
|
||||
assert.ok(
|
||||
text.includes('.session-state.local.json'),
|
||||
|
|
@ -136,7 +136,7 @@ test('session-state-validator has CLI shim', () => {
|
|||
assert.ok(
|
||||
text.includes('import.meta.url === '),
|
||||
'lib/validators/session-state-validator.mjs should expose the standard CLI shim ' +
|
||||
'(if (import.meta.url === `file://${process.argv[1]}`)) so /ultracontinue can call it from Bash',
|
||||
'(if (import.meta.url === `file://${process.argv[1]}`)) so /trekcontinue can call it from Bash',
|
||||
);
|
||||
});
|
||||
|
||||
|
|
@ -145,7 +145,7 @@ test('next-session-prompt-validator has CLI shim', () => {
|
|||
assert.ok(
|
||||
text.includes('import.meta.url === '),
|
||||
'lib/validators/next-session-prompt-validator.mjs should expose the standard CLI shim ' +
|
||||
'(if (import.meta.url === `file://${process.argv[1]}`)) so /ultracontinue Phase 1.5 can call it from Bash',
|
||||
'(if (import.meta.url === `file://${process.argv[1]}`)) so /trekcontinue Phase 1.5 can call it from Bash',
|
||||
);
|
||||
});
|
||||
|
||||
|
|
@ -177,11 +177,11 @@ test('HANDOVER-CONTRACTS.md Handover 7 § Lifecycle names --cleanup and produced
|
|||
);
|
||||
});
|
||||
|
||||
test('CLAUDE.md mentions /ultracontinue-local command', () => {
|
||||
test('CLAUDE.md mentions /trekcontinue command', () => {
|
||||
const md = read('CLAUDE.md');
|
||||
assert.ok(
|
||||
md.includes('/ultracontinue-local') || md.includes('ultracontinue-local'),
|
||||
'CLAUDE.md should document /ultracontinue-local in the Commands table ' +
|
||||
md.includes('/trekcontinue') || md.includes('trekcontinue'),
|
||||
'CLAUDE.md should document /trekcontinue in the Commands table ' +
|
||||
'(added in v3.3.0 alongside the new command file)',
|
||||
);
|
||||
});
|
||||
|
|
@ -216,12 +216,12 @@ test('headless-launch-template.md mirrors Phase 2.6 hardenings', () => {
|
|||
});
|
||||
|
||||
test('Phase 9 prose mandates parallel single-message dispatch + inline dedup', () => {
|
||||
const cmd = read('commands/ultraplan-local.md');
|
||||
const cmd = read('commands/trekplan.md');
|
||||
const orch = read('agents/planning-orchestrator.md');
|
||||
// Single-message reinforcement appears in both (command + orchestrator)
|
||||
assert.ok(
|
||||
cmd.includes('single assistant message turn'),
|
||||
'commands/ultraplan-local.md Phase 9 should reinforce single-message parallel dispatch',
|
||||
'commands/trekplan.md Phase 9 should reinforce single-message parallel dispatch',
|
||||
);
|
||||
assert.ok(
|
||||
orch.includes('single assistant message turn'),
|
||||
|
|
@ -230,7 +230,7 @@ test('Phase 9 prose mandates parallel single-message dispatch + inline dedup', (
|
|||
// Dedup CLI shim is wired in both
|
||||
assert.ok(
|
||||
cmd.includes('plan-review-dedup.mjs'),
|
||||
'commands/ultraplan-local.md Phase 9 should call lib/review/plan-review-dedup.mjs after both reviewers complete',
|
||||
'commands/trekplan.md Phase 9 should call lib/review/plan-review-dedup.mjs after both reviewers complete',
|
||||
);
|
||||
assert.ok(
|
||||
orch.includes('plan-review-dedup.mjs'),
|
||||
|
|
@ -238,8 +238,8 @@ test('Phase 9 prose mandates parallel single-message dispatch + inline dedup', (
|
|||
);
|
||||
});
|
||||
|
||||
test('commands/ultraplan-local.md Phase 8 seals Opus-4.7 schema-drift defense', () => {
|
||||
const cmd = read('commands/ultraplan-local.md');
|
||||
test('commands/trekplan.md Phase 8 seals Opus-4.7 schema-drift defense', () => {
|
||||
const cmd = read('commands/trekplan.md');
|
||||
// Locate Phase 8 section
|
||||
const phase8Start = cmd.indexOf('## Phase 8');
|
||||
assert.ok(phase8Start >= 0, 'Phase 8 heading missing');
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@ const ROOT = join(HERE, '..', '..');
|
|||
function read(rel) { return readFileSync(join(ROOT, rel), 'utf-8'); }
|
||||
|
||||
const COMMANDS = [
|
||||
'commands/ultrabrief-local.md',
|
||||
'commands/ultraresearch-local.md',
|
||||
'commands/ultraplan-local.md',
|
||||
'commands/ultraexecute-local.md',
|
||||
'commands/trekbrief.md',
|
||||
'commands/trekresearch.md',
|
||||
'commands/trekplan.md',
|
||||
'commands/trekexecute.md',
|
||||
];
|
||||
|
||||
for (const cmdPath of COMMANDS) {
|
||||
|
|
@ -39,10 +39,10 @@ for (const cmdPath of COMMANDS) {
|
|||
});
|
||||
}
|
||||
|
||||
test('commands/ultraexecute-local.md mentions MAIN_MERGE_GATE', () => {
|
||||
const text = read('commands/ultraexecute-local.md');
|
||||
test('commands/trekexecute.md mentions MAIN_MERGE_GATE', () => {
|
||||
const text = read('commands/trekexecute.md');
|
||||
assert.ok(
|
||||
text.includes('MAIN_MERGE_GATE'),
|
||||
'commands/ultraexecute-local.md should name MAIN_MERGE_GATE — the only boundary that always pauses regardless of --gates',
|
||||
'commands/trekexecute.md should name MAIN_MERGE_GATE — the only boundary that always pauses regardless of --gates',
|
||||
);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// tests/lib/main-merge-gate.test.mjs
|
||||
// Step 12 (plan-v2) — pin that commands/ultraexecute-local.md Phase 8
|
||||
// Step 12 (plan-v2) — pin that commands/trekexecute.md Phase 8
|
||||
// names the main-merge-gate lifecycle event, the decline + recovery
|
||||
// surface, and the always-on gate prose.
|
||||
|
||||
|
|
@ -11,12 +11,12 @@ import { fileURLToPath } from 'node:url';
|
|||
|
||||
const HERE = dirname(fileURLToPath(import.meta.url));
|
||||
const ROOT = join(HERE, '..', '..');
|
||||
const CMD = readFileSync(join(ROOT, 'commands/ultraexecute-local.md'), 'utf-8');
|
||||
const CMD = readFileSync(join(ROOT, 'commands/trekexecute.md'), 'utf-8');
|
||||
|
||||
test('Phase 8 names the main-merge-gate lifecycle event', () => {
|
||||
assert.ok(
|
||||
CMD.includes('main-merge-gate'),
|
||||
'commands/ultraexecute-local.md should emit `main-merge-gate` from Phase 8',
|
||||
'commands/trekexecute.md should emit `main-merge-gate` from Phase 8',
|
||||
);
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
//
|
||||
// This test exercises the Jaccard PIPELINE on a known input. It does NOT
|
||||
// measure real-LLM determinism — that is deferred to v1.1, see
|
||||
// tests/fixtures/ultrareview/README.md.
|
||||
// tests/fixtures/trekreview/README.md.
|
||||
|
||||
import { test } from 'node:test';
|
||||
import { strict as assert } from 'node:assert';
|
||||
|
|
@ -35,8 +35,8 @@ function loadFindings(rel) {
|
|||
}
|
||||
|
||||
test('review determinism — Jaccard of fixture run-A vs run-B meets SC4 threshold (0.70)', () => {
|
||||
const a = loadFindings('tests/fixtures/ultrareview/review-run-A.md');
|
||||
const b = loadFindings('tests/fixtures/ultrareview/review-run-B.md');
|
||||
const a = loadFindings('tests/fixtures/trekreview/review-run-A.md');
|
||||
const b = loadFindings('tests/fixtures/trekreview/review-run-B.md');
|
||||
const jaccard = jaccardSimilarity(a, b);
|
||||
assert.ok(
|
||||
jaccard >= SC4_THRESHOLD,
|
||||
|
|
@ -46,7 +46,7 @@ test('review determinism — Jaccard of fixture run-A vs run-B meets SC4 thresho
|
|||
});
|
||||
|
||||
test('review determinism — finding IDs are 40-char hex', () => {
|
||||
for (const rel of ['tests/fixtures/ultrareview/review-run-A.md', 'tests/fixtures/ultrareview/review-run-B.md']) {
|
||||
for (const rel of ['tests/fixtures/trekreview/review-run-A.md', 'tests/fixtures/trekreview/review-run-B.md']) {
|
||||
const findings = loadFindings(rel);
|
||||
for (const id of findings) {
|
||||
assert.ok(
|
||||
|
|
@ -58,7 +58,7 @@ test('review determinism — finding IDs are 40-char hex', () => {
|
|||
});
|
||||
|
||||
test('review determinism — no duplicate IDs within run', () => {
|
||||
for (const rel of ['tests/fixtures/ultrareview/review-run-A.md', 'tests/fixtures/ultrareview/review-run-B.md']) {
|
||||
for (const rel of ['tests/fixtures/trekreview/review-run-A.md', 'tests/fixtures/trekreview/review-run-B.md']) {
|
||||
const findings = loadFindings(rel);
|
||||
assert.strictEqual(
|
||||
new Set(findings).size,
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import { validatePlan } from '../../lib/validators/plan-validator.mjs';
|
|||
|
||||
const HERE = dirname(fileURLToPath(import.meta.url));
|
||||
const ROOT = join(HERE, '..', '..');
|
||||
const FIXTURE = join(ROOT, 'tests/fixtures/ultrareview/plan-with-source-findings.md');
|
||||
const FIXTURE = join(ROOT, 'tests/fixtures/trekreview/plan-with-source-findings.md');
|
||||
|
||||
const HEX_ID_RE = /^[0-9a-f]{40}$/;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
//
|
||||
// This is the SC7 (higher) floor. The companion
|
||||
// tests/lib/review-determinism.test.mjs holds the SC4 (0.70) floor against
|
||||
// tests/fixtures/ultrareview/. Both pairs coexist on purpose: the lower
|
||||
// tests/fixtures/trekreview/. Both pairs coexist on purpose: the lower
|
||||
// floor protects against pipeline regressions, the higher one anchors the
|
||||
// determinism aspiration set in the speedup brief.
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ this file's frontmatter and computes
|
|||
`jaccardSimilarity(findingsA, findingsB)`. The test asserts the similarity is
|
||||
at or above the SC7 brief threshold (0.833).
|
||||
|
||||
This fixture is distinct from `tests/fixtures/ultrareview/review-run-A.md`,
|
||||
This fixture is distinct from `tests/fixtures/trekreview/review-run-A.md`,
|
||||
which feeds the existing `tests/lib/review-determinism.test.mjs` against the
|
||||
v1.0 SC4 floor (0.70). The synthetic pair pushes the floor higher per SC7.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue