From 7bf6a92d3ca7af5d8115a28f13212e5ca0c45b9c Mon Sep 17 00:00:00 2001 From: Yeliena Date: Mon, 18 May 2026 15:18:46 +0200 Subject: [PATCH 1/4] feat(rules): add bug report template --- rules/claude/bug-report-template.md | 15 +++++++++++++++ rules/cursor/bug-report-template.md | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 rules/claude/bug-report-template.md create mode 100644 rules/cursor/bug-report-template.md diff --git a/rules/claude/bug-report-template.md b/rules/claude/bug-report-template.md new file mode 100644 index 0000000..fc5e6d5 --- /dev/null +++ b/rules/claude/bug-report-template.md @@ -0,0 +1,15 @@ +### BUG-XX -- What + Where + When +**Severity:** Critical / Major / Minor / Low +**Related TC:** TC-XX +**Environment:** +**User role:** + +**Steps to reproduce:** +1. ... + +**Expected:** ... +**Actual:** ... + +**Console errors:** `...` +**Root cause (optional):** file:line references + explanation +**Screenshot (optional):** `screenshots/.png` \ No newline at end of file diff --git a/rules/cursor/bug-report-template.md b/rules/cursor/bug-report-template.md new file mode 100644 index 0000000..9aaec6f --- /dev/null +++ b/rules/cursor/bug-report-template.md @@ -0,0 +1,16 @@ +### BUG-XX -- What + Where + When +**Severity:** Critical / Major / Minor / Low +**Related TC:** TC-XX +**Environment:** +**User role:** + +**Steps to reproduce:** +1. ... + +**Expected:** ... +**Actual:** ... + +**Console errors:** `...` +**Root cause (optional):** file:line references + explanation +**Screenshot (optional):** `screenshots/.png` + From 10477d8015a99445121027fcc942319d3ed705c2 Mon Sep 17 00:00:00 2001 From: Yeliena Date: Mon, 18 May 2026 15:43:26 +0200 Subject: [PATCH 2/4] feat(rules): add optional preconditions to bug report template --- rules/claude/bug-report-template.md | 2 ++ rules/cursor/bug-report-template.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/rules/claude/bug-report-template.md b/rules/claude/bug-report-template.md index fc5e6d5..b92be8f 100644 --- a/rules/claude/bug-report-template.md +++ b/rules/claude/bug-report-template.md @@ -4,6 +4,8 @@ **Environment:** **User role:** +**Preconditions (optional):** ... + **Steps to reproduce:** 1. ... diff --git a/rules/cursor/bug-report-template.md b/rules/cursor/bug-report-template.md index 9aaec6f..4ec7dde 100644 --- a/rules/cursor/bug-report-template.md +++ b/rules/cursor/bug-report-template.md @@ -4,6 +4,8 @@ **Environment:** **User role:** +**Preconditions (optional):** ... + **Steps to reproduce:** 1. ... From a657e2167c2ff9d7429b01b9c27078471ec20070 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 22 May 2026 05:28:07 +0000 Subject: [PATCH 3/4] chore(release): 1.1.0-beta.1 [skip ci] # [1.1.0-beta.1](https://github.com/mi-examples/qa-ai-rules/compare/v1.0.1...v1.1.0-beta.1) (2026-05-22) ### Features * **rules:** add bug report template ([7bf6a92](https://github.com/mi-examples/qa-ai-rules/commit/7bf6a92d3ca7af5d8115a28f13212e5ca0c45b9c)) * **rules:** add optional preconditions to bug report template ([10477d8](https://github.com/mi-examples/qa-ai-rules/commit/10477d8015a99445121027fcc942319d3ed705c2)) --- CHANGELOG.md | 8 ++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c342ab1..faab9c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# [1.1.0-beta.1](https://github.com/mi-examples/qa-ai-rules/compare/v1.0.1...v1.1.0-beta.1) (2026-05-22) + + +### Features + +* **rules:** add bug report template ([7bf6a92](https://github.com/mi-examples/qa-ai-rules/commit/7bf6a92d3ca7af5d8115a28f13212e5ca0c45b9c)) +* **rules:** add optional preconditions to bug report template ([10477d8](https://github.com/mi-examples/qa-ai-rules/commit/10477d8015a99445121027fcc942319d3ed705c2)) + # 1.0.0-beta.1 (2026-04-08) diff --git a/package-lock.json b/package-lock.json index 4e4a92e..234caa6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@metricinsights/qa-ai-rules", - "version": "1.0.0-beta.1", + "version": "1.1.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@metricinsights/qa-ai-rules", - "version": "1.0.0-beta.1", + "version": "1.1.0-beta.1", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 2971fa9..70db383 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@metricinsights/qa-ai-rules", - "version": "1.0.0-beta.1", + "version": "1.1.0-beta.1", "description": "Shared QA rules for AI coding tools (Cursor, Claude Code) across MI repositories", "license": "MIT", "keywords": [ From 684662c7c5713599c3a24f5a48cf7721db6ec075 Mon Sep 17 00:00:00 2001 From: Serhii Shpak Date: Fri, 22 May 2026 09:34:20 +0300 Subject: [PATCH 4/4] ci(release): publish to npm via Trusted Publisher (OIDC) Replace NPM_TOKEN with OIDC in the release workflow and document one-time npmjs.com setup in README and CLAUDE.md. --- .github/workflows/release.yml | 8 +++++--- CLAUDE.md | 18 +++++++++++++++++- README.md | 16 ++++++++++++++++ 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7feb656..b9d558f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,6 +7,7 @@ on: permissions: contents: write + id-token: write # Required for npm Trusted Publisher (OIDC) jobs: release: @@ -50,9 +51,10 @@ jobs: run: npm version ${{ steps.version.outputs.version }} --no-git-tag-version - name: Publish to npm - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - run: npm publish --access public + # setup-node may set NODE_AUTH_TOKEN; unset so OIDC trusted publishing is used + run: | + unset NODE_AUTH_TOKEN + npm publish --access public - name: Create GitHub Release uses: softprops/action-gh-release@v1 diff --git a/CLAUDE.md b/CLAUDE.md index d2a6e5e..31ad5bd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,7 @@ # @metricinsights/qa-ai-rules Shared QA rules package for AI coding tools across all MI repositories. -Published to GitHub Packages (`https://npm.pkg.github.com`). +Published to the public npm registry (`https://registry.npmjs.org/`). ## Purpose @@ -120,6 +120,22 @@ Consuming repos should use Dependabot to auto-update minor/patch bumps. ## Publishing +Stable releases are published to [registry.npmjs.org](https://registry.npmjs.org/) by the +`.github/workflows/release.yml` workflow on `v*` tags, using **npm Trusted Publisher** (OIDC). +No `NPM_TOKEN` secret is required. + +### One-time npm setup (package settings on npmjs.com) + +1. Open **@metricinsights/qa-ai-rules** → **Settings** → **Trusted publishing** +2. Select **GitHub Actions** and configure: + - **Organization / user:** `mi-examples` + - **Repository:** `qa-ai-rules` + - **Workflow filename:** `release.yml` (exact match, including `.yml`) +3. After a successful OIDC publish, optionally restrict token-based publishing under + **Publishing access** → *Require two-factor authentication and disallow tokens* + +### Manual publish (local) + ```bash npm version minor npm publish diff --git a/README.md b/README.md index cd846d3..76b095a 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,22 @@ npm update @metricinsights/qa-ai-rules Use Dependabot to auto-update minor and patch bumps. +## Publishing + +Stable releases go to [registry.npmjs.org](https://www.npmjs.com/package/@metricinsights/qa-ai-rules) when a `v*` tag is pushed. The [Production Release](.github/workflows/release.yml) workflow publishes via **npm Trusted Publisher** (OIDC) — no `NPM_TOKEN` secret. + +**One-time setup on npmjs.com** (package **Settings** → **Trusted publishing** → GitHub Actions): + +| Field | Value | +| ----- | ----- | +| Organization / user | `mi-examples` | +| Repository | `qa-ai-rules` | +| Workflow filename | `release.yml` | + +After the first successful OIDC publish, you can disable token-based publishing under **Publishing access** and remove the `NPM_TOKEN` repository secret. + +Beta pre-releases are created from `develop` via [release-beta.yml](.github/workflows/release-beta.yml) (GitHub pre-release only, not published to npm). + ## License MIT