Research structuralization: dispatched headless research stage + idempotent backlog sweep (#204 second slice) #217

Merged
conductor merged 2 commits from research-structuralization into master 2026-09-07 23:10:50 +01:00
Owner

What

Closes the research-round initiation gap (Nick: "is research being done or already done?"):

  1. research-stage-headless.yml — on research-pending label events, a headless mimo agent performs the 4-phase round (INWARD/OUTWARD/INNOVATION/SYNTHESIS) and files it as research/issue-<n>-research.md (auto-PR, robot merges) + posts the marker comment that research-clear keys on.
  2. research-backlog-sweep.yml + scripts/research_backfill_sweep.py — idempotent backfill with the gate's own readiness semantics; skips issues that already carry a 4-phase round (already-done stays done); dry-run by default, --apply explicit; dispatchable from the forge.
  3. prompts/research-round.md — the research prompt as a governed repo artifact: the TUI-callback seam (future L3 owns/overrides it via reviewed diffs; the stage always executes the current template).
  4. spec-gate-headless.yml — lands on master with ROBOT_TOKEN (same reserved-secret bug the robot had).

Verification

  • 10 red-first tests green (sweep logic: already-researched skip, blocked skip, open-dep skip, missing-dep unsatisfied, PR/closed skip, dry-run default, apply writes)
  • All 3 workflows YAML-valid
  • Full suite 615+84 green on the branch
## What Closes the research-round initiation gap (Nick: "is research being done or already done?"): 1. **research-stage-headless.yml** — on `research-pending` label events, a headless mimo agent performs the 4-phase round (INWARD/OUTWARD/INNOVATION/SYNTHESIS) and files it as `research/issue-<n>-research.md` (auto-PR, robot merges) + posts the marker comment that research-clear keys on. 2. **research-backlog-sweep.yml + scripts/research_backfill_sweep.py** — idempotent backfill with the gate's own readiness semantics; **skips issues that already carry a 4-phase round** (already-done stays done); dry-run by default, `--apply` explicit; dispatchable from the forge. 3. **prompts/research-round.md** — the research prompt as a governed repo artifact: the TUI-callback seam (future L3 owns/overrides it via reviewed diffs; the stage always executes the current template). 4. **spec-gate-headless.yml** — lands on master with ROBOT_TOKEN (same reserved-secret bug the robot had). ## Verification - 10 red-first tests green (sweep logic: already-researched skip, blocked skip, open-dep skip, missing-dep unsatisfied, PR/closed skip, dry-run default, apply writes) - All 3 workflows YAML-valid - Full suite 615+84 green on the branch
conductor added 1 commit 2026-09-07 23:05:32 +01:00
feat(pipeline): research structuralization — dispatched headless research stage + idempotent backlog sweep (#204 second slice)
CI Pipeline / best-practices (push) Successful in 3s
CI Pipeline / documentation (push) Successful in 2s
Auto-label / priority-gate (pull_request) Skipped
Auto-label / auto-label (pull_request) Successful in 2s
CI Pipeline / lint (push) Failing after 20s
CI Pipeline / canary (push) Successful in 28s
CI Pipeline / type-check (push) Successful in 25s
CI Pipeline / gitea-offline (push) Successful in 14s
CI Pipeline / unit-tests (push) Successful in 36s
CI Pipeline / required-checks (push) Skipped
CI Pipeline / best-practices (pull_request) Successful in 3s
CI Pipeline / documentation (pull_request) Successful in 2s
CI Pipeline / lint (pull_request) Failing after 20s
CI Pipeline / gitea-offline (pull_request) Successful in 13s
CI Pipeline / canary (pull_request) Successful in 28s
CI Pipeline / unit-tests (pull_request) Successful in 33s
CI Pipeline / type-check (pull_request) Successful in 23s
CI Pipeline / required-checks (pull_request) Skipped
Spec gate (headless) / spec-gate (pull_request) Successful in 8s
db14f66bc0
Nick's critique structuralized (2026-09-07):
- 'is research being done or already done?' → sweep detects existing
  4-phase rounds (INWARD/OUTWARD/INNOVATION/SYNTHESIS comments) and SKIPS
  those issues; never re-researches completed work
- research must CALL the LLM → research-stage-headless.yml dispatches headless
  mimo on research-pending label events (spec-gate runner pattern, verified)
- filed as a research FILE per issue → research/issue-<n>-research.md merged
  to master via auto-PR; comment carries the markers research-clear keys on
- 4 phases → SYNTHESIS ends in ordered build instructions = implementer's prompt
- TUI callback seam → prompt externalized to governed prompts/research-round.md
  (placeholders substituted at runtime; L3/TUI owns it via reviewed diffs later)
- failsafe: sweep dry-run by default; --apply explicit; red-first tests (10)

Also: spec-gate-headless.yml copied to master stream with ROBOT_TOKEN wired
(same reserved-secret bug the robot had — GITEA_TOKEN is the read-only auto token).
gitea-actions Bot added the buginfrastructure labels 2026-09-07 23:05:38 +01:00
Author
Owner

🤖 Headless spec gate (non-blocking, #204 first slice)

Spec-gate agent produced no text output — check runner logs.

Deterministic floors still govern the merge

This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.

🤖 **Headless spec gate (non-blocking, #204 first slice)** Spec-gate agent produced no text output — check runner logs. <details><summary>Deterministic floors still govern the merge</summary> This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.</details>
conductor added 1 commit 2026-09-07 23:08:56 +01:00
style: ruff format sweep script (lint gate)
CI Pipeline / best-practices (pull_request) Successful in 2s
CI Pipeline / documentation (pull_request) Successful in 2s
CI Pipeline / lint (pull_request) Successful in 27s
CI Pipeline / unit-tests (pull_request) Successful in 33s
CI Pipeline / canary (pull_request) Successful in 24s
CI Pipeline / type-check (pull_request) Successful in 22s
Spec gate (headless) / spec-gate (pull_request) Successful in 7s
CI Pipeline / gitea-offline (pull_request) Successful in 14s
CI Pipeline / required-checks (pull_request) Successful in 0s
auto-version.yml (push) Invalid workflow file
CI Pipeline / best-practices (push) Successful in 2s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / gitea-offline (push) Successful in 14s
CI Pipeline / lint (push) Failing after 35s
CI Pipeline / unit-tests (push) Failing after 45s
CI Pipeline / canary (push) Failing after 46s
CI Pipeline / type-check (push) Successful in 35s
CI Pipeline / required-checks (push) Skipped
08b0037ed4
Author
Owner

🤖 Headless spec gate (non-blocking, #204 first slice)

Spec-gate agent produced no text output — check runner logs.

Deterministic floors still govern the merge

This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.

🤖 **Headless spec gate (non-blocking, #204 first slice)** Spec-gate agent produced no text output — check runner logs. <details><summary>Deterministic floors still govern the merge</summary> This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.</details>
conductor merged commit 52b9773b6d into master 2026-09-07 23:10:50 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#217