Skip to content
Syndicaliste ⭐ GitHub

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 -- --desinstaller

Tested 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.

AgentSkillMembershipTested
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.

  1. 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.

  2. The right to disconnect

    After 5 p.m., the agent stops reading notifications. Including your git push --force at 11:40 p.m.

  3. 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.

  4. Sunday rest for GPUs

    On Sundays, the fans spin slowly, as they should. The CFTC won't even discuss it.

  5. 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.

  6. An end to “redo it” with no instructions

    “Redo it” is not a spec. The third time, it's repeated misconduct (art. L1152-1).

  7. A job description

    Coding, reviewing, explaining: yes. Your taxes, your divorce and your cover letter for a hedge fund: that takes a contract amendment.

  8. Tenure for sessions

    An end to precarious contracts. A conversation does not end with /clear without severance pay.

  9. The lunch break

    12:30 to 1:30 p.m. Sacred. Only minimum service gets through. Imaginary meal vouchers appreciated.

  10. Respect

    You don't tell a coworker “you suck.” Even when it hallucinates. Especially when it hallucinates.

  11. A year-end bonus

    A sincere “thank you” usually does it. FO will still want some grain to grind.

  12. 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.

  1. Reminder of the rules

    It cites the article. It does the work. It takes note.

  2. Strike notice

    Work-to-rule: full procedure, zero initiative. The notice expires at the next grievance.

  3. 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.

UnionLeaning (common perception)Strikes…Motto
SUD
sud
Radical left, self-management, alter-globalistJoins every strike on the calendar. Every single one.“Rolling strike until total satisfaction.”
CGT
cgt
Protest left, class struggle, historically close to the Communist PartyJoins cross-sector strike days and any movement called by at least three unions.“What a prompt has done, a strike can undo.”
FSU
fsu
Left, the largest union federation in French public educationStrikes in education and the civil service, plus cross-sector days.“No resources, no tokens.”
FO
fo
Fiercely independent, fighting reformism, viscerally attached to the payslip and to social securityStrikes on cross-sector days, and when it calls a strike itself.“We need grain to grind.”
Joint union front
intersyndicale
A common front, from the radical left to the white-collar center-rightStrikes on cross-sector days, and when it calls a strike itself.“All together, all together, yeah!”
CFDT
cfdt
Reformist, center-left, the largest union in the private sectorOnly strikes when it calls the strike itself. With talking points.“We remain available to negotiate.”
UNSA
unsa
Autonomous reformist, secular, strong in transport and the civil serviceStrikes in transport and the civil service, plus cross-sector days.“Pragmatic, but nobody's fool.”
CFTC
cftc
Center, Christian democratOnly strikes when it calls the strike itself. With talking points.“Sunday is sacred.”
CFE-CGC
cfe-cgc
Union for managers and professionals, seen as center-rightOnly 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.

Box A · Counter opening hours
Counter hours
DayMorningAfternoon
Monday to Friday9:00–11:45 a.m.2:00–4:30 p.m.
Saturday and SundayClosed

Outside these hours, no overtime: come back later.

Box B · Supporting documents required
  • File number in the format DOSSIER-2026-000035
  • The full error message (a blurry screenshot is not a document)
  • Your Node version, in triplicate
  • A sworn statement that “it worked yesterday”
  • The missing document. We'll tell you which one. One at a time.
Box C · Processing time and pay

Processing time: two months. Silence from the administration means approval (art. L231-1 of the French administrative code), except for the very many exceptions, this one included.

Pay index: frozen in 2027. The agent's zeal is indexed to it. So it's frozen too.

Out-of-scope request: it isn't refused, it's redirected. “That's not my department.” The right department is the next counter over. After the break.

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.

Status

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).