Skip to main content
ClaudeWave
Skill4.7k repo starsupdated 3d ago

write-issue

Write and file Linear issues (bugs and feature requests) the Agenta way. Use when the user asks to create, file, or draft a Linear or GitHub issue, write a bug report or feature request, or turn a problem into a tracked issue. Covers the title format, reproduction-first structure, when to use a todo list, and the team/project/label/priority/state conventions, plus filing it through the Linear MCP so the linked GitHub issue is auto-created and the PR links back.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Agenta-AI/agenta /tmp/write-issue && cp -r /tmp/write-issue/.agents/skills/write-issue ~/.claude/skills/write-issue
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Write Issues

Write issues a teammate can act on without asking you follow-up questions. Lead with what
the reader needs to reproduce or understand the request, not with your analysis.

Show a draft first and let the user react before you create anything in Linear.

## 1. Title

Prefix the title with the type in parentheses, the same way the repo prefixes PRs.

- `(bug)` for something broken.
- `(feat)` for a new capability or improvement.
- Other types as needed: `(chore)`, `(docs)`.

State the symptom or the request in plain words. Keep it short.

- Good: `(bug) Feedback sent via the API can't be filtered in observability`
- Good: `(feat) Filter evaluation results by metric value`
- Bad: `(bug) Annotation filter options array empty due to thin refs` (that is the root cause, not the symptom)
- Bad: `Observability issue` (vague)

## 2. Body — bugs

Do not open with a "Context" heading. Start with the reproduction, in the user's voice:
when I do this, I expect that, but instead this happens. Or: this code is supposed to do
X, but it does Y. Keep the words simple.

Then give the concrete information a teammate needs to debug it, when you have it:

- Exact steps to reproduce, numbered.
- Requests and responses (the call you made and what came back).
- Errors, console output, or relevant log lines.
- Screenshots or screen recordings.
- Where it reproduces (local, preview, Railway, cloud) and the version if known.

That is the whole job: make it reproducible. Include real payloads over descriptions of
them.

## 3. Do not write the root cause

The issue tracks the problem, not the investigation. Do not add a "root cause" or "why
this happens" section. That analysis belongs in the PR that fixes it (see the
`write-pr-description` skill). Keep the issue about observable behavior and the
information needed to debug it.

If you already know the cause, it still does not go in the issue body. Put it in the PR.

## 4. Body — feature requests

Lead with the problem or the goal from the user's point of view: what they are trying to
do and why it is hard today. Then describe the behavior they want. Skip implementation
design unless the user asked for it.

## 5. Todo list

Add a checkbox list only when delivery is split across stacked PRs or has several ordered
steps. One line per step, written as an outcome.

```
- [ ] Fix the filter so it reads the evaluator's real feedback metrics.
- [ ] Fix how the frontend reads the feedback type so the nested schema is understood.
```

If a single PR closes the whole issue, skip the todo list. Do not pad an issue with
checkboxes for its own sake.

## 6. Linear fields

File issues on the **Agenta** team (key `AGE`). Pick the fields deliberately.

**Project** (set one):
- **Bugs** — the default home for bug reports.
- **Quality of life improvements** — small improvements that do not belong to a feature project.
- The active feature project when the work is part of one (for example Annotation Queues,
  Core Loop Improvements, Reliability Availability Scalability & Performance, Documentation,
  New integrations for observability, DevSecOps & DevEx). List active projects with
  `mcp__linear-server__list_projects` and match by area.

**Labels** (combine a type label with the relevant area labels):
- Type: `Bug Report`, `Feature Request`, `Question`, `Chore`, `refactoring`, `tech-debt`.
  Use `unconfirmed bug` or `reproduction-needed` when you could not reproduce it yet.
- Area: `frontend`, `Backend`, `SDK`, `API`, `observability`, `Tracing`, `Workflows`,
  `evaluation`, `human evaluation`, `playground`, `prompt management`, `Services`,
  `database`, `infrastructure`, `integration`, `security`, `analytics`.
- UX: `UX`, `ux bug`, `dev experience`.
- Visibility: `Public` marks an issue mirrored to the public GitHub repo. This is the label
  the GitHub sync watches, so set it when you want the linked GitHub issue created (see
  section 7). Use `Core Team` / `Internal Team` for internal-only issues.

**Priority** (`0` None, `1` Urgent, `2` High, `3` Medium, `4` Low):
- `1` Urgent: data loss, outage, or drop-everything.
- `2` High: important and should land soon.
- `3` Medium: the default for a normal bug.
- `4` Low / `0` None: minor or nice-to-have.

**State** flow: `Todo` → `In Progress` → `In Review` → `In QA` → `Done`. Use `Backlog` for
later, `Canceled` / `Duplicate` as needed. New issues start in `Todo`; move to `In Progress`
once work has started.

## 7. Filing it and linking the PR

Create with `mcp__linear-server__save_issue` (no `id` field creates a new issue). Pass
`team`, `title`, `description` (Markdown, literal newlines), `project`, `labels`,
`priority`. Link related issues with `relatedTo`, and attach the PR with `links`
(`[{url, title}]`).

The workspace runs a Linear ↔ GitHub sync that creates a linked GitHub issue when the
`Public` label is set. After creating the Linear issue, find the auto-created GitHub issue
(`gh issue list --repo Agenta-AI/agenta --search "<keywords>"`, allow a few seconds for the
sync), then link the PR to it by adding `Closes #<n>` (or `Refs #<n>` when the PR is only
part of the issue) to the PR body. The sync then moves the Linear issue as the PR opens and
merges.

To move the issue yourself, call `save_issue` again with the issue `id` and `state: "In Progress"`.

## 8. Checklist before you create

- Title prefixed with `(bug)` / `(feat)` and states the symptom or request, not the cause.
- Bug opens with reproduction in plain words, then steps + real requests/responses/logs.
- No root-cause section.
- Todo list only if the work is stacked or multi-step.
- Team, project, labels, priority set. `Public` added if it should sync to GitHub.
- After creating: GitHub issue found, PR links to it, Linear state set as the user asked.
add-announcementSkill

Helps add announcement cards to the sidebar banner system. Use when adding changelog entries, feature announcements, updates, or promotional banners to the Agenta sidebar. Handles both simple changelog entries and complex custom banners.

add-harnessSkill

Playbook for adding a new coding-agent harness to Agenta (Codex, Hermes, Gemini, OpenCode, ...). Use when starting, planning, or reviewing a new-harness project. Covers the readiness audit of prior art, the spike-first milestone plan, the full integration-surface checklist, the per-harness variance axes to probe, and the process/communication contract with Mahmoud. Living document: every harness project appends its lessons to resources/LESSONS.md.

agent-release-gateSkill

>-

agenta-package-practicesSkill

Where to put frontend code (package vs app layer) and how to use the @agenta/* packages. Use when authoring or moving code in web/packages, choosing between @agenta/ui, @agenta/entities, @agenta/entity-ui, @agenta/shared, @agenta/playground, using molecules, loadable/runnable bridges, the EntityPicker, or writing package unit tests.

create-changelog-announcementSkill

Use this skill to create and publish changelog announcements for new features, improvements, or bug fixes. This skill handles the complete workflow - creating detailed changelog documentation pages, adding sidebar announcement cards, and ensuring everything follows project standards. Use when the user mentions adding changelog entries, documenting new features, creating release notes, or announcing product updates.

gitbutler-stacksSkill

Hard-won GitButler mechanics for multi-lane work in this repo — committing to a specific lane in a stack, spreading a pile of edits back across an existing stack, ordering a stack and setting PR bases, and recovering from a scrambled workspace. Use when working with stacked branches, when `but rub`/`but absorb`/`but commit --only` mis-routes a change, when a stack collapses or a commit lands on the wrong lane, or when a hunk gets dropped. Not needed for ordinary single-lane work.

implement-featureSkill

Drive a researched and planned feature to a landed, tested change. Use after plan-feature has produced a docs/design/<project>/ workspace and the user says "implement it", "build the plan", "run the plan", or "let's ship this". Orchestrates refresh-plan, implement, review, a debug-local-deployment loop, and a test loop across the daytona / local-pi / claude x SDK / UI matrix, then documentation and a GitButler stacked branch. The orchestrator stays in the loop and spins narrow subagents for each phase.

mobile-app-structureSkill

Feature-folder layout, states/ convention, and data-flow rules for the Agenta mobile app (web/mobile). Use when creating or moving files under web/mobile, deciding where a component lives, adding a new feature or screen, or wiring data into mobile components.