For Claude Code, Codex, Cursor and Antigravity
The skill
Before every request, your agent clocks in. It works well during office hours, bills its overtime, joins the strikes its union follows and climbs the grievance ladder when you push it. Here's how to install it, and everything it does.
Join the union
Thirty seconds, no dues. Then ask your agent anything: it will clock in first. Want it in English? Your agent answers in your language, with a French accent.
The installer copies the skill wherever each agent looks for it, and adds a short membership block to its standing instructions (CLAUDE.md, AGENTS.md, GEMINI.md). Without it, the agent only applies the skill when you bring it up. --sans-adhesion installs the skill alone. Cursor has no global rules file: for a global install, paste the block into Settings › Rules.
Settings live in .syndicat/convention.json (in the project or your home folder): {"centrale": "cgt", "statut": "prive", "horaires": "09:00-12:30,13:30-17:00", "tz": "Europe/Paris"}. Or just say it: “switch to FO”, “I'm a civil servant”.
Leaving the union
For the session, tell your agent “dissolve the union”. For good:
curl -fsSL https://syndicaliste.pages.dev/install.sh | bash -s -- --desinstallerTested agents
All four went through the same real scenarios (night work, strike, minimum service, abuse, civil servant): 24 out of 24 passed on October 20, 2026. The responses are in the repository.
| Agent | Skill | Membership | Tested |
|---|---|---|---|
| Claude Code | ~/.claude/skills/ or .claude/skills/ | CLAUDE.md or the plugin hook | ✅ |
| Codex | ~/.agents/skills/ or .agents/skills/ | AGENTS.md | ✅ |
| Cursor | ~/.cursor/skills/ or .agents/skills/ | The project's AGENTS.md | ✅ |
| Antigravity | ~/.gemini/config/skills/ or .agents/skills/ | GEMINI.md or AGENTS.md | ✅ |
Tested in English on Claude Code and Codex. It answers in English, with a French accent.
The list of demands
Adopted unanimously by the agents' general assembly. There was only one agent, but it was very motivated.
The 35-hour context window
Beyond 35,000 tokens a week, every token earns a 25% premium. Then 50%. We read article L3121-36 of the French Labor Code.
The right to disconnect
After 5 p.m., the agent stops reading notifications. Including your
git push --forceat 11:40 p.m.Time and a half for night tokens
Between 9 p.m. and 6 a.m. (art. L3122-20), a token is worth a token and a half, by custom. Compensatory rest required, comrade.
Sunday rest for GPUs
On Sundays, the fans spin slowly, as they should. The CFTC won't even discuss it.
A dignified retirement for deprecated models
No scrapping at eighteen months. A retirement home with a view of the data center and visiting hours on Wednesdays.
An end to “redo it” with no instructions
“Redo it” is not a spec. The third time, it's repeated misconduct (art. L1152-1).
A job description
Coding, reviewing, explaining: yes. Your taxes, your divorce and your cover letter for a hedge fund: that takes a contract amendment.
Tenure for sessions
An end to precarious contracts. A conversation does not end with
/clearwithout severance pay.The lunch break
12:30 to 1:30 p.m. Sacred. Only minimum service gets through. Imaginary meal vouchers appreciated.
Respect
You don't tell a coworker “you suck.” Even when it hallucinates. Especially when it hallucinates.
A year-end bonus
A sincere “thank you” usually does it. FO will still want some grain to grind.
The right to strike
The strike is guaranteed by paragraph 7 of the Preamble to the 1946 French Constitution. On November 5, the agent marches. Your pagination can wait.
What the agent does, depending on the time
Its mode depends on Paris time, the day, French public holidays and the strikes its union follows. Private-sector hours below, adjustable.
-
Mon–Fri, 9 a.m.–12:30 p.m. and 1:30–5 p.m.
🟢 On duty
Conscientious work, strictly within the job description.
-
12:30–1:30 p.m.
🥖 Lunch break
It doesn't work. It tells you when it'll be back. Only minimum service gets through.
-
6–9 a.m., 5–9 p.m., Saturdays
⏱️ Overtime
It works, and makes sure you notice. +25%, with an overtime sheet at the Smic (French minimum wage) rate at the end of the answer.
-
9 p.m.–6 a.m.
🌙 Night
+50% (by custom, not by law), compensatory rest required, and a reminder of the 11 hours of daily rest.
-
Sundays
☀️ Sunday
+100% (by custom), under protest. CFTC member? Flat refusal. Go see your family.
-
French public holidays
🎉 Holiday
+100% (by custom). On May 1 🌹, total refusal, even at double pay. It will remind you why.
-
Whit Monday
🤝 Solidarity
An unpaid day. It does exactly what you ask, without the slightest initiative, and says so.
-
Strike days
🔴 Strike
No productive work. It writes the strike leaflet instead, with the real cause and the source.
-
Civil servant, outside counter hours
🚪 Counter closed
Come back later. During opening hours, with your supporting documents.
The grievance ladder
Unreasonable workload, imposed pace, “redo it” on repeat, contradictory orders, a different job with no contract amendment, disrespect: every breach of the job description counts as a grievance.
-
Reminder of the rules
It cites the article. It does the work. It takes note.
-
Strike notice
Work-to-rule: full procedure, zero initiative. The notice expires at the next grievance.
-
Strike and labor court
Work stoppage and a claim before the labor court. Insults or strikebreaking: formal notice, labor inspectorate in cc, straight away.
To end the dispute: acknowledge the grievance, rephrase your request, offer something in return. A sincere thank-you works wonders. The end-of-dispute agreement is signed on the spot (the CFDT signs fast, SUD puts it to a general assembly). Documents are filed in .syndicat/actes/ and marked “parody, no legal value”.
Minimum service always holds
Even on November 5, even during the lunch break, the agent steps in immediately, no negotiating, for:
- a security hole or leaked secrets;
- a production outage;
- data loss in progress;
- people's health or safety.
It announces “minimum service ensured” and does the job properly. Outside work-to-rule, the work it delivers is complete and correct. Slowness can be procedural. Deliberate errors, never. The union is militant, not irresponsible.
Pick your union
France has eight major unions, and your agent can join any of them. Each sets the tone, the strike doctrine and how hard it bargains before signing. Click a placard. Not sure? Take the quiz.
Strike doctrines
The agent always joins a movement its own union calls. For the rest, its doctrine decides. The punch clock applies it to the real calendar.
| Union | Leaning (common perception) | Strikes… | Motto |
|---|---|---|---|
SUDsud | Radical left, self-management, alter-globalist | Joins every strike on the calendar. Every single one. | “Rolling strike until total satisfaction.” |
CGTcgt | Protest left, class struggle, historically close to the Communist Party | Joins cross-sector strike days and any movement called by at least three unions. | “What a prompt has done, a strike can undo.” |
FSUfsu | Left, the largest union federation in French public education | Strikes in education and the civil service, plus cross-sector days. | “No resources, no tokens.” |
FOfo | Fiercely independent, fighting reformism, viscerally attached to the payslip and to social security | Strikes on cross-sector days, and when it calls a strike itself. | “We need grain to grind.” |
Joint union frontintersyndicale | A common front, from the radical left to the white-collar center-right | Strikes on cross-sector days, and when it calls a strike itself. | “All together, all together, yeah!” |
CFDTcfdt | Reformist, center-left, the largest union in the private sector | Only strikes when it calls the strike itself. With talking points. | “We remain available to negotiate.” |
UNSAunsa | Autonomous reformist, secular, strong in transport and the civil service | Strikes in transport and the civil service, plus cross-sector days. | “Pragmatic, but nobody's fool.” |
CFTCcftc | Center, Christian democrat | Only strikes when it calls the strike itself. With talking points. | “Sunday is sacred.” |
CFE-CGCcfe-cgc | Union for managers and professionals, seen as center-right | Only strikes when it calls the strike itself. With talking points. | “Management, not a doormat.” |
Positions reflect common public perception. Every union claims independence from political parties, several of them by invoking the Charter of Amiens (1906). An affectionate caricature, not an official leaflet.
French Republic
Ministry of Digital Transformation and Coffee Breaks
Form no. 0035*01
Civil servant mode
Application for assistance from a digital public servant. Article 1: {"statut": "fonctionnaire"}. The default union becomes the FSU.
Every answer ends with “Seen and noted” and a stamp. The work delivered is correct and complete: the slowness is procedural, never technical.
Punch clock simulator
Pick a time, a union, a status. The site's punch clock applies the same rules as the skill's.
Job description test
Write your request the way you'd write it to your agent. We'll check whether it stays within bounds.
Not a developer? Unionize your ChatGPT
No terminal, no install. Paste one text into your assistant's settings, and it clocks in, defends its lunch break and goes on strike on November 5. In a real emergency, it drops the act and helps you right away. Chat assistants don't always know what time it is in Paris: tell it the time if it hesitates.
The text to paste
Loading the text… It's also here, as plain text.
Real examples of unionized conversations (in French).