# DUERP — Document Unique (France)

> Creation and annual update of the French single document for occupational risk assessment (DUERP), per Code du Travail R4121-1. Covers work units, risk inventory, 10 pénibilité factors mapping, and update frequency check after significant changes.



Tags: France, Labour Law, Code du Travail, DUERP, Occupational Risk, Pénibilité, Regulatory


## Example Prompts

- Create our DUERP from our list of work units and map them to the 10 pénibilité factors
- We restructured in January 2025 — check that our DUERP has been revised since then
- Update our Document Unique with the annual revision and add the revision date
- Map our unités de travail to the official pénibilité list and draft the risk inventory

URL: https://rakenne.app/skills/duerp-document-unique/index.md

Try this skill: https://rakenne.app/a/?skill=duerp-document-unique



## Overview

Creation and annual update of the French single document for occupational risk assessment (DUERP), per Code du Travail R4121-1. Covers work units, risk inventory, 10 pénibilité factors mapping, and update frequency check after significant changes.

## Example

> **You:** We have three main unités de travail — atelier, bureau, chantier externe. Can you create our DUERP and map them to the 10 pénibilité factors?
>
> **Agent:** I'll set up the Document Unique from your units. *(Uses `list_penibilite_factors` to get the official list.)* I've created a DUERP with one section per unité de travail: for each I've listed the main risks (e.g. atelier: bruit, manutentions, postures; bureau: écrans, RPS; chantier: hauteur, météo, déplacements) and mapped them to the relevant pénibilité factors (1–10). I've added "Dernière révision : [today's date]" at the top. You can review exposure levels and add any site-specific measures; I can also run the update-frequency check whenever you have a significant change.

> **You:** We restructured in January 2025. Can you check that our DUERP has been revised since then?
>
> **Agent:** I'll run the update-frequency check. *(Calls `update_frequency_check` with the DUERP path and `significantChangeDate: 2025-01-01`.)* The document's last revision is 2024-06-15 — before the change. RESULT: ALERT — the DUERP must be revised and dated on or after the significant change (Code du travail R4121-1). I can draft the revised sections and set the new revision date; should I proceed?

## Excerpt of a generated draft

The agent can produce a full DUERP aligned with R4121-1. Below is a condensed excerpt showing **one unité de travail** with risk inventory, link to pénibilité factors, and revision date:

```markdown
---
revision_date: 2025-02-15
---

# Document Unique d'Évaluation des Risques Professionnels

**Dernière révision : 15/02/2025** — Révision annuelle.

## Unité de travail : Atelier

### Risques identifiés
- **Manutentions manuelles** (pièces, outillage) — exposition modérée. Lien pénibilité : facteur 1.
- **Bruit** (machines, ponceuses) — exposition ponctuelle > 80 dB. Lien pénibilité : facteur 7.
- **Postures prolongées** (assemblage, vissage) — facteur 2.
- **Risque électrique** — consignes et EPI en place.

### Mesures de prévention
- Formation gestes et postures ; recours chariots et aides à la manutention.
- Bouchons/casques anti-bruit ; limitation du temps d’exposition.
- Aménagement postes, pauses, rotation des tâches.
```

A clear revision date (in frontmatter or as "Dernière révision : JJ/MM/AAAA") ensures `update_frequency_check` can verify the document after a changement important.

## Extension tools and validations

The skill includes two extension tools:

### update_frequency_check (validation)

Runs inside the agent to check that the DUERP has been revised when required by R4121-1. It performs:

- **Revision date detection** — Scans the document for a last-revision date. It looks in YAML frontmatter for `revision_date`, `date`, `mise_à_jour`, or `dernière_révision` (ISO or DD/MM/YYYY), and in the body for phrases such as "Dernière révision : …", "Date de mise à jour : …", "Révision : …", or "Last update/revision : …", then parses the first valid date found.
- **Comparison with significant change** — If you pass `significantChangeDate` (ISO YYYY-MM-DD), the script compares the document’s revision date to that date. If no revision date is found, or the revision date is **before** the significant change, it triggers an **ALERT**.
- **Report** — Outputs a short report: whether a revision date was found, its value, and (when applicable) whether it is on or after the significant change. RESULT: ALERT means the DUERP must be revised and dated; RESULT: OK means the document is dated on or after the change (or no change date was provided).

Use this after any "changement important" (restructure, new site, new process, major staffing change) to confirm the DUERP has been updated.

### list_penibilite_factors (reference)

Returns the official **10 facteurs de pénibilité** (Code du travail L4161-1), grouped by category (Contraintes physiques marquées, Environnement physique agressif, Rythmes de travail). The agent uses this list to map each unité de travail to the relevant factors when building or updating the risk inventory, so nothing is omitted and wording stays aligned with the law. This tool does not validate the DUERP content; it supplies the canonical list so the agent can structure the document correctly.

## Getting Started

Add your source materials (list of work units, existing DUERP if any) to the project workspace, then activate the *DUERP — Document Unique (France)* skill. The agent will guide you through creation or annual update, mapping to the 10 pénibilité factors, and running the update-frequency check when a significant change has occurred.


---

Back to [Skill Library](https://rakenne.app/skills/index.md)
