Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions .cursor/rules/general.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,23 @@ alwaysApply: true
- Create a new branch if the current branch is `main`.
- Run any `git` commands sequentially.
- Write tests ONLY if explicitly requested. If requested, follow these rules:
- Continue modifying the tests and code until all tests pass.
- Ensure tests reset any related persistent data, as our test infrastructure does not clear it automatically.
- Prefer actual API calls over mocks. Use mocks when actual calls are impractical, have unintended side effects, or are explicitly requested.
- Continue modifying tests and/or code until all tests pass.
- Ensure tests are idempotent and independent (e.g., reset persistent data) so they can run repeatedly or in parallel.
- Prefer actual API calls over mocks, unless actual calls are impractical, have unintended side effects, or mocks are explicitly requested.
- Always investigate the root cause of a test failure before fixing it.
- Avoid adding wait functions in E2E tests unless you are confident they are necessary.
- Avoid adding wait functions in E2E tests unless strictly necessary.
- When fixing issues, follow these rules:
- Investigate the root cause first (e.g., by gathering debug logs, taking screenshots, etc.).
- Fix the actual root cause instead of applying workarounds.
- After making code changes, run `yarn check-all-for-ai` to execute all tests (takes up to 1 hour), or `yarn check-for-ai` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `check-for-ai`.
- After making code changes, run `yarn verify-full` to execute all tests (takes up to 1 hour), or `yarn verify` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `verify`.
- Use `oxlint` ignore comments with reasons (e.g., `// oxlint-disable-next-line <rule> -- <reason>`) if lint errors or warnings cannot be fixed.
- Once you have verified your changes, commit and push them to the current (non-main) branch, then create a PR via `gh`.
- Follow the conventional commits; your commit message should start with `feat:`, `fix:`, etc.
- If not specified, make sure to add a new line at the end of your commit message with: `Co-authored-by: WillBooster (Cursor) <agent@willbooster.com>`.
- Always create new commits. Avoid using `--amend`.
- Always use heredoc syntax when passing multi-line content to any command.
- Use `wb start --mode test` to launch a web server for debugging or testing.

## Coding Style

Expand All @@ -42,9 +43,10 @@ alwaysApply: true
- Place calling functions above the functions they call to maintain a clear top-down order.
- e.g., `function caller() { callee(); } function callee() { ... }`
- Unlike functions, place variable and type declarations ABOVE their usage.
- Write comments that explain "why" and use JSDoc to explain "what".
- Write comments and JSDoc for complex or hard-to-understand code.
- Explain "why" in comments and "what" in JSDoc.
- Avoid stating what can be easily understood from the code itself.
- Prefer `undefined` over `null` unless explicitly required by APIs or libraries.
- Prefer using a single template literal for prompts instead of `join()` with an array of strings.
- Prefer using a single template literal for prompts instead of `join()` with a pre-computable array literal of strings.
- Assume that all environment variables are properly defined.
- If validation is required, use `assert` to fail fast (e.g., during startup).
5 changes: 3 additions & 2 deletions .gemini/styleguide.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ Review in English based on the following coding standards.
- Place calling functions above the functions they call to maintain a clear top-down order.
- e.g., `function caller() { callee(); } function callee() { ... }`
- Unlike functions, place variable and type declarations ABOVE their usage.
- Write comments that explain "why" and use JSDoc to explain "what".
- Write comments and JSDoc for complex or hard-to-understand code.
- Explain "why" in comments and "what" in JSDoc.
- Avoid stating what can be easily understood from the code itself.
- Prefer `undefined` over `null` unless explicitly required by APIs or libraries.
- Prefer using a single template literal for prompts instead of `join()` with an array of strings.
- Prefer using a single template literal for prompts instead of `join()` with a pre-computable array literal of strings.
- Assume that all environment variables are properly defined.
- If validation is required, use `assert` to fail fast (e.g., during startup).
19 changes: 0 additions & 19 deletions .github/workflows/gen-pr-claude.yml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/workflows/gen-pr-codex.yml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/workflows/gen-pr-gemini.yml

This file was deleted.

