feat(voyage): S18 — framing-hardening (min-version gate + memory status + pre-2.2 doc + flagship hedge)
Closes devils-advocate audit #4–#6 (MAJOR×MED). Four additive, non-breaking changes to the v5.5 framing-alignment machinery: 1. --min-brief-version <ver> gate (audit #4). Opt-in version floor on /trekplan + /trekresearch, forwarded to brief-validator as --min-version. New opts.minBriefVersion warns BRIEF_VERSION_BELOW_MINIMUM (never blocks) when a brief declares a version below the floor; trekreview exempt; absent opt = no check. CLI shim parses --min-version and skips its value token in filePath detection. 2. memory_alignment.status field (audit #5). brief-reviewer now emits status: verified | n_a | contradictions so a score-5 N/A (no memory) is distinguishable from a score-5 verified-aligned brief — the score≥4 gate passes in both, status reveals whether the wrong-premise defense ran. 3. Document pre-2.2 = zero framing enforcement (audit #4). HANDOVER-CONTRACTS §Handover 1 now states the producer-elective hole + two remedies. Also fixes a stale "current is 2.1" line (current is 2.2). 4. Soften flagship overselling (audit #6). CLAUDE.md Context-Engineering principle now hedges that main-context relief is asserted-by-design, not measured (T1 PoC found Δ≈0); README carried no false claim to fix. TDD: 8 new tests written failing-first (5 validator, 1 trekbrief status pin, 2 doc-consistency cross-file pins). Suite 691→699 (697 pass / 2 skip / 0 fail). No flagship prose-pin added (deliberate, per S19 anti-bloat). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LqBYc8Ltrk7LipyJmGxXiB
This commit is contained in:
parent
eb5a7324a4
commit
987e847ea1
11 changed files with 145 additions and 13 deletions
|
|
@ -63,8 +63,11 @@ Parse `$ARGUMENTS` for mode flags. Order of precedence:
|
|||
- Set **project_dir = {dir}**, **brief_path = {dir}/brief.md**.
|
||||
- **Validate inputs** (soft mode — warnings do not block, errors do):
|
||||
```bash
|
||||
# Brief schema sanity check (frontmatter + state machine, soft on body sections)
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/validators/brief-validator.mjs --soft --json "{dir}/brief.md"
|
||||
# Brief schema sanity check (frontmatter + state machine, soft on body sections).
|
||||
# When --min-brief-version was passed, append --min-version {min_brief_version}
|
||||
# so the validator emits BRIEF_VERSION_BELOW_MINIMUM (warn, never block) for an
|
||||
# older brief that sidesteps framing enforcement.
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/validators/brief-validator.mjs --soft --json [--min-version {min_brief_version}] "{dir}/brief.md"
|
||||
|
||||
# v5.1.1 — resolve per-phase brief-signal for plan phase. Result is
|
||||
# captured as phase_signal_result and used at Agent-spawn sites below
|
||||
|
|
@ -120,7 +123,15 @@ Parse `$ARGUMENTS` for mode flags. Order of precedence:
|
|||
autonomy-gate state machine via the CLI shim:
|
||||
`node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state X --event Y --gates {true|false}`.
|
||||
|
||||
9. If neither `--brief` nor `--project` is present after flag parsing,
|
||||
9. **`--min-brief-version <ver>`** — (optional) version floor. Set
|
||||
**min_brief_version = {ver}** (e.g. `2.2`). Forwarded to the brief-validator
|
||||
as `--min-version {ver}`; when the brief declares an older version it emits a
|
||||
`BRIEF_VERSION_BELOW_MINIMUM` **warning** (never blocks) — framing enforcement
|
||||
only fires at `≥ 2.2`, so an older brief sidesteps the framing-alignment
|
||||
defense silently. Absent → no version check. See `docs/HANDOVER-CONTRACTS.md`
|
||||
§Handover 1 for the pre-2.2 enforcement hole this guards.
|
||||
|
||||
10. If neither `--brief` nor `--project` is present after flag parsing,
|
||||
output usage and stop:
|
||||
|
||||
```
|
||||
|
|
@ -140,6 +151,7 @@ Modes:
|
|||
--research Add up to 3 extra research briefs as planning context
|
||||
--fg No-op alias (foreground is the only mode as of v2.4.0)
|
||||
--quick Skip exploration agent swarm; plan directly
|
||||
--min-brief-version <ver> Warn (never block) if the brief is older than <ver> (e.g. 2.2)
|
||||
--export Generate shareable output from an existing plan (no new planning)
|
||||
--decompose Split an existing plan into self-contained headless sessions
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,9 @@ Supported flags:
|
|||
at Agent-spawn sites in Phase 4 to inject the brief-resolved model:
|
||||
|
||||
```bash
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/validators/brief-validator.mjs --soft --json "{dir}/brief.md"
|
||||
# When --min-brief-version was passed, append --min-version {min_brief_version}
|
||||
# so an older brief raises BRIEF_VERSION_BELOW_MINIMUM (warn, never block).
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/validators/brief-validator.mjs --soft --json [--min-version {min_brief_version}] "{dir}/brief.md"
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/profiles/phase-signal-resolver.mjs --brief "{dir}/brief.md" --phase research --json
|
||||
```
|
||||
|
||||
|
|
@ -71,6 +73,13 @@ Supported flags:
|
|||
state machine via the CLI shim:
|
||||
`node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state X --event Y --gates {true|false}`.
|
||||
|
||||
7. `--min-brief-version <ver>` — (optional) version floor for an attached
|
||||
`--project` brief. Set **min_brief_version = {ver}** (e.g. `2.2`). Forwarded
|
||||
to the brief-validator below as `--min-version {ver}`; an older brief emits a
|
||||
`BRIEF_VERSION_BELOW_MINIMUM` **warning** (never blocks) because framing
|
||||
enforcement only fires at `≥ 2.2`. Absent → no version check. See
|
||||
`docs/HANDOVER-CONTRACTS.md` §Handover 1 for the pre-2.2 enforcement hole.
|
||||
|
||||
Flags can be combined:
|
||||
- `--local` — local-only research
|
||||
- `--external --quick` — external-only, lightweight
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue