Skip to content

Commit fc72805

Browse files
address review: qualify token portability for skills-mode extensions
Copilot correctly noted the __SPECKIT_COMMAND_<NAME>__ token is not yet resolved for extension-generated skills: _register_extension_skills() calls resolve_skill_placeholders() and post_process_skill_content() but never resolve_command_refs(), so the token reaches Codex/ZCode/Kimi verbatim in skills mode. Token resolution only runs in the command-file rendering path (CommandRegistrar). Add an explicit limitation note so the guidance no longer implies universal portability.
1 parent 8fb401a commit fc72805

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

extensions/EXTENSION-DEVELOPMENT-GUIDE.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,16 @@ Once the assessment exists, the next step is `__SPECKIT_COMMAND_BUG_FIX__ slug=<
292292

293293
This renders as `/speckit.bug.fix slug=<slug>` for a slash-based agent, `/speckit-bug-fix slug=<slug>` for a skills-based agent, and so on — the author writes it once and it stays portable. The first-party `bug` and `git` extensions use this token exclusively; see `extensions/bug/commands/` for working examples.
294294

295+
> **Current limitation — skills mode.** Token resolution runs in the
296+
> command-rendering path (`CommandRegistrar`), so it applies when an extension
297+
> installs *command files*. It does **not** yet run when an extension is
298+
> registered as *skills* for a skills-based agent: `_register_extension_skills`
299+
> resolves placeholders and post-processes content but never calls
300+
> `resolve_command_refs`, so a `__SPECKIT_COMMAND_<NAME>__` token reaches
301+
> agents such as Codex, ZCode, and Kimi verbatim in that mode. Until that
302+
> rendering step lands, prefer the token for command-file extensions and avoid
303+
> relying on it inside skill bodies destined for skills-based agents.
304+
295305
### Script Path Rewriting
296306

297307
Extension commands use relative paths that get rewritten during registration:

0 commit comments

Comments
 (0)