-
Notifications
You must be signed in to change notification settings - Fork 510
[feat] Clean up workflows #4022
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
69cd315
4348604
2ee2111
dd8eb25
21d3a36
7016dbd
5b8447b
1a4b741
278b73e
02959b3
ab32035
8943270
b8b42b0
6467c06
b2a3cee
aa00d75
3ebe665
71fadbe
bcdd36c
3908607
5b4b5aa
ba5a61b
bcacf6b
460f393
530c5ee
3b89950
95366ce
b70cb94
96da626
2134d47
97251c8
0e2e1ec
62f3ae5
1e23ab0
be58768
ea30b3a
7c02a31
0d33c96
866e1dd
12a6df4
924281e
7e61712
2ef48ef
a8e20ab
20b85ac
6abcad6
86c347a
b2b19a8
70b9ab0
6688705
51929bc
09fe3c8
185f259
c671d1a
262fc8d
6fffa27
746a78a
9ee3ae2
6b9d4ec
eb1e10c
0e3c896
0c28bd0
8a28b9f
1d86cdf
05ac918
85998d8
8280174
d9ed2e5
b4929cc
3bf07f3
22f5809
caa7d27
d3a09f1
3e6086b
68e9e45
cf256f2
2e6b5df
28bec8a
bc50bdd
0375544
fcfe09a
5e6a07b
287d84a
2e01451
cfefd0b
440d9ca
0fa2c83
6945d56
8ff95e5
b60cc31
59c3581
f267ba9
52bd059
8d38e41
5e88b21
91c35a2
bbf5a9e
fb5172f
c329cf9
bffaad5
c8d1a16
547c9f9
766b192
57b7a3f
a9a0fa2
6d0497d
4246b7d
1660b5d
31abe0d
629d264
08d0c35
bdcac56
a71de36
736aaa8
b279fc6
7cf51cb
5014660
377efee
6fe4184
87aff36
91b7c9c
1e6ac75
2ce0287
5a801b8
a4dee05
1f397da
4dd898f
440d430
8df33fe
0ff6eab
c97ca39
47112cd
99807db
629d6d8
7693d80
ba6c58c
94cc398
a2370e2
bd495f0
7eb8630
94aaab3
80231e8
16482b8
dc821f1
f89958e
bed2499
4b2e7e8
6cc9451
ff31b82
adb03e2
3f24a65
f7150ad
f0e6ee7
9612550
34d815c
09199a5
9c22929
aef08c8
1c59228
d12365a
6b51460
adb5737
82f22de
8f7e92f
e6d2e62
8fbdb87
843a781
4875960
61c56dc
89c37d1
f00030c
2f2c199
c394b2f
4341023
f2b4502
ddceb81
c578229
363265b
88e4a89
40db7b4
fe51b1b
2aff33e
c6608f7
14b3c11
122d7f1
4b8c9a4
53ccd7a
a1659e7
cffa215
900e865
02ece62
dc08d8b
02899d9
eb571e9
7adb91d
a77147e
6580657
c3fd772
9fac2cf
6a68b08
77e3ce1
62cff22
52df494
e39015c
9e3f743
2348dc1
1b4bef0
cc2356c
12e3d78
a05b3dd
ba4eb30
be30bc3
5d53340
2c70b19
2d567f3
95a8fd1
8cbec3c
b4c91e4
1dbd279
9e4be13
bd49c3c
ca0ec22
eaa9a7d
fc69ab5
0c3acb8
a8215b4
0704b93
a9b9d1f
2dca9d1
957fc16
c39527c
e9caa72
7334172
31a1632
7e981fa
d9a624a
f6da89c
1fa63f7
b69234c
e75ca04
659058c
c16cf9c
736f723
8ade0b9
8701400
644526d
46ae7b7
61dcb90
6862168
d50db1d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,11 +1,28 @@ | ||
| repos: | ||
| - repo: https://github.com/astral-sh/ruff-pre-commit | ||
| rev: v0.11.2 | ||
| hooks: | ||
| - id: ruff-format | ||
| - id: ruff | ||
| - repo: local | ||
| hooks: | ||
| - id: ruff-format | ||
| name: ruff format | ||
| entry: python3 -m ruff format | ||
| language: system | ||
| types: [python] | ||
| - id: ruff-check | ||
| name: ruff check | ||
| entry: python3 -m ruff check | ||
| language: system | ||
| types: [python] | ||
|
Comment on lines
1
to
+13
|
||
| - id: prettier-format | ||
| name: prettier --write (web) | ||
| entry: bash -c 'cd web && pnpm exec prettier --write --cache --log-level warn "**/*.{js,jsx,cjs,mjs,ts,tsx,cts,mts,mdx}" --ignore-path ./ee/.gitignore --ignore-path ./oss/.gitignore' | ||
| language: system | ||
|
junaway marked this conversation as resolved.
|
||
| files: ^web/.*\.(js|jsx|cjs|mjs|ts|tsx|cts|mts|mdx)$ | ||
| pass_filenames: false | ||
| - id: turbo-lint | ||
| name: turbo lint (web) | ||
| entry: bash -c 'cd web && if [ "$(sysctl -in hw.optional.arm64 2>/dev/null || echo 0)" = "1" ] && [ "$(node -p "process.arch")" = "x64" ]; then arch -arm64 pnpm exec turbo run lint; else pnpm exec turbo run lint; fi' | ||
| language: system | ||
|
junaway marked this conversation as resolved.
|
||
| files: ^web/.*\.(js|jsx|cjs|mjs|ts|tsx|cts|mts|mdx)$ | ||
| pass_filenames: false | ||
|
Comment on lines
+14
to
+25
Comment on lines
2
to
+25
junaway marked this conversation as resolved.
|
||
| - id: gitleaks-pre-commit | ||
| name: gitleaks git (staged only) | ||
| entry: bash -c 'gitleaks --config .gitleaks.toml --exit-code 1 --verbose git --staged' | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,213 @@ | ||
| # Findings Skills | ||
|
|
||
| This folder contains the canonical skill definitions for findings-driven review work in this repo. | ||
|
|
||
| The workflow is organized around five generic skills: | ||
|
|
||
| 1. `scan-codebase` | ||
| 2. `test-codebase` | ||
| 3. `sync-findings` | ||
| 4. `triage-findings` | ||
| 5. `resolve-findings` | ||
|
|
||
| The split is by activity, not by a CR/QA lane name: | ||
|
|
||
| - `scan-codebase` is verification-oriented review from code and docs into findings | ||
| - `test-codebase` is validation-oriented execution from tests and runtime behavior into findings | ||
| - `sync-findings` keeps GitHub and the findings record aligned | ||
| - `triage-findings` is the discussion and planning layer | ||
| - `resolve-findings` is the execution layer back into code, tests, and docs | ||
|
|
||
| All skills accept optional `path=`. | ||
|
|
||
| - If `path` is provided, use that local design or findings folder. | ||
| - If `path` is omitted, infer it and state the inferred value before starting. | ||
|
|
||
| Preferred master document: | ||
|
|
||
| - `findings.md` | ||
|
|
||
| Shared references: | ||
|
|
||
| - `shared/references/findings.schema.md` | ||
| - `shared/references/findings.lifecycle.md` | ||
|
|
||
| ## Diagram | ||
|
|
||
| ```text | ||
| Git / PR / Review Threads | ||
| ^ | ||
| | sync-findings | ||
| v | ||
| Code + Docs -- scan-codebase --> Findings <-- test-codebase -- Tests / Runtime / Docs | ||
| | | ||
| v | ||
| triage-findings | ||
| | | ||
| v | ||
| resolve-findings | ||
| | | ||
| v | ||
| Code / Tests / Docs | ||
| ``` | ||
|
|
||
| ## Invocation | ||
|
|
||
| For Codex: | ||
|
|
||
| - invoke a skill with `$skill-name` | ||
| - `agents/skills/` is the canonical source, but Codex auto-discovers from `~/.codex/skills` | ||
| - if a skill does not appear under `$`, refresh the symlink or install it into `~/.codex/skills` and reload Codex | ||
|
|
||
| For Claude: | ||
|
|
||
| - invoke a project skill with `/project:skill-name` when your Claude client exposes project skills that way | ||
| - otherwise use the Claude project skills picker after reloading the project | ||
| - `.claude/skills/` contains the Claude-facing wrappers for the canonical skills in `agents/skills/` | ||
|
|
||
| ## Skills | ||
|
|
||
| ### `scan-codebase` | ||
|
|
||
| Use for a fresh-context scan of code and docs that turns review observations into findings. | ||
|
|
||
| Parameters: | ||
|
|
||
| - `path=<local-folder>` optional | ||
| - `depth=deep` by default | ||
| - supported values: `shallow`, `deep` | ||
|
|
||
| Use when: | ||
|
|
||
| - you want a review pass anchored in current code and docs | ||
| - you want verification findings before planning | ||
| - you want to surface missing tests or coverage gaps as review findings without running tests yet | ||
|
|
||
| For Codex: | ||
|
|
||
| ```text | ||
| $scan-codebase | ||
| ``` | ||
|
|
||
| For Claude: | ||
|
|
||
| ```text | ||
| /project:scan-codebase | ||
| ``` | ||
|
|
||
| ### `test-codebase` | ||
|
|
||
| Use to run or inspect the relevant validation paths and turn failures, regressions, or missing coverage into findings. | ||
|
|
||
| Parameters: | ||
|
|
||
| - `path=<local-folder>` optional | ||
| - `depth=deep` by default | ||
| - supported values: `shallow`, `deep` | ||
|
|
||
| Use when: | ||
|
|
||
| - you want validation findings from actual test execution or targeted repro | ||
| - you want to confirm whether missing or broken behavior is observable | ||
| - you want missing test coverage turned into findings | ||
|
|
||
| For Codex: | ||
|
|
||
| ```text | ||
| $test-codebase | ||
| ``` | ||
|
|
||
| For Claude: | ||
|
|
||
| ```text | ||
| /project:test-codebase | ||
| ``` | ||
|
|
||
| ### `sync-findings` | ||
|
|
||
| Use to sync the findings record against local review artifacts and optionally a GitHub PR. | ||
|
|
||
| Parameters: | ||
|
|
||
| - `path=<local-folder>` optional | ||
| - `url=<github-pr-url>` for remote + local sync | ||
| - omitted `url` means local-only sync | ||
|
|
||
| Use when: | ||
|
|
||
| - you want findings updated from open PR comments or local notes | ||
| - you want clearly closed threads acknowledged and resolved | ||
| - you want the master findings file to match current GitHub state and current local code state | ||
|
|
||
| For Codex: | ||
|
|
||
| ```text | ||
| $sync-findings | ||
| ``` | ||
|
|
||
| For Claude: | ||
|
|
||
| ```text | ||
| /project:sync-findings | ||
| ``` | ||
|
|
||
| ### `triage-findings` | ||
|
|
||
| Use to coordinate the next review or testing actions with the user and turn findings into a plan. | ||
|
|
||
| Parameters: | ||
|
|
||
| - `path=<local-folder>` optional | ||
| - `url=<github-pr-url>` optional when PR context matters | ||
|
|
||
| Use when: | ||
|
|
||
| - you need follow-up questions answered before acting | ||
| - you need to decide whether to run `scan-codebase`, `test-codebase`, or `sync-findings` | ||
| - you need severity, confidence, status, owner questions, and next action clarified | ||
|
|
||
| For Codex: | ||
|
|
||
| ```text | ||
| $triage-findings | ||
| ``` | ||
|
|
||
| For Claude: | ||
|
|
||
| ```text | ||
| /project:triage-findings | ||
| ``` | ||
|
|
||
| ### `resolve-findings` | ||
|
|
||
| Use to implement the chosen fix path for findings and update the findings record afterward. | ||
|
|
||
| Parameters: | ||
|
|
||
| - `path=<local-folder>` optional | ||
| - default `priority=next-highest` | ||
| - explicit values: `P0`, `P1`, `P2`, `P3`, `all` | ||
|
|
||
| Default behavior: | ||
|
|
||
| - if unresolved findings exist at `P0`, resolve `P0` on this run | ||
| - if `P0` is exhausted, the next run resolves `P1` | ||
| - then `P2`, then `P3` | ||
|
|
||
| Use when: | ||
|
|
||
| - findings are implementation-ready or nearly so | ||
| - you want code, test, and docs changes applied | ||
| - you want targeted verification or validation rerun after the fix | ||
|
|
||
| For Codex: | ||
|
|
||
| ```text | ||
| $resolve-findings | ||
| ``` | ||
|
|
||
| For Claude: | ||
|
|
||
| ```text | ||
| /project:resolve-findings | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| --- | ||
| name: resolve-findings | ||
| description: Resolve findings by implementing the chosen fix path in code, tests, or docs. Accept optional `path` and a `priority` selector; by default resolve only the next highest remaining priority bucket, in order `P0`, `P1`, `P2`, `P3`. Also accept explicit levels or `all`. Default to `path=infer`. Confirm effective variables before starting. | ||
| --- | ||
|
|
||
| # Resolve Findings | ||
|
|
||
| Read these shared references when needed: | ||
|
|
||
| - `../shared/references/findings.schema.md` | ||
| - `../shared/references/findings.lifecycle.md` | ||
|
|
||
| ## Role | ||
|
|
||
| Resolve is execution mode from findings back into code, tests, and docs. | ||
|
|
||
| - It may change production code for verification findings. | ||
| - It may change tests or test harnesses for validation findings. | ||
| - It should update the active findings record after implementation and rerun targeted checks when feasible. | ||
|
|
||
| ## Priority Input | ||
|
|
||
| Accept a `priority` parameter from the prompt: | ||
|
|
||
| - omitted priority: resolve the next highest remaining bucket only | ||
| - explicit level: `P0`, `P1`, `P2`, or `P3` | ||
| - `all`: resolve all remaining buckets | ||
|
|
||
| Default: | ||
|
|
||
| - `priority=next-highest` | ||
|
|
||
| ## Path Input | ||
|
|
||
| Accept an optional `path` from the prompt. | ||
|
|
||
| - If `path` is provided, use it as the local design or findings folder. | ||
| - If `path` is omitted, infer it from the branch, subsystem, or matching docs and state the inferred value before starting. | ||
|
|
||
| Default: | ||
|
|
||
| - `path=infer` | ||
|
|
||
| ## Workflow | ||
|
|
||
| 1. Determine the selected bucket. | ||
| Confirm the effective variables first: | ||
| - `path` | ||
| - `priority` | ||
| - target findings files when inferable | ||
|
|
||
| Use the requested `priority`, or the next highest unresolved bucket in the active findings record. | ||
|
|
||
| 2. Load the active findings record. | ||
| Use `path/findings.md`. | ||
|
|
||
| 3. Check readiness before coding. | ||
| If the intended resolution path, policy boundary, or data contract is still ambiguous, ask the next follow-up question before editing. | ||
|
|
||
| 4. Implement the selected fixes. | ||
| Make the smallest coherent set of code, test, and doc changes needed for the selected findings bucket. | ||
|
|
||
| 5. Re-run targeted checks. | ||
| Use the narrowest useful verification or validation pass that demonstrates the fix. | ||
|
|
||
| 6. Update the findings record. | ||
| Move findings between open and closed sections, preserve notes and open questions ordering, and record what was fixed or what remains blocked. | ||
|
|
||
| ## Rules | ||
|
|
||
| - Do not hide ambiguity behind `open` or `needs-user-decision` when the user already started answering. Ask the next concrete question. | ||
| - Do not silently widen scope from the selected priority bucket unless the fix is tightly coupled. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| interface: | ||
| display_name: "Resolve Findings" | ||
| short_description: "Implement fixes from findings" | ||
| default_prompt: "Use $resolve-findings with priority=next-highest to implement the next unresolved findings bucket and update the findings record." | ||
|
|
||
| policy: | ||
| allow_implicit_invocation: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Switching to
language: systemhooks makespre-commitnon-hermetic: contributors/CI must have compatibleruff/node/turboversions installed globally, and hook behavior can drift over time. Prefer using the officialruff-pre-commitrepo with a pinnedrev(orlanguage: pythonwithadditional_dependencies) and similarly pin node tooling via a managed runner (or a pre-commit mirror) to keep formatting/lint stable and reproducible.