ADLC
Integrations

Cursor

Native ADLC integration for Cursor: marketplace plugin with sessionStart context, preToolUse rails, packaged prosecutor agents + MCP wrapper (channel 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). MCP is wrapper landed / channel unverified until an installed-Cursor Roots proof is recorded. 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.
  • preToolUse dispatcher — 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 proxymcp.jsonbin/adlc-mcp-wrapper.mjsadlc mcp-server (adlc_gate / adlc_prosecute). Requires adlc on PATH.
  • Prosecutor agentsagents/prosecutor-* with readonly: 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

  1. In Cursor: Settings → Plugins → Add marketplace and paste https://github.com/voodootikigod/adlc (marketplace adlc-plugins, plugin ADLC for Cursor / adlc-cursor).
  2. Install the plugin.
  3. Run /adlc-init, or:
npm install -g @adlc/cli
adlc init --harness cursor

Do not require npx @adlc/cursor for normal users. Do not commit a generated .adlc/config.json into a repo that already freezes that path.

  1. Wire docs/ci/rails-guard.yml as a required check.

Scaffolder one-liner: npm package

npm install -g @adlc/cli
npx adlc-cursor .

Rail enforcement: two layers

  1. In-session (advisory). permission: "deny" is best-effort; failClosed: false.
  2. Commit-time (unbypassable). CI docs/ci/rails-guard.yml reads rails from the trusted base ref. Make it a required check.

Formal ADLC coverage

PhaseSurface 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 RailpreToolUse 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 Integrateadlc gate-manifest
P7 Distill/adlc-distill

Gaps

  • Live deny-proof — harness at scripts/cursor-deny-proof/; dated ADR result pending.
  • MCP channel unverified — Roots proxy shipped; installed-Cursor proof still required.
  • 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/.

On this page