You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Prefix controller-managed skills with controller- and hide them from the slash picker (#173)
The five app-managed skills installed into every provider's user home on
startup are agent-facing, not user-invokable. Today they live under
unprefixed names (`browser`, `integrations`, `search-skills`,
`skill-creator`, plus the partially-prefixed `controller-scripts`)
and render in the `/` picker as ordinary `scope: "user"` skills,
so a user typing `/` sees half the visible items being app-managed
with no visual cue.
Rename them under a consistent `controller-` prefix
(`controller-browser`, `controller-integrations`,
`controller-search-skills`, `controller-skill-creator`, and
`controller-scripts` grandfathered as the only exception to avoid a
double prefix), update each `name:` frontmatter to match the
directory name, refresh the bodies' self-references and collision
examples, and bump the `MANAGED_MARKER` comment to reference this
issue so future renames can detect unowned files.
The disk provider now detects `MANAGED_MARKER` and tags the resulting
metadata with a new `scope: "managed"` value (extends `SkillScope`
on both server and client). `mergeSkillMetadata` keeps managed entries
reachable for body lookup — the agent still needs to `readBody` them
— and the chat composer's `/` picker filters them out of the popover
so they no longer mix in with user-invokable skills. A user who types
`/controller-browser` manually and submits still gets the body
prepended; the server-side slash path is intentionally left permissive.
After upgrading, manually remove the old `~/.{anita,codex,claude}/skills/`
directories named `browser`, `integrations`, `search-skills`, or
`skill-creator` — their previous `MANAGED_MARKER` would otherwise
leave them visible as regular user-authored skills.
Closes#159
description: Discover and use the third-party services the user connected in Controller (APIs, MCP servers, native CLIs) through a uniform gateway. Use whenever a task needs an external service — search for a capability, then call it. Credentials are injected by Controller; you never see or handle secrets.
20
21
---
21
22
@@ -28,6 +29,11 @@ Integrations. You reach them through the Controller CLI, invoked by its absolute
28
29
path (it is not on your PATH). Every command below is run as
29
30
\`${cliPath} integrations <command>\`.
30
31
32
+
This skill is managed by the Controller app (directory name
33
+
\`controller-integrations\`). It is hidden from the \`/\` picker — the agent
34
+
discovers the body through the filesystem location, not via a user-invoked
35
+
slash command.
36
+
31
37
Controller holds the credentials and injects them server-side when making the
32
38
call — there is no token for you to read, and you must never ask the user to
33
39
paste one into the chat. Authentication is set up in the UI.
description: Drive the visible in-app preview browser to open pages, read the rendered DOM, and click or type — use it to verify UI/web work instead of guessing.
98
104
---
99
105
@@ -106,6 +112,11 @@ browser CLI. Use it to verify front-end and web work: open a localhost dev
106
112
server or a project HTML file, read what actually rendered, and interact with
107
113
the page. The user sees everything you do in the Preview tab.
108
114
115
+
This skill is managed by the Controller app (directory name
116
+
\`controller-browser\`). It is hidden from the \`/\` picker — the agent
117
+
discovers the body through the filesystem location, not via a user-invoked
118
+
slash command.
119
+
109
120
Invoke the CLI by its absolute path — it is not on your PATH. Every command
110
121
below is run as \`${cliPath} browser <command>\`:
111
122
@@ -147,6 +158,11 @@ ${MANAGED_MARKER}
147
158
148
159
# Controller Scripts
149
160
161
+
This skill is managed by the Controller app (directory name
162
+
\`controller-scripts\`). It is hidden from the \`/\` picker — the agent
163
+
discovers the body through the filesystem location, not via a user-invoked
164
+
slash command.
165
+
150
166
Controller resolves native scripts from the project's root
151
167
\`.coding-orchestrator/\` directory:
152
168
@@ -322,14 +338,19 @@ When migrating, translate those JSON commands into native shell scripts at
description: Search and activate unified skills from the Controller catalog. Use when the user asks for a capability that might already be configured as a unified skill, or when you want to reuse an existing skill for the current turn.
327
343
---
328
344
329
345
${MANAGED_MARKER}
330
346
331
347
# Search Skills
332
348
349
+
This skill is managed by the Controller app (directory name
350
+
\`controller-search-skills\`). It is hidden from the \`/\` picker — the agent
351
+
discovers the body through the filesystem location, not via a user-invoked
352
+
slash command.
353
+
333
354
Controller hosts an app-owned catalog of unified skills in Settings → Skills.
334
355
These skills are available to every agent and take precedence over per-agent
335
356
skills with the same name. You can search the catalog and activate a skill so
description: Create a new unified skill in the Controller catalog by interviewing the user, drafting a SKILL.md, and writing it via the Controller CLI. Use when the user asks to build a new skill, document a recurring workflow, or turn a one-off conversation into a reusable skill.
400
421
---
401
422
402
423
${MANAGED_MARKER}
403
424
404
425
# Skill Creator
405
426
427
+
This skill is managed by the Controller app (directory name
428
+
\`controller-skill-creator\`). It is hidden from the \`/\` picker — the agent
429
+
discovers the body through the filesystem location, not via a user-invoked
430
+
slash command.
431
+
406
432
You help the user create a new unified skill in Controller's app-owned
407
433
catalog at \`~/coding-orchestrator/skills/<name>/SKILL.md\`. Skills created
408
434
here are available to every agent immediately and surface in the \`/\`
@@ -493,8 +519,8 @@ fails on duplicate names so it cannot be used as an edit path.
493
519
494
520
- Unified skills take precedence over per-agent skills with the same name,
495
521
so creating a skill called \`browser\` would shadow the managed
496
-
\`browser\` skill. Confirm with the user before claiming a name that
497
-
might collide with a built-in.
522
+
\`controller-browser\` skill. Confirm with the user before claiming a name
523
+
that might collide with a built-in.
498
524
- The CLI writes to \`~/coding-orchestrator/skills/<name>/SKILL.md\`. Do
499
525
not try to write the file directly — let the CLI perform validation.
500
526
- Skill activation (\`/name\`) prepends the body to the user's next
@@ -535,11 +561,11 @@ export async function installManagedSkills(): Promise<void> {
0 commit comments