Skip to content

fix: verify production-ready package evidence - #1061

Merged
kang-heewon merged 3 commits into
trunkfrom
issue-938-production-ready-gate
Jun 21, 2026
Merged

fix: verify production-ready package evidence#1061
kang-heewon merged 3 commits into
trunkfrom
issue-938-production-ready-gate

Conversation

@kang-heewon

@kang-heewon kang-heewon commented Jun 21, 2026

Copy link
Copy Markdown
Member

Fixes #938.

Summary

  • Adds pnpm production-ready:check as a dedicated gate for packages marked production-ready in docs/package-catalog.json, with README, generated API docs or justified temporary exceptions, tests, Turbo task summaries, public API snapshot participation, and maturity-reference evidence.
  • Emits ci-reports/package-quality/production-ready.md and wires a blocking Production-ready package gate into CI after Turbo summaries, appending the report to the GitHub Actions job summary.
  • Documents recovery steps and temporary API-doc exception rules in the package quality dashboard, and covers the new failure modes with focused checker/workflow tests.
  • Refreshes generated Problem registry/cookbook output and aligns a protocols-core route IR expectation with generated recovery cookbook links so the refreshed trunk checks stay green.

Verification

  • pnpm production-ready:check - passed, 23 production packages checked with 0 blocking failures.
  • pnpm production-ready:check -- - passed, matching the GitHub Actions separator path without CI-only summary requirements.
  • pnpm exec vitest run scripts/tests/production-ready-check.spec.ts scripts/tests/ci-workflow.spec.ts - passed, 14 tests.
  • pnpm exec vitest run scripts/tests - passed, 21 files / 143 tests.
  • pnpm --filter @croco/protocols-core test - passed, 4 files / 60 tests.
  • pnpm check - passed.
  • pnpm changeset-required:check -- --base origin/trunk --head HEAD - passed.
  • git diff --check - passed.
  • Pre-push hook passed on final push: existing changeset, full Turbo test 221/221 tasks successful, and full Turbo typecheck 220/220 tasks successful.
  • GitHub Actions passed for PR fix: verify production-ready package evidence #1061: validate, changes, docs-build, docs-links, and benchmark succeeded; docs-sync-check was skipped by path filter.

Self-review gates

  • Correctness/regression: PASS. The checker reads the production package set from the catalog, fails production packages missing required evidence, writes a per-package markdown report, keeps non-production gaps informational, preserves existing docs:catalog:check behavior, and has regression tests for missing README, missing/stale API docs exceptions, missing tests, non-production gaps, CI-required summaries, maturity references, pnpm separator parsing, and report emission.
  • API/security/compatibility/release: PASS. The change is a CI/script/docs gate, not a runtime API change; no new dependencies, credentials, or lockfile changes are introduced. CI requires Turbo summaries only after the build/typecheck/test summary steps have actually run, while local pnpm production-ready:check remains usable before summaries exist. The hook-generated changeset only reflects the touched protocols-core test alignment.
  • Maintainability/minimality: PASS. The implementation stays in one checker script plus focused tests and CI wiring, reuses existing package quality/public API/report artifacts, documents the remediation path, and keeps generated registry/cookbook updates deterministic instead of leaving trunk drift hidden.

Risk

Low-medium. The new CI step is intentionally blocking for production-ready evidence, so false positives would block PRs; local default mode and the generated report are designed to make the missing evidence explicit before CI.

@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@kang-heewon, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 39 minutes and 6 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e57c3305-cd87-4229-a563-ec9d51644558

📥 Commits

Reviewing files that changed from the base of the PR and between cda740f and 3717efa.

📒 Files selected for processing (10)
  • .changeset/8a5d63c2.md
  • .github/workflows/ci.yml
  • docs/problem-code-registry.json
  • docs/release/package-quality-dashboard.md
  • package.json
  • packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md
  • packages/protocols-core/src/tests/extractRouteIR.spec.ts
  • scripts/production-ready-check.mts
  • scripts/tests/ci-workflow.spec.ts
  • scripts/tests/production-ready-check.spec.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-938-production-ready-gate

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 and usage tips.

