@sentry/junior-github 0.20.0 → 0.21.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-github",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -73,7 +73,12 @@ Load the type-specific template and rules:
73
73
 
74
74
  Follow [references/research-rules.md](references/research-rules.md) for cross-type research standards.
75
75
 
76
- - Generalize conversation context: replace user names, slash-command invocations, channel references, and session-specific fragments with the underlying technical problem.
76
+ - Use a short descriptive title for bugs, short imperative title for tasks and features.
77
+ - Mention who raised the issue when clear from the thread.
78
+ - Attach screenshots from the thread as image links when present.
79
+ - Prefer flat bullet lists over headed sections for simple issues.
80
+ - Do not add desired outcome or expected behavior unless the thread explicitly states one.
81
+ - Generalize conversation context: replace channel references, slash-command invocations, and session-specific fragments with the underlying technical problem.
77
82
  - Use [references/issue-examples.md](references/issue-examples.md) to calibrate structure and depth.
78
83
  - Include code snippets, related issues, and related PRs only when they materially improve the issue.
79
84
 
@@ -8,32 +8,42 @@ Bad title: "Error in auth"
8
8
  Good title: "OAuth token refresh fails during long-running operations"
9
9
 
10
10
  Bad summary:
11
+
11
12
  > Something is broken with auth tokens. Users are seeing errors.
12
13
 
13
14
  Good summary:
15
+
14
16
  > The SDK sets a dedup key before acquiring the per-thread lock. When the lock is contended, the message is permanently lost because the dedup slot is already consumed.
15
17
 
16
18
  Bad structure — generic catch-all:
19
+
17
20
  > ## Analysis
21
+ >
18
22
  > - There's an auth error
19
23
  > - It happens sometimes
20
24
  > - We should fix it
21
25
 
22
26
  Good structure — problem-specific sections:
27
+
23
28
  > ## Root cause
24
- > The dedup key is set *before* the lock is attempted. When a second message arrives...
29
+ >
30
+ > The dedup key is set _before_ the lock is attempted. When a second message arrives...
25
31
  >
26
32
  > ## Reproduction
33
+ >
27
34
  > 1. Two users @-mention the bot in the same thread while processing
28
35
  > 2. First message acquires the lock
29
36
  > 3. Second message sets its dedup key, fails lock acquisition
30
37
  >
31
38
  > ## Expected behavior
39
+ >
32
40
  > Either:
41
+ >
33
42
  > - **Option A**: Acquire lock before setting dedup key
34
43
  > - **Option B**: Clear dedup key on lock failure
35
44
  >
36
45
  > ## Workaround
