Skip to content

Convert 18-1721: pair with Forms_18-1721 (AEM to Quad).xml, support layout-only pairs, route 89 G3 findings (deferred on G0 drift) - #8

Merged
sumitshatwara merged 2 commits into
mainfrom
devin/1789060357-convert-18-1721
Sep 10, 2026
Merged

sumitshatwara merged 2 commits into
mainfrom
devin/1789060357-convert-18-1721

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Convert-form session for 18-1721 (181721.xdp) against the Designer WorkFlow export Forms_18-1721 (AEM to Quad).xml. No composed PDF was supplied, which the code previously could not represent, so this PR also adds the reusable layout-only reference pair case. The form is not converted and not ready: G0 fails GOV-01, so no target names are proposed and all binding findings are routed as defer.

Layout-only reference pairs (reusable fix)

pairs.yaml now allows target.composed_pdf: null while layout_xml is required for any non-null target:

# fixtures.load_pairs
if form["target"] is not None:
    assert form["target"]["layout_xml"] is not None
# gates.g0_pairing.run
if pair["target"]["composed_pdf"] is None:
    metrics["composed_pdf_supplied"] = False; add("G0-NO-PDF", "info", ..., rule_id="GOV-02")
# tools.pipeline.run_form
skipped("G6", "no composed PDF supplied for this form")   # instead of dereferencing the pdf path

Tests cover the loader, G0 and the pipeline path. Thresholds, exit codes and loader checks are unchanged.

Gate report for 18-1721 (from out/readiness.json)

Gate Verdict Key metrics
G0 fail static-text coverage 0.8776 (< 0.95, G0-REVISION-DRIFT); G0-NO-PDF info
G1 pass 20 containers, 79 fields, 17 statics
G2 pass 79/79 fields, 17/17 draws, 20/20 containers accounted; 5 minor G2-UNKNOWNSTATIC
G3 fail bound 0.0%, 79 fields in scope, 79 nodes needing human touch; findings routable 89, routed 89, unrouted 0
G4 pass field match 0.8734 (floor 0.70), exact-name 0.038, 10 G4-UNMATCHED, sections matched 0/5, target 73 FormControls / 449 data variables
G5 external no import log; importer: none named
G6 skipped no composed PDF supplied (would be external otherwise)

Why G0 fails and what it implies. The 12 target-only tokens are a company name/address footer block, not form content, which suggests a footer added in Designer rather than a different form revision — but GOV-01 is the rule and only a human can confirm the pairing. Per convert-xdp-form step 4, target names are therefore not proposed in this PR (no crosswalk or elements rows). Each defer record carries the candidate Def.Data/SubTree0/* variable observed in the export as evidence so a follow-up session can turn them into proposed crosswalk rows once the pairing is confirmed.

Decisions (src/decisions/18-1721.yaml, all proposed, session linked): 89 records

  • defer 77 — 69 G3-UNBOUND fields with a candidate target variable, 8 G3-UNBOUND telephone parts (target has 2 Telephone* variables per page vs 4 numeric parts in the XDP)
  • keep_unbound 10 — 8 G3-NONAME telephone parts (captions are (/) mask punctuation), 2 page-number fields
  • translate_script 2 — VAL-SCRIPT-MANUAL on Page1.CurrentPage / Page1.PageCount (ready scripts are xfa.layout.page(this) / xfa.layout.pageCount() → Designer page-number/page-count system variables; exact names for the designer to confirm)

Scripts by class: 4 total — conditional_clear 2 (date-format alert on both DateField1), unknown 2 (the page-number scripts above). 50% mechanically transferable.

Draft rules depended on: BND-04, FLD-01, OBJ-02, OBJ-05, OBJ-12, VAL-06. G3 stays failed while decisions are proposed and these rules are draft.

Reviewers: decision reviewer — none named; Designer importer — none named. G5 and G6 are external.

Handoff package

handoff/18-1721/18-1721.plan.json (sha256 4e852e2b…4f50c), CimBuildPlanImport.groovy, decisions.manual.yaml (77 defer records), CHECKLIST.md. Plan facts: 77 variables (all unresolved pending pairing confirmation), 109 decisions_required, 2 skipped controls (both DateField1 image controls, UNS-09).

Verification

ruff check ., ruff format --check ., pytest -q (111 passed), python -m tools.pipeline -o out/ exit 0. Golden pins for 18-1721 updated from readiness.json; other forms' pins unchanged. No raw artifacts or out/ committed.

Open question for the reviewer

Is the address footer in Forms_18-1721 (AEM to Quad).xml a Designer addition to the same revision (0810) as 181721.xdp? If yes, the 77 defer records can become bind_to_element + crosswalk proposals in a follow-up session; if no, the matching XDP revision is needed.

Link to Devin session: https://partner-workshops.devinenterprise.com/sessions/060b9626e9ad430186f22f341a34278b
Open in Devin Desktop: https://partner-workshops.devinenterprise.com/desktop/session/060b9626e9ad430186f22f341a34278b?variant=devin
Requested by: @sumitshatwara

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@sumitshatwara
sumitshatwara merged commit c09a756 into main Sep 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant