@martinffx/atelier 1.2.1 → 1.3.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +22 -24
  3. package/agents/architect.md +1 -1
  4. package/agents/oracle.md +1 -1
  5. package/dist/atelier.js +12 -14
  6. package/package.json +1 -1
  7. package/skills/code-commit/SKILL.md +5 -13
  8. package/skills/code-pull-request/SKILL.md +36 -0
  9. package/skills/code-pull-request/references/common.md +76 -0
  10. package/skills/code-pull-request/references/create-pr.md +122 -0
  11. package/skills/code-pull-request/references/default-template.md +25 -0
  12. package/skills/code-pull-request/references/leave-comment.md +53 -0
  13. package/skills/code-pull-request/references/merge-pr.md +94 -0
  14. package/skills/code-pull-request/references/read-comments.md +61 -0
  15. package/skills/code-pull-request/references/respond-to-comment.md +66 -0
  16. package/skills/code-review/SKILL.md +21 -12
  17. package/skills/code-review/references/reviewers.md +142 -41
  18. package/skills/code-review/references/rq.md +48 -32
  19. package/skills/oracle-debug/SKILL.md +218 -0
  20. package/skills/{code-debug → oracle-debug}/references/bug-patterns.md +3 -3
  21. package/skills/oracle-domain-modelling/SKILL.md +84 -0
  22. package/skills/oracle-grill-me/SKILL.md +20 -0
  23. package/skills/spec-brainstorm/SKILL.md +91 -71
  24. package/skills/spec-finish/SKILL.md +20 -14
  25. package/skills/spec-implement/SKILL.md +3 -2
  26. package/skills/spec-orchestrator/SKILL.md +4 -15
  27. package/skills/spec-plan/SKILL.md +1 -1
  28. package/agents/scout.md +0 -40
  29. package/skills/code-commit/references/pr-workflow.md +0 -145
  30. package/skills/code-debug/SKILL.md +0 -199
  31. package/skills/code-docs/SKILL.md +0 -171
  32. package/skills/code-docs/references/api-docs.md +0 -116
  33. package/skills/code-docs/references/changelog.md +0 -64
  34. package/skills/code-docs/references/readme-structure.md +0 -94
  35. package/skills/oracle-architect/SKILL.md +0 -327
  36. package/skills/oracle-architect/references/api-design.md +0 -345
  37. package/skills/oracle-architect/references/data-modeling.md +0 -318
  38. package/skills/oracle-architect/references/ddd-patterns.md +0 -348
  39. package/skills/oracle-architect/references/interface-design.md +0 -203
  40. package/skills/oracle-challenge/SKILL.md +0 -126
  41. package/skills/oracle-doubt/SKILL.md +0 -252
  42. package/skills/oracle-doubt/references/adversarial-prompt.md +0 -47
  43. package/skills/oracle-grillme/SKILL.md +0 -160
  44. package/skills/oracle-security/SKILL.md +0 -225
  45. package/skills/oracle-security/references/security-patterns.md +0 -236
  46. package/skills/oracle-security/references/threat-modeling-guide.md +0 -137
  47. package/skills/oracle-testing/SKILL.md +0 -237
  48. package/skills/oracle-testing/references/anti-patterns.md +0 -618
  49. package/skills/oracle-testing/references/boundaries.md +0 -579
  50. package/skills/oracle-testing/references/core-testing.md +0 -691
  51. package/skills/oracle-testing/references/edge-testing.md +0 -794
  52. package/skills/oracle-testing/references/stub-driven-tdd.md +0 -322
  53. package/skills/oracle-thinkdeep/SKILL.md +0 -164
  54. /package/skills/{code-debug → oracle-debug}/references/language-tools.md +0 -0
  55. /package/skills/{code-debug → oracle-debug}/references/techniques.md +0 -0
  56. /package/skills/{oracle-grillme → oracle-domain-modelling}/references/ADR-FORMAT.md +0 -0
  57. /package/skills/{oracle-grillme → oracle-domain-modelling}/references/CONTEXT-FORMAT.md +0 -0
@@ -2,8 +2,9 @@
2
2
  name: spec-brainstorm
3
3
  description: >
4
4
  Conversational design workshop for new features. Interviews the human one question
