Skip to content

Convert 116B temperature controlled room RA/SWP to the YAML format - #11

Merged
christhechris merged 1 commit into
mainfrom
new-doc/temperature-controlled-room-yaml
Jul 16, 2026
Merged

Convert 116B temperature controlled room RA/SWP to the YAML format#11
christhechris merged 1 commit into
mainfrom
new-doc/temperature-controlled-room-yaml

Conversation

@christhechris

Copy link
Copy Markdown
Contributor

Safety Documentation Update

Type of Change

Document Information (if applicable)

Equipment/Process: SAIL Temperature Controlled Room (Room 116B, Building A28)

Document Reference: SAIL-RA-A28-116B-001 / SAIL-SWP-A28-116B-001

Version: 2.0

Description

Summary of changes:

Replaces the two hand-written markdown files merged in #10 with a single documents/temperature-controlled-room.yaml.

Added documents/temperature-controlled-room.yaml
Deleted _risk_assessments/temperature-controlled-room.md
Deleted _safe_work_procedures/temperature-controlled-room.md

Reason for change:

#10 was authored against a stale checkout and should not have been merged in that form. My local main was 5 commits behind. Commit 47e7bf3 had already made documents/*.yaml the single source of truth — it deleted every .md file from _risk_assessments/ and _safe_work_procedures/ and added both directories to .gitignore.

Because my checkout predated that, the ignore rules weren't present locally and the commit went through. The merge then resurrected both deleted directories, each containing a single orphaned file. Those files sat in generated-output directories, so render.py --all overwrites them anyway — they were tracked copies of build artefacts.

.claude/agents/ra-swp-author.md states the rule directly:

One YAML file per RA/SWP pair at documents/<slug>.yaml is the ONLY artefact you write. Never create or edit anything under _risk_assessments/ or _safe_work_procedures/ — those are generated and gitignored.

This PR does what #9 did for Form 3.

Safety Review

Has this been reviewed by:

  • Equipment users
  • Safety officer
  • Laboratory supervisor
  • Subject matter expert

Approval status:

  • Draft - ready for review
  • Reviewed - ready for approval
  • Approved - ready to publish

Testing/Verification (for website changes)

Changes tested in:

  • Local development
docgen/render.py documents/temperature-controlled-room.yaml --check
  -> documents/temperature-controlled-room.yaml: OK (dry run)

docgen/render.py --all
  -> documents/temperature-controlled-room.yaml: OK
     _risk_assessments/temperature-controlled-room.md
     _safe_work_procedures/temperature-controlled-room.md
     docgen/out/docx/risk-assessments/SAIL-RA-temperature-controlled-room.docx
     docgen/out/docx/safe-work-procedures/SAIL-SWP-temperature-controlled-room.docx

Full --all render passes for every document, so this doesn't disturb the others. References render as SAIL-RA-A28-116B-001 / SAIL-SWP-A28-116B-001.

Breaking changes:

  • No breaking changes

Documentation

Related issues: follow-up to #10; mirrors the conversion in #9

Related documents:

  • documents/formlabs-form3.yaml — precedent for porting a legacy 2020 document
  • documents/general-lab-safety.yaml — also covers Room 116B; see the rating discrepancy below

Checklist

For document updates:

  • Version number incremented (1.0 → 2.0, matching the Form 3 conversion)
  • Changes clearly documented
  • All affected sections updated
  • Related documents updated (if needed)
  • Review date updated

General:

  • Changes comply with safety standards
  • No sensitive information exposed
  • Commit messages are clear
  • Branch is up to date with main

Additional Notes

Implementation notes:

Schema conventions applied per _example.yaml and the agent spec:

  • abbrev: A28-116B preserves the historical reference from the 2020 source rather than defaulting to the slug.
  • issue_date: "2016-06-16" retains the original initial issue; version_issue_date is today. This follows formlabs-form3.yaml, which keeps its 2020 issue date and bumps to 2.0.
  • Plain text throughout, CAPS for emphasis — no markdown, which would render literally in the Word form.
  • Hierarchy of controls labelled (Engineering: / Administrative: / PPE:) in each risk row.
  • Four-level ratings only: Low / Medium / High / Very High.
  • status: Draft.

Content is unchanged in substance from #10 — this is a reformat, not a rewrite.

Follow-up actions required:

Three facts are absent from the source, are load-bearing for the ratings, and are marked TODO: in the YAML:

  1. What is the CO2 alarm set point?
  2. Does the alarm report to an attended location after hours?
  3. Is the red mushroom panic button on a tested schedule, and where does its alarm report to?

Contact numbers (supervisors, Safety Officer, A28 Building Manager, fire warden, first aiders) are also TODO: — 000, USyd Security 9351 3333 and the Poisons Information Centre are filled in.

Known limitations:

⚠️ Rating discrepancy for reviewers to settle. general-lab-safety.yaml rates 116B CO2 as High → Low. The 2020 source rates it Medium → Medium. This PR does not silently pick a winner:

  • Current rating uses the source's Rare/Major → Medium.
  • Residual is taken to Low, because the door-open control is genuinely present in the source's own procedure text. The source's Medium residual looks like an artifact — no additional controls were ever entered in its embedded spreadsheet, so the formula echoed the current rating.
  • Three rows deliberately hold at Medium residual rather than Low, each with the reason stated inline in additional_controls, per the agent spec's "if it can't, say why". Incapacitation in a sealed room retains a Major consequence even at Rare likelihood.

Reviewers should confirm which rating stands, and whether general-lab-safety.yaml should be reconciled.

Where the content came from. The source docx body was nearly empty — the hazard table lived in an embedded Microsoft_Excel_Worksheet.xlsx along with the live risk matrix. Both source hazards (CO2 accumulation; flood water → electric shock) are carried over with their original likelihood/consequence pairs, and every rating derives from the source's own matrix. Three further hazards are added, each grounded in a control the source already relied on: the panic button and supervisor-notification rule imply a lone-working hazard; the door-open rule implies a door-closure hazard; the CO2 monitor implies a monitor-failure hazard.


For Reviewers

Review focus areas:

  • Technical accuracy
  • Safety completeness
  • Regulatory compliance
  • Usability/clarity

Approval signature:

Date approved:

🤖 Generated with Claude Code

PR #10 authored this document as hand-written markdown in
_risk_assessments/ and _safe_work_procedures/. That was built against a
stale checkout: 47e7bf3 had already made documents/*.yaml the single
source of truth, deleted the markdown files and gitignored both
directories. The merge resurrected them, leaving two orphans that the
renderer would overwrite anyway.

Replace them with documents/temperature-controlled-room.yaml, following
the schema in documents/_example.yaml and the precedent set by
documents/formlabs-form3.yaml for porting a legacy 2020 document:
original issue_date retained, version bumped to 2.0, status Draft.

abbrev A28-116B preserves the historical reference, so the pair renders
as SAIL-RA-A28-116B-001 / SAIL-SWP-A28-116B-001.

Content is unchanged in substance from PR #10 and reformatted to the
schema's conventions: plain text, CAPS for emphasis, hierarchy of
controls labelled in each risk row, and the four-level rating scale.
Facts absent from the source (CO2 alarm set point, after-hours alarm
reporting, contact numbers) are marked TODO: rather than invented.

Validated with docgen/render.py --check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@christhechris
christhechris merged commit 611ec80 into main Jul 16, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant