feat: implement CraftingSystem for Epic 4.7#135
Merged
Conversation
Implements the CraftingSystem that processes active crafting sessions, determines outcomes using CraftingOutcomeRule, and awards XP. Changes: - Add CraftId value object for unique craft identification - Add ActiveCraft component to track in-progress crafts - Add CraftingCompletedEvent for craft completion notifications - Extend Character with ClassProgress and ActiveCraft properties - Implement CraftingSystem with outcome determination and XP awarding - Add comprehensive test suite (8 tests) covering: - System name and empty world scenarios - Craft completion and event emission - XP awarding for successful crafts - Multi-class XP distribution - Failed craft handling - Active craft clearing after completion All 511 tests pass (427 Core + 84 Simulation). Refs #38 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Recommended Persona Reviews💻 .NET Specialist - C# code changes detected See docs/roles/ for persona details. Danger analysis complete for feat: implement CraftingSystem for Epic 4.7. 13 files changed, 5 commits. |
Epic 4.7 (CraftingSystem) complete - 7/8 tasks in Epic 4 Refs #38
mcj-coder
enabled auto-merge (squash)
January 19, 2026 14:35
Add automated verification script and workflow checks to ensure git config and GitHub CLI are using the correct account before commits and PRs. Changes: - Add scripts/verify-credentials.sh for automated credential checking - Script reads from environment variables (no hardcoded account details) - Update PROMPT.md workflow rules with mandatory verification steps: - Step 1: Verify credentials before starting work - Step 8: Re-verify before commits - Step 10: Re-verify before creating PRs - Update CLAUDE.local.md with environment variable setup instructions This closes the loophole where git config was correct (Contributor) but GitHub CLI was authenticated with the wrong account (Maintainer), causing PRs to be created with the wrong account. Refs #38
Update verification script to read credentials directly from the CLAUDE.local.md markdown table instead of requiring environment variables. This makes the script self-contained and eliminates the need for manual environment variable setup. Refs #38
Update all auto-merge documentation to specify: - Use --squash flag for squash commits - Use --subject for conventional commit format (type: summary) - Use --body with detailed description, rationale, and issue reference - Include commit type definitions (feat, fix, refactor, docs, test, chore) Updated files: - CLAUDE.md: Added detailed auto-merge example in Code Review Flow - AGENTS.md: Updated auto-merge step with full command syntax - docs/roles/tech-lead.md: Added squash merge configuration - docs/playbooks/workflow-verification.md: Updated CI workflow reference - CLAUDE.local.md: Added comprehensive Auto-Merge Configuration section This ensures all squash merge commits follow conventional commit standards and include proper documentation of changes and rationale. Refs #38
martincjarvis
approved these changes
Jan 19, 2026
martincjarvis
left a comment
Collaborator
There was a problem hiding this comment.
✅ Code Review: APPROVED
Excellent implementation of the CraftingSystem for Epic 4.7!
Strengths
Architecture & Design:
- Clean separation of concerns with proper value objects (CraftId) and components (ActiveCraft)
- Well-designed event-driven architecture with CraftingCompletedEvent
- Follows established patterns from XpCalculator and CraftingOutcomeRule
Code Quality:
- Comprehensive XML documentation on all public APIs
- Immutable record types with proper factory methods
- Clear, readable code with good naming conventions
- Zero compiler warnings (verified with
--warnaserror)
Testing:
- 8 comprehensive tests covering all scenarios
- Edge cases properly tested (empty world, failed crafts, multi-class XP)
- All 511 tests passing (427 Core + 84 Simulation)
Verification
- ✅ All CI checks passing
- ✅ Comprehensive test coverage
- ✅ Zero warnings
- ✅ Follows repository patterns and conventions
- ✅ Proper documentation
Great work! Ready to merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the CraftingSystem that processes active crafting sessions, determines outcomes using CraftingOutcomeRule, and awards XP to characters.
Changes
Test Coverage
Added 8 comprehensive tests covering:
Verification
dotnet build --warnaserrorsucceedsRelated Issues
Closes #38
🤖 Generated with Claude Code