Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"name": "agent-kit",
"displayName": "Agent Kit",
"author": "agent-kit-startup",
"author": {
"name": "agent-kit-startup"
},
"description": "HITL framework for AI-assisted IDEs — plan, handoff, staging→prod, memory loop, anti-slop. Stack skills via agent-kit add.",
"keywords": [
"agents",
Expand All @@ -12,7 +14,14 @@
"multi-ide",
"anti-slop"
],
"license": "MIT",
"version": "4.8.9",
"repository": "https://github.com/agent-kit-startup/agent-kit"
"license": "PolyForm-Noncommercial-1.0.0",
"version": "5.0.0",
"homepage": "https://github.com/agent-kit-startup/agent-kit",
"repository": "https://github.com/agent-kit-startup/agent-kit",
"logo": "dashboard/logo.svg",
"rules": ".cursor/rules",
"skills": ".cursor/skills/core",
"agents": ".cursor/agents",
"commands": ".cursor/commands",
"hooks": ".cursor/hooks.json"
}
2 changes: 1 addition & 1 deletion .cursor/agent-kit.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"version": "4.8.9",
"version": "5.0.0",
"protected": [
".cursor/HANDOFF.md",
".cursor/agents/test-suites.md",
Expand Down
24 changes: 22 additions & 2 deletions .cursor/commands/agent-kit-onboard.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: agent-kit-onboard
description: Prepare and validate repository readiness before /start-project.
---

# Command: /agent-kit-onboard

## Goal
Expand Down Expand Up @@ -96,10 +101,25 @@ When complete:
3. Verify each remaining non-essential check is ready or explicitly deferred with both a reason and recovery action. Reject deferral for any check with `status: "blocked"`.
4. If verification fails, leave `onboarding.status: "in_progress"` and `onboarded` unchanged, then resume the first unresolved essential check derived from `pillars[].checks[]`.
5. Only after verification passes, merge `onboarding.status: "completed"` and `onboarded: true` into `.cursor/context/config.json` without removing other keys.
6. End with exactly one call to action:
6. **Domain-skills scaffold (optional HITL).** Before showing the final finish-setup CTA, run the scaffold gate:
- Read `.cursor/context/personalization.json` and `.cursor/agent-kit.config.json` to reuse install-time evidence. Do not invent a second detector.
- Build a short proposal from the already-applied L2 skills and L1 packs in personalization, plus any project-owned domain skills implied by the profile but not yet installed.
- Ask one question using **Ask questions** with concrete options:

> "Essentials are ready. Before finish setup, scaffold domain skills from the detected profile?"

Options: `Scaffold domain skills` / `Defer (record reason)` / `Skip`

- **Fallback when Ask questions is unavailable:** present the same options as a numbered list, ask the user to reply with the number or the label, and note they can always **type their own answer** if none of the options fit (equivalent of the built-in "Other" choice).
- **Scaffold domain skills:** show the proposal list, then write any accepted project-owned skills under `.cursor/skills/domain/<skill-id>/SKILL.md` only when the path does not already exist. Update the **Relevant skills** section of `.cursor/project-context.md` (create the heading if missing) with installed and newly accepted skill ids plus evidence; also ensure those ids appear under `.cursor/agent-kit.json` `skills[]` when that manifest is the project's install index. Record `onboarding.domainSkills` in `.cursor/context/config.json` with `status: "applied"`, the list of accepted items, and `appliedAt`.
- **Defer:** ask for a short reason, then record `onboarding.domainSkills` with `status: "deferred"`, `reason`, and `recoveryCommand: "/agent-kit-onboard"`.
- **Skip:** record `onboarding.domainSkills` with `status: "skipped"`.
- Never overwrite an existing project-owned skill or file without a separate HITL confirmation. This closes the gap reported in public issue https://github.com/agent-kit-startup/agent-kit/issues/36 and the dogfood note `dogfood/cursor_onboard_should_scaffold_domain_skills_2026_08_01.md`.
- **Instruction-only surface:** this gate is chat/`/agent-kit-onboard` prose executed by the agent session. There is no separate CLI subcommand that scaffolds domain skills; intentionally document defer/skip when the operator declines. Project-owned skills under `.cursor/skills/domain/` are one-way (not contributeable via `guessRegistryPath` / registry paths `core` and `community` only).
7. End with exactly one call to action:
- `Next: /start-project` when the user wants to plan a deliverable.
- `Next: finish setup` when no deliverable should start now.

After essentials are ready, Mission Control is **optional** and **not** an essential readiness check. Consumer L0 installs the `/dashboard` command text but not `dashboard/**`. If the operator wants the panel, `agent-kit dashboard` serves it from the installed CLI (4.8.2 onward); on older pins point them to an agent-kit checkout that includes `dashboard/start.mjs` (loopback `http://127.0.0.1:3333`). Do not block `/start-project` on Mission Control. Do not ask about skins or external review before essentials (Hard Stop 1).
After essentials are ready, `/agent-kit-onboard` offers one optional HITL gate: a **domain-skills scaffold** derived from the install-time personalization/doctor evidence. This gate is not a readiness blocker; deferring or skipping it must still allow `/start-project` to proceed. Mission Control is also **optional** and **not** an essential readiness check. Consumer L0 installs the `/dashboard` command text but not `dashboard/**`. If the operator wants the panel, `agent-kit dashboard` serves it from the installed CLI (4.8.2 onward); on older pins point them to an agent-kit checkout that includes `dashboard/start.mjs` (loopback `http://127.0.0.1:3333`). Do not block `/start-project` on Mission Control or on the domain-skills scaffold. Do not ask about skins or external review before essentials (Hard Stop 1).

Agent Personas remain available through later personalization or settings. External review is offered only when a plan reaches exhaustion.
5 changes: 5 additions & 0 deletions .cursor/commands/archive-plan.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: archive-plan
description: Archive a parked plan: drop it from the HANDOFF parked list and move the file into .cursor/plans/archive/.
---

# Command: /archive-plan

## Goal
Expand Down
10 changes: 8 additions & 2 deletions .cursor/commands/backlog-add.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: backlog-add
description: Enqueue a new plan with to-dos under the HANDOFF Backlog without activating it.
---

# Command: /backlog-add

## Goal
Expand Down Expand Up @@ -47,6 +52,7 @@ Before enqueueing a new plan, **scan** these sources (read/skim; do not deep-div
| **Archived context** | Prior packs for same theme | `.cursor/context/archive/**` (if present; glob by topic) |
| **Decisions** | ADRs that constrain the goal | `.cursor/memory/decisions/`, `_index.md` Decisions table |
| **Memory** | Errors, audits, consolidations, review logs, plan-monitors, findings audits | `.cursor/memory/errors/`, `.cursor/memory/plan-monitor-*.md`, theme-matched `plan-review-*.md`, `_index.md` (Audits + Decisions) |
| **Unprocessed dogfood** | Factory/consumer inbox notes awaiting triage (not sessionStart-only) | `dogfood/README.md` or `.cursor/dogfood/README.md` under `##` or `### Unprocessed Files`; skim titles/summaries only. Missing/empty inbox → no findings. Labels: ignore (owned by open plan), error/include (kit gap), note (inbox evidence only). Never auto-analyze or memory WRITE (ADR `decisions/2026-08-11_dogfood-unprocessed-broad-intake-bucket.md`) |
| **Local docs** | SoT / inventories / getting-started that the goal touches | `docs/**`, especially files named in the payload or related SoT |
| **Working tree** | Uncommitted local work that would collide | `git status`, `git diff` (staged + unstaged); do not commit |
| **Recent commits** | What already shipped for this theme | `git log` (short, recent), related PR titles if available |
Expand All @@ -66,8 +72,8 @@ The actual scanning and triage is delegated to a **Task(explore) subagent** usin
1. **Fill the template** — set these parameters:
- **Repo:** `[absolute repo path]`
- **Command:** `/backlog-add`
- **Task description:** "Scan the 9 Broad Intake buckets (prepared repository, active session, plans, archived context, decisions, memory, local docs, working tree, recent commits, product version) and return a structured triage report with findings per bucket, each labeled ignore/error/include/note."
- **read_scope:** `[".cursor/agent-kit.config.json", ".cursor/context/readiness.json", ".cursor/HANDOFF.md", ".cursor/context/current/", ".cursor/plans/*.plan.md", ".cursor/context/archive/**", ".cursor/memory/decisions/", ".cursor/memory/errors/", ".cursor/memory/plan-monitor-*.md", ".cursor/memory/plan-review-*.md", ".cursor/memory/_index.md", "docs/**", "package.json", "CHANGELOG.md"]`
- **Task description:** "Scan the Broad Intake buckets listed in this command (prepared repository, active session, plans, archived context, decisions, memory, Unprocessed dogfood, local docs, working tree, recent commits, product version) and return a structured triage report with findings per bucket, each labeled ignore/error/include/note. For Unprocessed dogfood: skim `dogfood/README.md` or `.cursor/dogfood/README.md` `##` or `### Unprocessed Files` only; never auto-analyze."
- **read_scope:** `[".cursor/agent-kit.config.json", ".cursor/context/readiness.json", ".cursor/HANDOFF.md", ".cursor/context/current/", ".cursor/plans/*.plan.md", ".cursor/context/archive/**", ".cursor/memory/decisions/", ".cursor/memory/errors/", ".cursor/memory/plan-monitor-*.md", ".cursor/memory/plan-review-*.md", ".cursor/memory/_index.md", "dogfood/README.md", ".cursor/dogfood/README.md", "docs/**", "package.json", "CHANGELOG.md"]`
- **worker_contract:** "structured triage report: list of findings per bucket with triage labels (ignore/error/include/note)"
- **max_ticks:** 2

Expand Down
5 changes: 5 additions & 0 deletions .cursor/commands/backlog-cancel.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: backlog-cancel
description: Soft-cancel a backlog plan: mark open to-dos cancelled and drop it from the Backlog, keeping the file.
---

# Command: /backlog-cancel

## Goal
Expand Down
5 changes: 5 additions & 0 deletions .cursor/commands/backlog-delete.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: backlog-delete
description: Remove a plan from the HANDOFF Backlog and move the file to .cursor/plans/archive/.
---

# Command: /backlog-delete

## Goal
Expand Down
5 changes: 5 additions & 0 deletions .cursor/commands/backlog-edit.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: backlog-edit
description: Edit an existing plan body or frontmatter to-dos without activating it.
---

# Command: /backlog-edit

## Goal
Expand Down
5 changes: 5 additions & 0 deletions .cursor/commands/context-status.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: context-status
description: Show the current context state: active task, handoff, archived tasks.
---

# Command: /context-status

## Goal
Expand Down
14 changes: 10 additions & 4 deletions .cursor/commands/continue-plan.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: continue-plan
description: Resume a plan from the last handoff and execute only the next unit.
---

# Command: /continue-plan

## Goal
Expand All @@ -14,10 +19,11 @@ Resume a plan from the last handoff. Confirm the next unit, then execute **only
1. **Read `.cursor/HANDOFF.md` first.** No handoff → say so and suggest `/start-project`. Do not invent progress.
2. **Pre-flight (API/usage limit):** if `- **Mode:**`, `- **Gaps:**`, or `- **Instruction for the next agent:**` still records an API/usage limit hard stop from a prior tick, **do not** mark a to-do `in_progress`, dispatch a Task, or edit product files until the operator confirms recovery (switch from Auto to a named model such as Claude Opus, Sonnet 4.6, or Composer 2.5 Fast; and/or wait for quota reset). Surface recovery via **Ask questions** when available. **Fallback after Auto→Grok:** Grok 4.5 and Auto often lack Ask questions (see `.cursor/memory/decisions/2026-07-20_ask-questions-model-availability.md`); use the numbered-list chat fallback (reply by number or label; typed answer = "Other"). Pre-flight is HANDOFF check plus operator model choice only; the kit has no remaining-quota API. Align with `context-guardian` Quota-blocked sessions and `/run-plan` Read-state pre-flight.
3. **Audits pre-flight** (config `externalPlanReview.preflight`: `off` | `warn` | `block`; missing = `off`): before the next-unit confirmation Ask, check owed / untriaged audits for the chosen plan slug (Field Report owed, untriaged `plan-monitor-*.md`, open cadence WARNING). `off`: skip. `warn`: surface once, then continue. `block`: arm via `.cursor/scripts/plan-external-review.sh` (prefer `--autonomous` when `mode: autonomous`, else `--paste-only`) or stop until the operator defers; never steal `/git-prod`. Distinct from the advisory pre-unit monitor skim below (ADR `2026-07-27_audits-autonomous-plan-review-contract.md`).
4. **Apply Agent Persona chrome.** Read `.cursor/context/config.json` for `agentPersona.modes.continue-plan` (fallback to legacy `workspaceSkin`, then "autopilot"). Use the corresponding persona's `chatHints` from `registry/personas/core/` for tone and confirmations.
5. **Confirm the next unit with Ask questions** before editing. Use concrete option labels (see What to Do step 5). Do not accept a typed "yes" as the gate.
6. **One unit per chat** (phase or one heavy to-do) unless the user explicitly ran `/run-plan`.
7. **Do not start a competing plan.** New goal requires `/start-project`, which parks the active plan and proceeds to create a new one.
4. **Unprocessed dogfood preflight (advisory):** before the next-unit confirmation Ask, skim `##` or `### Unprocessed Files` in factory `dogfood/README.md` or consumer `.cursor/dogfood/README.md`. Non-empty: mention count and top titles once with standard triage labels (`ignore` / `error` / `include` / `note`). Empty or missing inbox: silent OK. Do **not** force analysis, memory WRITE, or Field Reports; do **not** block resume solely because the inbox is non-empty. Runs regardless of `externalPlanReview.preflight`. sessionStart inbox tip stays complementary (ADR `2026-08-11_dogfood-unprocessed-broad-intake-bucket.md`).
5. **Apply Agent Persona chrome.** Read `.cursor/context/config.json` for `agentPersona.modes.continue-plan` (fallback to legacy `workspaceSkin`, then "autopilot"). Use the corresponding persona's `chatHints` from `registry/personas/core/` for tone and confirmations.
6. **Confirm the next unit with Ask questions** before editing. Use concrete option labels (see What to Do step 5). Do not accept a typed "yes" as the gate.
7. **One unit per chat** (phase or one heavy to-do) unless the user explicitly ran `/run-plan`.
8. **Do not start a competing plan.** New goal requires `/start-project`, which parks the active plan and proceeds to create a new one.

## What to Do

Expand Down
10 changes: 8 additions & 2 deletions .cursor/commands/cursor-update-awareness.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: cursor-update-awareness
description: Run an opt-in advisory check for Cursor product updates against the native audit inventory.
---

# Command: /cursor-update-awareness

## Goal
Expand All @@ -23,11 +28,12 @@ Run an **opt-in advisory** check for Cursor product updates (changelog + `docs/c
## Check-only (CLI)

```bash
agent-kit cursor-awareness --check [--json] [--respect-prefs] [--stamp] [--offline]
agent-kit cursor-awareness --check [--cwd <path>] [--json] [--respect-prefs] [--stamp] [--offline]
```

- Fetches `https://cursor.com/changelog` (override via `cursorUpdateCheck.changelogUrl`) unless `--offline`.
- Diffs against `docs/cursor-native-audit.md` (open Action items, refresh staleness) and validates `docs/cursor-3-features.md` presence.
- Resolves `docs/cursor-native-audit.md` by walking up from `--cwd` (default `process.cwd()`); errors with a `--cwd` hint when no ancestor has the inventory.
- Diffs against that inventory (open Action items, refresh staleness) and validates `docs/cursor-3-features.md` under the same root.
- Prefs in `.cursor/context/config.json` under `cursorUpdateCheck` (`enabled` default `false`, `intervalDays`, `lastSeenCursorVersion`). Distinct from kit `updateCheck`.
- `applyRecommended` and `fieldReportRecommended` are always `false`.

Expand Down
Loading