From fb20b5fb5bd0abb772ce78e8f579f812f6ea95cc Mon Sep 17 00:00:00 2001 From: jawwad-ali Date: Wed, 22 Jul 2026 21:05:57 +0500 Subject: [PATCH 1/2] fix(integrations): declare PiIntegration multi_install_safe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PiIntegration writes only to its isolated, static root .pi/prompts, disjoint from every other integration, yet never declared multi_install_safe — so it inherited the IntegrationBase default False, leaving `specify integration status` in a permanent unsafe-multi-install ERROR state when pi is co-installed alongside another agent. Add `multi_install_safe = True`, mirroring the isolated MarkdownIntegration cohort (qwen, shai, qodercli) and the kiro-cli #3471 fix. The parametrized registry isolation contracts auto-include pi and pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 (1M context) --- src/specify_cli/integrations/pi/__init__.py | 1 + tests/integrations/test_integration_pi.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/specify_cli/integrations/pi/__init__.py b/src/specify_cli/integrations/pi/__init__.py index ceff628bdb..a43ee0c75f 100644 --- a/src/specify_cli/integrations/pi/__init__.py +++ b/src/specify_cli/integrations/pi/__init__.py @@ -18,3 +18,4 @@ class PiIntegration(MarkdownIntegration): "args": "$ARGUMENTS", "extension": ".md", } + multi_install_safe = True diff --git a/tests/integrations/test_integration_pi.py b/tests/integrations/test_integration_pi.py index 5dde4a4294..620dd1f598 100644 --- a/tests/integrations/test_integration_pi.py +++ b/tests/integrations/test_integration_pi.py @@ -1,5 +1,7 @@ """Tests for PiIntegration.""" +from specify_cli.integrations import get_integration + from .test_integration_base_markdown import MarkdownIntegrationTests @@ -8,3 +10,9 @@ class TestPiIntegration(MarkdownIntegrationTests): FOLDER = ".pi/" COMMANDS_SUBDIR = "prompts" REGISTRAR_DIR = ".pi/prompts" + + def test_multi_install_safe(self): + # Pi writes only to its isolated, static root .pi/prompts, disjoint from + # every other integration, so it must be co-install safe (mirrors + # qwen/shai/qodercli and the kiro-cli #3471 precedent). + assert get_integration(self.KEY).multi_install_safe is True From b958aba75786804c7ab0e8b771c932c7884ceb45 Mon Sep 17 00:00:00 2001 From: jawwad-ali Date: Thu, 23 Jul 2026 00:27:33 +0500 Subject: [PATCH 2/2] docs(integrations): list pi in the multi-install-safe reference table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Declaring PiIntegration multi_install_safe means the reference table in docs/reference/integrations.md (which states it lists all currently declared multi-install-safe integrations) should include it. Add the alphabetized pi row with its .pi/prompts isolation path. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/reference/integrations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/integrations.md b/docs/reference/integrations.md index 662c0b5e5c..986e46ceac 100644 --- a/docs/reference/integrations.md +++ b/docs/reference/integrations.md @@ -276,6 +276,7 @@ The currently declared multi-install safe integrations are: | `grok` | `.grok/skills` | | `junie` | `.junie/commands`, `.junie/AGENTS.md` | | `kilocode` | `.kilocode/workflows`, `.kilocode/rules/specify-rules.md` | +| `pi` | `.pi/prompts` | | `qodercli` | `.qoder/commands`, `QODER.md` | | `qwen` | `.qwen/commands`, `QWEN.md` | | `shai` | `.shai/commands`, `SHAI.md` |