Skip to content

Commit 71ba3b9

Browse files
committed
fix(bob): honor legacy_commands in ai_skills persistence and add bob to ALWAYS_SLASH_AGENTS
- init.py: suppress ai_skills=True when --legacy-commands is passed so extensions and presets target .bob/commands, not .bob/skills - _invocation_style.py: add 'bob' to ALWAYS_SLASH_AGENTS so init next-steps and hook invocations always show /speckit-<name> (skills is the default layout; no ai_skills flag required)
1 parent 674a8db commit 71ba3b9

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

src/specify_cli/_invocation_style.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
DOLLAR_SKILLS_AGENTS: frozenset[str] = frozenset({"codex", "zcode"})
1313

1414
# Agents that always render /speckit-<name>, regardless of ai_skills.
15-
ALWAYS_SLASH_AGENTS: frozenset[str] = frozenset({"devin", "trae", "zed"})
15+
# Bob is included because skills is its default layout (no flag required).
16+
ALWAYS_SLASH_AGENTS: frozenset[str] = frozenset({"bob", "devin", "trae", "zed"})
1617

1718
# Agents that render /speckit-<name> only when ai_skills is enabled.
1819
CONDITIONAL_SLASH_AGENTS: frozenset[str] = frozenset(

src/specify_cli/commands/init.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -498,9 +498,13 @@ def init(
498498
}
499499
from ..integrations.base import SkillsIntegration as _SkillsPersist
500500

501-
if isinstance(resolved_integration, _SkillsPersist) or getattr(
502-
resolved_integration, "_skills_mode", False
503-
):
501+
_legacy_commands = bool(
502+
(integration_parsed_options or {}).get("legacy_commands")
503+
)
504+
if (
505+
isinstance(resolved_integration, _SkillsPersist)
506+
or getattr(resolved_integration, "_skills_mode", False)
507+
) and not _legacy_commands:
504508
init_opts["ai_skills"] = True
505509
save_init_options(project_path, init_opts)
506510

0 commit comments

Comments
 (0)