From 82b708f2d4e164940d51e03a3af30b5bf36fc31d Mon Sep 17 00:00:00 2001 From: Daniel Green Date: Thu, 28 May 2026 14:30:31 -0700 Subject: [PATCH] surgical YAML patches + twig sync audit (#529) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - github-pr.yaml: add already_merged_emitter branch on merged/pr_url outputs (mirrors ado-pr.yaml:139-148); pr_url fallback changed to poll_status (same cleanup ado-pr.yaml uses — covers all non-merger exit paths uniformly) - close-out.yaml:43: | json → | tojson (correct Jinja2 filter) - plan-level.yaml/root-item-dispatch.yaml: validate_scope_verdict + scope_violation_files already fully wired; cross-check confirmed both fields present end-to-end with correct guards — no code change - Audit: twig state callers checked for post-state twig sync; 0 missing — all 3 real callers already compliant Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .conductor/registry/workflows/close-out.yaml | 2 +- .conductor/registry/workflows/github-pr.yaml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.conductor/registry/workflows/close-out.yaml b/.conductor/registry/workflows/close-out.yaml index c31281ec..1f2dc87e 100644 --- a/.conductor/registry/workflows/close-out.yaml +++ b/.conductor/registry/workflows/close-out.yaml @@ -40,7 +40,7 @@ tools: - filesystem output: - observations: "{{ close_out.output.observations | json }}" + observations: "{{ close_out.output.observations | tojson }}" summary: "{{ close_out.output.summary | default('') }}" observation_count: "{{ close_out.output.observations | length }}" diff --git a/.conductor/registry/workflows/github-pr.yaml b/.conductor/registry/workflows/github-pr.yaml index e35b0bff..1561ba4b 100644 --- a/.conductor/registry/workflows/github-pr.yaml +++ b/.conductor/registry/workflows/github-pr.yaml @@ -95,15 +95,17 @@ output: # for Python booleans (see conductor-mechanics M7). # # pr_merger may not run — the workflow can exit without a merge via + # already_merged_emitter (re-entry: operator merged via GitHub UI) or # closed_unmerged_emitter (operator closed the PR). Per M3 # (StrictUndefined), guard `pr_merger is defined` first. merged: >- {%- if pr_merger is defined -%}{{ (pr_merger.output.merged | default(false)) | string | lower }} + {%- elif already_merged_emitter is defined -%}true {%- elif closed_unmerged_emitter is defined -%}false {%- else -%}false{%- endif -%} pr_url: >- {%- if pr_merger is defined -%}{{ pr_merger.output.pr_url | default('') }} - {%- elif closed_unmerged_emitter is defined -%}{{ closed_unmerged_emitter.output.pr_url | default('') }} + {%- elif poll_status is defined -%}{{ poll_status.output.pr_url | default('') }} {%- else -%}{%- endif -%} # When the PR exits unmerged with bot-analyzed negative feedback still # outstanding (e.g. operator closed the PR after pushing back, or the