ace
v0.13.1459AI Connect Engine — orchestrates the ACE lifecycle from idea through app building, Connect setup, LLO management, and closeout
By Jonathan JacksonLicense: MIT1 GitHub starsUpdated last week
Directory evidence
- Runtimes
- Claude Code
- Parsed components
- 56 skill or MCP entries
- Source updated
- Sep 16, 2026
- Manifest status
- Canonical path parsed
The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology →
Install ace for Claude Code
claude plugin marketplace add IchenDEV/agent-plugin-mkt
claude plugin marketplace update agent-plugin-marketplace
claude plugin install ace@agent-plugin-marketplacePaste and run these commands in a terminal with Claude Code. They add and refresh the PluginsMP catalog, then install this plugin.
The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.
Get the source manually
git clone https://github.com/dimagi-internal/aceClone the source repository, then follow its setup instructions to add the plugin to a compatible client. The repository root is the plugin root.
Plugin files
├── .claude-plugin/plugin.json├── skills/add-org-member/SKILL.md├── skills/agent-turn-review/SKILL.md├── skills/app-connect-coverage/SKILL.md├── skills/app-deploy/SKILL.md├── skills/app-hq-settings/SKILL.md├── skills/app-media-coverage/SKILL.md├── skills/app-release/SKILL.md├── skills/app-release-eval/SKILL.md├── skills/app-release-qa/SKILL.md├── skills/app-screenshot-capture/SKILL.md├── skills/app-test-cases/SKILL.md├── skills/app-ux-eval/SKILL.md├── skills/build-memo/SKILL.md├── skills/build-targeting-model/SKILL.md├── skills/common-screenshot-capture/SKILL.md├── skills/connect-apk-upgrade/SKILL.md├── skills/connect-baseline-screenshots/SKILL.md├── skills/connect-opp-setup/SKILL.md├── skills/connect-opp-setup-eval/SKILL.md├── skills/connect-program-setup/SKILL.md├── skills/connect-program-setup-eval/SKILL.md├── skills/cycle-grade/SKILL.md├── skills/cycle-grade-eval/SKILL.md├── skills/decisions-render/SKILL.md├── skills/decisions-sync/SKILL.md├── skills/defend-a-figure/SKILL.md├── skills/demo-data-setup/SKILL.md├── skills/demo-data-setup-qa/SKILL.md├── skills/demo-fidelity-check/SKILL.md├── skills/demo-narrative/SKILL.md├── skills/detect-structure-drift/SKILL.md├── skills/email-communicator/SKILL.md├── skills/eval-calibration/SKILL.md├── skills/feedback-ledger/SKILL.md├── skills/flw-data-review/SKILL.md├── skills/flw-data-review-eval/SKILL.md├── skills/fork-run/SKILL.md├── skills/idea-to-pdd/SKILL.md├── skills/idea-to-pdd-eval/SKILL.md├── skills/idea-to-pdd-qa/SKILL.md├── skills/inbox-triage/SKILL.md├── skills/interview-cohort-create/SKILL.md├── skills/interview-domain-bootstrap/SKILL.md├── skills/interview-opp-verify/SKILL.md├── skills/learnings-summary/SKILL.md├── skills/learnings-summary-eval/SKILL.md├── skills/llo-feedback/SKILL.md├── skills/llo-invite/SKILL.md├── skills/llo-launch/SKILL.md├── skills/llo-launch-eval/SKILL.md└── .mcp.json
Included Skills50
Add a Dimagi teammate to a Connect workspace (organization) by email, so they can see the programs/opportunities ACE runs there. Thin wrapper over the `connect_add_org_member` atom: enforces a @dimagi.com guard, defaults the workspace to `ai-demo-space` and the email to the session's own git identity ("add me"), invites via Connect's membership form, and verifies by member-table read-back. Anyone running ACE can invoke it; ACE performs the add as its own org-admin identity.
ACE's pre-send review — ONE inline pass through §A–§F (canopy's fleet body, READ from disk, plus ACE's §F). Never dispatched as a Skill. Run before EVERY outbound reply / deliverable / PR / turn-closing report.
Verify every form in a Nova-built Learn or Deliver app has the right CommCare Connect markers, auto-fix via Nova edits, loop until clean.
Upload Nova-built Learn + Deliver apps to CommCare HQ as draft builds via /nova:upload_to_hq. Captures HQ app IDs and writes a deploy summary.
Apply the two HQ-layer standing-instruction settings Nova can't set at build time — camera-only photo capture (appearance="acquire" on Deliver image uploads) and grid menu display on every module — to the deployed draft apps, then resolve the matching Phase-3 residuals. Runs between app-deploy and app-release.
Attach images to the Nova-built Learn and Deliver apps from inputs/media/, built-in icons, and the Content Generator. Phase 3, before app-deploy.
Build and release the Learn + Deliver CommCare apps on CCHQ so Connect can read their form schema and surface deliver units.
Verify every Learn + Deliver build was actually released so Connect can read deliver units. Provisional rubric pending 3+ real releases.
Phase 3 § Step 2.8 — structural + install-time QA on the released Learn + Deliver CCZs. Downloads each CCZ via commcare_download_ccz, parses the zip + suite.xml + form XMLs, verifies form counts + Connect-marker presence match the Nova blueprint, then runs commcare-cli `validate` + `play` as install-time runtime gates, and compares each CCZ's minimum CommCare version against the APK Phase 6 will run. AVD-free, Connect-free — purely CCHQ-side. Halts loud on mismatch.
Run app smoke recipes against a local AVD and capture per-step screenshots for the training deck. Per-opp content only.
Bind each PDD user journey to the Nova-built app structure and emit a Maestro recipe per journey with real selectors. Use after Nova finishes building, before app-release.
Grade the FLW experience of the built apps via LLM-as-Judge over captured screenshots. Deep-only — runs from /ace:qa-deep.
Compose the run's build memo — the review artifact — from the Learn, Deliver and Phase 4 memo sections. Runs last in Phase 4.
Turn a targeting selection into a shareable Doc and a formula-driven Excel model. Use when the answer must leave the conversation.
Capture and publish common Connect platform screenshots for training deck common modules. Manual trigger only — not part of /ace:run.
Upgrade the pinned Connect/CommCare APK end to end — release check, calibrate, flip every pin, activate, verify, roll back. Use when a new APK becomes ACE's default.
Capture the per-Connect-version baseline of "how Connect works" screenshots reused across every training deck. Manual, cross-opp.
Create and fully configure a Connect Opportunity — opp shell, verification flags, payment units, ACE test-user pre-invite for emulator testing.
Grade Connect Opportunity configuration against the PDD — verification flags, payment units, deliver-unit wiring, active window. Sibling of connect-program-setup-eval; this rubric judges the opp-side that follows program creation.
Create or reuse a Connect Program for the opportunity, archetype-matched to the PDD. Captures program_id for downstream skills.
Grade Connect Program + Opportunity configuration against the PDD — reuse-vs-create, verification rules, delivery units, payment units.
Grade the closed ACE cycle end-to-end with concrete improvement recommendations for the next cycle.
Independently re-grade a closed cycle's cycle-grade output. Detects self-eval inflation, missing learnings, vague recommendations.
Render a per-run decisions.yaml into a prose Google Doc at one stable URL per run. Invoked at end of every phase; idempotent.
Sync human edits from the per-run decisions.gdoc back into decisions.yaml. Human-triggered via /ace:step decisions-sync; not part of the orchestrator's automatic phase loop.
Cross-check a targeting figure against outside data and write its defence. Use before a number reaches a funder or a published document.
Stand up the initial dataset + live labs dashboard for a standalone demo, parameterized on data source. Returns the realized ${var} map (par_url) that a DDD narrative's setup block consumes. Plan A implements the `denovo` provider; `clone` and `ace-run` are documented but land in Plan B / Phase 7 convergence.
Structural QA on the demo-data-setup handoff (realized.json + the source block). Binary pass/fail. Catches a dead/blank dashboard BEFORE demo-narrative authors scenes against it. Static-only, no LLM.
Clone-only QA gate. Confirms a cloned/profiled synthetic dataset reproduces the real source's statistical shape before it reaches a funder. Wraps the labs synthetic_fidelity_report atom. Binary pass/fail, no LLM.
Author a funder-tuned canopy DDD narrative (WhyBrief + UnifiedSpec) on top of a demo-data-setup realized map, with scenes that render the live labs dashboard (par_url). Validated by canopy's own scripts.ddd.validate — the authoritative gate. Hands off to the DDD loop.
Audit the ACE plugin's internal structure for drift between the three sources of truth — agent frontmatter, lib/artifact-manifest.ts, and agents/orchestrator-reference.md § State Schema. Reports unclaimed manifest producers, orphan SKILL.md directories, missing skill files, phase-vocab mismatches, and state-schema parity gaps.
Send/receive email via GOG CLI using the ACE Gmail account. Utility skill — other skills delegate here for any Gmail operation. Sends go ONLY through bin/ace-email (hook-enforced, approval-gated).
Methodology reference for calibrating ACE's per-skill -eval rubrics — ground-truth catalogues, variance protocol, detection-rate metric.
Capture an external reviewer's feedback verbatim, stamp every change made in response, and render the derived "where did my comment go?" view. Use when a domain expert or stakeholder reviews an ACE artifact (gdoc comments, an email of findings, a review meeting) and ACE is going to act on it — and again at the end of the next run, so the reviewer gets a DIFF instead of re-reviewing everything from scratch.
Analyze FLW submissions to identify quality issues, trends, and improvement opportunities. Recurring during active opp.
Grade an flw-data-review report — signal coverage, outlier rigor, recommendation actionability, evidence citation, trajectory awareness.
Fork an existing ACE run at a phase OR skill boundary via ace-web's POST /api/w/<workspace_slug>/opps/<slug>/fork endpoint. Copies upstream-of-fork artifacts into a new run and seeds the new working session with your reason; preserves the source run for diff/debug. Use to A/B test skill changes, or to re-run the tail of a phase, without overwriting a run.
Develop a Program Design Doc (PDD) for a Connect intervention from source material. Iterates a 6-question stress-test rubric until approved; check 6 (launch readiness) is a hard gate on the app-build and opportunity-creation parameters.
Independently grade a PDD against the source idea pack — re-runs the stress test from outside and cross-checks reviewer-comment fidelity.
Structural QA on the PDD artifact produced by idea-to-pdd. Binary pass/fail. Catches missing sections, malformed archetype declaration, etc. Static-only; no LLM. Gates idea-to-pdd-eval — eval is skipped if QA fails irrecoverably.
The email half of an ACE turn. Reads unread mail to [email protected], processes ONE thread at a time with strict per-sender isolation, routes each thread to the opp/run it belongs to, resolves the sender's tier (internal act vs external correspond vs unknown), proposes one action per thread, and only sends after human approval. Invoked as Step 3 of skills/turn — don't run it in isolation and forget the board drain.
Per-cohort launch automation for Connect Interviews. Takes a cohort YAML spec; produces linked-app copies, lookup-table rows, the Connect opportunity + payment unit, and per-cohort OCS bot routing. Implements the per_cohort section of docs/connect-interviews/checklist-schema.yaml.
One-time-per-project-space plumbing for Connect Interviews launches. Stands up the master + downstream HQ domains, the per-domain Connections / Data Forwarding / UCRs / Repeaters / Inbound APIs / Lookup tables, plus the OCS Dynamic Router Bot. Driven by a small domain.yaml spec. Manual fallback for the two not-yet-automated steps (conditional alert + custom user data field). Implements the per-domain section of docs/connect-interviews/checklist-schema.yaml.
Read-only verifier for a configured Connect Interviews opportunity. Walks docs/connect-interviews/checklist-schema.yaml, calls the read atoms, and grades each rule pass / fail / unverifiable. Cross-system consistency checks (e.g. OCS custom action target URL == HQ Inbound API URL) are included.
Synthesize learnings from a completed opportunity. Drafts a new PDD to seed the next cycle when iteration is warranted.
Independently grade the Phase 10 learnings-summary synthesis. Detects gaps in opp-lifecycle coverage, vague recommendations, and tone drift vs the cycle-grade.
Prompt LLOs for feedback on application, process, and next-step suggestions. Collect and document responses for closeout.
Email each PDD-named candidate LLO the public solicitation URL. PUBLISH-ONLY BY DEFAULT: a no-op unless the operator explicitly opts in (--invite-candidates / ACE_SOLICITATION_INVITE_CANDIDATES). Also a no-op when the PDD names no candidates.
Activate the opportunity for live use. Verifies UAT sign-offs and deep-QA verdicts, activates in Connect, notifies LLOs of go-live.
Grade an llo-launch activation against PDD launch preconditions — UAT sign-off, Connect activation, app-publish, go-live notify.
MCP servers6
- command
- npx
- args
- tsx ${CLAUDE_PLUGIN_ROOT}/mcp/connect-server.ts
- env.CLAUDE_PLUGIN_DATA
- ${CLAUDE_PLUGIN_DATA}
- env.CLAUDE_PLUGIN_ROOT_ECHO
- ${CLAUDE_PLUGIN_ROOT}
- command
- npx
- args
- tsx ${CLAUDE_PLUGIN_ROOT}/mcp/decisions-server.ts
- env.CLAUDE_PLUGIN_DATA
- ${CLAUDE_PLUGIN_DATA}
- env.CLAUDE_PLUGIN_ROOT_ECHO
- ${CLAUDE_PLUGIN_ROOT}
- command
- npx
- args
- tsx ${CLAUDE_PLUGIN_ROOT}/mcp/google-drive-server.ts
- env.CLAUDE_PLUGIN_DATA
- ${CLAUDE_PLUGIN_DATA}
- env.CLAUDE_PLUGIN_ROOT_ECHO
- ${CLAUDE_PLUGIN_ROOT}
- command
- npx
- args
- tsx ${CLAUDE_PLUGIN_ROOT}/mcp/mobile-server.ts
- env.CLAUDE_PLUGIN_DATA
- ${CLAUDE_PLUGIN_DATA}
- env.CLAUDE_PLUGIN_ROOT_ECHO
- ${CLAUDE_PLUGIN_ROOT}
- command
- npx
- args
- tsx ${CLAUDE_PLUGIN_ROOT}/mcp/ocs-server.ts
- env.CLAUDE_PLUGIN_DATA
- ${CLAUDE_PLUGIN_DATA}
- env.CLAUDE_PLUGIN_ROOT_ECHO
- ${CLAUDE_PLUGIN_ROOT}
- url
- https://labs.connect.dimagi.com/mcp/
MCP configuration uses runtime-provided plugin path placeholders such as ${PLUGIN_ROOT} or ${CLAUDE_PLUGIN_ROOT}. Review the manifest for the runtime-specific expansion rules.
Plugin manifests1
{
"name": "ace",
"version": "0.13.1459",
"description": "AI Connect Engine — orchestrates the ACE lifecycle from idea through app building, Connect setup, LLO management, and closeout",
"author": {
"name": "Jonathan Jackson",
"email": "[email protected]"
},
"repository": "https://github.com/dimagi-internal/ace",
"license": "MIT",
"keywords": [
"connect",
"commcare",
"orchestration",
"ace"
],
"mcpServers": {
"ace-gdrive": {
"command": "npx",
"args": [
"tsx",
"${CLAUDE_PLUGIN_ROOT}/mcp/google-drive-server.ts"
],
"env": {
"CLAUDE_PLUGIN_DATA": "${CLAUDE_PLUGIN_DATA}",
"CLAUDE_PLUGIN_ROOT_ECHO": "${CLAUDE_PLUGIN_ROOT}"
}
},
"ace-ocs": {
"command": "npx",
"args": [
"tsx",
"${CLAUDE_PLUGIN_ROOT}/mcp/ocs-server.ts"
],
"env": {
"CLAUDE_PLUGIN_DATA": "${CLAUDE_PLUGIN_DATA}",
"CLAUDE_PLUGIN_ROOT_ECHO": "${CLAUDE_PLUGIN_ROOT}"
}
},
"ace-connect": {
"command": "npx",
"args": [
"tsx",
"${CLAUDE_PLUGIN_ROOT}/mcp/connect-server.ts"
],
"env": {
"CLAUDE_PLUGIN_DATA": "${CLAUDE_PLUGIN_DATA}",
"CLAUDE_PLUGIN_ROOT_ECHO": "${CLAUDE_PLUGIN_ROOT}"
}
},
"ace-mobile": {
"command": "npx",
"args": [
"tsx",
"${CLAUDE_PLUGIN_ROOT}/mcp/mobile-server.ts"
],
"env": {
"CLAUDE_PLUGIN_DATA": "${CLAUDE_PLUGIN_DATA}",
"CLAUDE_PLUGIN_ROOT_ECHO": "${CLAUDE_PLUGIN_ROOT}"
}
},
"ace-decisions": {
"command": "npx",
"args": [
"tsx",
"${CLAUDE_PLUGIN_ROOT}/mcp/decisions-server.ts"
],
"env": {
"CLAUDE_PLUGIN_DATA": "${CLAUDE_PLUGIN_DATA}",
"CLAUDE_PLUGIN_ROOT_ECHO": "${CLAUDE_PLUGIN_ROOT}"
}
},
"connect-labs": {
"type": "http",
"url": "https://labs.connect.dimagi.com/mcp/",
"headersHelper": "${CLAUDE_PLUGIN_ROOT}/scripts/labs-auth-headers.mjs"
}
}
}For maintainers
If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.
[ace on Agent Plugins Marketplace](https://pluginsmp.com/plugins/ace)