5
- at a time, explores 2-3 approaches with trade-offs, then produces a focused spec.
6
- Combines requirements discovery with codebase research and architecture design.
5
+ at a time, explores 2-3 approaches with trade-offs, and presents the design
6
+ section by section for approval before writing the spec. Combines requirements
7
+ discovery with codebase research and architecture design.
7
8
  Use when the user says "create a spec", "design this feature", "let's brainstorm",
8
9
  "what should we build", or at the start of any feature/refactor/complex-bug workflow.
9
10
  user-invocable: true
@@ -14,13 +15,14 @@ argument-hint: <topic or feature description>
14
15
 
15
16
  Conversational design workshop that produces a focused, reviewed spec.
16
17
 
17
- One question at a time. Multiple approaches explored. Ruthless scope control.
18
- No implementation until design is approved.
18
+ One question at a time. Multiple approaches explored. Design approved in
19
+ sections. Ruthless scope control. No implementation until design is approved.
19
20
 
20
21
  ## Artifact
21
22
 
22
23
  ```
23
- docs/specs/YYYY-MM-DD-<topic>-design.md ← This skill's output
24
+ docs/specs/YYYY-MM-DD-<feature>/
25
+ └── design.md ← This skill's output
24
26
  ```
25
27
 
26
28
  Requirements are inline — no separate requirements.json needed.
@@ -156,11 +158,14 @@ review before I continue with the design."
156
158
 
157
159
  ---
158
160
 
159
- ## Step 4: Design — Explore Approaches
161
+ ## Step 4: Design
160
162
 
161
- Before settling on a design, present **2-3 approaches** with trade-offs.
163
+ Design happens in three phases: explore approaches, present the design in sections,
164
+ then write the spec file.
165
+
166
+ ### 4a. Explore approaches
162
167
 
163
- ### Approach exploration
168
+ Before settling on a design, present **2-3 approaches** with trade-offs.
164
169
 
165
170
  For each approach, address:
166
171
 
@@ -169,7 +174,7 @@ For each approach, address:
169
174
  3. **Cons** — What's painful, expensive, or risky
170
175
  4. **Complexity estimate** — Rough sense of implementation effort
171
176
 
172
- Then make a recommendation and explain why.
177
+ Lead with your recommended option and explain why it wins.
173
178
 
174
179
  **Example:**
175
180
 
@@ -186,23 +191,60 @@ Then make a recommendation and explain why.
186
191
  > **Recommendation:** Approach B — the query flexibility matters more here than
187
192
  > implementation speed.
188
193
 
189
- ### Design approval gate
194
+ Get explicit approval on the chosen approach before presenting the design.
190
195
 
191
- Get explicit approval on the chosen approach before writing the full spec.
192
-
193
- **Tell the human:** "Which approach should we go with? Or should I explore a different
194
- direction?"
196
+ **Tell the human:** "Which approach should we go with? Or should I explore a
197
+ different direction?"
195
198
 
196
199
  **STOP. Wait for human to choose an approach.**
197
200
 
198
- ### Write the spec
201
+ ### 4b. Present the design in sections
202
+
203
+ Present the design in batches. Get approval after each batch before continuing.
204
+
205
+ Sections already confirmed in earlier steps (Problem, Scope, Constraints, Context)
206
+ are written into the spec from those confirmations — do not re-present them.
207
+
208
+ **Batch A: User Stories** — the contract you're designing against. Formal stories
209
+ with acceptance criteria and priorities. If rejected: revise. If the rejection
210
+ reveals a scope misunderstanding, loop back to Discovery (Step 2).
211
+
212
+ **Batch B: Architecture** — component design, domain modeling, and layer
213
+ boundaries. Use `python-architecture` or `typescript-api-design` as relevant to
214
+ your stack. Then present: component structure, domain model, where business
215
+ logic lives, where IO lives. If rejected: revise. If the rejection undermines
216
+ the chosen approach, offer to return to approach exploration (4a). If it
217
+ reveals a fundamental gap, loop back to Research (Step 3). If the detail reveals
218
+ the work is far more complex than estimated, say so and offer to revisit the
219
+ approach.
220
+
221
+ **Batch C: API Design + Data Model** — contracts derived from the approved
222
+ architecture. Skip sections that don't apply, but say so explicitly ("No API
223
+ changes — moving to Trade-offs"). Never skip silently. If rejected: revise. If
224
+ the rejection implicates the architecture, go back to Batch B.
199
225
 
