{% extends "base.html" %} {% block title %}{{ task.id }}{% endblock %} {% block body %}
{{ stage(eff, 24) }}{{ eff.replace('_',' ') }} {{ stage_word(eff) }}priority {{ priority_label(task.priority) }} · {{ task.difficulty }} · owner {{ owner or 'unassigned' }}{% if owner_source != 'unassigned' %} ({{ owner_source }}){% endif %}{% if task.estimate %} · {{ task.estimate }}{% endif %}{% if task.pr %} · PR ↗{% endif %}
This task remains {{ task.status.value.replace('_', ' ') }}; it will not start, revise, review, or rebase while {{ phase_hold }}. Work already in flight may finish and publish.
{% else %}This task remains {{ task.status.value.replace('_', ' ') }}; it will not start, revise, review, rebase, or merge while {{ phase_hold }}.
{% endif %}Skim the PR{% if state.last_review and state.last_review.get('verdict') %}; the automated review said {{ state.last_review.get('verdict').replace('_',' ') }}: {{ state.last_review.get('summary', '') }}{% elif state.last_review %}; the automated review did not finish with a verdict{% endif %}. Mark it ready for a full review, or send it back with what to change.
This task depends on {% for d in later_deps %}{{ d }}{% if not loop.last %}, {% endif %}{% endfor %}, which {{ 'sits' if later_deps|length == 1 else 'sit' }} in a later phase of this product. It can never become ready here until {{ 'that dependency moves' if later_deps|length == 1 else 'those dependencies move' }} to this phase or earlier.
{{ completion.source }}{% if completion.at %} · {{ completion.at[:16] }}{% endif %}
{{ completion.reason }}
Watch on {{ latest_run.host }}: tmux attach-session -r -t {{ ssh_tmux_session }}. Detach with Ctrl-b d.
{% for gap in brief_gaps %}{{ gap }}{% if not loop.last %}; {% endif %}{% endfor %}
This task is ready and will return to the dispatch queue automatically when the harness probe succeeds.
Reserved by {{ manual_reservation.actor.replace('_', ' ') }}{% if manual_reservation.note %}: {{ manual_reservation.note }}{% endif %}. Garden observes active work, PRs, and checks but starts no automatic lifecycle action.
{% if latest_run and latest_run.status in ('requested','preparing','running') %}Active work {{ latest_run.run_id }} continues to its safe boundary; this reservation does not stop or cancel it.
{% endif %}This prerequisite is outside the worker checkout. Verify it as an operator; the worker will receive only checkout-owned work.
{{ step.path }} — {{ step.action }}Ask a local investigation agent to examine the complete Garden diagnostics. Work already in flight drains safely.
{{ state.investigation.reason }}
{% if state.investigation.get('run_id') %}Investigation run{% endif %}{% if state.investigation.get('report_paths') %}Read HTML reportMarkdown source{% endif %}{% if publication.get('status') == 'failed' %}Publication failed: {{ publication.error }}
{% elif publication.get('commit') %}Published {{ publication.markdown }} and {{ publication.html }} at {{ publication.commit[:12] }}.
{% endif %}{{ manual_take_reason }}
{% endif %} {% if manual_runner and task.status.value == 'running' and latest_run and latest_run.runner == 'manual' %}This task packet is assigned to this manual session. Complete the work, then submit its result to finish the session.
This closes the previous trial's contender PR(s) and branches, and starts fresh contenders from {{ task.default_branch() }}.
{% endif %}A person's wording is rarely the final wording. Write what the task should say; an agent folds it into the task file for you.
| criterion | worker evidence | review |
|---|---|---|
| {{ c.criterion }} | {% if c.not_done %}not done {{ c.worker_reason or 'no reason given' }}{% elif c.evidence %}✓ {{ c.evidence }}{% elif c.has_worker %}no evidence{% else %}—{% endif %} | {% if c.met is true %}met{% elif c.met is false %}not met{% else %}—{% endif %}{% if c.review_reason %} {{ c.review_reason }}{% endif %} |
{{ state.ci_status.provider }} · {{ state.ci_status.state }}{% if state.ci_status.queried_sha %} for {{ state.ci_status.queried_sha }}{% endif %}{% if state.ci_status.stale %} stale{% endif %}
{{ edit_diff }}Leftover edits from a killed run, set aside so a fresh dispatch could start clean. Recover with git stash apply <sha> in the task's worktree.
{{ review.at[:16] if review.at else 'date unavailable' }} · review run{% if review.head %} · source {{ review.head[:12] }}{% endif %}
{{ review.markdown|md|safe }}Q: {{ item.q }}
A: {{ item.a }}
| mode | runs | input | cache-read | output | cost |
|---|---|---|---|---|---|
| {{ mode }} | {{ m.runs }} | {{ '{:,}'.format(m.input_tokens) }} | {{ '{:,}'.format(m.cache_read_input_tokens) }} | {{ '{:,}'.format(m.output_tokens) }} | ${{ '%.2f' % m.cost_usd }} |