← All workRead the case ↓

Private Event Packet

Every run ends at a person. That was a design decision, not a leftover.

A versioning project arrived with most of its schedule already consumed, still requiring 54 store-specific documents with 16 variable fields each. I rebuilt it around one InDesign master, structured data, scripted typographic rules, an automated audit, and a human approval gate. The automation caught a calculation error that had been printed in the source. The handoff documents not only how to run the pipeline but how to re-derive it when the template changes.

Sur La Table · Private Event Packet

Every document is built
and audited before review.

54 / 54build PASS
54 / 54audit PASS
0records with issues
< 0.7%round-trip pixel deviation

Deviation measured on four deliberately worst-case stores.

From the existing audit_report.json record · Store identifiers redacted
Automated success precedes human approval · Explanatory

Explanatory model of the existing Private Event Packet audit record: 54 of 54 documents built and 54 of 54 audited, zero records with issues, and under 0.7% round-trip pixel deviation measured on four deliberately worst-case stores. Store identifiers are redacted in the source. Automated success precedes human spot-check and final approval. Pipeline, rules, audit and maintenance: Jin Mi; final approval: human review.

The project arrived with its runway already spent.

It came late in its cycle, after repeated review had consumed most of the schedule. The requirement did not move with it: 54 store-specific documents, 16 variable fields in each, accurate.

Speed on its own would have been dangerous there. The question was how to make the standard executable under compression.

I marked the variable regions directly in the InDesign master with a named swatch, so the file itself became machine-readable and there was no separate mapping document to fall out of sync. A nine-step script applied the typographic rules — widow removal, overset checks, superscripts, spacing. Rate tables filled by structural position rather than by numeric find-and-replace, because duplicate values are ambiguous and a search cannot tell two identical numbers apart.

What got reverted is the evidence.

Nine reverts in three days.

The parking disclaimer moved from inline text to a dedicated row, broke as overset in 18 stores, and ended as a reduced footnote. Paragraph spacing went through two approaches before settling on an explicit 4.5-point value measured off the surrounding paragraphs.

Then the calculation logic flagged something I had not gone looking for: a printed example sentence in the source described a party larger than that store could actually seat. The automation was more correct than the document it was reproducing.

The run ends at a person.

All 54 documents built and audited clean — 54 of 54, zero issues, under 0.7% round-trip pixel deviation across four deliberately worst-case stores, 30 to 60 seconds per store.

None of that is the definition of done. The rule is that a run must finish both passes before the files reach me at all, and then I spot-check and approve. Automated success earns the right to be reviewed; it does not replace the review.

The maintenance handoff carries nine non-negotiable guards, an escalation path, and a procedure for re-deriving the pipeline from scratch when a new template version breaks every find string in it.

← Back to selected workBack to top ↑