35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
# BRIEF — mde-interactive-enforcement
|
|||
|
|
|
||
|
|
**Parent:** model-divergence-enforcement
|
||
|
|
**Subtask:** 2 of 3 (depends on mde-manifest-detection)
|
||
|
|
**Spec ref:** `tasks/model-divergence-enforcement/SPEC.md` §Subtask 2
|
||
|
|
**Design ref:** `design/framework/technical.md` §§4-5, §12
|
||
|
|
|
||
|
|
## Objective
|
||
|
|
|
||
|
|
Add the conflict matrix, `--transition --model` / `--claim --model` enforcement,
|
||
|
|
`.state.models` tracking, audit category, and dashboard model badges. This is the
|
||
|
|
core enforcement layer for interactive (non-loop) workflows.
|
||
|
|
|
||
|
|
## Deliverables
|
||
|
|
|
||
|
|
1. `scripts/status.py`:
|
||
|
|
- `CONFLICT_MATRIX` constant (locked matrix from SPEC)
|
||
|
|
- `_check_conflict(current_phase, current_model, next_phase, next_model)` helper
|
||
|
|
- `cmd_transition`: `--model` arg + conflict check in multi-LLM mode
|
||
|
|
- `cmd_claim`: `--model` arg + conflict check
|
||
|
|
- `cmd_audit`: `model_divergence` category
|
||
|
|
- `.state.models` writer (JSON: `{implementer, code_reviewer, bug_hunter, ...}`)
|
||
|
|
2. `automaton/dashboard/html/dashboard.js` — model badge on task cards
|
||
|
|
3. `automaton/dashboard/ui/app.py` — `.state.models` in `/api/tasks` response
|
||
|
|
4. `tests/test_model_divergence.py` — conflict matrix, auto-assign, audit, badges
|
||
|
|
|
||
|
|
## Acceptance
|
||
|
|
|
||
|
|
- Single-LLM mode: `--model` records but never refuses (advisory once if `advised: true`)
|
||
|
|
- Multi-LLM mode: `--transition --model` refuses on conflict (e.g., same model for implement + code_review)
|
||
|
|
- Multi-LLM mode: `--claim --model` refuses on conflict
|
||
|
|
- `--audit` flags `model_divergence` violations
|
||
|
|
- Dashboard shows model badges when `.state.models` exists
|
||
|
|
- `pytest tests/ -q` green
|