gong-fu-cha/CLAUDE.md
Adam Jeniski 42d7b43705 Initial commit: Gong Fu Cha - Tea CLI skills for Claude Code
Add comprehensive Claude Code skills for Gitea's tea CLI tool.

Includes:
- Complete skill documentation (skills/SKILL.md)
- Detailed examples (skills/examples.md)
- User-facing README with installation and usage
- Claude Code instructions (CLAUDE.md)
- Git ignore file

🍵 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 18:52:02 -05:00

227 lines
6.1 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code when working with the Gong Fu Cha repository.
## Repository Purpose
This repository provides Claude Code skills for working with Gitea's `tea` CLI tool. The skills enable seamless interaction with Gitea repositories (like git.ajet.fyi) directly through Claude Code conversations.
## Repository Structure
- **skills/SKILL.md** - Main Claude Code skill definition for the `tea` CLI
- **README.md** - User-facing documentation
- **CLAUDE.md** - This file (Claude Code instructions)
## Tea CLI Overview
The `tea` command-line tool is Gitea's official CLI for interacting with Gitea instances. It provides comprehensive functionality for:
- **Pull Requests**: Create, review, merge, checkout
- **Issues**: Create, edit, close, reopen
- **Releases**: Create, edit, delete, manage assets
- **Labels & Milestones**: Manage project organization
- **Comments**: Add comments to issues/PRs
- **Repositories**: Clone, view details
- **Notifications**: Check and manage notifications
## Key Commands
### Context Detection
Tea automatically detects repository context from the current working directory. It reads `.git/config` to determine the Gitea remote and repository.
### Authentication
Tea uses stored credentials in `$XDG_CONFIG_HOME/tea` (usually `~/.config/tea`). Check authentication with:
```bash
tea whoami
```
### Common Operations
**Pull Requests:**
```bash
tea pr ls # List PRs
tea pr create -t "Title" -d "Description" # Create PR
tea pr checkout 42 # Checkout PR locally
tea pr approve 42 # Approve PR
tea pr merge 42 # Merge PR
```
**Issues:**
```bash
tea issues ls # List issues
tea issues create -t "Title" -d "Body" # Create issue
tea issues close 42 # Close issue
```
**Releases:**
```bash
tea releases ls # List releases
tea releases create --tag v1.0.0 -t "v1.0.0" -n "Release notes"
```
## Important Notes for Claude Code
### Always Check Authentication First
Before running `tea` commands, verify the user is logged in:
```bash
tea whoami
```
If not authenticated, guide the user to run:
```bash
tea login add --url https://git.ajet.fyi
```
### Repository Context
Tea works best when run from within a git repository directory. If tea commands fail with "no repository found", ensure:
1. You're in a git repository directory
2. The repository has a Gitea remote configured
3. Or use `--repo owner/repo` flag to specify repository explicitly
### Output Formats
Tea supports multiple output formats. For machine-readable output, use:
```bash
tea pr ls --output json
tea issues ls -o yaml
```
For user-friendly output, use the default table format or specify:
```bash
tea pr ls --output table
```
### Error Handling
Common errors:
- **"Login not found"**: User needs to run `tea login add`
- **"Repository not found"**: Check repository context or use `--repo` flag
- **"Token expired"**: User needs to refresh OAuth token: `tea login oauth-refresh`
- **"Permission denied"**: Token lacks required scopes
### Help and Documentation
- Use `tea --help` for general help
- Use `tea <command> --help` for command-specific help
- Use `tea man` for comprehensive manual pages
## Development Workflow Integration
### Creating PRs
When helping users create PRs:
1. Ensure changes are committed and pushed
2. Determine base and head branches
3. Generate meaningful PR title and description
4. Use `tea pr create` with appropriate flags
Example:
```bash
tea pr create --title "Feature: Add new capability" \
--description "Detailed description of changes" \
--base main \
--head feature-branch
```
### Managing Issues
When helping users manage issues:
1. List existing issues to check for duplicates
2. Create issues with descriptive titles and labels
3. Link issues to PRs when relevant
Example:
```bash
tea issues create \
--title "Bug: Fix authentication flow" \
--description "Detailed description" \
--labels bug,priority
```
### Release Management
When helping users create releases:
1. Verify the tag doesn't exist
2. Generate release notes from commits
3. Include relevant assets if needed
Example:
```bash
tea releases create \
--tag v1.0.0 \
--title "Version 1.0.0" \
--note "Release notes here" \
--asset ./binary
```
## Best Practices
1. **Always verify repository context** before running tea commands
2. **Check authentication status** with `tea whoami` first
3. **Use descriptive titles and descriptions** for PRs and issues
4. **Apply relevant labels** to improve organization
5. **Check for duplicates** before creating issues
6. **Use appropriate merge strategies** (merge, squash, rebase)
7. **Clean up branches** after merging PRs
## Integration with Other Tools
Tea works well with:
- **git**: For local repository operations
- **gh** (GitHub CLI): Similar workflow for GitHub repos
- **commitly**: For managing commits across multiple repos
## Skill Usage
The `/tea` skill can be invoked explicitly, but Claude Code should also recognize tea-related requests naturally:
- "Create a PR for my changes"
- "List open issues"
- "Review PR #42"
- "Create a release"
Claude should automatically use the tea skill when appropriate for Gitea operations.
## Extending the Skills
When adding new examples or workflows:
1. Test the commands manually first
2. Add to the appropriate section in `skills/SKILL.md`
3. Include both basic and advanced examples
4. Document any prerequisites or gotchas
5. Update this CLAUDE.md if needed
## Common Pitfalls
- **Not in repo directory**: Many tea commands require repository context
- **Missing authentication**: Always check `tea whoami` first
- **Wrong remote**: Tea looks for Gitea remotes, not GitHub/GitLab
- **Insufficient token permissions**: Token needs appropriate scopes
- **Branch not pushed**: Can't create PR for unpushed branches
## Testing
When testing tea commands:
1. Use a test repository when possible
2. Verify authentication first
3. Check repository context
4. Test with dry-run flags when available
5. Verify output format matches expectations