{% extends "base.html" %} {% block title %}Inbox{% endblock %} {% block body %}

What needs you

Decision cards need your judgment; operator cards name a bounded repair. Beyond that, the garden grows.

BoardTimeline
{{ inbox_count }}
need you
{{ workers_running }}/{{ max_parallel }}
workers running
{{ reviews_running }}/{{ review_parallel }}
reviews running
{% if pr_destinations|length == 1 %}{{ prs_open }}{% elif pr_destinations %}{{ prs_open }}{% else %}{{ prs_open }}{% endif %}
PRs open
{% if suggestions_pending %}
{{ suggestions_pending }}
suggestions to integrate
{% endif %}
${{ '%.2f' % spent_24h }}
spent in 24h
{% if pr_destinations|length > 1 %}
Tracked PR lists

GitHub search is host-local, so these links keep every open garden PR in its configured repository.

{% for destination in pr_destinations %}{{ destination.label }} · {{ destination.count }} PR{{ 's' if destination.count != 1 else '' }} ↗{% if not loop.last %} · {% endif %}{% endfor %}

{% endif %} {% if merge_queue %}
Merge queue
{% if merge_queue.head %}

Head: {{ merge_queue.head.task }} {{ merge_queue.head.title }} — {% if merge_queue.head.waits_on_ci %}rebased, waiting on CI{% if merge_queue.head.checks %} ({{ merge_queue.head.checks }}){% endif %}{% else %}rebased, checks {{ merge_queue.head.checks or 'green' }}, ready to merge{% endif %}.{% if merge_queue.head.pr %} PR ↗{% endif %}

{% else %}

No PR is in flight right now.

{% endif %} {% if merge_queue.candidates %}
Waiting behind the head:
{% endif %} {% if merge_queue.last_drop %}
Last drop: {{ merge_queue.last_drop.task }} left the queue — {{ merge_queue.last_drop.reason }}
{% endif %}
{% endif %} {% if not inbox_count %}
Inbox zeroNothing needs a person right now. Workers keep going; come back when the rail count changes.
{% endif %}
{% if owner_filter is not none %}All work{% endif %}
{% if owner_filter is not none and not owner_task_items %}
No work assigned to {{ owner_filter or 'unassigned' }}Task cards for other owners are hidden by this filter.
{% endif %} {% for group, gtitle, gdesc, gkind in groups %}{% set gitems = items|selectattr('group', 'equalto', group)|list %}{% if gitems %}
{{ group }}

{{ gtitle }}{% if gkind == 'notice' %} · {{ gitems|length }}, no action needed{% endif %}

{{ gdesc }}

