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
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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 |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Please address Copilot feedback and resolve conflicts and pull in upstream/main |
| # -- Imports (alphabetical) ------------------------------------------- | ||
| from .agy import AgyIntegration | ||
| from .alquimia_ai import AlquimiaAIIntegration | ||
| from .amp import AmpIntegration |
|
Please address Copilot feedback |
|
Please address Copilot feedback |
|
Please address Copilot feedback and test & lint errors |
| from pathlib import Path | ||
| from typing import Any | ||
|
|
||
| import yaml |
| def _render_skill( | ||
| self, template_name: str, frontmatter: dict[str, Any], body: str | ||
| ) -> str: | ||
| """Render a processed command template as an Alquimia skill.""" | ||
| skill_name = f"speckit-{template_name.replace('.', '-')}" | ||
| description = frontmatter.get( | ||
| "description", | ||
| f"Spec-kit workflow command: {template_name}", | ||
| ) | ||
| skill_frontmatter = self._build_skill_fm( | ||
| skill_name, description, f"templates/commands/{template_name}.md" | ||
| ) | ||
| frontmatter_text = yaml.safe_dump(skill_frontmatter, sort_keys=False).strip() | ||
| return f"---\n{frontmatter_text}\n---\n\n{body.strip()}\n" | ||
|
|
||
| def _build_skill_fm(self, name: str, description: str, source: str) -> dict: | ||
| from specify_cli.agents import CommandRegistrar | ||
|
|
||
| return CommandRegistrar.build_skill_frontmatter( | ||
| self.key, name, description, source | ||
| ) | ||
|
|
| "version": "1.0.0", | ||
| "description": "Alquimia AI CLI integration", | ||
| "author": "spec-kit-core", | ||
| "repository": "https://github.com/github/spec-kit", | ||
| "tags": ["alquimia"] |
| assert b"<!-- SPECKIT" not in remaining | ||
| assert b"# ALQUIMIA.md" in remaining | ||
|
|
||
| def test_ai_flag_auto_promotes_and_enables_skills(self, tmp_path): |
|
Please address Copilot feedback. If not applicable please explain why. And please resolve test & lint errors |
Description
Add Alquimia AI integration https://www.alquimia.ai/
Testing
uv run specify --helpuv sync && uv run pytestAI Disclosure