# Memmesh Test Integration

> Verify a MemMesh integration produced by memmesh-integrate. Runs in the same workspace: executes the repo's native test suite, then exercises a real end-to-end smoke flow (observe → search → optionally predict) against the user's live key or local engine, and produces a pass/fail scorecard. TRIGGER when: the user has just run memmesh-integrate and says "verify", "test the integration", or when a `.memmesh-integration/` directory exists and tests have not been run yet. DO NOT TRIGGER for: first-time wiring (use memmesh-integrate) or vendor migration (use memmesh-migrate).

- Skill: `thinkfleetai/memmesh-test-integration` (Agent Skill)
- Install (CLI): `npx skillmds@latest add thinkfleetai/memmesh-test-integration`
- Raw SKILL.md: https://api.skillmd.com/api/skills/thinkfleetai/memmesh-test-integration/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- License: Apache-2.0
- Author: thinkfleetai (https://skillmd.com/u/thinkfleetai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/thinkfleetai/memmesh-test-integration

---


# memmesh-test-integration

Prove the integration actually works — not just that it typechecks.

## Preconditions

- A `.memmesh-integration/` directory exists (else tell the user to run
  `memmesh-integrate` first).
- Credentials: Hosted ⇒ `MEMMESH_API_KEY` set; Local ⇒ `memmesh doctor` passes.

## Steps

1. **Static gate.** Typecheck / lint / build. Any failure ⇒ stop, report.
2. **Native suite.** Run the repo's own tests **twice** — once with
   `MEMMESH_ENABLED` unset (must be byte-for-byte the original behavior) and
   once set. Both must pass.
3. **Real E2E smoke** against the live engine (not a mock):
   - `observe` a known fact for a throwaway `userId` (e.g. `smoke-<runid>`).
   - `search` for it; assert the fact comes back.
   - `buildContext` for the subject; assert the fact appears in the bundle.
   - If prediction was wired: call `predict` / `predictTarget` and assert you get
     *either* a calibrated probability *or* an honest abstention — both are a
     pass; a crash or an uncalibrated 1.0/0.0 with no evidence is a fail.
   - Clean up: `memory_delete` (or `compliance.hardDeleteSubject`) the throwaway
     subject so the smoke run leaves no residue.
4. **Scorecard.** Write `.memmesh-integration/scorecard.md`:

   | Check | Result |
   |---|---|
   | Typecheck / build | ✅ / ❌ |
   | Native tests (flag off) | ✅ / ❌ |
   | Native tests (flag on) | ✅ / ❌ |
   | E2E observe→search | ✅ / ❌ |
   | E2E buildContext | ✅ / ❌ |
   | E2E predict (calibrated OR abstained) | ✅ / ❌ / n/a |
   | Smoke cleanup | ✅ / ❌ |

## Definition of done

Every applicable row green, throwaway data removed, and a one-paragraph verdict:
ship / needs-work, with the failing checks called out.

