← Back to arc detail

Close arc: {{ arc.get('name', arc_id) }}

id: {{ arc.get('id', arc_id) }} · slug: {{ arc_slug }} · status: {{ arc.status }}

{% if arc.get('headline_mechanic') %}

Headline mechanic (the deliverable that must have fired):

{{ arc.headline_mechanic }}
{% else %}

No headline_mechanic recorded on this arc. Use --demo none + a ≥30-char justification.

{% endif %}

anchor: {% if arc.anchor_task %}{{ arc.anchor_task }}{% else %}none{% endif %} · constituent tasks: {{ stats.completed }}/{{ stats.total }} completed ({{ "%.0f%%" % (stats.ratio * 100) }})

{% if error_msg %} {% endif %} {% if recommendation and recommendation.present %}

Agent Recommendation {{ recommendation.verdict }} {% if recommendation.anchor_id %} from anchor task {{ recommendation.anchor_id }} {% endif %}

{% if recommendation.rationale_html %}
Rationale {{ recommendation.rationale_html | safe }}
{% endif %} {% if recommendation.evidence_html %}
Evidence {{ recommendation.evidence_html | safe }}
{% endif %} {% if recommendation.suggested_demo %}

Demo pre-fill: {{ recommendation.suggested_demo }} — edit below if not the right one.

{% endif %}
{% endif %}

§Arc Completion Discipline — three-question check (CLAUDE.md)

  1. Did the integrated system run end-to-end on a fresh substrate? (Wire-level observation, not "tests pass".)
  2. Did any silently-defaulted constants escape human review?
  3. Does the framework that built the arc actually USE the arc?

You answer these in the decision text below. The demo evidence (file/URL) is the wire-level proof; the decision is your narrative answer.

Path must exist (≥256 bytes, extension in evidence allowlist) and either reference an arc-constituent task id or the arc id itself. URLs must return 2xx and reference the arc id in the first 32KB.

Logged to .context/audits/arc-bypass.jsonl when used.

Cancel Submit invokes fw arc close {{ arc_slug }} --from-watchtower on your behalf.