development
Skill514 starsChanged 8 days agoMITView on GitHub
Feature and bug-fix development checklist for the Rstest monorepo. Use when implementing a new feature, fixing a bug, changing public APIs/config/CLI behavior, addressing a GitHub issue or PR request, or assessing cross-package impact before a PR.
- Reads credentials
9 other projects use a version of this.
Adopted by
Most recently taken up by
- jstilb/ai-assistanttheir own version, first seen Oct 30, 2026
- CarriedWorldUniverse/nexustheir own version, first seen Oct 12, 2026
- samchon/nestiatheir own version, first seen Oct 9, 2026
- samchon/ttsctheir own version, first seen Oct 8, 2026
- hitobito/hitobitotheir own version, first seen Oct 8, 2026
- ccusage/ccusagetheir own version, first seen Oct 8, 2026
Used with
Projects with it also use issue-campaign, contracts and 5 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
samchonSkillissue-campaign
Defines the default solo repository-wide issue campaign for typia: exhaustive discovery, lead-vetted issue publication, one unified CI-validated implementation pull request per cycle, solo Self-Review, and repeated rediscovery until a full clean round. Use for broad audits, many issue candidates, or repeated issue-to-pull-request campaigns unless the user explicitly requests parallel or multi-agent execution; do not use for one already-defined issue or an ordinary pull request.
Also in 3 projects that use this
AnthropicSkillcontracts
Answer a question across a corpus of contract documents with verified citations. Use when the user asks what a contract says, which contracts have a clause, what changed between amendments, or any question that needs reading and citing across a set of contract files. The corpus must be on the local filesystem (see README).
Also in 3 projects that use this
MicrosoftSkillpull-request
Write concise, focused pull request descriptions for Wassette — at most three sentences on the what and why, with an explicit note on any breaking public-API change and how users adapt. Use when opening or editing a Wassette pull request.
Also in 3 projects that use this
dragonflydbSkillbenchmark
Benchmark Dragonfly (and compare against Valkey/Redis) on local or remote cloud instances, then produce a performance + memory report with charts and a raw-data appendix. Use this whenever the user runs /benchmark, or asks to benchmark / load-test / measure throughput, QPS, latency, or memory efficiency of Dragonfly or another Redis-compatible server, to compare Dragonfly vs Valkey or Redis, or to generate a benchmark report. Trigger it even when the user just describes the goal ("see how fast Dragonfly is on this box", "compare memory per key vs Valkey") without saying the word "benchmark".
Also in 3 projects that use this
AnthropicSkilldocumentation
Write and maintain technical documentation. Trigger with "write docs for", "document this", "create a README", "write a runbook", "onboarding guide", or when the user needs help with any form of technical writing — API docs, architecture docs, or operational runbooks.
Also in 3 projects that use this
SentrySkillreview
Fixture review skill.
Also in 4 projects that use this
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- ccusage/ccusage★ 19ksame name
- ryoppippi/ccusage★ 19ksame name
- samchon/typia★ 6ksame name
- samchon/nestia★ 2.2ksame name
- hitobito/hitobito★ 485same name
- samchon/ttsc★ 364same name
- mfang0126/openclaw-skills★ 4same name
- CarriedWorldUniverse/nexus★ 0same name
- jstilb/ai-assistant★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- website/AGENTS.mdAGENTS.md
- api-doc-syncSkill
- create-draft-release-notesSkill
- create-release-blogSkill
- pr-creatorSkill
- rstack-docs-writerSkill
- testingSkill
- typescriptSkill
- verifySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. 0 are common, 15 are distinctive, and 13 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
If the request is phrased as "review / verify / assess", treat it as investigation — report findings and confirm before implementing …
- Distinctive: line 17
When the user enumerates a subset ("only the low items", "core field only", "先只加 skip"), implement exactly that subset and stop.
- Distinctive: line 18
If a fix would span multiple clusters or packages, estimate file/PR size and confirm scope before writing code.
- Distinctive: line 29
If you cannot verify, say so explicitly instead of guessing.
- Distinctive: line 33
Before writing code, determine what the change reaches:
- Distinctive: line 58
Do not add new config knobs, buffers, heuristics, timeouts, dependencies, abstractions, or mode-specific hacks (e.g.
- Very specific: line 59
Before adding a top-level config option, prove the existing channel (inlineConfig / run params) cannot express it.
- Very specific: line 60
When aligning behavior with another tool, match the reference impl as the parity target — read its source (the latest upstream clone, per …
- Distinctive: line 64
Every behavioral change — feature or bug fix — must have a corresponding e2e test.
- Very specific: line 78
Run the repro against origin/main (unfixed) → confirm it fails.
- Distinctive: line 79
Run the same repro with your fix applied → confirm it passes.
- Distinctive: line 80
Add the regression test that captures this delta.
- Distinctive: line 82
Never present a hypothesis as a conclusion — state confidence explicitly.
- Distinctive: line 86
Not every feature needs browser mode support, but you must consciously decide rather than ignore it.
- Very specific: line 101
Keep ownership clear: @rstest/browser = host/protocol/scheduling, @rstest/browser-ui = UI, runner/runtime = execution semantics, provider …
- Very specific: line 102
Update packages/browser/ if the runtime behavior differs.
- Very specific: line 103
Add or update browser e2e coverage via the testing skill.
- Very specific: line 104
If the feature requires a new browser fixture, follow the pattern in e2e/browser-mode/fixtures/.
- Very specific: line 105
If the feature involves React component testing, check @rstest/browser-react as well.
- Distinctive: line 109
Add a brief note in the PR explaining why browser mode is unaffected, so reviewers don't have to ask.
- Very specific: line 113
If the new or changed configuration option also exists in Rsbuild, check whether the adapters (@rstest/adapter-rsbuild, …
- Very specific: line 122
If @rstest/core already has an e2e test covering the underlying feature, do not duplicate it in the adapter package.
- Very specific: line 123
Only add a separate adapter e2e test (e2e/adapterTransformImport/) when the transformation itself has complex behavior that unit tests …
- Distinctive: line 127
Update adapter-specific documentation when a new transform is added, so users know which Rsbuild configs are auto-converted.
- Very specific: line 136
Treat this as the routing step: identify that docs must be updated, then inspect the existing docs structure under website/docs/en/ and …
- Very specific: line 137
If the change introduces a new docs surface or convention, follow the established structure in the surrounding guide/config/api pages …
- Distinctive: line 146
Run through this before you consider the work done:
- Distinctive: line 163
When 2+ review comments hit the same code region or invariant, stop and assess for a single root-cause redesign before applying more local …
“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Feature / Bug-Fix development checklist
This skill is a checklist of guardrails for feature and bug-fix work — reminders to catch missing work during development, then hand off to the more specific workflow when needed. The sections roughly follow a task's lifecycle for easy reading, but treat them as prompts to apply where relevant, not a rigid pipeline.
Confirm intent & scope
Decide what the task actually is before doing any work.
- If the request is phrased as "review / verify / assess", treat it as investigation — report findings and confirm before implementing anything.
- When the user enumerates a subset ("only the low items", "core field only", "先只加 skip"), implement exactly that subset and stop.
- If a fix would span multiple clusters or packages, estimate file/PR size and confirm scope before writing code. Keep one PR per coherent seam.
Build verified context
Gather the real inputs and ground every claim in something you read this session — never answer from memory or impression.
- For GitHub issues/PRs/checks/reviews, read the linked context before editing; do not implement from the title alone.
- For external repros, reproduce with the smallest command first (workflow:
testing→ External repro projects). - Identify the smallest user-visible behavior, the affected package(s), and the validation path.
- Behavioral, root-cause, version, or package-name claims must cite
path:line— never answer from recall. - To answer "how does vitest/jest/rsbuild/rspack behave?", read the latest upstream source, not the built
node_modulesdist: if a local clone exists (e.g.~/Projects/vitest), bring it up to the latest default branch before reading (git pull— agit fetchalone leaves the working tree stale); otherwise shallow-clone fresh (vitest →vitest-dev/vitest; rsbuild/rspack →web-infra-dev/{rsbuild,rspack};npm view <pkg> repositoryfinds others). Prefer a subagent for the lookup. - If you cannot verify, say so explicitly instead of guessing.
Map the blast radius
Before writing code, determine what the change reaches:
| Question | Action |
| Which packages are touched? | List them (@rstest/core, @rstest/browser, etc.) |
| Does it affect the public API or config schema? | If yes → docs update required |
| Does it change behavior in Node mode? | If yes → unit tests + e2e required |
| Does it change behavior in browser mode? | If yes → browser e2e required; see Browser Mode Impact |
| Could it affect both Node and browser modes? | Evaluate both; see Browser Mode Impact |
| Is the config option also present in Rsbuild? | If yes → adapter sync required; see Adapter Impact |
Public API / config / CLI checklist
For public API/config/CLI changes, check the full surface in one pass:
- Canonical type/default/normalization/runtime consumer.
- CLI flag/help/output/error text when applicable.
- Adapters (
rsbuild,rslib,rspack), browser mode, and docs (en,zh,ApiMeta) impact. - Unit tests for internals/transforms; e2e tests for user-facing behavior.
Implement the minimal Root-Cause fix
Make the smallest design change that resolves the root cause — this is where design-scope decisions belong. For in-file code quality (any/as, defensive checks, one-use abstractions, single source of truth, catch-and-rethrow), defer to the typescript skill rather than restating its rules here.
- Fix at the single origin of the bug with the fewest lines. Find the one source, not N symptoms.
- Do not add new config knobs, buffers, heuristics, timeouts, dependencies, abstractions, or mode-specific hacks (e.g. string-replacing the Rspack runtime) unless the user asks. Surface any such need as an explicit decision point or follow-up issue — never take the shortcut silently.
- Before adding a top-level config option, prove the existing channel (
inlineConfig/ run params) cannot express it. - When aligning behavior with another tool, match the reference impl as the parity target — read its source (the latest upstream clone, per Build Verified Context), not the
node_modulesdist. Don't harden edges beyond it.
Prove it empirically
Every behavioral change — feature or bug fix — must have a corresponding e2e test. Unit tests alone are not enough; e2e tests verify the full CLI → runner → reporter pipeline.
Decide whether test work is required here. For test layout, fixture strategy, rebuild requirements, and exact commands, switch to the testing skill. For what counts as evidence that the change works — forbidden proxy signals, per-change-shape observation standards — defer to the verify skill rather than restating its rules here.
When test work is required
- New feature or config behavior → add or extend an e2e test that exercises the user-facing flow.
- Bug fix → add a regression test that fails before the fix and passes after it.
- Internal refactor with no observable behavior change → evaluate whether existing coverage is enough, and note why if no new test is added.
Bug-Fix Tests (Flip-and-Verify)
Prove the repro both ways before claiming a fix:
- Run the repro against
origin/main(unfixed) → confirm it fails. - Run the same repro with your fix applied → confirm it passes.
- Add the regression test that captures this delta.
Never present a hypothesis as a conclusion — state confidence explicitly; "I believe" is not "verified".
Browser mode impact
Not every feature needs browser mode support, but you must consciously decide rather than ignore it.
When browser mode needs changes
- The feature touches test execution, module resolution, or runtime APIs → likely affects browser mode.
- The feature adds a new config option → check if it should apply in browser mode too.
- The feature modifies the reporter, CLI output, or test filtering → usually Node-only, but verify.
When browser mode does NOT need changes
- Pure Node-specific features (e.g.,
process.envhandling, Node module mocking). - Internal refactors that don't change the runtime contract.
If browser mode is affected
- Keep ownership clear:
@rstest/browser= host/protocol/scheduling,@rstest/browser-ui= UI, runner/runtime = execution semantics, provider packages = provider behavior. - Update
packages/browser/if the runtime behavior differs. - Add or update browser e2e coverage via the
testingskill. - If the feature requires a new browser fixture, follow the pattern in
e2e/browser-mode/fixtures/. - If the feature involves React component testing, check
@rstest/browser-reactas well.
If browser mode is not affected
Add a brief note in the PR explaining why browser mode is unaffected, so reviewers don't have to ask.
Adapter impact
If the new or changed configuration option also exists in Rsbuild, check whether the adapters (@rstest/adapter-rsbuild, @rstest/adapter-rslib) need to transform it.
When adapters need updates
- The config option maps to an equivalent Rsbuild/Rslib config field → the adapter must translate it so users' existing Rsbuild configs work seamlessly.
- A new rstest config is introduced that overlaps with Rsbuild concepts (e.g., resolve, output, source) → evaluate whether the adapter should auto-convert.
Testing adapters
- If
@rstest/corealready has an e2e test covering the underlying feature, do not duplicate it in the adapter package. Prefer a unit test inside the adapter package (packages/adapter-rsbuild/orpackages/adapter-rslib/) that verifies the config transformation logic. - Only add a separate adapter e2e test (
e2e/adapterTransformImport/) when the transformation itself has complex behavior that unit tests cannot adequately cover.
Adapter docs
- Update adapter-specific documentation when a new transform is added, so users know which Rsbuild configs are auto-converted.
Keep docs in sync
Documentation is not a follow-up task — it ships with the code. Do not merge features without docs.
Route the docs work
- Public API, config, CLI, or behavior changes usually require docs updates.
- Treat this as the routing step: identify that docs must be updated, then inspect the existing docs structure under
website/docs/en/andwebsite/docs/zh/to edit the right pages. - If the change introduces a new docs surface or convention, follow the established structure in the surrounding guide/config/api pages instead of guessing a new location.
Docs conventions
- Writing style, format, bilingual sync, and
ApiMetamarker rules are owned bywebsite/AGENTS.md— read it before editing docs rather than restating its rules here. - Signature fidelity: if you changed a public type in
packages/core/src/types/, or edited a**Type:**/**类型:**block, run theapi-doc-syncskill. The doc signatures are hand-written copies of the real types and drift silently (missing overloads, wrong arg order, en/zh divergence);api-doc-syncgrounds them against source andtsc.
Self-Check Before committing
Run through this before you consider the work done:
- Unit tests cover the new/changed logic in the relevant package
- E2E test covers the feature/fix end-to-end (see Prove It Empirically)
- Browser mode impact evaluated — either updated or noted as unaffected
- Adapter sync evaluated — config transforms updated or noted as N/A
- Docs updated in both
en/andzh/ - Public type surface matches docs — TS declarations and
website/docs/{en,zh}agree (e.g.TestOptions.timeout?: numberis reflected fordescribe/test) - Types are correct — no new
anyleaking into public APIs (rule owned by thetypescriptskill) - Unused exports / files checked — run
pnpm run check-unusedbefore wrapping up (rule owned by thetestingskill's validation pass) - Build passes —
pnpm --filter <package> buildsucceeds - Existing tests still pass —
pnpm testand relevant e2e tests green
Handle review feedback by redesign
Review feedback arrives after you commit — resolve it by redesign, not more local patches.
- When 2+ review comments hit the same code region or invariant, stop and assess for a single root-cause redesign before applying more local patches.
- Flag any fix that creates the next finding (self-inflicted), and any field/option consumed only by tests — both are smells that the patch moved the bug rather than fixing it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

