98 lines
3.8 KiB
Markdown
98 lines
3.8 KiB
Markdown
# Automated Workflows for Claude
|
|
|
|
This file documents automated workflows that Claude should be aware of when working on this project.
|
|
|
|
## NPM Package Publishing
|
|
|
|
### @soroban/abacus-react Package
|
|
|
|
**Status**: ✅ Fully configured and ready for automated publishing to npm
|
|
|
|
**How to trigger a release**:
|
|
|
|
```bash
|
|
# Minor version bump (new features)
|
|
git commit -m "feat(abacus-react): add new bead animation system"
|
|
|
|
# Patch version bump (bug fixes)
|
|
git commit -m "fix(abacus-react): resolve gesture detection issue"
|
|
|
|
# Patch version bump (performance)
|
|
git commit -m "perf(abacus-react): optimize bead rendering"
|
|
|
|
# Major version bump (breaking changes)
|
|
git commit -m "feat(abacus-react)!: change callback signature"
|
|
```
|
|
|
|
**Key Requirements**:
|
|
|
|
- Must use `(abacus-react)` scope in commit message
|
|
- Changes must be in `packages/abacus-react/` directory
|
|
- NPM_TOKEN secret must be configured in GitHub repository settings
|
|
|
|
**Workflow Details**:
|
|
|
|
- **File**: `.github/workflows/publish-abacus-react.yml`
|
|
- **Triggers**: Push to main branch with changes in `packages/abacus-react/`
|
|
- **Steps**: Install deps → Build package → Run tests → Configure dual auth → Semantic release → Publish to npm + GitHub Packages
|
|
- **Versioning**: Independent from monorepo (uses tags like `abacus-react-v1.2.3`)
|
|
- **Publishing**: Dual publishing to both npm and GitHub Packages simultaneously
|
|
|
|
**Current Status**:
|
|
|
|
- ✅ Workflow configured for dual publishing
|
|
- ✅ Semantic release setup for both registries
|
|
- ✅ Package build/test passing
|
|
- ✅ GitHub Packages authentication configured (uses GITHUB_TOKEN)
|
|
- ⏸️ Awaiting NPM_TOKEN secret for actual npm publishing
|
|
|
|
**What Claude should do**:
|
|
When making changes to the abacus-react package:
|
|
|
|
1. Use the proper commit format with `(abacus-react)` scope
|
|
2. Remember this will trigger automatic npm publishing
|
|
3. Ensure changes are meaningful enough for a version bump
|
|
4. Reference this workflow in explanations to users
|
|
|
|
## Storybook Deployment
|
|
|
|
**Status**: ✅ Fully functional
|
|
|
|
**Trigger**: Any push to main branch
|
|
**Output**: https://antialias.github.io/soroban-abacus-flashcards/
|
|
|
|
- Web app Storybook: `/web/`
|
|
- Abacus React component Storybook: `/abacus-react/`
|
|
|
|
## Semantic Release (Monorepo)
|
|
|
|
**Status**: ✅ Configured to exclude abacus-react scope
|
|
|
|
**Workflow**: Regular commits without `(abacus-react)` scope trigger monorepo releases
|
|
**Versioning**: Affects root package.json version and creates GitHub releases
|
|
|
|
## Claude Guidelines
|
|
|
|
1. **Always check commit scope**: When working on abacus-react, use `(abacus-react)` scope
|
|
2. **Be intentional**: Package releases are permanent - ensure changes warrant a version bump
|
|
3. **Documentation**: Point users to CONTRIBUTING.md for full details
|
|
4. **Status awareness**: Remember NPM_TOKEN is required for actual publishing
|
|
5. **Testing**: Package tests must pass before publishing (currently has workaround for vitest config issue)
|
|
|
|
## Quick Reference
|
|
|
|
| Action | Commit Format | Result |
|
|
| ---------------------------- | ---------------------------------- | --------------------------- |
|
|
| Add abacus-react feature | `feat(abacus-react): description` | npm minor version bump |
|
|
| Fix abacus-react bug | `fix(abacus-react): description` | npm patch version bump |
|
|
| Breaking abacus-react change | `feat(abacus-react)!: description` | npm major version bump |
|
|
| Regular monorepo feature | `feat: description` | monorepo minor version bump |
|
|
| Regular monorepo fix | `fix: description` | monorepo patch version bump |
|
|
|
|
## Files to Reference
|
|
|
|
- `CONTRIBUTING.md` - Full contributor guidelines
|
|
- `packages/abacus-react/README.md` - Package-specific documentation
|
|
- `.github/workflows/publish-abacus-react.yml` - Publishing workflow
|
|
- `packages/abacus-react/.releaserc.json` - Semantic release config
|