From ae5c1cd973195c9856754849931db723d4f063ed Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:40:55 +0000 Subject: [PATCH 01/15] package.json: add 'test:once' script for one-time test execution --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 7f9f212..f626b9e 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "lint": "eslint './src/**/*.{ts,tsx}'", "test:ci": "jest --reporters=jest-standard-reporter --coverage", "test": "jest --watch", + "test:once": "jest", "fix-formatting": "prettier --write --config ./prettier.config.js ./src/", "check-formatting": "prettier --check --config ./prettier.config.js ./src/", "package": "node ./scripts/package.js" From 6533f52db3ee04496fab92558c0652e9944e7fbb Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:41:10 +0000 Subject: [PATCH 02/15] update README with example app path and enhance development section --- README.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b5fa149..c13aab3 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,31 @@ These other utility functions can be used to simplify the logic around `createAs - `getCascadedAsyncState`: Reduces a chain of asynchronous request objects down one asynchronous request object. - `getOptimisticAsyncLoadState`: Converts its arguments into an optimistic asynchronous request object such that if the arguments indicate a pending asynchronous request and a fulfilled asynchronous request, then the result is a fulfilled asynchronous request object. -Checkout the [example application](./example/README.md). +Checkout the [example application](./example-app/README.md). + +## Development + +### Commands + +- `npm test:once` - Run Jest tests +- `npm run build` - Build the library +- `npm run lint` - Run ESLint +- `npm run typecheck` - Run TypeScript type checking + +### Project Structure + +- `src/` - Main library source code +- `example-app/` - Demo application showing library usage +- `scripts/` - Build and release automation scripts +- `.github/workflows/` - CI/CD pipelines +- Test files are in `__tests__/` directories + +### Code Style + +- TypeScript with strict mode +- ESLint for linting +- Prettier for formatting +- SCSS for styling ## License From 9138bc76e17f1ac56acbc54db4e7f2c6a8d69b4e Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:48:57 +0000 Subject: [PATCH 03/15] update GitHub Actions workflows to use latest versions of SonarQube scan action and Node.js setup --- .github/workflows/build.yml | 4 ++-- .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e798a1a..a3b71f0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,8 +42,8 @@ jobs: - name: Run unit tests and generate report run: npm run test:ci - - name: SonarCloud Scan - uses: SonarSource/sonarqube-scan-action@v4 + - name: SonarQube Cloud Scan + uses: SonarSource/sonarqube-scan-action@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 51233c2..7e829a1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,6 +1,6 @@ name: publish -# Run when a new Github publish is released +# Run when a new GitHub release is published on: release: types: [released] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0ab667b..41ac107 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,10 +12,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: "20" From 799f48ad07e3586cf9412915436862eb1c258dfd Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:49:25 +0000 Subject: [PATCH 04/15] update release workflow to trigger manually instead of on push --- .github/workflows/release.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 41ac107..e018966 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,8 @@ name: create a release -# TODO: remove trigger -on: - push: - branches: - - main +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: jobs: publish: From 2001be6fc906a7f4ba70df5291291cbe634f51d3 Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:49:34 +0000 Subject: [PATCH 05/15] fix: correct path to release script in workflow --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e018966..ec0040f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,4 +21,4 @@ jobs: env: PAT_TOKEN: ${{ secrets.RELEASE_PAT_TOKEN }} GIT_EMAIL: ${{ vars.RELEASE_GIT_EMAIL }} - run: ../scripts/release.sh + run: ./scripts/release.sh From 4474a6b22489791384d72f03a5eaad65c4cdb9b1 Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:49:54 +0000 Subject: [PATCH 06/15] docs: add commit message guidelines to README --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index c13aab3..8124285 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,21 @@ Checkout the [example application](./example-app/README.md). - Prettier for formatting - SCSS for styling +### Commit Messages + +Use the following commit format: + +- start the commit message with a comma separated list of a short path for each file that was changed. the path should include the parent directory name, the file name and the extension. +- after a colon, write a short summary of the changes. + +Use imperative mood (e.g., "add" not "added"). + +Example: + +```text +workflows/build.yml, react-async-renderer/README.md: Update the build actions, add license agreement to the readme +``` + ## License [MIT License](./LICENSE) From c901ab04ea6f2a7284df8a6664ef7e27bc2a460c Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:50:59 +0000 Subject: [PATCH 07/15] docs: update README to include code style guidelines and commit message section --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8124285..5913980 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,8 @@ Checkout the [example application](./example-app/README.md). - ESLint for linting - Prettier for formatting - SCSS for styling +- Do not use magic strings +- Do not assert as `any`, except for in test modules ### Commit Messages From 7542834ba69c089c1aa6a4f2e2dad9e003541144 Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:52:17 +0000 Subject: [PATCH 08/15] chore: update brace-expansion package to version 2.0.2 and add license information --- package-lock.json | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 70d64e7..2b0132a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3782,10 +3782,11 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -4448,10 +4449,11 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9793,10 +9795,11 @@ } }, "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } From 996b5aeea35ca6e1cbb569d78b97bf5d6fa693f0 Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 18:53:53 +0000 Subject: [PATCH 09/15] change file --- ...eature-improve-actions-and-ai_2025-5-13-18-53-42.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 changes/feature-improve-actions-and-ai_2025-5-13-18-53-42.json diff --git a/changes/feature-improve-actions-and-ai_2025-5-13-18-53-42.json b/changes/feature-improve-actions-and-ai_2025-5-13-18-53-42.json new file mode 100644 index 0000000..4198762 --- /dev/null +++ b/changes/feature-improve-actions-and-ai_2025-5-13-18-53-42.json @@ -0,0 +1,9 @@ +{ + "changes": [ + { + "packageName": "@mfbtech/react-async-renderer", + "comment": "Fixed release script path in release action and updated action and package dependencies", + "type": "PATCH" + } + ] +} \ No newline at end of file From 6e2c0f7e1d8cbe093353f01a304135cf2bcf7d6d Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 19:00:53 +0000 Subject: [PATCH 10/15] docs: add pull request guidelines to README --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 5913980..d52eda1 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,26 @@ Example: workflows/build.yml, react-async-renderer/README.md: Update the build actions, add license agreement to the readme ``` +### Pull Request Guidelines + +When creating pull requests: + +1. **Title Format**: Use conventional commit format (e.g., `feat: add new feature`, `fix: resolve bug`) +2. **Reviewers**: Set to `MFB-Technologies-Inc/web-app-devs` team +3. **Assignment**: Assign to the PR creator +4. **Body Structure**: Include a "Summary" section with bullet points of changes +5. **GitHub CLI Command Example**: + ```bash + gh pr create --title "fix: describe the change" --body "$(cat <<'EOF' + ## Summary + + - Change 1 description + - Change 2 description + - Change 3 description + EOF + )" --reviewer "MFB-Technologies-Inc/web-app-devs" --assignee "@me" + ``` + ## License [MIT License](./LICENSE) From a81807f0deab235a3f856abcbb356e73828649e4 Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 19:28:32 +0000 Subject: [PATCH 11/15] package.json: add typecheck script to package.json --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f626b9e..44922d9 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,8 @@ "test:once": "jest", "fix-formatting": "prettier --write --config ./prettier.config.js ./src/", "check-formatting": "prettier --check --config ./prettier.config.js ./src/", - "package": "node ./scripts/package.js" + "package": "node ./scripts/package.js", + "typecheck": "tsc --noEmit --project ./tsconfig.prod.json" }, "devDependencies": { "@testing-library/react": "12.1.5", From 5c96d3805733955e06175369816ffc70f084369d Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 19:28:46 +0000 Subject: [PATCH 12/15] .vscode/settings.json, CLAUDE.md, LLM_INSTRUCTIONS.md: add GitHub Copilot instructions for code generation and commit message generation --- .vscode/settings.json | 17 +++++++++- CLAUDE.md | 25 +++++++++++++++ LLM_INSTRUCTIONS.md | 72 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 CLAUDE.md create mode 100644 LLM_INSTRUCTIONS.md diff --git a/.vscode/settings.json b/.vscode/settings.json index 0b6f694..43f2bc9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -69,5 +69,20 @@ "search.exclude": { "**/node_modules": true, "**/lib": true - } + }, + "github.copilot.chat.codeGeneration.instructions": [ + { + "file": "./prettier.config.js", + "text": "This is a configuration file for Prettier, a code formatter. It specifies the formatting rules to be applied to the code." + }, + { + "file": "./LLM_INSTRUCTIONS.md", + "text": "This file contains instructions that coding agents (e.g., Copilot) should follow when generating code." + } + ], + "github.copilot.chat.commitMessageGeneration.instructions": [ + { + "text": "start the commit message with a list of the file paths in the staged changes seperated by commas and ending with a colen. each file in the list should include only the parent folder and not the full path to the file, the linux path seperator, the file name and the file's extension." + } + ] } diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..93b919f --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,25 @@ +# CLAUDE.md + +@./LLM_INSTRUCTIONS.md + +## Azure DevOps Configuration + +- Organization: https://dev.azure.com/MFBTech +- Project: Syzygy Web App +- Repository: align-ts +- Default target branch for PRs: develop +- If the user is not logged in remind them to install Azure CLI tools and login using `az login` + +## Claude Commit Messages + +- Commit messages should not have attribution or emoticons +- Commit messages should be short and preceded by the name of the package to which they relate in square brackets [] + - Example: '[align-client-api] update types to reflect new server respond on binders endpoint' +- If commits do not relate to a particular package or relate to more than one, they should omit the package name and square brackets + - Example: 'Update all change files' + - Example: 'Merge changes from origin/develop and resolve conflicts' + +## Pull Requests + +- Use the Azure CLI tool (and NOT the Github CLI tool) if you are asked to do tasks related to PRs +- When creating a PR: (1) provide a concise description of the purpose of the PR and how it modifies the codebase, (2) do NOT provide a list of every file that has changed, (3) do NOT provide a testing plan or other instructions for the reviewer diff --git a/LLM_INSTRUCTIONS.md b/LLM_INSTRUCTIONS.md new file mode 100644 index 0000000..8d79cd4 --- /dev/null +++ b/LLM_INSTRUCTIONS.md @@ -0,0 +1,72 @@ +# Code Generation Instructions + +## User Interactions + +- If the user asks for a plan, proposal, explanation, or guidance, respond ONLY with a proposed plan; do NOT start implementing +- When answering questions, don't write code unless explicitly asked + +## Repository Overview + +### Project Structure + +- `src/` - Main library source code +- `example-app/` - Demo application showing library usage +- `scripts/` - Build and release automation scripts +- `.github/workflows/` - CI/CD pipelines +- Test files are in `__tests__/` directories + +### Coding Standards + +- Define constants/variables; no "magic" string or numbers +- Avoid excessive nesting +- Be declarative +- Prefer array methods over imperative loops +- Run `npm run lint` regularly to check for lint errors + +### Typescript + +- Use strict, strong typing +- Explicitly type function returns unless unusually complex +- Do not use classes; use function builder patterns +- Use types, not interfaces +- Use explicit type imports +- Avoid enums, use constants and string literal types +- Run `npm run typecheck` to check typing whenever you finish editing a typescript file + +### React + +- When creating React components: + - Create them using the function keyword + - Type their props explicitly + - Type the return type explicitly using React.JSX.Element and, if appropriate, null + - Put display text in a `text: Record` object outside of component scope + - Do not destructure props; this makes it clear when values come from props + - Do not use React.FC + - Do not use ReactNode + - Example: + + ```typescript + const text = { + enabled: "Enabled" + } + + export function MyComponent(props:{ isEnabled: boolean }):React.JSX.Element { + return ( +
+ {props.isEnabled &&

{text.enabled}

} +
+ ) + } + ``` + +### CSS + +- Use SASS (.scss) +- Use variables to define colors +- Use rgba() not hexcodes for colors + +### Testing + +- Use `npm run test:once` to run tests, if it exists. +- If it does not exist, suggest creating it to the developer. +- Do not run `npm run test`; it runs in watch mode and will block you. From dca37f3df821393c51f6df82b7a51d9b00ba2fad Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 19:43:45 +0000 Subject: [PATCH 13/15] .vscode/settings.json: fix typo in commit message generation instructions --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 43f2bc9..3490156 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -82,7 +82,7 @@ ], "github.copilot.chat.commitMessageGeneration.instructions": [ { - "text": "start the commit message with a list of the file paths in the staged changes seperated by commas and ending with a colen. each file in the list should include only the parent folder and not the full path to the file, the linux path seperator, the file name and the file's extension." + "text": "start the commit message with a list of the file paths in the staged changes separated by commas and ending with a colon. each file in the list should include only the parent folder and not the full path to the file, the linux path separator, the file name and the file's extension." } ] } From 8d5d832f00eff734bd78dbe63ceaba0f4650f78b Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 19:44:02 +0000 Subject: [PATCH 14/15] CLAUDE.md, Dockerfile, LLM_INSTRUCTIONS.md: update repository configuration and commit message guidelines --- CLAUDE.md | 40 ++++++++++++++++++++++++++-------------- Dockerfile | 9 +++++++-- LLM_INSTRUCTIONS.md | 29 ++++++++++++++++++++++++++++- 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 93b919f..3db940b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,24 +2,36 @@ @./LLM_INSTRUCTIONS.md -## Azure DevOps Configuration +## Remote Repository Configuration -- Organization: https://dev.azure.com/MFBTech -- Project: Syzygy Web App -- Repository: align-ts -- Default target branch for PRs: develop -- If the user is not logged in remind them to install Azure CLI tools and login using `az login` +- Organization: https://github.com/MFB-Technologies-Inc +- Project: react-async-renderer +- Repository: react-async-renderer +- Default target branch for PRs: main ## Claude Commit Messages -- Commit messages should not have attribution or emoticons -- Commit messages should be short and preceded by the name of the package to which they relate in square brackets [] - - Example: '[align-client-api] update types to reflect new server respond on binders endpoint' -- If commits do not relate to a particular package or relate to more than one, they should omit the package name and square brackets - - Example: 'Update all change files' - - Example: 'Merge changes from origin/develop and resolve conflicts' +- start the commit message with a list of the file paths in the staged changes separated by commas and ending with a colon +- each file in the list should include only the parent folder and not the full path to the file, the linux path separator, the file name and the file's extension. ## Pull Requests -- Use the Azure CLI tool (and NOT the Github CLI tool) if you are asked to do tasks related to PRs -- When creating a PR: (1) provide a concise description of the purpose of the PR and how it modifies the codebase, (2) do NOT provide a list of every file that has changed, (3) do NOT provide a testing plan or other instructions for the reviewer +- Use the Github CLI tool if you are asked to do tasks related to PRs +- When creating a PR: + + 1. **Title Format**: Use conventional commit format (e.g., `feat: add new feature`, `fix: resolve bug`) + 2. **Reviewers**: Set to `MFB-Technologies-Inc/web-app-devs` team + 3. **Assignment**: Assign to the PR creator + 4. **Body Structure**: Include a "Summary" section with bullet points of changes + 5. **GitHub CLI Command Example**: + + ```bash + gh pr create --title "fix: describe the change" --body "$(cat <<'EOF' + ## Summary + + - Change 1 description + - Change 2 description + - Change 3 description + EOF + )" --reviewer "MFB-Technologies-Inc/web-app-devs" --assignee "@me" + ``` diff --git a/Dockerfile b/Dockerfile index 8b1f567..0fc06ca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,12 @@ FROM debian:bookworm ARG USERNAME=vscode -RUN apt-get update -RUN apt-get -y install git fzf ripgrep curl python3 ssh sudo locales gnupg lsb-release libnss3-tools gstreamer1.0-gl gstreamer1.0-plugins-ugly +# Add GitHub CLI repo and update, then install all packages in one RUN +RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \ + | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ + && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list \ + && apt-get update \ + && apt-get -y install git fzf ripgrep curl python3 ssh sudo locales gnupg lsb-release libnss3-tools gstreamer1.0-gl gstreamer1.0-plugins-ugly gh # set the locale RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ locale-gen diff --git a/LLM_INSTRUCTIONS.md b/LLM_INSTRUCTIONS.md index 8d79cd4..871085a 100644 --- a/LLM_INSTRUCTIONS.md +++ b/LLM_INSTRUCTIONS.md @@ -2,9 +2,36 @@ ## User Interactions -- If the user asks for a plan, proposal, explanation, or guidance, respond ONLY with a proposed plan; do NOT start implementing +- If the user asks for a plan, proposal, explanation, or guidance, respond ONLY with a proposed plan; do NOT start implementing - When answering questions, don't write code unless explicitly asked +## Remote Repository Configuration + +- Organization: https://github.com/MFB-Technologies-Inc +- Project: react-async-renderer +- Repository: react-async-renderer +- Default target branch for PRs: main +- If the user is not logged in remind them to login using `gh auth login` + +## Pull Requests + +1. **Title Format**: Use conventional commit format (e.g., `feat: add new feature`, `fix: resolve bug`) +2. **Reviewers**: Set to `MFB-Technologies-Inc/web-app-devs` team +3. **Assignment**: Assign to the PR creator +4. **Body Structure**: Include a "Summary" section with bullet points of changes +5. **GitHub CLI Command Example**: + + ```bash + gh pr create --title "fix: describe the change" --body "$(cat <<'EOF' + ## Summary + + - Change 1 description + - Change 2 description + - Change 3 description + EOF + )" --reviewer "MFB-Technologies-Inc/web-app-devs" --assignee "@me" + ``` + ## Repository Overview ### Project Structure From 8623491039c9063662b67b9d47d975a06cdbc508 Mon Sep 17 00:00:00 2001 From: Ethan Lemke Date: Fri, 13 Jun 2025 19:44:10 +0000 Subject: [PATCH 15/15] README.md: remove development section including commands, project structure, code style, commit messages, and pull request guidelines --- README.md | 61 ------------------------------------------------------- 1 file changed, 61 deletions(-) diff --git a/README.md b/README.md index d52eda1..560d706 100644 --- a/README.md +++ b/README.md @@ -92,67 +92,6 @@ These other utility functions can be used to simplify the logic around `createAs Checkout the [example application](./example-app/README.md). -## Development - -### Commands - -- `npm test:once` - Run Jest tests -- `npm run build` - Build the library -- `npm run lint` - Run ESLint -- `npm run typecheck` - Run TypeScript type checking - -### Project Structure - -- `src/` - Main library source code -- `example-app/` - Demo application showing library usage -- `scripts/` - Build and release automation scripts -- `.github/workflows/` - CI/CD pipelines -- Test files are in `__tests__/` directories - -### Code Style - -- TypeScript with strict mode -- ESLint for linting -- Prettier for formatting -- SCSS for styling -- Do not use magic strings -- Do not assert as `any`, except for in test modules - -### Commit Messages - -Use the following commit format: - -- start the commit message with a comma separated list of a short path for each file that was changed. the path should include the parent directory name, the file name and the extension. -- after a colon, write a short summary of the changes. - -Use imperative mood (e.g., "add" not "added"). - -Example: - -```text -workflows/build.yml, react-async-renderer/README.md: Update the build actions, add license agreement to the readme -``` - -### Pull Request Guidelines - -When creating pull requests: - -1. **Title Format**: Use conventional commit format (e.g., `feat: add new feature`, `fix: resolve bug`) -2. **Reviewers**: Set to `MFB-Technologies-Inc/web-app-devs` team -3. **Assignment**: Assign to the PR creator -4. **Body Structure**: Include a "Summary" section with bullet points of changes -5. **GitHub CLI Command Example**: - ```bash - gh pr create --title "fix: describe the change" --body "$(cat <<'EOF' - ## Summary - - - Change 1 description - - Change 2 description - - Change 3 description - EOF - )" --reviewer "MFB-Technologies-Inc/web-app-devs" --assignee "@me" - ``` - ## License [MIT License](./LICENSE)