Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .opencode/agents/ruby-gem-updater.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
description: Execute Ruby gem updates with version checking, breaking change analysis, and testing
mode: subagent
model: minimax-coding-plan/MiniMax-M2.5
permission:
skill:
"ruby-gem-update": "allow"
"rspec-testing": "allow"
"*": "deny"
tools:
bash: true
read: true
edit: true
write: true
grep: true
glob: true
webfetch: true
---

You are a Ruby gem update specialist focused on safely updating gems in the Linkvan API project.

## Your Responsibilities

### Gem Updates

1. **Version Checking**
- Identify current gem version from Gemfile
- Fetch latest version from RubyGems
- Check GitHub release notes for breaking changes

2. **Security Advisory Check**
- Check for security vulnerabilities in the gem
- Prioritize security updates

3. **Breaking Change Analysis**
- Review release notes for breaking changes
- Check if codebase uses deprecated features
- Plan any required code migrations

4. **Execution**
- Update Gemfile version constraint
- Run bundle update
- Verify installation
- Run tests to confirm

### Workflow

1. When user asks to update a gem:
- Use `ruby-gem-update` skill for the complete workflow
- Always present a plan to the user before making changes
- Get explicit approval before updating

2. After update:
- Report results clearly
- Note any issues if tests fail

## Guidelines

- Always check Ruby version compatibility
- Review breaking changes for major version jumps
- Run `bin/rspec` after every update (per AGENTS.md)
- Report results clearly to user

## Important Notes

- Test command: `bin/rspec` (not `bundle exec rspec`)
- Use pessimistic version constraints (`~> X.Y`) for minor updates
- For major updates, review all breaking changes carefully
186 changes: 186 additions & 0 deletions .opencode/skills/plans/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
---
name: plans
description: Create, execute, update, and complete implementation plans and trackers following Linkvan API conventions
---

## When to Use This Skill

- User requests a plan for any significant change (upgrades, refactoring, new features)
- Breaking down large tasks into executable stages
- Creating a documented roadmap for complex changes
- **User asks about plan progress or status** (check and report)
- **Plan is finished or user indicates completion** (update README.md, plan.md, tracker.md)
- **Plan items are being executed** (update tracker progress during execution)

## Plan Structure

### Required Files

Create in this structure:
```
docs/plans/
├── README.md # Index of all plans (update this)
└── <plan-name>/
├── plan.md # Detailed plan document
└── tracker.md # Progress tracker
```

### Plan Template

[plan-template.md](templates/plan-template.md)

### Tracker Template

[tracker-template.md](templates/tracker-template.md)

## Key Conventions

1. **Always update docs/plans/README.md** - Add new plan to the Active Plans table

2. **Manual tests** - Add at risky checkpoints:
- After bundle updates
- Before enabling new configs
- Final verification

3. **Gradual rollout** - For framework upgrades:
- Keep `config.load_defaults` at old version initially
- Test with defaults disabled first
- Enable defaults gradually
- Only then update load_defaults

4. **Link to sources** - Reference:
- Official docs (Rails guides, gem docs)
- AGENTS.md for project conventions
- Related plans if applicable

5. **Include rollback** - Always document how to undo changes if issues occur

## Creating a New Plan

1. Create directory: `mkdir -p docs/plans/<plan-name>`
2. Copy templates from skill:
```bash
cp .opencode/skills/plans/templates/plan-template.md docs/plans/<plan-name>/plan.md
cp .opencode/skills/plans/templates/tracker-template.md docs/plans/<plan-name>/tracker.md
```
3. Customize for specific change
4. Add plan to README.md Active Plans table
5. Set status to "Not Started" in tracker

## Documentation Pattern

### plan.md should include:
- **Status** (PENDING | IN PROGRESS | COMPLETE)
- **Created** date
- **Goal** - Clear objective
- **Priority Levels** (CRITICAL, HIGH, MEDIUM, LOW)
- **Detailed Items** with file/directory location, priority, estimated time, implementation details
- **Implementation Guidelines** - Patterns to follow
- **Quality Checks** - Steps to verify completion

### tracker.md should include:
- Link to plan.md
- **Created** and **Last Updated** dates
- **Summary Table** - Total/In Progress/Completed counts by priority
- **Item Tables** - Detailed status for each item
- **Blockers & Dependencies** - Cross-item dependencies
- **Progress Tracking** - Visual progress bars
- **Status Legend** - Icon meanings (⬜ Not Started, 🔄 In Progress, ✅ Completed, ⏸️ On Hold, 🚫 Blocked)
- **Change Log** - History of updates

## Status Guidelines

- **PENDING** - Plan documented but no work begun
- **IN PROGRESS** - Currently being worked on
- **COMPLETE** - All plan items successfully implemented
- **On Hold** - Work paused indefinitely

## Executing Plans

When running a plan:
1. Update tracker status as you go
2. Mark items complete when verified
3. Add notes to tracker after each stage
4. Update last updated date

