From f0faee1eacecf0e710b26e3223b6dd2247d76592 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:25:46 +0000 Subject: [PATCH 1/9] Initial plan From fe2cad442541cae199d6135f02e752e81920abd2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:28:52 +0000 Subject: [PATCH 2/9] =?UTF-8?q?feat:=20=E3=83=AA=E3=83=AA=E3=83=BC?= =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=82=B0=E6=88=A6=E7=95=A5=E3=81=AE=E8=A8=AD?= =?UTF-8?q?=E8=A8=88=E6=BA=96=E5=82=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 作業計画の共有と事前確認を行う 設計ドキュメントのみを対象とする Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com> --- package-lock.json | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 72e739fa7..20a169beb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,6 +95,7 @@ "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", @@ -755,6 +756,7 @@ "integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -1696,6 +1698,7 @@ "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-module-imports": "^7.28.6", @@ -2526,6 +2529,7 @@ "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -4224,6 +4228,7 @@ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -4441,6 +4446,7 @@ "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -4897,6 +4903,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5004,6 +5011,7 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6120,6 +6128,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -9362,6 +9371,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -12695,6 +12705,7 @@ "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "^27.5.1", "import-local": "^3.0.2", @@ -13942,6 +13953,7 @@ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -15993,6 +16005,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -18385,6 +18398,7 @@ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -19064,6 +19078,7 @@ "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -19669,6 +19684,7 @@ "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "*", "@types/node": "*", @@ -20290,7 +20306,6 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" } @@ -20321,6 +20336,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -21826,24 +21842,6 @@ } } }, - "node_modules/tailwindcss/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, "node_modules/tapable": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", @@ -22089,6 +22087,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -22297,6 +22296,7 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=10" }, @@ -22412,6 +22412,7 @@ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -22792,6 +22793,7 @@ "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -22865,6 +22867,7 @@ "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -23341,6 +23344,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -23409,6 +23413,7 @@ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, From 3c2654edd7c360e56654a78ecbf94388d6b69d65 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:29:18 +0000 Subject: [PATCH 3/9] =?UTF-8?q?fix:=20=E6=84=8F=E5=9B=B3=E3=81=97=E3=81=AA?= =?UTF-8?q?=E3=81=84=20lockfile=20=E5=A4=89=E6=9B=B4=E3=81=AE=E5=BE=A9?= =?UTF-8?q?=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npm install により更新された差分を取り消す 設計ドキュメント以外は変更しない Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com> --- package-lock.json | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20a169beb..72e739fa7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,7 +95,6 @@ "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", @@ -756,7 +755,6 @@ "integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -1698,7 +1696,6 @@ "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-module-imports": "^7.28.6", @@ -2529,7 +2526,6 @@ "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -4228,7 +4224,6 @@ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -4446,7 +4441,6 @@ "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -4903,7 +4897,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5011,7 +5004,6 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6128,7 +6120,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -9371,7 +9362,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -12705,7 +12695,6 @@ "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/core": "^27.5.1", "import-local": "^3.0.2", @@ -13953,7 +13942,6 @@ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -16005,7 +15993,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -18398,7 +18385,6 @@ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -19078,7 +19064,6 @@ "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -19684,7 +19669,6 @@ "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "*", "@types/node": "*", @@ -20306,6 +20290,7 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" } @@ -20336,7 +20321,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -21842,6 +21826,24 @@ } } }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/tapable": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", @@ -22087,7 +22089,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -22296,7 +22297,6 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "license": "(MIT OR CC0-1.0)", - "peer": true, "engines": { "node": ">=10" }, @@ -22412,7 +22412,6 @@ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -22793,7 +22792,6 @@ "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -22867,7 +22865,6 @@ "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -23344,7 +23341,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -23413,7 +23409,6 @@ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, From 83e337b0b87ebd0261696a6175f9a704c5d2254e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:31:09 +0000 Subject: [PATCH 4/9] =?UTF-8?q?feat:=20=E3=82=BF=E3=82=B0=E6=88=A6?= =?UTF-8?q?=E7=95=A5=E3=81=AE=E8=A8=AD=E8=A8=88=20plan=20=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit リリースタグ命名変更の設計内容を整理する 実装前の合意形成に使う Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com> --- .../plans/tag-strategy-implementation-plan.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 .github/copilot/plans/tag-strategy-implementation-plan.md diff --git a/.github/copilot/plans/tag-strategy-implementation-plan.md b/.github/copilot/plans/tag-strategy-implementation-plan.md new file mode 100644 index 000000000..39564c6bb --- /dev/null +++ b/.github/copilot/plans/tag-strategy-implementation-plan.md @@ -0,0 +1,99 @@ +# 1. 機能要件 / 非機能要件 +- 機能要件: + - 旧タグ運用の背景として、フォーク時は upstream の命名制約を避けるため `release_levelcaptech/vX.Y.Z` を採用していた点を明文化する。 + - フォーク解除により制約が解消されたため、タグ命名規則を `vMAJOR.MINOR.PATCH` に統一する。 + - 新タグ命名規則を SemVer 準拠(MAJOR.MINOR.PATCH)かつ `v` プレフィックス必須として正式定義する。 + - `npm version` 実行時に生成されるタグ(既定は `vX.Y.Z`)と矛盾しないリリース手順へ統一する。 + - CI と GitHub Releases におけるタグ参照を `vX.Y.Z` 前提に更新する方針を明記する。 + - 既存の `release_levelcaptech/vX.Y.Z` タグは削除せず、後方互換として保持する。 +- 非機能要件: + - 既存タグの削除や GitHub Release UI での再作業を行わない。 + - 新旧タグが混在しても誤作動しないよう、CI のタグトリガ条件を明確化する。 + - 互換性を壊さない方針を維持し、移行は段階的に周知する。 + +# 2. スコープと変更対象 +- 変更ファイル(新規/修正/削除): + - `.github/copilot/plans/tag-strategy-implementation-plan.md`(新規、設計のみ)。 +- 実装時に想定される変更対象(ドキュメント修正対象範囲): + - `.github/workflows/npm-publish.yml`(タグトリガ条件・バージョン検証の更新)。 + - `docs/npm-publish.md`(旧タグ運用の記述更新)。 + - リリース手順に言及する関連ドキュメント(README 等)があれば同様に更新。 +- 影響範囲・互換性リスク: + - リリースタグ命名規則と CI トリガ条件のみが影響対象。既存タグは残すため後方互換を維持する。 +- 外部依存・Secrets の扱い: + - 追加依存は不要。Secrets は既存運用のまま。 +- In Scope: + - タグ命名規則、リリースフロー定義、CI タグトリガ条件の確認、ドキュメント修正対象範囲の明確化。 +- Out of Scope: + - 実際のドキュメント修正、既存タグ削除、GitHub Releases UI 操作。 + +# 3. 設計方針 +- 責務分離 / データフロー: + - 命名規則の SSOT はリリース手順ドキュメントと CI ワークフローに置き、どちらも `vX.Y.Z` を前提に揃える。 +- 旧運用の背景: + - フォーク時は upstream 側のタグ命名と衝突を避けるため `release_levelcaptech/` プレフィックスを導入していた。 +- 新タグ命名規則の正式定義: + - 形式: `vMAJOR.MINOR.PATCH`(SemVer 準拠、`v` プレフィックス必須)。 + - 例: `v1.2.3`。 + - `release_levelcaptech/` プレフィックスは新規タグでは使用しない。 +- npm version との整合性: + - `npm version` は既定で `vX.Y.Z` タグを生成するため、新ルールと一致する。 + - 現行フローで `--no-git-tag-version` を使っている場合は、手動で `vX.Y.Z` タグを作成する運用に統一する。 + - 既定の `npm version` を使う場合は、重複タグ作成を避けるため手動 `git tag` の有無を運用で明確化する。 +- CI / GitHub Releases への影響: + - `npm-publish` ワークフローの tag トリガを `v*.*.*` に更新し、旧タグでは発火しないよう明記する。 + - GitHub Releases は新タグ `vX.Y.Z` を基準に作成する。旧タグは履歴として保持する。 +- 後方互換の扱い: + - 既存の `release_levelcaptech/vX.Y.Z` タグは削除せず残す。 + - 新しい運用では旧タグを使わないが、過去リリースの参照性は維持する。 +- 実装イメージ(旧運用): + ``` + npm version 1.2.3 + git push + git tag release_levelcaptech/v1.2.3 + git push origin release_levelcaptech/v1.2.3 + ``` +- 実装イメージ(新運用): + ``` + npm version 1.2.3 + git push + git tag v1.2.3 + git push origin v1.2.3 + ``` +- エッジケース / 例外系 / リトライ方針: + - `v` プレフィックス無しや SemVer 形式外のタグは CI で明示的に拒否する。 + - 旧タグが残っていても、新規ワークフローが誤発火しないことを確認する。 +- ログと観測性(漏洩防止を含む): + - タグ名と version の不一致のみを出力し、Secrets をログに含めない。 + +# 4. テスト戦略 +- テスト観点(正常 / 例外 / 境界 / 回帰): + - 正常系: `v1.2.3` タグ push で CI が発火する。 + - 例外系: `release_levelcaptech/v1.2.3` タグ push では新ワークフローが発火しない。 + - 境界系: `v1.2` や `1.2.3` などの不正形式タグは拒否される。 + - 回帰: `npm version` 実行後のタグ名が新ルールと一致する。 +- モック / フィクスチャ方針: + - CI トリガは GitHub Actions 実行で確認するためモックは不要。 +- テスト追加の実行コマンド(例: `python -m pytest`): + - 実装時は `npm test` を実行し、ワークフロー変更による既存影響がないことを確認する。 + +# 5. CI 品質ゲート +- 実行コマンド(format / lint / typecheck / test / security): + - `npm test`(unit + lint + build) +- 通過基準と失敗時の対応: + - 既存テストが成功すること。失敗時はタグ検証ロジックやドキュメント記述の差分を見直す。 + - CI の tag トリガ条件は `.github/workflows` 全体を確認し、想定外の発火がないことを点検する。 + +# 6. ロールアウト・運用 +- ロールバック方法: + - ワークフローとドキュメントを旧タグ仕様に戻すコミットを revert する。 +- 監視・運用上の注意: + - 新規リリースで `vX.Y.Z` タグが正しく push され、旧タグでは発火しないことを確認する。 + - 既存タグは削除しない方針を明示する。 + +# 7. オープンな課題 / ADR 要否 +- 未確定事項: + - 既存運用で `npm version` を `--no-git-tag-version` 付きで実行しているかを確認する。 + - `npm-publish` 以外に tag で発火する CI が存在するかを洗い出す。 +- ADR に残すべき判断: + - なし(運用方針の変更のみのため)。 From 47be86f46961bc47cdefba90fb79d1d79707b4ae Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:31:59 +0000 Subject: [PATCH 5/9] =?UTF-8?q?fix:=20=E3=82=BF=E3=82=B0=E9=81=8B=E7=94=A8?= =?UTF-8?q?=E3=81=AE=E4=B8=8D=E7=A2=BA=E5=AE=9A=E7=82=B9=E3=82=92=E6=98=8E?= =?UTF-8?q?=E7=A2=BA=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npm version のタグ生成有無を条件として整理する 実装イメージを補足して誤解を防ぐ Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com> --- .github/copilot/plans/tag-strategy-implementation-plan.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/copilot/plans/tag-strategy-implementation-plan.md b/.github/copilot/plans/tag-strategy-implementation-plan.md index 39564c6bb..da1113675 100644 --- a/.github/copilot/plans/tag-strategy-implementation-plan.md +++ b/.github/copilot/plans/tag-strategy-implementation-plan.md @@ -38,8 +38,8 @@ - `release_levelcaptech/` プレフィックスは新規タグでは使用しない。 - npm version との整合性: - `npm version` は既定で `vX.Y.Z` タグを生成するため、新ルールと一致する。 - - 現行フローで `--no-git-tag-version` を使っている場合は、手動で `vX.Y.Z` タグを作成する運用に統一する。 - - 既定の `npm version` を使う場合は、重複タグ作成を避けるため手動 `git tag` の有無を運用で明確化する。 + - 現行フローで `--no-git-tag-version` を使っているかを確認し、手動 `git tag` が必要かどうかを確定したうえで運用手順を統一する。 + - 既定の `npm version` を使う場合は重複タグ作成を避けるため、`git tag` 実行の要否を明確化する。 - CI / GitHub Releases への影響: - `npm-publish` ワークフローの tag トリガを `v*.*.*` に更新し、旧タグでは発火しないよう明記する。 - GitHub Releases は新タグ `vX.Y.Z` を基準に作成する。旧タグは履歴として保持する。 @@ -47,6 +47,7 @@ - 既存の `release_levelcaptech/vX.Y.Z` タグは削除せず残す。 - 新しい運用では旧タグを使わないが、過去リリースの参照性は維持する。 - 実装イメージ(旧運用): + - 実運用で `npm version` のタグ生成有無に応じて `git tag` の要否を調整する前提のイメージ。 ``` npm version 1.2.3 git push @@ -54,6 +55,7 @@ git push origin release_levelcaptech/v1.2.3 ``` - 実装イメージ(新運用): + - 実運用で `npm version` のタグ生成有無に応じて `git tag` の要否を調整する前提のイメージ。 ``` npm version 1.2.3 git push From c3d9347880c9c182a270f877e9822829fa506814 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:32:39 +0000 Subject: [PATCH 6/9] =?UTF-8?q?fix:=20=E3=82=BF=E3=82=B0=E6=89=8B=E9=A0=86?= =?UTF-8?q?=E4=BE=8B=E3=81=AE=E6=B3=A8=E8=A8=98=E3=82=92=E8=A3=9C=E5=BC=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npm version のタグ生成有無による差異を明示する 実装イメージの誤解を防ぐ Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com> --- .github/copilot/plans/tag-strategy-implementation-plan.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/copilot/plans/tag-strategy-implementation-plan.md b/.github/copilot/plans/tag-strategy-implementation-plan.md index da1113675..b45a4be4a 100644 --- a/.github/copilot/plans/tag-strategy-implementation-plan.md +++ b/.github/copilot/plans/tag-strategy-implementation-plan.md @@ -47,7 +47,7 @@ - 既存の `release_levelcaptech/vX.Y.Z` タグは削除せず残す。 - 新しい運用では旧タグを使わないが、過去リリースの参照性は維持する。 - 実装イメージ(旧運用): - - 実運用で `npm version` のタグ生成有無に応じて `git tag` の要否を調整する前提のイメージ。 + - Issue 記載の手順を転記した例。手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う想定とし、既定の `npm version` を使う運用では `git tag` 行を省略する。 ``` npm version 1.2.3 git push @@ -55,7 +55,7 @@ git push origin release_levelcaptech/v1.2.3 ``` - 実装イメージ(新運用): - - 実運用で `npm version` のタグ生成有無に応じて `git tag` の要否を調整する前提のイメージ。 + - Issue 記載の手順を転記した例。手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う想定とし、既定の `npm version` を使う運用では `git tag` 行を省略する。 ``` npm version 1.2.3 git push From 136b99588afd82f6f533c06ab72f72a87566d70f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:33:24 +0000 Subject: [PATCH 7/9] =?UTF-8?q?fix:=20npm=20version=20=E3=81=AE=E5=89=8D?= =?UTF-8?q?=E6=8F=90=E3=82=92=E6=98=8E=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit タグ生成と引数表記の前提を実装例に追記する 重複タグの誤解を防ぐ Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com> --- .github/copilot/plans/tag-strategy-implementation-plan.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/copilot/plans/tag-strategy-implementation-plan.md b/.github/copilot/plans/tag-strategy-implementation-plan.md index b45a4be4a..8619c25e4 100644 --- a/.github/copilot/plans/tag-strategy-implementation-plan.md +++ b/.github/copilot/plans/tag-strategy-implementation-plan.md @@ -47,7 +47,7 @@ - 既存の `release_levelcaptech/vX.Y.Z` タグは削除せず残す。 - 新しい運用では旧タグを使わないが、過去リリースの参照性は維持する。 - 実装イメージ(旧運用): - - Issue 記載の手順を転記した例。手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う想定とし、既定の `npm version` を使う運用では `git tag` 行を省略する。 + - Issue 記載の手順を転記した例。`npm version` の引数は `1.2.3` のように `v` なしで指定し、手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う前提で読み替える(既定の `npm version` を使う運用では `git tag` 行を省略する)。 ``` npm version 1.2.3 git push @@ -55,7 +55,7 @@ git push origin release_levelcaptech/v1.2.3 ``` - 実装イメージ(新運用): - - Issue 記載の手順を転記した例。手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う想定とし、既定の `npm version` を使う運用では `git tag` 行を省略する。 + - Issue 記載の手順を転記した例。`npm version` の引数は `1.2.3` のように `v` なしで指定し、手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う前提で読み替える(既定の `npm version` を使う運用では `git tag` 行を省略する)。 ``` npm version 1.2.3 git push From 736e467b385d35935fbc408f70d79eaf6a917895 Mon Sep 17 00:00:00 2001 From: Yoshio Nishiyama <99854263+LevelCapTech@users.noreply.github.com> Date: Fri, 20 Feb 2026 12:50:36 +0900 Subject: [PATCH 8/9] Update .github/copilot/plans/tag-strategy-implementation-plan.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/copilot/plans/tag-strategy-implementation-plan.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/copilot/plans/tag-strategy-implementation-plan.md b/.github/copilot/plans/tag-strategy-implementation-plan.md index 8619c25e4..8897517ea 100644 --- a/.github/copilot/plans/tag-strategy-implementation-plan.md +++ b/.github/copilot/plans/tag-strategy-implementation-plan.md @@ -42,6 +42,8 @@ - 既定の `npm version` を使う場合は重複タグ作成を避けるため、`git tag` 実行の要否を明確化する。 - CI / GitHub Releases への影響: - `npm-publish` ワークフローの tag トリガを `v*.*.*` に更新し、旧タグでは発火しないよう明記する。 + - `.github/workflows/npm-publish.yml` 内のタグ検証ロジック(例: `EXPECTED_VERSION="${GITHUB_REF#refs/tags/release_levelcaptech/v}"` によるタグ文字列の切り出しや、"Expected release_levelcaptech/vX.Y.Z" といったエラーメッセージ)は、新しいタグ命名規則に合わせて `refs/tags/vX.Y.Z`・"Expected vX.Y.Z" 前提の実装へ更新する。 + - 上記のトリガ条件・タグ検証ロジック・エラーメッセージの変更内容を `docs/npm-publish.md` のリリース手順に反映し、運用手順と CI 実装に差分が出ないようにする。 - GitHub Releases は新タグ `vX.Y.Z` を基準に作成する。旧タグは履歴として保持する。 - 後方互換の扱い: - 既存の `release_levelcaptech/vX.Y.Z` タグは削除せず残す。 From 45f5bda58fef953f0b5a63f3825b39e04486c90e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:53:46 +0000 Subject: [PATCH 9/9] =?UTF-8?q?fix:=20=E5=AE=9F=E8=A3=85=E3=82=A4=E3=83=A1?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E8=AA=AC=E6=98=8E=E3=81=AE=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue手順の転記に合わせて前提整理を明記する 成果物名の不一致をオープン課題に追加する Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com> --- .github/copilot/plans/tag-strategy-implementation-plan.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/copilot/plans/tag-strategy-implementation-plan.md b/.github/copilot/plans/tag-strategy-implementation-plan.md index 8897517ea..9f464df8b 100644 --- a/.github/copilot/plans/tag-strategy-implementation-plan.md +++ b/.github/copilot/plans/tag-strategy-implementation-plan.md @@ -49,7 +49,7 @@ - 既存の `release_levelcaptech/vX.Y.Z` タグは削除せず残す。 - 新しい運用では旧タグを使わないが、過去リリースの参照性は維持する。 - 実装イメージ(旧運用): - - Issue 記載の手順を転記した例。`npm version` の引数は `1.2.3` のように `v` なしで指定し、手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う前提で読み替える(既定の `npm version` を使う運用では `git tag` 行を省略する)。 + - Issue 記載の手順を転記した例(運用の前提は「7. オープンな課題」で確認する)。 ``` npm version 1.2.3 git push @@ -57,7 +57,7 @@ git push origin release_levelcaptech/v1.2.3 ``` - 実装イメージ(新運用): - - Issue 記載の手順を転記した例。`npm version` の引数は `1.2.3` のように `v` なしで指定し、手動 `git tag` を行う場合は `npm version --no-git-tag-version` を使う前提で読み替える(既定の `npm version` を使う運用では `git tag` 行を省略する)。 + - Issue 記載の手順を転記した例(運用の前提は「7. オープンな課題」で確認する)。 ``` npm version 1.2.3 git push @@ -97,7 +97,8 @@ # 7. オープンな課題 / ADR 要否 - 未確定事項: - - 既存運用で `npm version` を `--no-git-tag-version` 付きで実行しているかを確認する。 + - 既存運用で `npm version` を `--no-git-tag-version` 付きで実行しているかを確認する(Issue の手順が手動 `git tag` 併用を前提としているため)。 + - Issue に `121-semver-tagging-implementation-plan.md` の記載があるため、成果物ファイル名の最終確認が必要。 - `npm-publish` 以外に tag で発火する CI が存在するかを洗い出す。 - ADR に残すべき判断: - なし(運用方針の変更のみのため)。