---
session_id: 80b1f893-d887-4130-b96f-dd48d5450edd
job_no: 2627
date: 2026-05-08
purpose: BCS pre-flight envelope (Path-D handoff rotation restart). Worker-readable bus is now opaque on BCS — comparator metadata lives only in this file + _Internal/quarantined/, never in the handoff bus or per-job CLAUDE.md/00-brief.md.
authored_by: claude-code-orchestrator
NOT_FOR_EXTERNAL_DISTRIBUTION: true
visibility: orchestrator-only (worker does NOT read _Internal/audit-trail/)
sanitisation: NOT_REQUIRED (internal-only artefact)
append_only: true
predecessor_sessions: [d58cec3f-9794-4dbf-8976-47b8c893eaab (00-brief.md leak), 09c7347d-6f88-4d4e-8a0d-ca8a3d022ddf (handoff-bus second-order leak)]
recovery_path: D (rotate handoff files; archive predecessors; opaque worker-readable bus)
---

# BCS pre-flight envelope — 2627 (Path-D rotation, session 80b1f893)

## Sub-phase 1 — Pre-flight

### Comparator (orchestrator-only — never written into worker-readable material)

- **Internal handle:** Comparator-A
- **Comparator artefact path:** `C:\Users\mclou\lfcs-inbound-artefacts\2627\LFCS Quote Airey Park FRP Scope.pdf` (held internal-only; the literal path appears NOWHERE in worker-readable files)
- **Comparator size:** 4 pages, ~270 KB
- **Comparator authored:** May 2025 by an LFCS-internal pricer

### Path exclusions (orchestrator-side enforcement; worker-side = whitelist instead of blacklist)

The two-breach experience showed that any blacklist (filename refuse-patterns, "do not read X") leaks the existence/keywords of X to the worker. Path-D fix: worker only knows a **whitelist**, never a blacklist.

Worker-readable files instruct: "Worker reads ONLY these two paths from `C:\Users\mclou\lfcs-inbound-artefacts\2627\`: STR25020*.pdf and P171342*.pdf. Do not enumerate or pattern-search the inbound folder." No filename refuse-list. No "Quote", "Airey", "FRP" keywords. No "comparator" word.

The orchestrator-side enforcement still lists the comparator path here for audit-trail completeness; this file is not in the worker's read order.

### Inbound whitelist (worker reads freely)

- `C:\Users\mclou\lfcs-inbound-artefacts\2627\STR25020 - 2025.12.01.pdf`
- `C:\Users\mclou\lfcs-inbound-artefacts\2627\P171342 -SP-001-0 (Pavement).pdf`

### Methodology quarantine

- **Narrow:** none (Comparator-A pre-dates methodology Airtable).
- **Broad:** deferred. Default = narrow only.

### Worker-readable file sweep — verified

Files swept under Path-D at 2026-05-08T08:34Z:
1. `Operations/Jobs/Upcoming/2627 - Airey Park Homebush West/CLAUDE.md` — filename refuse-list removed; replaced with whitelist-only instruction; "comparator" word removed; predecessor session_id reference removed
2. `Operations/Jobs/Upcoming/2627 - Airey Park Homebush West/00-brief.md` — same sweep
3. `_Internal/exclusions/exclusions-2627.md` — "assumed" softened (no implication of supersession history)
4. `C:/Users/mclou/lfcs-handoff/orch-to-pricer.md` — rotated to empty initial state; archive at `_Internal/audit-trail/handoff-archive-2627-pre-2026-05-08T08-34.md`
5. `C:/Users/mclou/lfcs-handoff/pricer-to-orch.md` — rotated to empty initial state; archive in same handoff-archive file
6. `C:/Users/mclou/lfcs-handoff/state.json` — `comparator_artefact` + `comparator_name` fields stripped; `comparator_handle: Comparator-A` retained (handle is opaque); `bcs_active: true` retained
7. `_Internal/quarantined/blind-comparator-2627-A.md` — already renamed/scrubbed under predecessor session 09c7347d; remains opaque under "Comparator-A" handle

### Path-D second-order leak fix — handoff-bus discipline

New rule for all future bids: the handoff bus (orch-to-pricer.md, pricer-to-orch.md) is a **bid-scoped, append-only ledger of work prompts and outputs**. BCS metadata (comparator name, path, filename patterns, totals, scope splits) MUST NOT appear in the handoff bus — even in headers, even in "do not read this" notices, even in supersession-stub blocks.

If a BCS breach detection is needed, the orchestrator-side detection logic owns it. The worker-side enforcement is whitelist-driven, not pattern-driven. This permanently closes the raw-Read second-order leak channel.

Lesson candidate: `C:/Users/mclou/lfcs-lessons-learned/lesson-2026-05-08-handoff-bus-bcs-leak.md` (write at session close per Phase 7).

## Sub-phase 2 — Blind period contract

During Phases 2–4, every prompt drafted by `lfo-prompt-pricing` MUST:
- Use only the comparator's opaque "Comparator-A" handle (never name, total, scope, design assumption)
- Strip any reference to the comparator's filename keywords, path, author, or temporal tag
- Refuse path-traversal into the comparator PDF (orchestrator-side; worker only knows the whitelist)
- Refuse to reference any methodology row, exclusion wording, or scope split that came from the comparator

Worker output similarly filtered before relay back to orchestrator.

If breach detected mid-session: IMMEDIATELY abort the BCS:
- Mark this audit-trail file `status: ABORTED-BREACH`
- Do NOT write corrections, do NOT unquarantine
- Notify Rocky
- Re-run requires fresh session_id + Rocky-confirmed clean window + Path-D-style architectural review (was the breach mechanism a known channel or a NEW one?)

## Sub-phase 3 — Seal (placeholder; populated after Phase 3 first-pass + Phase 4 sanity-check)

| Field | Value |
|---|---|
| pre_comparison_sealed_reasoning | (TBD after Phase 4) |
| Total ex GST loaded (×1.3225) | (TBD — note the 15%-cont override) |
| BCS phase | active-blind |
| sealed_at | (TBD) |

## Sub-phase 4 — Reveal gate

Status: awaiting Rocky-typed `REVEAL`.

## Sub-phase 5 — Unquarantine (placeholder)

(TBD per `lfo-blind-driver` SKILL.md sub-phase 5)

## Audit log

- 2026-05-08T08:33:58Z — Path-D rotation pre-flight envelope written; sessions d58cec3f + 09c7347d archived to handoff-archive file; worker-readable bus now opaque; BCS active under new session_id 80b1f893.
