From cellm
Execute a real convergence loop — test the complete end-to-end pipeline with real data, identify failures, fix them, and repeat until total convergence. Concludes with full typecheck + root tests + Oracle tests. Use when: 'convergir', 'convergence loop', 'testar pipeline completo', 'e2e convergence', 'rodar tudo ate passar', 'loop de qualidade', 'validar tudo'. Also use proactively after large refactors, multi-file changes, or spec implementations that touch Oracle server code.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cellm:convergirThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Real convergence loop — not a single test run, but an iterative cycle that finds failures, fixes them, and proves the system works end-to-end.
Real convergence loop — not a single test run, but an iterative cycle that finds failures, fixes them, and proves the system works end-to-end.
A single bun test pass proves nothing about system health after significant changes. Real convergence means every layer — validation, types, unit tests, Oracle tests, AND live E2E with real data — passes simultaneously with zero workarounds. This skill enforces that discipline.
Execute these phases in order. Each phase must reach zero errors before advancing. If a phase fails, diagnose and fix before retrying — never skip ahead.
Check working tree status:
git status --porcelain
Working tree must be clean or have only expected staged changes. Merge conflicts, detached HEAD, or untracked sensitive files (.env, credentials) are blockers — resolve before proceeding.
Then check Oracle health:
curl -sf http://localhost:31415/api/health | head -1
| Oracle Status | Action |
|---|---|
| Online (200) | Continue |
| Offline | Start with cd oracle && CELLM_DEV_MODE=true bun run dev &, wait 10s, re-check |
| Won't start | Report to user — infrastructure blocker |
Dev server awareness: The Oracle dev server dies during pre-commit hooks when package.json changes (Nitro hot-reload restarts the process). If convergence runs after a version bump, expect to restart the server between phases. This is normal, not a bug.
bun run validate
This runs scripts/validate.sh — checks directory structure, schemas, frontmatter, unique IDs, boundary enforcement, and cross-references. Fix every reported error before proceeding.
cd oracle && bun run validate:schema
Confirms DB schema definitions match runtime expectations. Schema drift here means silent data corruption downstream.
bun run lint:md
Validates markdown formatting across cellm-core/, docs/, oracle/, cellm-plugin/. This aligns with the pre-commit pipeline — skipping it here means the commit will fail later anyway.
Run the Nuxt typecheck from the Oracle directory:
cd oracle && npx nuxt typecheck
Zero type errors required. Do not suppress with @ts-ignore or any casts — fix the actual types. If a type error reveals a real bug, that is convergence working.
bun test
Runs validation + integration test suites at root level. These verify cellm-core structure, schemas, and cross-references.
cd oracle && bun run test
Runs the full Oracle vitest suite (unit + nuxt projects). This is the heaviest gate — covers server routes, MCP tools, services, composables, and packages.
Flaky test policy: Integration tests in tests/integration/pattern-stress.test.ts (L1: Sync & Ingest) require a live Oracle server with stable timing. Timeouts (5s) on these tests are a known flaky — they do NOT block convergence if:
Error: Test timed out or ECONNREFUSEDIf a non-timeout failure appears in these tests, it IS a real regression — investigate.
Static tests miss integration gaps between components. This phase tests the live system with real data.
Only run when Oracle is online. Skip with [~] E2E skipped — Oracle offline if it is not.
Pick ONE of these smoke tests based on what changed:
| Changed Area | Smoke Test |
|---|---|
| changelog/* | curl -X POST localhost:31415/api/changelog/submit -H 'Content-Type: application/json' -d '{"project":"test-convergence","version":"v0.0.1","entries":[{"commitHash":"conv1234","category":"fixed","title":"convergence smoke test"}]}' — expect {"ingested":1} |
| spec-service/* | curl -X POST localhost:31415/api/spec/nodes -H 'Content-Type: application/json' -d '{"project":"test-convergence","nodeType":"check","title":"convergence smoke","body":{"context":"test","problem":"test","principle":"test"}}' — expect 200 with node ID |
| MCP tools | Verify tool count: curl -s localhost:31415/api/health — check healthy=true |
| General / unknown | Run the health check only |
After E2E: Clean up test data if created (delete test-convergence project entries).
After all phases pass with zero errors:
| Phase | Result | Details |
|---|---|---|
| Pre-Flight | [+] / [-] | git clean, Oracle status |
| Structural Validation | [+] / [-] | N checks, N errors |
| Oracle Schema | [+] / [-] | - |
| Markdown Lint | [+] / [-] | N errors |
| TypeCheck | [+] / [-] | N errors |
| Root Tests | [+] / [-] | N passed, N failed |
| Oracle Tests | [+] / [-] | N passed, N failed (N flaky skipped) |
| E2E Smoke | [+] / [-] / [~] | endpoint, result |
In these cases, report the situation clearly and ask the user.
The goal is not green checkmarks — it is a system that actually works.
npx claudepluginhub murillodutt/cellm --plugin cellmProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.