{% for it in gitems %}
{% if it.status %}{{ stage(it.status, 26) }}{% endif %}
{% if it.task %}{{ it.task }}{% endif %}{% if it.status %}{{ it.status.replace('_',' ') }}{% endif %}{{ stage_word(it.status) if it.status else '' }}{% if it.difficulty %} · {{ it.difficulty }}{% endif %}{% if it.task %} · owner {{ it.get('owner') or 'unassigned' }}{% endif %} · {{ it.age }}
{% if it.task or it.group != 'question' %}
{% if it.task %}{{ it.title }}{% else %}{{ it.title }}{% endif %}
{% endif %} {% if not it.get('decision_card') and it.why != it.get('question') %}
{{ it.why }}
{% endif %} {% if it.get('decision_card') %}{% set decision_card = it.decision_card %}{% set card_task = it.card_task %}{% include "_decision_card.html" %}{% endif %} {% if it.group == 'question' and not it.get('decision_card') %}
{{ it.get('question') or it.title }}
{% if it.question_context %}
{{ it.question_context }}
{% endif %}{% if it.question_options %}
options: {{ it.question_options|join(', ') }}
{% endif %}{% endif %} {% if it.group == 'decision' and it.final and not it.get('decision_card') %}
The worker's full message
{{ it.final }}
{% endif %} {% if it.get('review') %}
automated review: {{ it.review.summary }}
{% endif %} {% if it.group == 'approve' and it.gaps %}
Fix the brief before approving — a run would be spent on:
    {% for g in it.gaps %}
  • {{ g }}
  • {% endfor %}
{% endif %} {% if it.group == 'attention' and not it.get('decision_card') %} {% if it.get('kind_blurb') %}
{{ it.kind_blurb }}
{% endif %} {% if it.get('evidence') %}
    {% for line in it.evidence %}
  • {{ line }}
  • {% endfor %}
{% endif %} {% if it.get('decision_kind') == 'question' %} {% if it.question_context %}
{{ it.question_context }}
{% endif %} {% if it.question_options %}
options: {{ it.question_options|join(', ') }}
{% endif %} {% endif %} {% if it.get('discuss') %}{% endif %} {% endif %}
{% if it.task and manual_reservations.get(it.task) %}Manual mode · return…{% elif it.task %}
{% endif %}
{% if it.get('decision_card') %} {% elif it.group == 'tool' %} {% if it.actions %}
{% endif %} {% elif it.group == 'question' and it.task %}
{% elif it.group == 'question' %}
{% elif it.group == 'decision' %}
{% elif it.group == 'retro_verdict' %}
Phase page ↗ {% elif it.group == 'triage' %}
{% if it.pr %}Open PR ↗{% endif %}
{% elif it.group == 'review' %} {% if it.pr %}Review on GitHub ↗{% endif %} {% elif it.group == 'manual' %}
Open task packet ↗ {% elif it.group == 'manual_waiting' and it.actions %} {{ it.actions[0].label }} ↗ {% elif it.group == 'manual_mode' %} Return to automation… {% elif it.group == 'operator' and it.get('kind') == 'operator_scope' %}
{{ it.actions[0].detail }}
{% elif it.group == 'operator' and it.get('kind') == 'runner_hold' %}
{{ it.actions[0].detail }}
{% elif it.group == 'deferred' %} {% if it.kind == 'troubled_deferred' %} {% for a in it.actions %}{% if a.kind == 'troubled-reconsider' %}
{{ a.detail }}
{% endif %}{% endfor %} Open preserved work ↗ {% else %} {% if it.move_to %}
{% endif %} View freeze policy {% endif %} {% elif it.group == 'attention' and it.get('decision_kind') == 'question' %}
{% elif it.group == 'attention' and it.get('decision') %}
{% elif it.group == 'attention' %} {% for a in it.actions %}
{% if a.kind == 'resume' %}
{% elif a.kind == 'recover' %}
{% elif a.kind == 'review-again' %}
{% elif a.kind == 'retry' %}
{% elif a.kind == 'change-approach' %}
{% elif a.kind == 'investigation-take' %}
{% elif a.kind == 'investigation-retry' %}
{% elif a.kind == 'troubled-cancel' %}
{% elif a.kind == 'troubled-continue' %}
{% elif a.kind == 'investigate' %}
{% elif a.kind == 'defer' %}
{% elif a.kind == 'troubled-reconsider' %}
{% elif a.kind == 'investigation-report' %}
{% elif a.kind == 'recover-check' %}
{% elif a.kind == 'ssh-recover' %}
{% elif a.kind == 'discuss' %} {% elif a.kind == 'cancel' %}
{% elif a.kind == 'triage-changes' %}
{% elif a.kind == 'link' %}{{ a.label }} ↗{% endif %} {{ a.detail }}
{% endfor %} {% elif it.group == 'retrying' %}
{% elif it.group == 'approve' %}
Approve into {{ it.phase_name }} {% if it.gaps %}Fix the brief before approving{% endif %} {% if it.move_to %}
{% endif %}
{% elif it.group == 'budget' %} {{ it.actions[0].command }} {% elif it.group == 'config_hold' %}
Config page ↗ {% endif %}
{% endfor %}
{% endif %}{% endfor %}
Progress

Merged work against scope, all phases

{{ burnup|safe }}
Spend

Cost by difficulty tier

{{ tiers|safe }}

If a tier's revisions climb, its model is too cheap for the work; see metrics.

{% endblock %}