Date applied: 2026-05-18
Reviewer: Claude Opus 4.7 (machine), pending Korbut human confirmation
Status: PROPOSED — not certified. Please verify against your
working calculation file before treating Outputs_corrected.xlsx as the
new reference.
Case: Demineralised Water Transfer (line sizing + fittings + pump sizing)
Reference solution: Vladyslav Korbut, certified 2026-05-17
System under test: TIROS line-sizing (W-35) + pump-sizing (W-15) skill chains
Run date: 2026-05-18
Project slug: case-3-8-pump-line-sizing
Protocol: Skill-chain dispatch via Skill tool — extract-line-candidates → ls-author-line (×2 lines) + extract-ps-candidates → ps-author-pump; living-model equipment.md / streams.md / connectivity.md / tags.md / tr_numerics.md hand-authored from the xlsx (synthetic-input mode, NOT extractor-driven). Outputs.xlsx withheld from the skill chain; loaded only at grading time.
Comparison baseline: the standalone-Opus run in projects/2026-05-18_case_3.8_handoff/grading_report.md (39/39 in-tolerance after cascade + elevation adjustments).
Tiros is an AI engineering assistant for process plants — it ingests a project's source documents (drawings, datasheets, vendor packs) and produces structured engineering deliverables grounded in the relevant standards.
We ran the same Tiros pipeline end-to-end against three different customer engagements in a single day:
- A steam-turbine feasibility study for a refinery operator
- A hydrogen-production feasibility study for a renewables developer
Standards are part of it but not the whole story. There are about 5 layers of mismatch; standards are layer 1.
Refinery uses IEC 61882, API 521, NACE MR0175, ASME Sec VIII, API 571.
| # ---------------------- | |
| # Git Aliases | |
| # ---------------------- | |
| alias ga='git add' | |
| alias gaa='git add .' | |
| alias gaaa='git add --all' | |
| alias gau='git add --update' | |
| alias gb='git branch' | |
| alias gbd='git branch --delete ' | |
| alias gc='git commit' |
| def test_function(test_case): | |
| move_zeros_to_left(test_case[0]) | |
| if test_case[0] == test_case[1]: | |
| print("Pass") | |
| else: | |
| print("Fail") |
| def move_zeros_to_left(array): | |
| i = len(array) - 1 | |
| j = len(array) - 1 | |
| while i >= 0: | |
| if array[i] != 0: | |
| array[j] = array[i] | |
| j -= 1 | |
| i -= 1 | |
| while j >= 0: | |
| array[j] = 0 |
| # Save checkpoint | |
| checkpoint = { | |
| 'model': model.state_dict(), | |
| 'optimizer': optimizer.state_dict(), | |
| 'amp': amp.state_dict() | |
| } | |
| torch.save(checkpoint, 'amp_checkpoint.pt') | |
| ... | |
| rank = args.nr * args.gpus + gpu | |
| dist.init_process_group( | |
| backend='nccl', | |
| init_method='env://', | |
| world_size=args.world_size, | |
| rank=rank) | |
| torch.manual_seed(0) | |
| model = ConvNet() | |
| torch.cuda.set_device(gpu) |
| python src/mnist-distributed.py -n 4 -g 8 -nr i |