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
52 changes: 52 additions & 0 deletions .agent/skills/commit-msg/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: commit-msg
description: Instructions for writing commit messages following Conventional Commits, enforced by Husky and Commitlint.
---

# Commit Message Skill

This project uses **Husky** and **Commitlint** to enforce [Conventional Commits](https://www.conventionalcommits.org/).

## Format

```text
type(scope?): subject
```

## Rules

- **type**: Must be one of the following:

- `feat`: A new feature
- `fix`: A bug fix
- `docs`: Documentation only changes
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, etc)
- `refactor`: A code change that neither fixes a bug nor adds a feature
- `perf`: A code change that improves performance
- `test`: Adding missing tests or correcting existing tests
- `build`: Changes that affect the build system or external dependencies
- `ci`: Changes to our CI configuration files and scripts
- `chore`: Other changes that don't modify src or test files
- `revert`: Reverts a previous commit

- **scope** (optional): A noun describing a section of the codebase (e.g., `header`, `auth`, `api`).
- **subject**: Short description of the change.
- Use imperative, present tense: "change" not "changed" nor "changes"
- Don't capitalize the first letter
- No dot (.) at the end
- **header**: Must not be longer than 100 characters.

## Examples

- `feat(auth): add login component`
- `fix(search): resolve z-index issue on header`
- `chore: update dependencies`

## Validation

Husky will automatically run `commitlint` when you try to commit. If your message does not follow the rules, the commit will be rejected.

Additionally, a **pre-commit** hook will run to ensure code quality:

- `yarn nx format:write`: Formats modified files.
- `yarn nx affected -t lint,test`: Runs linting and tests for affected projects.
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
node_modules
pnpm-lock.yaml
yarn.lock
package-lock.json
9 changes: 7 additions & 2 deletions .github/workflows/firebase-hosting-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,19 @@ jobs:
with:
fetch-depth: 0 # Fetch all history for all branches so that nx affected can compare against all commits

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v3 # Cache node_modules to speed up builds
with:
node-version: 22 # Use the version 22 of Node.js
cache: 'yarn' # Cache node_modules to speed up builds
cache: 'pnpm' # Cache node_modules to speed up builds

- name: Install Dependencies
run: yarn install --frozen-lockfile # Install dependencies using yarn with a frozen lockfile
run: pnpm install --frozen-lockfile # Install dependencies using pnpm with a frozen lockfile

- name: Run Build App
run: npx nx build series-workspace #build the app
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/firebase-hosting-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,19 @@ jobs:
with:
fetch-depth: 0 # Fetch all history for all branches so that nx affected can compare against all commits

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v3 # Cache node_modules to speed up builds
with:
node-version: 22 # Use the version 22 of Node.js
cache: 'yarn' # Cache node_modules to speed up builds
cache: 'pnpm' # Cache node_modules to speed up builds

- name: Install Dependencies
run: yarn install --frozen-lockfile # Install dependencies using yarn with a frozen lockfile
run: pnpm install --frozen-lockfile # Install dependencies using pnpm with a frozen lockfile

- name: Setup Nx SHA
uses: nrwl/nx-set-shas@v3 # Sets environment variables for commit SHAs, optimizing Nx's change detection for efficient CI processes
Expand Down
2 changes: 1 addition & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1 +1 @@
yarn commitlint --edit ${1}
pnpm commitlint --edit ${1}
4 changes: 2 additions & 2 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
yarn nx format:write
yarn nx affected -t lint,test --parallel=2
pnpm nx format:write
pnpm nx affected -t lint,test --parallel=2
5 changes: 4 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,7 @@
.angular

/.nx/cache
/.nx/workspace-data
/.nx/workspace-data
pnpm-lock.yaml
yarn.lock
package-lock.json
39 changes: 20 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,33 @@
},
"private": true,
"dependencies": {
"@angular/animations": "21.0.9",
"@angular/common": "21.0.9",
"@angular/compiler": "21.0.9",
"@angular/core": "21.0.9",
"@angular/forms": "21.0.9",
"@angular/platform-browser": "21.0.9",
"@angular/platform-browser-dynamic": "21.0.9",
"@angular/router": "21.0.9",
"@angular/animations": "21.1.0",
"@angular/common": "21.1.0",
"@angular/compiler": "21.1.0",
"@angular/core": "21.1.0",
"@angular/forms": "21.1.0",
"@angular/platform-browser": "21.1.0",
"@angular/platform-browser-dynamic": "21.1.0",
"@angular/router": "21.1.0",
"@commitlint/cli": "^20.3.1",
"@ngrx/component-store": "^17.0.1",
"@ngrx/operators": "^21.0.1",
"@ngrx/signals": "^21.0.1",
"@nx/angular": "22.3.3",
"ng-zorro-antd": "21.0.0",
"ng-zorro-antd": "^21.0.0",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "0.16.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "21.0.6",
"@angular-devkit/core": "21.0.6",
"@angular-devkit/schematics": "21.0.6",
"@angular-devkit/build-angular": "21.1.0",
"@angular-devkit/core": "21.1.0",
"@angular-devkit/schematics": "21.1.0",
"@angular-eslint/eslint-plugin": "21.1.0",
"@angular-eslint/eslint-plugin-template": "21.1.0",
"@angular-eslint/template-parser": "21.1.0",
"@angular/cli": "21.0.6",
"@angular/compiler-cli": "21.0.9",
"@angular/language-service": "21.0.9",
"@angular/compiler-cli": "21.1.0",
"@angular/language-service": "21.1.0",
"@commitlint/config-conventional": "^20.3.1",
"@nx/devkit": "22.3.3",
"@nx/eslint": "22.3.3",
Expand All @@ -48,9 +49,9 @@
"@schematics/angular": "21.0.6",
"@types/jest": "30.0.0",
"@types/node": "^18.16.9",
"@typescript-eslint/eslint-plugin": "7.4.0",
"@typescript-eslint/parser": "7.4.0",
"@typescript-eslint/utils": "^7.16.0",
"@typescript-eslint/eslint-plugin": "8.53.1",
"@typescript-eslint/parser": "8.53.1",
"@typescript-eslint/utils": "8.53.1",
"eslint": "8.57.0",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-playwright": "^0.15.3",
Expand All @@ -66,5 +67,5 @@
"ts-node": "^10.9.2",
"typescript": "5.9.3"
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
"packageManager": "pnpm@9.0.0"
}
Loading
Loading