46
+ >
37
47
  > Retry wrapper that catches LockError and clears the dedup key (PR #32).
38
48
  >
39
49
  > Action taken on behalf of Jane Doe.
@@ -44,36 +54,43 @@ Bad title: "Clean up some code"
44
54
  Good title: "Remove 7 monkey-patches made unnecessary by SDK v2.1"
45
55
 
46
56
  Bad scope:
57
+
47
58
  > We have some patches we should clean up.
48
59
 
49
60
  Good scope — quantified and specific:
61
+
50
62
  > We maintain patches on **8 of 9 `process*` methods**. 7 exist solely to keep `waitUntil` offload behavior consistent while `processMessage` is customized for durable workflow routing. The 8th has two additional behavioral fixes.
51
63
  >
52
- > | Method | Patch reason |
53
- > |--------|-------------|
54
- > | `processReaction` | scheduling only |
55
- > | `processAction` | scheduling only |
56
- > | `processMessage` | scheduling + thread ID normalization + lock retry |
64
+ > | Method | Patch reason |
65
+ > | ----------------- | ------------------------------------------------- |
66
+ > | `processReaction` | scheduling only |
67
+ > | `processAction` | scheduling only |
68
+ > | `processMessage` | scheduling + thread ID normalization + lock retry |
57
69
  >
58
70
  > Action taken on behalf of Jane Doe.
59
71
 
60
72
  ## Feature example
61
73
 
62
74
  Bad framing:
75
+
63
76
  > It would be nice to have better config reloading.
64
77
 
65
78
  Good framing — current state, gap, options:
79
+
66
80
  > ## Current behavior
81
+ >
67
82
  > Workers read config at startup. Changes require a full restart.
68
83
  >
69
84
  > ## Gap
85
+ >
70
86
  > Config changes during incidents require redeploying, adding 2-3 minutes to mitigation.
71
87
  >
72
88
  > ## Options
73
- > | Approach | Tradeoff |
74
- > |----------|----------|
75
- > | File watch + hot reload | Simple, but no atomicity guarantee |
76
- > | Config service with polling | Consistent, but adds a dependency |
89
+ >
90
+ > | Approach | Tradeoff |
91
+ > | --------------------------- | ---------------------------------- |
92
+ > | File watch + hot reload | Simple, but no atomicity guarantee |
93
+ > | Config service with polling | Consistent, but adds a dependency |
77
94
  >
78
95
  > Action taken on behalf of Jane Doe.
79
96
 
@@ -88,8 +105,11 @@ Good framing — current state, gap, options:
88
105
 
89
106
  ## Anti-patterns
90
107
 
91
- - Overlong, sprawling body with no clear sections
108
+ - Over-structured issues: using ## Summary, ## Impact, ## Root Cause headings for a 3-line bug
109
+ - Adding "Expected behavior" or "Desired outcome" when the thread didn't state one
110
+ - Restating the title as the first sentence of the body
92
111
  - Confident fix claims without root-cause evidence
93
112
  - Speculative detail mixed into verified facts
113
+ - Dumping a list of URLs without inline context
94
114
  - Session-specific content (user names, slash commands, channel references)
95
115
  - Missing delegated attribution footer on user-requested issue creation
@@ -4,12 +4,13 @@ Run this checklist before create/update mutation.
4
4
 
5
5
  ## External Quality Signals
6
6
 
7
- - Does the issue contain user names, slash commands, or channel references from the originating conversation? If so, generalize.
7
+ - Does the issue contain slash commands, channel references, or user names that are not relevant to the issue itself? If so, generalize.
8
8
  - Is the issue concise and still actionable?
9
9
  - Are unknowns called out instead of guessed?
10
10
  - Are concerns included only when material?
11
11
 
12
12
  Useful external guidance:
13
+
13
14
  - GitHub docs, creating and structuring issues: https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/creating-an-issue
14
15
  - GitHub docs, issue templates: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates
15
16
  - Stack Overflow, minimal reproducible example standard: https://stackoverflow.com/help/minimal-reproducible-example
@@ -18,17 +19,22 @@ Useful external guidance:
18
19
  ## Internal Quality Bar
19
20
 
20
21
  - Issue type chosen and stated (`bug`, `feature`, or `task`).
21
- - Title is specific and <= 60 characters.
22
+ - Title is specific and <= 60 characters. Descriptive for bugs, imperative for tasks/features.
22
23
  - Summary is short and clear.
23
24
  - Analysis depth matches the issue type.
24
25
  - Verified claims have sources.
25
26
  - Timeline statements use exact dates when known.
26
27
  - Confidence is explicit when certainty is low.
27
28
  - Concerns are included only when meaningful.
29
+ - Reporter is mentioned when clear from the originating conversation.
30
+ - Screenshots from the thread are attached as image links when present.
31
+ - No headed sections that could be flat bullets instead.
32
+ - No desired outcome or expected behavior section unless the thread explicitly stated one.
28
33
 
29
34
  ## Negative Calibration
30
35
 
31
36
  Avoid these anti-patterns:
37
+
32
38
  - Overlong, sprawling issue bodies with no clear sections
33
39
  - Confident solution claims that are weakly evidenced
34
40
  - Speculative detail mixed into verified sections
@@ -1,29 +1,37 @@
1
1
  # Bug Issue Template
2
2
 
3
- Use as a starting structure. Adapt headings to fit the specific bug.
3
+ Use as a starting structure. A few bullets often suffice use headed sections only when complexity demands them.
4
4
 
5
5
  ## Summary
6
- Up to 3 sentences describing the failure and its impact.
7
6
 
8
- ## Suggested sections (use what fits, rename freely)
7
+ Up to 3 sentences describing the failure and its impact. Use a short descriptive title (e.g. "OAuth token refresh fails in long-running operations").
9
8
 
10
- - **Root cause** technical explanation of why the bug occurs, with code snippets if relevant
9
+ ## Suggested sections (use only what fits)
10
+
11
+ - **Root cause** — technical explanation with code snippets if relevant
11
12
  - **Reproduction** — numbered steps any developer can follow independently
12
- - **Expected behavior** — what should happen, with concrete options if multiple fixes exist
13
- - **Workaround** — current mitigation if one exists, with links to relevant PRs
14
- - **Versions affected** — specific versions or environments confirmed
13
+ - **Expected behavior** — include only when the thread explicitly states what should happen
14
+ - **Workaround** — current mitigation if one exists
15
+
16
+ For simple bugs, skip sections entirely and use flat bullet lists.
17
+
18
+ ## Attribution
15
19
 
16
- Remove sections that don't apply. Add sections the problem needs.
20
+ - Mention who reported the issue when clear from the originating conversation.
21
+ - Attach screenshots from the thread as image links when present.
17
22
 
18
23
  ## Delegated action footer
24
+
19
25
  When creating a new issue on behalf of a user, append a final line:
20
26
 
21
27
  `Action taken on behalf of <name>.`
22
28
 
23
29
  ## Constraints
30
+
24
31
  - Title hard max: 60 characters (target 40-60).
25
32
  - Summary max 3 sentences.
26
- - Remove empty sections.
27
- - Adapt section headings to fit the issue, not the reverse.
33
+ - Remove empty sections. Prefer flat bullets over headed sections for simple bugs.
34
+ - Do not add expected behavior or desired outcome unless the thread explicitly states one.
28
35
  - Do not include acceptance criteria unless explicitly requested.
29
- - Keep the delegated action footer as the last line in the body when applicable to newly created issues.
36
+ - Use terse, specific language no filler, no restating the title in the body.
37
+ - Keep the delegated action footer as the last line in the body when applicable.
@@ -1,28 +1,36 @@
1
1
  # Feature Issue Template
2
2
 
3
- Use as a starting structure. Adapt headings to fit the specific feature.
3
+ Use as a starting structure. A flat bullet list is fine for simple features — use headed sections only when tradeoffs need detailed framing.
4
4
 
5
5
  ## Summary
6
- Up to 3 sentences describing the desired improvement and user outcome.
7
6
 
8
- ## Suggested sections (use what fits, rename freely)
7
+ Up to 3 sentences describing the improvement. Use a short imperative title (e.g. "Support SAML SSO for enterprise orgs").
9
8
 
10
- - **Current behavior** how the system works today, with code snippets if relevant
9
+ ## Suggested sections (use only what fits)
10
+
11
+ - **Current behavior** — how the system works today
11
12
  - **Gap** — why current behavior is insufficient, with concrete impact
12
- - **Options** — viable approaches with tradeoffs
13
- - **Recommendation** — preferred direction with rationale
13
+ - **Options** — viable approaches with tradeoffs (include only when the thread discusses alternatives)
14
+
15
+ For simple features, skip sections and use flat bullets describing the gap and desired capability.
16
+
17
+ ## Attribution
14
18
 
15
- Remove sections that don't apply. Add sections the feature needs.
19
+ - Mention who raised the request when clear from the originating conversation.
20
+ - Attach screenshots from the thread as image links when present.
16
21
 
17
22
  ## Delegated action footer
23
+
18
24
  When creating a new issue on behalf of a user, append a final line:
19
25
 
20
26
  `Action taken on behalf of <name>.`
21
27
 
22
28
  ## Constraints
29
+
23
30
  - Title hard max: 60 characters (target 40-60).
24
31
  - Summary max 3 sentences.
25
- - Remove empty sections.
26
- - Adapt section headings to fit the issue, not the reverse.
32
+ - Remove empty sections. Prefer flat bullets for simple features.
33
+ - Do not add desired outcome unless the thread explicitly states one.
27
34
  - Do not include acceptance criteria unless explicitly requested.
28
- - Keep the delegated action footer as the last line in the body when applicable to newly created issues.
35
+ - Use terse, specific language no filler, no restating the title in the body.
36
+ - Keep the delegated action footer as the last line in the body when applicable.
@@ -1,28 +1,35 @@
1
1
  # Task Issue Template
2
2
 
3
- Use as a starting structure. Adapt headings to fit the specific task.
3
+ A task can be just a title + 2-3 bullets. Use headed sections only when scope is complex.
4
4
 
5
5
  ## Summary
6
- Up to 3 sentences describing the task and intended result.
7
6
 
8
- ## Suggested sections (use what fits, rename freely)
7
+ Up to 3 sentences describing the task. Use a short imperative title (e.g. "Remove deprecated legacyAuth middleware").
9
8
 
10
- - **Background** why this task exists, with code snippets showing current state
9
+ ## Suggested sections (use only when complexity warrants)
10
+
11
+ - **Background** — why this task exists, with code snippets if relevant
11
12
  - **Scope** — what's included and excluded, quantify when possible
12
- - **Implementation** — concrete steps or approach
13
- - **Dependencies** — related issues, PRs, or external blockers
14
13
 
15
- Remove sections that don't apply. Add sections the task needs.
14
+ For simple tasks, skip sections and use flat bullets for scope and next step.
15
+
16
+ ## Attribution
17
+
18
+ - Mention who raised the task when clear from the originating conversation.
19
+ - Attach screenshots from the thread as image links when present.
16
20
 
17
21
  ## Delegated action footer
22
+
18
23
  When creating a new issue on behalf of a user, append a final line:
19
24
 
20
25
  `Action taken on behalf of <name>.`
21
26
 
22
27
  ## Constraints
28
+
23
29
  - Title hard max: 60 characters (target 40-60).
24
30
  - Summary max 3 sentences.
25
- - Remove empty sections.
26
- - Adapt section headings to fit the issue, not the reverse.
31
+ - Remove empty sections. Prefer flat bullets for simple tasks.
32
+ - Do not add desired outcome unless the thread explicitly states one.
27
33
  - Do not include acceptance criteria unless explicitly requested.
28
- - Keep the delegated action footer as the last line in the body when applicable to newly created issues.
34
+ - Use terse, specific language no filler, no restating the title in the body.
35
+ - Keep the delegated action footer as the last line in the body when applicable.
@@ -6,46 +6,25 @@ Use this file only when issue type is `bug`.
6
6
 
7
7
  Produce a high-signal bug issue that drives root-cause discovery, not premature solutioning.
8
8
 
9
- ## Required Research Shape
9
+ ## Research Guidance
10
10
 
11
- 1. Capture concrete evidence:
12
- - reproducible steps or explicit non-repro statement
13
- - exact error or symptom
14
- - impacted surface and scope
11
+ Use these steps to investigate — they inform what goes into the issue, but do not dictate issue structure. The issue should be terse; research justifies what's included.
15
12
 
16
- 2. Build a timeline with exact dates when known:
17
- - first observed
18
- - known regressions or relevant deploy/release windows
13
+ 1. Capture concrete evidence: reproducible steps or explicit non-repro statement, exact error or symptom, impacted surface and scope.
14
+ 2. Build a timeline with exact dates when known.
15
+ 3. Separate verified facts from unknowns — label each explicitly.
16
+ 4. Form root-cause hypotheses linked to evidence, with confidence (`high`, `medium`, `low`).
19
17
 
20
- 3. Separate known from unknown:
21
- - verified facts contain only directly supported claims
22
- - unknown details stay explicit
23
-
24
- 4. Form root-cause hypotheses:
25
- - each hypothesis must link back to evidence
26
- - include confidence (`high`, `medium`, `low`)
27
-
28
- ## Fix Guidance
29
-
30
- - You may include tentative fix options.
31
- - Label options as tentative unless root cause is directly evidenced.
32
- - If root cause is not verified, include next RCA steps before or alongside fix options.
33
- - Do not present one fix as certain without explicit evidence.
18
+ Include fix suggestions only when the thread discusses fixes. Do not present a fix as certain without explicit evidence.
34
19
 
35
20
  ## Context Generalization
36
21
 
37
22
  When deriving bug content from conversation, generalize to the technical problem.
38
23
 
39
24
  Before (session-specific):
25
+
40
26
  > @alice ran `/github create` in #ops-alerts and saw "token refresh failed" when the OAuth token expired mid-thread
41
27
 
42
28
  After (generalized):
43
- > OAuth token refresh fails during long-running operations, producing "token refresh failed" errors
44
-
45
- ## Completion Bar
46
29
 
47
- A `bug` issue is ready when it has:
48
- - clear symptom and scope
49
- - evidence-backed facts
50
- - explicit unknowns
51
- - root-cause hypotheses with confidence
30
+ > OAuth token refresh fails during long-running operations, producing "token refresh failed" errors
@@ -6,36 +6,22 @@ Use this file only when issue type is `feature`.
6
6
 
7
7
  Propose an intentional improvement with clear current-state analysis and practical options.
8
8
 
9
- ## Required Research Shape
9
+ ## Research Guidance
10
10
 
11
- 1. Analyze how the system works today:
12
- - current behavior
13
- - known constraints
14
- - why current behavior is insufficient
11
+ Use these steps to investigate — they inform what goes into the issue, but do not dictate issue structure.
15
12
 
16
- 2. Gather prior art:
17
- - target a couple relevant examples when available
18
- - include links and what each example proves
19
- - if none found, explicitly say no strong prior art was found
20
-
21
- 3. Frame options:
22
- - at least one viable path, preferably multiple when tradeoffs are meaningful
23
- - include implementation and operational tradeoffs
13
+ 1. Analyze current behavior and why it's insufficient.
14
+ 2. Gather prior art when available include links and what each proves. If none found, omit rather than stating "none found."
15
+ 3. Frame options with tradeoffs when the thread discusses alternatives.
24
16
 
25
17
  ## Context Generalization
26
18
 
27
19
  When deriving feature content from conversation, generalize to the capability gap.
28
20
 
29
21
  Before (session-specific):
22
+
30
23
  > @carol mentioned in the standup thread that she has to manually restart the worker every time the config changes
31
24
 
32
25
  After (generalized):
33
- > Workers do not pick up config changes without a restart, requiring manual intervention
34
26
 
35
- ## Completion Bar
36
-
37
- A `feature` issue is ready when it has:
38
- - clear problem framing and objective
39
- - current-state analysis
40
- - prior-art section (or explicit none found)
41
- - concise option tradeoffs
27
+ > Workers do not pick up config changes without a restart, requiring manual intervention
@@ -6,29 +6,20 @@ Use this file only when issue type is `task`.
6
6
 
7
7
  Create a concise execution ticket for maintenance, cleanup, docs, refactors, or operational chores.
8
8
 
9
- ## Research Standard
9
+ ## Research Guidance
10
10
 
11
- - Minimal research by default.
12
- - Prefer first-party repository context when available.
13
- - No required external prior-art scan unless user asks for it.
14
-
15
- ## Required Content
16
-
17
- - explicit goal
18
- - scope boundaries
19
- - concrete implementation steps
20
- - dependencies or risks only when material
11
+ - Minimal research by default. Prefer first-party repository context when available.
12
+ - Include implementation steps only when the thread discusses approach. Otherwise, state the goal and scope.
13
+ - Include dependencies or risks only when material.
21
14
 
22
15
  ## Context Generalization
23
16
 
24
17
  When deriving task content from conversation, generalize to the goal and scope.
25
18
 
26
19
  Before (session-specific):
20
+
27
21
  > @bob asked in #eng-chat to clean up the unused `legacyAuth` middleware that he noticed while reviewing PR #312
28
22
 
29
23
  After (generalized):
30
- > Remove unused `legacyAuth` middleware to reduce maintenance surface
31
-
32
- ## Completion Bar
33
24
 
34
- A `task` issue is ready when it is short, actionable, and testable without extra discovery.
25
+ > Remove unused `legacyAuth` middleware to reduce maintenance surface
@@ -1,6 +1,7 @@
1
1
  # Research and Verification Rules
2
2
 
3
3
  Use this file for cross-type rules. Then apply the matching type-specific file:
4
+
4
5
  - `bug`: [issue-type-bug.md](issue-type-bug.md)
5
6
  - `feature`: [issue-type-feature.md](issue-type-feature.md)
6
7
  - `task`: [issue-type-task.md](issue-type-task.md)
@@ -8,6 +9,7 @@ Use this file for cross-type rules. Then apply the matching type-specific file:
8
9
  ## Source Priority
9
10
 
10
11
  1. First-party repository evidence:
12
+
11
13
  - Source code and tests
12
14
  - Existing issues and PRs
13
15
  - Release notes/changelog
@@ -26,8 +28,9 @@ Use this file for cross-type rules. Then apply the matching type-specific file:
26
28
 
27
29
  ## Output Expectations
28
30
 
29
- - Clearly distinguish verified facts from unknowns. Weave evidence naturally into the issue structure rather than forcing separate sections.
30
- - Include source links/paths for each verified fact.
31
+ - Research depth should not translate into verbose issue output. The issue should be terse; research justifies what goes in, not how much.
32
+ - Clearly distinguish verified facts from unknowns. Weave evidence naturally into the issue rather than forcing separate sections.
33
+ - Include source links/paths inline for verified facts.
31
34
  - Use exact dates for timeline claims.
32
35
  - Avoid absolute language when confidence is low.
33
- - For `feature` issues, target a couple prior-art examples when available; if not found, explicitly say none were found.
36
+ - For `feature` issues, include prior-art examples when found and relevant; omit the section entirely if none exist.