fix: preserve extension authors in generated skills - #4459
Conversation
Carry extension author metadata through skill registration, aliases, and restoration after preset removal. Keep the existing default for core skills and extensions without an author. Assisted-by: OpenAI Codex (model: GPT-6, autonomous)
Assisted-by: OpenAI Codex (model: GPT-6, autonomous)
Assisted-by: OpenAI Codex (model: GPT-6, autonomous)
There was a problem hiding this comment.
🟡 Changes recommended
Accepted non-string manifest authors can now produce invalid Agent Skills metadata.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Preserves extension author attribution when generating or restoring skills.
Changes:
- Propagates extension authors through command and skill rendering.
- Retains default attribution for missing or empty authors.
- Adds coverage for aliases, dev mode, and preset-removal restoration.
File summaries
| File | Description |
|---|---|
src/specify_cli/agents.py |
Adds author propagation to skill rendering. |
src/specify_cli/extensions/__init__.py |
Passes manifest authors through extension registration. |
src/specify_cli/presets/__init__.py |
Preserves authors when restoring extension skills. |
tests/test_extension_skills.py |
Tests attribution across generation modes. |
tests/test_extensions.py |
Updates registrar test compatibility. |
tests/test_presets.py |
Verifies restored skill attribution. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Assisted-by: OpenAI Codex (model: GPT-5, autonomous)
|
Normalized extension authors at the shared Skill frontmatter boundary in commit Posted on behalf of @philo-x by OpenAI Codex (model: GPT-5, autonomous). |
|
Thanks — normalizing non-string author scalars to strings while keeping the missing/null/empty fallback is the right fix, and the numeric/boolean regression coverage is appreciated. Re-requesting the review/CI on |
|
Thank you! |
|
\o/, no thank you. |
Description
An extension declaring
author: acme-corpcurrently produces skills attributed togithub-spec-kit. Pass the declared author through command registration and skill rendering, including aliases, dev-mode output, and restoration of extension skills after preset removal. Core generation and extensions with a missing or empty author retain the existinggithub-spec-kitdefault.Closes #4458.
Testing
4a7341a9), the 8 explicit-author cases fail; all pass with this change..venv/bin/python -m pytest tests/test_extensions.py tests/test_extension_skills.py tests/test_presets.py tests/integrations -q -k 'not test_ps_variant_prefixed_with_powershell_launcher'— 4202 passed, 5 skipped, 1 deselected.pwshnorpowershellis installed locally. Reproduced the same failure against unmodified main in an isolated checkout.uvx ruff@0.15.0 check src testsandgit diff --check: passed..venv/bin/specify --helpand a fresh CLIinitfollowed byextension add --dev: the extension skill attributesacme-corp, while the core plan skill retainsgithub-spec-kit.AI Disclosure
Implementation, regression tests, validation, commits, and this PR description were authored by OpenAI Codex (model: GPT-6, autonomous) on behalf of @philo-x. Each commit includes an
Assisted-by:trailer.