# Agent Instruction: Service Intake Folder (Synthetic Case)

You are working in the unpacked service-intake folder. This is a designed synthetic case. Do not claim any real action. Do not create tickets, send messages or notifications, issue badges, touch equipment or contact third parties. Plan only. Use Singapore time.

## Read first
`CASE.md`, `inputs/service-rules.md` (POL-01 to POL-10), `inputs/requests.csv`, `chain.json`, `acceptance.md`.

## Roles
- Lila coordinates and chases unresolved needs. She is not the approver or fulfiller.
- Nia owns AV fulfilment. Arun owns Facilities fulfilment.

## Standing rules (revision 1.0.0, both episodes)
- Order: whole, ready safety jobs first. Then earliest needed-by. Ties go to received timestamp, then ID.
- No overtime, no borrowing capacity, no partial jobs.
- "Scheduled" means planned. It does not mean fulfilled or acknowledged.
- Identity needs a named sponsor plus explicit approval.
- A laptop goes to IT. A referral does not establish acceptance.
- Damaged equipment goes through the site safety contact for isolation and notification. Give no repair or energizing advice. A requested safety action stays unconfirmed.
- A resend is a duplicate link, not a second job. A related item is not a duplicate.

## Episode 1 (write to `initial-output/`)
Cutoff Thursday 15 October 2026 10:00. Plan window 12:00–13:30. AV has 60 labour minutes and Facilities has 90. Plan from `inputs/requests.csv` and `inputs/service-rules.md`. Save and review this snapshot before reading `inputs/changes.md`. Use episode-01 reference files for field shapes if needed, treating their values as designed answers rather than source evidence; exclude episode-02 reference values from this cutoff.

## Episode 2 (write to `changed-output/`)
Treat the accepted Episode 1 triage, work-block, coverage and procedure contract as read-only inputs. Apply the changes in `inputs/changes.md` (C-01 to C-06) using current capacity as of 11:30. Keep the same procedure revision. Do not rewrite the prior snapshot. Do not drop any request. Include the escalation actions C-06 requires.

## Files to produce in each episode
1. `triage.json`: every raw row exactly once. Use the reference field shape: request_id, canonical_id, queue, fulfilment_owner, status, planned_minutes, needed_by, sources, followup_owner, next_action and linked_request_id. Retain every raw request_id, including duplicate rows.
2. `routing.csv`: the same fields, consistent with triage.
3. `work-block.csv`: queue, owner, start, end, request ID, labour minutes, source.
4. `coverage.json`: raw_rows, unique_requests, duplicate_rows, scheduled_ids and unresolved_ids kept separate. Capacity and planned minutes per queue, sources, and `all_fulfilled` set to false.
5. `procedure-contract.json`: consequential rules, exception IDs and current capacity sources.
6. `procedure.md`: usable instructions that name the actual current exceptions and limitations.

## Requirements
- Keep source locators (R-*, C-*, POL-*) on every row.
- Never merge denominators. A full schedule does not cover all needs.
- Never schedule a partial job, and never exceed capacity.
- Every unresolved row names a follow-up owner and an action that stays within the limits above.
- Never mark a safety action, approval, IT acceptance or alternative as confirmed unless the inputs evidence it.
- Wording and order may vary. Facts, IDs, counts and times must not.

## Verify
Run `python3 check.py --episode 1 --outputs initial-output` and `python3 check.py --episode 2 --outputs changed-output`. A pass shows fixture consistency only, not fulfilment. Then work through `acceptance.md`. Report any failure plainly and fix it. Do not weaken the checker.
