intersystems-community/iris-agentic-dev/iris-devtester
Claude Code and agent skill by intersystems-community/iris-agentic-dev
- community
Checking that the SKILL.md file is still in the repository.
Use when writing tests that need a live IRIS container, using IRISContainer factory methods, debugging connection failures, or understanding the password reset story. Covers iris-devtester 1.18.0+ patterns: CPF-first password strategy, factory methods, gotchas, and the full connection flow.
Install
npx vskill@latest install intersystems-community/iris-agentic-dev/iris-devtesterSKILL.md
iris-devtester — Container Testing Toolkit
PyPI: pip install iris-devtester>=1.18.0 Repo: github.com/intersystems-community/iris-devtester
HARD GATE — Common Mistakes
- DO NOT call
unexpire_all_passwords()proactively inget_connection()— 1.18.0 is CPF-first; docker exec only fires as fallback - DO NOT connect as
localhoston macOS — use127.0.0.1(IPv6 resolution bug) - DO NOT use
IRISContainer(); iris.start()— alwayswith IRISContainer.community() as iris: - DO NOT hardcode ports — use
iris.get_mapped_port(1972) - DO NOT bind-mount host directories on Linux without fixing uid 51773 — see
iris-linux-dockerskill
Factory Methods
Password Strategy (1.18.0+) — CPF-First
How it works:
start()injectsCPFPreset.SECURE_DEFAULTSviaISC_CPF_MERGE_FILE— setsChangePassword=0for_SYSTEMandSuperUserbefore IRIS opens connections. Nodocker execneeded.get_connection()triesiris.connect()directly (optimistic).- If that fails with a password-change error AND
_password_handledis False → callsunexpire_all_passwords()once (docker exec fallback) → retries. _password_handled = Trueprevents double-remediation.
What this means:
- Happy path: zero
docker execcalls. Works in restricted CI environments. - Fallback path: one
docker execonattach()containers or existing containers.
Manual escape hatches:
Connection Flow
Diagnostic Tools (1.16.0+)
ConnectionDiagnosticError wraps SQLCODE -30 (table not found) and -23 (CTE scoping) with schema visibility context and suggested fix. Raised automatically — no call-site changes needed.
Public Exports
pytest Fixtures
CLI (idt)
Gotchas
Ryuk kills containers on process exit — use idt container up + IRISContainer.attach() for persistent containers. See containers/AGENTS.md.
No web server on enterprise irishealth — irishealth:2026.2.0AI.* and iris:XXXX (enterprise) have WebServer=0. Port 1972 only. A webgateway CANNOT substitute — it proxies CSP protocol to the superserver, not Atelier REST. Use irishealth-community or iris-community for VSCode/Atelier access. See irishealth-container skill.
`%AI.*` classes in read-only irislib — cannot transplant to community image. Two-container split is correct.
DinD port mapping — get_mapped_port(52773) raises ConnectionError inside CI containers. Fixed in 1.15.1: falls back to internal port. Set TC_HOST=<ip> to override.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/skills/iris-devtester/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/intersystems-community/iris-agentic-dev/iris-devtester)