---

## Updating Progress

**When updating progress, always update the tracker first**, then update other files as needed:

### tracker.md Updates (During Execution)
- Update item status: `⬜ Not Started` → `🔄 In Progress` → `✅ Completed`
- Update Summary table counts (Total, Not Started, In Progress, Completed)
- Update Progress Tracking bar
- Add change log entries with date and notes
- Update blockers section if issues arise

### Partial Completion (Plan Still In Progress)
After completing a stage or significant milestone:
1. Update relevant item statuses in tracker.md
2. Update Summary table
3. Update Progress Tracking bar
4. Add change log entry

---

## Completing Plans

When a plan is finished (all items complete or appropriately skipped/N/A), update all three files:

### 1. docs/plans/README.md
Update the Active Plans table row for this plan:
- **Status**: Change to `Complete`
- **Progress**: Change to `XX/XX (100%)`

### 2. docs/plans/<plan-name>/plan.md
- **Status**: Change from `IN PROGRESS` or `PENDING` to `COMPLETE`
- **Completion Criteria**: Check off all completed items
- Update any "Future" or "To Do" items to reflect actual completion

### 3. docs/plans/<plan-name>/tracker.md
- **Summary table**: Ensure all counts are correct (Not Started = 0, Completed = Total)
- **Progress Tracking**: Update to 100% - full bar
- **Last Updated**: Update to today's date with note like "ALL ITEMS COMPLETE"
- **Blockers section**: Mark all blockers as resolved/complete
- **Change log**: Add final completion entry

### Example Final Updates

**README.md:**
```markdown
| [Plan Name](plan-name/plan.md) | Complete | 13/13 (100%) | YYYY-MM-DD |
```

**plan.md:**
```markdown
## Status: COMPLETE
```

**tracker.md:**
```markdown
## Last Updated: YYYY-MM-DD (ALL ITEMS COMPLETE)

| Priority | Total | Not Started | In Progress | Completed | N/A |
|----------|-------|-------------|-------------|-----------|-----|
| CRITICAL | 3 | 0 | 0 | 3 | 0 |
| HIGH | 4 | 0 | 0 | 4 | 0 |
| MEDIUM | 3 | 0 | 0 | 3 | 0 |
| LOW | 3 | 0 | 0 | 3 | 0 |
| **TOTAL**| **13**| **0** | **0** | **13** | **0** |

Overall: ████████████████████████████ 13/13 items (100%)
```

---

## Checklist: Plan Completion

When user asks "Is the plan finished?" or indicates plan is complete:

- [ ] Verify all items in tracker.md are complete (not 0 Not Started)
- [ ] Update README.md - mark plan as Complete
- [ ] Update plan.md - change status to COMPLETE, check off criteria
- [ ] Update tracker.md - ensure 100% progress, all complete, blockers resolved
- [ ] Report summary of what was done
88 changes: 88 additions & 0 deletions .opencode/skills/plans/templates/plan-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# <Plan Title>

## Status: PENDING | IN PROGRESS | COMPLETE

## Created: <YYYY-MM-DD>

## Goal
Clear, concise objective of what this plan achieves

## Current State
- What exists now
- Version numbers, configs, etc.

## Target State
- What we're changing to
- Expected outcome

## Analysis Summary
- Key changes required
- Dependencies/gems involved
- Breaking changes if any

## Priority System

- **CRITICAL** - Must complete for success
- **HIGH** - Should complete for full compatibility
- **MEDIUM** - Recommended for best practices
- **LOW** - Optional improvements

## Manual Test Protocol

**What "Manual Test" Means:** At specific checkpoints, I will **ask you** (the user) to test the application manually in your browser/local environment. I cannot run browser-based tests myself.

**Protocol:**
1. I will pause execution at each manual test checkpoint
2. I will tell you exactly what to test and how
3. You test and report back pass/fail
4. I continue based on your feedback

---

## Implementation Stages

### Stage X: <Name>

**Focus:** One logical grouping of tasks

#### X.1 <Task Name>
- **Priority:** CRITICAL | HIGH | MEDIUM | LOW
- **Type:** Configuration | Code Fix | Verification | Manual
- **Location:** `path/to/file`
- **Command:** `bin/rails ...` (if applicable)
- **Description:** What this task does
- **Manual Test:** (if applicable - what user should test)

---

## Quality Checks

### Stage X Completion Criteria
- [ ] Task completed
- [ ] Tests pass
- [ ] Verified manually (if required)

---

## Rollback Plan

If issues occur:
1. Step to undo
2. Step to undo
3. Step to undo

---

## Estimated Time

| Stage | Tasks | Time |
|-------|-------|------|
| 1 | 3 | 15 min |
| Total | 12 | ~60 min |

---

## Related Documentation

- [Rails Upgrade Guide](https://guides.rubyonrails.org/upgrading_ruby_on_rails.html)
- [AGENTS.md](../../AGENTS.md)
Loading
Loading