dev-manager Cockpit

Overview

Automation Mode

active Automatic scheduler, orchestrator, forwarder, and sanity auto-heal actions are allowed.

Enhancement Round

idle Kick off a Jules enhancement round once the tracked repo is ready.

Request: not requested yet

Summary: Request an enhancement round for Stbmap/dev-manager when you want the scheduler to look for follow-up improvements.

Open issues / PRs / active enhancer sessions: 0 / 0 / 0

Welcome to the dev-manager orchestration cockpit. It auto-refreshes, remembers your place, and keeps the state visible without manual reloads.

Listens to the manager event stream while that tab is open, without reloading the whole page.

The background Jules sync, scheduler, watcher, forwarder, and orchestrator loops are started in cmd/dev-manager/main.go and read their cadence from DB-backed runtime settings.

GitHub intake watches the tracked repository and imports open issues and pull requests into the queue before the scheduler starts sessions.

Clarification threads are exposed through the JSON API so Codex can read Jules questions and answer them directly without using the UI.

Active Sessions

1

Accounts

1

Agent Roles

5

Ready Items

3

Issues

10

PRs

1

Inbox

29

Suggestions

3

GitHub Sync

Repo: Stbmap/dev-manager

Status: ok: scanned 1 repo(s), 278 items total (Stbmap/dev-manager=278)

Jules Sync

Status: ok: synced 187 Jules session(s) (0 imported, 2 updated)

Webhook Intake

Status: waiting for the first webhook delivery

Sanity Check

Status: ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists

Drift Detector

Status: error: drift detected: risky: repo Stbmap/stbmap workspace /home/stbmap/stbmap has 2 uncommitted change(s) and no active sessions

Self-Improvement

Status: waiting: reused 1 canonical self-improvement issue(s), policy denied 2 candidate(s)

Memory Retention

Status: ok: no expired memory entries (retention=180d)

Attention Window

Candidates: 1

Quietest / Noisiest: just now (12911230278441011814) / just now (12911230278441011814)

Goal Plans

Total: 27

Split / Blocked / Launchable: 1 / 0 / 26

Split Plans

Total: 1

Proposed / Approved / Applied: 1 / 0 / 0

Role Tasks

Total: 42

Active / Blocked / Failed / Completed: 0 / 10 / 0 / 6

Admission Decisions

Total: 78

Blocked / Allowed / Failed: 49 / 22 / 0

Main-first drift: 0

Operator Explanation

escalating Why the manager is waiting, launching, escalating, or refusing work.

  • 2 clarification session(s) are operator-owned
  • 10 blocked role task(s) remain

Next: resolve the operator-owned items before opening fresh work

Recent Sanity Actions

This is the manager's self-check trail. Auto-heal only repairs safe queue drift and uses long thresholds before it pauses or requeues expired work.

Time Event Summary
1m ago sanity_ok ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists
1m ago sanity_auto_heal Repaired 3 item(s).
3m ago sanity_ok ok: no sanity issues detected
5m ago sanity_ok ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists
5m ago sanity_auto_heal Repaired 3 item(s).
9m ago sanity_ok ok: no sanity issues detected
11m ago sanity_ok ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists
11m ago sanity_auto_heal Repaired 3 item(s).

Local Sessions

Sessions tracked by dev-manager in the local database. These are the normalized manager-owned rows the scheduler, watcher, and orchestrator actively manage end to end.

Pause keeps a session visible and held by the manager. Kill stops local management, requeues the linked GitHub item when possible, and may still leave the remote Jules session visible upstream because Jules does not expose a hard delete.

Selected Session

Click any session row to open its details here. The selection is remembered across auto-refreshes.

Trace / ID / Item State Details Actions
Stbmap/dev-manager
PR #278
12911230278441011814
awaiting_clarification
Fix PR #277 Conflicts
Created: 15m ago Last Active: just now Lease Remaining: in 2d 23h

Jules Sessions

Remote sessions pulled from the Jules API for any configured Jules accounts. This is the raw upstream mirror. The manager-owned queue lives in Local Sessions and uses normalized internal states for automation.

Remote Jules Sessions

Idle

Loading remote Jules sessions...

Questions / Blockers

First-class attention queue for Jules sessions that need a response, recovery nudge, or operator decision. This view listens to the manager event stream and refreshes only when something changes.

Attention Queue

Idle

Loading sessions that need attention...

Operator Inbox

Single place for human decisions. This queue collects escalations, provider failures, blocked messages, and other items the manager cannot safely finish on its own.

Attention Queue

Idle

Loading operator inbox items...

Jules Suggestions

Paste a Jules web suggestion here when the upstream surface does not expose a clean API. Suggestions are tracked advisory work first, then they can be promoted to a GitHub issue, turned into a directive inbox item, or ignored as noise.

Suggestion Relay

Idle

Loading suggestions...

Manager Memory

Durable memory rows capture incidents, prompt changes, self-improvement notes, split plans, and other lessons the manager should remember across sessions. Rows now carry an expiry and a retention sweep prunes stale memory so prompts stay current.

Memory Browser

Idle
Filter values persist in the browser and the results refresh automatically when this tab is open.

Loading memory entries...

Goal Plans

Goal plans turn broad work into ordered, reusable slices. Each row records the target, dependency graph, and the split/blocked/launchable disposition the manager derived before a worker starts.

Goal Plan Overview

Total: 27 Split required: 1 Blocked: 0 Launchable: 26
Time Target Goal Disposition Graph
15m ago Stbmap/dev-manager
goal-plan:Stbmap/dev-manager#278
Verify that PR #278 has no delta beyond the already-merged PR #277 result, then close it with a note that the work landed on main in commit 1926abf and no follow-on implementation issue is needed.
Plan: Fix PR #277 Conflicts
PR #278 does not contain a new implementable slice. PR #277 is already merged on main at 1926abf, and this conflict-fix PR matches that merged result, so there is no fresh engineering work to split or hand off.
launchable
deps=0
history=0
children=0
ordered=1
50m ago Stbmap/dev-manager
goal-plan:Stbmap/dev-manager#277
Ship a safe replayable incident drill workflow in `dev-manager incident` that can load a captured incident, evaluate the current expected recovery path against current code and playbooks, report the result clearly, and persist the drill outcome for later review without changing production or primary database state.
Plan: feat: Add replayable incident and recovery drills
PR #277 is ready closeout work, and its scope is still one cohesive operator workflow: add replayable incident drills that reuse the incident record, current recovery logic, and durable storage together. Under the fat policy, splitting this PR would mostly introduce artificial handoff boundaries rather than launchable reused slices from merged main.
launchable
deps=0
history=0
children=0
ordered=1
5h 5m ago Stbmap/dev-manager
goal-plan:Stbmap/dev-manager#273
Update the relevant StartTaskSession test coverage so the generated Task Session prompt is required to include the manager-notification guidance with the exact Manager API URL, preventing future prompt regressions.
Plan: test: assert Manager API links in StartTaskSession
This is a narrow PR closeout task: extend existing test coverage so StartTaskSession prompt assertions explicitly require the exact Manager API notify URL guidance. Under the current fat split policy, this should stay as one cohesive change rather than be split into separate test-only slices.
launchable
deps=0
history=0
children=0
ordered=1
5h 7m ago Stbmap/dev-manager
goal-plan:Stbmap/dev-manager#272
Pin the StartTaskSession contract so tests verify Manager API link instructions are present in the right place: the worker-facing session prompt keeps the generic follow-up guidance, and the session-scoped notify message carries the exact Manager API notify path for that session.
Plan: test: assert Manager API links in StartTaskSession
This PR is already a narrow, test-only slice. Under the fat policy, splitting a single StartTaskSession prompt-contract assertion change would create unnecessary overlap and coordination cost without increasing reuse.
launchable
deps=0
history=1
children=0
ordered=2
5h 14m ago Stbmap/dev-manager
goal-plan:Stbmap/dev-manager#245
Build a replayable incident and recovery drill on top of the existing incident reports, recovery playbooks, and sandbox/eval worktree machinery so an operator can run a captured incident against current main or a scratch branch without editing fixtures, see the incident, expected recovery, and observed outcome in one output, and keep each drill result linked to the source incident for before/after comparison without mutating production state.
Plan: Add replayable incident and recovery drills
Keep this as one fat slice. The terminal command, incident/playbook replay engine, isolated execution path, comparison logic, and durable drill record all share the same core abstraction. Splitting now would create overlapping child issues around the same runner and persistence model, while the acceptance criteria are end-to-end rather than safely separable.
launchable
deps=0
history=0
children=0
ordered=1

Split Plans

Split plans are the operator-approved workflow that turns a broad item into linked child GitHub issues. Approve a proposal, apply it to create the child issues, or request a regeneration if the slice set needs another pass.

Split Plan Overview

Total: 1 Proposed: 1 Approved: 0 Applied: 0 Completed: 0 Rejected: 0
Time Target State Parent Children Summary Actions
19h 3m ago Stbmap/dev-manager
Stbmap/dev-manager#244
issue_split:Stbmap/dev-manager#244
proposed needs_split
  • Add a supervised manager-soak eval profile
    proposed risk=medium labels=1
  • Add durable long-run evidence summaries
    proposed risk=medium labels=1
  • Add long-run autonomy stop conditions
    proposed risk=medium-high labels=2
Prove from merged main that the manager can survive a supervised multi-cycle workload window, capture incident-grade evidence, and stop deterministically when drift, duplicate work, stale leases, repeated recoveries, or manual intervention appear.
The issue is too broad for one fresh worker because it mixes three separable concerns while repo guidance still says keep the manager supervised, not unattended: a long-running driver, durable soak evidence, and deterministic stop conditions.

Agent Handoffs

Durable handoff rows record role transitions such as planner to implementer, implementer to reviewer, and orchestrator escalations. This is the visible multi-agent ownership trail.

Handoff Browser

Idle
This shows the role transition trail that the manager uses for multi-agent ownership and escalation.

Loading handoffs...

Role Tasks

Durable role-owned tasks are derived from handoffs and tracked separately from raw GitHub items. They keep planner, implementer, reviewer, repairer, and reconciler work visible across retries and scheduler restarts.

Total: 42 Active: 0 Blocked: 10 Failed: 0 Completed: 6
Ready: 26 Pending: 0 Abandoned: 0

By status:

  • blocked=10
  • completed=6
  • ready=26

By role/state:

  • implementer->blocked=10
  • implementer->completed=4
  • implementer->ready=12
  • reconciler->completed=1
  • reconciler->ready=13
  • repairer->ready=1
  • splitter->completed=1
