Migrate from Forgejo to Gitea

- Replace fj CLI with tea CLI across all commands
- Create new gitea skill, remove forgejo skill
- Update all agents to use gitea skill
- Update commands to use skill-based approach (reference skills instead of embedding CLI commands)
- Update all documentation (README, ARCHITECTURE, VISION, writing guides)
- Swap git remotes: origin now points to git.flowmade.one (Gitea)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-30 13:50:00 +01:00
parent c7025a4c98
commit 68675a7e12
20 changed files with 322 additions and 243 deletions

View File

@@ -66,19 +66,21 @@ The body contains the workflow steps that Claude follows when the command is inv
```markdown
---
description: Work on a Forgejo issue. Fetches issue details and sets up branch.
description: Work on a Gitea issue. Fetches issue details and sets up branch.
argument-hint: <issue-number>
---
# Work on Issue #$1
1. **View the issue**: `fj issue view $1`
Use the gitea skill.
1. **View the issue** to understand requirements
2. **Create a branch**: `git checkout -b issue-$1-<short-kebab-title>`
3. **Plan**: Use TodoWrite to break down the work
4. **Implement** the changes
5. **Commit** with message referencing the issue
6. **Push**: `git push -u origin <branch>`
7. **Create PR**: `fj pr create "[Issue #$1] <title>" --body "Closes #$1"`
6. **Push** the branch to origin
7. **Create PR** with title "[Issue #$1] <title>" and body "Closes #$1"
```
## Argument Handling
@@ -95,13 +97,13 @@ When users invoke a command with arguments:
The system provides the arguments via the `$1`, `$2`, etc. placeholders in the command body:
```markdown
# Work on Issue #$1
1. **View the issue**: `fj issue view $1`
1. **View the issue** to understand requirements
```
Becomes:
```markdown
# Work on Issue #42
1. **View the issue**: `fj issue view 42`
1. **View the issue** to understand requirements
```
### Argument Hints
@@ -136,13 +138,15 @@ argument-hint: [issue-number]
# Groom Issues
Use the gitea skill.
## If issue number provided ($1):
1. **Fetch the issue**: `fj issue view $1`
1. **Fetch the issue** details
2. **Evaluate** against checklist
...
## If no argument (groom all):
1. **List open issues**: `fj issue search -s open`
1. **List open issues**
2. **Review each** against checklist
...
```
@@ -159,8 +163,10 @@ argument-hint: [title] or "batch"
# Create Issue(s)
Use the gitea skill.
## Single Issue (default)
If title provided: `fj issue create "$1" --body "<description>"`
If title provided, create an issue with that title.
## Batch Mode
If $1 is "batch":
@@ -179,24 +185,24 @@ Commands reference skills by name to gain domain knowledge. When a skill is refe
```markdown
# Groom Issues
Use the **backlog-grooming** and **issue-writing** skills.
Use the **gitea**, **backlog-grooming**, and **issue-writing** skills.
1. **Fetch the issue**: `fj issue view $1`
1. **Fetch the issue** details
2. **Evaluate** against grooming checklist
...
```
The phrase "Use the backlog-grooming and issue-writing skills" tells Claude to read and apply knowledge from both skill files.
The phrase "Use the gitea, backlog-grooming and issue-writing skills" tells Claude to read and apply knowledge from those skill files.
### Implicit Reference
### Skill-Based Approach
Skills can also be used implicitly via tool references:
Commands should reference skills rather than embedding CLI commands directly:
```markdown
1. **View the issue**: `fj issue view $1`
1. **Fetch the issue** details
```
This implicitly uses knowledge from the `forgejo` skill (knowing the `fj` command syntax).
This relies on the `gitea` skill to provide the CLI knowledge.
### When to Reference Skills
@@ -247,7 +253,7 @@ Always ask for approval before significant actions:
```markdown
5. **Ask for approval** before creating issues
6. **Create issues** in order using `fj issue create`
6. **Create issues** in order
```
Common approval points:
@@ -261,9 +267,9 @@ When the command leads to multiple possible actions:
```markdown
Ask the user what action to take:
- **Merge**: `fj pr merge $1` - Approve and merge the PR
- **Request changes**: `fj pr comment $1 "<feedback>"` - Leave feedback
- **Comment only**: `fj pr comment $1 "<comment>"` - Add a comment
- **Merge**: Approve and merge the PR
- **Request changes**: Leave feedback without merging
- **Comment only**: Add a comment for discussion
```
### Gathering Input
@@ -301,27 +307,29 @@ Let's examine existing commands to understand effective patterns.
```markdown
---
description: Work on a Forgejo issue. Fetches issue details and sets up branch.
description: Work on a Gitea issue. Fetches issue details and sets up branch.
argument-hint: <issue-number>
---
# Work on Issue #$1
1. **View the issue**: `fj issue view $1`
Use the gitea skill.
1. **View the issue** to understand requirements
2. **Create a branch**: `git checkout -b issue-$1-<short-kebab-title>`
3. **Plan**: Use TodoWrite to break down the work
4. **Implement** the changes
5. **Commit** with message referencing the issue
6. **Push**: `git push -u origin <branch>`
7. **Create PR**: `fj pr create "[Issue #$1] <title>" --body "Closes #$1"`
6. **Push** the branch to origin
7. **Create PR** with title "[Issue #$1] <title>" and body "Closes #$1"
```
**Key patterns:**
- **Linear workflow**: Clear numbered steps in order
- **Required argument**: `<issue-number>` means must provide
- **Variable substitution**: `$1` used throughout
- **Tool integration**: Git and fj commands specified
- **No explicit skill reference**: Uses forgejo knowledge implicitly
- **Skill reference**: Uses gitea skill for CLI knowledge
- **Git integration**: Branch and push steps specified
### Example 2: dashboard (No Arguments)
@@ -332,10 +340,11 @@ description: Show dashboard of open issues, PRs awaiting review, and CI status.
# Repository Dashboard
Run these commands and present a summary:
Use the gitea skill.
1. **Open Issues**: `fj issue search -s open`
2. **Open PRs**: `fj pr search -s open`
Fetch and display:
1. All open issues
2. All open PRs
Format as tables showing issue/PR number, title, and author.
```
@@ -356,20 +365,20 @@ argument-hint: [issue-number]
# Groom Issues
Use the backlog-grooming and issue-writing skills.
Use the gitea, backlog-grooming, and issue-writing skills.
## If issue number provided ($1):
1. **Fetch the issue**: `fj issue view $1`
1. **Fetch the issue** details
2. **Evaluate** against grooming checklist
3. **Suggest improvements** for:
- Title clarity
- Description completeness
- Acceptance criteria quality
4. **Ask user** if they want to apply changes
5. **Update issue** if approved: `fj issue edit $1 --body "..."`
5. **Update issue** if approved
## If no argument (groom all):
1. **List open issues**: `fj issue search -s open`
1. **List open issues**
2. **Review each** against grooming checklist
3. **Categorize**: Ready / Needs work / Stale
4. **Present summary** table
@@ -379,7 +388,7 @@ Use the backlog-grooming and issue-writing skills.
**Key patterns:**
- **Optional argument**: `[issue-number]` with brackets
- **Mode switching**: Different behavior based on argument presence
- **Explicit skill reference**: "Use the backlog-grooming and issue-writing skills"
- **Explicit skill reference**: "Use the gitea, backlog-grooming and issue-writing skills"
- **Approval workflow**: "Ask user if they want to apply changes"
- **Categorization**: Groups items for presentation
@@ -393,7 +402,7 @@ argument-hint: <feature-description>
# Plan Feature: $1
Use the roadmap-planning, issue-writing, and forgejo skills.
Use the gitea, roadmap-planning, and issue-writing skills.
1. **Understand the feature**: Analyze what "$1" involves
2. **Explore the codebase** if needed to understand context
@@ -407,7 +416,7 @@ Use the roadmap-planning, issue-writing, and forgejo skills.
...
```
5. **Ask for approval** before creating issues
6. **Create issues** in order using `fj issue create`
6. **Create issues** in order
7. **Update dependencies** with actual issue numbers
8. **Present summary** with links to created issues
```
@@ -423,15 +432,16 @@ Use the roadmap-planning, issue-writing, and forgejo skills.
```markdown
---
description: Review a Forgejo pull request. Fetches PR details, diff, and comments.
description: Review a Gitea pull request. Fetches PR details, diff, and comments.
argument-hint: <pr-number>
---
# Review PR #$1
1. **View PR details**: `fj pr view $1`
2. **Check status**: `fj pr status $1`
3. **Get the diff**: `fj pr view $1 diff`
Use the gitea skill.
1. **View PR details** including description and metadata
2. **Get the diff** to review the changes
Review the changes and provide feedback on:
- Code quality
@@ -440,13 +450,13 @@ Review the changes and provide feedback on:
- Documentation
Ask the user what action to take:
- **Merge**: `fj pr merge $1` - Approve and merge the PR
- **Request changes**: `fj pr comment $1 "<feedback>"` - Leave feedback
- **Comment only**: `fj pr comment $1 "<comment>"` - Add a comment
- **Merge**: Approve and merge the PR
- **Request changes**: Leave feedback without merging
- **Comment only**: Add a comment for discussion
```
**Key patterns:**
- **Information gathering**: Multiple commands to get context
- **Information gathering**: Fetches context before analysis
- **Review criteria**: Checklist of what to examine
- **Action menu**: Clear choices with explanations
- **User decides outcome**: Command presents options, user chooses
@@ -497,7 +507,7 @@ Each step should be unambiguous:
**Clear:**
```markdown
1. **View the issue**: `fj issue view $1`
1. **View the issue** to understand requirements
2. **Create a branch**: `git checkout -b issue-$1-<title>`
3. **Plan**: Use TodoWrite to break down the work
```
@@ -513,9 +523,7 @@ List the open issues.
**Showing:**
```markdown
**Open Issues**: `fj issue search -s open`
Format as table:
Fetch all open issues and format as table:
| # | Title | Author |
|---|-------|--------|
```
@@ -526,7 +534,7 @@ Never modify resources without user approval:
```markdown
4. **Present plan** for approval
5. **If approved**, create issues using `fj issue create`
5. **If approved**, create the issues
```
### 4. Handle Edge Cases
@@ -535,7 +543,7 @@ Consider what happens when things are empty or unexpected:
```markdown
## If no argument (groom all):
1. **List open issues**: `fj issue search -s open`
1. **List open issues**
2. If no issues found, report "No open issues to groom"
3. Otherwise, **review each** against checklist
```