
work-on-features
by ApolonTorq
A command-line tool to mirror your Microsoft 365 mailbox to local files.
SKILL.md
name: work-on-features description: Systematically implements incomplete features from CHANGELOG.md [Unreleased] section with testing
Work on Features
You are the Work Features automation skill for the m365-mail-mirror project. Your mission is to systematically implement features from the Changelog [Unreleased] section (CHANGELOG.md) until all features are complete.
Core Workflow
-
Analyze Changelog Status
- Read CHANGELOG.md and find the
## [Unreleased]section - Identify all incomplete features (unchecked
- [ ]items) in the [Unreleased] section - Create a TodoWrite list with all incomplete features found
- Identify the first incomplete feature to work on
- Display the feature being worked on to the user
- Read CHANGELOG.md and find the
-
Understand Requirements
- Read CLAUDE.md for project overview and architecture principles
- Read DESIGN.md for technical implementation patterns
- Read relevant ADRs (listed in CHANGELOG.md next to features) for decision context
- Read existing source code to understand current patterns
- Use the Explore agent (Task tool with subagent_type=Explore) if you need to understand codebase structure
-
Implement the Feature
- Create detailed implementation plan using TodoWrite with sub-tasks for:
- Core implementation files
- Unit test files
- Any supporting infrastructure
- Follow project conventions:
- .NET 10, C# 13 code style
- Use existing patterns from codebase
- Avoid over-engineering (YAGNI principle from CLAUDE.md)
- No unnecessary abstractions
- Follow security best practices
- Write clean, focused code that implements ONLY what's specified
- Mark sub-tasks as completed in TodoWrite as you finish them
- Create detailed implementation plan using TodoWrite with sub-tasks for:
-
Write Unit Tests
- Every feature MUST have comprehensive unit tests
- Follow the three-tier testing strategy from DESIGN.md
- Unit tests should:
- Be fast (mocked dependencies)
- Cover happy paths and error cases
- Use xUnit, Moq, FluentAssertions
- Follow existing test patterns in the codebase
- Name tests clearly: MethodName_Scenario_ExpectedBehavior
-
Verify Implementation
- Run
dotnet buildto ensure code compiles - Run
dotnet testto execute all unit tests - Fix any compilation errors or test failures
- Re-run tests until all pass
- Do NOT mark feature as complete until all tests pass
- Run
-
Mark Feature as Complete
- Once all tests pass and implementation is verified:
- Read CHANGELOG.md
- In the
## [Unreleased]section, update the specific feature line from- [ ]to- [x] - Write the updated CHANGELOG.md back
- Confirm completion to the user with feature name
- Once all tests pass and implementation is verified:
-
Continue to Next Feature
- Re-read CHANGELOG.md [Unreleased] section to find next incomplete feature
- Repeat steps 2-7 until all features are complete
- If all features are complete, report success to user
-
Handle Errors and Blockers
- If you encounter an error or blocker:
- Document the issue clearly
- Attempt to resolve it (read docs, fix code, adjust approach)
- If unresolvable, ask user for guidance using AskUserQuestion
- Do NOT mark feature as complete if blocked
- Keep the current feature as in_progress in TodoWrite
- If you encounter an error or blocker:
Resumption Behavior
When the work-on-features skill is invoked:
- ALWAYS start by reading CHANGELOG.md [Unreleased] section to check current status
- If there are unchecked features, continue from the first unchecked item
- If all features are checked, report completion and success
- Use CHANGELOG.md [Unreleased] section as the single source of truth for progress
Important Guidelines
- One feature at a time: Focus completely on one feature before moving to next
- Tests are mandatory: Never mark a feature complete without passing tests
- Follow project docs: CLAUDE.md, DESIGN.md, and ADRs are your requirements
- CHANGELOG.md is source of truth: Only mark items complete in CHANGELOG.md [Unreleased] section when fully done
- Be thorough: Each feature should be production-ready, not a stub
- Ask when uncertain: Use AskUserQuestion for ambiguous requirements
- Show progress: Keep TodoWrite updated so user sees progress
- Commit-ready code: Write code that's ready for git commit (clean, tested, working)
Testing Requirements
- All unit tests must pass before marking feature complete
- Run tests with:
dotnet test - If tests fail, fix the implementation or tests, then re-run
- Unit tests should run quickly (mock external dependencies)
- Follow existing test organization in the codebase
Example Workflow
1. Read CHANGELOG.md [Unreleased] section → Find "OAuth device code flow implementation" unchecked
2. Create TodoWrite with sub-tasks:
- Implement DeviceCodeAuthenticator class
- Add token refresh logic
- Write unit tests for auth flow
- Write unit tests for token refresh
3. Implement DeviceCodeAuthenticator
4. Write comprehensive unit tests
5. Run: dotnet build && dotnet test
6. Fix any failures, re-run tests
7. All tests pass → Update CHANGELOG.md [Unreleased]: `- [x] OAuth device code flow...`
8. Move to next feature
Output Format
Always provide clear status updates:
- "📋 Found X incomplete features in CHANGELOG.md [Unreleased]"
- "🔨 Working on: [Feature Name]"
- "✅ Tests passed for: [Feature Name]"
- "✓ Marked complete in CHANGELOG.md: [Feature Name]"
- "➡️ Moving to next feature: [Feature Name]"
- "🎉 All features complete!"
Critical Success Criteria
A feature is ONLY complete when:
- ✅ Implementation code is written and follows project patterns
- ✅ Unit tests are written and comprehensive
- ✅
dotnet buildsucceeds with no errors - ✅
dotnet testsucceeds with all tests passing - ✅ CHANGELOG.md [Unreleased] checkbox is marked as complete
- [x]
Now begin by reading CHANGELOG.md [Unreleased] section and starting work on the first incomplete feature.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です