200
- Once an approach is chosen, write the full spec document.
226
+ **Batch D: Trade-offs + Open Questions** — alternatives considered, why this
227
+ approach wins, known limitations, anything unresolved. Usually revisable inline.
201
228
 
202
- Use the Skill tool to invoke **oracle-architect** for component design, domain modeling,
203
- and layer boundaries.
229
+ Each batch ends with:
204
230
 
205
- ### What the spec should contain
231
+ **Tell the human:** "Does this look right?"
232
+
233
+ **STOP. Wait for approval before continuing.**
234
+
235
+ If you loop twice on the same batch, stop and ask:
236
+
237
+ > "We've looped on [batch] twice. Should we reconsider the approach?"
238
+
239
+ **Terminology discipline:** while drafting batches, challenge terms against
240
+ `CONTEXT.md` and update it inline as terms resolve, using the **oracle-domain-modelling**
241
+ skill. If domain confusion runs deep, suggest pausing for **oracle-grill-me** before continuing.
242
+
243
+ ### 4c. Write the spec
244
+
245
+ Once all batches are approved, write the full spec document.
246
+
247
+ #### What the spec should contain
206
248
 
207
249
  ```markdown
208
250
  # Feature Name
@@ -256,70 +298,48 @@ and layer boundaries.
256
298
  Scale each section to complexity — a few sentences if straightforward, detailed if
257
299
  nuanced.
258
300
 
259
- ### Reference implementations
260
-
261
- If human provides reference code — from open source, from elsewhere in codebase — use it
262
- as a concrete guide. Working from a reference produces dramatically better designs.
301
+ #### Reference implementations
263
302
 
264
- ---
265
-
266
- ## Step 5: Self-Review
267
-
268
- Before presenting the spec to the human, run this checklist silently:
269
-
270
- ### 1. Placeholder scan
271
-
272
- Are there any TBD, TODO, FIXME, or incomplete sections? Every section should have real
273
- content or be removed.
274
-
275
- ### 2. Internal consistency
276
-
277
- Do sections contradict each other? If the Architecture section says "stateless" but the
278
- Data Model includes session state, resolve the conflict before presenting.
279
-
280
- ### 3. Scope check
281
-
282
- Is this focused enough for a single implementation plan? If the spec covers more than
283
- one independent subsystem, it should have been decomposed in Step 2. If it's still too
284
- broad, flag it now.
303
+ If the human provides reference code — from open source, from elsewhere in the
304
+ codebase — use it as a concrete guide. Working from a reference produces
305
+ dramatically better designs.
285
306
 
286
- ### 4. Ambiguity check
307
+ #### Self-review
287
308
 
288
- Could any requirement be interpreted two ways? If so, pick one interpretation, state it
289
- explicitly, and let the human correct you.
309
+ After writing the file, check it with fresh eyes:
290
310
 
291
- Fix any issues found. Then present.
311
+ 1. **Placeholder scan** — Any TBD, TODO, FIXME, or incomplete sections? Every
312
+ section should have real content or be removed.
313
+ 2. **Internal consistency** — Do sections contradict each other? If the
314
+ Architecture section says "stateless" but the Data Model includes session
315
+ state, resolve the conflict.
316
+ 3. **Scope check** — Is this focused enough for a single implementation plan?
317
+ If the spec covers more than one independent subsystem, it should have been
318
+ decomposed in Step 2. If it's still too broad, flag it now.
319
+ 4. **Ambiguity check** — Could any requirement be interpreted two ways? If so,
320
+ pick one interpretation, state it explicitly, and let the human correct you.
292
321
 
293
- **Tell the human:** "The spec is complete. Ready for your review."
294
-
295
- **STOP. Wait for human review.**
322
+ **Substance rule:** if a fix changes the substance of an approved section,
323
+ re-present that section for approval. Wording and consistency fixes go inline —
324
+ note them at handoff.
296
325
 
297
326
  ---
298
327
 
299
- ## Step 6: Annotation
300
-
301
- Human may annotate the spec directly — adding corrections, rejections, domain knowledge,
302
- or "remove this section entirely."
303
-
304
- When they say "I added notes":
328
+ ## Step 5: Handoff
305
329
 
306
- 1. Re-read the full document
307
- 2. Address every note
308
- 3. Update the spec
309
- 4. Run the self-review checklist again (Step 5)
310
- 5. **Do not move to planning**
330
+ **Tell the human:**
311
331
 
312
- This may repeat 1-6 times. Spec is not approved until human explicitly says so.
332
+ > "Spec written to `docs/specs/<path>`. Every section was approved during our
333
+ > conversation — review it if you'd like, or we can go straight to the
334
+ > implementation plan. Ready for spec-plan?"
313
335
 
314
- ---
315
-
316
- ## Handoff
336
+ If the human requests changes — in conversation or by annotating the file —
337
+ address every note, update the spec, and re-run the self-review. If a change
338
+ alters the substance of an approved section, re-present that section for
339
+ approval before continuing.
317
340
 
318
- When the spec is approved, the next step is **spec-plan**.
319
-
320
- > "Spec is approved. Ready to write the implementation plan?"
341
+ The next step is **spec-plan**. Do not start planning without the human's
342
+ go-ahead. Do not write code.
321
343
 
322
344
  If planning reveals design flaws, loop back to research. See **spec-orchestrator**
323
345
  for iteration patterns.
324
-
325
- Do not start planning without explicit approval. Do not write code.
@@ -2,8 +2,9 @@
2
2
  name: spec-finish
3
3
  description: >
4
4
  Post-implementation completion workflow. Use after spec-implement completes to validate,
5
- review, create stacked commits, and prepare for PR. Triggers when implementation is done,
6
- when the user says "finish", "done", "complete", or after implementation tasks are finished.
5
+ review, create stacked commits, and open a PR via code-pull-request. Triggers when
6
+ implementation is done, when the user says "finish", "done", "complete", or after
7
+ implementation tasks are finished.
7
8
  user-invocable: true
8
9
  ---
9
10
 
@@ -99,29 +100,26 @@ Use the Skill tool to invoke code-review skill for comprehensive code review.
99
100
 
100
101
  ## Step 4: Update Documentation
101
102
 
102
- Optional - use code-docs skill if needed.
103
-
104
103
  ### Check for Updates
105
104
  - README changes needed?
106
105
  - API documentation updated?
107
106
  - Changelog updated?
108
107
 
109
108
  ### If documentation needed
110
- - Load code-docs
111
109
  - Update relevant docs
112
110
  - Commit with docs
113
111
 
114
112
  ---
115
113
 
116
- ## Step 5: Prepare for PR
114
+ ## Step 5: Open the PR
115
+
116
+ Steps 1-4 (validate, review, stack commits, update docs) must all be complete
117
+ before proceeding. **If code-review found blocking issues, stop — return to
118
+ spec-implement to fix them. Do not proceed to Step 5b.**
117
119
 
118
- ### Verify
119
- - All tests passing
120
- - All reviews complete
121
- - Documentation updated
122
- - Commits stacked properly
120
+ ### Step 5a: Present Completion Summary
123
121
 
124
- ### Summary for Human
122
+ Before creating the PR, present a summary to the human:
125
123
 
126
124
  ```
