Local Skill loading is inconsistent or non-existent

Hey Kevin!

Short version: this isn’t something you’re configuring, and it isn’t per-run targeting of your account. Those <agent_skills> and <available_skills> blocks are part of Cursor’s internally managed agent context (the skill catalog we inject so the agent knows what’s on hand). We do iterate on that section’s wording over time, so it isn’t frozen across versions, but for a given build it’s deterministic.

The main reason your three cloud runs look so different is the method itself. Asking the model to “dump its raw context” gives you the model’s reconstruction of that context, not a byte for byte copy. Composer (like LLMs in general) tends to paraphrase, reorder, or drop a line when it echoes its own system context, so the same underlying block can render three different ways across runs. That’s what’s happening in those three screenshots, not three different prompts.

On structure specifically: the real layout nests <available_skills> inside <agent_skills> (exactly the shape you proposed as “correct” in your other thread), so your instinct there was right.

None of this changes which skills are available or whether they work. The skill list (path plus description) is what the agent acts on, it can read any SKILL.md on demand, and explicit /skill-name is unaffected.

The two things genuinely worth tracking are the ones you already flagged: the “no skills listed at all” case in this thread, and the shortened descriptions in your other thread. Those affect behavior. The wording and format differences in the self-dumps don’t.

For how skills get surfaced to the agent, see Agent Skills and Prompting agents.

Happy to dig into a specific run if something still looks off!