You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
make create-pr, follow-up-on-pr, and http-toolkit-intercept language/framework agnostic
Addresses PR #24 review feedback from @factory-davidgu. Generalize the
three skills away from JS/TS (npm/turbo) and Bun/Node specifics:
- create-pr: describe verification categories and show examples across
ecosystems (JS/TS, Python, Rust, Go, JVM, Ruby) instead of hard-coded
npm/turbo commands.
- follow-up-on-pr: same generalization for the CI-check step.
- http-toolkit-intercept: replace Bun-centric guidance with a runtime
proxy matrix covering Node, Bun, Deno, Python, Go, Ruby, JVM, .NET,
PHP, Rust, curl/shell, and Docker.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: plugins/code-review/skills/create-pr/SKILL.md
+59-53Lines changed: 59 additions & 53 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ description: Create a pull request with Conventional Commits formatting, a templ
5
5
6
6
# Create Pull Request
7
7
8
-
Create a PR with proper conventions: local verification, Conventional Commits title, a templated body, and an optional linked ticket.
8
+
Create a PR with proper conventions: local verification, Conventional Commits title, a templated body, and an optional linked ticket. This skill is language- and framework-agnostic — substitute your project's actual build, lint, test, and format commands where examples are shown.
-**Scope**: Primary workspace affected (use directory name or `monorepo` for cross-cutting changes)
31
-
-**Is this a code change?**: If the PR modifies code (not only docs, markdown, or config-only changes), run the local verification checklist in step 2 before creating the PR.
30
+
-**Scope**: Primary module/package/service affected (use directory name or `monorepo` / `repo` for cross-cutting changes)
31
+
-**Is this a code change?**: If the PR modifies source code (not only docs, markdown, or config-only changes), run the local verification checklist in step 2 before creating the PR.
32
32
33
33
### 2. Local Verification (for code changes)
34
34
35
-
**Skip this step** if the PR only touches documentation, markdown files, or other non-code files. For any change that touches `.ts`, `.tsx`, `.js`, `.jsx`, `.css`, or similar source files, run these checks locally before creating the PR.
35
+
**Skip this step** if the PR only touches documentation, markdown files, or other non-code files. For any change that touches source files, run your project's verification commands locally before creating the PR.
36
36
37
-
Use a filter flag (turbo `--filter`, nx `--projects`, pnpm `--filter`) to target only the affected workspaces when possible — it is faster than running the whole repo.
37
+
Discover the commands by reading the repo root (e.g. `Makefile`, `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `build.gradle`, `mix.exs`, `Gemfile`, `composer.json`, `justfile`, `Taskfile.yml`, `README.md`, or the CI workflow config). Use filter/target flags where available (e.g. `turbo --filter`, `nx --projects`, `pnpm --filter`, `bazel //path/...`, `cargo -p <crate>`, `pytest <path>`, `go test ./<pkg>/...`) to run only the affected portions — it is faster than running the whole repo.
38
38
39
-
#### Typecheck
40
-
```bash
41
-
# Repo-wide
42
-
npm run typecheck
43
-
# Filtered to affected workspaces (preferred — faster)
44
-
npm run typecheck -- --filter=<workspace1> --filter=<workspace2>
45
-
```
39
+
Common verification categories to run when applicable:
46
40
47
-
#### Lint
48
-
```bash
49
-
# Autofix (preferred — fixes formatting + lint in one pass)
50
-
npm run fix
51
-
# Or filtered
52
-
npm run fix -- --filter=<workspace>
53
-
# Lint-only (no autofix)
54
-
npm run lint
55
-
```
41
+
#### Typecheck / Compile
42
+
Run the project's static type check or compile step if it has one.
43
+
44
+
Examples across ecosystems (use whatever the repo defines):
45
+
- TypeScript: `npm run typecheck`, `pnpm -r typecheck`, `tsc --noEmit`
Run the unit/integration tests for affected packages.
64
63
65
-
#### Additional checks (run when relevant)
66
-
-**Knip** (unused exports): `npm run knip` — always run if you added/removed exports.
67
-
-**Depcheck**: `npm run depcheck` — run if you changed dependencies.
68
-
-**Lockfile**: If you modified any `package.json`, run `npm install` at repo root and commit any `package-lock.json` changes. CI fails if the lockfile is out of date.
69
-
-**OpenAPI / codegen**: If your backend has an OpenAPI spec or generated client, regenerate and commit any changes.
70
-
-**Stylelint**: `npm run stylelint` — run if you changed CSS/style files.
64
+
Examples:
65
+
- JS/TS: `npm run test -- --filter=<workspace>`, `pnpm -r test`, `vitest run <path>`, `jest <path>`
Substitute your package manager and check names if you do not use npm / turbo.
72
+
#### Additional checks (run when relevant)
73
+
-**Unused exports / dead code**: Run your project's dead-code check if it has one (e.g. `knip`, `ts-prune`, `vulture` for Python, `deadcode` / `unused` for Go, `cargo udeps` for Rust).
74
+
-**Dependency hygiene**: Run your project's dependency check if it has one (e.g. `depcheck`, `pip check`, `cargo audit`, `bundle audit`).
75
+
-**Lockfile in sync**: If you modified any dependency manifest (`package.json`, `requirements.txt`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `Gemfile`, etc.), run the install command (`npm install`, `pnpm install`, `uv sync`, `poetry lock --no-update`, `cargo update -w`, `go mod tidy`, `bundle install`) and commit any lockfile changes. CI commonly fails if the lockfile is out of date.
76
+
-**Generated code / codegen**: If the repo has an OpenAPI spec, protobuf, GraphQL schema, SQL migrations, or any other generated artifacts, regenerate and commit any changes.
77
+
-**Style / asset linters**: Run stylesheet linters (`stylelint`, etc.) or asset linters if you changed those files.
78
+
-**Security scans**: Run any security/secret scanners configured in the repo (`trivy`, `semgrep`, `gitleaks`, etc.).
73
79
74
80
### 3. Link to a Ticket (optional)
75
81
@@ -85,11 +91,12 @@ Most CI systems can be configured to require the ticket identifier in the PR bod
-`scope`: Workspace name from your `apps/*` or `packages/*` directories, or `monorepo` / `repo` for cross-cutting changes. Multiple scopes can be comma-separated: `fix(a, b, c): ...`
94
+
-`scope`: Name of the affected module/package/service/directory, or `monorepo` / `repo` for cross-cutting changes. Multiple scopes can be comma-separated: `fix(a, b, c): ...`
89
95
90
96
Examples:
91
97
-`feat(web): add dark mode toggle`
92
98
-`fix(cli, daemon): load shell env at entrypoint`
99
+
-`fix(api): handle nil response from upstream`
93
100
-`chore(repo): bump dependencies`
94
101
95
102
### 5. Generate PR Body
@@ -137,25 +144,24 @@ Return the PR URL to the user.
137
144
138
145
## CI Checks Reference (template)
139
146
140
-
These are typical checks that run on every PR. Map them to your repo's actual commands when adapting this skill.
147
+
These are typical check categories that run on every PR. Map them to your repo's actual commands when adapting this skill.
141
148
142
149
### Always-run checks
143
-
|Check| What it does |Local equivalent|
150
+
|Category| What it does |How to find the local command|
144
151
|---|---|---|
145
-
|**Typecheck**|`npm run typecheck`|`npm run typecheck` (or `--filter=<workspace>`) |
146
-
|**ESLint**|`npm run lint`|`npm run lint` or `npm run fix`|
### Conditional checks (run only when affected files change)
156
-
-**OpenAPI validation**: Triggered by backend API/spec changes. Regenerate locally.
157
-
-**Desktop/mobile build**: Triggered when those apps are affected.
158
-
-**E2E tests**: Triggered when the consumer app is affected.
162
+
-**API / schema validation**: Triggered by API or schema changes. Regenerate locally.
163
+
-**Platform-specific builds**: Triggered when desktop/mobile/embedded targets are affected.
164
+
-**E2E tests**: Triggered when the consumer app or top-level binary is affected.
159
165
160
166
### Typical PR conventions CI enforces
161
167
-**Branch name**: Max length, allowed characters (e.g. `[A-Za-z0-9/-]`).
@@ -164,10 +170,10 @@ These are typical checks that run on every PR. Map them to your repo's actual co
164
170
165
171
## Common Mistakes to Avoid
166
172
167
-
-**Wrong base branch**: Use the branch your org takes PRs into (e.g. `dev`, `main`, `develop`).
173
+
-**Wrong base branch**: Use the branch your org takes PRs into (e.g. `dev`, `main`, `develop`, `trunk`).
168
174
-**Missing scope**: PR title CI check often requires a valid scope.
169
175
-**Missing ticket reference**: Description must reference your ticket ID for CI to pass (except `chore:`/`revert:`).
170
176
-**Forgetting to push**: Branch must be on remote before `gh pr create`.
171
-
-**Lockfile drift**: Always run `npm install`and commit `package-lock.json` after dependency changes.
172
-
-**Skipping local checks on code PRs**: Typecheck, lint, and tests should be run locally before sending out code changes to catch issues early and avoid CI round-trips.
173
-
-**Uncommitted OpenAPI spec / generated client**: After backend API changes, regenerate and commit.
177
+
-**Lockfile drift**: Always run the install command and commit lockfile changes after dependency changes.
178
+
-**Skipping local checks on code PRs**: Typecheck/compile, lint, and tests should be run locally before sending out code changes to catch issues early and avoid CI round-trips.
179
+
-**Uncommitted generated artifacts**: After API/schema changes, regenerate and commit.
Copy file name to clipboardExpand all lines: plugins/code-review/skills/follow-up-on-pr/SKILL.md
+14-12Lines changed: 14 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ description: Follow up on an existing PR by rebasing on the base branch, address
5
5
6
6
# Follow Up on PR
7
7
8
-
Take over an existing PR, bring it up to date, address all feedback, and push it to a merge-ready state.
8
+
Take over an existing PR, bring it up to date, address all feedback, and push it to a merge-ready state. This skill is language- and framework-agnostic — substitute your project's actual build, lint, test, and format commands where examples are shown.
9
9
10
10
## Inputs
11
11
@@ -61,21 +61,23 @@ Review comments were already fetched in step 1. For each unresolved comment:
61
61
62
62
### 5. Run Local CI Checks
63
63
64
-
Run checks targeted to the affected packages. Use your package-manager's filter flag for speed (e.g. turbo `--filter`, nx `--projects`, pnpm `--filter`).
64
+
Run the project's lint, format, typecheck/compile, and test commands for the affected areas. Discover them by reading the repo root (e.g. `Makefile`, `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `build.gradle`, `mix.exs`, `Gemfile`, `composer.json`, `justfile`, `Taskfile.yml`, `README.md`, or the CI workflow config).
65
65
66
-
```bash
67
-
# Example with npm + turbo
68
-
npm run fix -- --filter=<workspace1> --filter=<workspace2>
69
-
npm run typecheck -- --filter=<workspace1> --filter=<workspace2>
70
-
npm run test -- --filter=<workspace1> --filter=<workspace2>
71
-
```
66
+
Prefer filter / target flags to scope runs to the affected areas — it is faster than running the whole repo. Common patterns:
67
+
68
+
- JS/TS monorepos: `npm run test -- --filter=<workspace>`, `pnpm -r --filter <pkg> test`, `nx test <project>`
69
+
- Python: `pytest <path>`, `tox -e <env>`
70
+
- Rust: `cargo test -p <crate>`, `cargo clippy -p <crate>`
71
+
- Go: `go test ./<pkg>/...`, `golangci-lint run ./<pkg>/...`
See the `create-pr` skill's "CI Checks Reference" section for a template of local commands matching common CI checks.
75
+
See the `create-pr` skill's "CI Checks Reference" section for a broader template of local commands matching common CI checks.
74
76
75
77
**Distinguishing pre-existing failures from PR issues:**
76
-
Some CI failures exist on the base branch and are unrelated to the PR. If a failure occurs in a file not touched by the PR, verify it exists on the base branch too before spending time fixing it. Common pre-existing issues include module resolution errors for recently-added dependencies.
78
+
Some CI failures exist on the base branch and are unrelated to the PR. If a failure occurs in a file not touched by the PR, verify it exists on the base branch too before spending time fixing it. Common pre-existing issues include module / package resolution errors for recently-added dependencies.
77
79
78
-
**E2E tests:** If the PR changes user-facing behavior (UI flow, defaults, keyboard handling), E2E tests may break even if the code is correct. Read the failing test to understand what it expects, then update it to match the new behavior. Don't assume E2E failures are flaky — read them first.
80
+
**E2E tests:** If the PR changes user-facing behavior (UI flow, defaults, keyboard handling, CLI output), E2E tests may break even if the code is correct. Read the failing test to understand what it expects, then update it to match the new behavior. Don't assume E2E failures are flaky — read them first.
79
81
80
82
### 6. Commit and Push
81
83
@@ -136,7 +138,7 @@ Use your org's PR template format. Update the testing section to reflect the add
136
138
Before considering the task complete, confirm:
137
139
-[ ] Branch is rebased on the latest base branch
138
140
-[ ] All reviewer comments are addressed with code changes
139
-
-[ ] Local lint, typecheck, and tests pass for affected packages
141
+
-[ ] Local lint, typecheck/compile, and tests pass for affected packages
140
142
-[ ] Changes are pushed to remote
141
143
-[ ] All reviewer comments have replies explaining what was done
Copy file name to clipboardExpand all lines: plugins/debugging/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Tools for inspecting what code actually does at runtime: HTTP traffic, wire-leve
6
6
7
7
### `http-toolkit-intercept`
8
8
9
-
Intercept and debug HTTP traffic from a Bun- or Node-based CLI using HTTP Toolkit. Pairs the outbound proxy log with a machine-readable CLI session log so you can verify LLM API calls, backend requests, auth flows, and wire-level behavior.
9
+
Intercept and debug HTTP traffic from any CLI, service, or script using HTTP Toolkit. Works with any runtime (Node.js, Bun, Deno, Python, Go, Ruby, Java, .NET, Rust, shell, etc.) that respects a proxy. Pairs the outbound proxy log with a machine-readable session log so you can verify LLM API calls, backend requests, auth flows, and wire-level behavior.
0 commit comments