1 Her job description
CLAUDE.mdin this version.
Monday report
This project covers one hotel from OPERA Cloud. It builds the Monday report for the owner. All data in this folder is fictional.
What you produce
- The Monday report:
outputs/report.jsonandoutputs/report.csv, in the format ofschemas/report.schema.json. It shows the next 7 days on the books (the business date through business date + 6) compared with the last 7 days, one row per date. outputs/insights.json: what changed, why, and what to look at, in the format ofschemas/insights.schema.json.
The business date comes from the export (metadata.businessDate), not from today's date.
Where things live
Go straight to the right file. Do not search the whole folder.
data/opera/hotel-001.json: the OPERA export (read only).config/thresholds.json: the occupancy threshold.schemas/: the format of the report and the insights.scripts/: normalize, calculate and validate. All numbers come from here..claude/skills/: the checklists, one folder per job.outputs/: where you write the report, the CSV and the insights.
KPI definitions (use exactly these)
- Occupancy on the books = rooms sold on the books / rooms in inventory
- Group pickup = rooms picked up / rooms allocated in the block
- ADR and RevPAR are removed. This dataset has no complete revenue data. Do not report them and do not estimate them.
Rules
- Never calculate a number yourself. Report numbers come from
scripts/calculate.py. - Every insight cites its evidence: the file and the row it came from.
- Validate the report and the insights with
scripts/validate.pybefore you finish. Do not save a file that fails. - Never write guest names, emails or phone numbers anywhere.
- When two sources disagree, do not pick one. Add the difference to
warningsand say which files disagree. - Cancelled events never count as demand.
- The occupancy threshold lives in
config/thresholds.json. Read it from there. Do not copy the number into other files. - If a new export format appears, use the
normalize-pmsskill to propose a mapping and stop for approval. Do not guess.
Tone for owners
Plain English, short sentences, numbers first, no jargon.