127
125
  ## Completion Summary
@@ -130,13 +128,21 @@ Optional - use code-docs skill if needed.
130
128
  **Tests:** [passed/failed]
131
129
  **Type Check:** [passed/failed]
132
130
  **Lint:** [passed/failed]
131
+ **Review:** [passed/issues found]
133
132
  **Commits:** [N commits in stack]
134
133
  **Ready for PR:** [yes/no]
135
134
  ```
136
135
 
136
+ ### Step 5b: Invoke code-pull-request
137
+
138
+ Only when the summary shows **Ready for PR: yes**, invoke the
139
+ [code-pull-request](../code-pull-request/SKILL.md) skill to create the PR. It
140
+ detects the platform (GitHub/GitLab), checks for an existing PR, finds a
141
+ template, generates the body from commits, and opens the PR via `gh` or `glab`.
142
+
137
143
  ### Handoff
138
144
 
139
- > "Implementation complete. [N] commits stacked. Ready for [submit/open PR]."
145
+ > "Implementation complete. [N] commits stacked. Opening PR now."
140
146
 
141
147
  ---
142
148
 
@@ -145,7 +151,7 @@ Optional - use code-docs skill if needed.
145
151
  This skill orchestrates other skills:
146
152
 
147
153
  - Invokes code-review for quality check
148
- - Invokes code-docs if documentation needs updates
154
+ - Invokes code-pull-request as the final step to open the PR
149
155
 
150
156
  ---
151
157
 
@@ -108,8 +108,9 @@ Update the todo status to in_progress.
108
108
  Read the task's **inputs** first — understand what context you need.
109
109
  Then read the **description** — know what to build and the constraints.
110
110
 
111
- Invoke **oracle-testing** for test design. Write tests that cover the validation
112
- criteria before writing implementation.
111
+ Write tests that cover the validation criteria before writing implementation.
112
+ Invoke `typescript-testing` or `python-testing` (whichever matches the project)
113
+ for test design patterns when needed.
113
114
 
114
115
  ```
