Last Updated: 2026-01-29 Version: 0.0.2
A curated collection of Agent Skills reflecting personal preferences, experience, and best practices. This project uses git submodules to reference source documentation directly.
.
├── skills/ # Hand-written and synced skills
│ ├── handoff/ # Session handoff skill
│ └── jerret/ # Personal preferences
├── docs/ # Documentation
│ ├── handoffs/ # Session handoff documents
│ └── plans/ # Implementation plans
├── scripts/ # CLI management scripts
│ └── cli.ts # Main CLI entry point
└── meta.ts # Project metadata
Session handoff commands preserve context across Claude Code conversations through structured markdown documents.
Save current session context to a handoff document.
Usage:
/handoff:save --name <功能名> [--continue <版本>]Options:
--name <功能名>- Feature/project name (required)--continue <版本>- Chain from previous handoff version
Trigger phrases:
/handoff:save --name blog-syncsave handoff <功能名>- "保存 handoff <功能名>"
- "保存当前进度"
- "checkpoint"
What happens:
- Collect session context (project, status, decisions, files, TODOs)
- Auto-generate version number (v0.0.1, v0.0.2, v0.0.3...)
- Generate handoff document at
docs/handoffs/<name>-v<version>.md - Display success message with file path
- Remind user to run
/compactto clean and organize session
Example:
# First save
/handoff:save --name blog-sync
# Creates: docs/handoffs/blog-sync-v0.0.1.md
# Output:
# ✅ Handoff saved: docs/handoffs/blog-sync-v0.0.1.md
# 💡 Tip: Run `/compact` to clean up the current session before closing.
# Second save (auto-increments)
/handoff:save --name blog-sync
# Creates: docs/handoffs/blog-sync-v0.0.2.mdVersion format:
- Automatic patch versioning: v0.0.1, v0.0.2, v0.0.3...
- Each save increments the patch number
- No manual version management needed
Load and display a previous handoff document.
Usage:
/handoff:continue <功能名>
/handoff:continue docs/handoffs/<功能名>-v0.0.1.mdTrigger phrases:
/handoff:continue blog-synccontinue handoff <功能名>- "继续 handoff <功能名>"
- "继续之前的工作"
- "what were we working on?"
What happens:
- Search
docs/handoffs/for matching files - Sort by version (v0.0.3 > v0.0.2 > v0.0.1)
- Show found handoffs with timestamps
- Ask for confirmation
- Load and display handoff content
- Ask: "What would you like to work on?"
Example interaction:
Found handoff(s) for "blog-sync":
📄 blog-sync-v0.0.3.md (26-01-29 14:30:15)
📄 blog-sync-v0.0.2.md (26-01-28 09:15:20)
Load latest: blog-sync-v0.0.3.md? [Y/n]
→ User confirms, handoff content is displayed
Clean and organize the current session to reduce token usage and improve focus.
Usage:
/compactWhen to use:
- After saving a handoff document
- When session becomes too long
- Before closing a session
What happens:
- Compresses conversation history
- Removes redundant messages
- Preserves essential context
- Updates CLAUDE.md if needed
# <Feature Name> Handoff
**Created:** yy-MM-DD hh:mm:ss
**Version:** v0.0.X
## Context Overview
- Project: ...
- Objectives: ...
- Architecture: ...
## Current Status
### Completed
- [x] Item 1
### In Progress
- [ ] Item 2
### TODO
- [ ] Next task 1
- [ ] Next task 2
## Key Decisions & Rationale
- Decision 1: ...
## Important File Locations
- `path/to/file` - Description
## Development Guidelines
- Style notes
## Blockers & Risks
- Issue - Status
## References
- Related docsTimestamp format: yy-MM-DD hh:mm:ss
- Example:
26-01-29 14:30:15(January 29, 2026, 2:30:15 PM)
- Always include TODO items - Handoffs should capture next steps
- Auto versioning - No need to manually specify versions
- Include file paths - Use absolute paths for important files
- Document decisions - Explain why, not just what
- Commit to git - Handoffs should be version controlled
- Run /compact - Clean session after saving handoff
| Version | Date | Changes |
|---|---|---|
| v0.0.2 | 26-01-29 | Simplified handoff: removed day format, auto versioning, /compact reminder |
| v0.0.1 | 2026-01-29 | Initial CLAUDE.md with handoff commands and testing requirements |
CRITICAL REQUIREMENT: Every feature completion or version update MUST be followed by comprehensive testing and verification.
Verification Steps (After ANY Code Change):
- Run all relevant tests (
npm test,go test, etc.) - Start the development server
- Verify the feature works end-to-end
- Check console for any errors
- Only proceed after all verification passes
Testing Checklist:
- Feature functionality tested
- Edge cases covered
- Integration tested (if applicable)
- Documentation updated
- Test results documented
No exceptions: Even "simple" changes require testing verification.
When using i18n libraries like go-i18n, always verify the correct function signature before making bulk changes:
- i18n.T() typically takes 2 parameters: key and template data
- Test compilation after bulk i18n changes before proceeding
- Verify path aliases in
tsconfig.jsonare properly configured before using them - If path resolution fails, prefer explicit relative imports over troubleshooting complex alias configurations
- Run
npm run buildto verify production readiness
Before removing or changing error handling configurations (like ignoreError):
- Search for all places this error type is caught/handled
- Verify proper error handling exists downstream
- Remove suppression config
- Test error scenarios to ensure graceful handling
- For immediate debugging/fixes: Say "fix this now" or "skip planning, just implement"
- For architectural decisions: Let Claude enter plan mode and review the approach
- This prevents premature planning when you need quick fixes
- Plan - Use brainstorming skill to design approach
- Implement - Write the code/feature
- TEST - Verify functionality works as expected
- Document - Update CLAUDE.md and other docs
- Handoff - Create session handoff if pausing
CRITICAL: All changes must follow this 5-step process before merging to main.
Create a new branch with a descriptive name and summarize the change in one sentence.
# Branch naming convention: type/description
git checkout -b feat/add-dev-skill
git checkout -b fix/error-handling
git checkout -b refactor/cleanup-codeOne-line summary template:
<type>: <what changed> → <outcome/benefit>
Examples:
- feat: Add dev skill for workflow verification → Reduce debugging iterations
- fix: Remove ignoreError from API client → Proper error handling
- refactor: Migrate Bash scripts to Go → Better maintainability
Create a Pull Request with structured summary.
## Summary
<!-- One sentence describing the change -->
## Changes
- [ ] File 1 changed - description
- [ ] File 2 changed - description
- [ ] File N changed - description
## Type
- [ ] feat - New feature
- [ ] fix - Bug fix
- [ ] refactor - Code restructuring
- [ ] docs - Documentation only
- [ ] test - Tests only
- [ ] chore - Build/config changes
## Related Issue
Closes #(issue number) or Relates to #(issue number)Before running tests, explicitly define what will be tested.
## Test Plan
### Unit Tests
- [ ] Test case 1: description
- [ ] Test case 2: description
- [ ] Test case 3: description
### Integration Tests
- [ ] Test case 1: description
- [ ] Test case 2: description
### Manual Tests
- [ ] Test case 1: description
- [ ] Test case 2: description
### Edge Cases
- [ ] Test case 1: description
- [ ] Test case 2: descriptionExecute all tests and generate a feedback report.
# Run test suite
npm test
# or
go test ./...
# Run build (if applicable)
npm run build
# Run linter
npm run lintTest Report Template:
## Test Results
### Summary
| Category | Total | Passed | Failed |
|----------|-------|--------|--------|
| Unit Tests | N | N | N |
| Integration Tests | N | N | N |
| Manual Tests | N | N | N |
### Failed Tests
<!-- List any failures with details -->
### Issues Found
<!-- Document any issues discovered during testing -->
### Build Status
- [ ] Build successful
- [ ] Linting passed
- [ ] No console errorsUser reviews the following before approving merge:
- Code changes align with the one-line summary
- All tests pass
- Documentation is updated
- No unintended side effects
- Edge cases are covered
Only after all 5 steps are completed, merge to main.
| Step | Action | Command |
|---|---|---|
| 1 | Create branch | git checkout -b type/description |
| 2 | Create PR | gh pr create --title "One-line summary" --body-file pr.md |
| 3 | Define tests | Add test plan to PR description |
| 4 | Run tests | npm test && npm run build && npm run lint |
| 5 | User review | Review checklist in PR comments |
# Initialize submodules
pnpm start init
# Sync skills from vendors
pnpm start sync
# Check for updates
pnpm start check
# Cleanup unused skills
pnpm start cleanup| File | Purpose |
|---|---|
skills/handoff/skill.md |
Handoff skill definition |
docs/handoffs/ |
Session handoff documents |
docs/handoffs/template.md |
Handoff document template |
scripts/cli.ts |
Skills management CLI |
meta.ts |
Project metadata and submodule config |
CLAUDE.md |
This file - project context and guidelines |
Handoff Simplification:
- ✅ Removed day format (only version mode now)
- ✅ Removed
--formatparameter (auto versioning) - ✅ Changed
/compactfrom auto-call to user reminder - ✅ Updated timestamp format to
yy-MM-DD hh:mm:ss
Benefits:
- Simpler command interface
- No manual version management
- Clearer user control over session cleanup
- Consistent timestamp format
Migration Guide:
# Old (no longer works)
/handoff:save --name my-feature --format day
# New (automatic versioning)
/handoff:save --name my-feature
# Creates: my-feature-v0.0.1.md
# Session cleanup (manual)
/compact # User runs this after saving