Agent Skills › langfuse/langfuse › cursor-agents-workflow

cursor-agents-workflow

GitHub

规范 Cursor Agent 实现 Linear 任务的工作流,包括分支命名、PR 提交、机器人代码审查处理及人工交接。

.agents/skills/cursor-agents-workflow/SKILL.md langfuse/langfuse

Trigger Scenarios

Cursor Agent 实施 Linear 任务 需要提交可审查的 PR 处理 AI 审查评论 请求人类测试

Install

npx skills add langfuse/langfuse --skill cursor-agents-workflow -g -y
More Options

Non-standard path

npx skills add https://github.com/langfuse/langfuse/tree/main/.agents/skills/cursor-agents-workflow -g -y

Use without installing

npx skills use langfuse/langfuse@cursor-agents-workflow

指定 Agent (Claude Code)

npx skills add langfuse/langfuse --skill cursor-agents-workflow -a claude-code -g -y

安装 repo 全部 skill

npx skills add langfuse/langfuse --all -g -y

预览 repo 内 skill

npx skills add langfuse/langfuse --list

SKILL.md

Frontmatter
{
    "name": "cursor-agents-workflow",
    "description": "Human handoff, Linear branch names, reviewable (non-draft) PRs, the\n`cursor` GitHub label, Claude, Greptile, and Codex review comments,\npreview test steps, proof of work posted on the GitHub PR, and\nreview-doubt notes for Cursor agents. Use when a Cursor Cloud or\nCursor desktop agent implements a Linear issue, opens a GitHub PR,\nasks a human to test, posts screenshots or videos, or handles Claude,\nGreptile, or Codex code-review comments."
}

Cursor Agents Workflow

Use this when implementing Langfuse work as a Cursor agent. Keep humans in the loop with short, testable asks. Do not write long agent-only reports.

Branch names

Copy Linear's git branch name. Do not invent a cursor/ name.

  • Preferred source: Linear Copy git branch name, or the issue's gitBranchName read through the Linear MCP.
  • Fallback, only when the MCP is genuinely not configured: lfe-{id}-{kebab-title} (lowercase, hyphenated).
  • Keep a user/ prefix only when Linear's copied name already includes one.
  • Never use a cursor/ prefix, even if a Cursor Cloud prompt asks for one. Repo guidance wins.
  • Ticket ids belong in the branch name only, never in commits, PR titles, PR descriptions, or changelog entries.

Correct: lfe-12345-short-descriptive-title
Wrong: cursor/short-descriptive-title-8c78

Linear connection

Cursor desktop can authorize the Linear MCP interactively. Cursor Cloud cannot: mcp_auth is desktop-only, and the Cloud GitHub token is unrelated to Linear.

On Cloud, prove Linear with a real read. If the MCP is needsAuth or missing, use LINEAR_API_KEY (or LINEAR_TOKEN / LINEAR_API_TOKEN) via GraphQL or lf-context.sh. If that env is unset, say so and tell them to add LINEAR_API_KEY at https://cursor.com/dashboard/cloud-agents, then start a new run. Langfuse engineers: the write policy is linear-agent-writes.

If Linear is not reachable, say so in your handoff message and hand back the context that should have gone on the ticket. Do not skip it silently.

Pull requests

Open the GitHub PR as reviewable, not as a draft. Draft PRs hide the work from reviewers and skip Claude/Greptile review workflows. Use a draft only when a human asks for one.

After opening the PR, apply the GitHub cursor label. Use the PR label tool. Do not wait for a human to add it, and do not substitute a codex or other agent label. A same-repo workflow also applies cursor when the author is cursor[bot], the branch starts with cursor/, or the PR body contains the Cursor agent marker — still apply it yourself so the tag is present immediately.

Cursor Cloud PRs are opened as the Langfuse user who launched the agent. On a non-draft same-repo PR from a write-access user, github-actions posts @claude review automatically. Do not post that comment yourself on open. Do not post @claude review again after addressing comments unless a human asks for another pass.

Bot review comments

When Claude (Claude Code, claude[bot], or the security-review action), Greptile (greptile-apps[bot]), or Codex (chatgpt-codex-connector[bot]) leaves review comments on a PR you own:

  1. Keep each thread open. Do not reply in the thread.
  2. If the finding is right: apply the fix, then resolve the thread.
  3. If you are sure it should be skipped: tell the human in plain language what you skipped and why, invite them to doubt that call, then resolve the thread. Never skip quietly.

Do not leave those threads unresolved. Do not argue. Human reviewer comments are different: those may need a real reply and must stay open until a human says otherwise.

Human testing

Assume the human does not remember the ticket. Default message shape:

  1. TL;DR — one plain-language sentence.
  2. Test this — preview URL plus 2–5 exact clicks/expects.
  3. Data — the seed command, or "demo project is enough".
  4. Sandbox — how to hit the same path on the agent desktop (http://localhost:3000) if they are in the Cursor VM.

Use langfuse-previews for the URL and seed-test-data for the seed. Do not paste logs, file lists, or implementation narrative unless the human asks.

TL;DR: Empty observation costs now show a dash instead of $0.00.

Test this: https://pr-123.preview.langfuse.com/project/<id>/traces
1. Open any trace with a generation that has no cost.
2. Confirm the cost cell is "–", not "$0.00".

Data: demo project is enough.
Sandbox: same path on http://localhost:3000 after the cloud stack is up.

For user-visible behavior, say that proof is on the GitHub PR. Do not leave screenshots only in this chat. Docs-only changes can skip proof.

Proof of work on the PR

Cursor chat attachments are not enough. Reviewers look at GitHub, so post the screenshot, short video, or before/after on the GitHub PR.

After you have walkthrough artifacts:

  1. Embed them in the PR body when you create or update the PR.
  2. Repeat them in the last GitHub PR comment (same comment as "what to doubt"), but only when that comment will be attributed to Cursor.

Use HTML tags and absolute local paths. Do not commit artifacts to the repo. Claude Code and other tools that comment as the user still embed proof in the PR body; they skip only the last comment.

<img src="/opt/cursor/artifacts/cost_cell_dash.png" alt="Cost cell shows a dash" />
<video src="/opt/cursor/artifacts/cost_cell_dash.mp4" controls></video>

The PR tool uploads those paths and rewrites them to public URLs. Use width-only HTML if you need sizing; do not set a fixed height. Skip this for docs-only or non-visual changes.

What to doubt

Cursor only. Post this GitHub comment only when it will be attributed to Cursor, not to a human author. Claude Code and other tools that comment as the authenticated user must skip this section.

When the PR is ready for a human, post one last GitHub PR comment (not a changelog). Lead with proof when the change is user-visible, then name the risky or curious parts:

Proof of work
<img src="/opt/cursor/artifacts/cost_cell_dash.png" alt="Cost cell shows a dash" />

What to doubt in review
- I reused the existing cache key; check it cannot collide across projects.
- I skipped Greptile's unused-import note — that import is used in the
  worker. Tell me if that's wrong.

Two to five bullets. Include any bot findings you skipped. Trigger skepticism. Skip praise, file lists, and "LGTM".

Human asks

Prefer one or two actions per message. That cap is preferred, not hard. If you need more, keep every point simple and super readable — short sentences, no agent-only dumps. Sequence when you can.

Wrong: a wall of logs plus five mixed asks.
Right: a short TL;DR and one or two clear next steps. Extra steps can wait, or sit as equally simple bullets if they must ship together.

Version History

  • 5b59af4 Current 2026-09-23 09:06

    新增 Linear MCP 认证失败时的 API Key 配置指引;明确禁止在日志中打印 Linear 密钥;细化 Linear 工单更新与会话结果保留规则。

  • f6e56cb 2026-08-29 05:19

    新增在 PR 发布 Proof of Work(截图/视频)及限制 review-doubt 评论仅针对 Cursor 注释的规则。

  • f7e3c26 2026-08-20 17:47

Same Skill Collection

.agents/skills/add-model-price/SKILL.md
.agents/skills/agent-setup-maintenance/SKILL.md
.agents/skills/analyze-cloud-costs/SKILL.md
.agents/skills/backend-dev-guidelines/SKILL.md
.agents/skills/changelog-writing/SKILL.md
.agents/skills/clickhouse-best-practices/SKILL.md
.agents/skills/code-review/SKILL.md
.agents/skills/create-repo-agent/SKILL.md
.agents/skills/datadog-query-recipes/SKILL.md
.agents/skills/debug-issue-with-datadog/SKILL.md
.agents/skills/frontend-browser-review/SKILL.md
.agents/skills/frontend-large-feature-architecture/SKILL.md
.agents/skills/git-workflow/SKILL.md
.agents/skills/grill-me/SKILL.md
.agents/skills/housekeeping/SKILL.md
.agents/skills/incident-alert-tickets/SKILL.md
.agents/skills/infra-scaling/SKILL.md
.agents/skills/langfuse-codebase-navigator/SKILL.md
.agents/skills/langfuse-previews/SKILL.md
.agents/skills/linear-agent-writes/SKILL.md
.agents/skills/linear-bug-triage/SKILL.md
.agents/skills/linear-context-handover/SKILL.md
.agents/skills/pnpm-upgrade-package/SKILL.md
.agents/skills/posthog-instrumentation/SKILL.md
.agents/skills/react-component-cleaner/SKILL.md
.agents/skills/react-component-guidelines/SKILL.md
.agents/skills/refactor-react-effects/SKILL.md
.agents/skills/security-review/SKILL.md
.agents/skills/seed-test-data/SKILL.md
.agents/skills/sentry-instrumentation/SKILL.md
.agents/skills/skill-creator/SKILL.md
.agents/skills/turborepo/SKILL.md
.agents/skills/weekly-production-review/SKILL.md
web/.agents/skills/vercel-composition-patterns/SKILL.md
web/.agents/skills/vercel-react-best-practices/SKILL.md
.agents/skills/linear-work-rhythm/SKILL.md
.agents/skills/storybook/SKILL.md

Metadata

Files
0
Version
5b59af4
Hash
bc298509
Indexed
2026-08-20 17:47

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-25 22:09
浙ICP备14020137号-1