18 changes: 10 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,23 @@
- Create a new branch if the current branch is `main`.
- Run any `git` commands sequentially.
- Write tests ONLY if explicitly requested. If requested, follow these rules:
- Continue modifying the tests and code until all tests pass.
- Ensure tests reset any related persistent data, as our test infrastructure does not clear it automatically.
- Prefer actual API calls over mocks. Use mocks when actual calls are impractical, have unintended side effects, or are explicitly requested.
- Continue modifying tests and/or code until all tests pass.
- Ensure tests are idempotent and independent (e.g., reset persistent data) so they can run repeatedly or in parallel.
- Prefer actual API calls over mocks, unless actual calls are impractical, have unintended side effects, or mocks are explicitly requested.
- Always investigate the root cause of a test failure before fixing it.
- Avoid adding wait functions in E2E tests unless you are confident they are necessary.
- Avoid adding wait functions in E2E tests unless strictly necessary.
- When fixing issues, follow these rules:
- Investigate the root cause first (e.g., by gathering debug logs, taking screenshots, etc.).
- Fix the actual root cause instead of applying workarounds.
- After making code changes, run `yarn check-all-for-ai` to execute all tests (takes up to 1 hour), or `yarn check-for-ai` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `check-for-ai`.
- After making code changes, run `yarn verify-full` to execute all tests (takes up to 1 hour), or `yarn verify` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `verify`.
- Use `oxlint` ignore comments with reasons (e.g., `// oxlint-disable-next-line <rule> -- <reason>`) if lint errors or warnings cannot be fixed.
- Once you have verified your changes, commit and push them to the current (non-main) branch, then create a PR via `gh`.
- Follow the conventional commits; your commit message should start with `feat:`, `fix:`, etc.
- If not specified, make sure to add a new line at the end of your commit message with: `Co-authored-by: WillBooster (Codex CLI) <agent@willbooster.com>`.
- Always create new commits. Avoid using `--amend`.
- Always use heredoc syntax when passing multi-line content to any command.
- Use `wb start --mode test` to launch a web server for debugging or testing.
Comment on lines +12 to +28
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is significant content duplication across .cursor/rules/general.mdc, AGENTS.md, CLAUDE.md, and GEMINI.md. This pull request modifies all four files with nearly identical changes, which highlights a maintainability issue.

To improve maintainability and reduce redundancy, consider consolidating these files. You could have a single source of truth for the common rules and only specify the differences (like the Co-authored-by line) in separate, smaller files if needed. This would make future updates much easier.

References
  1. Simplify code as much as possible to eliminate redundancy. The presence of four nearly identical files for agent rules violates this principle. (link)


## Coding Style

Expand All @@ -36,9 +37,10 @@
- Place calling functions above the functions they call to maintain a clear top-down order.
- e.g., `function caller() { callee(); } function callee() { ... }`
- Unlike functions, place variable and type declarations ABOVE their usage.
- Write comments that explain "why" and use JSDoc to explain "what".
- Write comments and JSDoc for complex or hard-to-understand code.
- Explain "why" in comments and "what" in JSDoc.
- Avoid stating what can be easily understood from the code itself.
- Prefer `undefined` over `null` unless explicitly required by APIs or libraries.
- Prefer using a single template literal for prompts instead of `join()` with an array of strings.
- Prefer using a single template literal for prompts instead of `join()` with a pre-computable array literal of strings.
- Assume that all environment variables are properly defined.
- If validation is required, use `assert` to fail fast (e.g., during startup).
18 changes: 10 additions & 8 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,23 @@
- Create a new branch if the current branch is `main`.
- Run any `git` commands sequentially.
- Write tests ONLY if explicitly requested. If requested, follow these rules:
- Continue modifying the tests and code until all tests pass.
- Ensure tests reset any related persistent data, as our test infrastructure does not clear it automatically.
- Prefer actual API calls over mocks. Use mocks when actual calls are impractical, have unintended side effects, or are explicitly requested.
- Continue modifying tests and/or code until all tests pass.
- Ensure tests are idempotent and independent (e.g., reset persistent data) so they can run repeatedly or in parallel.
- Prefer actual API calls over mocks, unless actual calls are impractical, have unintended side effects, or mocks are explicitly requested.
- Always investigate the root cause of a test failure before fixing it.
- Avoid adding wait functions in E2E tests unless you are confident they are necessary.
- Avoid adding wait functions in E2E tests unless strictly necessary.
- When fixing issues, follow these rules:
- Investigate the root cause first (e.g., by gathering debug logs, taking screenshots, etc.).
- Fix the actual root cause instead of applying workarounds.
- After making code changes, run `yarn check-all-for-ai` to execute all tests (takes up to 1 hour), or `yarn check-for-ai` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `check-for-ai`.
- After making code changes, run `yarn verify-full` to execute all tests (takes up to 1 hour), or `yarn verify` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `verify`.
- Use `oxlint` ignore comments with reasons (e.g., `// oxlint-disable-next-line <rule> -- <reason>`) if lint errors or warnings cannot be fixed.
- Once you have verified your changes, commit and push them to the current (non-main) branch, then create a PR via `gh`.
- Follow the conventional commits; your commit message should start with `feat:`, `fix:`, etc.
- If not specified, make sure to add a new line at the end of your commit message with: `Co-authored-by: WillBooster (Claude Code) <agent@willbooster.com>`.
- Always create new commits. Avoid using `--amend`.
- Always use heredoc syntax when passing multi-line content to any command.
- Use `wb start --mode test` to launch a web server for debugging or testing.

## Coding Style

