feat: add kiro-cli and AGENT_CONFIG consistency coverage#1690
feat: add kiro-cli and AGENT_CONFIG consistency coverage#1690mnriem merged 9 commits intogithub:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates the Spec Kit CLI’s “Amazon Q” agent integration (q) to a new dedicated kiro-cli agent, updating runtime configuration, packaging scripts, context update scripts, docs, and adding regression tests to keep these surfaces consistent.
Changes:
- Replace
qwithkiro-cliacrossAGENT_CONFIG, extension command registration, release packaging, and documentation. - Add
--ai kiroalias normalization to canonicalkiro-cli. - Add cross-surface consistency tests to prevent future drift between runtime config, scripts, and release artifacts.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
src/specify_cli/__init__.py |
Replaces q with kiro-cli, adds kiro alias normalization, and updates tool detection to accept kiro or kiro-cli. |
src/specify_cli/extensions.py |
Updates CommandRegistrar.AGENT_CONFIGS to emit .kiro/prompts for kiro-cli. |
.github/workflows/scripts/create-release-packages.sh |
Updates agent lists and artifact generation to build .kiro/prompts instead of .amazonq/prompts. |
.github/workflows/scripts/create-release-packages.ps1 |
Mirrors release packaging updates for PowerShell builds. |
.github/workflows/scripts/create-github-release.sh |
Updates GitHub release asset list to include kiro-cli zips instead of q. |
scripts/bash/update-agent-context.sh |
Replaces q with kiro-cli in supported agent lists and update routing. |
scripts/powershell/update-agent-context.ps1 |
Mirrors context update script changes for PowerShell. |
.devcontainer/post-create.sh |
Swaps Amazon Q install steps for Kiro install steps. |
.devcontainer/devcontainer.json |
Removes the Amazon Q VS Code extension. |
README.md |
Updates supported agent documentation and examples for kiro-cli (+ alias). |
AGENTS.md |
Updates agent matrix and instructions to reflect kiro-cli prompts mapping. |
CHANGELOG.md |
Adds 0.1.7 entry documenting the migration. |
pyproject.toml |
Bumps version to 0.1.7. |
tests/test_ai_skills.py |
Adds kiro-cli skills-dir coverage + alias normalization test; strengthens a couple assertions. |
tests/test_extensions.py |
Adds a regression test ensuring the registrar contains kiro-cli and not q. |
tests/test_agent_config_consistency.py |
Adds regression checks for consistency across runtime config, scripts, and release outputs. |
.github/ISSUE_TEMPLATE/*.yml |
Updates issue templates to reference Kiro CLI instead of Amazon Q. |
Comments suppressed due to low confidence (1)
tests/test_extensions.py:408
AGENT_CONFIGSis a class attribute, so instantiatingCommandRegistrar()here isn't necessary and can make the test slightly more coupled to constructor behavior. Prefer referencingCommandRegistrar.AGENT_CONFIGSdirectly to keep the test focused on the constant mapping.
def test_kiro_cli_agent_config_present(self):
"""Kiro CLI should be mapped to .kiro/prompts and legacy q removed."""
registrar = CommandRegistrar()
assert "kiro-cli" in registrar.AGENT_CONFIGS
assert registrar.AGENT_CONFIGS["kiro-cli"]["dir"] == ".kiro/prompts"
assert "q" not in registrar.AGENT_CONFIGS
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
mnriem
left a comment
There was a problem hiding this comment.
Please address Copilot feedback or explain why it is not needed
|
Addressed all open PR #1690 review items:
Validation run:
All are passing. Please re-review this commit when convenient. |
|
Applied one requested deterministic fix from the latest review comments and pushed commit
Other Copilot review items in Note: full test/lint runs could not be executed in this environment yet due missing runtime deps ( |
|
Updated PR branch with a second commit ( Changes in
Validation run:
Notes:
|
|
Applied one requested deterministic fix from the latest review comments and pushed commit to .\n\n- In , updated the path to capture result before assertions and assert .\n\nOther Copilot review items in 🤖 Installing Claude CLI... 🤖 Installing Codex CLI... 🤖 Installing Gemini CLI... are already addressed in this branch ( downloaded to temp file with optional checksum verification and runtime check supports both 20% > 20% > /).\n\nNote: full test/lint runs could not be executed in this environment yet due missing runtime deps ( not installed in current Python env). |
|
I’ve resolved the original review points from Copilot on PR #1690 and re-checked the current PR head. Current head is Proof in branch:
Note: the unresolved review threads still visible are from Copilot and are now marked Request:
If anything else is still required as a fresh comment, I can patch it immediately. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
.github/workflows/scripts/create-release-packages.sh:10
- The comment describing the valid
AGENTSsubset is incomplete (it omits agents that are actually inALL_AGENTS, e.g.kilocode,auggie,roo,codebuddy,agy,qodercli). This can mislead maintainers/users of the script; please update the comment to reflect the real allowed list (or derive it fromALL_AGENTS).
# Optionally set AGENTS and/or SCRIPTS env vars to limit what gets built.
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex amp shai bob kiro-cli generic (default: all)
# SCRIPTS : space or comma separated subset of: sh ps (default: both)
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
I’ve addressed all currently open comments on this PR:\n\n- .github/workflows/scripts/create-release-packages.ps1\n - Added explicit cases for and with correct output dirs (, ) and kept style consistent.\n - Added unsupported-agent default in switch for fail-fast behavior.\n\n- .devcontainer/post-create.sh\n - Tightened Kiro installer flow: checksum verification remains supported via ; default behavior now fails if hash is missing unless explicitly overridden with for explicit opt-in.\n - Kept temp-file install pattern and retained 14% > 14% > / runtime binary fallback + validation.\n\n- src/specify_cli/init.py\n - Updated help generation to be derived from and now includes plus alias note: \n\nAlso updated test coverage in tests/test_agent_config_consistency.py to assert shai/agy packaging script branches and updated help text expectations for roo + kiro alias note.\n\nPlease re-review and refresh comment threads when convenient. |
|
I’ve implemented all currently open comments on this PR:
Also updated tests in tests/test_agent_config_consistency.py to assert:
Please re-review these changes. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@medhatgalal Can you address the remaining feedback? |
|
Implemented the remaining PR #1690 fixes and rebased/pushed the branch. What changed:
Validation run after rebase:
Branch sync:
Please re-review and refresh the remaining thread statuses in case they are still open from prior snapshots. |
|
Reviewed the two active requested changes and verified both are implemented in the current branch:
Validation executed:
Both tests passed. |
79f2672 to
2316fa3
Compare
|
PR update:
Current remaining gate is reviewer approval refresh ( Please re-review when convenient. |
|
@mnriem Are there issues with the PR? I have resolved all comments and rebased several times to keep up with the repo. Thanks. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
tests/test_agent_config_consistency.py:64
- This test asserts an exact help-string fragment, which tightly couples it to the current formatting of AI_ASSISTANT_HELP. To reduce brittleness, consider asserting based on AI_ASSISTANT_ALIASES contents (e.g., that the alias keys/targets are mentioned) rather than a single hard-coded sentence.
def test_init_ai_help_includes_roo_and_kiro_alias(self):
"""CLI help text for --ai should stay in sync with agent config and alias guidance."""
assert "roo" in AI_ASSISTANT_HELP
assert "Use 'kiro' as an alias for 'kiro-cli'." in AI_ASSISTANT_HELP
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@mnriem Addressed latest review signal and updated PR head. What I changed:
Validation run:
Current PR state check from CLI:
If maintainers want this merged, remaining action appears to be reviewer/maintainer side policy handling (there are no unresolved comments/threads on the PR head). |
|
@medhatgalal Can you address the test and linting errors? |
|
Addressed current CI failures (ruff + pytest collection) for PR #1690. Root cause from failing run:
Fix applied:
Local validation:
Please let CI rerun on commit |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
bcc1e49 to
8020794
Compare
|
CI follow-up completed. Root cause from failing run (
Fixes applied:
Validation on rebased head:
Branch/PR status now:
Please re-run/refresh CI status on the latest head ( |
|
@medhatgalal Thank you for working through this! |
|
@mnriem happy to. Want to see this one through! |
Summary
Testing
Usage: specify [OPTIONS] COMMAND [ARGS]...
Setup tool for Specify spec-driven development projects
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ init Initialize a new Specify project from the latest template. │
│ check Check that all required tools are installed. │
│ version Display version and system information. │
│ extension Manage spec-kit extensions │
╰──────────────────────────────────────────────────────────────────────────────╯
platform darwin -- Python 3.14.3, pytest-9.0.2, pluggy-1.6.0 -- /Users/medhat.galal/Desktop/AI_Repos/spec-kit/.venv/bin/python3
cachedir: .pytest_cache
rootdir: /Users/medhat.galal/Desktop/AI_Repos/spec-kit
configfile: pyproject.toml
testpaths: tests
plugins: anyio-4.12.1, cov-7.0.0
collecting ... collected 104 items
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_runtime_config_uses_kiro_cli_and_removes_q PASSED [ 0%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_extension_registrar_uses_kiro_cli_and_removes_q PASSED [ 1%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_release_agent_lists_include_kiro_cli_and_exclude_q PASSED [ 2%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_release_output_targets_kiro_prompt_dir PASSED [ 3%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_agent_context_scripts_use_kiro_cli PASSED [ 4%]
tests/test_ai_skills.py::TestGetSkillsDir::test_claude_skills_dir PASSED [ 5%]
tests/test_ai_skills.py::TestGetSkillsDir::test_gemini_skills_dir PASSED [ 6%]
tests/test_ai_skills.py::TestGetSkillsDir::test_copilot_skills_dir PASSED [ 7%]
tests/test_ai_skills.py::TestGetSkillsDir::test_codex_uses_override PASSED [ 8%]
tests/test_ai_skills.py::TestGetSkillsDir::test_cursor_agent_skills_dir PASSED [ 9%]
tests/test_ai_skills.py::TestGetSkillsDir::test_kiro_cli_skills_dir PASSED [ 10%]
tests/test_ai_skills.py::TestGetSkillsDir::test_unknown_agent_uses_default PASSED [ 11%]
tests/test_ai_skills.py::TestGetSkillsDir::test_all_configured_agents_resolve PASSED [ 12%]
tests/test_ai_skills.py::TestGetSkillsDir::test_override_takes_precedence_over_config PASSED [ 13%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_installed_with_correct_structure PASSED [ 14%]
tests/test_ai_skills.py::TestInstallAiSkills::test_generated_skill_has_parseable_yaml PASSED [ 15%]
tests/test_ai_skills.py::TestInstallAiSkills::test_empty_yaml_frontmatter PASSED [ 16%]
tests/test_ai_skills.py::TestInstallAiSkills::test_enhanced_descriptions_used_when_available PASSED [ 17%]
tests/test_ai_skills.py::TestInstallAiSkills::test_template_without_frontmatter PASSED [ 18%]
tests/test_ai_skills.py::TestInstallAiSkills::test_missing_templates_directory PASSED [ 19%]
tests/test_ai_skills.py::TestInstallAiSkills::test_empty_templates_directory PASSED [ 20%]
tests/test_ai_skills.py::TestInstallAiSkills::test_malformed_yaml_frontmatter PASSED [ 21%]
tests/test_ai_skills.py::TestInstallAiSkills::test_additive_does_not_overwrite_other_files PASSED [ 22%]
tests/test_ai_skills.py::TestInstallAiSkills::test_return_value PASSED [ 23%]
tests/test_ai_skills.py::TestInstallAiSkills::test_return_false_when_no_templates PASSED [ 24%]
tests/test_ai_skills.py::TestInstallAiSkills::test_non_md_commands_dir_falls_back PASSED [ 25%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[copilot] PASSED [ 25%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[claude] PASSED [ 26%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[gemini] PASSED [ 27%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[cursor-agent] PASSED [ 28%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[qwen] PASSED [ 29%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[opencode] PASSED [ 30%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[codex] PASSED [ 31%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[windsurf] PASSED [ 32%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[kilocode] PASSED [ 33%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[auggie] PASSED [ 34%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[codebuddy] PASSED [ 35%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[qodercli] PASSED [ 36%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[roo] PASSED [ 37%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[kiro-cli] PASSED [ 38%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[amp] PASSED [ 39%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[shai] PASSED [ 40%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[agy] PASSED [ 41%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[bob] PASSED [ 42%]
tests/test_ai_skills.py::TestCommandCoexistence::test_existing_commands_preserved_claude PASSED [ 43%]
tests/test_ai_skills.py::TestCommandCoexistence::test_existing_commands_preserved_gemini PASSED [ 44%]
tests/test_ai_skills.py::TestCommandCoexistence::test_commands_dir_not_removed PASSED [ 45%]
tests/test_ai_skills.py::TestCommandCoexistence::test_no_commands_dir_no_error PASSED [ 46%]
tests/test_ai_skills.py::TestNewProjectCommandSkip::test_new_project_commands_removed_after_skills_succeed PASSED [ 47%]
tests/test_ai_skills.py::TestNewProjectCommandSkip::test_commands_preserved_when_skills_fail PASSED [ 48%]
tests/test_ai_skills.py::TestNewProjectCommandSkip::test_here_mode_commands_preserved PASSED [ 49%]
tests/test_ai_skills.py::TestSkipIfExists::test_existing_skill_not_overwritten PASSED [ 50%]
tests/test_ai_skills.py::TestSkipIfExists::test_fresh_install_writes_all_skills PASSED [ 50%]
tests/test_ai_skills.py::TestSkillDescriptions::test_all_known_commands_have_descriptions PASSED [ 51%]
tests/test_ai_skills.py::TestCliValidation::test_ai_skills_without_ai_fails PASSED [ 52%]
tests/test_ai_skills.py::TestCliValidation::test_ai_skills_without_ai_shows_usage PASSED [ 53%]
tests/test_ai_skills.py::TestCliValidation::test_ai_skills_flag_appears_in_help PASSED [ 54%]
tests/test_ai_skills.py::TestCliValidation::test_kiro_alias_normalized_to_kiro_cli PASSED [ 55%]
tests/test_ai_skills.py::TestCliValidation::test_q_removed_from_agent_config PASSED [ 56%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_ai_flag_consuming_here_flag PASSED [ 57%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_ai_flag_consuming_ai_skills_flag PASSED [ 58%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_error_message_provides_hint PASSED [ 59%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_error_message_lists_available_agents PASSED [ 60%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_ai_commands_dir_consuming_flag PASSED [ 61%]
tests/test_extensions.py::TestExtensionManifest::test_valid_manifest PASSED [ 62%]
tests/test_extensions.py::TestExtensionManifest::test_missing_required_field PASSED [ 63%]
tests/test_extensions.py::TestExtensionManifest::test_invalid_extension_id PASSED [ 64%]
tests/test_extensions.py::TestExtensionManifest::test_invalid_version PASSED [ 65%]
tests/test_extensions.py::TestExtensionManifest::test_invalid_command_name PASSED [ 66%]
tests/test_extensions.py::TestExtensionManifest::test_no_commands PASSED [ 67%]
tests/test_extensions.py::TestExtensionManifest::test_manifest_hash PASSED [ 68%]
tests/test_extensions.py::TestExtensionRegistry::test_empty_registry PASSED [ 69%]
tests/test_extensions.py::TestExtensionRegistry::test_add_extension PASSED [ 70%]
tests/test_extensions.py::TestExtensionRegistry::test_remove_extension PASSED [ 71%]
tests/test_extensions.py::TestExtensionRegistry::test_registry_persistence PASSED [ 72%]
tests/test_extensions.py::TestExtensionManager::test_check_compatibility_valid PASSED [ 73%]
tests/test_extensions.py::TestExtensionManager::test_check_compatibility_invalid PASSED [ 74%]
tests/test_extensions.py::TestExtensionManager::test_install_from_directory PASSED [ 75%]
tests/test_extensions.py::TestExtensionManager::test_install_duplicate PASSED [ 75%]
tests/test_extensions.py::TestExtensionManager::test_remove_extension PASSED [ 76%]
tests/test_extensions.py::TestExtensionManager::test_remove_nonexistent PASSED [ 77%]
tests/test_extensions.py::TestExtensionManager::test_list_installed PASSED [ 78%]
tests/test_extensions.py::TestExtensionManager::test_config_backup_on_remove PASSED [ 79%]
tests/test_extensions.py::TestCommandRegistrar::test_kiro_cli_agent_config_present PASSED [ 80%]
tests/test_extensions.py::TestCommandRegistrar::test_parse_frontmatter_valid PASSED [ 81%]
tests/test_extensions.py::TestCommandRegistrar::test_parse_frontmatter_no_frontmatter PASSED [ 82%]
tests/test_extensions.py::TestCommandRegistrar::test_render_frontmatter PASSED [ 83%]
tests/test_extensions.py::TestCommandRegistrar::test_register_commands_for_claude PASSED [ 84%]
tests/test_extensions.py::TestCommandRegistrar::test_command_with_aliases PASSED [ 85%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_simple PASSED [ 86%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_range PASSED [ 87%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_complex PASSED [ 88%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_invalid PASSED [ 89%]
tests/test_extensions.py::TestIntegration::test_full_install_and_remove_workflow PASSED [ 90%]
tests/test_extensions.py::TestIntegration::test_multiple_extensions PASSED [ 91%]
tests/test_extensions.py::TestExtensionCatalog::test_catalog_initialization PASSED [ 92%]
tests/test_extensions.py::TestExtensionCatalog::test_cache_directory_creation PASSED [ 93%]
tests/test_extensions.py::TestExtensionCatalog::test_cache_expiration PASSED [ 94%]
tests/test_extensions.py::TestExtensionCatalog::test_search_all_extensions PASSED [ 95%]
tests/test_extensions.py::TestExtensionCatalog::test_search_by_query PASSED [ 96%]
tests/test_extensions.py::TestExtensionCatalog::test_search_by_tag PASSED [ 97%]
tests/test_extensions.py::TestExtensionCatalog::test_search_verified_only PASSED [ 98%]
tests/test_extensions.py::TestExtensionCatalog::test_get_extension_info PASSED [ 99%]
tests/test_extensions.py::TestExtensionCatalog::test_clear_cache PASSED [100%]
============================= 104 passed in 0.74s ============================== ✅ (104 passed)
platform darwin -- Python 3.14.3, pytest-9.0.2, pluggy-1.6.0 -- /Users/medhat.galal/Desktop/AI_Repos/spec-kit/.venv/bin/python3
cachedir: .pytest_cache
rootdir: /Users/medhat.galal/Desktop/AI_Repos/spec-kit
configfile: pyproject.toml
plugins: anyio-4.12.1, cov-7.0.0
collecting ... collected 104 items
tests/test_ai_skills.py::TestGetSkillsDir::test_claude_skills_dir PASSED [ 0%]
tests/test_ai_skills.py::TestGetSkillsDir::test_gemini_skills_dir PASSED [ 1%]
tests/test_ai_skills.py::TestGetSkillsDir::test_copilot_skills_dir PASSED [ 2%]
tests/test_ai_skills.py::TestGetSkillsDir::test_codex_uses_override PASSED [ 3%]
tests/test_ai_skills.py::TestGetSkillsDir::test_cursor_agent_skills_dir PASSED [ 4%]
tests/test_ai_skills.py::TestGetSkillsDir::test_kiro_cli_skills_dir PASSED [ 5%]
tests/test_ai_skills.py::TestGetSkillsDir::test_unknown_agent_uses_default PASSED [ 6%]
tests/test_ai_skills.py::TestGetSkillsDir::test_all_configured_agents_resolve PASSED [ 7%]
tests/test_ai_skills.py::TestGetSkillsDir::test_override_takes_precedence_over_config PASSED [ 8%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_installed_with_correct_structure PASSED [ 9%]
tests/test_ai_skills.py::TestInstallAiSkills::test_generated_skill_has_parseable_yaml PASSED [ 10%]
tests/test_ai_skills.py::TestInstallAiSkills::test_empty_yaml_frontmatter PASSED [ 11%]
tests/test_ai_skills.py::TestInstallAiSkills::test_enhanced_descriptions_used_when_available PASSED [ 12%]
tests/test_ai_skills.py::TestInstallAiSkills::test_template_without_frontmatter PASSED [ 13%]
tests/test_ai_skills.py::TestInstallAiSkills::test_missing_templates_directory PASSED [ 14%]
tests/test_ai_skills.py::TestInstallAiSkills::test_empty_templates_directory PASSED [ 15%]
tests/test_ai_skills.py::TestInstallAiSkills::test_malformed_yaml_frontmatter PASSED [ 16%]
tests/test_ai_skills.py::TestInstallAiSkills::test_additive_does_not_overwrite_other_files PASSED [ 17%]
tests/test_ai_skills.py::TestInstallAiSkills::test_return_value PASSED [ 18%]
tests/test_ai_skills.py::TestInstallAiSkills::test_return_false_when_no_templates PASSED [ 19%]
tests/test_ai_skills.py::TestInstallAiSkills::test_non_md_commands_dir_falls_back PASSED [ 20%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[copilot] PASSED [ 21%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[claude] PASSED [ 22%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[gemini] PASSED [ 23%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[cursor-agent] PASSED [ 24%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[qwen] PASSED [ 25%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[opencode] PASSED [ 25%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[codex] PASSED [ 26%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[windsurf] PASSED [ 27%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[kilocode] PASSED [ 28%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[auggie] PASSED [ 29%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[codebuddy] PASSED [ 30%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[qodercli] PASSED [ 31%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[roo] PASSED [ 32%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[kiro-cli] PASSED [ 33%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[amp] PASSED [ 34%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[shai] PASSED [ 35%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[agy] PASSED [ 36%]
tests/test_ai_skills.py::TestInstallAiSkills::test_skills_install_for_all_agents[bob] PASSED [ 37%]
tests/test_ai_skills.py::TestCommandCoexistence::test_existing_commands_preserved_claude PASSED [ 38%]
tests/test_ai_skills.py::TestCommandCoexistence::test_existing_commands_preserved_gemini PASSED [ 39%]
tests/test_ai_skills.py::TestCommandCoexistence::test_commands_dir_not_removed PASSED [ 40%]
tests/test_ai_skills.py::TestCommandCoexistence::test_no_commands_dir_no_error PASSED [ 41%]
tests/test_ai_skills.py::TestNewProjectCommandSkip::test_new_project_commands_removed_after_skills_succeed PASSED [ 42%]
tests/test_ai_skills.py::TestNewProjectCommandSkip::test_commands_preserved_when_skills_fail PASSED [ 43%]
tests/test_ai_skills.py::TestNewProjectCommandSkip::test_here_mode_commands_preserved PASSED [ 44%]
tests/test_ai_skills.py::TestSkipIfExists::test_existing_skill_not_overwritten PASSED [ 45%]
tests/test_ai_skills.py::TestSkipIfExists::test_fresh_install_writes_all_skills PASSED [ 46%]
tests/test_ai_skills.py::TestSkillDescriptions::test_all_known_commands_have_descriptions PASSED [ 47%]
tests/test_ai_skills.py::TestCliValidation::test_ai_skills_without_ai_fails PASSED [ 48%]
tests/test_ai_skills.py::TestCliValidation::test_ai_skills_without_ai_shows_usage PASSED [ 49%]
tests/test_ai_skills.py::TestCliValidation::test_ai_skills_flag_appears_in_help PASSED [ 50%]
tests/test_ai_skills.py::TestCliValidation::test_kiro_alias_normalized_to_kiro_cli PASSED [ 50%]
tests/test_ai_skills.py::TestCliValidation::test_q_removed_from_agent_config PASSED [ 51%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_ai_flag_consuming_here_flag PASSED [ 52%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_ai_flag_consuming_ai_skills_flag PASSED [ 53%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_error_message_provides_hint PASSED [ 54%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_error_message_lists_available_agents PASSED [ 55%]
tests/test_ai_skills.py::TestParameterOrderingIssue::test_ai_commands_dir_consuming_flag PASSED [ 56%]
tests/test_extensions.py::TestExtensionManifest::test_valid_manifest PASSED [ 57%]
tests/test_extensions.py::TestExtensionManifest::test_missing_required_field PASSED [ 58%]
tests/test_extensions.py::TestExtensionManifest::test_invalid_extension_id PASSED [ 59%]
tests/test_extensions.py::TestExtensionManifest::test_invalid_version PASSED [ 60%]
tests/test_extensions.py::TestExtensionManifest::test_invalid_command_name PASSED [ 61%]
tests/test_extensions.py::TestExtensionManifest::test_no_commands PASSED [ 62%]
tests/test_extensions.py::TestExtensionManifest::test_manifest_hash PASSED [ 63%]
tests/test_extensions.py::TestExtensionRegistry::test_empty_registry PASSED [ 64%]
tests/test_extensions.py::TestExtensionRegistry::test_add_extension PASSED [ 65%]
tests/test_extensions.py::TestExtensionRegistry::test_remove_extension PASSED [ 66%]
tests/test_extensions.py::TestExtensionRegistry::test_registry_persistence PASSED [ 67%]
tests/test_extensions.py::TestExtensionManager::test_check_compatibility_valid PASSED [ 68%]
tests/test_extensions.py::TestExtensionManager::test_check_compatibility_invalid PASSED [ 69%]
tests/test_extensions.py::TestExtensionManager::test_install_from_directory PASSED [ 70%]
tests/test_extensions.py::TestExtensionManager::test_install_duplicate PASSED [ 71%]
tests/test_extensions.py::TestExtensionManager::test_remove_extension PASSED [ 72%]
tests/test_extensions.py::TestExtensionManager::test_remove_nonexistent PASSED [ 73%]
tests/test_extensions.py::TestExtensionManager::test_list_installed PASSED [ 74%]
tests/test_extensions.py::TestExtensionManager::test_config_backup_on_remove PASSED [ 75%]
tests/test_extensions.py::TestCommandRegistrar::test_kiro_cli_agent_config_present PASSED [ 75%]
tests/test_extensions.py::TestCommandRegistrar::test_parse_frontmatter_valid PASSED [ 76%]
tests/test_extensions.py::TestCommandRegistrar::test_parse_frontmatter_no_frontmatter PASSED [ 77%]
tests/test_extensions.py::TestCommandRegistrar::test_render_frontmatter PASSED [ 78%]
tests/test_extensions.py::TestCommandRegistrar::test_register_commands_for_claude PASSED [ 79%]
tests/test_extensions.py::TestCommandRegistrar::test_command_with_aliases PASSED [ 80%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_simple PASSED [ 81%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_range PASSED [ 82%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_complex PASSED [ 83%]
tests/test_extensions.py::TestVersionSatisfies::test_version_satisfies_invalid PASSED [ 84%]
tests/test_extensions.py::TestIntegration::test_full_install_and_remove_workflow PASSED [ 85%]
tests/test_extensions.py::TestIntegration::test_multiple_extensions PASSED [ 86%]
tests/test_extensions.py::TestExtensionCatalog::test_catalog_initialization PASSED [ 87%]
tests/test_extensions.py::TestExtensionCatalog::test_cache_directory_creation PASSED [ 88%]
tests/test_extensions.py::TestExtensionCatalog::test_cache_expiration PASSED [ 89%]
tests/test_extensions.py::TestExtensionCatalog::test_search_all_extensions PASSED [ 90%]
tests/test_extensions.py::TestExtensionCatalog::test_search_by_query PASSED [ 91%]
tests/test_extensions.py::TestExtensionCatalog::test_search_by_tag PASSED [ 92%]
tests/test_extensions.py::TestExtensionCatalog::test_search_verified_only PASSED [ 93%]
tests/test_extensions.py::TestExtensionCatalog::test_get_extension_info PASSED [ 94%]
tests/test_extensions.py::TestExtensionCatalog::test_clear_cache PASSED [ 95%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_runtime_config_uses_kiro_cli_and_removes_q PASSED [ 96%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_extension_registrar_uses_kiro_cli_and_removes_q PASSED [ 97%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_release_agent_lists_include_kiro_cli_and_exclude_q PASSED [ 98%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_release_output_targets_kiro_prompt_dir PASSED [ 99%]
tests/test_agent_config_consistency.py::TestAgentConfigConsistency::test_agent_context_scripts_use_kiro_cli PASSED [100%]
============================= 104 passed in 0.70s ============================== ✅ (104 passed)
AI Disclosure
Used ChatGPT/Codex as an AI coding assistant for implementing and reviewing the edits.