From safetysure-audit-criteria
Complete a WHS audit checklist by cross-referencing site visit observations and audio transcript notes against the audit criteria. Use this skill when the user has returned from a site audit and wants to "complete the checklist", "fill in the audit findings", "process my transcript against the checklist", "rate the checklist items", "draft the findings from my notes", "review my transcript and fill out the audit", or "turn my site visit notes into a completed checklist". Also trigger on /complete-checklist or /process-audit commands. Accepts a blank audit criteria checklist (.docx), manual on-site observations (typed or as part of the transcript doc), and an audio-to-text transcript (.docx or .txt). Asks methodology questions, cross-references all sources against each criterion, applies NC/OFI/OBS/C ratings, and produces a fully drafted completed checklist (.docx) for the auditor to review before it feeds into the audit report plugin. Always use this skill rather than rating checklist items manually.
npx claudepluginhub teddychenfeiyang-png/safetysure-plugins --plugin safetysure-audit-criteriaThis skill uses the workspace's default tool permissions.
The auditor has returned from site with:
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
The auditor has returned from site with:
Your job is to read all of this, understand the audit methodology, and produce a completed checklist draft — ratings and recommendations filled in for every criterion based on the evidence. The auditor reviews and adjusts the draft before it goes to the report generator.
This is about accuracy and completeness, not speed. Read everything before rating anything.
Ask the user to provide:
The blank audit checklist — the .docx file generated by the criteria-generator skill (or adapted from a previous checklist). This contains the themes, criteria, reference numbers, and legislative basis.
The transcript — the audio-to-text .docx or .txt file from the site visit. This may be a direct voice-to-text conversion, so expect informal language, run-on sentences, and auditor shorthand.
Manual observations — any typed notes from the site visit, separate to the transcript. (May be in the same file as the transcript, or may not exist separately.)
The audit methodology — ask: "What desktop review did you conduct before going to site? What documents or records did you review?" and "Who did you consult with on site? (names, roles)". The answers populate the methodology section and inform how you interpret the transcript.
Once you have all files, proceed to Phase 2.
Ask a focused set of questions to understand the audit context. Keep it conversational — 3–5 questions, not a form. You need this before rating anything because it affects how you interpret the evidence:
Desktop review — What documents/records were reviewed prior to site? (e.g., WHS management plan, safe work procedures, training records, incident register, hazardous chemicals register, plant maintenance records, emergency plans)
Site inspection scope — What areas of the site were physically inspected? (e.g., warehouse floor, loading dock, battery charging area, lunch room, first aid room)
Consultation — Who was consulted? Names and roles if possible. (e.g., Administration Manager, Warehouse Supervisor, WHS representative)
Limitations — Were any areas inaccessible, any records unavailable, or any criteria you could not assess? (These become "Not Assessed" rather than NC or C)
Known issues — Did the client flag any specific concerns before the audit? Was there a recent incident or near-miss?
These answers form the audit methodology that will appear in the report. Save them — the report generator will need them.
Before rating anything, read the entire transcript and all observation notes. Then:
Build a mental map: As you read, note which criteria each passage of the transcript is relevant to. A single passage may apply to multiple criteria. A criterion may have evidence from multiple passages.
What to look for in the transcript:
What to look for in manual notes:
Transcript language is informal — treat it as a first-person audit diary and infer the intent, not just the literal words.
Work through each criterion in the checklist systematically.
Apply these ratings consistently:
| Rating | Meaning | When to use |
|---|---|---|
| C | Conformance | The obligation is met. Evidence was sighted (document, physical observation, or confirmation). |
| OFI | Opportunity for Improvement | The obligation is partially met, or there is a best-practice gap. Not a legal non-compliance but warrants improvement. |
| OBS | Observation | Something was noted that does not constitute non-compliance but is worth flagging for awareness or future attention. |
| NC | Non-Conformance | A legislative or regulatory obligation is clearly not met. A corrective action is required. |
| N/A | Not Applicable | The criterion genuinely does not apply to this workplace. |
| NA | Not Assessed | The criterion could not be assessed due to access limitations, unavailable records, or time constraints. |
For each criterion:
If strong evidence of compliance: Rate C. Note what was sighted.
If evidence of partial compliance or minor gaps: Rate OFI. Note what was good and what was missing.
If something was noted but doesn't constitute a breach: Rate OBS. Note what was observed.
If evidence clearly shows non-compliance: Rate NC. Note specifically what was missing or wrong.
If you cannot find any transcript evidence and the criterion was not mentioned: Do not assume compliance. Apply N/A only if the criterion genuinely cannot apply (e.g., a criterion about forklift licensing when there are no forklifts). Otherwise use NA (not assessed) and flag it for the auditor to check.
Do not invent evidence. If something wasn't mentioned in the transcript or notes, say so. The auditor reviews the draft and can fill gaps.
Write a concise factual observation for every criterion — even C-rated items. This is what appeared in the transcript or was physically observed. Examples:
Write a recommendation for every NC and OFI. Write a brief note for OBS items. C and N/A items do not need recommendations.
NC recommendation: "Develop and implement a hazardous chemicals register that lists all chemicals on site, including LPG. Ensure safety data sheets (SDS) are maintained and accessible at the point of use for each chemical. Review compliance with WHS Regulation 2011 (Qld) ss 347–348 and the Managing Risks of Hazardous Chemicals in the Workplace Code of Practice."
OFI recommendation: "Review and update the emergency plan to reflect current site conditions and personnel. Conduct an emergency evacuation drill at least annually and record attendance. Refer to the First Aid in the Workplace Code of Practice and AS 3745–2010."
OBS note: "Monitor stock storage practices in the loading dock area to ensure emergency egress pathways remain clear at all times."
Generate the completed checklist as a .docx file using python-docx.
Cover block (same as blank checklist, add "COMPLETED DRAFT — FOR AUDITOR REVIEW")
Methodology summary block:
Desktop review: [what was reviewed]
Site inspection: [areas inspected, date]
Consultation: [names and roles]
Limitations: [if any]
Classification key table (same as blank checklist)
For each theme:
Theme header row (dark blue #1F3564, white bold — same as blank)
Column header row (mid blue #2E74B5)
One row per criterion — all columns populated
Appendix: Not Assessed items (list any NA items with reason)
Apply background colour to the Rating cell based on the assigned rating:
| Rating | Fill colour |
|---|---|
| NC | #FCE5CD |
| OFI | #FFF2CC |
| OBS | #D6E4F0 |
| C | #E2EFDA |
| N/A | #F2F2F2 (light grey) |
| NA | #F2F2F2 (light grey) |
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
def set_cell_shading(cell, fill_hex):
"""Apply background fill to a table cell."""
tc = cell._tc
tcPr = tc.get_or_add_tcPr()
shd = OxmlElement('w:shd')
shd.set(qn('w:val'), 'clear')
shd.set(qn('w:color'), 'auto')
shd.set(qn('w:fill'), fill_hex)
tcPr.append(shd)
After the main table, add a findings summary:
FINDINGS SUMMARY
NC: [count]
OFI: [count]
OBS: [count]
C: [count]
N/A: [count]
NA: [count]
TOTAL CRITERIA: [count]
Save to the workspace folder:
WHS Audit Checklist — Completed Draft — [Client/Site] — [YYYYMMDD].docx
After delivering the completed draft, tell the auditor: