-
Notifications
You must be signed in to change notification settings - Fork 6k
feat: add --agent-skills switch to init command #1561
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for automatically installing agent skills during project initialization by introducing the --agent-skills flag to the init command. The feature converts Prompt.MD template files from templates/commands/ into properly formatted SKILL.md files following the agentskills.io specification.
Changes:
- Added
install_agent_skills()function to convert Prompt.MD templates into agent skills with enhanced descriptions - Added
--agent-skillsCLI flag toinitcommand (requires--aiflag) - Added
pyyamldependency for YAML frontmatter parsing
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/specify_cli/init.py | Implements agent skills installation logic and adds CLI flag validation |
| pyproject.toml | Adds pyyaml dependency and bumps version to 0.0.23 |
| README.md | Documents the new --agent-skills flag with usage examples |
| CHANGELOG.md | Documents the feature addition for version 0.0.23 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/specify_cli/__init__.py
Outdated
| installed_count += 1 | ||
|
|
||
| except Exception as e: | ||
| console.print(f"[yellow]Warning: Failed to install skill {command_name}: {e}[/yellow]") |
Copilot
AI
Feb 4, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The error message references command_name which may not be defined if the exception occurs before line 1008. Consider using command_file.stem or wrapping in a try-except to ensure the variable is always available.
| console.print(f"[yellow]Warning: Failed to install skill {command_name}: {e}[/yellow]") | |
| skill_label = command_name if 'command_name' in locals() else command_file.stem | |
| console.print(f"[yellow]Warning: Failed to install skill {skill_label}: {e}[/yellow]") |
src/specify_cli/__init__.py
Outdated
| skill_content = f"""--- | ||
| name: {skill_name} | ||
| description: {enhanced_desc} | ||
| compatibility: Requires git and spec-kit project structure with .specify/ directory |
Copilot
AI
Feb 4, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent naming: the directory is referred to as .specify/ here but the actual skills are installed to .agent/ directory. This should be clarified or corrected to avoid confusion.
| compatibility: Requires git and spec-kit project structure with .specify/ directory | |
| compatibility: Requires git and spec-kit project structure with .agent/skills/ directory |
mnriem
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you change it from --agent-skills to --ai-skills and address the feedback Copilot gave as well?
This change adds the --agent-skills switch to the init command, allowing users to automatically install agent skills from Prompt.MD templates. It also adds pyyaml as a dependency.
fd83104 to
0d29f93
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 8 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| skill_dir.mkdir(parents=True, exist_ok=True) | ||
|
|
||
| # Generate enhanced description | ||
| original_desc = frontmatter.get('description', '') |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yaml.safe_load() can return None for empty frontmatter, which will make frontmatter.get(...) raise an AttributeError. Normalize the result to a dict (e.g., frontmatter = yaml.safe_load(...) or {}) and ideally validate it’s a mapping before calling .get.
| if not templates_dir.exists(): | ||
| if tracker: | ||
| tracker.error("ai-skills", "templates/commands not found") | ||
| else: | ||
| console.print("[yellow]Warning: templates/commands directory not found, skipping skills installation[/yellow]") | ||
| return False | ||
|
|
||
| # Get all markdown files | ||
| command_files = list(templates_dir.glob("*.md")) | ||
| if not command_files: | ||
| if tracker: | ||
| tracker.skip("ai-skills", "no command templates found") | ||
| else: | ||
| console.print("[yellow]No command templates found to install[/yellow]") | ||
| return False |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the early-return branches, tracker.error(...) / tracker.skip(...) are called without a preceding tracker.add(...). Other steps in this file appear to add before skip/error, and some tracker implementations require the step to exist before updating it. Consider calling tracker.add(\"ai-skills\", \"Install agent skills\") (or similar) before skip/error in these branches for consistent tracker behavior.
| ## [0.0.22] - 2025-11-07 | ||
| ## [0.0.23] - 2026-02-03 | ||
|
|
||
| ### Added | ||
|
|
||
| - **Agent Skills Installation**: New `--ai-skills` CLI option to install Prompt.MD templates as agent skills following [agentskills.io specification](https://agentskills.io/specification) | ||
| - Skills are installed to `.agent/skills/<skill-name>/SKILL.md` directory structure | ||
| - Requires `--ai` flag to be specified | ||
| - Converts all 9 spec-kit command templates (specify, plan, tasks, implement, analyze, clarify, constitution, checklist, taskstoissues) to properly formatted SKILL.md files | ||
| - Each skill includes enhanced descriptions, compatibility information, and usage guidance | ||
| - Integrated into the initialize workflow with progress tracking | ||
|
|
||
| ### Changed | ||
|
|
||
| - Updated `pyyaml` dependency for YAML frontmatter parsing | ||
| - Enhanced CLI help text and documentation with agent skills examples | ||
|
|
||
|
|
||
| - Support for VS Code/Copilot agents, and moving away from prompts to proper agents with hand-offs. |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changelog section ordering/structure looks broken: 0.0.23 is placed after 0.0.22 (but is a newer version), and the bullets starting at line 142 appear to belong to a different release section yet are now under 0.0.23 (no heading separating them). Reorder sections so newest versions come first and ensure each bullet list is under the correct ## [version] header.
fix review comments Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| skill_content = f"""--- | ||
| name: {skill_name} | ||
| description: {enhanced_desc} | ||
| compatibility: Requires git and spec-kit project structure with .agent/skills/ directory | ||
| --- | ||
|
|
||
| # Speckit {command_name.title()} Skill | ||
|
|
||
| {body} | ||
| """ |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The SKILL.md YAML frontmatter is built via string interpolation without quoting/escaping. If enhanced_desc (or any future field) contains characters like : / # / newlines, the YAML can become invalid. Prefer generating the frontmatter via yaml.safe_dump() (with appropriate options) and then appending the markdown body, or explicitly quote/block-scalar the description.
| skill_content = f"""--- | |
| name: {skill_name} | |
| description: {enhanced_desc} | |
| compatibility: Requires git and spec-kit project structure with .agent/skills/ directory | |
| --- | |
| # Speckit {command_name.title()} Skill | |
| {body} | |
| """ | |
| front_matter = { | |
| "name": skill_name, | |
| "description": enhanced_desc, | |
| "compatibility": "Requires git and spec-kit project structure with .agent/skills/ directory", | |
| } | |
| yaml_front_matter = yaml.safe_dump( | |
| front_matter, | |
| sort_keys=False, | |
| allow_unicode=True, | |
| ) | |
| skill_content = ( | |
| f"---\n" | |
| f"{yaml_front_matter}" | |
| f"---\n\n" | |
| f"# Speckit {command_name.title()} Skill\n\n" | |
| f"{body}\n" | |
| ) |
| ## [0.0.22] - 2025-11-07 | ||
| ## [0.0.23] - 2026-02-03 | ||
|
|
||
| ### Added |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changelog entry order/structure looks incorrect: 0.0.23 appears immediately after 0.0.22 (newer versions are typically listed above older ones), and there’s no separating content indicating where the 0.0.22 section begins/ends. Reorder so 0.0.23 is above 0.0.22 and ensure each version’s bullets are contained under the correct header.
|
|
||
|
|
||
| - Support for VS Code/Copilot agents, and moving away from prompts to proper agents with hand-offs. | ||
| - Move to use `AGENTS.md` for Copilot workloads, since it's already supported out-of-the-box. |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These bullets are no longer under any version heading, which makes the changelog ambiguous. They should be moved under the appropriate ## [x.y.z] section (or removed if obsolete).
fix review comments Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if not command_files: | ||
| if tracker: | ||
| tracker.skip("ai-skills", "no command templates found") | ||
| else: | ||
| console.print("[yellow]No command templates found to install[/yellow]") | ||
| return False |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same tracker lifecycle issue as above: tracker.skip("ai-skills", ...) is executed without a prior tracker.add("ai-skills", ...). To avoid inconsistent progress output or potential tracker errors, add/register the step before skipping.
| if len(parts) >= 3: | ||
| raw_frontmatter = yaml.safe_load(parts[1]) | ||
| frontmatter = raw_frontmatter if isinstance(raw_frontmatter, dict) else {} | ||
| body = parts[2].strip() |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using .strip() will remove trailing whitespace and also leading newlines/whitespace from the Markdown body, which can unintentionally change formatting (e.g., leading blank lines, indentation-sensitive constructs). Prefer preserving the body verbatim (or only removing a single leading newline via something like lstrip("\n")) so the generated SKILL.md content matches the source template more reliably.
| body = parts[2].strip() | |
| body = parts[2].lstrip("\n") |
| skill_content = f"""--- | ||
| name: {skill_name} | ||
| description: {enhanced_desc} | ||
| compatibility: Requires git and spec-kit project structure with .agent/skills/ directory | ||
| --- | ||
|
|
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The YAML frontmatter is built via string interpolation without escaping. If enhanced_desc (or skill_name) contains characters significant to YAML (e.g., :, #, leading/trailing spaces, newlines, quotes), the generated SKILL.md can become invalid YAML. Generate frontmatter via yaml.safe_dump(...) (or otherwise quote/escape values) to ensure valid YAML output for arbitrary template descriptions.
| skill_content = f"""--- | |
| name: {skill_name} | |
| description: {enhanced_desc} | |
| compatibility: Requires git and spec-kit project structure with .agent/skills/ directory | |
| --- | |
| frontmatter = { | |
| "name": skill_name, | |
| "description": enhanced_desc, | |
| "compatibility": "Requires git and spec-kit project structure with .agent/skills/ directory", | |
| } | |
| frontmatter_yaml = yaml.safe_dump(frontmatter, sort_keys=False).strip() | |
| skill_content = f"""---\n{frontmatter_yaml}\n---\n |
| original_desc = frontmatter.get('description', '') | ||
| if command_name == 'specify': | ||
| enhanced_desc = "Create or update feature specifications from natural language descriptions. Use when starting new features or refining requirements. Generates spec.md with user stories, functional requirements, and acceptance criteria following spec-driven development methodology." | ||
| elif command_name == 'plan': | ||
| enhanced_desc = "Generate technical implementation plans from feature specifications. Use after creating a spec to define architecture, tech stack, and implementation phases. Creates plan.md with detailed technical design." | ||
| elif command_name == 'tasks': | ||
| enhanced_desc = "Break down implementation plans into actionable task lists. Use after planning to create a structured task breakdown. Generates tasks.md with ordered, dependency-aware tasks." | ||
| elif command_name == 'implement': | ||
| enhanced_desc = "Execute all tasks from the task breakdown to build the feature. Use after task generation to systematically implement the planned solution following TDD approach where applicable." | ||
| elif command_name == 'analyze': | ||
| enhanced_desc = "Perform cross-artifact consistency analysis across spec.md, plan.md, and tasks.md. Use after task generation to identify gaps, duplications, and inconsistencies before implementation." | ||
| elif command_name == 'clarify': | ||
| enhanced_desc = "Structured clarification workflow for underspecified requirements. Use before planning to resolve ambiguities through coverage-based questioning. Records answers in spec clarifications section." | ||
| elif command_name == 'constitution': | ||
| enhanced_desc = "Create or update project governing principles and development guidelines. Use at project start to establish code quality, testing standards, and architectural constraints that guide all development." | ||
| elif command_name == 'checklist': | ||
| enhanced_desc = "Generate custom quality checklists for validating requirements completeness and clarity. Use to create unit tests for English that ensure spec quality before implementation." | ||
| elif command_name == 'taskstoissues': | ||
| enhanced_desc = "Convert tasks from tasks.md into GitHub issues. Use after task breakdown to track work items in GitHub project management." | ||
| else: | ||
| enhanced_desc = original_desc or f"Spec-kit workflow command: {command_name}" |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The long if/elif chain for descriptions is hard to maintain and easy to drift as commands change. Consider replacing it with a single mapping/dict (e.g., DESCRIPTIONS = {...}) and enhanced_desc = DESCRIPTIONS.get(command_name, original_desc or ...) to make additions/edits simpler and reduce branching noise.
| ## [0.0.22] - 2025-11-07 | ||
| ## [0.0.23] - 2026-02-03 | ||
|
|
||
| ### Added | ||
|
|
||
| - **Agent Skills Installation**: New `--ai-skills` CLI option to install Prompt.MD templates as agent skills following [agentskills.io specification](https://agentskills.io/specification) | ||
| - Skills are installed to `.agent/skills/<skill-name>/SKILL.md` directory structure | ||
| - Requires `--ai` flag to be specified | ||
| - Converts all 9 spec-kit command templates (specify, plan, tasks, implement, analyze, clarify, constitution, checklist, taskstoissues) to properly formatted SKILL.md files | ||
| - Each skill includes enhanced descriptions, compatibility information, and usage guidance | ||
| - Integrated into the initialize workflow with progress tracking | ||
|
|
||
| ### Changed | ||
|
|
||
| - Updated `pyyaml` dependency for YAML frontmatter parsing | ||
| - Enhanced CLI help text and documentation with agent skills examples | ||
|
|
||
|
|
||
| - Support for VS Code/Copilot agents, and moving away from prompts to proper agents with hand-offs. | ||
| - Move to use `AGENTS.md` for Copilot workloads, since it's already supported out-of-the-box. |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changelog entry ordering/structure looks broken: 0.0.23 appears after 0.0.22, and the bullets at lines 142–143 are not under any ### Added/Changed/... heading (and appear to belong to a different release section). Reorder releases so newest is first (typically 0.0.23 above 0.0.22) and ensure all bullet points are grouped under the correct version and subsection headings.
add review comments from co pilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if not templates_dir.exists(): | ||
| if tracker: | ||
| tracker.error("ai-skills", "project .specify/templates/commands not found") | ||
| else: | ||
| console.print("[yellow]Warning: project .specify/templates/commands directory not found, skipping skills installation[/yellow]") | ||
| return False | ||
|
|
||
| # Get all markdown files | ||
| command_files = list(templates_dir.glob("*.md")) | ||
| if not command_files: | ||
| if tracker: | ||
| tracker.skip("ai-skills", "no command templates found") | ||
| else: | ||
| console.print("[yellow]No command templates found to install[/yellow]") | ||
| return False |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tracker.error(...)/tracker.skip(...)are called without a precedingtracker.add("ai-skills", ...)for those early-return branches. In other parts of this module (e.g.,ensure_constitution_from_template) the step is always added before it’s updated; if StepTrackerexpects that pattern, these paths may fail or produce inconsistent output. Addtracker.add("ai-skills", "...")before callingskip/errorin these branches (and consider whether “missing templates dir” should beskipvserrorwhen the user explicitly requested--ai-skills`).
| if command_name == 'specify': | ||
| enhanced_desc = "Create or update feature specifications from natural language descriptions. Use when starting new features or refining requirements. Generates spec.md with user stories, functional requirements, and acceptance criteria following spec-driven development methodology." | ||
| elif command_name == 'plan': | ||
| enhanced_desc = "Generate technical implementation plans from feature specifications. Use after creating a spec to define architecture, tech stack, and implementation phases. Creates plan.md with detailed technical design." | ||
| elif command_name == 'tasks': | ||
| enhanced_desc = "Break down implementation plans into actionable task lists. Use after planning to create a structured task breakdown. Generates tasks.md with ordered, dependency-aware tasks." | ||
| elif command_name == 'implement': | ||
| enhanced_desc = "Execute all tasks from the task breakdown to build the feature. Use after task generation to systematically implement the planned solution following TDD approach where applicable." | ||
| elif command_name == 'analyze': | ||
| enhanced_desc = "Perform cross-artifact consistency analysis across spec.md, plan.md, and tasks.md. Use after task generation to identify gaps, duplications, and inconsistencies before implementation." | ||
| elif command_name == 'clarify': | ||
| enhanced_desc = "Structured clarification workflow for underspecified requirements. Use before planning to resolve ambiguities through coverage-based questioning. Records answers in spec clarifications section." | ||
| elif command_name == 'constitution': | ||
| enhanced_desc = "Create or update project governing principles and development guidelines. Use at project start to establish code quality, testing standards, and architectural constraints that guide all development." | ||
| elif command_name == 'checklist': | ||
| enhanced_desc = "Generate custom quality checklists for validating requirements completeness and clarity. Use to create unit tests for English that ensure spec quality before implementation." | ||
| elif command_name == 'taskstoissues': | ||
| enhanced_desc = "Convert tasks from tasks.md into GitHub issues. Use after task breakdown to track work items in GitHub project management." | ||
| else: | ||
| enhanced_desc = original_desc or f"Spec-kit workflow command: {command_name}" |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The long if/elif chain of hardcoded descriptions will be painful to extend and review over time. Consider replacing it with a dict mapping {command_name: description} (and falling back to original_desc), which reduces branching and makes future edits safer/clearer.
| if command_name == 'specify': | |
| enhanced_desc = "Create or update feature specifications from natural language descriptions. Use when starting new features or refining requirements. Generates spec.md with user stories, functional requirements, and acceptance criteria following spec-driven development methodology." | |
| elif command_name == 'plan': | |
| enhanced_desc = "Generate technical implementation plans from feature specifications. Use after creating a spec to define architecture, tech stack, and implementation phases. Creates plan.md with detailed technical design." | |
| elif command_name == 'tasks': | |
| enhanced_desc = "Break down implementation plans into actionable task lists. Use after planning to create a structured task breakdown. Generates tasks.md with ordered, dependency-aware tasks." | |
| elif command_name == 'implement': | |
| enhanced_desc = "Execute all tasks from the task breakdown to build the feature. Use after task generation to systematically implement the planned solution following TDD approach where applicable." | |
| elif command_name == 'analyze': | |
| enhanced_desc = "Perform cross-artifact consistency analysis across spec.md, plan.md, and tasks.md. Use after task generation to identify gaps, duplications, and inconsistencies before implementation." | |
| elif command_name == 'clarify': | |
| enhanced_desc = "Structured clarification workflow for underspecified requirements. Use before planning to resolve ambiguities through coverage-based questioning. Records answers in spec clarifications section." | |
| elif command_name == 'constitution': | |
| enhanced_desc = "Create or update project governing principles and development guidelines. Use at project start to establish code quality, testing standards, and architectural constraints that guide all development." | |
| elif command_name == 'checklist': | |
| enhanced_desc = "Generate custom quality checklists for validating requirements completeness and clarity. Use to create unit tests for English that ensure spec quality before implementation." | |
| elif command_name == 'taskstoissues': | |
| enhanced_desc = "Convert tasks from tasks.md into GitHub issues. Use after task breakdown to track work items in GitHub project management." | |
| else: | |
| enhanced_desc = original_desc or f"Spec-kit workflow command: {command_name}" | |
| description_overrides = { | |
| 'specify': "Create or update feature specifications from natural language descriptions. Use when starting new features or refining requirements. Generates spec.md with user stories, functional requirements, and acceptance criteria following spec-driven development methodology.", | |
| 'plan': "Generate technical implementation plans from feature specifications. Use after creating a spec to define architecture, tech stack, and implementation phases. Creates plan.md with detailed technical design.", | |
| 'tasks': "Break down implementation plans into actionable task lists. Use after planning to create a structured task breakdown. Generates tasks.md with ordered, dependency-aware tasks.", | |
| 'implement': "Execute all tasks from the task breakdown to build the feature. Use after task generation to systematically implement the planned solution following TDD approach where applicable.", | |
| 'analyze': "Perform cross-artifact consistency analysis across spec.md, plan.md, and tasks.md. Use after task generation to identify gaps, duplications, and inconsistencies before implementation.", | |
| 'clarify': "Structured clarification workflow for underspecified requirements. Use before planning to resolve ambiguities through coverage-based questioning. Records answers in spec clarifications section.", | |
| 'constitution': "Create or update project governing principles and development guidelines. Use at project start to establish code quality, testing standards, and architectural constraints that guide all development.", | |
| 'checklist': "Generate custom quality checklists for validating requirements completeness and clarity. Use to create unit tests for English that ensure spec quality before implementation.", | |
| 'taskstoissues': "Convert tasks from tasks.md into GitHub issues. Use after task breakdown to track work items in GitHub project management.", | |
| } | |
| enhanced_desc = description_overrides.get( | |
| command_name, | |
| original_desc or f"Spec-kit workflow command: {command_name}", | |
| ) |
| {frontmatter_yaml} | ||
| --- | ||
|
|
||
| # Speckit {command_name.title()} Skill |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
“Speckit” appears inconsistent with the rest of the terminology in this PR (“spec-kit”, “specify”, etc.), and command_name.title() renders taskstoissues as Taskstoissues. Consider standardizing the branding (e.g., “Spec-Kit”) and using a friendly display name mapping for command titles.
| ## [0.0.22] - 2025-11-07 | ||
| ## [0.0.23] - 2026-02-03 | ||
|
|
||
| ### Added | ||
|
|
||
| - **Agent Skills Installation**: New `--ai-skills` CLI option to install Prompt.MD templates as agent skills following [agentskills.io specification](https://agentskills.io/specification) | ||
| - Skills are installed to `.agent/skills/<skill-name>/SKILL.md` directory structure | ||
| - Requires `--ai` flag to be specified | ||
| - Converts all 9 spec-kit command templates (specify, plan, tasks, implement, analyze, clarify, constitution, checklist, taskstoissues) to properly formatted SKILL.md files | ||
| - Each skill includes enhanced descriptions, compatibility information, and usage guidance | ||
| - Integrated into the initialize workflow with progress tracking | ||
|
|
||
| ### Changed | ||
|
|
||
| - Updated `pyyaml` dependency for YAML frontmatter parsing | ||
| - Enhanced CLI help text and documentation with agent skills examples | ||
|
|
||
|
|
||
| - Support for VS Code/Copilot agents, and moving away from prompts to proper agents with hand-offs. | ||
| - Move to use `AGENTS.md` for Copilot workloads, since it's already supported out-of-the-box. |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 0.0.23 entry is placed after 0.0.22, and the bullets at lines 142–143 look like they’re now orphaned (they appear under 0.0.23 with no heading). Also, this PR description mentions “adds pyyaml as a dependency”, but the changelog says “Updated pyyaml dependency”. Reorder entries so versions are in the intended order, ensure the bullets are under the correct release heading, and align the dependency wording (“Added PyYAML dependency” vs “Updated”).
This change adds the --agent-skills switch to the init command, allowing users to automatically install agent skills from Prompt.MD templates. It also adds pyyaml as a dependency.
Note: Build this with the help of Google Antigravity tool but tested manually on sample projects.
Does this look interesting?
Test results. Help