feat(voyage): wire 4 downstream commands to brief.phase_signals + composition rule (v5.1)
This commit is contained in:
parent
56fed8f305
commit
d3975c441c
4 changed files with 121 additions and 0 deletions
|
|
@ -1519,6 +1519,37 @@ VOYAGE_PROFILE=balanced /trekexecute --project ...
|
||||||
Stats records emit `profile`, `phase_models`, and `profile_source` per
|
Stats records emit `profile`, `phase_models`, and `profile_source` per
|
||||||
Phase 9 record.
|
Phase 9 record.
|
||||||
|
|
||||||
|
## Composition rule (v5.1)
|
||||||
|
|
||||||
|
Independent of the profile system. When `brief.md` carries
|
||||||
|
`phase_signals` (brief_version ≥ 2.1), each downstream phase resolves
|
||||||
|
effort + model as:
|
||||||
|
|
||||||
|
```
|
||||||
|
effort_for_phase = brief.phase_signals[<phase>]?.effort ?? 'standard'
|
||||||
|
model_for_phase = brief.phase_signals[<phase>]?.model ?? profile.phase_models[<phase>]
|
||||||
|
```
|
||||||
|
|
||||||
|
The brief signal wins per-phase when present; the profile fills any
|
||||||
|
gaps. There is no helper module — composition is documented prose in
|
||||||
|
each downstream command.
|
||||||
|
|
||||||
|
For `/trekexecute` specifically: `effort == 'low'` activates `--gates open`
|
||||||
|
+ sequential-only execution (no worktree-isolated parallel waves — runs
|
||||||
|
all sessions in a single foreground loop). `effort == 'standard'` (or
|
||||||
|
absent) → no change (default execution strategy applies). High-effort
|
||||||
|
behavior is deferred to v5.1.1 per brief Non-Goal.
|
||||||
|
|
||||||
|
### Sequencing gate surface
|
||||||
|
|
||||||
|
When `/trekexecute --project <dir>` is invoked, optionally run
|
||||||
|
`brief-validator.mjs --soft --json` against `{dir}/brief.md`. If
|
||||||
|
`BRIEF_V51_MISSING_SIGNALS` appears in `errors` (brief_version ≥ 2.1
|
||||||
|
without `phase_signals` or `phase_signals_partial: true`), halt with:
|
||||||
|
`Brief is brief_version 2.1 but does not carry phase_signals — re-run
|
||||||
|
/trekbrief to commit them (Phase 3.5).` Enforcement is validator-only;
|
||||||
|
commands surface, don't re-enforce.
|
||||||
|
|
||||||
## Hard rules
|
## Hard rules
|
||||||
|
|
||||||
1. **No AskUserQuestion for execution decisions.** All execution decisions come
|
1. **No AskUserQuestion for execution decisions.** All execution decisions come
|
||||||
|
|
|
||||||
|
|
@ -894,6 +894,36 @@ VOYAGE_PROFILE=balanced /trekplan --project ...
|
||||||
Stats records emit `profile`, `phase_models`, `parallel_agents`, and
|
Stats records emit `profile`, `phase_models`, `parallel_agents`, and
|
||||||
`profile_source` so operators can audit which profile drove which session.
|
`profile_source` so operators can audit which profile drove which session.
|
||||||
|
|
||||||
|
## Composition rule (v5.1)
|
||||||
|
|
||||||
|
Independent of the profile system. When `brief.md` carries
|
||||||
|
`phase_signals` (brief_version ≥ 2.1), each downstream phase resolves
|
||||||
|
effort + model as:
|
||||||
|
|
||||||
|
```
|
||||||
|
effort_for_phase = brief.phase_signals[<phase>]?.effort ?? 'standard'
|
||||||
|
model_for_phase = brief.phase_signals[<phase>]?.model ?? profile.phase_models[<phase>]
|
||||||
|
```
|
||||||
|
|
||||||
|
The brief signal wins per-phase when present; the profile fills any
|
||||||
|
gaps. There is no helper module — composition is documented prose in
|
||||||
|
each downstream command.
|
||||||
|
|
||||||
|
For `/trekplan` specifically: `effort == 'low'` activates the existing
|
||||||
|
`--quick`-equivalent code-path (skip Phase 5 agent swarm — plan directly
|
||||||
|
without exploration agents). `effort == 'standard'` (or absent) → no
|
||||||
|
change. High-effort behavior is deferred to v5.1.1 per brief Non-Goal
|
||||||
|
("No complete per-phase effort dictionary").
|
||||||
|
|
||||||
|
### Sequencing gate surface
|
||||||
|
|
||||||
|
Phase 1 already calls `brief-validator.mjs --soft`. If the validator
|
||||||
|
returns `BRIEF_V51_MISSING_SIGNALS` in `errors` (brief_version ≥ 2.1
|
||||||
|
without `phase_signals` or `phase_signals_partial: true`), halt with a
|
||||||
|
one-line message: `Brief is brief_version 2.1 but does not carry phase_signals
|
||||||
|
— re-run /trekbrief to commit them (Phase 3.5).` Enforcement is
|
||||||
|
validator-only; this surface just makes the friendly hint readable.
|
||||||
|
|
||||||
## Hard rules
|
## Hard rules
|
||||||
|
|
||||||
- **Brief-driven**: Every plan decision must trace back to a section of the
|
- **Brief-driven**: Every plan decision must trace back to a section of the
|
||||||
|
|
|
||||||
|
|
@ -435,6 +435,36 @@ Stats records emit `profile`, `phase_models`, `parallel_agents`,
|
||||||
`external_research_enabled`, and `profile_source` so operators can audit
|
`external_research_enabled`, and `profile_source` so operators can audit
|
||||||
which profile drove which session.
|
which profile drove which session.
|
||||||
|
|
||||||
|
## Composition rule (v5.1)
|
||||||
|
|
||||||
|
Independent of the profile system. When `brief.md` carries
|
||||||
|
`phase_signals` (brief_version ≥ 2.1), each downstream phase resolves
|
||||||
|
effort + model as:
|
||||||
|
|
||||||
|
```
|
||||||
|
effort_for_phase = brief.phase_signals[<phase>]?.effort ?? 'standard'
|
||||||
|
model_for_phase = brief.phase_signals[<phase>]?.model ?? profile.phase_models[<phase>]
|
||||||
|
```
|
||||||
|
|
||||||
|
The brief signal wins per-phase when present; the profile fills any
|
||||||
|
gaps. There is no helper module — composition is documented prose in
|
||||||
|
each downstream command.
|
||||||
|
|
||||||
|
For `/trekresearch` specifically: `effort == 'low'` activates the
|
||||||
|
existing `--quick`-equivalent code-path (inline research, no agent swarm).
|
||||||
|
`effort == 'standard'` (or absent) → no change. High-effort behavior is
|
||||||
|
deferred to v5.1.1 per brief Non-Goal.
|
||||||
|
|
||||||
|
### Sequencing gate surface
|
||||||
|
|
||||||
|
When `/trekresearch --project <dir>` is invoked and `{dir}/brief.md`
|
||||||
|
exists, optionally run `brief-validator.mjs --soft --json` against it.
|
||||||
|
If `BRIEF_V51_MISSING_SIGNALS` appears in `errors` (brief_version ≥ 2.1
|
||||||
|
without `phase_signals` or `phase_signals_partial: true`), halt with:
|
||||||
|
`Brief is brief_version 2.1 but does not carry phase_signals — re-run
|
||||||
|
/trekbrief to commit them (Phase 3.5).` Enforcement is validator-only;
|
||||||
|
commands surface, don't re-enforce.
|
||||||
|
|
||||||
## Hard rules
|
## Hard rules
|
||||||
|
|
||||||
- **No planning:** This command produces research briefs, not implementation plans.
|
- **No planning:** This command produces research briefs, not implementation plans.
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,36 @@ VOYAGE_PROFILE=premium /trekreview --project ...
|
||||||
|
|
||||||
Stats records emit `profile` and `profile_source`.
|
Stats records emit `profile` and `profile_source`.
|
||||||
|
|
||||||
|
## Composition rule (v5.1)
|
||||||
|
|
||||||
|
Independent of the profile system. When `brief.md` carries
|
||||||
|
`phase_signals` (brief_version ≥ 2.1), each downstream phase resolves
|
||||||
|
effort + model as:
|
||||||
|
|
||||||
|
```
|
||||||
|
effort_for_phase = brief.phase_signals[<phase>]?.effort ?? 'standard'
|
||||||
|
model_for_phase = brief.phase_signals[<phase>]?.model ?? profile.phase_models[<phase>]
|
||||||
|
```
|
||||||
|
|
||||||
|
The brief signal wins per-phase when present; the profile fills any
|
||||||
|
gaps. There is no helper module — composition is documented prose in
|
||||||
|
each downstream command.
|
||||||
|
|
||||||
|
For `/trekreview` specifically: `effort == 'low'` activates the existing
|
||||||
|
`--quick`-equivalent code-path (skip the brief-conformance reviewer; run
|
||||||
|
correctness-only). `effort == 'standard'` (or absent) → no change.
|
||||||
|
High-effort behavior is deferred to v5.1.1 per brief Non-Goal.
|
||||||
|
|
||||||
|
### Sequencing gate surface
|
||||||
|
|
||||||
|
Phase 1 already calls `brief-validator.mjs --soft` against `{brief_path}`.
|
||||||
|
If the validator returns `BRIEF_V51_MISSING_SIGNALS` in `errors`
|
||||||
|
(brief_version ≥ 2.1 without `phase_signals` or `phase_signals_partial:
|
||||||
|
true`), halt with: `Brief is brief_version 2.1 but does not carry
|
||||||
|
phase_signals — re-run /trekbrief to commit them (Phase 3.5).`
|
||||||
|
Enforcement is validator-only; this surface just makes the friendly hint
|
||||||
|
readable.
|
||||||
|
|
||||||
## Hard rules
|
## Hard rules
|
||||||
|
|
||||||
- **Brief is the contract.** Every finding in the review traces to a
|
- **Brief is the contract.** Every finding in the review traces to a
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue