feat(api): add @microsoft/api-extractor for API surface tracking#46
Conversation
Adds api-extractor + api-documenter to @forgespace/brand-guide to track the public API surface of the npm library entry. Same pattern as Forge-Space/core#201 and Forge-Space/siza-gen#75. Ships: - api-extractor.json (points at dist-lib/index.d.ts) - etc/brand-guide.api.md (committed baseline, CI verifies) - New ci.yml workflow with build + test + api-check jobs - npm scripts: api:extract, api:check, api:docs The brand-guide repo previously had no general CI workflow — only specialized jobs (codeql, secrets, semgrep, sonar, trivy). The new ci.yml runs build:lib, tests, and api-check on PRs. Result: 0 forgotten exports. Brand-guide's API surface is the cleanest of the 3 packages — 1 const (identity) + 12 type re-exports from @forgespace/branding-mcp, all properly forwarded. Local verification: - npm run build:lib — OK - npm run api:check — passes - npm test — 24/24 tests pass Part of P3 tech debt from .claude/plans/reactive-whistling-pizza.md
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 7 minutes and 13 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Test job in CI was failing because tests/token-files.test.ts asserts dist-lib/index.js exists, but the Test job ran in parallel with Build without sharing artifacts. Run build:lib in the Test job too.
|



Summary
Adds @microsoft/api-extractor + api-documenter to @forgespace/brand-guide. Same pattern as Forge-Space/core#201 and Forge-Space/siza-gen#75.
What ships
dist-lib/index.d.ts(usestsconfig.lib.json).github/workflows/ci.yml— runsbuild:lib+test+api-checkon PRs (the repo previously had no general CI workflow, only specialized jobs)api:extract,api:check,api:docsWhy this matters
Bugs caught
Zero — brand-guide's API surface is the cleanest of the 3 packages:
identity: BrandIdentity@forgespace/branding-mcp(BrandIdentity, ColorPalette, TypographySystem, SpacingScale, ShadowSystem, BorderSystem, MotionSystem, GradientSystem, LogoOutput, BrandStyle, ColorHarmony, ExportFormat)All properly forwarded — no forgotten exports.
Local verification
npm run build:lib— OKnpm run api:check— passesnpm test— 24/24 tests passCumulative API extractor rollout
Test plan
Part of P3 tech debt from .claude/plans/reactive-whistling-pizza.md.