feat: Add Alquimia AI integration - #2734
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new built-in Alquimia AI integration to Spec Kit, enabling projects to install and use Alquimia’s skills-based command layout alongside existing integrations.
Changes:
- Introduces
AlquimiaAIIntegration(skills layout, context file, skill post-processing for Alquimia-specific frontmatter and argument hints). - Registers the new integration and adds it to the built-in integration catalog.
- Adds a comprehensive integration test suite and updates the
speckitworkflow compatibility hints to includealquimia.
Show a summary per file
| File | Description |
|---|---|
| workflows/speckit/workflow.yml | Adds alquimia to the workflow’s advisory integration compatibility list. |
| tests/integrations/test_integration_alquimia.py | New test suite covering registration, setup outputs, context-file behavior (incl. BOM), and skill post-processing behavior. |
| src/specify_cli/integrations/alquimia_ai/init.py | Implements the Alquimia skills integration and skill file post-processing logic. |
| src/specify_cli/integrations/init.py | Imports and registers the new built-in integration. |
| integrations/catalog.json | Adds the new integration entry to the built-in catalog. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 5/5 changed files
- Comments generated: 4
mnriem
left a comment
There was a problem hiding this comment.
Please address Copilot feedback. If not applicable, please explain why
PR ready for review :) |
|
Please address Copilot feedback |
|
Please address Copilot feedback |
|
Please address Copilot feedback and resolve conflicts and pull in upstream/main |
|
Please address Copilot feedback |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…equirment to support workflows
40b9515 to
80a1429
Compare
There was a problem hiding this comment.
Review details
Comments suppressed due to low confidence (3)
src/specify_cli/integrations/alquimia/init.py:46
SkillsIntegration.setup()builds SKILL.md content directly and never calls this override; repository search finds_render_skill()used only by its dedicated test._build_skill_fm(),Any, anddump_frontmatterare therefore also dead production code and can drift from the actual generation path. Remove these helpers and update the test to exercisesetup()output instead.
def _render_skill(
self, template_name: str, frontmatter: dict[str, Any], body: str
) -> str:
tests/integrations/test_integration_alquimia.py:247
- This test still does not make any converter fail or patch
install_skills; it only runs the same successful init path covered above. Its name/docstring therefore claim coverage that the assertions do not provide. Either inject the stated failure and verify fallback behavior, or rename/remove this duplicate success-path test.
def test_alquimia_init_remains_usable_when_converter_fails(self, tmp_path):
"""Alquimia init should succeed even without install_skills."""
src/specify_cli/integrations/alquimia/init.py:108
- This line-oriented insertion can corrupt valid YAML when a preset or extension supplies a multiline description.
dump_frontmatter()may serialize that value as a quoted/folded multiline scalar; insertingargument-hintimmediately after thedescription:line places the new key inside that scalar.CommandRegistrar.apply_argument_hint()explicitly mutates the frontmatter dict before serialization to avoid this case (src/specify_cli/agents.py:446-453). Please mutate and reserialize the frontmatter (or add the default hint before its initial serialization) instead of splicing text.
out.append(f'argument-hint: "{escaped}"{eol}')
- Files reviewed: 11/11 changed files
- Comments generated: 0 new
- Review effort level: Medium
|
Thank you! |
Description
Add Alquimia AI integration https://www.alquimia.ai/
Testing
uv run specify --helpuv sync && uv run pytestAI Disclosure
All commits until 80a1429 where made by hand, then I introduced claude with Sonnet 5 to help me out with syncing and addressing copilot's code review