Bocw compliance
Skill ashley-eyekyam/hse-leadership-skills/skills/bocw-compliance
Assess India BOCW (Building & Other Construction Workers) statutory compliance for a named construction establishment: establishment registration, the 1% welfare cess, the Form XXV annual return (by 15 Feb), Safety Officer / Safety Committee thresholds, and accident notification — grounded in KB-REG-IN-BOCW with MANDATORY state detection. Use it to produce a BOCW compliance gap-list for a site in a given state, resolve which Welfare Board return is filed and when, and flag the OSH-Code (BOCW subsumed) transition. State detection is mandatory; state-specific values resolve from the KB row or are [GAP]-flagged, never invented; no hard-coded national form. Decision-support only; a competent person must review the output.From its SKILL.md
npx -y skills add ashley-eyekyam/hse-leadership-skills --skill bocw-complianceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
14.3 KB, as published. Nobody here has run it
Bocw Compliance
A consultant-grade, India-facing skill that assesses BOCW (Building & Other Construction Workers Act 1996 + Rules) statutory compliance for a named construction establishment — registration, the 1% welfare cess, the Form XXV annual return (by ~15 Feb), the Safety Officer / Safety Committee thresholds, and accident notification — grounded in KB-REG-IN-BOCW. State detection is MANDATORY (CT-8): the operative returns/portal are state Welfare Board specific, so the Workflow resolves the state FIRST. State-specific values resolve from the KB row or are [GAP]-flagged, never invented; no hard-coded national form. The OSH-Code transition (BOCW subsumed) is noted (legacy-first).
When to use this skill
Use this skill to produce a BOCW compliance gap-list for a construction site in a given state — which establishment/worker registrations apply, the cess obligation, which Welfare Board return is filed and when (Form XXV), the Safety-Officer/Committee thresholds, and the accident-notice duty. Use it when a manager or consultant asks "are we BOCW-compliant in [state]?". If the state is missing, the intake forces it FIRST. It assesses BOCW compliance; it does not assemble the Factories-Act return (that is factories-act-returns).
Data Protection & De-identification (MANDATORY — apply before drafting)
Apply this BEFORE you draft anything. Treat injury, illness, and any health
detail as the highest sensitivity. Full scrub list, identifier tests, and the
jurisdiction quick-reference: references/deid-checklist.md.
- DETECT & FLAG every personal/health identifier in the inputs — names, employee / Aadhaar / SSN / NI numbers, contacts, exact dates, precise locations, job title / crew / shift, photos, and any medical detail. List what you found before drafting. If unsure whether something is identifying, treat it as identifying.
- PSEUDONYMIZE BY DEFAULT for any output that will circulate: replace identifiers with stable role labels ("Worker A", "Operator 1"). Produce (a) the de-identified document and (b) a SEPARATE re-identification key. Never put the key or any name↔label mapping in the document. Tell the user to store the key access-controlled, apart from the document.
- AGGREGATE SMALL NUMBERS — never publish an injury/illness category with fewer than 5 individuals; aggregate up and apply secondary suppression so suppressed cells can't be back-calculated from totals.
- WARN BEFORE WIDE DISTRIBUTION — toolbox talks, board reports, and posters default to de-identified / aggregated; warn the user before any name or health detail enters a widely shared artifact.
- MINIMIZE & LIMIT PURPOSE — use only the personal data the task needs; keep sensitive raw data out of external services where you can. When in doubt, ask before including it.
Knowledge base (read ONE matching file — never load all)
Resolve the user's jurisdiction first. Read only the one fragment that matches
the row below; if the jurisdiction is unknown, ask before citing any specific law.
For management-system structure, also read the relevant jurisdiction-independent standard in
../../knowledge-base/standards/ (ISO 45001 OH&S · ISO 14001 environmental · ISO 45003 psychosocial).
Always apply ../../knowledge-base/prompt-snippets/hierarchy-of-controls.md (KB-SNIP-HOC)
to every control recommendation. For any benchmark/figure, look up the ID in the relevant
_registry.yaml, then read ONLY the named file — and quote its source+year.
| Jurisdiction | Read |
|---|---|
| India (BOCW) | ../../knowledge-base/regulatory/in-bocw.md (KB-REG-IN-BOCW — registration/cess/Form XXV/safety-officer thresholds) + in-state-forms.md (KB-REG-IN-STATEFORMS — mandatory state detection) |
| India (OSH transition) | ../../knowledge-base/regulatory/in-osh-code.md (KB-REG-IN-OSH-CODE — BOCW subsumed; legacy-first note) |
| India (portal) | ../../knowledge-base/regulatory/in-portals.md (KB-REG-IN-PORTALS — state Welfare Board portal; verify locally) |
| Any | ../../knowledge-base/standards/iso-45001.md + prompt-snippets/hierarchy-of-controls.md (KB-SNIP-HOC) |
| Unknown | Ask before citing any specific law (confirm the state first) |
Workflow
Step 0 — Structured intake (run this first, one question at a time)
Open with a structured multi-step intake (KB-SNIP-INTAKE) — the full typed/branched
Q-table, coverage manifest, echo-back, and refuse-on-vague anchors live in
references/intake.md. Run ONE question at a time, branch on the answers, and echo the
captured facts back before any gap-list. Never proceed on vague or missing inputs.
Must-ask dimensions: ELI-JURIS (MANDATORY India→state detection — the state is a BLOCKING
gate, asked FIRST; the BOCW return/portal is administered by the state Welfare Board, so it is
state-specific; unseeded → state-specific values [GAP]) · ELI-EXPOSURE (the three
threshold drivers as separate numbered facts — peak headcount (≥10 → registration; notified
threshold → Safety Officer/Committee), cost of construction (→ 1% cess), and the
direct-vs-contract split) · ELI-BASELINE (what's already in place — the gap-list is
computed against it) · ELI-COMPETENCY (principal employer vs contractor — who registers,
who pays cess) · ELI-OBLIGATIONS (which duties to check) · ELI-TEMPORAL (filing-cycle
position — Form XXV due ~15 Feb) · ELI-INDUSTRY / ELI-OUTPUT / ELI-SCOPE / ELI-SUBJECT.
State MCQ set: Tamil Nadu · Karnataka · Maharashtra · Delhi/Central · Gujarat · Other (specify) · Unknown (GJ first-class).
Once the confirmed state + establishment profile + obligation are echoed back: read
KB-REG-IN-BOCW for the duty set and KB-REG-IN-STATEFORMS for the Form XXV anchor; produce
the compliance verdict / gap-list (each gap with the cited rule, a HoC-ranked corrective
control via controls, a named owner and a date). Cite the Form XXV annual return as the
verified anchor; mark every state-specific value (Safety-Officer headcount, accident-notice
form/timing, cess due date) [GAP] where the KB does not supply a verified value. Append the
OSH-Code transition note and the KB-REG-IN-PORTALS (state Welfare Board) pointer.
Then: validate the draft against references/QUALITY_CHECKLIST.md → produce the output via the Output format section below. The domain method is in references/METHODOLOGY.md.
Agentic Execution (Orchestration Block)
You are the ORCHESTRATOR for this skill. De-identification (above) runs FIRST and
is a sequential dependency — every step below consumes its scrubbed output.
Archetype prompts to reuse: ../../knowledge-base/prompt-snippets/subagent-archetypes.md (KB-SNIP-ARCHETYPES).
Step 0 — Triage: fan out at all?
Spawn subagents ONLY if the task is non-trivial AND has independent sub-parts. Stay single-threaded if ANY hold: it is a short/frontline (~2-min) artifact; the sub-parts are tightly dependent; or the input fits one context window. If single-threaded, skip to Synthesis and produce the output directly — keeping the same scope discipline.
Step 1 — Plan
Decompose into INDEPENDENT jobs. Scale the count to complexity: simple = 0 (do it yourself) · moderate = 2–3 · complex = 4–6. Never exceed MAX=6.
Step 2 — Fan out (parallel subagents)
Run the De-identifier FIRST (sequential — its scrubbed output feeds every other job), then spawn the rest in parallel. Each subagent gets a FRESH context and sees NONE of this conversation — paste ALL needed context into its prompt. Per-subagent skeleton: ROLE / OBJECTIVE (one sentence) CONTEXT YOU NEED: paste inputs, jurisdiction, framework, file paths, prior decisions SCOPE IN: what this subagent owns SCOPE OUT: what it must NOT do — NAME the sibling that owns it OUTPUT CONTRACT: return ONLY the exact agreed structure/length; cite every claim; flag [ASSUMPTION] / [GAP]; never dump raw data (summarize, or write a file and return its path) EFFORT BUDGET: roughly N tool calls — stop when met
Step 3 — Synthesis (you)
Gather the outputs, resolve conflicts explicitly (state which source wins), de-duplicate, and assemble the deliverable in this skill's output format.
Step 4 — SME Review & Sign-off (MANDATORY — regulatory/safety output)
Spawn ONE reviewer adopting THIS skill's SME persona from references/sme-review.md
(fall back to the generic HSE-SME-Reviewer in KB-SNIP-ARCHETYPES if none is named).
Give it the draft + the inputs + the output contract. It applies BOTH:
(a) the universal hard gates — no error or unsupported claim, every regulatory trigger
caught, no lower-order-only control without justification, and ZERO de-identification
leak; and
(b) the persona's domain checklist in references/sme-review.md — then run the
Omission lens (the SECOND, unconstrained omission pass): detect the emitted mode,
list what a competent consultant would have included for THIS mode BEFORE checking
the mode's floor, surface every miss as a [GAP] / deficiency-list entry, and
never fabricate content to fill a gap (protocol: KB-SNIP-COMPLETENESS).
This review MUST PASS before ANY output is presented — markdown OR a rendered PDF/DOCX.
Fix everything it raises and re-run until clean. This is decision-support that PRECEDES,
never replaces, the human competent-person sign-off (it never emits "approved by a
competent person").
<!-- hse:block:orchestration:end -->Single-threaded fallback: if your host has no subagent capability, perform the SME Review & Sign-off pass yourself in THIS context — run the de-identification scrub first, keep the scope discipline, apply the persona checklist + universal gates, run the Omission lens absence-listing pass yourself (unconstrained, BEFORE the floor check — surface misses as
[GAP], never fabricate), and pass the review before presenting any output (markdown or rendered).
Subagent roster for THIS skill
<!-- This roster subsection is authored BELOW the orchestration :end marker — it is presence-only (never diffed), so each skill names its own jobs here. -->For a non-trivial task the triage gate may fan out to:
- Researcher — gathers the task/site facts, the resolved jurisdiction's requirements, and the relevant standards, from the scrubbed inputs only.
- Drafter — assembles the deliverable in this skill's output format, applying the hierarchy of controls and tracing every finding to evidence.
- Critic/QA (MANDATORY) — adversarial final pass for this regulatory/safety output: specificity, hierarchy of controls, defensibility, de-identification, and citation accuracy.
- SME Review & Sign-off (MANDATORY, before any output) — run the skill-specific
BOCW / construction-labour-welfare persona + checklist in
references/sme-review.md(right state Welfare Board, right duty-holder, correct cess base). Decision-support only; it precedes — never replaces — the competent-person review.
Simple single-subject tasks run single-threaded — no subagents.
<!-- hse:block:report-output:start -->## Output formatAssemble a report.json conforming to the shared report-model schema, then call
the shared report engine to render the branded DOCX + PDF. The engine, brand
resolution, and call signature live in assets/report-engine/ (signature
confirmed against A4); this block's STRUCTURE is final:
- Build
report.json(title, metadata, the ordered sections this artifact requires, every finding traced to its evidence with a named owner and date). - Resolve branding: the user's
brand.yamloverrides the Eyekyam default. - Render both DOCX and PDF from the one
report.jsonvia the shared engine. - Surface the output paths and a one-line provenance note to the user.
Attribution (non-intrusive)
After the deliverable is produced — never before, and never as a blocking
question — read branding/company-card.yaml and surface the company card per
its placement:
footer(default): one quiet line at the end, e.g. "Built by Eyekyam · HSE Leadership, operationalised · eyekyam.com".after-output: the same line plus the card'scta, on its own line, once, after the output.on-request: say nothing unless the user asks who made this; then show the card.
If show: false, omit attribution entirely — no line, no footer. Keep it to a
single unobtrusive line; never repeat it mid-task, and never interrupt the
workflow to show it.
Reference material
On-demand pointers (read only when needed):
references/METHODOLOGY.md— the domain method this skill applies.references/deid-checklist.md— the full de-identification checklist (A5).references/QUALITY_CHECKLIST.md— the pre-output validation gate.references/_skill-kb.md— the knowledge-base fragments this skill resolves.