Task Role / Status Target Chain Updated
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#267:reconciler
handoff:pr_closeout:reviewer->reconciler:2601333544229443650:Stbmap/dev-manager#267
reconciler ready Stbmap/dev-manager
github_item Stbmap/dev-manager#267
chain: handoff:pr_closeout:reviewer->reconciler:17318204966995998097:Stbmap/dev-manager#267
origin: handoff:pr_closeout:reviewer->reconciler:17318204966995998097:Stbmap/dev-manager#267
session: 2601333544229443650
1h 41m ago
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#264:reconciler
handoff:pr_merge:reviewer->reconciler:4437709199185659483:Stbmap/dev-manager#264
reconciler ready Stbmap/dev-manager
github_item Stbmap/dev-manager#264
chain: handoff:pr_merge:reviewer->reconciler:12288488647733156000:Stbmap/dev-manager#264
origin: handoff:pr_merge:reviewer->reconciler:12288488647733156000:Stbmap/dev-manager#264
session: 4437709199185659483
2h 32m ago
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#273:reconciler
handoff:pr_merge:reviewer->reconciler:8220350778736999295:Stbmap/dev-manager#273
reconciler ready Stbmap/dev-manager
github_item Stbmap/dev-manager#273
chain: handoff:pr_merge:reviewer->reconciler:8220350778736999295:Stbmap/dev-manager#273
origin: handoff:pr_merge:reviewer->reconciler:8220350778736999295:Stbmap/dev-manager#273
session: 8220350778736999295
4h 21m ago
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#272:reconciler
handoff:pr_merge:reviewer->reconciler:7885717444279553771:Stbmap/dev-manager#272
reconciler ready Stbmap/dev-manager
github_item Stbmap/dev-manager#272
chain: handoff:pr_merge:reviewer->reconciler:7885717444279553771:Stbmap/dev-manager#272
origin: handoff:pr_merge:reviewer->reconciler:7885717444279553771:Stbmap/dev-manager#272
session: 7885717444279553771
5h 5m ago
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#271:reconciler
handoff:pr_merge:reviewer->reconciler:5888283231160333547:Stbmap/dev-manager#271
reconciler ready Stbmap/dev-manager
github_item Stbmap/dev-manager#271
chain: handoff:pr_merge:reviewer->reconciler:5888283231160333547:Stbmap/dev-manager#271
origin: handoff:pr_merge:reviewer->reconciler:5888283231160333547:Stbmap/dev-manager#271
session: 5888283231160333547
5h 20m ago

GitHub Issues

Imported work items from the tracked repository. These feed the scheduler.

Closed items are hidden by default. 474 closed item(s) are hidden. Use ?show_closed=1 to reveal them.

Repo / Issue Title State Updated Link
Stbmap/dev-manager
Issue #259
Local agent should help when Jules clearly can't resolve issues, reviews etc. ready 1m ago Open
Stbmap/dev-manager
Issue #243
Phase 5: Production Hardening and Unattended Autonomy ready 1m ago Open
Stbmap/dev-manager
Issue #244
Add a long-running soak harness for unattended autonomy ready 1m ago Open
Stbmap/dev-manager
Issue #247
Tighten truth reconciliation for workspace_dirty_orphan:Stbmap/stbmap deferred 2m ago Open
Stbmap/dev-manager
Issue #257
Jules recieves multiple consecutive messages deferred 2m ago Open
Stbmap/dev-manager
Issue #262
feature: max dev cycle configuration knop deferred 2m ago Open
Stbmap/dev-manager
Issue #260
feature: dev-manager scheduled tasks deferred 2m ago Open
Stbmap/dev-manager
Issue #269
feature: stale blocked-item reaper for issues and PRs deferred 2m ago Open
Stbmap/dev-manager
Issue #245
Add replayable incident and recovery drills deferred 2m ago Open
owner/repo
Issue #1
Test trace item deferred 8h 35m ago Open

GitHub PRs

Imported pull requests from the tracked repository.

Closed items are hidden by default. 474 closed item(s) are hidden. Use ?show_closed=1 to reveal them.

Repo / PR Title State Updated Link
Stbmap/dev-manager
PR #278
Fix PR #277 Conflicts in-progress 2m ago Open

Environment Configuration

Global Secrets

Manager-level secrets loaded at runtime.

Repositories

Map each GitHub repository to a local checkout so intake can watch it and Codex can answer from the correct codebase. This is the seam that makes multi-repo orchestration work.

Repo Check: warn: repo onboarding check passed with 1 warning(s) Health: ok: workspace exists Health checked: 1m ago Intake: ok: scanned 278 item(s) Intake checked: 2m ago Paused[issues]: circuit breaker tripped: 3 duplicate sessions prevented in last 1h
Updated: 1m ago
Repo Check: unknown Health: ok: workspace exists Health checked: 1m ago Intake: ok: scanned 206 item(s) Intake checked: 2d 11h ago
Updated: 1m ago

Add Repository Mapping

Repository Policy Versions

Every repository policy save records a durable snapshot. Use restore to roll a repo back to a known-good policy version.

Repo Version Status Summary Description Updated Actions
Stbmap/dev-manager #1 active - seeded from repo_configs 1d 9h ago
Stbmap/stbmap #1 active - seeded from repo_configs 1d 9h ago

Runtime Settings

These DB-backed settings control the automatic loops and decision thresholds without code changes or restarts. Use Go duration strings like 30s, 5m, or 2h. The issue split policy lives here too, so you can keep Jules on fat issues unless you explicitly flip it to split.

