Ask a coding agent to add Croct to your Next.js app today, and you'll usually get something that looks right. The imports are plausible, the function names are close, and the CQL reads like English. Then you run it, and the slot renders fallback content, the audience never matches, and nobody can tell you why.
That's not the agent being careless. It's the agent doing exactly what it can with what it has: our public documentation, read once, out of order, with no way to tell a documented construct from a phrase that merely appeared in a sentence.
So we built the missing piece. Croct agent skills are open-source skills that give your coding agent working knowledge of Croct: how to integrate the SDK, model content, write audiences, track events, and run experiments, plus the failure modes that come with each. They're MIT licensed, live on GitHub, and use the open Agent Skills format, so any agent that supports it can load them.
What's in the box
In the first version, 9 skills, 52 reference files, and around 13,500 lines. Your agent loads only the one it needs for the task in front of it.
| Skill | What it covers |
|---|---|
| croct-use-croct | Core concepts, which skill to load next, how to read the live docs |
| croct-use-cli | Project setup, slots, components, generated types, fallback content, croct.json, templates |
| croct-integrate-sdk | Rendering slots, evaluating queries, identifying users, all across JavaScript, React, Next.js, Vue, Nuxt, Hydrogen, PHP, Laravel, Symfony, and Drupal |
| croct-model-content | Designing components and slots, schema and content definitions, versioning and breaking changes |
| croct-cql | Writing and debugging Contextual Query Language for audiences |
| croct-track-events | Events and goals, profile and session attributes, identity, first-party routing |
| croct-personalize-and-test | Planning experiences and experiments, feature flags, redirect tests, reading analytics |
| croct-use-api | The content, evaluation, event tracking, and data export HTTP APIs |
| croct-integrate-platforms | Storyblok, Sanity, Strapi, Shopify, VTEX, HubSpot, firmographic providers, and migrations from Mutiny and Ninetailed |
Why skills and not just better docs
Our docs are good, and the agent can already read them. Every page is available as markdown by appending .md to the URL, and docs.croct.com/llms.txt lists them all.
The difference is that documentation describes what exists. A skill also encodes what goes wrong.
Here's a real example from the CQL skill:
Don't invent tests, variables, or event phrasings. Examples such as user is new or user has made purchase appear in docs prose but are not documented constructs; use user is not returning and user's stats' orders is not 0.
That instruction exists because user is new is exactly what a competent agent writes after reading our documentation. It appears in explanatory prose, it reads like valid CQL, and it isn't. No amount of rewriting the reference page fixes that, because the problem isn't the reference page, it's the inference the reader makes. A skill can name the wrong answer and rule it out.
Every skill ships with that kind of material.
The CQL skill carries a table mapping symptoms to causes to fixes: why location city is "Berlin" is a syntax error, why matches "Sale" misses "sale", why both X is greater than 30 and X is not greater than 30 can be false at once.
The SDK skill knows not to put an API key in a NEXT_PUBLIC_* variable, not to call fetchContent on a route you want to keep static, and to check trusted origins first when content loads locally but not on a new domain.
These are the things you'd learn in your first month and then forget you knew. Now your agent starts with them.
Installing
Pick your agent, follow the instructions we provide here, and you are ready to go. The CLI detects which agents you have and asks which to install.
To confirm it worked, ask your agent: "Which Croct skills do you have access to?"
What to ask for
You don't invoke skills by name. Describe the task and the matching skill loads itself:
- "Add Croct to this Next.js app and render a personalized hero slot."
- "Create an audience for returning visitors from New York on mobile."
- "Why is my slot showing the fallback content?"
- "Set up an A/B test on the pricing page CTA and tell me what goal I need to track first."
The third is worth calling out. Debugging is where generic documentation helps least, and a skill helps most, because the useful knowledge is a mapping from symptom to cause, and that mapping is nowhere in a reference page.
It is open source
The repository is croct-tech/agent-skills, MIT licensed. Everything is plain markdown: no build step, nothing compiled, nothing hidden.
That matters for a practical reason: the most valuable additions are the ones we can't write. We know the mistakes we see in support tickets. We don't know the one your team hit on a Friday afternoon with a Nuxt app behind a proxy that strips cookies. If you find a gap, a wrong answer, or a pitfall we haven't documented, open an issue or a pull request. A single row in a troubleshooting table is a genuinely useful contribution here.
You can also just read them. If you're evaluating Croct, the skills are a reasonably honest map of what the platform does and where it gets fiddly.
What's next
We'll keep these in step with the product: new SDKs, new CQL constructs, and new integrations land in the skills alongside the docs. The pitfalls tables will grow fastest, because that's where the real knowledge accumulates.
Install them, give your agent a task you'd normally do by hand, and tell us where it struggles. Get in touch or open an issue, both end up in the same place.