Inspiration

Transport teams need to connect a bad manifest record to the exact code, test and pipeline that rejected it. Sentinel makes that investigation reproducible using synthetic transport data.

What it does

A dependency-free Python validator checks CSV structure, required values, duplicate trip IDs, finite quantities and strict dates. Errors produce a real failing exit code plus JSON and HTML reports. GitLab CI runs tests, exercises both accepted and rejected inputs, retains failed-job evidence and publishes the clean report with GitLab Pages.

Real GitLab Duo integration

The public, enabled Transport Manifest Quality Investigator uses seven read-only tools. In real chat session 9648297 it performed 12 diagnostic actions: reading pipeline/job metadata, the job log, the actual report artifact and five source files at the pipeline SHA. One initial job read failed before subsequent successful reads.

For failed pipeline 2959895981, job 17263055564, Duo correlated SHA 052ff53de7da734fe720552772598a8c6e922abc and identified all four intentional findings: duplicate trip and negative fuel on line 3, nonfinite distance and malformed date on line 4. It correctly recognized that the validator was working and left open whether the deliberately failing branch needed repair.

Duo proposed restoring the clean input to the gate and adding two fixture-contract tests. The coding assistant reviewed and applied that proposal. The repaired pipeline 2959900031 passed at 6ba498389987ae12e428fc4ff5870ba35144019d, and merge request !1 was merged while preserving the demonstration branch and failed history. Fifteen local unit tests passed. Duo did not commit, run tests, merge or deploy.

How we built it

We continued the original 18 October prototype, strengthened malformed-input handling, added a positive/negative CLI demonstration and integrated an actual custom Duo agent. Source, agent prompt, reproduction instructions and evidence notes are public under MIT. No model key, paid cloud service or external Python dependency is required for the validator.

Challenges and lessons

A green pipeline must not be manufactured by deleting tests, loosening validation, ignoring failure or modifying the rejected fixture until it passes. Duo explicitly rejected those shortcuts and marked its predicted test commands NOT RUN; CI then independently verified the applied repair. Exact source revision, job identity and artifact provenance matter as much as the final status.

Evidence and reproduction

Use Python 3.12+: run python -m unittest discover -s tests -v and python -m src.demo_gate. Follow duo/SETUP.md and duo/EVIDENCE.txt to reproduce the actual investigation. The original chat may require account access; public source, CI and artifacts are separately inspectable.

Scope, AI assistance and next steps

This is an Assisted workflow built and operated with AI coding assistance under participant authorization. The coding assistant applied the repair; independent human review of each action and autonomous repair are not claimed. GitLab tools follow the invoking account's permissions; the one-project prompt is a behavioral instruction, not an access-control boundary. The participant explicitly approved that scope.

All example records are synthetic. The application cannot establish whether physical shipments or quantities are real, and thresholds are demonstration policy. Next steps are broader defect evaluation and domain-specific rules agreed with a data owner before confidential operational use. No payment or paid service was enabled.

Built With

Share this project:

Updates

Submission history