Skip to main content

GUIDE / 6 MIN READ

Engineering document transmittals: reconcile versions before distribution

By Alex Cinovoj, Founder & CTO, TechTide AI · CTO & Co-Founder, CPG Playbook

Published · April 2026 editorial collection

A transmittal says revision C. The attached drawing says revision B. Both files open, the email sends successfully, and the delivery system reports a completed job. The software has moved the package without checking whether the package agrees with itself.

I would scope engineering transmittal automation around that reconciliation problem. The first useful output is a packet that a document controller can inspect: expected documents, attached documents, revision differences, missing approvals, and intended recipients. Distribution should happen only after the packet meets the team's release rules.

This is an illustrative administrative workflow. It does not establish that a drawing is technically correct, safe, or approved for construction. Those decisions belong to the engineering organization and its authorized reviewers.

Identify the release register

I would start with the register that defines what should be issued. For each document, the workflow needs a stable identifier, expected revision, issue purpose, approval state, and source location. Filenames can help staff navigate, but they should not be the only identifier.

The release register must also distinguish drafts from issued documents. If a folder contains working copies and approved files, the automation needs an explicit selection rule. “Use the newest file” is insufficient because a recent draft may be less authoritative than an older approved revision.

The document controller should be able to explain where each expected value comes from. If the register conflicts with the approval record, hold the affected item for review. The model should not choose whichever source appears more polished or more recent without an established precedence rule.

Compare the packet at several levels

I would check document identity, revision, file presence, readable format, issue status, and recipient scope. These are separate checks. A file can be present and readable while carrying the wrong revision.

For an illustrative drawing package, the system might expect documents E-101, E-102, and E-103 at revision C. If E-102 is missing and E-103 appears twice, the report should state exactly that. It should not produce a general “package incomplete” message that forces the controller to repeat the inspection.

A model may help extract a revision from a title block or identify a likely document number in a scanned page. I would treat that as a proposed observation with a source location. Where extraction is uncertain, the controller verifies the field. The application should not manufacture certainty by assigning a high confidence score without a tested basis.

Preserve the issue purpose and approval boundary

An issue for review and an issue for use can contain similar files with different consequences. I would keep the issue purpose as a required field supplied by the release process and display it prominently during approval.

The distribution action should require an approved packet revision. If a file changes after approval, invalidate the packet's approval or create a new packet revision for review. Otherwise, the system can send material that nobody actually approved.

The recipient list needs the same treatment. Adding an external recipient after approval changes the distribution boundary. The workflow should recheck permissions and required review rather than treating recipients as harmless delivery metadata.

Make synchronization gaps visible

Document registers and storage systems can drift. A file may be moved, renamed, or replaced while a package is being assembled. I would store the source identifier and version information available from the repository, then verify them again before release.

Google Drive's changes API supports detecting changed files. Microsoft Graph delta queries support tracking changes to supported resources. These mechanisms can help maintain a local register, but the implementation still needs to reconcile the provider's records with the engineering document identifiers.

If synchronization is incomplete, show the last successful checkpoint and block automatic distribution where freshness is required. A connection error should not be interpreted as proof that no files have changed.

Separate packet creation from delivery confirmation

I would record packet assembled, packet approved, distribution requested, provider accepted, and any available delivery outcome separately. The exact delivery evidence depends on the channel. An accepted API request does not prove that every recipient opened the files.

If a distribution request times out, investigate before retrying. The destination may have accepted it even though the local caller did not receive the response. Use the packet identity to locate an existing transmission and avoid sending duplicate packages by default.

The controller should see which recipients or destinations remain unresolved. A single failed external destination should not erase successful internal delivery evidence. Recovery should target the incomplete part of the operation while preserving the original issue record.

Build a correction path before the first release

Mistakes can still reach distribution. I would ask the team to define how a superseding issue, withdrawal, or correction is recorded. The software should preserve the original packet and link the corrective action to it.

Do not silently replace a file at a stable public link if recipients need to know that the issued content changed. The appropriate behavior depends on the document-control process, but it should be explicit. The correction record should identify what changed, who authorized it, and how recipients were informed.

A model can draft a factual correction summary from the approved difference record. It should not invent a technical explanation for the change or imply that recipients accepted the correction.

Test the uncomfortable packet

I would test duplicate identifiers, conflicting revisions, a corrupt PDF, a missing approval, an inaccessible source file, and a recipient outside the authorized group. Include a file that changes between approval and send. The expected behavior should be documented before running the tests.

The evidence should show the exact mismatch, the blocked or allowed action, and the controller's resolution. A passing file-count check alone is inadequate. Three attached files can still be the wrong three files.

Measure preparation time, revision mismatches caught, manual corrections, duplicate distributions, and recovery time after failed delivery. Separate administrative efficiency from technical quality. Faster document movement does not establish that engineering review improved.

The first implementation should leave the controller with a reproducible packet, an understandable exception report, and a traceable issue history. Once those work reliably, additional extraction or distribution channels can be evaluated against the same release contract.

Require a packet-level acceptance example

For the demonstration, I would prepare a synthetic register with three expected documents and deliberately attach one earlier revision. The report should identify that exact document, show expected and observed revisions, and prevent the packet from being marked ready under the configured rule.

After correcting the attachment, the controller should approve the packet. I would then replace a different source file before distribution. The release check should detect that the approved packet no longer matches its inputs and request a fresh review. It should not send merely because the approval flag remains true in the database.

Finally, I would simulate an uncertain delivery response. The controller should be able to inspect the destination and reconcile the packet identity before retrying. These tests establish whether approval, contents, and distribution remain connected throughout the operation. A successful initial upload would not establish any of those protections.

About the author

Alex Cinovoj

AI & Infra Engineer. Building AI that survives outside the demo.

Founder & CTO, TechTide AI · CTO & Co-Founder, CPG Playbook

I spent 13 years in US enterprise IT, the last 2 focused entirely on AI implementation. I run TechTide AI, an implementation studio that takes stalled AI pilots into production. I write about the work in progress at alexcinovoj.com and on Substack.

Logs over vibes. Production over theater.

Related field notes

All field notes

Have a stalled build that needs to work?