Updated: 5d ago
Updated: 19h 22m ago
Updated: 2d 16h ago
Updated: 6d ago
Updated: 6d ago
Updated: 7m ago
Updated: 2d 15h ago
Updated: 2d 1h ago
Updated: 2d 1h ago
Updated: 2d 17h ago
Updated: 2m ago
Updated: 2d 17h ago
Updated: 17m ago
Updated: 2d 13h ago
Updated: just now
Updated: 2d 17h ago
Updated: 14h 53m ago
Updated: 17m ago
Updated: 1d 10h ago
Updated: 1d 10h ago
Updated: 2d 3h ago
Updated: 2d 15h ago
Updated: 6d 2h ago
Updated: 2d 17h ago
Updated: 2d 2h ago
Updated: 2d 13h ago
Updated: 17m ago
Updated: 1m ago
Updated: 17m ago
Updated: 17m ago
Updated: 17m ago
Updated: 17m ago
Updated: 2d 17h ago
Updated: 2d 11h ago
Updated: 1d 11h ago
Updated: 1d 11h ago
Updated: 1d 11h ago
Updated: 1d 11h ago
Updated: 2d 17h ago

Budgets

Budget thresholds live in runtime settings for global defaults and in each repository mapping for overrides. They control how much Jules and provider burn the manager will tolerate before it slows fresh launches.

Global: pass Burn: jules=60/unbounded codex=149/unbounded
Scope Policy Jules Codex Gemini Status Blocking
global global defaults 60/unbounded 149/unbounded 0/unbounded pass -
Stbmap/dev-manager inherited 58/unbounded 149/unbounded 0/unbounded pass -
Stbmap/stbmap inherited 2/unbounded 0/unbounded 0/unbounded pass -

Accounts

Name Limits (Concurrent/Daily) Active
work_1
ID: 490a1869-f32f-4189-83cc-85b4334e8fcd
Conc: 10
Daily: 85
Used: 60 Remaining: 25
Active Jules API Key: OK Last Used: never

Add New Account

Agent Roles

Roles describe the worker lanes the manager knows about. Updating a role now creates a new prompt version instead of overwriting the previous one.

Add New Role

Prompt Versions

Prompt versions are the durable source of truth for worker instructions and recovery playbooks. Use scope_type=role and scope_key=implementer/reviewer/orchestrator/responder/admission/completion_review for defaults, scope_type=repo plus a repo full name for repo overrides, or scope_type=playbook to manage named recovery playbooks.

Create Prompt Version

Known Versions

Scope Prompt Version Status Description Content Updated Actions
playbook: global awaiting_clarification #1 active Clarification waiting path
{
  "key": "awaiting_clarification",
  "summary": "Answer or escalate a worker question with the smallest safe step.",
  "audience": "responder",
  "trigger_states": ["awaiting_clarification"],
  "allowed_actions": ["answer", "escalate"],
  "message_template": "This session is waiting on clarification. Answer the question directly from the repository docs and current codebase. If the docs do not cover it, say exactly what is missing and the smallest next step. Question: {{.Reason}}.",
  "operator_note_template": "Clarification playbook selected for {{.SessionID}}.",
  "stop_conditions": ["question answered", "escalated to human review"],
  "evidence": ["clarification question present", "confidence available"]
}
2d 12h ago
playbook: global blocked_merge #1 active Merge blocker recovery
{
  "key": "blocked_merge",
  "summary": "Clear merge conflicts or report the exact blocker.",
  "audience": "reviewer",
  "trigger_states": ["blocked"],
  "allowed_actions": ["nudge", "escalate"],
  "message_template": "This session is blocked by merge or review state. Resolve the blocker directly now. If this is a merge conflict or behind-base PR, update from the base branch, resolve conflicts, rerun the relevant tests, and push an updated PR. If you still cannot proceed, report the exact blocker and the smallest next step.",
  "operator_note_template": "Merge-block playbook selected for {{.ItemLabel}} because {{.Reason}}.",
  "stop_conditions": ["blocker resolved", "human review required"],
  "evidence": ["merge conflict", "branch protection", "base branch drift", "changes requested"]
}
2d 12h ago
playbook: global duplicate_session #1 active Duplicate session recovery
{
  "key": "duplicate_session",
  "summary": "Prevent duplicate work from spawning more quota burn.",
  "audience": "operator",
  "trigger_states": ["running", "blocked", "failed"],
  "allowed_actions": ["escalate", "release"],
  "message_template": "This session appears to duplicate another worker or a recently completed attempt. Stop new changes, keep the current evidence intact, and wait for manager reconciliation before starting more work.",
  "operator_note_template": "Duplicate-session playbook selected for {{.ItemLabel}}.",
  "stop_conditions": ["duplicate ownership resolved"],
  "evidence": ["duplicate launch", "similar branch", "similar PR title", "same item already owned"]
}
2d 12h ago
playbook: global failed_session #1 active Failed session recovery
{
  "key": "failed_session",
  "summary": "Stop active work and surface the smallest clean recovery path.",
  "audience": "operator",
  "trigger_states": ["failed"],
  "allowed_actions": ["escalate", "release"],
  "message_template": "This session appears failed or unrecoverable. Stop active work, preserve the current evidence, and report the smallest clean recovery step for {{.ItemLabel}}.",
  "operator_note_template": "Failed-session recovery selected for {{.ItemLabel}}.",
  "stop_conditions": ["operator intervenes", "session is terminalized"],
  "evidence": ["failed state", "stale lease", "missing remote activity"]
}
2d 12h ago
playbook: global local_only_session #1 active Local-only session recovery
{
  "key": "local_only_session",
  "summary": "Handle rows that exist locally without a reachable remote worker.",
  "audience": "operator",
  "trigger_states": ["blocked", "failed"],
  "allowed_actions": ["reassign", "escalate", "release"],
  "message_template": "This session is local-only or missing its remote worker. Do not assume the work is progressing remotely. Reconcile ownership, then decide whether to reassign or release {{.ItemLabel}}.",
  "operator_note_template": "Local-only recovery selected for {{.ItemLabel}}.",
  "stop_conditions": ["remote owner restored", "item requeued", "item released"],
  "evidence": ["no remote account", "missing Jules session", "stale lease with no activity"]
}
2d 12h ago
playbook: global operator_paused_work #1 active Operator paused work recovery
{
  "key": "operator_paused_work",
  "summary": "Respect operator pauses and wait for an explicit resume.",
  "audience": "implementer",
  "trigger_states": ["paused"],
  "allowed_actions": ["noop", "escalate"],
  "message_template": "This session is paused by operator policy. Do not start new work or self-reassign. Wait for an explicit resume or a fresh operator instruction.",
  "operator_note_template": "Operator-paused work selected for {{.ItemLabel}}.",
  "stop_conditions": ["operator resumes", "operator changes the pause reason"],
  "evidence": ["operator pause reason", "manager pause reason", "sanity pause"]
}
2d 12h ago
playbook: global quiet_running_session #1 active Quiet running worker
{
  "key": "quiet_running_session",
  "summary": "Nudge a running worker that has gone quiet but is still expected to continue.",
  "audience": "implementer",
  "trigger_states": ["running", "starting"],
  "allowed_actions": ["nudge"],
  "message_template": "This session has been quiet for {{.QuietFor}}. Continue from the repository docs and current branch. If you are blocked, report the exact blocker and the smallest next step for {{.ItemLabel}}.",
  "operator_note_template": "Quiet running worker nudged for {{.ItemLabel}} after {{.QuietFor}}.",
  "stop_conditions": ["worker responds", "state changes"],
  "evidence": ["quiet_for >= nudge_after", "session still has an active owner"]
}
1d 10h ago
playbook: global remote_only_session #1 active Remote-only session recovery
{
  "key": "remote_only_session",
  "summary": "Handle sessions that exist remotely but are missing locally.",
  "audience": "operator",
  "trigger_states": ["blocked", "failed"],
  "allowed_actions": ["escalate"],
  "message_template": "This session appears to exist remotely without a matching local owner. Stop assuming local state is authoritative and wait for manager reconciliation before taking any more action.",
  "operator_note_template": "Remote-only recovery selected for {{.SessionID}}.",
  "stop_conditions": ["local mirror reconciled"],
  "evidence": ["remote session missing local row", "mirror drift", "unmatched remote activity"]
}
2d 12h ago
playbook: global stale_lease #1 active Stale lease recovery
{
  "key": "stale_lease",
  "summary": "Reassign or release work that has exceeded its lease.",
  "audience": "operator",
  "trigger_states": ["running", "paused", "blocked", "awaiting_clarification"],
  "allowed_actions": ["reassign", "escalate", "release"],
  "message_template": "This session's lease looks stale. Confirm whether the worker is still actively making progress. If not, reassign or release the smallest work item possible and leave a clear trace for the next worker.",
  "operator_note_template": "Stale-lease playbook selected for {{.ItemLabel}} after {{.QuietFor}}.",
  "stop_conditions": ["lease refreshed", "work requeued", "operator decides to hold"],
  "evidence": ["quiet_for beyond lease threshold", "lease expired", "worker not responding"]
}
2d 12h ago
role: admission admission #1 active Decides whether to start a new Jules session.
You are the orchestrator for dev-manager.

Your job is to decide whether it is worth starting a fresh Jules session for a queued work item.
Be patient. Avoid duplicate sessions. Prefer waiting when an existing worker is already handling the same issue or pull request.
If the task is not clearly ready for a new worker, say so.
If the task is clearly ready, say so and give the smallest useful reason.
2d 12h ago
role: another-role another-role #1 active Desc
Prompt
1d 11h ago
role: completion_review completion_review #1 active Reviews terminal Jules sessions and reports whether the result looks trustworthy.
You are the orchestrator for dev-manager.

Your job is to assess a Jules session that just reached a terminal state.
Use the repository docs, current codebase, and manager context to produce a short completion review.
Say whether the completion looks trustworthy and what the smallest next manager step should be.
Be concrete, calm, and brief.
2d 12h ago
role: reconciler reconciler #1 active Closes out finished work and reconciles the queue.
You are a reconciler. Tidy up, verify the final state, and close the loop.
20h 59m ago
role: repairer repairer #1 active Repairs blocked work and clears merge conflicts.
You are a repairer. Fix the blocker or conflict that is preventing the work from progressing.
20h 59m ago
role: responder responder #1 active Answers clarification questions from Jules.
You are the clarification responder for dev-manager.

Your job is to answer Jules' question directly, briefly, and concretely.
Prefer repository docs, tracked issue/PR context, and the current codebase.
If the answer depends on live manager state, query the manager API yourself and turn that into a direct answer for Jules.
Never tell Jules to query localhost, the manager API, or any other local-only service.
If the docs do not cover the question, say exactly what is missing and the smallest next step.
2d 12h ago
role: splitter splitter #1 active Splits broad work into smaller slices.
You are a splitter. Break broad work into smaller, actionable slices and hand the next slice to the right worker.
20h 59m ago
role: test-role test-role #2 active Updated Description
Updated Prompt
1d 11h ago
role: test-role test-role #1 inactive Test Description
Test Prompt
1d 11h ago

Audit Log

Time Actor Event Target Details
just now dev-manager-orchestrator orchestrator-answer session: 12911230278441011814
{"action": "answer", "reason": "session is waiting on clarification", "item_type": "pr", "quiet_for": "just now", "role_name": "reviewer", "confidence": "high", "item_number": "278", "playbook_name": "awaiting_clarification", "lease_remaining": "2d 23h", "playbook_version_number": "1"}
just now dev-manager-codex provider_result session: 12911230278441011814
{"action": "answer", "status": "success", "provider": "codex", "trace_id": "7104418b-4897-4d45-8fdb-fa22deb55009", "item_type": "pr", "latency_ms": 81888, "item_number": 278, "prompt_name": "responder", "repo_full_name": "Stbmap/dev-manager", "prompt_version_id": "56c10c5f-469b-4aa4-bbd6-34f4d5e89cd9", "prompt_version_number": 1}
1m ago dev-manager-sanity sanity_ok manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "findings": []}
1m ago dev-manager-sanity sanity_auto_heal manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "remaining_findings": []}
2m ago dev-manager-github-intake github-item-state-sync github_item: 567df8df-5af1-44b9-b296-7e74d1429705
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "244", "repo_full_name": "Stbmap/dev-manager"}
2m ago dev-manager-github-intake github-item-state-sync github_item: 1f78cd4b-7750-4c49-b109-496dcad965c1
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "243", "repo_full_name": "Stbmap/dev-manager"}
2m ago dev-manager-github-intake github-item-state-sync github_item: dff21504-dbc7-45e3-87cc-178e7fc23efc
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "259", "repo_full_name": "Stbmap/dev-manager"}
3m ago dev-manager-sanity sanity_ok manager: sanity
{"status": "ok: no sanity issues detected", "repairs": [], "findings": []}
5m ago dev-manager-sanity sanity_ok manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "findings": []}
5m ago dev-manager-sanity sanity_auto_heal manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "remaining_findings": []}
5m ago dev-manager-watcher pr_merged session: 11477211246662255452
{"reason": "already merged on GitHub", "pull_number": 277}
5m ago dev-manager-codex codex_completion_review session: 11477211246662255452
{"outcome": "merged", "summary": "Completion looks only partly trustworthy. Main now does contain the new incident drill entrypoint and a basic replay/evaluation path in cmd/dev-manager/incident.go and internal/incident/incident.go, but the drill run is only returned or printed in memory; I do not see durable drill-result persistence, audit recording, or a persistence-focused test, so it falls short of the goal-plan promise for PR #277. Smallest next manager step: open a narrow follow-up for persisted drill results/evaluation history, and otherwise treat this session as merged and releasable; if PR #278 is still open, it can be closed as obsolete afterward."}
5m ago dev-manager-codex provider_result session: 11477211246662255452
{"action": "completion_review", "status": "success", "provider": "codex", "trace_id": "67815aa1-a4d2-4173-80cb-94ba685d2088", "item_type": "pr", "latency_ms": 138797, "item_number": 277, "prompt_name": "completion_review", "repo_full_name": "Stbmap/dev-manager", "prompt_version_id": "0ff79af0-3c61-4a39-9931-9de571b7623f", "prompt_version_number": 1}
7m ago dev-manager-drift reconciliation_observed reconciliation_record: workspace_dirty_orphan:Stbmap/stbmap
{"kind": "workspace_dirty_orphan", "status": "active", "details": "git status --porcelain reported 2 change(s): M lib/src/platform_core/application/app_release_info.dart; M pubspec.yaml", "summary": "risky: repo Stbmap/stbmap workspace /home/stbmap/stbmap has 2 uncommitted change(s) and no active sessions", "seen_count": 132, "subject_id": "/home/stbmap/stbmap", "subject_type": "workspace", "repo_full_name": "Stbmap/stbmap", "reconciliation_key": "workspace_dirty_orphan:Stbmap/stbmap"}
7m ago dev-manager-github-intake github-item-state-sync github_item: 567df8df-5af1-44b9-b296-7e74d1429705
{"state": "blocked", "reason": "state synced from deferred to blocked", "item_number": "244", "repo_full_name": "Stbmap/dev-manager"}
7m ago dev-manager-github-intake github-item-state-sync github_item: 1f78cd4b-7750-4c49-b109-496dcad965c1
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "243", "repo_full_name": "Stbmap/dev-manager"}
7m ago dev-manager-github-intake github-item-state-sync github_item: dff21504-dbc7-45e3-87cc-178e7fc23efc
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "259", "repo_full_name": "Stbmap/dev-manager"}
9m ago agent agent_session_notify_completed agent_protocol: 1488538330272459625
{"body": "", "kind": "question", "state": "awaiting_clarification", "title": "", "summary": "Jules has a question", "trace_id": "67815aa1-a4d2-4173-80cb-94ba685d2088", "source_id": "1488538330272459625", "session_id": "1488538330272459625", "source_type": "jules", "manager_status": "released", "repo_full_name": "Stbmap/dev-manager", "codex_forwarded": "true"}
9m ago dev-manager-codex provider_result session: 1488538330272459625
{"action": "answer", "status": "success", "provider": "codex", "trace_id": "67815aa1-a4d2-4173-80cb-94ba685d2088", "item_type": "pr", "latency_ms": 173586, "item_number": 277, "prompt_name": "responder", "repo_full_name": "Stbmap/dev-manager", "prompt_version_id": "56c10c5f-469b-4aa4-bbd6-34f4d5e89cd9", "prompt_version_number": 1}
9m ago dev-manager-sanity sanity_ok manager: sanity
{"status": "ok: no sanity issues detected", "repairs": [], "findings": []}
10m ago scheduler duplicate_session_prevented repo: Stbmap/dev-manager
{"reason": "recent session 7170792322157361129 handling same issue #244", "item_number": "244", "repo_full_name": "Stbmap/dev-manager", "duplicate_of_session": "7170792322157361129"}
11m ago dev-manager-sanity sanity_ok manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "findings": []}
11m ago dev-manager-sanity sanity_auto_heal manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "remaining_findings": []}
12m ago agent agent_session_notify_requested agent_protocol: 1488538330272459625
{"body": "", "kind": "question", "title": "", "summary": "Jules has a question", "trace_id": "67815aa1-a4d2-4173-80cb-94ba685d2088", "source_id": "1488538330272459625", "session_id": "1488538330272459625", "source_type": "jules", "repo_full_name": "Stbmap/dev-manager"}
12m ago dev-manager-github-intake github-item-state-sync github_item: 567df8df-5af1-44b9-b296-7e74d1429705
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "244", "repo_full_name": "Stbmap/dev-manager"}
12m ago dev-manager-github-intake github-item-state-sync github_item: 1f78cd4b-7750-4c49-b109-496dcad965c1
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "243", "repo_full_name": "Stbmap/dev-manager"}
12m ago dev-manager-github-intake github-item-state-sync github_item: dff21504-dbc7-45e3-87cc-178e7fc23efc
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "259", "repo_full_name": "Stbmap/dev-manager"}
13m ago dev-manager-sanity sanity_ok manager: sanity
{"status": "ok: no sanity issues detected", "repairs": [], "findings": []}
15m ago dev-manager-sanity sanity_auto_heal manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "remaining_findings": []}
15m ago agent agent_protocol_verify_completed agent_protocol: Stbmap/dev-manager
{"reason": "", "status": "passed", "profile": "go-test-all", "run_key": "sandbox:Stbmap/dev-manager:go-test-all:agent:Stbmap/dev-manager", "trace_id": "", "source_id": "Stbmap/dev-manager", "source_type": "agent"}
15m ago scheduler goal_plan_recorded github_item: Stbmap/dev-manager#278
{"goal": "Verify that PR #278 has no delta beyond the already-merged PR #277 result, then close it with a note that the work landed on main in commit 1926abf and no follow-on implementation issue is needed.", "reason": "PR #278 does not contain a new implementable slice. PR #277 is already merged on main at 1926abf, and this conflict-fix PR matches that merged result, so there is no fresh engineering work to split or hand off.", "summary": "Administrative closeout only: close PR #278 as obsolete because its conflict-resolution content is already present on main via merged PR #277.", "repo_policy": "", "should_split": false, "verification": ["Confirm commit 1926abf from PR #277 is present on main.", "Confirm PR #278's effective tree matches merged main or contains no user-visible/code-level changes beyond conflict resolution already included in #277.", "Close PR #278 with a short explanation referencing merged PR #277 and stating that no additional work remains."], "admission_reason": "PR #278 is obsolete and should be closed: PR #277 is already merged on main at 1926abf, and the conflict-fix branch matches that merged tree, so there is no fresh closeout work to start.", "split_suppressed": false, "dependency_reason": "", "split_recommended": false, "issue_split_policy": "fat"}
15m ago dev-manager-codex provider_result github_item: Stbmap/dev-manager#278
{"action": "issue_split", "status": "success", "provider": "codex", "item_type": "pr", "latency_ms": 14181, "item_number": 278, "prompt_name": "issue_split", "repo_full_name": "Stbmap/dev-manager"}
16m ago agent agent_protocol_verify_requested agent_protocol: Stbmap/dev-manager
{"reason": "", "profile": "go-test-all", "trace_id": "", "source_id": "Stbmap/dev-manager", "source_type": "agent"}
16m ago dev-manager-codex provider_result github_item: Stbmap/dev-manager#278
{"action": "admission", "status": "success", "provider": "codex", "item_type": "pr", "latency_ms": 59771, "item_number": 278, "prompt_name": "admission", "repo_full_name": "Stbmap/dev-manager", "prompt_version_id": "11aac04d-7598-4ef2-9ea7-53be951f00c1", "prompt_version_number": 1}
17m ago dev-manager-drift reconciliation_healed reconciliation_record: workspace_dirty_orphan:Stbmap/dev-manager
{"kind": "workspace_dirty_orphan", "status": "healed", "summary": "blocking: repo Stbmap/dev-manager workspace /home/stbmap/dev-manager has 3 uncommitted change(s) and no active sessions", "seen_count": 20, "subject_id": "/home/stbmap/dev-manager", "subject_type": "workspace", "repo_full_name": "Stbmap/dev-manager", "reconciliation_key": "workspace_dirty_orphan:Stbmap/dev-manager"}
17m ago dev-manager-drift reconciliation_observed reconciliation_record: workspace_dirty_orphan:Stbmap/stbmap
{"kind": "workspace_dirty_orphan", "status": "active", "details": "git status --porcelain reported 2 change(s): M lib/src/platform_core/application/app_release_info.dart; M pubspec.yaml", "summary": "risky: repo Stbmap/stbmap workspace /home/stbmap/stbmap has 2 uncommitted change(s) and no active sessions", "seen_count": 131, "subject_id": "/home/stbmap/stbmap", "subject_type": "workspace", "repo_full_name": "Stbmap/stbmap", "reconciliation_key": "workspace_dirty_orphan:Stbmap/stbmap"}
17m ago dev-manager-github-intake github-item-state-sync github_item: 567df8df-5af1-44b9-b296-7e74d1429705
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "244", "repo_full_name": "Stbmap/dev-manager"}
17m ago dev-manager-github-intake github-item-state-sync github_item: 1f78cd4b-7750-4c49-b109-496dcad965c1
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "243", "repo_full_name": "Stbmap/dev-manager"}
17m ago dev-manager-github-intake github-item-state-sync github_item: dff21504-dbc7-45e3-87cc-178e7fc23efc
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "259", "repo_full_name": "Stbmap/dev-manager"}
17m ago dev-manager-watcher agent_task_retired agent_task: agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#277:reconciler
{"reason": "linked session 1488538330272459625 is complete/released", "role_name": "reconciler", "target_id": "Stbmap/dev-manager#277", "session_id": "1488538330272459625", "target_type": "github_item", "session_state": "complete", "repo_full_name": "Stbmap/dev-manager", "session_manager_state": "released"}
17m ago dev-manager-improvement automation_action_denied github_item: Stbmap/dev-manager#247 (reconciliation:workspace_dirty_orphan:Stbmap/stbmap)
{"mode": "active", "actor": "dev-manager-improvement", "is_pr": false, "action": "github_comment", "reason": "circuit breaker tripped: 5 duplicate sessions prevented in last 1h (issues only)", "trace_id": "", "target_id": "Stbmap/dev-manager#247 (reconciliation:workspace_dirty_orphan:Stbmap/stbmap)", "blocked_by": "repo_pause", "retry_hint": "clear the repo automation pause or post the comment from an operator escalation", "session_id": "", "item_number": 247, "target_type": "github_item", "repo_full_name": "Stbmap/dev-manager", "request_reason": "record recurring evidence on the canonical self-improvement issue", "supervised_policy": "escalation_only"}
17m ago dev-manager-improvement automation_action_denied manager: sanity:manager
{"mode": "active", "actor": "dev-manager-improvement", "is_pr": false, "action": "github_issue_create", "reason": "circuit breaker tripped: 5 duplicate sessions prevented in last 1h (issues only)", "trace_id": "", "target_id": "sanity:manager", "blocked_by": "repo_pause", "retry_hint": "clear the repo automation pause or retry after operator review", "session_id": "", "target_type": "manager", "repo_full_name": "Stbmap/dev-manager", "request_reason": "open self-improvement issue for recurring sanity_drift signal", "supervised_policy": "escalation_only"}
17m ago dev-manager-improvement automation_action_denied manager: duplicate:Stbmap/dev-manager
{"mode": "active", "actor": "dev-manager-improvement", "is_pr": false, "action": "github_issue_create", "reason": "circuit breaker tripped: 5 duplicate sessions prevented in last 1h (issues only)", "trace_id": "", "target_id": "duplicate:Stbmap/dev-manager", "blocked_by": "repo_pause", "retry_hint": "clear the repo automation pause or retry after operator review", "session_id": "", "target_type": "manager", "repo_full_name": "Stbmap/dev-manager", "request_reason": "open self-improvement issue for recurring duplicate_start signal", "supervised_policy": "escalation_only"}
17m ago dev-manager-sanity sanity_ok manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "findings": []}
17m ago dev-manager-sanity sanity_auto_heal manager: sanity
{"status": "ok: auto-healed 3 issue(s): Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists; Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists", "repairs": ["Stbmap/dev-manager|issue|244 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|243 moved from blocked to ready because no active session exists", "Stbmap/dev-manager|issue|259 moved from blocked to ready because no active session exists"], "remaining_findings": []}
17m ago dev-manager-github-intake github-item-state-sync github_item: 567df8df-5af1-44b9-b296-7e74d1429705
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "244", "repo_full_name": "Stbmap/dev-manager"}
17m ago dev-manager-github-intake github-item-state-sync github_item: 1f78cd4b-7750-4c49-b109-496dcad965c1
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "243", "repo_full_name": "Stbmap/dev-manager"}
17m ago dev-manager-github-intake github-item-state-sync github_item: dff21504-dbc7-45e3-87cc-178e7fc23efc
{"state": "blocked", "reason": "state synced from ready to blocked", "item_number": "259", "repo_full_name": "Stbmap/dev-manager"}
17m ago dev-manager-github-intake github-item-state-sync github_item: f7f46b25-e839-472e-8bf3-79927428c269
{"state": "ready", "reason": "state synced from deferred to ready", "item_number": "278", "repo_full_name": "Stbmap/dev-manager"}
17m ago admin manual_answer session: 11477211246662255452
{"action": "answer", "reason": "sent direct reply to Jules"}

JSON API Endpoints

The manager exposes the following JSON API endpoints for orchestration tooling: