@sentry/junior-linear 0.29.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/junior-linear",
3
- "version": "0.29.0",
3
+ "version": "0.30.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -31,39 +31,56 @@ Load references conditionally based on the request:
31
31
  - If the request refers to an existing Linear item indirectly, inspect the current thread context for the previously mentioned issue key or URL before asking the user to restate it.
32
32
  - Ask one concise follow-up only when a write is blocked after considering both explicit user input and any configured defaults, such as multiple plausible teams, no clear target issue, or no valid team for a new issue.
33
33
 
34
- 2. Use the active Linear MCP tools:
34
+ 2. Discover and prepare MCP tools:
35
35
 
36
36
  - `loadSkill` returns `available_tools` for this skill, including the exact `tool_name` values and input schemas exposed in this turn.
37
37
  - Call those exact tool names directly. Use `searchTools` only if you need to rediscover or filter the active Linear tools later in the turn.
38
38
  - Prefer a short read/search step before mutating when you need to confirm the existing issue, team, project, or workflow state.
39
- - For create/update operations, classify the work as a `bug`, `feature`, or `task` and shape the title/body accordingly.
40
- - For issue creation, ground the ticket in the actual engineering problem:
41
- - use a short descriptive title for bugs, short imperative title for tasks and features
42
- - summarize the problem and impact; include expected outcome only when the thread states one
43
- - mention who raised the issue when clear from the thread
44
- - attach screenshots from the thread as image links when present
45
- - preserve relevant URLs inline (Sentry, GitHub, docs, reproduction links) — do not dump a link list
46
- - prefer flat bullet lists over headed sections for simple issues
47
- - translate Slack-specific phrasing into product or engineering language
48
- - remove channel names, slash commands, and session chatter unless the user explicitly wants them preserved
49
- - When setting optional fields, stay literal:
50
- - use the team's actual workflow states instead of assuming generic names like `Todo` or `In Progress`
51
- - use only Linear's standard priority levels: `low`, `medium`, `high`, `urgent`
52
- - set project, labels, cycle, estimate, or assignee only when the user asked for them or the thread makes them clear
39
+
40
+ 3. Draft issue content (create or substantial rewrite):
41
+
42
+ Classify the work as `bug`, `feature`, or `task`. Shape the title and body per [references/issue-writing.md](references/issue-writing.md); calibrate depth via [references/issue-examples.md](references/issue-examples.md).
43
+
44
+ **Hard constraints apply to every new issue:**
45
+
46
+ - Title 60 characters. Descriptive for bugs, imperative for tasks/features.
47
+ - Summary 3 sentences. Do not restate the title in the body.
48
+ - Prefer flat bullet lists over headed sections for simple issues.
49
+ - Generalize session framing — strip channel references, slash commands, Slack thread IDs, user @mentions, and transcript fragments; replace with the underlying engineering problem.
50
+ - Compress source material. Research notes, hypotheses, or transcripts become a short summary + scoped bullets — never paste raw investigation into the body.
51
+ - Do not add desired outcome, expected behavior, or acceptance criteria unless the thread explicitly requests them.
52
+ - When the request originated from a Slack thread or any on-behalf-of context, append a final line `Action taken on behalf of <name>.` using the user's real name.
53
+
54
+ Attribute the reporter by name when clear from the thread (e.g. "Raised by Alice during incident triage") — do not reference Slack channels, threads, or conversation metadata. Attach screenshots from the thread as image links when present. Preserve relevant URLs (Sentry, GitHub, docs, repro links) inline — do not dump a link list.
55
+
56
+ 4. Set optional Linear fields literally:
57
+
58
+ - Use the team's actual workflow states instead of generic names like `Todo` or `In Progress`.
59
+ - Use only Linear's standard priority levels: `low`, `medium`, `high`, `urgent`.
60
+ - Set project, labels, cycle, estimate, or assignee only when the user asked for them or the thread makes them clear.
61
+
62
+ 5. Verify draft before mutating:
63
+
64
+ - Title length ≤ 60 characters.
65
+ - Delegated-action footer is the last line when applicable.
66
+ - No session framing remains (channel refs, slash commands, @mentions, Slack thread IDs).
67
+ - Body structure matches complexity — no empty sections, no restated title, no raw research dump.
68
+
69
+ If any gate fails, revise and re-check before calling the MCP create/update tool.
70
+
71
+ 6. Execute:
72
+
53
73
  - For updates, prefer partial changes over full rewrites. Fetch current issue state first if the mutation could overwrite structured fields or duplicate an existing comment.
54
74
  - Check for duplicates silently before creating a new issue when the request appears related to existing work.
55
- - When the thread clearly indicates the work originated in Slack, mention that succinctly in the Linear ticket or comment if it improves provenance, but do not paste large thread transcripts.
56
75
 
57
- 3. Report the result:
76
+ 7. Report the result:
58
77
 
59
- - Return the canonical Linear issue URL or key and summarize what changed.
78
+ - Return the canonical Linear issue URL or key and what changed.
60
79
  - Report issue type when you created a new issue and it materially clarifies the outcome.
61
- - Keep routine tool chatter silent. Do not narrate each MCP search or mutation step.
62
80
 
63
81
  ## Guardrails
64
82
 
65
83
  - Reuse or update an existing Linear issue when it is clearly the same work instead of creating a duplicate.
66
- - Do not present guesses as facts. If the thread leaves an important detail uncertain, label it as an assumption in the Linear content.
84
+ - Label uncertain details as assumptions in the Linear content when the thread leaves them unresolved.
67
85
  - Prefer concise, durable ticket text over verbatim Slack quotes or long transcript dumps.
68
86
  - Do not invent team-specific workflow names, labels, or estimate values without first confirming they exist.
69
- - If Linear authorization is required, let the MCP OAuth flow pause and resume the thread automatically instead of asking the user to handle credentials manually.
@@ -1,71 +1,35 @@
1
1
  # Issue Writing
2
2
 
3
- Use this reference when creating a new Linear issue or substantially improving an existing one.
3
+ Load when creating a new Linear issue or substantially rewriting one. Cross-type rules (title length, delegated footer, generalization, compression) live in `SKILL.md` § Draft issue content — this file covers classification, title phrasing, and Linear-specific fields only.
4
4
 
5
5
  ## Classify the work item
6
6
 
7
- Infer the issue type before drafting:
8
-
9
7
  | Type | Use when |
10
8
  | --------- | --------------------------------------------------------------------------- |
11
9
  | `bug` | Broken behavior, regressions, failures, incidents, or user-visible defects |
12
10
  | `feature` | Net-new capability, product expansion, or workflow improvement |
13
11
  | `task` | Cleanup, instrumentation, docs, maintenance, follow-up, or operational work |
14
12
 
15
- Default to `task` when the request does not clearly describe a defect or a net-new capability. Structure should match complexity — simple issues need only a few bullets, complex bugs may warrant headed sections.
16
-
17
- ## Title rules
18
-
19
- - Bug: short description of the broken behavior (e.g. "Webhook delivery drops events over 256KB")
20
- - Task: short imperative command (e.g. "Add rate-limit headers to ingest endpoint")
21
- - Feature: short imperative describing the capability (e.g. "Support SAML SSO for enterprise orgs")
13
+ Default to `task` when the request does not clearly describe a defect or a net-new capability. Structure matches complexity — simple issues need a few bullets; complex bugs may warrant headed sections.
22
14
 
23
- ## Drafting rules
15
+ ## Title phrasing
24
16
 
