Cursor
Native ADLC integration for Cursor: marketplace plugin with sessionStart context, preToolUse rails, packaged prosecutor agents + MCP one-root channel (rebind unverified), /adlc-* commands, and CI as the backstop.
ADLC in Cursor
Wire the Agentic Development Lifecycle into Cursor using its
native plugin surfaces: hooks, rules, skills, commands, agents, and MCP. The
integration ships as plugins/adlc-cursor with a Cursor marketplace manifest
(.cursor-plugin/) plus an npm scaffolder kept as a legacy/dev fallback.
Status
Marketplace plugin shipped (hooks/commands/skills/rules). The MCP one-root
channel is proven; rebind and live multi-root refusal remain unverified.
Prosecutor agents are packaged-but-unverified until AC10 fan-out proof.
A live deny-proof harness lives under scripts/cursor-deny-proof/ (result
pending maintainer run).
What you get
sessionStart— ticket/rails context injection (best-effort) + session id env.preToolUsedispatcher — rails first; Task spawn allowlist during P5.afterFileEdit/beforeShellExecution— observational / advisory only.preCompact+subagentStart/subagentStop— compaction reminder + P5 defense-in-depth.stop/beforeSubmitPrompt— on by default.- MCP Roots proxy —
mcp.jsonasks Cursor to expand${CURSOR_PLUGIN_ROOT}and launch the bundled wrapper, which then runsadlc mcp-server(adlc_gate/adlc_prosecute) after Roots resolution. Cursor Desktop 3.20.10 live proof confirms expansion inargsandcwd, startup without plugin-cachenode_modulesor a consumer shim, and aroots/listresponse. The post-fix run bound, exposedadlc_gateandadlc_prosecute, and returnedok/exitCode: 0foradlc_gate gate-manifest show. The decoder accepts bothfile://and bare absolute Root paths. It requires a global@adlc/cliinstallation resolvable by Cursor's Node/npm environment, without launching a Windows.cmdshim. - Prosecutor agents —
agents/prosecutor-*withreadonly: true; prefer Task fan-out. - Command palette —
/adlc-*including one-flow/adlc-init.
The buildgate is advisory, disabled by default (ADLC_BUILD_GATE_ENFORCEMENT=1)
and has NO unbypassable backstop.
Install
Preferred: marketplace plugin
- In Cursor: Settings → Plugins → Add marketplace and paste
https://github.com/voodootikigod/adlc(marketplaceadlc-plugins, plugin ADLC for Cursor /adlc-cursor). - Install the plugin.
- Run
/adlc-init, or:
npm install -g @adlc/cli
adlc init --harness cursorDo not require npx @adlc/cursor for normal users. Do not commit a
generated .adlc/config.json into a repo that already freezes that path.
- Wire
docs/ci/rails-guard.ymlas a required check.
Scaffolder one-liner: npm package
npm install -g @adlc/cli
npx @adlc/cursor .An existing .adlc/config.json is never rewritten; if it is not a JSON object
(empty, malformed, or an array), the scaffolder reports it as unreadable and
exits 1 instead of counting it as present.
Rail enforcement: two layers
- In-session (advisory).
permission: "deny"is best-effort;failClosed: false. - Commit-time (unbypassable). CI
docs/ci/rails-guard.ymlreads rails from the trusted base ref. Make it a required check.
Formal ADLC coverage
| Phase | Surface in Cursor |
|---|---|
| P0 Triage | /adlc-ticket authors a ticket into .adlc/tickets.json |
| P1 Interrogate | /adlc-spec · /adlc-approve-spec |
| P2 Decompose | /adlc-decompose |
| P3 Rail | preToolUse dispatcher + CI rails-guard |
| P4 Build | /adlc-verify-build |
| P5 Prosecute | /adlc-prosecute + packaged agents (Task fan-out preferred; sequential is degraded fallback with weaker independence) + adversarial-review --providers |
| P6 Integrate | adlc gate-manifest |
| P7 Distill | /adlc-distill |
Gaps
- Live deny-proof — harness at
scripts/cursor-deny-proof/; dated ADR result pending. - MCP rebind and live ambiguity unverified — expansion, bundle boot,
one-root binding, and both MCP tools are proven.
roots/list_changedrebind and live multi-root refusal remain unverified. - Prosecutor agents packaged-but-unverified — agents-backed claim waits on fan-out proof. Sequential same-context remains a degraded fallback with weaker independence.
- buildgate has no unbypassable backstop.
- Marketplace publish — human submit; see publish checklist in
docs/integrations/cursor.md. Do not fabricate a live listing URL. - Shell writes are advisory-only.
Go deeper
Design rationale: ADR 0006.
Source: plugins/adlc-cursor/.
Codex
Install ADLC as a native Codex plugin with skills, lifecycle hooks, MCP gate tools, and project-scoped agents.
opencode
Native ADLC integration for the opencode terminal agent: an enforce-by-default rails-guard hook, nine lifecycle commands, native adlc_gate/adlc_prosecute tools, and a deterministic P5 prosecution loop (5 lenses + verifier) plus a prosecutor meta-agent.