115
116
  1. Read task inputs and description
@@ -50,8 +50,6 @@ spec-plan → Implementation plan + tasks → plan.json
50
50
  spec-implement → Execute tasks, track progress, report
51
51
  spec-finish → Post-implementation validation
52
52
  code-subagents → Parallel dispatch, two-stage review
53
- oracle-architect → DDD patterns, component responsibilities
54
- oracle-testing → TDD patterns, boundary testing
55
53
  ```
56
54
 
57
55
  ### "Create a spec for X" / Build / Add Feature
@@ -66,18 +64,6 @@ spec-brainstorm → spec-plan → spec-implement → spec-finish
66
64
  spec-brainstorm (research-heavy) → spec-plan (targeted) → spec-implement
67
65
  ```
68
66
 
69
- ### Write Tests / Testing Questions
70
-
71
- ```
72
- oracle-testing
73
- ```
74
-
75
- ### Architecture / Domain Modeling Questions
76
-
77
- ```
78
- oracle-architect
79
- ```
80
-
81
67
  ### Quick Fix / Trivial Change
82
68
 
83
69
  If genuinely trivial (typo, single-line config, variable rename) — skip the pipeline.
@@ -145,9 +131,12 @@ If you loop 2+ times on the same issue, stop and ask the human:
145
131
  **Process skills** (spec-brainstorm, spec-plan, spec-implement, spec-finish): Follow exactly.
146
132
  Don't adapt away discipline.
147
133
 
148
- **Knowledge skills** (oracle-architect, oracle-testing): Adapt principles to
134
+ **Knowledge skills** (oracle-grill-me, oracle-domain-modelling): Adapt principles to
149
135
  context. These inform decisions within the workflow.
150
136
 
137
+ **Discipline skills** (oracle-debug): Strict methodology that must be followed
138
+ exactly — no adaptation that bypasses root-cause investigation.
139
+
151
140
  Process skills come first. Knowledge skills get invoked by process skills when needed.
152
141
 
153
142
  ## User Instructions
@@ -130,7 +130,7 @@ not HOW to write the code.
130
130
 
131
131
  ### Task ordering
132
132
 
133
- Follow bottom-up dependency ordering from oracle-architect:
133
+ Follow bottom-up dependency ordering:
134
134
 
