Working as a team
Different people use different AI assistants. Here is how that stays tidy.
Everyone gets the rules, whatever they use
One file, AGENTS.md, carries your project’s rules. Codex, Cursor, OpenCode,
Gemini and Grok all read it automatically. Claude Code reads it through a
one-line CLAUDE.md.
So the baseline covers everybody with no per-person setup.
If someone wants the skill catalog inside their assistant rather than through
init, they can install the plugin for Claude Code,
Cursor, Codex, Grok, Gemini, OpenCode, or .agents. That is the procedures,
not the ESLint guarantee — both can be installed.
Adding what a particular assistant needs
If a teammate uses something that needs its own small config:
npx @wiluszdamian/cue add cursor
npx @wiluszdamian/cue add claude-code
To see what is set up right now:
npx @wiluszdamian/cue list
To take one out again:
npx @wiluszdamian/cue remove cursor
remove uses a record of exactly what was installed, so it takes out what it put
in and nothing else. Anything you edited by hand is kept and reported rather than
deleted.
Nobody is forced
doctor notices an assistant somebody is using and mentions it:
[ warn ] Cursor detected but not configured
Evidence: .cursor/ in this project.
fix: cue add cursor
A warning, not an error. Detection is a suggestion, never a decision — a folder left over from an experiment is not consent to write files.
What ends up in git
Commit these. They are shared knowledge:
AGENTS.mdand any assistant config.agent-kb/— what is known about your appeslint.config.mjs,playwright.config.ts.cue/install.json— the record of what was installed
Ignore these. Handled for you:
.auth/— a live signed-in sessiontest-results/,playwright-report/.envand other real environment files
Reviewing changes to the app notes
Treat .agent-kb/ like code. When a survey lands in a pull request, the diff
shows exactly which elements appeared or vanished — which is often the clearest
summary of a UI change anybody will get.
In CI
init writes two workflows.
Your tests, sharded and merged into one report.
Your guardrails:
- name: Constitution
run: npx eslint . # the rules
- name: Environment
run: npx @wiluszdamian/cue doctor --ci # is everything wired up
- name: Drift
run: npx @wiluszdamian/cue sync --check # have the rules moved
Only genuine errors fail the build. Warnings never do — a team that has to suppress warnings to ship stops reading them, and then stops reading the errors too.