Skip to content

Commit ce7b95b

Browse files
committed
Update plain-bug skill to use GitHub Issues via gh CLI
Replace the curl POST to plainframework.com/api/issues/ with gh issue create --repo dropseed/plain. Adds guidance for including reproduction steps, error output, and root cause when available.
1 parent ff819a1 commit ce7b95b

File tree

2 files changed

+76
-38
lines changed
  • .claude/skills/plain-bug
  • plain/plain/agents/.claude/skills/plain-bug

2 files changed

+76
-38
lines changed

.claude/skills/plain-bug/SKILL.md

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: plain-bug
3-
description: Submit a bug report for the Plain framework. Use when you encounter a bug, error, or unexpected behavior. Collects context and posts to plainframework.com.
3+
description: Submit a bug report for the Plain framework. Use when you encounter a bug, error, or unexpected behavior. Collects context and creates a GitHub issue.
44
---
55

66
# Submit a Plain Bug Report
@@ -10,7 +10,15 @@ description: Submit a bug report for the Plain framework. Use when you encounter
1010
Ask the user for:
1111

1212
- **Title** (required) — a short summary of the bug
13-
- **Body** (required) — what happened, steps to reproduce, error output, etc.
13+
- **Description** (required) — what happened and how to trigger it.
14+
15+
Keep it concise but include whichever of these are available:
16+
17+
- **Reproduction steps** — a minimal code snippet or command sequence that triggers the bug. Most valuable when the bug is reproducible.
18+
- **Actual error** — the traceback or unexpected output verbatim (trimmed to the relevant parts).
19+
- **Root cause / fix** — if you have high-confidence insight, include it. Helps maintainers triage faster.
20+
21+
Not every bug will have all three — a feature that's missing or behaves incorrectly may just need a clear description.
1422

1523
## 2. Collect environment info
1624

@@ -28,29 +36,40 @@ uv run python --version
2836
uname -s -r
2937
```
3038

31-
## 3. Submit the bug report
39+
## 3. Confirm with user
40+
41+
Show the user the full issue title and body before submitting. Do NOT submit without explicit approval.
3242

33-
POST the bug report to the Plain API using curl:
43+
## 4. Submit via `gh`
44+
45+
Create the issue using the GitHub CLI:
3446

3547
```bash
36-
curl -s -X POST https://plainframework.com/api/issues/ \
37-
-H "Content-Type: application/json" \
38-
-d '{
39-
"title": "<title>",
40-
"body": "<body>",
41-
"plain_version": "<from step 2>",
42-
"python_version": "<from step 2>",
43-
"os_info": "<from step 2>"
44-
}'
48+
gh issue create --repo dropseed/plain --title "<title>" --body "<body>"
49+
```
50+
51+
The body should follow this format:
52+
53+
```
54+
<user's bug description>
55+
56+
## Environment
57+
58+
- Plain: <version>
59+
- Python: <version>
60+
- OS: <uname output>
61+
62+
---
63+
64+
*Submitted via the `/plain-bug` skill.*
4565
```
4666

47-
## 4. Report the result
67+
## 5. Report the result
4868

49-
- If successful (response contains `"status": "created"`), tell the user their bug report was submitted and show the issue ID.
50-
- If there was an error, show the error details and suggest they try again or file the issue manually on GitHub.
69+
Show the issue URL returned by `gh` so the user can follow up.
5170

5271
## Guidelines
5372

54-
- Always confirm the title and body with the user before submitting.
55-
- Do NOT submit without the user's explicit approval.
56-
- Escape special characters properly in the JSON payload.
73+
- **No private info** — Don't include file paths, env vars, API keys, secrets, database URLs, or other project-specific details. Only include Plain/Python versions, OS, and the bug description.
74+
- **Confirm before submitting** — Always show the full issue body to the user and get approval before creating.
75+
- **No label needed** — Maintainers will triage and label the issue.
Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: plain-bug
3-
description: Submit a bug report for the Plain framework. Use when you encounter a bug, error, or unexpected behavior. Collects context and posts to plainframework.com.
3+
description: Submit a bug report for the Plain framework. Use when you encounter a bug, error, or unexpected behavior. Collects context and creates a GitHub issue.
44
---
55

66
# Submit a Plain Bug Report
@@ -10,7 +10,15 @@ description: Submit a bug report for the Plain framework. Use when you encounter
1010
Ask the user for:
1111

1212
- **Title** (required) — a short summary of the bug
13-
- **Body** (required) — what happened, steps to reproduce, error output, etc.
13+
- **Description** (required) — what happened and how to trigger it.
14+
15+
Keep it concise but include whichever of these are available:
16+
17+
- **Reproduction steps** — a minimal code snippet or command sequence that triggers the bug. Most valuable when the bug is reproducible.
18+
- **Actual error** — the traceback or unexpected output verbatim (trimmed to the relevant parts).
19+
- **Root cause / fix** — if you have high-confidence insight, include it. Helps maintainers triage faster.
20+
21+
Not every bug will have all three — a feature that's missing or behaves incorrectly may just need a clear description.
1422

1523
## 2. Collect environment info
1624

@@ -28,29 +36,40 @@ uv run python --version
2836
uname -s -r
2937
```
3038

31-
## 3. Submit the bug report
39+
## 3. Confirm with user
40+
41+
Show the user the full issue title and body before submitting. Do NOT submit without explicit approval.
3242

33-
POST the bug report to the Plain API using curl:
43+
## 4. Submit via `gh`
44+
45+
Create the issue using the GitHub CLI:
3446

3547
```bash
36-
curl -s -X POST https://plainframework.com/api/issues/ \
37-
-H "Content-Type: application/json" \
38-
-d '{
39-
"title": "<title>",
40-
"body": "<body>",
41-
"plain_version": "<from step 2>",
42-
"python_version": "<from step 2>",
43-
"os_info": "<from step 2>"
44-
}'
48+
gh issue create --repo dropseed/plain --title "<title>" --body "<body>"
49+
```
50+
51+
The body should follow this format:
52+
53+
```
54+
<user's bug description>
55+
56+
## Environment
57+
58+
- Plain: <version>
59+
- Python: <version>
60+
- OS: <uname output>
61+
62+
---
63+
64+
*Submitted via the `/plain-bug` skill.*
4565
```
4666

47-
## 4. Report the result
67+
## 5. Report the result
4868

49-
- If successful (response contains `"status": "created"`), tell the user their bug report was submitted and show the issue ID.
50-
- If there was an error, show the error details and suggest they try again or file the issue manually on GitHub.
69+
Show the issue URL returned by `gh` so the user can follow up.
5170

5271
## Guidelines
5372

54-
- Always confirm the title and body with the user before submitting.
55-
- Do NOT submit without the user's explicit approval.
56-
- Escape special characters properly in the JSON payload.
73+
- **No private info** — Don't include file paths, env vars, API keys, secrets, database URLs, or other project-specific details. Only include Plain/Python versions, OS, and the bug description.
74+
- **Confirm before submitting** — Always show the full issue body to the user and get approval before creating.
75+
- **No label needed** — Maintainers will triage and label the issue.

0 commit comments

Comments
 (0)