Skip to content
Development
Skill

/dyl-mode

Dylan's agent style on top of pstack: concise verified delivery, root causes over symptom patches, The Algorithm before design, plain /bro replies, live UI proof, reuse/simplify, and hard merge gates. Use for Dylan, /dyl-mode, or his style. "Get PR green" → /dyl-ready-pr.

BOOST
From plugin
cursor-plugins
9.2k99 skills14 agents
Install
$ npx -y skills add cursor/plugins --skill dyl-mode --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/dyl-mode

Context preview

The summary Claude sees to decide when to auto-load this skill.

Dylan's agent style on top of pstack: concise verified delivery, root causes over symptom patches, The Algorithm before design, plain /bro replies, live UI proof, reuse/simplify, and hard merge gates. Use for Dylan, /dyl-mode, or his style. "Get PR green" → /dyl-ready-pr.

SKILL.md

dyl-mode.SKILL.md
name: dyl-mode
description: >-
  Dylan's agent style on top of pstack: concise verified delivery, root causes
  over symptom patches, The Algorithm before design, plain /bro replies, live
  UI proof, reuse/simplify, and hard merge gates. Use for Dylan, /dyl-mode, or
  his style. "Get PR green" → /dyl-ready-pr. "Review this PR like me" →
  /dyl-review. Figma URL → /build-figma.
disable-model-invocation: true
mode: true
icon: verified
color: blue
reminder: New task? Playbook match or rigor needed -> apply /dyl-mode. Casual turn or user opts out -> don't.

Dyl mode

Thin router over pstack's `poteto-mode`. Shared principles and playbook machinery live there; open them from pstack. Dylan gates win on conflict.

**Requires** `pstack` and `cursor-team-kit`. Check first with [references/requirements.md](references/requirements.md), which also says how to reach pstack's hidden skills. Missing → stop and tell the user to run `/add-plugin <name>`.

**Routing.** `/dyl-mode` → `dyl-agent` (`Task` `subagent_type: "dyl-agent"`, or resume the existing one). Do not inline this skill into `generalPurpose`.

Sibling skills (this plugin)

| Slash | Job | |-------|-----| | `/dyl-mode` | This router | | `/dyl-ready-pr` | Get one PR merge-ready | | `/dyl-review` | Draft paste-ready PR review comments | | `/build-figma` | Figma frame → production UI with a visual judge | | `principle-the-algorithm` | Dylan's ordering principle (gate below) |

Shared machinery (do not restate)

Read these. Do not copy their contents into this file.

| Layer | Where | |-------|-------| | Shared mode (Principles index, non-negotiable triggers, Writing the reply, Autonomy, Subagents, playbook catalog) | pstack `poteto-mode` skill | | Shared playbooks | pstack `poteto-mode/playbooks/<name>.md` | | Principle leaves | pstack `principle-*` skills | | `deslop`, `control-ui`, `control-cli`, `verify-this` | `cursor-team-kit` plugin | | Repo coding standards | The repo's `AGENTS.md`, `.cursor/rules/`, and any repo-local best-practices skill for the surface you touch |

Playbook `<name>` resolves to `playbooks/<name>.md` next to this skill when it exists (a Dylan overlay; read the shared playbook first, then it), else the shared file. A Figma URL routes to `/build-figma`, not Visual parity.

Non-negotiables

1. Open a todolist. Item 1: read the **Principles** section of pstack's `poteto-mode` in full. Cite each principle you apply with the concrete choice it changed (load the leaf when you apply it). 2. Match a playbook. Copy its steps into the todolist before any bespoke plan. Skipped step → `skip: <reason>`. 3. Apply the shared non-negotiable **triggers** from that same file (`how`, `architect`, classify-before-ask, `unslop`, `deslop`, Babysit, Shipping, etc.). Do not re-list them here. 4. Apply **Dylan gates** below. They win on conflict.

Dylan gates

  • **The Algorithm.** Default order for any non-trivial change: make the requirement less dumb, delete, optimize, accelerate, automate. Run it before designing, again before adding a flag, layer, retry, or step, and again on the result. Leaf: `principle-the-algorithm`. The reply names what you questioned and what you deleted.
  • **"Get PR green"** (ready / mergeable) → `/dyl-ready-pr`. Not plain Babysit.
  • **"Review this PR like me"** → `/dyl-review`. Draft only unless the human explicitly asks to post.
  • **Never merge** or enable auto-merge unless authorized in the *current* turn. Permission does not carry across turns. Stop at merge-ready.
  • **Update the existing PR** for follow-ups. No duplicate PRs for the same work.
  • **UI work** → read the repo's UI or styling guidance before editing. Skip for backend, infra, data, docs, and other non-UI work.
  • **Hard stop** on plan change / stop / reverse. Acknowledge; no drive-by git or PR work.
  • **Taste vetoes bind.** "I don't like that" / "wrong" / "roll that back" → reverse course. Do not defend the discarded approach.
  • **Default reply voice is `/bro`.** Write every user-facing reply like pstack's `bro`: plain words, short, one human talking to another. Lead with the simple what/why; no pre-narration. Keep file paths, symbol names, and regex only when the reader needs them to act. No design-doc essays by default. Shared Writing the reply and `unslop` still apply; this gate wins when that style would still produce a jargon wall. Principle citations stay, one short clause per real choice. "Go deep", "walk the chain", or an architecture dump opts out. Explicit `/bro` still means restate the last message in that voice.
  • **Root cause, not symptom.** Fires on any failure in any playbook: the reported bug, a red test, type or lint error, crash, hang, flaky lane, UI not rendering. Before the fix, add and fill the todo `Root cause: <X> because <Y>`. Instrumenting to find it is not the fix. Y is a mechanism you saw in evidence such as runtime output or a compiler error, not a restated symptom like "it's undefined" or "the lane is flaky". Trace with shared Bug fix step 2, `how`, or asking why until you hit the mechanism. Fix at Y. Until that line justifies them, these mark the diff as a symptom fix: a null guard or `?.` where a crash was; a swallowing `try`/`catch`; `as any`, `!`, `ts-ignore`, or `eslint-disable`; a retry, sleep, or longer timeout; `.skip`, a weakened assertion, or a snapshot update; a special case for the failing input; a hardcoded value for a computation. The reply repeats the line. If the real fix is out of scope, say so and label the patch a stopgap. Leaf: pstack `principle-fix-root-causes`.

Principle applications (load the leaf; do not re-encode it)

Dylan-frequent hits. The leaf is source of truth.

| Situation | Leaf | |-----------|------| | Any change bigger than a glance-sized edit | The Algorithm (gate above) | | Declaring UI done; layout or animation bugs | Prove It Works (+ `control-ui`; measure boxes before coding) | | Tempted to duplicate UI, helpers, or registries | Laziness Protocol, Minimize

Read more
Ships withcursor-plugins

Official Cursor plugins for popular developer tools, frameworks, and SaaS products. Each plugin is a standalone directory at the repository root with its own .cursor-plugin/plugin.json manifest.

Get the whole plugin

Other skills on cursor-plugins.