Skip to content

Cursor setup produces a Lab that can't run intake; no supported way to bind a planning agent #388

Closed

Description

@DanielNetzer

Problem

A new user who picks Cursor during setup gets a Lab that can never start an Issue.

Reproduced on v0.4.2 against DanielNetzer/forgecell-trial:

  1. forgecell init --harness cursor in a fresh Forgecell home. Doctor reports Cursor ready and signed in, and the bootstrap proposal is saved with only harness: {binding: cursor}.
  2. forgecell init --approve <assay>: approved, with no warning.
  3. forgecell run 3: the Molecule blocks at intake with
    analysis failed: Cursor ticket analysis is unavailable: action-capable MCP/plugin isolation has not been verified; coding binding is preserved.

The Cursor adapter can't do read-only ticket analysis, by design. The documented fix is a per-role binding (harnesses.analysis: {binding: claude-code, ...}, docs/ticket-readiness.md). But no supported path creates one. lab/README.md says "Init never creates an override", the UI has no control for it, and the post-approval init --harness cursor refuses and says to declare harnesses.analysis first. The only way is editing the Formula YAML by hand.

Meanwhile docs/install.md (First run, step 3.2) tells users to "pick claude-code, codex or cursor", and the setup UI offers Cursor as a ready choice.

Change

  1. Bootstrap: when the chosen coding harness can't do analysis, propose a Formula that declares harnesses.analysis on a ready analysis-capable harness (claude-code or codex). If none is ready, refuse with the adapter's reason and the next step. Never save a Formula that can't run intake.
  2. Setup UI: on the Coding agent step, say Cursor codes only and needs a second agent for planning, and let the user pick that agent. The Formula review step shows both bindings.
  3. CLI: a supported way to add or change a role override, such as init --harness ID --role analysis|coding|meta, using the same reviewed-proposal flow as --model --role.
  4. Docs: in install.md step 3.2 and the README, say Cursor needs a planning agent.

Done when

  • A fresh Lab set up with Cursor, from the CLI or the UI, runs intake on Claude Code or Codex and coding on Cursor, end to end to a draft PR.
  • No supported setup path produces an approved Formula whose intake can't run.
  • Tests cover the bootstrap refusal and proposal, plus the new role flag.

Activity

  1. DanielNetzer commented on Nov 6, 2026

    @DanielNetzer
    OwnerAuthor

    Two more things from the v0.4.3 Cursor retest, where planning was bound to Claude Code by hand with harnesses.analysis:

    • init's summary is wrong once a planning binding exists. After init --lab approved a Formula with harnesses.analysis: claude-code, the summary still said "GitHub Issue workflow: unsupported". It judges only the default harness, not the per-role bindings, so it should report the workflow as supported when the analysis role is bound to a harness that can plan.
    • The plan view names the wrong agent. In a Codex Lab, the plan output still prints "Claude Code coding allowlist" (lab/internal/cli/cli.go:1381-1383). The label should name the bound coding harness, or say nothing for harnesses that have no allowlist.

    The Cursor coding failure from the same run is filed separately as #391.

  2. DanielNetzer commented on Nov 8, 2026

    @DanielNetzer
    OwnerAuthor

    Split into three slices, in order: 413 (CLI role override), 414 (bootstrap pairing + per-role doctor/plan wording + docs), 415 (setup UI). This Issue closes when all three merge.

    Verified Nov 8 on v0.4.7, with hand-added overrides: Codex plans + Cursor codes (forgecell-trial#8), Codex plans + Claude Code codes (forgecell-trial#7), Claude Code plans + Cursor codes (forgecell-trial#5).

  3. DanielNetzer commented on Nov 8, 2026

    @DanielNetzer
    OwnerAuthor

    Done across #413 (#416), #414 (#417) and #415 (#419): a Cursor setup from the CLI or the UI now declares a planning harness (Claude Code, then Codex, or the one you pick), refuses when none is ready, and init --harness ID --role ROLE changes a role later. Ships in v0.4.8.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions