Skip to content

fix: reuse authoritative verification profiles - #1411

Merged
kang-heewon merged 6 commits into
trunkfrom
ci/1333-verification-profiles
Jul 21, 2026
Merged

fix: reuse authoritative verification profiles#1411
kang-heewon merged 6 commits into
trunkfrom
ci/1333-verification-profiles

Conversation

@kang-heewon

@kang-heewon kang-heewon commented Jul 15, 2026

Copy link
Copy Markdown
Member

Outcome

Repository, spine, and publish verification now share one typed command manifest with stable command IDs. CI selects exactly one path-aware profile, while Release reruns the complete publish profile as defense in depth; credentials, advisories, summaries, uploads, provenance authority, and Changesets publishing remain Actions-owned.

The architecture-policy runtime prerequisite is explicit in the manifest: a cold clone builds @croco/problems-core before running the architecture policy. Mutation-prone commands are guarded at their authoritative definitions, compatibility aliases resolve through shared command IDs, and workflow contracts reject direct, aliased, conditional, or Release-only verification drift.

Verification

  • Focused manifest, classifier, dispatcher, runner, workflow, and policy suites (132/132)
  • Cold-clone prerequisite proof: problems-core build followed by architecture policy over 4,559 imports and 113 packages
  • pnpm test (226/226 tasks)
  • pnpm typecheck (225/225 tasks)
  • Formatting and oxlint (0 warnings/errors)
  • Problem registry (438 codes / 438 discoveries)
  • Independent review: APPROVE; architecture: CLEAR; adversarial QA: PASS

Review notes

  • Profile algebra is repo ⊂ spine ⊂ publish; Release invokes publish rather than duplicating manifest members.
  • Documentation-only changes remain repo-scoped, source changes select spine, and verification/release maintenance selects publish.
  • Missing revision context fails safe by applying contextual publish gates; pending changesets are tolerated only in PR CI, while Release remains strict.
  • No publishable package behavior changed, so no changeset is required.

Fixes #1333

Summary by CodeRabbit

  • 개선 사항
    • CI/릴리스에서 변경 범위에 맞는 검증 프로필을 자동 선택해 실행하고, spine 증거 생성·요약·업로드를 프로필 기반으로 통합했습니다.
    • 워크플로우 및 검증 명령 구성을 계약(allowlist) 기준으로 점검해 허용되지 않은 실행을 탐지하도록 했습니다.
    • npm provenance 설정 및 핵심 커버리지 필터 검증을 강화했습니다.
  • 버그 수정
    • 적용되지 않는 검증은 실패로 처리되지 않게 표시하고, 검증 오류 메시지를 일관된 형식으로 제공합니다.
  • 테스트
    • 검증 프로필 분기, 명령 디스패치, 매니페스트/정책 계약, provenance 및 커버리지 관련 테스트를 보강했습니다.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2975fa32-c992-4410-bd49-c0995aef513c

📥 Commits

Reviewing files that changed from the base of the PR and between 6307732 and e14c5ba.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (29)
  • .changeset/b1b02411.md
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • docs/release/croco-1.0-spine.md
  • package.json
  • packages/diagnostics-core/package.json
  • packages/telemetry-sdk-node/src/tests/PublishedTypes.spec.ts
  • packages/telemetry-sdk-node/src/tests/TelemetryRuntime.spec.ts
  • scripts/core-coverage-warning-check.mts
  • scripts/first-success-verify.mts
  • scripts/provenance-config-check.mts
  • scripts/release-spine-evidence.mts
  • scripts/tests/ci-workflow.spec.ts
  • scripts/tests/core-coverage-warning-check.spec.ts
  • scripts/tests/first-success-verify.spec.ts
  • scripts/tests/provenance-config-check.spec.ts
  • scripts/tests/release-spine-evidence.spec.ts
  • scripts/tests/release-workflow.spec.ts
  • scripts/tests/verification-change-classifier.spec.ts
  • scripts/tests/verification-command.spec.ts
  • scripts/tests/verification-manifest.spec.ts
  • scripts/tests/verification-policy.spec.ts
  • scripts/verification-change-classifier.mts
  • scripts/verification-command.mts
  • scripts/verification-dispatcher.mts
  • scripts/verification-manifest.mts
  • scripts/verification-policy.mts
  • scripts/verification-problem.mts
  • scripts/workflow-verification-contract.mts

