Bootstrap self-improvement loop, decompose model-divergence-enforcement
CI / build (push) Has been cancelled
CI / build (push) Has been cancelled
Self-improvement loop:
- Created via --create-loop --from-template self-improvement
- Scheduled via launchd (3600s interval)
- State: running
model-divergence-enforcement task:
- Research approved, decomposed into 3 sequential subtasks:
1. mde-manifest-detection (models.json + detect_models.py)
2. mde-interactive-enforcement (conflict matrix + --model args + audit)
3. mde-loop-enforcement (loop.json roles + {model} substitution + check-gate)
- Parent at decomposition:approved (stays active until subtasks complete)
- Each subtask has BRIEF.md with scope, deliverables, acceptance criteria
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# BRIEF — mde-loop-enforcement
|
||||
|
||||
**Parent:** model-divergence-enforcement
|
||||
**Subtask:** 3 of 3 (depends on mde-interactive-enforcement)
|
||||
**Spec ref:** `tasks/model-divergence-enforcement/SPEC.md` §Subtask 3
|
||||
**Design ref:** `design/framework/technical.md` §§10, §13
|
||||
|
||||
## Objective
|
||||
|
||||
Add loop-level model-divergence enforcement: `loop.json` per-role `model` field,
|
||||
`{model}` substitution in `_invoke_harness`, and `--check-gate` model-divergence
|
||||
brake gate.
|
||||
|
||||
## Deliverables
|
||||
|
||||
1. `scripts/loop-runner.py`:
|
||||
- `_invoke_harness` (line 366-404): `{model}` placeholder substitution from `loop.json` role config
|
||||
2. `scripts/status.py`:
|
||||
- `--check-gate`: model-divergence brake gate (loop-verify ≠ loop-implement in multi-LLM mode)
|
||||
- `cmd_create_loop` / `cmd_install_schedule`: validate `loop.json` per-role `model` fields
|
||||
3. `templates/loops/`: update loop templates with `roles` schema example
|
||||
4. `design/loops/technical.md`: document `{model}` substitution
|
||||
5. `tests/test_model_divergence.py`: loop model binding, `{model}` substitution, check-gate halt
|
||||
|
||||
## Acceptance
|
||||
|
||||
- `loop.json` with `roles.implementer.model` → `_invoke_harness` substitutes `{model}` in harness command
|
||||
- `loop.json` without per-role `model` → defaults to `models.json` `default` model
|
||||
- `--check-gate` in multi-LLM mode halts if loop-verify model = loop-implement model
|
||||
- `--check-gate` in single-LLM mode does NOT halt (advisory only)
|
||||
- `pytest tests/ -q` green
|
||||
Reference in New Issue
Block a user