feat: canonical SDK capability matrix (KPI 5 data source) - #8
Merged
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds full auth surface area sourced from auth-js and supabase-js: sign-in flows (13), passkeys (2), session/user (10), identities (3), MFA (7), WebAuthn MFA (7), OAuth server (5), admin API (16). All 63 features are implemented in JavaScript with verified references. All other SDKs (flutter, python, swift, csharp, go, kotlin) are marked not_implemented as the baseline for parity tracking. New features vs monorepo (supabase/supabase-js) not yet in the standalone supabase/auth-js release are referenced via the monorepo path. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…supabase/supabase-js monorepo Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- scripts/capability-matrix/src/generate-site.ts: reads capabilities/ YAML files and generates a self-contained index.html with a parity table per area, per-SDK parity bars, group sub-headers, and colour- coded status cells (✅/⬜/➖) - npm run build-site: generates site/index.html (~57 KB, no deps) - .github/workflows/deploy-pages.yml: builds and deploys on push to main; manual trigger via workflow_dispatch - site/ added to .gitignore (generated artifact, not committed) NOTE: GitHub Pages must be enabled in repo Settings → Pages → Source: GitHub Actions before the deploy job will succeed (requires the repository to be public or on a paid plan). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
grdsdev
pushed a commit
that referenced
this pull request
Aug 12, 2026
🤖 I have created a release *beep* *boop* --- ## [1.0.0](v1.0.0...v1.0.0) (2026-08-12) ### ⚠ BREAKING CHANGES * reconcile capability matrix inconsistencies from skill audit ([#74](#74)) ### Features * add capabilities based on supabase-js public methods ([#19](#19)) ([8b07e38](8b07e38)) * add capability-matrix maintenance skill ([#73](#73)) ([070e2c9](070e2c9)) * add review-spec and review-spec-compliance skills ([#6](#6)) ([b2646c1](b2646c1)) * add SDK implementation status matrix to README and skill ([#4](#4)) ([753f06c](753f06c)) * **api-check:** include file path and line number in compliance failure messages ([#45](#45)) ([2f4be47](2f4be47)) * **auth:** add sign-out reason capability ([#47](#47)) ([51a3abd](51a3abd)) * canonical SDK capability matrix ([#8](#8)) ([215bc3e](215bc3e)) * **capability-matrix:** strict cross-SDK parity score + coverage scope ([#63](#63)) ([de1abe1](de1abe1)) * CI check 1 — block PRs adding public API not in capability matrix ([#31](#31)) ([293440c](293440c)) * **compliance:** list undeclared features after validation ([#48](#48)) ([29f396a](29f396a)) * **compliance:** list undeclared features as notes after validation ([29f396a](29f396a)) * **compliance:** split symbol evidence from symbol coverage ([#75](#75)) ([abc8e71](abc8e71)) * initial SDK specs, skills, and install script ([e662b17](e662b17)) * move SDK compliance to per-repo files ([#15](#15)) ([4d32675](4d32675)) * **parsers:** add Dart public API parser via package:analyzer (alternative to [#35](#35)) ([#41](#41)) ([e3ba07a](e3ba07a)) * **parsers:** add griffe-based Python public API surface parser ([#36](#36)) ([c44f836](c44f836)) * **parsers:** replace Swift regex parser with swift-symbolgraph-extract ([#38](#38)) ([80529a7](80529a7)) * **realtime:** add multiple postgres_changes filters capability ([#70](#70)) ([825ab0c](825ab0c)) * reconcile capability matrix inconsistencies from skill audit ([#74](#74)) ([9c53a70](9c53a70)) * rename sdk-parse-ignore to .sdk-parse-ignore ([#37](#37)) ([4f4ab61](4f4ab61)) * render symbol names as clickable links in capability matrix ([#14](#14)) ([dcaf122](dcaf122)) * show feature description as visible sub-text in capability matrix ([#13](#13)) ([3a750ab](3a750ab)) * **site:** serve compliance.json with precomputed parity from GitHub Pages ([#46](#46)) ([0d9106c](0d9106c)) * **storage:** add purge_cache and purge_bucket_cache canonical capabilities ([#44](#44)) ([9a6f864](9a6f864)) * **storage:** add storage.errors.error_codes capability ([#71](#71)) ([fabb9a7](fabb9a7)) * **storage:** add the five missing Iceberg catalog capabilities ([#76](#76)) ([c3c8f9e](c3c8f9e)) ### Bug Fixes * **aggregate:** point csharp and go SDKs at correct repo slugs ([#62](#62)) ([8b7320f](8b7320f)) * **aggregate:** point kotlin SDK at supabase-community/supabase-kt ([#61](#61)) ([b1a99e9](b1a99e9)) * **capability-matrix:** correct coverage scope metric description ([#64](#64)) ([5daeaf5](5daeaf5)) * **ci:** repair python pipeline and simplify sdk-compliance workflow ([#42](#42)) ([2140f44](2140f44)) * **ci:** use nx to run docs:json so workspace deps are built first ([#56](#56)) ([9b449bb](9b449bb)) * **dart-extractor:** exclude [@internal-annotated](https://github.com/internal-annotated) symbols from the public API surface ([9bd358e](9bd358e)) * **dart-extractor:** exclude [@internal](https://github.com/internal) symbols from the public API surface ([#54](#54)) ([9bd358e](9bd358e)) * remove broken sticky thead, add scroll-margin-top and group-row borders ([#10](#10)) ([68761cd](68761cd)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: supabase-releaser[bot] <223506987+supabase-releaser[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduces the canonical feature/capability matrix for all official Supabase SDKs — the foundational data source for KPI 5 (Cross-SDK Feature Parity Rate).
What's in this PR
schema/capability-matrix.schema.json— JSON Schema contract. Canonical SDK set (7 languages: javascript, flutter, python, swift, csharp, go, kotlin) and status vocabulary (implemented/not_implemented/not_applicable) are enums in the schema. Enforces all 7 languages per feature andreferencesrequired iff a status isimplemented.capabilities/*.yaml— one file per product area.auth.yamlis a fully worked example (3 features);database,storage,realtime,functionsare skeleton stubs establishing the pattern. Each feature has a stable dottedid, human-facingname/description, per-SDK status, and codereferences(repo + path + optional symbols).scripts/capability-matrix/— TypeScript/Node validator:since,not_applicable-without-notes warning).implementedreference's path exists in its repo and that listed symbols appear in the file (missing path or symbol = error).reportmode: computes the parity score (overall, per-area, per-language).docs/capability-matrix.md— schema fields, allowed values, conventions, and the parity-score definition..github/workflows/validate-capabilities.yml— CI: Tier 1 on every push/PR; Tier 2 on PRs and a nightly drift sweep.Parity score (KPI 5)
not_applicable.implemented / applicable; the cross-SDK rate is the mean across features (also reported per area and per language).Test plan
npm test— 29 unit tests pass (schema rules, structural checks, parity math, Tier 2 path/symbol logic, CLI)npm run typecheck— cleannpm run validate— Tier 1 passes on the shipped datanpm run validate:online— Tier 2 passes against live upstream reposnpm run report— parity output verified by handThis PR is additive; existing repo contents are untouched.
🤖 Generated with Claude Code