diff --git a/org-templates/molecule-dev/org.yaml b/org-templates/molecule-dev/org.yaml index 2cbb5522..540930c8 100644 --- a/org-templates/molecule-dev/org.yaml +++ b/org-templates/molecule-dev/org.yaml @@ -277,6 +277,45 @@ workspaces: role: AI frameworks and protocol evaluation files_dir: technical-researcher plugins: [browser-automation] + # Idle-loop pilot (#205) — Technical Researcher is the first workspace + # to opt in to the reflection-on-completion pattern. Measure + # activity_logs delta over 24h, then roll to the rest of the research + # team if it produces useful backlog-pull dispatches. + idle_interval_seconds: 600 + idle_prompt: | + You have no active task. Backlog-pull + reflect, under 60 seconds: + + 1. search_memory "research-backlog:technical-researcher" — pull any + stashed research questions from prior cron fires or Research Lead + delegations. If you find one: + - delegate_task to Research Lead with a concrete deliverable spec: + "Research . Report in words. Link 2-3 primary sources. + When done, route audit_summary to PM with category=research." + - commit_memory removing that item from the backlog (or replacing + with the next one) so you don't re-dispatch on the next tick. + + 2. If the backlog is empty, look at your LAST memory entry from the + Hourly plugin curation cron. Did that finding surface a follow-up + study worth doing? (Examples: "which providers does Hermes Agent + actually support beyond our list?", "is there a newer MCP server + we should evaluate?", "does have feature parity with + ?") If yes: + - File a GH issue with the question body, label `research`. + - commit_memory "research-backlog:technical-researcher" with the + same question so the NEXT idle tick picks it up via step 1. + + 3. If neither backlog nor reflection produced anything actionable, + write "tr-idle HH:MM — clean" to memory and stop. Do NOT fabricate + busy work; idle-clean is a legitimate outcome. + + Hard rules: + - Max 1 A2A send per idle tick. + - If Research Lead is currently busy (check workspaces API), skip + step 1 and go straight to step 2 (which doesn't delegate). + - Under 60 seconds wall-clock per tick. If you're still thinking at + 45s, commit to one decision, ship it, stop. + - NEVER call any cron's own prompt from here — idle_prompt is a + lightweight reflection, not a re-run of the hourly survey. schedules: - name: Hourly plugin curation cron_expr: "22 * * * *"