@kang-heewon
kang-heewon force-pushed the issue-938-production-ready-gate branch from 3419a8d to 8c86515 Compare June 21, 2026 10:13
@github-actions

github-actions Bot commented Jun 21, 2026

Copy link
Copy Markdown

📊 Benchmark Results

❌ Some benchmarks failed

Gate failures

  • CrocoApp constructor: p75 6.0μs exceeds baseline 3.4μs by more than 20%
  • CrocoApp lambdaHandler (10 controllers): p75 111.0μs exceeds baseline 33.3μs by more than 20%
  • Lambda cold-start simulation: p75 249.8μs exceeds baseline 70.2μs by more than 20%
  • Lambda cold-start with headers: p75 206.8μs exceeds baseline 66.7μs by more than 20%
  • Lambda cold-start with binary body: p75 176.6μs exceeds baseline 63.2μs by more than 20%
  • Lambda cold-start with query params: p75 161.3μs exceeds baseline 63.9μs by more than 20%
  • Lambda cold-start with authorizer context: p75 167.2μs exceeds baseline 59.8μs by more than 20%
  • Lambda cold-start realistic scenario: p75 164.3μs exceeds baseline 60.2μs by more than 20%
  • EventBusConfig.start (10 handlers): p75 1.3μs exceeds baseline 0.9μs by more than 20%
  • EventPublisher.publishNow single event: p75 1.5μs exceeds baseline 1.1μs by more than 20%
  • DefaultHandlerResolver.resolve × 10: p75 0.1μs exceeds baseline 0.0μs by more than 20%
  • Container.get singleton (cold): p75 45.6μs exceeds baseline 0.6μs by more than 20%
  • Container.register × 50 components: p75 2.1ms exceeds baseline 12.1μs by more than 20%
  • Container.validate (50 components): p75 2.3ms exceeds baseline 29.7μs by more than 20%
  • Container.get singleton (warm): p75 1.2μs exceeds baseline 0.3μs by more than 20%
Benchmark p75 Threshold Baseline vs Baseline Status Notes
CrocoApp constructor 6.0μs 30.0ms 3.4μs +76.6% -
CrocoApp lambdaHandler (10 controllers) 111.0μs 50.0ms 33.3μs +233.5% -
Lambda cold-start simulation 249.8μs 80.0ms 70.2μs +256.1% -
Lambda cold-start with headers 206.8μs 80.0ms 66.7μs +209.7% -
Lambda cold-start with binary body 176.6μs 80.0ms 63.2μs +179.5% -
Lambda cold-start with query params 161.3μs 80.0ms 63.9μs +152.6% -
Lambda cold-start with authorizer context 167.2μs 80.0ms 59.8μs +179.7% -
Lambda cold-start realistic scenario 164.3μs 80.0ms 60.2μs +173.1% -
EventBusConfig.start (10 handlers) 1.3μs 10.0ms 0.9μs +52.2% -
EventPublisher.publishNow single event 1.5μs 2.0ms 1.1μs +36.8% -
DefaultHandlerResolver.resolve × 10 0.1μs 5.0ms 0.0μs +42.9% -
Container.get singleton (cold) 45.6μs 5.0ms 0.6μs +7202.1% -
Container.register × 50 components 2.1ms 10.0ms 12.1μs +17203.9% -
Container.validate (50 components) 2.3ms 20.0ms 29.7μs +7632.2% -
Container.get singleton (warm) 1.2μs 500.0μs 0.3μs +325.3% -
TelemetryRuntime.init (lambda preset) 744.9μs 200.0ms 69.3ms -98.9% -
lambdaPreset config creation 1.1μs 2.0ms 1.0μs +6.2% -

Updated: 2026-06-21T10:25:44.925Z · Commit: c9f4068

@kang-heewon
kang-heewon merged commit ea14bd4 into trunk Jun 21, 2026
8 checks passed
@kang-heewon
kang-heewon deleted the issue-938-production-ready-gate branch June 21, 2026 10:41
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] production-ready 패키지 검증 게이트를 분리한다

1 participant