NAI OS

A skill is not an agent

Command, subagent, skill — settled last.

Vocabulary: a skill is not an agent

Worth settling last, now that the pieces have names, because Claude Code genuinely blurs two of these.

Lives inFrontmatterInvoked by
Command · 12 here.claude/commands/ description, argument-hint you, typing /nai-tax-theo
Subagent · 25 here.claude/agents/ name, description, tools an orchestrator, via the Agent tool
Skill · 12 here (Cursor).cursor/skills/, plugin packs name, descriptionthe Skill tool

Cursor mirrors each /nai-* command under .cursor/skills/nai-*/SKILL.md (thin wrappers pointing at .claude/commands/). Claude Code surfaces the same command files through the Skill tool as well — which is why nai-tax-theo appears in the available-skills list despite living in commands/. There is no .claude/skills/ directory here. Installed packs (Superpowers, GSD, …) are user-level: they travel with the Claude Code install, not this workspace.

The difference that matters is context. A skill loads instructions into the context already running. It changes how the current agent behaves, with no isolation and no tool grant of its own — so it can never be narrower than whatever is running it. A subagent runs in its own context with its own tools: grant, and returns only a summary.

That is why tools: exists on agents and not on skills — and it is the whole basis of the boundary. email-triage cannot send mail because its grant omits the send tool. A skill could never give you that guarantee, and here it could not even try: none of the twenty-five agents is granted the Skill tool, so a subagent in this workspace cannot load a skill at all.

NextContext: two axes, not one ranking