25
- - Use terse, specific language. No filler phrases, no restating the title in the body.
26
- - Specify who raised the issue when clear from the thread (e.g. "Reported by a customer in #support" or "Flagged by the oncall engineer").
27
- - Attach screenshots from the thread as image links when present.
28
- - Link relevant domain info (Sentry issues, GitHub PRs, docs pages, dashboards) inline where context helps — do not dump a link list.
29
- - Use bullet lists for multi-item details. Omit section headings when a flat list is sufficient.
30
- - Do not add a desired outcome or expected behavior section unless the thread explicitly states one.
31
- - Generalize Slack context: remove channel names, slash commands, and session chatter unless the user explicitly wants them preserved.
32
- - Include code snippets, stack traces, or exact commands only when they materially improve understanding.
17
+ - Bug: short description of the broken behavior e.g. "Webhook delivery drops events over 256KB"
18
+ - Task: short imperative command e.g. "Add rate-limit headers to ingest endpoint"
19
+ - Feature: short imperative describing the capability e.g. "Support SAML SSO for enterprise orgs"
33
20
 
34
21
  ## Linear-specific field guidance
35
22
 
36
23
  - Every new issue must belong to a single team. Resolve that before creating the issue.
37
- - If the request clearly maps to a known team template and the active MCP tools expose template-based creation, prefer the template so the team's default properties are applied consistently.
38
- - Set optional fields such as project, priority, labels, cycle, estimate, assignee, or status only when the user asked for them, the thread gives clear evidence, or the team's workflow makes the choice obvious.
39
- - Do not invent a custom status name. If you need a non-default status, read the team's actual workflow states first.
40
- - Priority should stay within Linear's standard levels: `low`, `medium`, `high`, `urgent`.
41
- - Estimates are team-configured. Only set one when the thread provides a clear value or the team context already makes the estimate scale unambiguous.
42
- - Labels may be workspace- or team-scoped. Reuse an existing matching label when possible instead of introducing near-duplicates.
43
- - If the tool exposes structured link attachments, attach the important URLs there and keep the prose body focused on interpretation rather than raw link dumping.
44
-
45
- ## Delegated action footer
46
-
47
- When creating a new issue on behalf of a user, append a final line:
48
-
49
- `Action taken on behalf of <name>.`
50
-
51
- ## Pre-creation checklist
52
-
53
- Before submitting, verify:
54
-
55
- - Title is type-appropriate (descriptive for bugs, imperative for tasks/features)
56
- - Body uses flat bullets where headings aren't needed
57
- - No desired outcome section unless the thread stated one
58
- - Reporter is mentioned when known
59
- - Screenshots and domain links are attached when present in thread
60
- - No session-specific noise (channel names, slash commands, conversational filler)
24
+ - If the request maps to a known team template and the active MCP tools expose template-based creation, prefer the template so the team's default properties are applied consistently.
25
+ - Do not invent a custom status name. Read the team's actual workflow states first when a non-default status is needed.
26
+ - Priority stays within Linear's standard levels: `low`, `medium`, `high`, `urgent`.
27
+ - Estimates are team-configured. Set one only when the thread provides a clear value or the team context makes the scale unambiguous.
28
+ - Labels may be workspace- or team-scoped. Reuse an existing matching label instead of introducing near-duplicates.
29
+ - If the tool exposes structured link attachments, attach important URLs there and keep the prose body focused on interpretation.
61
30
 
62
31
  ## Duplicate handling
63
32
 
64
33
  - Search silently before creating a new issue when the request appears related to existing work.
65
- - If a clear duplicate exists, prefer updating or commenting on the existing issue instead of creating a new one.
66
- - If the user explicitly wants a separate tracking issue anyway, state the relationship clearly in the new issue.
67
-
68
- ## Result reporting
69
-
70
- - Report only the final, durable result: issue key, canonical URL, and what changed.
71
- - Keep routine drafting, search, and mutation steps silent unless they materially affect the outcome.
34
+ - Prefer updating or commenting on a clear duplicate rather than creating a new issue.
35
+ - If the user explicitly wants a separate tracking issue, state the relationship in the new issue.