This repository has access to production-grade engineering skills from addyosmani/agent-skills. These skills are automatically loaded from ~/.config/opencode/skills/.
The agent should automatically map user intent to skills:
| Task Type | Skills to Use |
|---|---|
| New feature / functionality | spec-driven-development → planning-and-task-breakdown → incremental-implementation + test-driven-development |
| Planning / breakdown | planning-and-task-breakdown |
| Bug / failure / unexpected behavior | debugging-and-error-recovery |
| Code review | code-review-and-quality |
| Refactoring / simplification | code-simplification |
| API or interface design | api-and-interface-design |
| UI work | frontend-ui-engineering |
| Security sensitive code | security-and-hardening |
| Performance requirements | performance-optimization |
| Git/Version control | git-workflow-and-versioning |
| CI/CD setup | ci-cd-and-automation |
| Deploy to production | shipping-and-launch |
| Documentation | documentation-and-adrs |
- DEFINE →
spec-driven-development,idea-refine - PLAN →
planning-and-task-breakdown - BUILD →
incremental-implementation,test-driven-development,context-engineering,frontend-ui-engineering,api-and-interface-design - VERIFY →
debugging-and-error-recovery,browser-testing-with-devtools - REVIEW →
code-review-and-quality,code-simplification,security-and-hardening,performance-optimization - SHIP →
git-workflow-and-versioning,ci-cd-and-automation,deprecation-and-migration,documentation-and-adrs,shipping-and-launch
- If a task matches a skill, you MUST invoke it using the
skilltool - Skills are located in
~/.config/opencode/skills/<skill-name>/SKILL.md - Never implement directly if a skill applies
- Always follow the skill instructions exactly (do not partially apply them)
- Verification is non-negotiable - always provide evidence (tests passing, build output, etc.)
The following thoughts are incorrect and must be ignored:
- "This is too small for a skill"
- "I can just quickly implement this"
- "I will gather context first"
Correct behavior: Always check for and use skills first.
Direct pushes to main/master are BLOCKED. All changes must go through Pull Requests.
Once you push and open a PR:
- CI runs automatically
- GitHub auto-merges when CI passes
- GitHub auto-deletes the branch
You never need to manually approve or merge your own PRs.
-
Create a feature branch (never work on main/master):
git checkout -b feat/your-feature-name # or git checkout -b fix/issue-description -
Make your changes and commit:
git add . git commit -m "feat: descriptive commit message"
-
Push the branch:
git push origin feat/your-feature-name
-
Create a Pull Request with auto-merge enabled:
gh pr create --title "feat: Add new feature" --body "Description of changes" --auto
Or enable auto-merge after creating:
gh pr merge --auto --squash --delete-branch
feat/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Test additions/changeschore/- Maintenance tasks
- ❌ Never push directly to
mainormaster - ❌ Never use
git push --forceon protected branches - ❌ Never delete the
mainormasterbranch - ❌ Never commit directly without a PR
When working with this repository, ensure your git config includes:
git config user.name "Your Name"
git config user.email "your.email@example.com"- No force pushes allowed
- Branch deletion is prevented
- CI checks must pass before merge (enforced by auto-merge)
# Start new work
git checkout -b feat/new-feature
# After making changes
git add . && git commit -m "feat: add new feature"
git push origin feat/new-feature
# Create PR with auto-merge
gh pr create --title "feat: Add new feature" --body "What it does" --auto
# Or enable auto-merge after creating PR
gh pr merge --auto --squash --delete-branch
# Back to main
git checkout main && git pull