feat(voyage)!: bulk content rewrite ultra -> voyage/trek prose [skip-docs]
Sed-pipeline (16 patterns, longest-match-first) sweeper residuelle ultra*-treff i prose, command-narrativ, agent-prompts, hook-kommentarer, doc-prosa. Pipeline-utvidelser fra V4-prompten: - BSD-syntax [[:<:]]ultra[[:>:]] istedenfor \bultra\b (BSD sed mangler \b) - 6 compound-patterns for ultraplan/ultraexecute/ultraresearch/ultrabrief/ ultrareview/ultracontinue uten -local-suffiks - ultra*-stats glob -> trek*-stats glob - Linje-eksklusjon redusert til ultra-cc-architect (Q8); session-state- eksklusjonen var over-protektiv - File-eksklusjon utvidet til settings.json, package.json, plugin.json, hele .claude/-treet (gitignored + V5-territorium) Q8-undantak holdt: architecture-discovery.mjs + project-discovery.mjs urort. Filnavn-konvensjon holdt: .session-state.local.json + *.local.* preservert. Manuell narrative-fix: tests/lib/agent-frontmatter.test.mjs linje 10 mangled "/ultra*-local" til "/voyage*-local" (ingen slik kommando finnes); korrigert til "/trek*". Residualer utenfor scope (V5 handterer): package.json + .claude-plugin/ plugin.json (Step 12-14 versjons-bump). .claude/* er gitignored spec-historikk med tilsiktet BEFORE/AFTER-narrativ. Part of voyage-rebrand session 3 (Wave 4 / Step 10). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
ca5a8cec67
commit
14ecda886c
81 changed files with 672 additions and 672 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// lib/parsers/arg-parser.mjs
|
||||
// Parse $ARGUMENTS strings for the four ultra commands.
|
||||
// Parse $ARGUMENTS strings for the four voyage commands.
|
||||
//
|
||||
// Each command has its own valid-flag set; passing flags from another command
|
||||
// produces an `unknown_flags` array but does not error — the caller decides.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// lib/parsers/finding-id.mjs
|
||||
// Stable finding-ID for /ultrareview-local v1.0.
|
||||
// Stable finding-ID for /trekreview v1.0.
|
||||
//
|
||||
// id = sha1(file:line:rule_key) → 40-char hex.
|
||||
// Same input always produces same output (determinism floor SC4).
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// lib/review/plan-review-dedup.mjs
|
||||
// Phase-9 dedup helper for /ultraplan-local adversarial review:
|
||||
// Phase-9 dedup helper for /trekplan adversarial review:
|
||||
// merges plan-critic + scope-guardian findings into a single deduplicated
|
||||
// stream, preserving provenance (which agent originally raised each finding).
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// lib/review/rule-catalogue.mjs
|
||||
// Canonical rule catalogue for /ultrareview-local v1.0.
|
||||
// Canonical rule catalogue for /trekreview v1.0.
|
||||
//
|
||||
// 12 rule keys, 4-tier severity (matches brief contract).
|
||||
// llm-security 5-tier alignment is a v1.1 candidate.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// Summarizes trekexecute-stats.jsonl: total events, percentile wall times,
|
||||
// time range. Companion to event-emit.mjs (which produces the jsonl).
|
||||
//
|
||||
// Designed for /ultraplan-local Spor C: gives C3 telemetry context when
|
||||
// Designed for /trekplan Spor C: gives C3 telemetry context when
|
||||
// interpreting Q3 experiment numbers (5+ weeks of accumulated data on the
|
||||
// operator's machine as of 2026-05-04).
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// lib/util/autonomy-gate.mjs
|
||||
// Autonomy-gate state machine for /ultraexecute-local + /ultraplan-local
|
||||
// Autonomy-gate state machine for /trekexecute + /trekplan
|
||||
// (plan-v2 Step 4 — drives the --gates flag).
|
||||
//
|
||||
// States:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// lib/util/cleanup.mjs
|
||||
// Bug 4 — operator-invoked cleanup of completed-project state files.
|
||||
//
|
||||
// The ultraplan-local pipeline does NOT auto-cleanup state on session-end:
|
||||
// The trekplan pipeline does NOT auto-cleanup state on session-end:
|
||||
// stale .session-state.local.json + NEXT-SESSION-PROMPT.local.md across many
|
||||
// projects accumulate over time. This util removes them safely once the
|
||||
// project is fully done (status === 'completed' as seen by validateSessionState).
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
// - Idempotent: re-running on a partially-cleaned dir succeeds with deleted: [].
|
||||
// - Refuses dryRun: false without an explicit confirm: true (prevents accidents).
|
||||
// - ENOENT counts as "already absent" — never an error.
|
||||
// - Cleanup is operator-invoked from /ultracontinue --cleanup; no Bash binding here.
|
||||
// - Cleanup is operator-invoked from /trekcontinue --cleanup; no Bash binding here.
|
||||
|
||||
import { existsSync, unlinkSync } from 'node:fs';
|
||||
import { join } from 'node:path';
|
||||
|
|
@ -24,7 +24,7 @@ const CANDIDATE_FILES = Object.freeze([
|
|||
]);
|
||||
|
||||
/**
|
||||
* Clean up state files for a completed ultraplan project.
|
||||
* Clean up state files for a completed trekplan project.
|
||||
*
|
||||
* @param {string} projectDir - absolute or cwd-relative path to the project directory
|
||||
* @param {{dryRun?: boolean, confirm?: boolean}} [opts]
|
||||
|
|
@ -68,7 +68,7 @@ export function cleanupProject(projectDir, opts = {}) {
|
|||
return fail(issue(
|
||||
'CLEANUP_NOT_COMPLETED',
|
||||
`Refused: status is "${validation.parsed.status}", not "completed"`,
|
||||
'cleanup is reserved for fully-finished projects. Resume via /ultracontinue or wait until the run completes.',
|
||||
'cleanup is reserved for fully-finished projects. Resume via /trekcontinue or wait until the run completes.',
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// lib/validators/brief-validator.mjs
|
||||
// Validate ultrabrief frontmatter + body invariants.
|
||||
// Validate trekbrief frontmatter + body invariants.
|
||||
|
||||
import { readFileSync, existsSync } from 'node:fs';
|
||||
import { parseDocument } from '../util/frontmatter.mjs';
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
//
|
||||
// Producers (trekexecute Phase 8/2.55/4, trekendsession Phase 3) MUST write
|
||||
// `produced_by:` and `produced_at:` (ISO-8601) frontmatter.
|
||||
// Consumers (/ultracontinue Phase 1.5) compare two candidate files and refuse
|
||||
// Consumers (/trekcontinue Phase 1.5) compare two candidate files and refuse
|
||||
// when producers disagree on a non-stale pair.
|
||||
//
|
||||
// Schema is forward-compatible: unknown frontmatter keys are tolerated.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// lib/validators/review-validator.mjs
|
||||
// Validate ultrareview frontmatter + body invariants.
|
||||
// Validate trekreview frontmatter + body invariants.
|
||||
// 3-layer pattern (Content → File → CLI shim) mirroring brief-validator.
|
||||
|
||||
import { readFileSync, existsSync } from 'node:fs';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// lib/validators/session-state-validator.mjs
|
||||
// Validate .session-state.local.json — the contract consumed by /ultracontinue.
|
||||
// Validate .session-state.local.json — the contract consumed by /trekcontinue.
|
||||
// Schema v1 documented in docs/HANDOVER-CONTRACTS.md (Handover 7).
|
||||
|
||||
import { readFileSync, existsSync } from 'node:fs';
|
||||
|
|
@ -18,8 +18,8 @@ export const SESSION_STATE_REQUIRED_TOP = [
|
|||
// session is not resumable. Unknown statuses fail.
|
||||
export const SESSION_STATE_VALID_STATUSES = ['in_progress', 'partial', 'failed', 'stopped', 'completed'];
|
||||
|
||||
// Statuses that /ultracontinue can resume from. `completed` is intentionally
|
||||
// excluded — running ultracontinue on a completed project should signal "no
|
||||
// Statuses that /trekcontinue can resume from. `completed` is intentionally
|
||||
// excluded — running trekcontinue on a completed project should signal "no
|
||||
// further sessions to resume", not load stale context.
|
||||
export const SESSION_STATE_RESUMABLE_STATUSES = ['in_progress', 'partial', 'failed', 'stopped'];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue