skills/git-commit-writer/SKILL.md
Write consistent high-quality Git commits following project conventions
npx skillsauth add alcyone-labs/agent-skills git-commit-writerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Based on conventional commits + project conventions:
| Prefix | Use When |
| ----------- | ----------------------------------------------- |
| feat: | New feature or capability |
| fix: | Bug fix |
| refactor: | Code restructuring, no behavior change |
| docs: | Documentation only |
| style: | Formatting, semicolons, quotes (no code change) |
| test: | Adding/updating tests |
| chore: | Build, tooling, dependencies |
| perf: | Performance improvement |
| security: | Security-related changes |
Closes #123, Refs #456ALWAYS analyze the codebase structure before writing:
git log --oneline -20packages/sauve-chrome-extension/src/popup)feat(bookmarks):Changes staged?
├─ Single file, obvious change
│ └─ Subject only, no body
│ └─ "fix: correct typo in README"
│
├─ Multiple related files, single purpose
│ └─ Subject + brief body
│ └─ "feat: add keyboard shortcuts system
│
│ Implements configurable keybindings with context-aware
│ actions for navigation and reader controls."
│
├─ Complex refactor or feature
│ └─ Subject + detailed body with bullets
│ └─ "refactor: migrate inbox to reading list model
│
│ Replace inbox architecture with single-source-of-truth:
│ - Remove inbox, inboxReferences from schema
│ - Add readingListIndex for stable UI ordering
│ - Create reading-list module with query functions
│ - Migrate UI hooks to use reading list"
│
└─ Schema/database migration
└─ Include migration details
└─ "feat: add urlHash-based storage (v10)
Breaking: Feed items now keyed by SHA-256 hash
- Add RSSFeedItemState with urlHash key
- Update PageContent with labels field
- Add canonicalizeFeedUrl() utility"
feat: add unified search across all content types
fix: prevent duplicate bookmarks on rapid clicks
refactor: extract useLabelCRUD hook from component
docs: add Aquaria integration architecture guide
style: normalize quote style per Oxfmt
chore: migrate from ESLint to oxlint
perf: lazy-load fuzzy search index
security: sanitize user input in search DSL
Add My Library unified search across feeds, bookmarks, tabs
Implements a unified "My Library" view combining all content types
with powerful DSL-based filtering and Fuse.js fuzzy text search.
Converts options page to Preact and adds keyboard shortcuts panel.
Closes #456
refactor: breakdown inbox into separate components
- Extract bulk action toolbar, header, item card, drawer
- Create hooks to handle selection and CRUD logic
- Move utility functions to dedicated files
- Improve component reusability and testability
❌ "updated files" (vague, past tense)
❌ "Fix." (too short, period)
❌ "feat: added new feature" (past tense, redundant)
❌ "various changes" (not atomic)
❌ "WIP: working on login" (no WIP in commits)
❌ "fix bug #123" (missing colon after type)
Staged changes:
- if (user.name) {
+ if (user?.name) {
Commit message:
fix: handle undefined user in greeting
Staged changes:
src/hooks/useKeyboard.ts (new)src/components/KeyboardShortcuts.tsx (new)src/context/ShortcutContext.tsx (new)src/types/shortcuts.ts (new)Commit message:
feat: add keyboard shortcuts configuration system
Implements configurable keybindings with context-aware actions.
Defines shortcut contexts (any, tabs, list, reader) and default
Alt+letter shortcuts for main pages. Stored in Jazz for sync.
Staged changes:
src/schemas/root.ts (modified)src/schemas/label.ts (modified)src/background/migration-service.ts (modified)Commit message:
feat: migrate to unified content store (v13)
Breaking schema changes for unified content architecture:
- Replace separate inbox/feed storage with contentStore
- Add urlHash as primary key for all content items
- Migrate existing data via auto-repair service
- Update all queries to use new index structure
Migration runs automatically on app startup.
Staged changes:
src/popup/components/feeds/ (reorganized)src/popup/hooks/useFeeds.ts (new)Commit message:
refactor: breakdown feeds into separate components
- Extract feed card, icon, search, and item components
- Separate feed management into custom hooks
- Reorganize feed navigation with index.tsx entry point
- Improve code organization and testability
Staged changes:
AGENTS.md (new)docs/architecture.md (new)Commit message:
docs: add development guidelines and architecture documentation
Add AGENTS.md with build commands, tech stack overview,
code style conventions, and testing guidelines.
Document Aquaria RSS integration and Jazz storage patterns.
development
Builds precise production-ready custom Agent Skills following AgentSkills.io guidelines. Use when user requests to create, refine or package Skills
development
Best practices for using simple-logger in TypeScript applications
tools
Implement Sauve-specific Jazz extension behavior on top of worker-authority architecture and typed popup-worker protocol
tools
Test Chrome extensions (Manifest V3) headlessly with Playwright — load unpacked extensions, extract the extension ID, test popups/content scripts/background, run reliably in CI, and use the correct headless mode that actually supports extensions.