Expand All @@ -36,9 +37,10 @@
- Place calling functions above the functions they call to maintain a clear top-down order.
- e.g., `function caller() { callee(); } function callee() { ... }`
- Unlike functions, place variable and type declarations ABOVE their usage.
- Write comments that explain "why" and use JSDoc to explain "what".
- Write comments and JSDoc for complex or hard-to-understand code.
- Explain "why" in comments and "what" in JSDoc.
- Avoid stating what can be easily understood from the code itself.
- Prefer `undefined` over `null` unless explicitly required by APIs or libraries.
- Prefer using a single template literal for prompts instead of `join()` with an array of strings.
- Prefer using a single template literal for prompts instead of `join()` with a pre-computable array literal of strings.
- Assume that all environment variables are properly defined.
- If validation is required, use `assert` to fail fast (e.g., during startup).
18 changes: 10 additions & 8 deletions GEMINI.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,23 @@
- Create a new branch if the current branch is `main`.
- Run any `git` commands sequentially.
- Write tests ONLY if explicitly requested. If requested, follow these rules:
- Continue modifying the tests and code until all tests pass.
- Ensure tests reset any related persistent data, as our test infrastructure does not clear it automatically.
- Prefer actual API calls over mocks. Use mocks when actual calls are impractical, have unintended side effects, or are explicitly requested.
- Continue modifying tests and/or code until all tests pass.
- Ensure tests are idempotent and independent (e.g., reset persistent data) so they can run repeatedly or in parallel.
- Prefer actual API calls over mocks, unless actual calls are impractical, have unintended side effects, or mocks are explicitly requested.
- Always investigate the root cause of a test failure before fixing it.
- Avoid adding wait functions in E2E tests unless you are confident they are necessary.
- Avoid adding wait functions in E2E tests unless strictly necessary.
- When fixing issues, follow these rules:
- Investigate the root cause first (e.g., by gathering debug logs, taking screenshots, etc.).
- Fix the actual root cause instead of applying workarounds.
- After making code changes, run `yarn check-all-for-ai` to execute all tests (takes up to 1 hour), or `yarn check-for-ai` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `check-for-ai`.
- After making code changes, run `yarn verify-full` to execute all tests (takes up to 1 hour), or `yarn verify` for only type checking and linting (takes up to 10 minutes).
- If you are confident that your changes will not break any tests, you may use `verify`.
- Use `oxlint` ignore comments with reasons (e.g., `// oxlint-disable-next-line <rule> -- <reason>`) if lint errors or warnings cannot be fixed.
- Once you have verified your changes, commit and push them to the current (non-main) branch, then create a PR via `gh`.
- Follow the conventional commits; your commit message should start with `feat:`, `fix:`, etc.
- If not specified, make sure to add a new line at the end of your commit message with: `Co-authored-by: WillBooster (Gemini CLI) <agent@willbooster.com>`.
- Always create new commits. Avoid using `--amend`.
- Always use heredoc syntax when passing multi-line content to any command.
- Use `wb start --mode test` to launch a web server for debugging or testing.

## Coding Style

Expand All @@ -36,9 +37,10 @@
- Place calling functions above the functions they call to maintain a clear top-down order.
- e.g., `function caller() { callee(); } function callee() { ... }`
- Unlike functions, place variable and type declarations ABOVE their usage.
- Write comments that explain "why" and use JSDoc to explain "what".
- Write comments and JSDoc for complex or hard-to-understand code.
- Explain "why" in comments and "what" in JSDoc.
- Avoid stating what can be easily understood from the code itself.
- Prefer `undefined` over `null` unless explicitly required by APIs or libraries.
- Prefer using a single template literal for prompts instead of `join()` with an array of strings.
- Prefer using a single template literal for prompts instead of `join()` with a pre-computable array literal of strings.
- Assume that all environment variables are properly defined.
- If validation is required, use `assert` to fail fast (e.g., during startup).
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@
"test:e2e:next": "yarn build && next build e2e/next-app && playwright test --config e2e/next-app/playwright.config.ts",
"test:unit": "vitest",
"test/ci-setup": "playwright install chromium",
"typecheck": "tsgo --noEmit"
"typecheck": "tsgo --noEmit",
"verify": "wb verify",
"verify-full": "wb verify --full"
Comment on lines +54 to +55
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The new verify and verify-full scripts are added, and the documentation files are updated to refer to them. However, the old scripts check-all-for-ai and check-for-ai are still present in package.json but are no longer mentioned in the updated documentation.

To avoid confusion and to align with the style guide's principle of eliminating redundancy, consider removing the old check-all-for-ai and check-for-ai scripts.

References
  1. Simplify code as much as possible to eliminate redundancy. Keeping old, unused scripts in package.json is a form of redundancy. (link)

},
"dependencies": {
"@willbooster/monaco-loader": "1.1.1",
Expand All @@ -69,6 +71,7 @@
"@typescript/native-preview": "7.0.0-dev.20260421.2",
"@willbooster/oxfmt-config": "1.2.2",
"@willbooster/oxlint-config": "1.4.6",
"@willbooster/wb": "13.12.9",
"build-ts": "17.1.8",
"conventional-changelog-conventionalcommits": "9.3.1",
"jsdom": "29.0.2",
Expand Down
Loading
Loading