Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: rewrite agent_scripts paths for codex skills
  • Loading branch information
RbBtSn0w committed Mar 19, 2026
commit 3ee1a59751cab88b54fdd23124538364c897c786
13 changes: 8 additions & 5 deletions src/specify_cli/agents.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,11 +206,14 @@ def _adjust_script_paths(self, frontmatter: dict) -> dict:
Returns:
Modified frontmatter with adjusted paths
"""
if "scripts" in frontmatter:
for key in frontmatter["scripts"]:
script_path = frontmatter["scripts"][key]
if script_path.startswith("../../scripts/"):
frontmatter["scripts"][key] = f".specify/scripts/{script_path[14:]}"
for script_key in ("scripts", "agent_scripts"):
scripts = frontmatter.get(script_key)
if not isinstance(scripts, dict):
continue

for key, script_path in scripts.items():
if isinstance(script_path, str) and script_path.startswith("../../scripts/"):
scripts[key] = f".specify/scripts/{script_path[14:]}"
return frontmatter

def render_markdown_command(
Expand Down
22 changes: 11 additions & 11 deletions tests/test_extensions.py
Original file line number Diff line number Diff line change
Expand Up @@ -832,11 +832,11 @@ def test_codex_skill_registration_resolves_script_placeholders(self, project_dir
"""---
description: "Scripted command"
scripts:
sh: scripts/bash/setup-plan.sh --json "{ARGS}"
ps: scripts/powershell/setup-plan.ps1 -Json
sh: ../../scripts/bash/setup-plan.sh --json "{ARGS}"
ps: ../../scripts/powershell/setup-plan.ps1 -Json
agent_scripts:
sh: scripts/bash/update-agent-context.sh __AGENT__
ps: scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__
sh: ../../scripts/bash/update-agent-context.sh __AGENT__
ps: ../../scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__
---

Run {SCRIPT}
Expand Down Expand Up @@ -864,8 +864,8 @@ def test_codex_skill_registration_resolves_script_placeholders(self, project_dir
assert "{AGENT_SCRIPT}" not in content
assert "__AGENT__" not in content
assert "{ARGS}" not in content
assert 'scripts/bash/setup-plan.sh --json "$ARGUMENTS"' in content
assert "scripts/bash/update-agent-context.sh codex" in content
assert '.specify/scripts/bash/setup-plan.sh --json "$ARGUMENTS"' in content
assert ".specify/scripts/bash/update-agent-context.sh codex" in content

def test_codex_skill_alias_frontmatter_matches_alias_name(self, project_dir, temp_dir):
"""Codex alias skills should render their own matching `name:` frontmatter."""
Expand Down Expand Up @@ -949,10 +949,10 @@ def test_codex_skill_registration_uses_fallback_script_variant_without_init_opti
"""---
description: "Fallback scripted command"
scripts:
sh: scripts/bash/setup-plan.sh --json "{ARGS}"
ps: scripts/powershell/setup-plan.ps1 -Json
sh: ../../scripts/bash/setup-plan.sh --json "{ARGS}"
ps: ../../scripts/powershell/setup-plan.ps1 -Json
agent_scripts:
sh: scripts/bash/update-agent-context.sh __AGENT__
sh: ../../scripts/bash/update-agent-context.sh __AGENT__
---

Run {SCRIPT}
Expand All @@ -974,8 +974,8 @@ def test_codex_skill_registration_uses_fallback_script_variant_without_init_opti
content = skill_file.read_text()
assert "{SCRIPT}" not in content
assert "{AGENT_SCRIPT}" not in content
assert 'scripts/bash/setup-plan.sh --json "$ARGUMENTS"' in content
assert "scripts/bash/update-agent-context.sh codex" in content
assert '.specify/scripts/bash/setup-plan.sh --json "$ARGUMENTS"' in content
assert ".specify/scripts/bash/update-agent-context.sh codex" in content

def test_register_commands_for_copilot(self, extension_dir, project_dir):
"""Test registering commands for Copilot agent with .agent.md extension."""
Expand Down
Loading