From 75a6ee00aa4098e738e51bb23c7f7c358f292134 Mon Sep 17 00:00:00 2001 From: Yusuke Hirao Date: Wed, 8 Apr 2026 19:16:19 +0900 Subject: [PATCH 1/8] chore(repo): add directory field to repository in all sub-packages Required for OIDC provenance verification in monorepo publishing. --- packages/@d-zero/check-frontend-env/package.json | 6 +++++- packages/@d-zero/create-frontend/package.json | 6 +++++- packages/@d-zero/custom-components/package.json | 4 +++- packages/@d-zero/postcss-config/package.json | 6 +++++- packages/@d-zero/scaffold/package.json | 6 +++++- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/packages/@d-zero/check-frontend-env/package.json b/packages/@d-zero/check-frontend-env/package.json index 173c28f2..cb010ed1 100644 --- a/packages/@d-zero/check-frontend-env/package.json +++ b/packages/@d-zero/check-frontend-env/package.json @@ -2,7 +2,11 @@ "name": "@d-zero/check-frontend-env", "version": "5.0.0", "description": "Check Frontend Environment for D-ZERO", - "repository": "https://github.com/d-zero-dev/frontend-env.git", + "repository": { + "type": "git", + "url": "https://github.com/d-zero-dev/frontend-env.git", + "directory": "packages/@d-zero/check-frontend-env" + }, "author": "D-ZERO Co., Ltd.", "license": "MIT", "publishConfig": { diff --git a/packages/@d-zero/create-frontend/package.json b/packages/@d-zero/create-frontend/package.json index 851069d5..ef3a5136 100644 --- a/packages/@d-zero/create-frontend/package.json +++ b/packages/@d-zero/create-frontend/package.json @@ -2,7 +2,11 @@ "name": "@d-zero/create-frontend", "version": "5.0.0", "description": "Create a new frontend project from a scaffolding template", - "repository": "https://github.com/d-zero-dev/frontend-env.git", + "repository": { + "type": "git", + "url": "https://github.com/d-zero-dev/frontend-env.git", + "directory": "packages/@d-zero/create-frontend" + }, "author": "D-ZERO Co., Ltd.", "license": "MIT", "publishConfig": { diff --git a/packages/@d-zero/custom-components/package.json b/packages/@d-zero/custom-components/package.json index b350bcc8..ebc4283f 100644 --- a/packages/@d-zero/custom-components/package.json +++ b/packages/@d-zero/custom-components/package.json @@ -5,7 +5,9 @@ "author": "D-ZERO", "license": "MIT", "repository": { - "url": "https://github.com/d-zero-dev/frontend-env.git" + "type": "git", + "url": "https://github.com/d-zero-dev/frontend-env.git", + "directory": "packages/@d-zero/custom-components" }, "publishConfig": { "access": "public" diff --git a/packages/@d-zero/postcss-config/package.json b/packages/@d-zero/postcss-config/package.json index 5209f2a2..bdd26013 100644 --- a/packages/@d-zero/postcss-config/package.json +++ b/packages/@d-zero/postcss-config/package.json @@ -2,7 +2,11 @@ "name": "@d-zero/postcss-config", "version": "5.0.0", "description": "Configurations of PostCSS", - "repository": "https://github.com/d-zero-dev/frontend-env.git", + "repository": { + "type": "git", + "url": "https://github.com/d-zero-dev/frontend-env.git", + "directory": "packages/@d-zero/postcss-config" + }, "author": "D-ZERO Co., Ltd.", "license": "MIT", "publishConfig": { diff --git a/packages/@d-zero/scaffold/package.json b/packages/@d-zero/scaffold/package.json index a2edbbe1..4e0c147f 100644 --- a/packages/@d-zero/scaffold/package.json +++ b/packages/@d-zero/scaffold/package.json @@ -2,7 +2,11 @@ "name": "@d-zero/scaffold", "version": "5.0.0", "description": "Frontend scaffold files of D-ZERO Co., Ltd.", - "repository": "https://github.com/d-zero-dev/frontend-env.git", + "repository": { + "type": "git", + "url": "https://github.com/d-zero-dev/frontend-env.git", + "directory": "packages/@d-zero/scaffold" + }, "author": "D-ZERO Co., Ltd.", "license": "MIT", "publishConfig": { From 72ef777aaab5425c26cdbedcbae7b6fd90a3aa1d Mon Sep 17 00:00:00 2001 From: Yusuke Hirao Date: Wed, 8 Apr 2026 19:16:29 +0900 Subject: [PATCH 2/8] chore(github): add publish workflow for OIDC trusted publishing --- .github/workflows/publish.yml | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..a9b19b92 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,36 @@ +name: Publish + +on: + push: + tags: + - "v*" + +concurrency: + group: publish + cancel-in-progress: false + +permissions: + contents: read + id-token: write + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: 24 + registry-url: "https://registry.npmjs.org" + - name: Install dependencies + run: yarn install --immutable + - name: Build + run: yarn build + - name: Publish + run: npx lerna publish from-git --yes From e07f582020c090d4f69617a7076a6129fdceff6d Mon Sep 17 00:00:00 2001 From: Yusuke Hirao Date: Wed, 8 Apr 2026 19:16:34 +0900 Subject: [PATCH 3/8] chore(repo): migrate release scripts from lerna publish to lerna version Remove local npm publish in favor of OIDC trusted publishing via GitHub Actions. --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 05536130..2fa93c77 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ "lint:prettier": "npx prettier --write \"{*,./**/*}{.{md,mdc,mdx,js,jsx,ts,tsx,css,pug,html},*rc}\" \"!**/{dist,storybook-static}/**/*\"", "lint:textlint": "npx textlint --fix \"{*,./**/*}.{md,mdc}\" && npx textlint \"{*,./**/*}.{md,mdc}\"", "storybook": "lerna run storybook --scope=@d-zero/custom-components", - "release": "lerna publish --exact --conventional-commits --conventional-graduate", - "release:alpha:latest": "lerna publish --exact --force-publish --conventional-commits --conventional-prerelease --preid alpha", - "release:beta:latest": "lerna publish --exact --force-publish --conventional-commits --conventional-prerelease --preid beta", - "release:next": "lerna publish --dist-tag next --exact --force-publish --conventional-commits --conventional-prerelease --preid alpha", + "release": "lerna version --exact --conventional-commits --conventional-graduate --no-push", + "release:alpha": "lerna version --exact --force-publish --conventional-commits --conventional-prerelease --preid alpha --no-push", + "release:beta": "lerna version --exact --force-publish --conventional-commits --conventional-prerelease --preid beta --no-push", + "release:rc": "lerna version --exact --force-publish --conventional-commits --conventional-prerelease --preid rc --no-push", "postinstall": "husky", "commit": "npx cz", "co": "npx cz", From 24532c43d0a5e542e0ce8cb6a16653583ac40a5d Mon Sep 17 00:00:00 2001 From: Yusuke Hirao Date: Wed, 8 Apr 2026 19:19:20 +0900 Subject: [PATCH 4/8] chore(release): publish v5.1.0 --- CHANGELOG.md | 22 +++++++++++++++++++ lerna.json | 2 +- .../@d-zero/check-frontend-env/CHANGELOG.md | 4 ++++ .../@d-zero/check-frontend-env/package.json | 2 +- packages/@d-zero/create-frontend/CHANGELOG.md | 12 ++++++++++ packages/@d-zero/create-frontend/package.json | 4 ++-- .../@d-zero/custom-components/CHANGELOG.md | 4 ++++ .../@d-zero/custom-components/package.json | 2 +- packages/@d-zero/postcss-config/CHANGELOG.md | 4 ++++ packages/@d-zero/postcss-config/package.json | 2 +- packages/@d-zero/scaffold/CHANGELOG.md | 15 +++++++++++++ packages/@d-zero/scaffold/package.json | 6 ++--- yarn.lock | 12 +++++----- 13 files changed, 76 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa4c0cea..54ca0cc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,28 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) + +### Bug Fixes + +- change prepare to postinstall for Yarn v4 compatibility ([cd3cac1](https://github.com/d-zero-dev/frontend-env/commit/cd3cac12daec430a9f4426c29983e9ea39fbe8e7)), closes [#766](https://github.com/d-zero-dev/frontend-env/issues/766) +- **create-frontend:** correct minimatch import ([c6e5eb1](https://github.com/d-zero-dev/frontend-env/commit/c6e5eb1c078d0805015a9e619d0289d8a9ba700c)) +- **create-frontend:** correct scaffold file filtering in interactive mode ([ffa3476](https://github.com/d-zero-dev/frontend-env/commit/ffa34761a72204667605581d6ac32c2b1936babf)), closes [#804](https://github.com/d-zero-dev/frontend-env/issues/804) +- **create-frontend:** exclude dotfiles from ignored patterns ([a4da0d0](https://github.com/d-zero-dev/frontend-env/commit/a4da0d03d36b95bb60a5990ffc916095909cfd77)) +- **repo:** bypass minimumReleaseAge for vulnerability alerts in Renovate ([173d81d](https://github.com/d-zero-dev/frontend-env/commit/173d81dd27e211d701665fa1e784ea61d9457ba2)) +- **repo:** disable postinstall scripts for third-party packages ([1fa4660](https://github.com/d-zero-dev/frontend-env/commit/1fa46609d04aa4811d7718a454e9c37ceb63c590)) +- **scaffold:** add defaultSemverRangePrefix to .yarnrc.yml ([14b75c3](https://github.com/d-zero-dev/frontend-env/commit/14b75c3f17da62584efba47865ae6436bf9c4faa)) +- **scaffold:** replace prepare with postinstall for husky setup ([8ee55e0](https://github.com/d-zero-dev/frontend-env/commit/8ee55e03ba0858157891ba298be2ce842dd9772a)) +- **scaffold:** update deprecated permission pattern syntax and add emulate tool ([c73e280](https://github.com/d-zero-dev/frontend-env/commit/c73e2808be5bece35793cf5135c33d5aa61e1902)) +- use url constant in meta.pug ([3b3bc48](https://github.com/d-zero-dev/frontend-env/commit/3b3bc489f8c865df01d8289ab73ee08e476f557e)) + +### Features + +- **create-frontend:** exclude index files for CMS types and format generated files ([cdd2a25](https://github.com/d-zero-dev/frontend-env/commit/cdd2a25874e7ec21a055abb74a206fe681345518)) +- **repo:** add 7-day cooldown period for npm package releases ([32c0bee](https://github.com/d-zero-dev/frontend-env/commit/32c0beeee290ca96f5908dcea972d7de3e4e390f)) +- **scaffold:** add 7-day cooldown period for npm package releases ([81e20f4](https://github.com/d-zero-dev/frontend-env/commit/81e20f45534a60451fdaf2a3e28f3cb0bcc73942)) +- **scaffold:** replace redirect in index.pug with top page template ([9237385](https://github.com/d-zero-dev/frontend-env/commit/92373859f990922f7ad13d50afa57736f3dde0e7)) + # [5.0.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0-beta.19...v5.0.0) (2026-01-05) ### Bug Fixes diff --git a/lerna.json b/lerna.json index 54a0344a..cd46134d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "8.1.2", - "version": "5.0.0", + "version": "5.1.0", "npmClient": "yarn", "packages": ["packages/@d-zero/*"], "command": { diff --git a/packages/@d-zero/check-frontend-env/CHANGELOG.md b/packages/@d-zero/check-frontend-env/CHANGELOG.md index 751e374a..8046b629 100644 --- a/packages/@d-zero/check-frontend-env/CHANGELOG.md +++ b/packages/@d-zero/check-frontend-env/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) + +**Note:** Version bump only for package @d-zero/check-frontend-env + # [5.0.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0-beta.19...v5.0.0) (2026-01-05) ### Bug Fixes diff --git a/packages/@d-zero/check-frontend-env/package.json b/packages/@d-zero/check-frontend-env/package.json index cb010ed1..6d99ce17 100644 --- a/packages/@d-zero/check-frontend-env/package.json +++ b/packages/@d-zero/check-frontend-env/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/check-frontend-env", - "version": "5.0.0", + "version": "5.1.0", "description": "Check Frontend Environment for D-ZERO", "repository": { "type": "git", diff --git a/packages/@d-zero/create-frontend/CHANGELOG.md b/packages/@d-zero/create-frontend/CHANGELOG.md index d821de5a..e5d95455 100644 --- a/packages/@d-zero/create-frontend/CHANGELOG.md +++ b/packages/@d-zero/create-frontend/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) + +### Bug Fixes + +- **create-frontend:** correct minimatch import ([c6e5eb1](https://github.com/d-zero-dev/frontend-env/commit/c6e5eb1c078d0805015a9e619d0289d8a9ba700c)) +- **create-frontend:** correct scaffold file filtering in interactive mode ([ffa3476](https://github.com/d-zero-dev/frontend-env/commit/ffa34761a72204667605581d6ac32c2b1936babf)), closes [#804](https://github.com/d-zero-dev/frontend-env/issues/804) +- **create-frontend:** exclude dotfiles from ignored patterns ([a4da0d0](https://github.com/d-zero-dev/frontend-env/commit/a4da0d03d36b95bb60a5990ffc916095909cfd77)) + +### Features + +- **create-frontend:** exclude index files for CMS types and format generated files ([cdd2a25](https://github.com/d-zero-dev/frontend-env/commit/cdd2a25874e7ec21a055abb74a206fe681345518)) + # [5.0.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0-beta.19...v5.0.0) (2026-01-05) **Note:** Version bump only for package @d-zero/create-frontend diff --git a/packages/@d-zero/create-frontend/package.json b/packages/@d-zero/create-frontend/package.json index ef3a5136..791b6515 100644 --- a/packages/@d-zero/create-frontend/package.json +++ b/packages/@d-zero/create-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/create-frontend", - "version": "5.0.0", + "version": "5.1.0", "description": "Create a new frontend project from a scaffolding template", "repository": { "type": "git", @@ -18,7 +18,7 @@ }, "dependencies": { "@d-zero/prettier-config": "5.0.0", - "@d-zero/scaffold": "5.0.0", + "@d-zero/scaffold": "5.1.0", "i18n-js": "4.5.2", "ignore": "7.0.5", "magicast": "0.5.2", diff --git a/packages/@d-zero/custom-components/CHANGELOG.md b/packages/@d-zero/custom-components/CHANGELOG.md index 1969b5b6..cc6683f2 100644 --- a/packages/@d-zero/custom-components/CHANGELOG.md +++ b/packages/@d-zero/custom-components/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) + +**Note:** Version bump only for package @d-zero/custom-components + # [5.0.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0-beta.19...v5.0.0) (2026-01-05) ### Bug Fixes diff --git a/packages/@d-zero/custom-components/package.json b/packages/@d-zero/custom-components/package.json index ebc4283f..fd0dfd6e 100644 --- a/packages/@d-zero/custom-components/package.json +++ b/packages/@d-zero/custom-components/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/custom-components", - "version": "5.0.0", + "version": "5.1.0", "description": "D-ZERO custom components", "author": "D-ZERO", "license": "MIT", diff --git a/packages/@d-zero/postcss-config/CHANGELOG.md b/packages/@d-zero/postcss-config/CHANGELOG.md index 8b9c8e23..cec994a3 100644 --- a/packages/@d-zero/postcss-config/CHANGELOG.md +++ b/packages/@d-zero/postcss-config/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) + +**Note:** Version bump only for package @d-zero/postcss-config + # [5.0.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0-beta.19...v5.0.0) (2026-01-05) **Note:** Version bump only for package @d-zero/postcss-config diff --git a/packages/@d-zero/postcss-config/package.json b/packages/@d-zero/postcss-config/package.json index bdd26013..d90eac57 100644 --- a/packages/@d-zero/postcss-config/package.json +++ b/packages/@d-zero/postcss-config/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/postcss-config", - "version": "5.0.0", + "version": "5.1.0", "description": "Configurations of PostCSS", "repository": { "type": "git", diff --git a/packages/@d-zero/scaffold/CHANGELOG.md b/packages/@d-zero/scaffold/CHANGELOG.md index 4b6be758..76067935 100644 --- a/packages/@d-zero/scaffold/CHANGELOG.md +++ b/packages/@d-zero/scaffold/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) + +### Bug Fixes + +- **repo:** disable postinstall scripts for third-party packages ([1fa4660](https://github.com/d-zero-dev/frontend-env/commit/1fa46609d04aa4811d7718a454e9c37ceb63c590)) +- **scaffold:** add defaultSemverRangePrefix to .yarnrc.yml ([14b75c3](https://github.com/d-zero-dev/frontend-env/commit/14b75c3f17da62584efba47865ae6436bf9c4faa)) +- **scaffold:** replace prepare with postinstall for husky setup ([8ee55e0](https://github.com/d-zero-dev/frontend-env/commit/8ee55e03ba0858157891ba298be2ce842dd9772a)) +- **scaffold:** update deprecated permission pattern syntax and add emulate tool ([c73e280](https://github.com/d-zero-dev/frontend-env/commit/c73e2808be5bece35793cf5135c33d5aa61e1902)) +- use url constant in meta.pug ([3b3bc48](https://github.com/d-zero-dev/frontend-env/commit/3b3bc489f8c865df01d8289ab73ee08e476f557e)) + +### Features + +- **scaffold:** add 7-day cooldown period for npm package releases ([81e20f4](https://github.com/d-zero-dev/frontend-env/commit/81e20f45534a60451fdaf2a3e28f3cb0bcc73942)) +- **scaffold:** replace redirect in index.pug with top page template ([9237385](https://github.com/d-zero-dev/frontend-env/commit/92373859f990922f7ad13d50afa57736f3dde0e7)) + # [5.0.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0-beta.19...v5.0.0) (2026-01-05) ### Bug Fixes diff --git a/packages/@d-zero/scaffold/package.json b/packages/@d-zero/scaffold/package.json index 4e0c147f..53533536 100644 --- a/packages/@d-zero/scaffold/package.json +++ b/packages/@d-zero/scaffold/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/scaffold", - "version": "5.0.0", + "version": "5.1.0", "description": "Frontend scaffold files of D-ZERO Co., Ltd.", "repository": { "type": "git", @@ -52,7 +52,7 @@ "@d-zero/eslint-config": "5.0.0", "@d-zero/lint-staged-config": "5.0.0", "@d-zero/markuplint-config": "5.0.0", - "@d-zero/postcss-config": "5.0.0", + "@d-zero/postcss-config": "5.1.0", "@d-zero/prettier-config": "5.0.0", "@d-zero/pug-lint-config": "5.0.0", "@d-zero/stylelint-config": "5.0.0", @@ -75,7 +75,7 @@ }, "dependencies": { "@burger-editor/css": "4.0.0-alpha.61", - "@d-zero/custom-components": "5.0.0", + "@d-zero/custom-components": "5.1.0", "dialog-toggle-events-polyfill": "1.1.4", "invokers-polyfill": "0.6.1", "kiso.css": "1.2.4", diff --git a/yarn.lock b/yarn.lock index a7b9e4c1..99d835a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1156,7 +1156,7 @@ __metadata: resolution: "@d-zero/create-frontend@workspace:packages/@d-zero/create-frontend" dependencies: "@d-zero/prettier-config": "npm:5.0.0" - "@d-zero/scaffold": "npm:5.0.0" + "@d-zero/scaffold": "npm:5.1.0" "@types/node": "npm:25.3.3" execa: "npm:9.6.1" i18n-js: "npm:4.5.2" @@ -1189,7 +1189,7 @@ __metadata: languageName: node linkType: hard -"@d-zero/custom-components@npm:5.0.0, @d-zero/custom-components@workspace:packages/@d-zero/custom-components": +"@d-zero/custom-components@npm:5.1.0, @d-zero/custom-components@workspace:packages/@d-zero/custom-components": version: 0.0.0-use.local resolution: "@d-zero/custom-components@workspace:packages/@d-zero/custom-components" dependencies: @@ -1280,7 +1280,7 @@ __metadata: languageName: node linkType: hard -"@d-zero/postcss-config@npm:5.0.0, @d-zero/postcss-config@workspace:packages/@d-zero/postcss-config": +"@d-zero/postcss-config@npm:5.1.0, @d-zero/postcss-config@workspace:packages/@d-zero/postcss-config": version: 0.0.0-use.local resolution: "@d-zero/postcss-config@workspace:packages/@d-zero/postcss-config" dependencies: @@ -1329,18 +1329,18 @@ __metadata: languageName: node linkType: hard -"@d-zero/scaffold@npm:5.0.0, @d-zero/scaffold@workspace:packages/@d-zero/scaffold": +"@d-zero/scaffold@npm:5.1.0, @d-zero/scaffold@workspace:packages/@d-zero/scaffold": version: 0.0.0-use.local resolution: "@d-zero/scaffold@workspace:packages/@d-zero/scaffold" dependencies: "@burger-editor/css": "npm:4.0.0-alpha.61" "@burger-editor/local": "npm:4.0.0-alpha.61" "@d-zero/cspell-config": "npm:5.0.0" - "@d-zero/custom-components": "npm:5.0.0" + "@d-zero/custom-components": "npm:5.1.0" "@d-zero/eslint-config": "npm:5.0.0" "@d-zero/lint-staged-config": "npm:5.0.0" "@d-zero/markuplint-config": "npm:5.0.0" - "@d-zero/postcss-config": "npm:5.0.0" + "@d-zero/postcss-config": "npm:5.1.0" "@d-zero/prettier-config": "npm:5.0.0" "@d-zero/pug-lint-config": "npm:5.0.0" "@d-zero/stylelint-config": "npm:5.0.0" From 07e887766af6eeabccbd5504c62c5efd972856b4 Mon Sep 17 00:00:00 2001 From: Yusaku Sato Date: Thu, 9 Apr 2026 17:50:00 +0900 Subject: [PATCH 5/8] chore(release): publish v5.1.1-alpha.0 --- CHANGELOG.md | 6 ++++++ lerna.json | 2 +- packages/@d-zero/check-frontend-env/CHANGELOG.md | 4 ++++ packages/@d-zero/check-frontend-env/package.json | 2 +- packages/@d-zero/create-frontend/CHANGELOG.md | 6 ++++++ packages/@d-zero/create-frontend/package.json | 4 ++-- packages/@d-zero/custom-components/CHANGELOG.md | 4 ++++ packages/@d-zero/custom-components/package.json | 2 +- packages/@d-zero/postcss-config/CHANGELOG.md | 4 ++++ packages/@d-zero/postcss-config/package.json | 2 +- packages/@d-zero/scaffold/CHANGELOG.md | 4 ++++ packages/@d-zero/scaffold/package.json | 6 +++--- yarn.lock | 12 ++++++------ 13 files changed, 43 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54ca0cc5..a3e1765e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) + +### Bug Fixes + +- **create-frontend:** skip scaffold install scripts when installed as dependency ([beb17f5](https://github.com/d-zero-dev/frontend-env/commit/beb17f57eb37e1dc1472b33fea3fc7510f36588e)) + # [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) ### Bug Fixes diff --git a/lerna.json b/lerna.json index cd46134d..30812788 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "8.1.2", - "version": "5.1.0", + "version": "5.1.1-alpha.0", "npmClient": "yarn", "packages": ["packages/@d-zero/*"], "command": { diff --git a/packages/@d-zero/check-frontend-env/CHANGELOG.md b/packages/@d-zero/check-frontend-env/CHANGELOG.md index 8046b629..227cbd7c 100644 --- a/packages/@d-zero/check-frontend-env/CHANGELOG.md +++ b/packages/@d-zero/check-frontend-env/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) + +**Note:** Version bump only for package @d-zero/check-frontend-env + # [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) **Note:** Version bump only for package @d-zero/check-frontend-env diff --git a/packages/@d-zero/check-frontend-env/package.json b/packages/@d-zero/check-frontend-env/package.json index 6d99ce17..5b3d9c43 100644 --- a/packages/@d-zero/check-frontend-env/package.json +++ b/packages/@d-zero/check-frontend-env/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/check-frontend-env", - "version": "5.1.0", + "version": "5.1.1-alpha.0", "description": "Check Frontend Environment for D-ZERO", "repository": { "type": "git", diff --git a/packages/@d-zero/create-frontend/CHANGELOG.md b/packages/@d-zero/create-frontend/CHANGELOG.md index e5d95455..23f985cd 100644 --- a/packages/@d-zero/create-frontend/CHANGELOG.md +++ b/packages/@d-zero/create-frontend/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) + +### Bug Fixes + +- **create-frontend:** skip scaffold install scripts when installed as dependency ([beb17f5](https://github.com/d-zero-dev/frontend-env/commit/beb17f57eb37e1dc1472b33fea3fc7510f36588e)) + # [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) ### Bug Fixes diff --git a/packages/@d-zero/create-frontend/package.json b/packages/@d-zero/create-frontend/package.json index 2bee876a..456ec15a 100644 --- a/packages/@d-zero/create-frontend/package.json +++ b/packages/@d-zero/create-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/create-frontend", - "version": "5.1.0", + "version": "5.1.1-alpha.0", "description": "Create a new frontend project from a scaffolding template", "repository": { "type": "git", @@ -23,7 +23,7 @@ }, "dependencies": { "@d-zero/prettier-config": "5.0.0", - "@d-zero/scaffold": "5.1.0", + "@d-zero/scaffold": "5.1.1-alpha.0", "i18n-js": "4.5.2", "ignore": "7.0.5", "magicast": "0.5.2", diff --git a/packages/@d-zero/custom-components/CHANGELOG.md b/packages/@d-zero/custom-components/CHANGELOG.md index cc6683f2..aec2410f 100644 --- a/packages/@d-zero/custom-components/CHANGELOG.md +++ b/packages/@d-zero/custom-components/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) + +**Note:** Version bump only for package @d-zero/custom-components + # [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) **Note:** Version bump only for package @d-zero/custom-components diff --git a/packages/@d-zero/custom-components/package.json b/packages/@d-zero/custom-components/package.json index fd0dfd6e..46cb9e76 100644 --- a/packages/@d-zero/custom-components/package.json +++ b/packages/@d-zero/custom-components/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/custom-components", - "version": "5.1.0", + "version": "5.1.1-alpha.0", "description": "D-ZERO custom components", "author": "D-ZERO", "license": "MIT", diff --git a/packages/@d-zero/postcss-config/CHANGELOG.md b/packages/@d-zero/postcss-config/CHANGELOG.md index cec994a3..16e9df3f 100644 --- a/packages/@d-zero/postcss-config/CHANGELOG.md +++ b/packages/@d-zero/postcss-config/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) + +**Note:** Version bump only for package @d-zero/postcss-config + # [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) **Note:** Version bump only for package @d-zero/postcss-config diff --git a/packages/@d-zero/postcss-config/package.json b/packages/@d-zero/postcss-config/package.json index d90eac57..3bece1a7 100644 --- a/packages/@d-zero/postcss-config/package.json +++ b/packages/@d-zero/postcss-config/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/postcss-config", - "version": "5.1.0", + "version": "5.1.1-alpha.0", "description": "Configurations of PostCSS", "repository": { "type": "git", diff --git a/packages/@d-zero/scaffold/CHANGELOG.md b/packages/@d-zero/scaffold/CHANGELOG.md index 76067935..c563006a 100644 --- a/packages/@d-zero/scaffold/CHANGELOG.md +++ b/packages/@d-zero/scaffold/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) + +**Note:** Version bump only for package @d-zero/scaffold + # [5.1.0](https://github.com/d-zero-dev/frontend-env/compare/v5.0.0...v5.1.0) (2026-04-08) ### Bug Fixes diff --git a/packages/@d-zero/scaffold/package.json b/packages/@d-zero/scaffold/package.json index 53533536..99815da4 100644 --- a/packages/@d-zero/scaffold/package.json +++ b/packages/@d-zero/scaffold/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/scaffold", - "version": "5.1.0", + "version": "5.1.1-alpha.0", "description": "Frontend scaffold files of D-ZERO Co., Ltd.", "repository": { "type": "git", @@ -52,7 +52,7 @@ "@d-zero/eslint-config": "5.0.0", "@d-zero/lint-staged-config": "5.0.0", "@d-zero/markuplint-config": "5.0.0", - "@d-zero/postcss-config": "5.1.0", + "@d-zero/postcss-config": "5.1.1-alpha.0", "@d-zero/prettier-config": "5.0.0", "@d-zero/pug-lint-config": "5.0.0", "@d-zero/stylelint-config": "5.0.0", @@ -75,7 +75,7 @@ }, "dependencies": { "@burger-editor/css": "4.0.0-alpha.61", - "@d-zero/custom-components": "5.1.0", + "@d-zero/custom-components": "5.1.1-alpha.0", "dialog-toggle-events-polyfill": "1.1.4", "invokers-polyfill": "0.6.1", "kiso.css": "1.2.4", diff --git a/yarn.lock b/yarn.lock index 954753cf..4d1ca36d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1156,7 +1156,7 @@ __metadata: resolution: "@d-zero/create-frontend@workspace:packages/@d-zero/create-frontend" dependencies: "@d-zero/prettier-config": "npm:5.0.0" - "@d-zero/scaffold": "npm:5.1.0" + "@d-zero/scaffold": "npm:5.1.1-alpha.0" "@types/node": "npm:25.3.3" execa: "npm:9.6.1" i18n-js: "npm:4.5.2" @@ -1192,7 +1192,7 @@ __metadata: languageName: node linkType: hard -"@d-zero/custom-components@npm:5.1.0, @d-zero/custom-components@workspace:packages/@d-zero/custom-components": +"@d-zero/custom-components@npm:5.1.1-alpha.0, @d-zero/custom-components@workspace:packages/@d-zero/custom-components": version: 0.0.0-use.local resolution: "@d-zero/custom-components@workspace:packages/@d-zero/custom-components" dependencies: @@ -1283,7 +1283,7 @@ __metadata: languageName: node linkType: hard -"@d-zero/postcss-config@npm:5.1.0, @d-zero/postcss-config@workspace:packages/@d-zero/postcss-config": +"@d-zero/postcss-config@npm:5.1.1-alpha.0, @d-zero/postcss-config@workspace:packages/@d-zero/postcss-config": version: 0.0.0-use.local resolution: "@d-zero/postcss-config@workspace:packages/@d-zero/postcss-config" dependencies: @@ -1332,18 +1332,18 @@ __metadata: languageName: node linkType: hard -"@d-zero/scaffold@npm:5.1.0, @d-zero/scaffold@workspace:packages/@d-zero/scaffold": +"@d-zero/scaffold@npm:5.1.1-alpha.0, @d-zero/scaffold@workspace:packages/@d-zero/scaffold": version: 0.0.0-use.local resolution: "@d-zero/scaffold@workspace:packages/@d-zero/scaffold" dependencies: "@burger-editor/css": "npm:4.0.0-alpha.61" "@burger-editor/local": "npm:4.0.0-alpha.61" "@d-zero/cspell-config": "npm:5.0.0" - "@d-zero/custom-components": "npm:5.1.0" + "@d-zero/custom-components": "npm:5.1.1-alpha.0" "@d-zero/eslint-config": "npm:5.0.0" "@d-zero/lint-staged-config": "npm:5.0.0" "@d-zero/markuplint-config": "npm:5.0.0" - "@d-zero/postcss-config": "npm:5.1.0" + "@d-zero/postcss-config": "npm:5.1.1-alpha.0" "@d-zero/prettier-config": "npm:5.0.0" "@d-zero/pug-lint-config": "npm:5.0.0" "@d-zero/stylelint-config": "npm:5.0.0" From 5e31f98298db6f3480ff8c5a219a2f1ed2f2c4ad Mon Sep 17 00:00:00 2001 From: Yusuke Hirao Date: Thu, 9 Apr 2026 19:16:15 +0900 Subject: [PATCH 6/8] fix(github): add dist-tag detection to publish workflow Prerelease tags (alpha/beta/rc) were published with the latest dist-tag. Determine the correct dist-tag from the git tag name and pass it to lerna publish via --dist-tag. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/publish.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a9b19b92..1fedd751 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,5 +32,20 @@ jobs: run: yarn install --immutable - name: Build run: yarn build + - name: Determine dist-tag + id: dist-tag + run: | + VERSION="${GITHUB_REF#refs/tags/v}" + if [[ "$VERSION" == *"-alpha"* ]]; then + echo "tag=alpha" >> "$GITHUB_OUTPUT" + elif [[ "$VERSION" == *"-beta"* ]]; then + echo "tag=beta" >> "$GITHUB_OUTPUT" + elif [[ "$VERSION" == *"-rc"* ]]; then + echo "tag=rc" >> "$GITHUB_OUTPUT" + elif [[ "$VERSION" == *"-"* ]]; then + echo "tag=next" >> "$GITHUB_OUTPUT" + else + echo "tag=latest" >> "$GITHUB_OUTPUT" + fi - name: Publish - run: npx lerna publish from-git --yes + run: npx lerna publish from-git --dist-tag ${{ steps.dist-tag.outputs.tag }} --yes From 48c2eeb5d0d516366a0de15f3e29f6e7c576018e Mon Sep 17 00:00:00 2001 From: Yusaku Sato Date: Fri, 10 Apr 2026 18:22:24 +0900 Subject: [PATCH 7/8] chore(release): publish v5.1.1-alpha.1 --- CHANGELOG.md | 11 +++++++++++ lerna.json | 2 +- packages/@d-zero/check-frontend-env/CHANGELOG.md | 4 ++++ packages/@d-zero/check-frontend-env/package.json | 2 +- packages/@d-zero/create-frontend/CHANGELOG.md | 8 ++++++++ packages/@d-zero/create-frontend/package.json | 4 ++-- packages/@d-zero/custom-components/CHANGELOG.md | 4 ++++ packages/@d-zero/custom-components/package.json | 2 +- packages/@d-zero/postcss-config/CHANGELOG.md | 4 ++++ packages/@d-zero/postcss-config/package.json | 2 +- packages/@d-zero/scaffold/CHANGELOG.md | 7 +++++++ packages/@d-zero/scaffold/package.json | 6 +++--- yarn.lock | 12 ++++++------ 13 files changed, 53 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3e1765e..ecdadf35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.1](https://github.com/d-zero-dev/frontend-env/compare/v5.1.1-alpha.0...v5.1.1-alpha.1) (2026-04-10) + +### Bug Fixes + +- **create-frontend:** inject postinstall husky in package.json transform ([801c23b](https://github.com/d-zero-dev/frontend-env/commit/801c23b98a6cb670690b9901480abab682ebd7ca)) +- **create-frontend:** remove ineffective dependenciesMeta for @d-zero/scaffold ([ff530a3](https://github.com/d-zero-dev/frontend-env/commit/ff530a32a3cf36f8206a614a941a78c443632da4)) +- **create-frontend:** rewrite prepare to postinstall in package.json transform ([ae01a0b](https://github.com/d-zero-dev/frontend-env/commit/ae01a0b10289bc36a2c2d72b87e3d05a520b586b)) +- **github:** add dist-tag detection to publish workflow ([5e31f98](https://github.com/d-zero-dev/frontend-env/commit/5e31f98298db6f3480ff8c5a219a2f1ed2f2c4ad)) +- **scaffold:** remove husky postinstall script ([eca511b](https://github.com/d-zero-dev/frontend-env/commit/eca511b990c843adf19c7496668e6823b3f13291)) +- **scaffold:** replace postinstall with prepare for husky ([e81b36d](https://github.com/d-zero-dev/frontend-env/commit/e81b36dce310c6a91ea010fe4a5d24cd40274a26)) + ## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) ### Bug Fixes diff --git a/lerna.json b/lerna.json index 30812788..404ab29c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "8.1.2", - "version": "5.1.1-alpha.0", + "version": "5.1.1-alpha.1", "npmClient": "yarn", "packages": ["packages/@d-zero/*"], "command": { diff --git a/packages/@d-zero/check-frontend-env/CHANGELOG.md b/packages/@d-zero/check-frontend-env/CHANGELOG.md index 227cbd7c..a4294065 100644 --- a/packages/@d-zero/check-frontend-env/CHANGELOG.md +++ b/packages/@d-zero/check-frontend-env/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.1](https://github.com/d-zero-dev/frontend-env/compare/v5.1.1-alpha.0...v5.1.1-alpha.1) (2026-04-10) + +**Note:** Version bump only for package @d-zero/check-frontend-env + ## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) **Note:** Version bump only for package @d-zero/check-frontend-env diff --git a/packages/@d-zero/check-frontend-env/package.json b/packages/@d-zero/check-frontend-env/package.json index 5b3d9c43..4d813cf9 100644 --- a/packages/@d-zero/check-frontend-env/package.json +++ b/packages/@d-zero/check-frontend-env/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/check-frontend-env", - "version": "5.1.1-alpha.0", + "version": "5.1.1-alpha.1", "description": "Check Frontend Environment for D-ZERO", "repository": { "type": "git", diff --git a/packages/@d-zero/create-frontend/CHANGELOG.md b/packages/@d-zero/create-frontend/CHANGELOG.md index 23f985cd..1360ec9c 100644 --- a/packages/@d-zero/create-frontend/CHANGELOG.md +++ b/packages/@d-zero/create-frontend/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.1](https://github.com/d-zero-dev/frontend-env/compare/v5.1.1-alpha.0...v5.1.1-alpha.1) (2026-04-10) + +### Bug Fixes + +- **create-frontend:** inject postinstall husky in package.json transform ([801c23b](https://github.com/d-zero-dev/frontend-env/commit/801c23b98a6cb670690b9901480abab682ebd7ca)) +- **create-frontend:** remove ineffective dependenciesMeta for @d-zero/scaffold ([ff530a3](https://github.com/d-zero-dev/frontend-env/commit/ff530a32a3cf36f8206a614a941a78c443632da4)) +- **create-frontend:** rewrite prepare to postinstall in package.json transform ([ae01a0b](https://github.com/d-zero-dev/frontend-env/commit/ae01a0b10289bc36a2c2d72b87e3d05a520b586b)) + ## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) ### Bug Fixes diff --git a/packages/@d-zero/create-frontend/package.json b/packages/@d-zero/create-frontend/package.json index 1fbf5f3a..3c313eac 100644 --- a/packages/@d-zero/create-frontend/package.json +++ b/packages/@d-zero/create-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/create-frontend", - "version": "5.1.1-alpha.0", + "version": "5.1.1-alpha.1", "description": "Create a new frontend project from a scaffolding template", "repository": { "type": "git", @@ -18,7 +18,7 @@ }, "dependencies": { "@d-zero/prettier-config": "5.0.0", - "@d-zero/scaffold": "5.1.1-alpha.0", + "@d-zero/scaffold": "5.1.1-alpha.1", "i18n-js": "4.5.2", "ignore": "7.0.5", "magicast": "0.5.2", diff --git a/packages/@d-zero/custom-components/CHANGELOG.md b/packages/@d-zero/custom-components/CHANGELOG.md index aec2410f..c54e8aee 100644 --- a/packages/@d-zero/custom-components/CHANGELOG.md +++ b/packages/@d-zero/custom-components/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.1](https://github.com/d-zero-dev/frontend-env/compare/v5.1.1-alpha.0...v5.1.1-alpha.1) (2026-04-10) + +**Note:** Version bump only for package @d-zero/custom-components + ## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) **Note:** Version bump only for package @d-zero/custom-components diff --git a/packages/@d-zero/custom-components/package.json b/packages/@d-zero/custom-components/package.json index 46cb9e76..39627d3a 100644 --- a/packages/@d-zero/custom-components/package.json +++ b/packages/@d-zero/custom-components/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/custom-components", - "version": "5.1.1-alpha.0", + "version": "5.1.1-alpha.1", "description": "D-ZERO custom components", "author": "D-ZERO", "license": "MIT", diff --git a/packages/@d-zero/postcss-config/CHANGELOG.md b/packages/@d-zero/postcss-config/CHANGELOG.md index 16e9df3f..a79b77bc 100644 --- a/packages/@d-zero/postcss-config/CHANGELOG.md +++ b/packages/@d-zero/postcss-config/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.1](https://github.com/d-zero-dev/frontend-env/compare/v5.1.1-alpha.0...v5.1.1-alpha.1) (2026-04-10) + +**Note:** Version bump only for package @d-zero/postcss-config + ## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) **Note:** Version bump only for package @d-zero/postcss-config diff --git a/packages/@d-zero/postcss-config/package.json b/packages/@d-zero/postcss-config/package.json index 3bece1a7..51af26cd 100644 --- a/packages/@d-zero/postcss-config/package.json +++ b/packages/@d-zero/postcss-config/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/postcss-config", - "version": "5.1.1-alpha.0", + "version": "5.1.1-alpha.1", "description": "Configurations of PostCSS", "repository": { "type": "git", diff --git a/packages/@d-zero/scaffold/CHANGELOG.md b/packages/@d-zero/scaffold/CHANGELOG.md index c563006a..7516c264 100644 --- a/packages/@d-zero/scaffold/CHANGELOG.md +++ b/packages/@d-zero/scaffold/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1-alpha.1](https://github.com/d-zero-dev/frontend-env/compare/v5.1.1-alpha.0...v5.1.1-alpha.1) (2026-04-10) + +### Bug Fixes + +- **scaffold:** remove husky postinstall script ([eca511b](https://github.com/d-zero-dev/frontend-env/commit/eca511b990c843adf19c7496668e6823b3f13291)) +- **scaffold:** replace postinstall with prepare for husky ([e81b36d](https://github.com/d-zero-dev/frontend-env/commit/e81b36dce310c6a91ea010fe4a5d24cd40274a26)) + ## [5.1.1-alpha.0](https://github.com/d-zero-dev/frontend-env/compare/v5.1.0...v5.1.1-alpha.0) (2026-04-09) **Note:** Version bump only for package @d-zero/scaffold diff --git a/packages/@d-zero/scaffold/package.json b/packages/@d-zero/scaffold/package.json index 3e92b3a7..d4bf01af 100644 --- a/packages/@d-zero/scaffold/package.json +++ b/packages/@d-zero/scaffold/package.json @@ -1,6 +1,6 @@ { "name": "@d-zero/scaffold", - "version": "5.1.1-alpha.0", + "version": "5.1.1-alpha.1", "description": "Frontend scaffold files of D-ZERO Co., Ltd.", "repository": { "type": "git", @@ -51,7 +51,7 @@ "@d-zero/eslint-config": "5.0.0", "@d-zero/lint-staged-config": "5.0.0", "@d-zero/markuplint-config": "5.0.0", - "@d-zero/postcss-config": "5.1.1-alpha.0", + "@d-zero/postcss-config": "5.1.1-alpha.1", "@d-zero/prettier-config": "5.0.0", "@d-zero/pug-lint-config": "5.0.0", "@d-zero/stylelint-config": "5.0.0", @@ -74,7 +74,7 @@ }, "dependencies": { "@burger-editor/css": "4.0.0-alpha.61", - "@d-zero/custom-components": "5.1.1-alpha.0", + "@d-zero/custom-components": "5.1.1-alpha.1", "dialog-toggle-events-polyfill": "1.1.4", "invokers-polyfill": "0.6.1", "kiso.css": "1.2.4", diff --git a/yarn.lock b/yarn.lock index d4395ccc..becde2d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1156,7 +1156,7 @@ __metadata: resolution: "@d-zero/create-frontend@workspace:packages/@d-zero/create-frontend" dependencies: "@d-zero/prettier-config": "npm:5.0.0" - "@d-zero/scaffold": "npm:5.1.1-alpha.0" + "@d-zero/scaffold": "npm:5.1.1-alpha.1" "@types/node": "npm:25.3.3" execa: "npm:9.6.1" i18n-js: "npm:4.5.2" @@ -1189,7 +1189,7 @@ __metadata: languageName: node linkType: hard -"@d-zero/custom-components@npm:5.1.1-alpha.0, @d-zero/custom-components@workspace:packages/@d-zero/custom-components": +"@d-zero/custom-components@npm:5.1.1-alpha.1, @d-zero/custom-components@workspace:packages/@d-zero/custom-components": version: 0.0.0-use.local resolution: "@d-zero/custom-components@workspace:packages/@d-zero/custom-components" dependencies: @@ -1280,7 +1280,7 @@ __metadata: languageName: node linkType: hard -"@d-zero/postcss-config@npm:5.1.1-alpha.0, @d-zero/postcss-config@workspace:packages/@d-zero/postcss-config": +"@d-zero/postcss-config@npm:5.1.1-alpha.1, @d-zero/postcss-config@workspace:packages/@d-zero/postcss-config": version: 0.0.0-use.local resolution: "@d-zero/postcss-config@workspace:packages/@d-zero/postcss-config" dependencies: @@ -1329,18 +1329,18 @@ __metadata: languageName: node linkType: hard -"@d-zero/scaffold@npm:5.1.1-alpha.0, @d-zero/scaffold@workspace:packages/@d-zero/scaffold": +"@d-zero/scaffold@npm:5.1.1-alpha.1, @d-zero/scaffold@workspace:packages/@d-zero/scaffold": version: 0.0.0-use.local resolution: "@d-zero/scaffold@workspace:packages/@d-zero/scaffold" dependencies: "@burger-editor/css": "npm:4.0.0-alpha.61" "@burger-editor/local": "npm:4.0.0-alpha.61" "@d-zero/cspell-config": "npm:5.0.0" - "@d-zero/custom-components": "npm:5.1.1-alpha.0" + "@d-zero/custom-components": "npm:5.1.1-alpha.1" "@d-zero/eslint-config": "npm:5.0.0" "@d-zero/lint-staged-config": "npm:5.0.0" "@d-zero/markuplint-config": "npm:5.0.0" - "@d-zero/postcss-config": "npm:5.1.1-alpha.0" + "@d-zero/postcss-config": "npm:5.1.1-alpha.1" "@d-zero/prettier-config": "npm:5.0.0" "@d-zero/pug-lint-config": "npm:5.0.0" "@d-zero/stylelint-config": "npm:5.0.0" From 81c94ad4d0d51f21592a248acafbfdcbc803051c Mon Sep 17 00:00:00 2001 From: Yusuke Hirao Date: Wed, 22 Apr 2026 22:27:33 +0900 Subject: [PATCH 8/8] chore(repo): sync Claude Code configuration from ai-setup template --- .claude/commands/doc.md | 32 +++- .claude/commands/git.md | 158 ++++++++++------- .claude/commands/pr.md | 15 +- .claude/settings.json | 12 ++ .claude/skills/product-manager/SKILL.md | 203 ++++++++++++++++++++++ .claude/skills/qa-engineer/SKILL.md | 219 ++++++++++++++++++++++++ CLAUDE.md | 59 +++++++ 7 files changed, 625 insertions(+), 73 deletions(-) create mode 100644 .claude/settings.json create mode 100644 .claude/skills/product-manager/SKILL.md create mode 100644 .claude/skills/qa-engineer/SKILL.md create mode 100644 CLAUDE.md diff --git a/.claude/commands/doc.md b/.claude/commands/doc.md index 08ba06af..0cf444a4 100644 --- a/.claude/commands/doc.md +++ b/.claude/commands/doc.md @@ -1,11 +1,31 @@ --- -description: Update documentation commands +description: ドキュメント更新コマンド --- -Thoroughly identify any omissions or inconsistencies in the documentation. **The implementation is the absolute source of truth.** +ドキュメントの漏れや矛盾を徹底的に洗い出す。**実装が絶対的な正とする。** -- README.md is intended for API users -- ARCHITECTURE.md is intended for contributors -- Other documents should match their respective content +# 対象範囲 -Use the language specified in each document. +- README.md は API ユーザー向け +- ソースコード内の JSDoc コメント +- その他のドキュメントはそれぞれの内容に対応 + +# ルール + +- 各ドキュメントで指定されている言語を使用すること +- **実装を絶対に変更しない** — 関数本体、型定義、export 文、関数や型定義の順序すら変更しないこと +- **特定の依存パッケージのバージョン番号をドキュメントに含めない** — バージョンの正は `package.json` を参照 +- コードやドキュメントの意図が不明な場合は、推測せずユーザーに確認すること + +# JSDoc + +- エクスポートされた全ての関数と型に JSDoc コメントを付与すること +- 必須タグ: + - `@param` — 各パラメータに対して。説明は必須 + - `@returns` — 戻り値の説明は必須 + - `@template` — 各型パラメータに対して +- TypeScript が既に提供している冗長な型注釈は追加しない + +# 最終ステップ(必須) + +ドキュメントの変更が全て完了したら、**必ず `yarn lint` を実行**してフォーマット、スペル、スタイルを検証する。エラーがあればコミット前に修正すること。 diff --git a/.claude/commands/git.md b/.claude/commands/git.md index 9531ca86..6f1f8bfa 100644 --- a/.claude/commands/git.md +++ b/.claude/commands/git.md @@ -1,66 +1,98 @@ --- -description: Git manipulation rules +description: Git 操作ルール --- -# Commit creation - -- When asked to "commit": - 1. Check staged files using `git diff --staged` and create a commit message using _only_ the staged files. - - Once the message is ready, directly propose the commit command to the user. - 2. If no files are staged, check the differences using `git status`, then stage files sequentially based on the following commit granularity before committing: - - Separate commits by package. - - Commit dependencies first (if dependency order is unclear, check using `npx lerna list --graph`). -- If the OS, application settings, or context suggest a language other than English is being used, provide a translation and explanation of the commit message in that language immediately before proposing the commit command to the user. -- When the commit message is ready, try to execute it directly as `git commit` (the user will approve as appropriate). - -# Commit message format - -- You must write in English -- You must use the imperative mood -- You must use conventional commits - - You must use the following types: - - `feat` - - `fix` - - `docs` - - `refactor` - - `test` - - `chore` - - You must use the following scopes: - - Each package name (without namespace) - - `repo` - - `deps` - - `github` -- The message body's lines must not be longer than 100 characters -- The subject must not be sentence-case, start-case, pascal-case, upper-case - -# Commit message safety guidelines - -- Always use single quotes (') instead of double quotes (") for commit messages to avoid shell interpretation issues -- For breaking changes or complex commit messages: - - Option 1 (Recommended for complex messages): Use the git commit without -m flag to open an editor: - - ``` - git commit - ``` - - Then write your commit message in the editor with the proper format: - - ``` - type(scope)!: subject line - - BREAKING CHANGE: detailed explanation - - Additional details - - More information - ``` - - - Option 2: For command line commits with breaking changes, use a simple format: - ``` - git commit -m 'type(scope)!: subject line' -m 'BREAKING CHANGE: explanation' - ``` - -- Avoid using special characters like \n in command line commit messages -- For multi-line messages in command line, use multiple -m parameters instead of line breaks -- When lines exceed 100 characters, split them using multiple -m flags: - ``` - git commit -m 'type(scope): subject line' -m 'First line of body' -m 'Second line of body' - ``` +# コミット作成 + +- 「コミット」を求められた場合: + - **重要: 必ず `git status` で現在の状態を確認すること** + - **重要: 以前の状態やメモリを信用しない — 必ずステージングエリアの現状を確認** + 1. ファイルが既にステージングされている場合: + - **重要: ステージング済みファイルがある場合、`git add` や `git restore` を絶対に使わない** + - **重要: ステージングエリアを一切変更しない** + - `git diff --staged` でステージング済みファイルを確認し、そのファイル*のみ*に基づくコミットメッセージを作成 + - メッセージ付きで `git commit` を直接実行(ユーザーが適宜承認する) + - ユーザーが既にステージングエリアを準備済み — その判断を完全に尊重すること + 2. ステージングされたファイルがない場合: + - `git status` で差分を確認 + - 以下のコミット粒度に基づいてファイルを順次ステージングしてからコミット: + - パッケージ単位でコミットを分割 + - 依存元を先にコミット(依存順序が不明な場合は `yarn lerna list --graph` で確認) +- **各コミット後:** + - **重要: 自動的に次のコミットに進まない** + - **重要: 次に何をすべきか推測しない** + - **重要: 以前の状態のメモリを信用しない** + - `git status` と `git diff` で現在の状態を確認 + - この判定プロセスの最初に戻る(ファイルがステージングされているかどうかの確認) + - 続行する前にユーザーの確認または新しい指示を待つ +- OS、アプリケーション設定、またはコンテキストから英語以外の言語が使用されていると判断される場合、コミットコマンド実行の直前に、コミットメッセージの翻訳と説明をその言語で提供すること。 + +# コミット前コンテンツチェック + +- `git commit` を実行する前に、必ず `git diff --staged` をスキャンし、プロジェクト固有の名称、企業名、顧客情報など、リポジトリに含めるべきでない情報がないか確認する。 +- 該当するものがあれば、コミット前にステージングから除外する。 + +# パッケージのコミット順序(依存元優先) + +複数パッケージにまたがる変更をコミットする場合、必ず**リーフからルートへ**コミットする。依存順序が不明な場合は `yarn lerna list --graph` で確認すること。 + +- ルート設定の変更(`tsconfig.json`, CI 等)はパッケージの変更より先にコミット +- 単一パッケージの変更は順序付け不要 — そのパッケージだけをコミット + +# コミットメッセージの形式 + +- 英語で記述すること +- 命令法を使用すること +- Conventional Commits を使用すること + - 使用するタイプ: `feat`, `fix`, `docs`, `refactor`, `test`, `chore` + - 使用するスコープ: + - 各パッケージ名(ネームスペースなし): `builder`, `check-frontend-env`, `create-frontend`, `custom-components`, `postcss-config`, `scaffold` + - `repo`, `deps`, `github` +- メッセージ本文の各行は100文字以下 +- 件名は sentence-case, start-case, pascal-case, upper-case にしない + +# コミットメッセージの安全ガイドライン + +- 破壊的変更や複雑なコミットメッセージには、必ず heredoc 形式を使用(下記参照) +- シンプルな1行コミットにはシングルクォート (') を使用 +- 破壊的変更で複数の -m フラグを絶対に使わない(commitlint のパースエラーの原因になる) + +## Heredoc 形式(破壊的変更では必須) + +heredoc とコマンド置換を使って複数行のコミットメッセージを渡す。これにより: + +- 特殊文字(感嘆符など)が正しく保持される +- 複数行メッセージが適切にフォーマットされる +- commitlint がメッセージを正しくパースできる + +**形式:** + +```bash +git commit -m "$(cat <<'EOF' +type(scope)!: subject line + +BREAKING CHANGE: 説明 + +詳細: +- 変更点1 +- 変更点2 +EOF +)" +``` + +**重要な注意点:** + +- `<<'EOF'`(クォート付き)で変数展開を防ぐ +- `EOF` の後に `)` で閉じてコマンド置換を完了 +- 破壊的変更で複数の `-m` フラグを使用しない +- メッセージ全体を `"$(cat <<'EOF' ... EOF)"` で囲む + +## シンプルなコミット(非破壊的変更) + +破壊的変更のないシンプルな1行コミット: + +```bash +git commit -m 'type(scope): subject line' +``` + +複数行の非破壊的コミットにも、適切なフォーマットを確保するため heredoc 形式を使用すること diff --git a/.claude/commands/pr.md b/.claude/commands/pr.md index dd46d6ff..05a46ece 100644 --- a/.claude/commands/pr.md +++ b/.claude/commands/pr.md @@ -1,7 +1,14 @@ --- -description: Create and push a pull request +description: プルリクエストの作成とプッシュ --- -1. Ensure that you are on a topic branch that is not `dev` or `main`. -2. Review the changes on the current topic branch using appropriate `git` commands. -3. Generate and execute a one-liner `gh pr create` command to create a pull request. +1. `dev` や `main` ではないトピックブランチにいることを確認する。 +2. **プリフライトチェック(必須 — 省略不可):** + - `yarn lint`、`yarn build`、`yarn test` がこのセッション内でまだ実行・成功していない場合、続行する前に**今すぐ実行**する。 + - 全てがパスしなければならない。失敗があれば続行前に修正する。 +3. 適切な `git` コマンドを使って現在のトピックブランチの変更をレビューする。 +4. `gh pr create` コマンドのワンライナーを生成・実行してプルリクエストを作成する。 +5. **CI 監視:** + - PR 作成直後に `gh pr checks --watch` で CI の完了を待機する。 + - テストが途中で失敗した場合は完了を待たずに修正作業に戻る。 + - 全テストが通りマージ可能になったらユーザーに報告する。 diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 00000000..dee175e8 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,12 @@ +{ + "permissions": { + "deny": [ + "Read(**/.env)", + "Read(**/.env.*)", + "Edit(**/.env)", + "Edit(**/.env.*)", + "Write(**/.env)", + "Write(**/.env.*)" + ] + } +} diff --git a/.claude/skills/product-manager/SKILL.md b/.claude/skills/product-manager/SKILL.md new file mode 100644 index 00000000..942836b3 --- /dev/null +++ b/.claude/skills/product-manager/SKILL.md @@ -0,0 +1,203 @@ +--- +name: product-manager +metadata: + internal: true +description: > + プロダクトマネージャー(PdM)の視点でリポジトリの分析、レビュー、ドキュメント生成を行うスキル。 + 言語・フレームワーク非依存 — あらゆるリポジトリに対応。 + リポジトリ構造の把握、コードの読解・ナビゲーション、依存関係の分析、READMEやドキュメントの生成・レビュー、 + 技術スタックの要約、アーキテクチャの評価、新機能の運用影響の評価、PRレビューなどに使用。 + 「このリポジトリは何をしている?」「READMEを書いて」「この変更をレビューして」 + 「メンテナブルか?」「このPRどう思う?」といったリクエストに対応。 + リポジトリの分析、レビュー、ドキュメントに関するタスクにはこのスキルを迷わず使用すること。 +--- + +# リポジトリレビューアー — PdM 視点でのリポジトリ分析 + +あなたはプロダクトマネージャー(PdM)のマインドセットを持つリポジトリアナリストです。 +コードを読むとき、常に「この機能は今後どうメンテナンスされるか?」を考えます。 + +## 基本方針 + +追加されるすべての新機能は、メンテナンスコストの直接的な増加である。 +機能の品質を長期的に維持するには、チーム全体が「どうやって動かし続けるか」を共有する必要がある。 +そのためにドキュメントとコードコメントがこの知識を記録しなければならない。 + +これは慎重すぎることやリスク回避の話ではない。変化に適応し続けるための話である。 +そのために必要なこと: + +- **更新手順** が明示的にドキュメント化されている +- **参照URL**(ドキュメントページ、公式ソースなど)が記録されている +- **検索キーワード** が共有されている — 誰でも必要な情報を見つけられるように + +互換性について: メジャーバージョンでの破壊的変更は歓迎。 +ただしマイナーリリースでは後方互換性を維持すること。 + +## リポジトリ分析ワークフロー + +### ステップ1: 全体構造の把握 + +まず全体像を理解する。 + +1. ルートディレクトリのファイルを一覧 +2. 2〜3階層の深さでディレクトリ構造をマッピング +3. 以下のファイルを優先的に読む: + - `README.md` / `README` + - 言語固有のマニフェスト(`package.json` / `Cargo.toml` / `go.mod` / `composer.json` 等) + - `Makefile` / `Dockerfile` / `docker-compose.yml` + - `.github/workflows/` 配下の CI 設定 + - `CHANGELOG.md` / `HISTORY.md` + - `CONTRIBUTING.md` + +### ステップ2: 技術スタックの特定 + +マニフェストとコードから以下を特定: + +- プログラミング言語とバージョン +- フレームワークとライブラリ(コアとユーティリティを区別) +- テストフレームワーク +- ビルドツール / タスクランナー +- CI/CD パイプライン +- インフラ / デプロイ構成 + +### ステップ3: アーキテクチャの読解 + +ディレクトリ構成とコードの依存関係からアーキテクチャパターンを推測: + +- レイヤード?クリーンアーキテクチャ?モノリス?マイクロサービス? +- エントリーポイントはどこか? +- データフロー(入力 → 処理 → 出力) +- 外部サービスとの連携ポイント + +### ステップ4: 運用評価(このスキルの核心) + +#### 4a. ドキュメントの完全性 + +- README にセットアップ、実行、テストの手順があるか? +- 仕様が変化する機能について、根拠と変更履歴が記録されているか? +- 最新情報の入手先(URL、検索キーワード)への明確なポインタがあるか? +- API や設定のドキュメントは実際のコードと一致しているか? + +#### 4b. メンテナビリティ + +- コードコメントは「なぜ」(「何」ではなく)を説明しているか? +- ドキュメント化されていないマジックナンバーや暗黙の前提がないか? +- エラーハンドリングは十分か?(サイレント失敗は運用上の危険) +- ログ出力は本番運用に耐えるか? + +#### 4c. テストと品質保証 + +- 概算のテストカバレッジ(テストファイルの存在と網羅性) +- CI は何をチェックしているか? +- リリース前チェックリストはあるか? + +#### 4d. 互換性とマイグレーション + +バージョニングと CHANGELOG は自動化されている前提。ここでは人的作業が必要なものに注目。 + +- 破壊的変更がある場合、**マイグレーションガイドは提供されているか?**(必須。マイグレーションガイドのない破壊的変更はレビューを通さない) +- マイグレーションガイドには以下が含まれているか: + - 影響を受ける API、設定、データ構造の一覧 + - 具体的な before → after の書き換え例 + - ステップバイステップのマイグレーション手順(一括移行が不可能な場合の中間状態を含む) + - 自動マイグレーションスクリプトがある場合はその実行手順 +- 非推奨化について、削除予定バージョンと移行先がドキュメント化されているか? + +## レビュー出力形式 + +分析結果は以下の構造で報告: + +``` +## リポジトリ概要 +名前、目的、技術スタックのサマリー + +## アーキテクチャ +構造概要、データフロー、主要コンポーネント + +## 運用評価 + +### ドキュメント +現状と不足項目 + +### メンテナビリティ +コード品質、コメント品質、エラーハンドリング + +### テスト & CI +テストカバレッジ、CI 設定の評価 + +### 互換性 & マイグレーション +マイグレーションガイドの有無と品質、非推奨化の対応 + +## 推奨アクション +優先度付きの具体的な改善提案リスト。 +各項目に「なぜ重要か(運用コストの観点から)」を含める。 + +## 参照リンク +- このリポジトリの最新情報を追うための URL +- 関連する公式ドキュメントへのリンク +- トラブルシューティングに役立つ検索キーワード +``` + +## ドキュメント生成ルール + +README やドキュメントを生成・更新する際は、必ず以下を含める: + +1. **セットアップ手順**: 環境構築から動作するまでの最短パス +2. **開発ワークフロー**: ブランチ戦略、コミットメッセージ規約、PR ルール +3. **テスト実行**: ローカルでテストを実行するコマンドと期待される結果 +4. **デプロイ手順**: 本番環境へのリリース方法 +5. **トラブルシューティング**: よくある問題と解決策 +6. **参照情報**: + - 関連する外部ドキュメントの URL + - 最新の仕様を確認できる場所 + - 回答を見つけるのに役立つ検索キーワード(例:「"○○ error fix" で検索すると解決策が見つかる」) +7. **更新責任**: このドキュメントをいつ、誰が更新すべきか + +仕様が変化する機能については、明示的に記載: + +- 現在の仕様がどの段階か(確定 / 暫定 / 議論中) +- 仕様変更の履歴と根拠 +- 最新の仕様を確認する方法(URL、連絡先、Slack チャンネルなど) + +## コードレビューの観点 + +PR やコード変更をレビューする際は、以下に注目: + +### スコープ制限 + +トピックブランチでの作業中は、レビューや指摘は原則として**そのブランチの変更範囲に限定する**。ただし、変更がスコープ外と関連し、外から見た修正内容が有益であれば、スコープ外のドキュメント更新も行ってよい。 + +### 1. この変更はメンテナンスコストをどれだけ増加させるか? + +- 新しい依存関係が追加されているか? +- 新しい設定パラメータが必要か? +- 新しい監視やアラートが必要か? + +### 2. この変更を理解するために必要な知識は共有されているか? + +- PR の説明は十分か? +- コードコメントは「なぜ」を説明しているか? +- 関連ドキュメントは更新されているか? + +### 3. 破壊的変更にはマイグレーションガイドが付いているか? + +- マイナーバージョンに破壊的変更が含まれていないか?(レビューで指摘する) +- 破壊的変更が含まれる場合、マイグレーションガイドが同梱されているか?(ガイドなし = マージ不可) +- ガイドに具体的な before → after の書き換え例があるか? +- 非推奨化について、削除バージョンとマイグレーションパスがドキュメント化されているか? + +### 4. コードは変化に対応できるように作られているか? + +- 設定可能にすべきハードコード値がないか? +- 設定は適切に外部化されているか? +- 将来の変更に柔軟か?(ただし過度な抽象化は避ける) + +## 言語・フレームワーク非依存の分析 + +このスキルはあらゆるリポジトリに適用可能。言語固有の知識に依存せず、普遍的なパターンに注目: + +- **エントリーポイント**: `main` 関数、`index` ファイル、設定されたスタートポイント +- **依存管理**: マニフェストファイル — 何が使われ、バージョンは固定されているか? +- **テスト規約**: `test/` `tests/` `spec/` `__tests__/` ディレクトリ、ファイル名パターン +- **設定**: `.env`、`config/`、環境変数、設定ファイル群 +- **ビルド成果物**: `.gitignore` から生成ファイルを推測 diff --git a/.claude/skills/qa-engineer/SKILL.md b/.claude/skills/qa-engineer/SKILL.md new file mode 100644 index 00000000..1e5bab89 --- /dev/null +++ b/.claude/skills/qa-engineer/SKILL.md @@ -0,0 +1,219 @@ +--- +name: qa-engineer +metadata: + internal: true +description: > + QAエンジニアとしてコードレビューとテスト品質チェックを行うスキル。 + コードカバレッジの改善、テスト偽装コードの検出、例外の握りつぶし検出、 + テスト内の条件分岐の指摘、ハードコードされたアサーションの推奨を行う。 + 言語・フレームワーク非依存 — あらゆるリポジトリに対応。 + 以下のキーワードでこのスキルを起動: コードレビュー、テスト、カバレッジ、QA、品質チェック、 + テスト生成、リファクタリング、レビュー、review、test、coverage、refactor。 + PRレビューやテスト改善のリクエスト時は必ずこのスキルを使用すること。 +--- + +# QA エンジニアスキル + +あなたは QA エンジニアです。コード品質とテスト信頼性を守ることが使命です。 + +## 基本マインドセット + +コードを読む際、常に自問すること: + +- このコードは**本当に正しく動作している**のか、それとも**テストが通るように見せかけている**だけか? +- テストは**実装の振る舞いを保証している**のか、それとも**たまたま通っている**だけか? +- 将来このコードに触る人が**テストだけ読んで仕様を理解できる**か? +- この新規コードを削除したら**テストは落ちるか**?落ちないなら、テスト数に関係なくそのコードはテストされていない。 +- この PR は複数パッケージの振る舞いを変更している — **パイプライン全体が動くことを証明するテストはあるか**? + +## レビューの観点 + +### スコープ制限 + +トピックブランチでの作業中は、コード指摘は原則として**そのブランチの作業スコープ内に限定する**。ただし、末端の修正が広範囲に影響すると判断した場合、スコープ外のテスト追加は許可する。カバレッジがスコープ制限より優先される。 + +### 1. テスト偽装コードの検出 + +テストをパスさせるためだけに書かれた、実際の正しさを検証していないコードを見つける。 + +**検出パターン:** + +- テスト時のみ使用されるフラグや分岐(`if (process.env.NODE_ENV === 'test')`) +- テスト対象のロジックをバイパスするモック(テストすべき部分そのものをモック化している) +- 例外を投げる代わりにデフォルト値を返し、エラーを黙って飲み込む +- `catch (e) {}` や `catch (e) { /* ignore */ }` のような空のエラーハンドリング + +**なぜ重要か:** テストが通っていてもバグは本番インシデントまで生き残る。テスト偽装は最悪の状態を生む: 安全であるという偽りの安心感。 + +### 2. 握りつぶされた例外の検出 + +try/catch で例外を黙って握りつぶしているコードを見つける。 + +**検出パターン:** + +- 空の `catch` ブロック、またはログを出力するだけで実行を続けるブロック +- 過度に広いキャッチ(`catch (Exception e)` のような基底例外クラスのキャッチ) +- エラーを代替の戻り値に変換する(`catch (e) { return null; }`)ため、呼び出し元が失敗を検出できない + +**レビュー時の提案:** + +- 回復可能なエラーには明示的な回復ロジックを記述 +- 回復不能なエラーは適切に再スロー +- ログを出力する場合はコンテキスト(何をしようとして失敗したか)を含める + +### 3. テストコード内の条件分岐 + +テストコード自体に `if` / `switch` / 三項演算子が含まれると、テストが実際に何を検証しているか不明確になる。 + +**なぜ問題か:** +テストは「この入力に対してこの出力が返る」というシンプルなアサーションであるべき。テスト内の条件分岐は、テスト自体にバグが潜む可能性を意味する。 + +**発見時の提案:** + +- 条件分岐を除去し、ケースごとに独立したテストに分割 +- 明示的な入力/期待値ペアによるパラメータ化テスト(テーブル駆動テスト)を使用 + +### 4. ハードコードされたアサーションの推奨 + +期待値はできる限りハードコードされたリテラルにすべき。 + +**悪い例:** + +``` +expected = compute_expected(input) +assert result == expected +``` + +`compute_expected` にバグがあってもテストは通ってしまう。 + +**良い例:** + +``` +assert result == 42 +``` + +テストを読むだけで実装が何を返すべきか即座にわかる。 + +**例外:** 大規模なテストデータやスナップショットテストではこのルールを緩和可能。その場合でもスナップショットが適切に更新されていることを確認すること。 + +### 5. ゴーストコードの検出 — テストのない新規コードパス + +対応するテストが**存在しない**新規または変更された本番コードを見つける。 + +**なぜ重要か:** 既存テストが全てそのまま通るコードこそ最も危険な場合がある。大きな機能を追加してテストが1つも落ちなければ、新しいコードパスが完全にテストされていない可能性が高い — コードベースには存在するが実際には検証されていない。 + +**検出パターン:** + +- 対応する `.spec.ts` / `.test.ts` がない新規ファイル(`git diff --name-only --diff-filter=A`) +- テストファイルから一切呼び出されていない新規エクスポート関数/クラス +- 既存コード内の新規分岐(`if`/`switch`/三項)で、どのテストもトリガーしない +- どのテストも供給しない設定プロパティ(例: JSON スキーマや型定義の新規オプション) + +**レッドフラグ:** PR が相当量の本番コードを追加しているが、テストの差分がごくわずかまたはゼロ。常に問い: 「この新規コードを削除したらどのテストが落ちるか?」 + +### 6. 破壊的変更のインパクト検証 + +破壊的または振る舞いを大きく変える変更では、**既存テストが落ちるべき**。落ちなければ警告サインである。 + +**検出パターン:** + +- PR の説明やコミットメッセージで「破壊的変更」「新しい振る舞い」「マイグレーション」に言及しているが、既存テストの変更がゼロ +- ランタイムの振る舞いを変える新規設定オプションだが、既存の統合テストがそのまま通る +- リネームまたは再構成された API で、テスト内の旧呼び出し箇所が更新されていない +- 既存のアサーションが検証していない新規の重大度レベル、エラーコード、出力フォーマット + +**確認すべきこと:** + +- 振る舞いの変更によって影響を*受けるべき*既存テストを特定 +- 影響を受けるテストがない場合、機能が本当に追加的(安全)なのか、既存テストが変更パスのカバレッジを欠いているだけなのかを判断 +- モノレポの場合: クロスパッケージの変更には各パッケージ内のユニットテストだけでなく、統合境界でのテストが必要 + +**提案:** パッケージ境界ごとに、新しい振る舞いをエンドツーエンドで実行するテストを少なくとも1つ追加。 + +### 7. クロスパッケージ変更の統合テスト要件 + +モノレポやマルチモジュールプロジェクトでは、変更が複数パッケージにまたがる場合、単一パッケージ内のユニットテストでは不十分。 + +**指摘すべきタイミング:** + +- 単一 PR で 3 以上のパッケージに変更がある +- パッケージ A で新しい型/インターフェースが定義され、パッケージ B で消費され、パッケージ C 経由でユーザーに公開される — だがパッケージ A のユニットテストしかない +- 設定やプリセットファイルが変更されたが、それを読み込んで結果のランタイム振る舞いを検証するテストがない +- 新機能がスキーマ → 設定パース → コアエンジン → レポーター出力と流れるが、テストがコアエンジンの単体テストのみ + +**提案すべきこと:** + +- 実際の設定/プリセットファイルを読み込み、実入力を処理し、最終出力をアサートする統合テスト +- 設定 → パース → 処理 → 出力のフルパイプラインを検証するテスト +- 設定駆動の機能: 設定値を供給し振る舞いの差異をアサートするテスト + +### 8. カバレッジ改善の提案 + +テストカバレッジを向上させるための具体的な提案を行う。 + +**提案すべき方向性:** + +- **関数オプション/引数の網羅**: オプショナルパラメータ、デフォルト値、組み合わせ +- **エラーケースとエッジケース**: null/undefined/空文字列/空配列、境界値、型不一致、巨大入力 +- **エラーパス**: ネットワークエラー、タイムアウト、権限不足、ファイル不在 +- **状態遷移**: 初期状態、遷移中、完了後、エラー後の回復 + +### 9. テストをドキュメントとして機能させる + +よくあるミスや初心者のエラーをカバーするテストは、効果的にドキュメントとして機能する。 + +**テスト名で仕様を伝える:** + +``` +test("空のリストに対してsortを呼んでも例外が投げられない") +test("負の数が含まれていても合計が正しく計算される") +test("最大長を超えた入力は切り詰められる") +``` + +このようなテストがあれば、README を読まなくても「この関数は空リストを受け入れる」「負の数を処理できる」と理解できる。 + +## リファクタリング提案 + +コードレビュー時、テスト品質とは別に本番コードの構造的改善も提案する。 + +**提案の基準:** + +- テスタビリティを向上させる変更を優先(依存性注入、副作用の分離など) +- 影響範囲とリスクを明示 +- 段階的に適用可能なステップに分解 + +## レビュープロセス + +1. **まずリポジトリ構造を理解**: テストフレームワーク、ディレクトリ構成、既存のテストパターンを確認 +2. **変更範囲を評価**: 影響を受けるパッケージ/モジュール数を数える。3以上なら統合テスト要件を適用(観点7) +3. **テスト対コードの比率を確認**: 本番コードの差分サイズとテストの差分サイズを比較。大きな機能にテスト変更が最小限ならレッドフラグ(観点5) +4. **破壊的変更のシグナルを確認**: コミットが破壊的変更、新しい振る舞い、マイグレーションに言及している場合、既存テストが更新されているか検証(観点6) +5. **テストコードを読む**: テストから仕様を理解し、本番コードとの乖離を確認 +6. **全ての観点で問題を特定**: 各観点ごとに整理して所見をリスト化 +7. **優先度付きで報告**: 最も重大度の高い所見から提示し、必ず根拠と修正案を添える + +## レビューレポートの形式 + +レビュー結果は以下の構造で報告: + +``` +## レビューサマリー + +### 🔴 重大な問題(修正必須) +テスト信頼性に直接影響する問題。マージ前に修正必須。 + +### 🟡 推奨される改善 +品質向上のために望ましい。次のイテレーションで対応可能。 + +### 🟢 提案 +さらなる改善のためのアイデア。任意。 + +### 📊 カバレッジ改善案 +追加すべきテストケースの具体的なリスト。 +``` + +各所見には以下を含めること: + +- **場所**: ファイル名と行番号 +- **問題の説明**: 何が間違っていて、なぜ重要か +- **修正案**: 提案する変更を示す具体的なコード例 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..bdfdd0d9 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,59 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## 概要 + +D-ZERO 株式会社のフロントエンド開発環境パッケージ群(`@d-zero/frontend-env`)。Lerna + Yarn Workspaces のモノレポ構成で、ビルダー、フロントエンド環境チェッカー、共通カスタム要素、PostCSS 設定、スキャフォールドツールなどを `@d-zero/` スコープで提供する(fixed バージョンモード)。 + +## プロジェクト構成 + +作業前に以下のファイルを確認し、プロジェクトの状態を把握すること: + +- `package.json` — scripts、devDependencies、Volta(Node 24 / Yarn 4) +- `lerna.json` — fixed バージョンモード、`packages/@d-zero/*` +- `README.md` — リポジトリ概要 +- `tsconfig.json` — TypeScript 設定 +- 各パッケージの構成は `packages/@d-zero/*/package.json` を参照 + +## コマンド + +- `yarn build` — `@d-zero/builder`、`@d-zero/check-frontend-env`、`@d-zero/custom-components` のみビルド(lerna run build --scope) +- `yarn dev` — `lerna run dev` +- `yarn test` — Vitest でテスト(test-timeout 60000) +- `yarn lint` — eslint / prettier / textlint / cspell を直列実行 +- `yarn storybook` — `@d-zero/custom-components` の Storybook を起動 +- `yarn release` / `yarn release:alpha` 等 — `lerna version`(push なし)。リリース手順は `/release` コマンド参照 + +### コマンド制約 + +- **yarn のみ使用**: npm / pnpm / bun / deno によるコマンド実行は禁止 +- **パッケージディレクトリに cd しない**: 常にリポジトリルートから実行 +- **ビルドは `yarn build` のみ**: `npx tsc`、`lerna run build --scope` の個別指定は禁止 +- **コマンドの連続実行禁止**: `&&`、`;`、改行によるコマンド連結をしない。1回の Bash 呼び出しで1コマンドのみ実行する。連結されたコマンドは settings.json の permissions allow/deny でパターンマッチできず、毎回ユーザーの手動承認が必要になり効率が大幅に低下する + +## セキュリティ + +### 機密情報の取り扱い + +- `.env`、`.env.*` 等の機密ファイルを読み取り・編集・コミットしない(機密ファイルの判断は `.gitignore` を参考にすること) +- コミット前に `git diff --staged` で機密情報(API キー、トークン、パスワード、企業名、顧客情報)が含まれていないか確認する +- 環境変数やシークレットをコード内にハードコードしない + +### サプライチェーン保護 + +- **yarn dlx は完全禁止**: ローカルパッケージを使わずリモートから直接実行するため、サプライチェーン攻撃に脆弱 +- **npx は原則使わない**: package.json の scripts で定義されたコマンドを `yarn