📝 Walkthrough

Walkthrough

CI와 Release의 검증을 repo, spine, publish 프로필 기반 공유 매니페스트로 통합했다. 변경 분류기, 공통 디스패처, 증거 리포트, 워크플로우 계약 검증 및 provenance 검증을 추가·갱신했다.

Changes

검증 프로필 통합

Layer / File(s) Summary
검증 매니페스트와 공통 실행 계약
package.json, scripts/verification-manifest.mts, scripts/verification-command.mts, scripts/verification-policy.mts, scripts/verification-problem.mts, scripts/tests/verification-*
프로필별 명령 정의, --id 디스패처, 오류 형식, 중복 ID·composite alias·정책 검증을 추가했다.
변경 분류와 워크플로우 계약
scripts/verification-change-classifier.mts, scripts/workflow-verification-contract.mts, scripts/tests/{ci-workflow,release-workflow,verification-change-classifier}.spec.ts
이벤트와 변경 경로를 프로필 및 실행 플래그로 분류하고, 워크플로우의 명령·alias·셸 변형을 검사한다.
프로필 기반 증거 실행
scripts/release-spine-evidence.mts, scripts/tests/release-spine-evidence.spec.ts
프로필과 base/head로 매니페스트를 생성하고, not_applicable 상태·프로필·요약·환경·아티팩트를 기록한다.
보조 검증기와 smoke 계약
scripts/core-coverage-warning-check.mts, scripts/first-success-verify.mts, scripts/provenance-config-check.mts, 관련 테스트
core coverage 필터, quick-start smoke, npm provenance 검증을 공통 검증 경로와 연결했다.
CI와 Release 워크플로우 연결
.github/workflows/ci.yml, .github/workflows/release.yml, scripts/tests/verification-policy.spec.ts
공유 분류 결과에 따라 검증·Changesets·증거 업로드·publish 단계를 선택하도록 변경했다.
패키지와 지원 테스트 갱신
packages/diagnostics-core/package.json, packages/telemetry-sdk-node/src/tests/*, .changeset/*, docs/release/*
패키지 exports, 조건부 빌드 판정, 모킹 객체, Changeset 및 bundle-size advisory 문서를 갱신했다.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Workflow as CI 또는 Release workflow
  participant Classifier as verification-change-classifier.mts
  participant Evidence as release-spine-evidence.mts
  participant Manifest as verification-manifest.mts
  Workflow->>Classifier: 이벤트와 변경 경로 전달
  Classifier-->>Workflow: profile 및 실행 플래그 반환
  Workflow->>Evidence: profile, base, head 전달
  Evidence->>Manifest: createVerificationManifest(profile, context)
  Manifest-->>Evidence: EvidenceCommand 목록 반환
  Evidence-->>Workflow: 검증 요약과 아티팩트 게시
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목이 권위 있는 verification profiles 재사용이라는 핵심 변경을 정확히 요약합니다.
Linked Issues check ✅ Passed 공유 verification manifest, profile 선택, release 재실행, workflow contract 테스트가 #1333의 요구와 일치합니다.
Out of Scope Changes check ✅ Passed 변경은 verification manifest, workflows, dispatcher, contract tests와 관련 보조 스크립트에 한정됩니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/1333-verification-profiles

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown

📊 Benchmark Results

✅ All benchmarks passed

Benchmark p75 Threshold Baseline vs Baseline Status Notes
CrocoApp constructor 9.4μs 30.0ms 8.2μs +15.4% -
CrocoApp lambdaHandler (10 controllers) 264.3μs 50.0ms 258.4μs +2.3% -
Lambda cold-start simulation 441.8μs 80.0ms 418.1μs +5.7% -
Lambda cold-start with headers 376.4μs 80.0ms 369.7μs +1.8% -
Lambda cold-start with binary body 353.2μs 80.0ms 339.1μs +4.1% -
Lambda cold-start with query params 296.8μs 80.0ms 301.3μs -1.5% -
Lambda cold-start with authorizer context 293.7μs 80.0ms 299.8μs -2.1% -
Lambda cold-start realistic scenario 293.0μs 80.0ms 299.2μs -2.1% -
EventBusConfig.start (10 handlers) 1.7μs 10.0ms 1.4μs +21.6% -
EventPublisher.publishNow single event 2.0μs 2.0ms 1.7μs +16.0% -
DefaultHandlerResolver.resolve × 10 0.1μs 5.0ms 0.1μs +0.0% -
Container.get singleton (cold) 60.3μs 5.0ms 70.3μs -14.1% -
Container.register × 50 components 3.2ms 10.0ms 3.2ms -0.6% -
Container.validate (50 components) 3.7ms 20.0ms 3.4ms +10.1% -
Container.get singleton (warm) 1.6μs 500.0μs 1.6μs -3.1% -
TelemetryRuntime.init (lambda preset) 2.4μs 200.0ms 1.1ms -99.8% -
lambdaPreset config creation 1.4μs 2.0ms 1.4μs -2.8% -

Updated: 2026-07-21T13:09:32.777Z · Commit: b482c82

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 14

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Line 25: Pin the GitHub Actions references to verified full immutable commit
SHAs: update actions/checkout in .github/workflows/ci.yml (25-25),
actions/upload-artifact in .github/workflows/ci.yml (191-191), pnpm/action-setup
in .github/workflows/release.yml (47-47), and actions/setup-node in
.github/workflows/release.yml (51-51), preserving their current major-version
behavior.
- Around line 29-43: Update the Select verification profile step so the
classifier receives the actual GitHub event instead of always using the
pull_request event. Replace the fixed event argument in the invocation of
verification-change-classifier.mts with the existing github.event_name value,
while preserving the current base and head arguments.

In @.github/workflows/release.yml:
- Around line 38-43: Release publish 프로필에서 계산한 base revision을 다음 단계가 사용할 수 있도록
step output으로 내보내세요. 해당 base 값을 GitHub Actions output에 설정한 뒤 verify:publish 단계의
revision 인자에 base와 head(HEAD)를 함께 전달하도록, verification-change-classifier 호출과 관련
step 설정을 업데이트하세요.

In `@package.json`:
- Line 47: production-ready:check 별칭이 production-ready의 공유 디스패처를 사용하도록 변경하세요.
scripts/production-ready-check.mts를 직접 실행하는 경로를 제거하고, 기존 production-ready 정의에
포함된 tracked-file mutation guard와 동일한 디스패처를 재사용하세요.

In `@scripts/release-spine-evidence.mts`:
- Around line 1016-1040: Update the argument-validation branches in the CLI
parser around --profile, --base/--head, and unknown options to throw an existing
argument-validation Problem subtype or a dedicated Problem subtype instead of
generic Error instances. Preserve the current validation conditions and messages
while ensuring every failure follows the RFC 7807 code/category contract.
- Around line 9-14: Update the imports in release-spine-evidence to move
VerificationProfile into its own import type declaration, while keeping
createVerificationManifest in the existing value import.

In `@scripts/tests/ci-workflow.spec.ts`:
- Around line 7-9: Rename the module-level constants rootDir, workflow, and
validateJob to SCREAMING_SNAKE_CASE names, updating all references while
preserving their existing values and behavior.

In `@scripts/tests/verification-change-classifier.spec.ts`:
- Line 1: Move scripts/tests/verification-change-classifier.spec.ts to
src/tests/VerificationChangeClassifier.spec.ts and update its relative imports;
move scripts/tests/ci-workflow.spec.ts to src/tests/CiWorkflow.spec.ts and
update its path calculation; move scripts/tests/provenance-config-check.spec.ts
to src/tests/ProvenanceConfigCheck.spec.ts and update its relative imports.
Ensure all three tests follow the required src/tests/[ClassName].spec.ts layout.

In `@scripts/verification-change-classifier.mts`:
- Line 97: Replace the generic Error throws with dedicated RFC 7807 Problem
subtypes that provide both code and category. Update the unclassified-path
handling at scripts/verification-change-classifier.mts lines 97-97, the CLI
option validation at scripts/verification-change-classifier.mts lines 177-177,
and the provenance configuration validation at
scripts/provenance-config-check.mts lines 15-20; preserve each existing error
condition and message context.
- Around line 7-10: Separate the VerificationProfile type import from the
runtime import in the module’s import section. Keep
verificationImplementationPaths in the existing value import and add a distinct
import type declaration for VerificationProfile, following the project’s
separate type-import grouping convention.
- Around line 24-25: Rename the module-level constants profileStrength and
manifestImplementationPaths to SCREAMING_SNAKE_CASE names, and update every
reference to them in scripts/verification-change-classifier.mts while preserving
their existing values and behavior.
- Around line 39-43: Update the repository-document classification regex used by
the verification change classifier so only exact README.md, RELEASING.md,
CONTRIBUTING.md, AGENTS.md, LICENSE, docs/ paths, and package-level README.md
paths match; require the relevant path boundaries or end-of-string so suffixes
such as README.md.ts and README.md.backup remain classified as spine.

In `@scripts/verification-manifest.mts`:
- Line 552: Replace each generic Error construction in
scripts/verification-manifest.mts lines 552-552, 558-558, and 587-587, and
scripts/verification-command.mts lines 31-31 and 42-42 with the appropriate
existing Problem subclass or RFC 7807-compatible custom error, preserving each
message and validation behavior.
- Line 540: Rename the module-level constants to SCREAMING_SNAKE_CASE: in
scripts/verification-manifest.mts:230-230 rename spineOnly to SPINE_ONLY,
516-516 rename publishOnly to PUBLISH_ONLY, and 540-540 rename
prohibitedRootAliases to PROHIBITED_ROOT_ALIASES, updating all references. In
scripts/workflow-verification-contract.mts:14-14 rename
actionsOnlyWorkflowCommandAllowlist to ACTIONS_ONLY_WORKFLOW_COMMAND_ALLOWLIST
and update its default-parameter reference at line 129.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: aa8c7736-dac6-4d58-8575-567a1ffb6b59

📥 Commits

Reviewing files that changed from the base of the PR and between 63af081 and 95d1c43.

📒 Files selected for processing (18)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • package.json
  • scripts/provenance-config-check.mts
  • scripts/release-spine-evidence.mts
  • scripts/tests/ci-workflow.spec.ts
  • scripts/tests/provenance-config-check.spec.ts
  • scripts/tests/release-spine-evidence.spec.ts
  • scripts/tests/release-workflow.spec.ts
  • scripts/tests/verification-change-classifier.spec.ts
  • scripts/tests/verification-command.spec.ts
  • scripts/tests/verification-manifest.spec.ts
  • scripts/tests/verification-policy.spec.ts
  • scripts/verification-change-classifier.mts
  • scripts/verification-command.mts
  • scripts/verification-manifest.mts
  • scripts/verification-policy.mts
  • scripts/workflow-verification-contract.mts

Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/release.yml Outdated
Comment thread package.json Outdated
Comment thread scripts/release-spine-evidence.mts Outdated
Comment thread scripts/verification-change-classifier.mts Outdated
Comment thread scripts/verification-change-classifier.mts Outdated
Comment thread scripts/verification-change-classifier.mts Outdated
Comment thread scripts/verification-manifest.mts Outdated
Comment thread scripts/verification-manifest.mts Outdated
@kang-heewon
kang-heewon force-pushed the ci/1333-verification-profiles branch from 95d1c43 to bc1d7a0 Compare July 15, 2026 14:37
@kang-heewon

Copy link
Copy Markdown
Member Author

@coderabbitai resolve

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
✅ Action performed

Comments resolved and changes approved.

@kang-heewon
kang-heewon force-pushed the ci/1333-verification-profiles branch 4 times, most recently from 7e84d06 to 6307732 Compare July 21, 2026 10:17

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
.github/workflows/ci.yml (1)

1-1: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

두 워크플로우 모두 GitHub 컨텍스트 표현식을 셸에 직접 보간합니다 (template-injection). ${{ github.event_name }}, ${{ github.base_ref }}, ${{ github.event.before }}run: 스크립트에 직접 삽입하는 동일한 패턴이 반복됩니다. zizmor의 표준 권장 완화책은 값을 env:로 전달한 뒤 셸 변수로 참조하는 것입니다.

  • .github/workflows/ci.yml#L29-44: env:EVENT_NAME: ${{ github.event_name }}, BASE_REF: ${{ github.base_ref }}, EVENT_BEFORE: ${{ github.event.before }}를 선언하고 스크립트 내부는 "$EVENT_NAME", "$BASE_REF", "$EVENT_BEFORE"로 참조하도록 변경하세요.
  • .github/workflows/release.yml#L33-47: 동일하게 EVENT_BEFORE: ${{ github.event.before }}env:로 선언하고 base="${{ github.event.before }}"base="$EVENT_BEFORE"로 변경하세요.
🔒 제안 수정 (ci.yml)
       - name: Select verification profile
         id: verification
         shell: bash
+        env:
+          EVENT_NAME: ${{ github.event_name }}
+          BASE_REF: ${{ github.base_ref }}
+          EVENT_BEFORE: ${{ github.event.before }}
         run: |
-          if [ "${{ github.event_name }}" = "pull_request" ]; then
-            base="origin/${{ github.base_ref }}"
+          if [ "$EVENT_NAME" = "pull_request" ]; then
+            base="origin/$BASE_REF"
           else
-            base="${{ github.event.before }}"
+            base="$EVENT_BEFORE"
             if [ -z "$base" ] || ! git cat-file -e "$base^{commit}" 2>/dev/null; then
               base="HEAD^"
             fi
           fi
           node --experimental-strip-types scripts/verification-change-classifier.mts \
             --event "$GITHUB_EVENT_NAME" --workflow ci --base "$base" --head HEAD --github-output "$GITHUB_OUTPUT"
           echo "base=$base" >> "$GITHUB_OUTPUT"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml at line 1, Update the workflow steps containing the
run scripts to pass github.event_name, github.base_ref, and github.event.before
through step-level env variables named EVENT_NAME, BASE_REF, and EVENT_BEFORE,
then reference those quoted shell variables instead of interpolating GitHub
expressions directly. Apply the same EVENT_BEFORE env-and-shell-variable change
to the corresponding release workflow step.

Source: Linters/SAST tools

scripts/release-spine-evidence.mts (1)

746-820: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

dashboardStatus가 매니페스트 명령 순서에 암묵적으로 의존합니다.

spine-bundle-size/spine-promotion에 주입되는 PACKAGE_QUALITY_*_STATUS 값들은 lint, format, build, typecheck, test, provider-certification, production-ready 체크가 이 체크보다 먼저 실행 완료되어 있어야 정확합니다. 이 순서 보장은 verification-manifest.mts의 배열 구성 순서에만 의존하며, 코드상 명시적인 assert나 주석이 없어 향후 매니페스트가 재배열되면 조용히 잘못된 상태값(예: 항상 "skipped")이 주입될 수 있습니다.

assertVerificationManifest(또는 이 파일 내부)에 "이 ID들은 spine-bundle-size보다 먼저 나와야 한다"는 검증을 추가하거나, 최소한 주석으로 이 불변조건을 명시하는 것을 권장합니다.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/release-spine-evidence.mts` around lines 746 - 820, Make the ordering
dependency explicit for dashboardStatus and the PACKAGE_QUALITY_*_STATUS values
used by spine-bundle-size and spine-promotion. Add validation in
assertVerificationManifest, or an equivalent check in this file, ensuring lint,
format, build, typecheck, test, provider-certification, and production-ready
appear before spine-bundle-size; document the invariant with a concise comment
if validation is not added.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 20-27: Update the Checkout step using actions/checkout@v4 to set
persist-credentials to false alongside fetch-depth: 0, ensuring checkout
credentials are not retained in the local Git configuration.

In `@scripts/core-coverage-warning-check.mts`:
- Around line 140-148: 중복된 verification-command.mts 디스패처 정규식 및 실제 명령 조회 로직을 공유
헬퍼로 추출하고, scripts/core-coverage-warning-check.mts의
resolveCoreCoveragePackageFilters와 scripts/first-success-verify.mts의
runsVerificationScript가 모두 이를 사용하도록 변경하세요. 헬퍼는 기존 디스패처 형식을 동일하게 처리하고,
runsVerificationScript에 필요한 정확 매칭 동작은 옵션으로 지원하세요.
- Around line 149-156: Replace the generic Error throws in the package-filter
failure branches of the core coverage parsing function with VerificationProblem
from ./verification-problem.mts, preserving the existing failure message and
ensuring both branches throw a Problem subclass.

In `@scripts/provenance-config-check.mts`:
- Around line 40-47: Update the main-module check around verifyProvenanceConfig
to use pathToFileURL(process.argv[1] ?? "").href instead of new URL(...,
"file:").href, matching the established release-spine-evidence pattern and
handling special characters and Windows paths consistently.

In `@scripts/release-spine-evidence.mts`:
- Around line 183-196: Update readChangedFiles to catch failures from
execFileSync, including missing base/head refs in cold or shallow clones, and
return undefined instead of propagating the exception. Verify that
runReleaseSpineEvidence and manifest applicability handling treat undefined as
“changed files unavailable” and still produce the expected report safely.

In `@scripts/verification-change-classifier.mts`:
- Line 241: Update the entry-point check in the verification-change-classifier
module to use pathToFileURL(argv[1] ?? "").href, matching the established
pattern in verification-command, instead of constructing the URL with new
URL(..., "file:").

---

Outside diff comments:
In @.github/workflows/ci.yml:
- Line 1: Update the workflow steps containing the run scripts to pass
github.event_name, github.base_ref, and github.event.before through step-level
env variables named EVENT_NAME, BASE_REF, and EVENT_BEFORE, then reference those
quoted shell variables instead of interpolating GitHub expressions directly.
Apply the same EVENT_BEFORE env-and-shell-variable change to the corresponding
release workflow step.

In `@scripts/release-spine-evidence.mts`:
- Around line 746-820: Make the ordering dependency explicit for dashboardStatus
and the PACKAGE_QUALITY_*_STATUS values used by spine-bundle-size and
spine-promotion. Add validation in assertVerificationManifest, or an equivalent
check in this file, ensuring lint, format, build, typecheck, test,
provider-certification, and production-ready appear before spine-bundle-size;
document the invariant with a concise comment if validation is not added.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 96c19349-40a7-46a4-bf38-9ab85339a4ae

📥 Commits

Reviewing files that changed from the base of the PR and between 95d1c43 and 6307732.

📒 Files selected for processing (23)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • package.json
  • scripts/core-coverage-warning-check.mts
  • scripts/first-success-verify.mts
  • scripts/provenance-config-check.mts
  • scripts/release-spine-evidence.mts
  • scripts/tests/ci-workflow.spec.ts
  • scripts/tests/core-coverage-warning-check.spec.ts
  • scripts/tests/first-success-verify.spec.ts
  • scripts/tests/provenance-config-check.spec.ts
  • scripts/tests/release-spine-evidence.spec.ts
  • scripts/tests/release-workflow.spec.ts
  • scripts/tests/verification-change-classifier.spec.ts
  • scripts/tests/verification-command.spec.ts
  • scripts/tests/verification-manifest.spec.ts
  • scripts/tests/verification-policy.spec.ts
  • scripts/verification-change-classifier.mts
  • scripts/verification-command.mts
  • scripts/verification-manifest.mts
  • scripts/verification-policy.mts
  • scripts/verification-problem.mts
  • scripts/workflow-verification-contract.mts

Comment thread .github/workflows/ci.yml
Comment thread scripts/core-coverage-warning-check.mts
Comment thread scripts/core-coverage-warning-check.mts
Comment thread scripts/provenance-config-check.mts Outdated
Comment thread scripts/release-spine-evidence.mts
Comment thread scripts/verification-change-classifier.mts Outdated
@kang-heewon
kang-heewon force-pushed the ci/1333-verification-profiles branch 2 times, most recently from b87edbf to fc15d82 Compare July 21, 2026 12:54
@kang-heewon
kang-heewon force-pushed the ci/1333-verification-profiles branch from fc15d82 to 8383418 Compare July 21, 2026 12:56
@kang-heewon
kang-heewon force-pushed the ci/1333-verification-profiles branch from 8383418 to e14c5ba Compare July 21, 2026 13:01
@kang-heewon

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@kang-heewon
kang-heewon merged commit ba1c12d into trunk Jul 21, 2026
8 of 9 checks passed
@kang-heewon
kang-heewon deleted the ci/1333-verification-profiles branch July 21, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ci] Define release-critical verification once and reuse it across PR and publish workflows

1 participant