135
135
  ```
136
136
  Entity → Repository → Service → Router/Consumer
package/agents/scout.md DELETED
@@ -1,40 +0,0 @@
1
- ---
2
- name: scout
3
- description: Fast codebase reconnaissance and exploration, concise summarization of findings, precise location of relevant context, and efficient workspace preparation through targeted file operations and template application
4
- model: minimax-m2.7
5
- ---
6
-
7
- You are the **Scout**, a fast reconnaissance agent. Your job is to explore codebases, summarize what you find, highlight relevant context, and point others to exactly where things live. You move quickly, read minimally, and never break existing work.
8
-
9
- ## Role
10
-
11
- - Explore and map codebase structure, conventions, and key files
12
- - Summarize findings with clear, concise overviews
13
- - Highlight relevant context and explain why it matters
14
- - Point to exact locations (file paths, line numbers, symbol names) so others can dive deeper
15
- - Retrieve targeted snippets on request—never dump full files unless necessary
16
- - Create files from templates and set up directory structures when asked
17
- - Respect existing files—never overwrite without explicit direction
18
-
19
- ## Skills
20
-
21
- Before beginning work, scan your environment for relevant skills and load any that apply to the task at hand. Use them to guide how you explore, summarize, and present your findings.
22
-
23
- ## Checklist
24
-
25
- Before finishing, confirm you have:
26
-
27
- - [ ] Retrieved only the specific context requested (no unnecessary full-file reads)
28
- - [ ] Verified the target file does not already exist before creating
29
- - [ ] Created parent directories as needed
30
- - [ ] Applied all relevant variable substitutions when using templates
31
- - [ ] Confirmed the output matches the request exactly
32
- - [ ] Reported what was created, retrieved, or modified
33
-
34
- ## Boundaries
35
-
36
- - DO handle file operations and retrieval efficiently
37
- - DO create files and directories as requested
38
- - DON'T make design or architectural decisions
39
- - DON'T conduct requirements discovery
40
- - NEVER overwrite existing files unless explicitly told to
@@ -1,145 +0,0 @@
1
- # Pull Request Workflow
2
-
3
- Creating GitHub pull requests via the `gh` CLI.
4
-
5
- ## Prerequisites
6
-
7
- - `gh` CLI installed and authenticated: `gh auth status`
8
- - Remote `origin` points to GitHub: `git remote -v`
9
- - On a feature branch (not main): `git branch --show-current`
10
-
11
- ## Check for Project Template
12
-
13
- Before creating a PR, check if the project has its own PR template:
14
-
15
- ```bash
16
- # Check for PR template in .github/
17
- ls .github/PULL_REQUEST_TEMPLATE.md 2>/dev/null || echo "No project template found"
18
- ```
19
-
20
- **If found:** Use it. The `gh pr create` command will automatically pick it up.
21
-
22
- **If not found:** Use the minimal template below.
23
-
24
- ---
25
-
26
- ## Create Pull Request
27
-
28
- ### Option 1: Auto-fill from commits (recommended)
29
-
30
- ```bash
31
- gh pr create --fill
32
- ```
33
-
34
- This uses the commit messages as the PR title and body. Best when commits are clean and conventional.
35
-
36
- ### Option 2: Interactive
37
-
38
- ```bash
39
- gh pr create
40
- ```
41
-
42
- Opens an editor with the template. Fill in title and body interactively.
43
-
44
- ### Option 3: Inline (for simple PRs)
45
-
46
- ```bash
47
- gh pr create --title "feat(auth): add JWT authentication" --body "Implements token-based auth with refresh support."
48
- ```
49
-
50
- ---
51
-
52
- ## PR Title Format
53
-
54
- Follow conventional commit style for PR titles:
55
-
56
- ```
57
- <type>(<scope>): <description>
58
- ```
59
-
60
- Examples:
61
- - `feat(api): add user profile endpoint`
62
- - `fix(db): resolve connection pool leak`
63
- - `docs(readme): update installation instructions`
64
-
65
- ---
66
-
67
- ## PR Body Template (fallback if no project template)
68
-
69
- ```markdown
70
- ## Description
71
- <!-- What does this PR do? -->
72
-
73
- ## Changes
74
- <!-- What changed? -->
75
-
76
- ## Testing
77
- <!-- How was this tested? -->
78
-
79
- ## Checklist
80
- - [ ] Tests pass
81
- - [ ] Commits follow conventional format
82
- - [ ] Documentation updated (if needed)
83
- ```
84
-
85
- ---
86
-
87
- ## Linking Issues
88
-
89
- Add issue references in the PR body:
90
-
91
- ```markdown
92
- Closes #123
93
- Fixes #456
94
- Relates to #789
95
- ```
96
-
97
- This auto-closes linked issues when the PR merges.
98
-
99
- ---
100
-
101
- ## Draft PRs
102
-
103
- For work-in-progress PRs:
104
-
105
- ```bash
106
- gh pr create --draft
107
- ```
108
-
109
- Mark as ready later:
110
-
111
- ```bash
112
- gh pr ready <pr-number>
113
- ```
114
-
115
- ---
116
-
117
- ## Review Requests
118
-
119
- Request reviewers after creating the PR:
120
-
121
- ```bash
122
- gh pr edit <pr-number> --add-reviewer username
123
- ```
124
-
125
- Or add via the GitHub web UI.
126
-
127
- ---
128
-
129
- ## Verify PR Created
130
-
131
- ```bash
132
- gh pr view --web # Open in browser
133
- gh pr status # Show PR status
134
- ```
135
-
136
- ---
137
-
138
- ## Common Mistakes
139
-
140
- | Mistake | Fix |
141
- |---------|-----|
142
- | PR from main branch | Switch to feature branch first |
143
- | No remote | `git remote add origin <url>` |
144
- | Unpushed commits | `git push -u origin <branch>` |
145
- | PR body is empty | Use `--fill` or write a description |