* feat: auth agent references
* Update skills/supabase/references/auth-core-sessions.md
Co-authored-by: Stojan Dimitrovski <sdimitrovski@gmail.com>
* refactor: improve auth state management and update session handling examples
* docs: update performance note for asymmetric JWTs
* fix: correct signOut() default scope to 'global'
signOut() defaults to scope: 'global' (all sessions on all devices),
not current session only.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: improve signOut() examples to show all three scope options
Replace redundant explicit 'global' example with 'local' scope,
making all three options (global, local, others) visible.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: flatten auth references to root references directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* correct auth hooks
* correct auth server ssr
* fix auth reference files
* fix paths inside skill.md
* update agents.md
---------
Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
Co-authored-by: Stojan Dimitrovski <sdimitrovski@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* rebase and house keeping
* fix: storage reference accuracy after docs review
Fix RLS permission mappings, CDN cache behavior, file management limits,
image transform descriptions, and S3 upload API signatures based on
official Supabase documentation audit.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix offset
* fix move and copy instructions
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The model cannot access the Supabase Dashboard directly, so instruct
it to ask the user to perform dashboard actions instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add mise for Node.js version management
Replace ad-hoc Node version pinning with mise (mise.toml + mise.lock).
This ensures all contributors and CI use the same Node LTS version.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* expand mise with env loading, PATH management, and task runner
- [env] _.file loads .env files for local API keys (replaces dotenv)
- [env] _.path adds node_modules/.bin to PATH for direct tool access
- [tasks] mirrors npm scripts with sources/outputs for file-based caching
- eval tasks for running LLM evaluations via mise run
- update AGENTS.md and CONTRIBUTING.md to use mise run commands
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: build system skill body (#42)
* feat: extract SKILL.md body into AGENTS.md with H1 title and Overview section
Build system now parses SKILL.md body to extract H1 heading as the AGENTS.md
title and places remaining content under an Overview section. Adds validation
that SKILL.md body starts with H1, directory name is kebab-case, and name
field matches directory name.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: AGENTS.md is now SKILL.md body with frontmatter stripped
Build now generates AGENTS.md by extracting the SKILL.md markdown body
(everything after YAML frontmatter). CLAUDE.md remains a symlink to
AGENTS.md. Removes content generation logic (Structure, Usage, Overview,
Reference Categories, Available References sections) — SKILL.md is the
single source of truth for agent instructions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add Structure and Usage sections to AGENTS.md, validate H1 title matches directory name
Build now generates AGENTS.md as: H1 Title > Structure > Usage > rest of
SKILL.md body. Validates that SKILL.md body starts with H1 heading and
that the title in kebab-case matches the directory name.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: move .claude/ gitignore entry after generated skills pattern
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: extract SKILL.md body into AGENTS.md with H1 title and Overview section
Build system now parses SKILL.md body to extract H1 heading as the AGENTS.md
title and places remaining content under an Overview section. Adds validation
that SKILL.md body starts with H1, directory name is kebab-case, and name
field matches directory name.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: AGENTS.md is now SKILL.md body with frontmatter stripped
Build now generates AGENTS.md by extracting the SKILL.md markdown body
(everything after YAML frontmatter). CLAUDE.md remains a symlink to
AGENTS.md. Removes content generation logic (Structure, Usage, Overview,
Reference Categories, Available References sections) — SKILL.md is the
single source of truth for agent instructions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add Structure and Usage sections to AGENTS.md, validate H1 title matches directory name
Build now generates AGENTS.md as: H1 Title > Structure > Usage > rest of
SKILL.md body. Validates that SKILL.md body starts with H1 heading and
that the title in kebab-case matches the directory name.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add schema-constraints reference for safe migration patterns
Documents correct approaches for adding constraints in PostgreSQL migrations,
since ADD CONSTRAINT IF NOT EXISTS is not supported and causes syntax errors.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Remove additional correct options
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Remove support for nested subdirectories in references/.
All markdown reference files must now be placed directly in
the references/ directory (e.g., references/auth-signup.md).
- Replace getMarkdownFilesRecursive with getMarkdownFiles (flat)
- Simplify parseAllSections to only read root _sections.md
- Update getReferenceFiles to skip subdirectories
- Keep deprecated getMarkdownFilesRecursive alias for compatibility
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix: remove CLAUDE.md symlink generation from build
The CLAUDE.md symlink causes installation errors when using
`npx skills add` as it tries to copy AGENTS.md to itself.
- Remove createClaudeSymlink function from build.ts
- Remove claudeSymlink from SkillPaths interface
- Remove CLAUDE.md references from AGENTS.md structure documentation
- Delete existing CLAUDE.md symlink from skills directory
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test: add sanity test for skills installation
Add a sanity test that verifies the skills CLI installation works:
- Runs `npx skills add . -a claude-code -y` using current directory
- Checks command doesn't fail (exit code 0)
- Verifies .claude/skills directory is created
- Dynamically discovers skills in the repo and verifies they're installed
- Checks SKILL.md exists in each installed skill
The test runs on every push to main and pull requests.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Revert "fix: remove CLAUDE.md symlink generation from build"
This reverts commit c07c234601.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Add getMarkdownFilesRecursive() for recursive file scanning
- Add parseAllSections() to parse _sections.md from subdirectories
- Add parseSectionsFromFile() helper function
- Update buildSkill() and validateSkill() to use new functions
- Export new functions for use by validate.ts
This allows organizing reference files in product-specific subdirectories
(e.g., references/db/ for database files) while keeping _sections.md in
each subdirectory.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: generic skills build system with auto-discovery
- Rename postgres-best-practices-build → skills-build
- Add auto-discovery: scans skills/ for subdirectories with metadata.json
- Build/validate all skills or specific skill with -- argument
- Update root AGENTS.md and CONTRIBUTING.md with new structure
- No configuration needed to add new skills
Usage:
npm run build # Build all skills
npm run build -- skill-name # Build specific skill
npm run validate # Validate all skills
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix ci
* more generic impact levels
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Install Biome as the project formatter and linter
- Configure Biome with recommended settings
- Add format, lint, and check scripts to package.json
- Restore CI workflow from git history (commit 0a543e1)
- Extend CI with new Biome job for format and lint checks
- Apply Biome formatting to all TypeScript files
- Fix linting issues (use node: protocol, template literals, forEach pattern)
CI now runs on:
- All pushes to main branch
- All pull requests
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* feat: add marketplace.json for Claude Code plugin distribution
Add .claude-plugin/marketplace.json to enable distribution of the
postgres-best-practices skill as a Claude Code plugin.
Users can install via:
/plugin marketplace add supabase/agent-skills
/plugin install postgres-best-practices@supabase-postgres
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add plugin.json manifest for postgres-best-practices skill
Add .claude-plugin/plugin.json inside the skill directory to properly
define this as a Claude Code plugin. This is required by the marketplace
specification - each plugin must have its own plugin.json manifest.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: update marketplace name and description for broader scope
- Rename marketplace from supabase-postgres to supabase-plugins
- Update description to reflect this as the official Supabase agent skills repo
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* minor fixes
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Update version from 0.1.0 to 1.0.0 across all files:
- skills/postgres-best-practices/AGENTS.md
- skills/postgres-best-practices/SKILL.md
- skills/postgres-best-practices/metadata.json
- packages/postgres-best-practices-build/package.json
- packages/postgres-best-practices-build/package-lock.json
- packages/postgres-best-practices-build/src/build.ts
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>