chore(cleanup): R-b R3 — profiles, phase signals and the effort dialog removed, one fixed path per command
The four profiles, the resolver, the profile validator and docs/profiles.md go; /trekbrief Phase 3.5 and the brief's phase_signals checks go (an older brief's key is ignored); MANIFEST_PROFILE_DRIFT and profile_used go. Every Profile, Composition rule, Sequencing gate and High-effort section leaves the commands. Decision 209: /trekresearch runs the full swarm with contrarian-researcher as wave 2 every run; /trekreview and the coordinator run all four passes with no high-effort normalization. Voyage agents are spawned with no model (their own model: opus applies); the two built-in spawns pass model "opus". --profile stays in the parser as a retired flag that swallows its value. §Model & effort moves to docs/architecture.md; the sequencing-gate eval case goes. Files removed: 44 (43 from the R3 list + tests/commands/trekreview.test.mjs, whose every test pinned removed text). Files edited: 43. Tests: 2467 (2466 pass / 0 fail / 1 skipped) before, 2309 (2309 pass / 0 fail / 0 skipped) after. Durable check: all three groups green, none pending. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
32621dcb63
commit
2a35d067d9
87 changed files with 225 additions and 4967 deletions
|
|
@ -58,7 +58,6 @@ import {
|
|||
testFirstFileEntries, testFirstFiles,
|
||||
} from '../parsers/plan-schema.mjs';
|
||||
import { validateAllManifests } from '../parsers/manifest-yaml.mjs';
|
||||
import { parseDocument } from '../util/frontmatter.mjs';
|
||||
import { issue, fail } from '../util/result.mjs';
|
||||
import { parsePlanVerification, firstCommand, runnableCheck, refusal } from '../verification/criteria-runner.mjs';
|
||||
import { isMain } from '../util/is-main.mjs';
|
||||
|
|
@ -426,29 +425,6 @@ export function validatePlanContent(rawText, opts = {}) {
|
|||
else warnings.push(...v18);
|
||||
}
|
||||
|
||||
// v4.1 SC #20 — MANIFEST_PROFILE_DRIFT detection. Strict-mode only.
|
||||
// If plan frontmatter declares `profile: <name>` and any step manifest
|
||||
// declares `profile_used: <other>`, emit a warning (NOT an error) so
|
||||
// operators see drift but parsing remains forward-compat.
|
||||
if (strict) {
|
||||
const planFm = parseDocument(text).parsed?.frontmatter;
|
||||
const planProfile =
|
||||
planFm && typeof planFm.profile === 'string' ? planFm.profile : null;
|
||||
if (planProfile) {
|
||||
for (const m of manRes.parsed) {
|
||||
const stepProfile = m.manifest && m.manifest.profile_used;
|
||||
if (typeof stepProfile === 'string' && stepProfile !== planProfile) {
|
||||
warnings.push(issue(
|
||||
'MANIFEST_PROFILE_DRIFT',
|
||||
`step ${m.n}: profile_used = ${stepProfile}, plan profile = ${planProfile}`,
|
||||
'A step manifest declares a different profile than the plan frontmatter; ' +
|
||||
'verify whether this is intentional (manual override) or accidental drift.',
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
valid: errors.length === 0,
|
||||
errors,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue