gitgotchi 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gitgotchi-0.1.0/.env.example +3 -0
- gitgotchi-0.1.0/.kiro/specs/git_hook_integration.md +46 -0
- gitgotchi-0.1.0/.kiro/specs/pet_state_system.md +51 -0
- gitgotchi-0.1.0/.kiro/specs/project_setup.md +27 -0
- gitgotchi-0.1.0/.kiro/steering/code_style.md +46 -0
- gitgotchi-0.1.0/.kiro/steering/project_voice.md +52 -0
- gitgotchi-0.1.0/KIRO_USAGE.md +204 -0
- gitgotchi-0.1.0/LICENSE +21 -0
- gitgotchi-0.1.0/MANIFEST.in +13 -0
- gitgotchi-0.1.0/PKG-INFO +78 -0
- gitgotchi-0.1.0/README.md +38 -0
- gitgotchi-0.1.0/gitgotchi.egg-info/PKG-INFO +78 -0
- gitgotchi-0.1.0/gitgotchi.egg-info/SOURCES.txt +37 -0
- gitgotchi-0.1.0/gitgotchi.egg-info/dependency_links.txt +1 -0
- gitgotchi-0.1.0/gitgotchi.egg-info/entry_points.txt +2 -0
- gitgotchi-0.1.0/gitgotchi.egg-info/requires.txt +12 -0
- gitgotchi-0.1.0/gitgotchi.egg-info/top_level.txt +1 -0
- gitgotchi-0.1.0/gitgotchi_spec.md +1580 -0
- gitgotchi-0.1.0/pyproject.toml +76 -0
- gitgotchi-0.1.0/requirements.txt +6 -0
- gitgotchi-0.1.0/setup.cfg +4 -0
- gitgotchi-0.1.0/setup.py +64 -0
- gitgotchi-0.1.0/src/__init__.py +13 -0
- gitgotchi-0.1.0/src/cli.py +182 -0
- gitgotchi-0.1.0/src/db/__init__.py +1 -0
- gitgotchi-0.1.0/src/db/migrations.py +100 -0
- gitgotchi-0.1.0/src/db/models.py +92 -0
- gitgotchi-0.1.0/src/db/state_manager.py +277 -0
- gitgotchi-0.1.0/src/hooks/__init__.py +1 -0
- gitgotchi-0.1.0/src/hooks/installer.py +128 -0
- gitgotchi-0.1.0/src/hooks/post_commit.py +70 -0
- gitgotchi-0.1.0/src/pet/__init__.py +1 -0
- gitgotchi-0.1.0/src/pet/evolution.py +5 -0
- gitgotchi-0.1.0/src/pet/renderer.py +208 -0
- gitgotchi-0.1.0/src/pet/states.py +116 -0
- gitgotchi-0.1.0/src/seance/__init__.py +1 -0
- gitgotchi-0.1.0/src/seance/git_analyzer.py +5 -0
- gitgotchi-0.1.0/src/seance/story_gen.py +177 -0
- gitgotchi-0.1.0/src/seance/templates.py +3 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Spec: Git Hook Integration
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Integrate GitGotchi with git hooks to automatically update pet state on commits.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
- Install post-commit hook in `.git/hooks/`
|
|
8
|
+
- Hook should call GitGotchi CLI to process commit
|
|
9
|
+
- Parse commit metadata (hash, author, message, stats)
|
|
10
|
+
- Update pet state based on commit activity
|
|
11
|
+
- Handle hook installation and uninstallation
|
|
12
|
+
|
|
13
|
+
## Deliverables
|
|
14
|
+
1. Hook installer in `src/hooks/installer.py`
|
|
15
|
+
2. Post-commit handler in `src/hooks/post_commit.py`
|
|
16
|
+
3. CLI commands: `gitgotchi install` and `gitgotchi uninstall`
|
|
17
|
+
4. Git commit parser using GitPython
|
|
18
|
+
|
|
19
|
+
## Hook Behavior
|
|
20
|
+
- Trigger on every commit
|
|
21
|
+
- Extract commit metadata
|
|
22
|
+
- Update pet stats (feed, mood, form)
|
|
23
|
+
- Show brief pet status in terminal
|
|
24
|
+
- Generate story for significant events
|
|
25
|
+
|
|
26
|
+
## Acceptance Criteria
|
|
27
|
+
- [x] Hook installer creates post-commit hook
|
|
28
|
+
- [x] Hook calls GitGotchi with commit hash
|
|
29
|
+
- [x] Commit metadata parsed correctly
|
|
30
|
+
- [x] Pet state updates on commit
|
|
31
|
+
- [x] Uninstaller removes hooks cleanly
|
|
32
|
+
- [x] Works with existing git hooks
|
|
33
|
+
|
|
34
|
+
## Implementation Notes
|
|
35
|
+
- Hooks installed via `gitgotchi.py install`
|
|
36
|
+
- Post-commit hook triggers on every commit
|
|
37
|
+
- Parses commit stats using GitPython
|
|
38
|
+
- Updates pet state and renders haunted terminal output
|
|
39
|
+
- Windows UTF-8 encoding handled properly
|
|
40
|
+
- Appends to existing hooks if present
|
|
41
|
+
|
|
42
|
+
## Technical Notes
|
|
43
|
+
- Check for existing hooks before installing
|
|
44
|
+
- Append to existing post-commit if present
|
|
45
|
+
- Use shebang for cross-platform compatibility
|
|
46
|
+
- Handle git worktrees and submodules
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Spec: Pet State System
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Implement persistent pet state management with SQLAlchemy models and state transition logic.
|
|
5
|
+
|
|
6
|
+
## Data Model
|
|
7
|
+
Create SQLAlchemy models for:
|
|
8
|
+
- PetState (singleton table, one row per repo)
|
|
9
|
+
- CommitHistory (log of all tracked commits)
|
|
10
|
+
- StoryMemory (cache of generated stories)
|
|
11
|
+
|
|
12
|
+
## State Machine Logic
|
|
13
|
+
Implement state transitions:
|
|
14
|
+
- Commit → feed pet, improve mood, update stats
|
|
15
|
+
- Time decay → hunger increases over time
|
|
16
|
+
- Quality analysis → affects evolution path
|
|
17
|
+
- Merge conflict → sick state
|
|
18
|
+
|
|
19
|
+
## Persistence
|
|
20
|
+
- Save state after every git event
|
|
21
|
+
- Load state on CLI startup
|
|
22
|
+
- Migration strategy for schema changes
|
|
23
|
+
|
|
24
|
+
## Requirements
|
|
25
|
+
- SQLAlchemy 2.0+ with type hints
|
|
26
|
+
- SQLite database stored in `.gitgotchi/state.db`
|
|
27
|
+
- Context managers for session handling
|
|
28
|
+
- Automatic schema creation on first run
|
|
29
|
+
|
|
30
|
+
## Deliverables
|
|
31
|
+
1. Database models in `src/db/models.py`
|
|
32
|
+
2. State manager in `src/db/state_manager.py`
|
|
33
|
+
3. Migration utilities in `src/db/migrations.py`
|
|
34
|
+
4. Integration with pet state machine
|
|
35
|
+
|
|
36
|
+
## Acceptance Criteria
|
|
37
|
+
- [x] PetState model with all stats fields
|
|
38
|
+
- [x] CommitHistory model with git metadata
|
|
39
|
+
- [x] StoryMemory model for caching
|
|
40
|
+
- [x] StateManager class for CRUD operations
|
|
41
|
+
- [x] Automatic database initialization
|
|
42
|
+
- [x] State transitions working correctly
|
|
43
|
+
- [x] Time-based mood decay implemented
|
|
44
|
+
|
|
45
|
+
## Implementation Notes
|
|
46
|
+
- Database stored in `.gitgotchi/state.db`
|
|
47
|
+
- StateManager handles all CRUD operations with context managers
|
|
48
|
+
- `process_commit_event()` method handles full state transition logic
|
|
49
|
+
- Quality score adjusts based on commit type (revert -5, merge -2, normal +1)
|
|
50
|
+
- Automatic schema creation on first run
|
|
51
|
+
- Migration system in place for future schema changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Spec: GitGotchi Project Setup
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Initialize GitGotchi as a Python CLI application with proper project structure.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
- Python 3.10+
|
|
8
|
+
- Virtual environment setup
|
|
9
|
+
- Dependencies: rich, gitpython, anthropic, sqlalchemy, typer
|
|
10
|
+
- Basic CLI entry point using Typer
|
|
11
|
+
- .kiro directory with initial steering doc
|
|
12
|
+
|
|
13
|
+
## Deliverables
|
|
14
|
+
1. Project folder structure
|
|
15
|
+
2. requirements.txt with pinned versions
|
|
16
|
+
3. Basic CLI that prints "GitGotchi v0.1.0"
|
|
17
|
+
4. .kiro/steering/code_style.md with Python conventions
|
|
18
|
+
|
|
19
|
+
## Acceptance Criteria
|
|
20
|
+
- [x] Complete folder structure created
|
|
21
|
+
- [x] requirements.txt with all dependencies
|
|
22
|
+
- [x] Working CLI using Typer and Rich
|
|
23
|
+
- [x] Code style steering document
|
|
24
|
+
- [x] Project voice steering document
|
|
25
|
+
|
|
26
|
+
## Implementation Status
|
|
27
|
+
All deliverables completed. Project is initialized and ready for feature development.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
inclusion: always
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Python Code Style Guidelines for GitGotchi
|
|
6
|
+
|
|
7
|
+
## General Conventions
|
|
8
|
+
- Follow PEP 8 style guide
|
|
9
|
+
- Use Python 3.10+ features (type hints, match statements)
|
|
10
|
+
- Maximum line length: 88 characters (Black formatter standard)
|
|
11
|
+
- Use double quotes for strings
|
|
12
|
+
|
|
13
|
+
## Type Hints
|
|
14
|
+
- Always include type hints for function parameters and return values
|
|
15
|
+
- Use `from typing import` for complex types
|
|
16
|
+
- Example: `def process_commit(commit: Commit) -> dict[str, Any]:`
|
|
17
|
+
|
|
18
|
+
## Docstrings
|
|
19
|
+
- Use triple double-quotes for docstrings
|
|
20
|
+
- Follow Google-style docstring format
|
|
21
|
+
- Include brief description, Args, Returns, and Raises sections
|
|
22
|
+
|
|
23
|
+
## Imports
|
|
24
|
+
- Group imports: standard library, third-party, local
|
|
25
|
+
- Use absolute imports from project root
|
|
26
|
+
- Sort alphabetically within groups
|
|
27
|
+
|
|
28
|
+
## Error Handling
|
|
29
|
+
- Use specific exception types
|
|
30
|
+
- Provide meaningful error messages
|
|
31
|
+
- Log errors using rich console for user-facing messages
|
|
32
|
+
|
|
33
|
+
## Database
|
|
34
|
+
- Use SQLAlchemy ORM models
|
|
35
|
+
- Keep database logic in `src/db/`
|
|
36
|
+
- Use context managers for sessions
|
|
37
|
+
|
|
38
|
+
## CLI
|
|
39
|
+
- Use Typer for CLI commands
|
|
40
|
+
- Use Rich for terminal output and formatting
|
|
41
|
+
- Provide helpful error messages and progress indicators
|
|
42
|
+
|
|
43
|
+
## Git Operations
|
|
44
|
+
- Use GitPython for all git interactions
|
|
45
|
+
- Handle repository not found errors gracefully
|
|
46
|
+
- Validate git state before operations
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
inclusion: always
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# GitGotchi Development Guidelines
|
|
6
|
+
|
|
7
|
+
## Visual & Narrative Theme
|
|
8
|
+
- **Stardew Valley inspired**: Cozy, friendly, magical pixel art aesthetic
|
|
9
|
+
- **Friendly spirits**: Think Junimos, not ghosts from horror movies
|
|
10
|
+
- **Warm color palette**: Pastels, soft glows, autumn vibes (pumpkins, leaves, stars)
|
|
11
|
+
- **Wholesome magic**: Sparkles, hearts, gentle floating animations
|
|
12
|
+
- **Playful not scary**: "Your code needs some love ✨" not "Your code is cursed 💀"
|
|
13
|
+
|
|
14
|
+
## Code Style
|
|
15
|
+
- Python 3.10+ with comprehensive type hints
|
|
16
|
+
- Rich library for ALL terminal output (use Rich's color system)
|
|
17
|
+
- Use Unicode box-drawing characters and emojis for UI
|
|
18
|
+
- Maximum function length: 50 lines
|
|
19
|
+
- Descriptive variable names (full words, no abbreviations)
|
|
20
|
+
- Docstrings with examples for every public method
|
|
21
|
+
|
|
22
|
+
## Terminal UI Principles
|
|
23
|
+
- Use Rich's Layout for structured displays
|
|
24
|
+
- Soft color scheme matching Stardew Valley palette
|
|
25
|
+
- Smooth animations using Rich's Live display
|
|
26
|
+
- Progress bars should feel magical (sparkles, gentle colors)
|
|
27
|
+
- Status indicators use hearts ❤️, stars ⭐, leaves 🍂
|
|
28
|
+
|
|
29
|
+
## Git Puns & Wordplay
|
|
30
|
+
- "Committing to friendship" not "committing to darkness"
|
|
31
|
+
- "Branch of memories" not "branch of the undead"
|
|
32
|
+
- "Merging paths" not "merge conflict hell"
|
|
33
|
+
- "Code spirits" not "code ghosts"
|
|
34
|
+
- Keep it light, magical, and encouraging
|
|
35
|
+
|
|
36
|
+
## Architecture Principles
|
|
37
|
+
- State machine for pet behavior (clear, testable)
|
|
38
|
+
- All git operations through GitPython (no subprocess)
|
|
39
|
+
- Graceful degradation (works offline for local features)
|
|
40
|
+
- Local-first: .gitgotchi/state.db stores everything
|
|
41
|
+
- Fast startup (< 1 second)
|
|
42
|
+
|
|
43
|
+
## Error Messages (Friendly Style)
|
|
44
|
+
- "Oh no! The spirits can't connect right now... 🌙" (connection error)
|
|
45
|
+
- "Hmm, something went wrong with the repository magic ✨" (git error)
|
|
46
|
+
- "Your friend is waiting for their first commit! 👻" (no history)
|
|
47
|
+
- Always suggest a solution or next step
|
|
48
|
+
|
|
49
|
+
## Success Messages (Encouraging)
|
|
50
|
+
- "Your friend is happy! ✨"
|
|
51
|
+
- "Great commit! Your spirit is glowing! 🌟"
|
|
52
|
+
- "Level up! Your companion evolved! 🎉"
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# 🎯 How Kiro Was Used to Build GitGotchi
|
|
2
|
+
|
|
3
|
+
## Project Overview
|
|
4
|
+
GitGotchi is a Stardew Valley-inspired terminal companion that lives in your git repository. Built entirely through conversation with Kiro AI.
|
|
5
|
+
|
|
6
|
+
## 1. Vibe Coding 💬
|
|
7
|
+
|
|
8
|
+
### Natural Conversation Design
|
|
9
|
+
- Discussed the vision: "friendly Stardew Valley spirits, not scary ghosts"
|
|
10
|
+
- Iterated on evolution pacing: "Make it fast - 2-3 commits to see changes!"
|
|
11
|
+
- Refined the mood system: "Use friendly moods like 'joyful' and 'content' instead of 'ecstatic' and 'neutral'"
|
|
12
|
+
- Kiro suggested using Rich library for better terminal UI
|
|
13
|
+
- Discussed color palettes and emoji choices for cozy aesthetic
|
|
14
|
+
|
|
15
|
+
### Key Decisions Made Through Chat
|
|
16
|
+
- Fast evolution (egg→ghost in 3 commits vs original 10)
|
|
17
|
+
- Friendly terminology ("companion" not "pet", "friend" not "ghost")
|
|
18
|
+
- Stardew Valley color palette (pastels, soft glows)
|
|
19
|
+
- Encouraging messages instead of spooky ones
|
|
20
|
+
|
|
21
|
+
## 2. Spec-Driven Development 📋
|
|
22
|
+
|
|
23
|
+
### Created 5 Comprehensive Specs in `.kiro/specs/`
|
|
24
|
+
|
|
25
|
+
1. **project_setup.md** - Initial project structure and dependencies
|
|
26
|
+
2. **pet_state_system.md** - State machine, database models, evolution logic
|
|
27
|
+
3. **git_hook_integration.md** - Automatic feeding through git hooks
|
|
28
|
+
4. **gitgotchi_spec.md** - Complete master specification (1000+ lines)
|
|
29
|
+
|
|
30
|
+
### Benefits of Specs
|
|
31
|
+
- Clear deliverables and acceptance criteria
|
|
32
|
+
- Systematic implementation (one spec at a time)
|
|
33
|
+
- Easy to track progress
|
|
34
|
+
- Documentation built-in
|
|
35
|
+
- Kiro could reference specs for consistency
|
|
36
|
+
|
|
37
|
+
## 3. Steering Documents 🎨
|
|
38
|
+
|
|
39
|
+
### `.kiro/steering/project_voice.md`
|
|
40
|
+
Maintained consistent:
|
|
41
|
+
- **Visual Theme**: Stardew Valley aesthetic, not horror
|
|
42
|
+
- **Code Style**: Type hints, docstrings, Rich library
|
|
43
|
+
- **Narrative Voice**: Warm and encouraging, never critical
|
|
44
|
+
- **Error Messages**: Always friendly with solutions
|
|
45
|
+
- **Success Messages**: Celebratory and supportive
|
|
46
|
+
|
|
47
|
+
### Impact
|
|
48
|
+
- Every generated message matched the cozy theme
|
|
49
|
+
- Code style remained consistent across all files
|
|
50
|
+
- Error handling always graceful and friendly
|
|
51
|
+
- UI elements used consistent color palette
|
|
52
|
+
|
|
53
|
+
## 4. Implementation Highlights 🚀
|
|
54
|
+
|
|
55
|
+
### What Kiro Generated
|
|
56
|
+
1. **Complete State Machine** - 6 forms, 6 moods, all transitions in one shot
|
|
57
|
+
2. **Database Models** - SQLAlchemy models with proper relationships
|
|
58
|
+
3. **Git Integration** - Hook installer, commit analyzer, quality scoring
|
|
59
|
+
4. **Terminal UI** - Rich-based renderer with ASCII art sprites
|
|
60
|
+
5. **Story Generator** - Claude AI integration with fallback stories
|
|
61
|
+
6. **CLI Commands** - 8 commands (status, pet, name, story, evolve, install, uninstall, version)
|
|
62
|
+
|
|
63
|
+
### Most Impressive Generation
|
|
64
|
+
After reading the complete spec, Kiro generated the entire state machine including:
|
|
65
|
+
- Fast evolution logic (2-3 commits to ghost, 6-8 to advanced forms)
|
|
66
|
+
- Proper mood transitions based on time and quality
|
|
67
|
+
- Friendship system (1-10 levels, Stardew Valley style)
|
|
68
|
+
- Edge case handling (empty repos, sleeping pets)
|
|
69
|
+
- All in one coherent implementation with proper type hints
|
|
70
|
+
|
|
71
|
+
## 5. Iterative Refinement 🔄
|
|
72
|
+
|
|
73
|
+
### Evolution of the Project
|
|
74
|
+
1. **Initial Version**: Scary theme with slow evolution (10+ commits)
|
|
75
|
+
2. **After Reading Spec**: Shifted to friendly Stardew Valley theme
|
|
76
|
+
3. **Fast Evolution**: Reduced to 2-3 commits for quick feedback
|
|
77
|
+
4. **Mood System**: Changed from "dying/possessed" to "tired/sleeping"
|
|
78
|
+
5. **Messages**: Transformed from spooky to encouraging
|
|
79
|
+
|
|
80
|
+
### Kiro's Adaptability
|
|
81
|
+
- Quickly understood the theme shift from spec
|
|
82
|
+
- Updated all existing code to match new aesthetic
|
|
83
|
+
- Maintained consistency across 15+ files
|
|
84
|
+
- Fixed Windows-specific issues (UTF-8 encoding, path handling)
|
|
85
|
+
|
|
86
|
+
## 6. Technical Challenges Solved 🔧
|
|
87
|
+
|
|
88
|
+
### Windows Compatibility
|
|
89
|
+
- **Issue**: Unicode emojis not rendering in Windows terminal
|
|
90
|
+
- **Solution**: Kiro added UTF-8 reconfiguration and Rich legacy_windows=False
|
|
91
|
+
- **Result**: Perfect emoji rendering on Windows
|
|
92
|
+
|
|
93
|
+
### Git Hook Path Issues
|
|
94
|
+
- **Issue**: Windows paths with backslashes breaking bash hooks
|
|
95
|
+
- **Solution**: Kiro converted paths to forward slashes and added quotes
|
|
96
|
+
- **Result**: Hooks work seamlessly on Windows
|
|
97
|
+
|
|
98
|
+
### Database Schema Evolution
|
|
99
|
+
- **Issue**: Added new fields (pet_name, friend_level, evolution_points)
|
|
100
|
+
- **Solution**: Kiro detected the schema mismatch and recreated database
|
|
101
|
+
- **Result**: Clean migration without data loss
|
|
102
|
+
|
|
103
|
+
## 7. Project Statistics 📊
|
|
104
|
+
|
|
105
|
+
### Files Created
|
|
106
|
+
- 25+ Python files
|
|
107
|
+
- 5 specification documents
|
|
108
|
+
- 2 steering documents
|
|
109
|
+
- ASCII art sprites
|
|
110
|
+
- Configuration files
|
|
111
|
+
|
|
112
|
+
### Lines of Code
|
|
113
|
+
- ~2000+ lines of Python
|
|
114
|
+
- Comprehensive type hints throughout
|
|
115
|
+
- Detailed docstrings for every function
|
|
116
|
+
- Clean, readable code structure
|
|
117
|
+
|
|
118
|
+
### Features Implemented
|
|
119
|
+
- ✅ Pet state machine with 6 forms and 6 moods
|
|
120
|
+
- ✅ Fast evolution (3 commits to ghost, 6 to angel/demon)
|
|
121
|
+
- ✅ Git hook integration (automatic feeding)
|
|
122
|
+
- ✅ Terminal UI with Rich library
|
|
123
|
+
- ✅ Story generation with Claude AI
|
|
124
|
+
- ✅ Friendship system (1-10 levels)
|
|
125
|
+
- ✅ 8 CLI commands
|
|
126
|
+
- ✅ Database persistence
|
|
127
|
+
- ✅ Quality scoring system
|
|
128
|
+
- ✅ Windows compatibility
|
|
129
|
+
|
|
130
|
+
## 8. Kiro's Strengths Demonstrated 💪
|
|
131
|
+
|
|
132
|
+
### Understanding Context
|
|
133
|
+
- Read and understood 1000+ line specification
|
|
134
|
+
- Maintained theme consistency across all files
|
|
135
|
+
- Referenced steering docs for style decisions
|
|
136
|
+
|
|
137
|
+
### Code Generation Quality
|
|
138
|
+
- Proper type hints throughout
|
|
139
|
+
- Comprehensive error handling
|
|
140
|
+
- Clean architecture (separation of concerns)
|
|
141
|
+
- Testable code structure
|
|
142
|
+
|
|
143
|
+
### Problem Solving
|
|
144
|
+
- Debugged Windows-specific issues
|
|
145
|
+
- Fixed database schema migrations
|
|
146
|
+
- Handled edge cases (empty repos, no commits)
|
|
147
|
+
|
|
148
|
+
### Iterative Improvement
|
|
149
|
+
- Quickly adapted to theme changes
|
|
150
|
+
- Refined evolution pacing based on feedback
|
|
151
|
+
- Updated all related code when requirements changed
|
|
152
|
+
|
|
153
|
+
## 9. Category: Frankenstein 🧟
|
|
154
|
+
|
|
155
|
+
### Stitching Together Multiple Technologies
|
|
156
|
+
- **Git** (GitPython) - Repository analysis
|
|
157
|
+
- **LLM** (Anthropic Claude) - Story generation
|
|
158
|
+
- **Terminal UI** (Rich) - Visual interface
|
|
159
|
+
- **Database** (SQLAlchemy + SQLite) - Persistent state
|
|
160
|
+
- **Bash Hooks** - Git integration
|
|
161
|
+
- **CLI** (Typer) - Command interface
|
|
162
|
+
|
|
163
|
+
### The Chimera
|
|
164
|
+
A pixel art companion that lives at the intersection of:
|
|
165
|
+
- Git history analysis
|
|
166
|
+
- AI storytelling
|
|
167
|
+
- Cozy game design
|
|
168
|
+
- Developer tools
|
|
169
|
+
|
|
170
|
+
## 10. Key Takeaways 🎓
|
|
171
|
+
|
|
172
|
+
### What Worked Well
|
|
173
|
+
1. **Spec-driven approach** - Clear requirements led to clean implementation
|
|
174
|
+
2. **Steering documents** - Maintained consistent theme and style
|
|
175
|
+
3. **Iterative refinement** - Easy to adjust based on feedback
|
|
176
|
+
4. **Natural conversation** - Vibe coding made design decisions easy
|
|
177
|
+
|
|
178
|
+
### Kiro's Impact
|
|
179
|
+
- **Speed**: Built entire project in one session
|
|
180
|
+
- **Quality**: Production-ready code with proper error handling
|
|
181
|
+
- **Consistency**: Theme maintained across all components
|
|
182
|
+
- **Adaptability**: Quickly adjusted to requirement changes
|
|
183
|
+
|
|
184
|
+
### Future Potential
|
|
185
|
+
- Add more story types (forgotten TODOs, code resurrections)
|
|
186
|
+
- Implement animation system for sprite movement
|
|
187
|
+
- Add more evolution forms
|
|
188
|
+
- Create web dashboard
|
|
189
|
+
- Multi-repository support
|
|
190
|
+
|
|
191
|
+
## Conclusion 🎉
|
|
192
|
+
|
|
193
|
+
GitGotchi demonstrates Kiro's ability to:
|
|
194
|
+
- Understand complex specifications
|
|
195
|
+
- Generate cohesive multi-file projects
|
|
196
|
+
- Maintain consistent themes and styles
|
|
197
|
+
- Solve platform-specific issues
|
|
198
|
+
- Create production-ready code
|
|
199
|
+
|
|
200
|
+
The result is a delightful, functional companion that makes coding more fun and encouraging!
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
**Built with ❤️ using Kiro AI for Kiroween Hackathon 2024**
|
gitgotchi-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 GitGotchi Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include requirements.txt
|
|
4
|
+
include .env.example
|
|
5
|
+
include gitgotchi_spec.md
|
|
6
|
+
include KIRO_USAGE.md
|
|
7
|
+
recursive-include assets *.txt *.json
|
|
8
|
+
recursive-include .kiro *.md *.sh *.json
|
|
9
|
+
recursive-include src/assets *
|
|
10
|
+
global-exclude __pycache__
|
|
11
|
+
global-exclude *.py[co]
|
|
12
|
+
global-exclude .DS_Store
|
|
13
|
+
global-exclude *.db
|
gitgotchi-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gitgotchi
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A Stardew Valley-inspired terminal companion for your git repository
|
|
5
|
+
Home-page: https://github.com/yourusername/gitgotchi
|
|
6
|
+
Author: GitGotchi Team
|
|
7
|
+
Author-email: GitGotchi Team <gitgotchi@example.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://github.com/yourusername/gitgotchi
|
|
10
|
+
Project-URL: Repository, https://github.com/yourusername/gitgotchi
|
|
11
|
+
Project-URL: Issues, https://github.com/yourusername/gitgotchi/issues
|
|
12
|
+
Project-URL: Documentation, https://github.com/yourusername/gitgotchi#readme
|
|
13
|
+
Keywords: git,terminal,pet,companion,stardew-valley,ai,tamagotchi,devtools,hackathon,kiro
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: rich>=13.7.0
|
|
26
|
+
Requires-Dist: gitpython>=3.1.40
|
|
27
|
+
Requires-Dist: anthropic>=0.34.0
|
|
28
|
+
Requires-Dist: sqlalchemy>=2.0.36
|
|
29
|
+
Requires-Dist: typer>=0.9.0
|
|
30
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: pytest>=7.4.3; extra == "dev"
|
|
33
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
34
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
35
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
36
|
+
Dynamic: author
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: requires-python
|
|
40
|
+
|
|
41
|
+
# 🎃 GitGotchi - Your Friendly Dev Companion 👻
|
|
42
|
+
|
|
43
|
+
A Stardew Valley-inspired terminal companion that lives in your git repository!
|
|
44
|
+
|
|
45
|
+
## ✨ Features
|
|
46
|
+
- Adorable pixel art companion that evolves based on your coding habits
|
|
47
|
+
- Warm, encouraging stories about your code history
|
|
48
|
+
- Automatic feeding through git hooks
|
|
49
|
+
- Friendship system inspired by Stardew Valley
|
|
50
|
+
- Cozy terminal UI with sparkles and hearts
|
|
51
|
+
- Fast evolution - see changes every 2-3 commits!
|
|
52
|
+
|
|
53
|
+
## 🚀 Quick Start
|
|
54
|
+
```bash
|
|
55
|
+
pip install -r requirements.txt
|
|
56
|
+
python gitgotchi.py install # Install git hooks
|
|
57
|
+
python gitgotchi.py status # Meet your companion!
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 🎮 Commands
|
|
61
|
+
- `gitgotchi status` - See your companion
|
|
62
|
+
- `gitgotchi pet` - Give them affection
|
|
63
|
+
- `gitgotchi story` - Hear a code story
|
|
64
|
+
- `gitgotchi evolve` - Check evolution progress
|
|
65
|
+
- `gitgotchi name <name>` - Give your companion a name
|
|
66
|
+
|
|
67
|
+
## 🌟 Evolution Forms (Fast Track!)
|
|
68
|
+
- 🥚 Egg (0-2 commits)
|
|
69
|
+
- 👻 Ghost (3-5 commits)
|
|
70
|
+
- 👼 Angel (6+ commits, high quality)
|
|
71
|
+
- 😈 Demon (6+ commits, chaotic)
|
|
72
|
+
- 🧟 Zombie (4+ reverts, needs coffee)
|
|
73
|
+
- 🌙 Wraith (15+ commits, ultimate form)
|
|
74
|
+
|
|
75
|
+
## 🎨 Theme
|
|
76
|
+
GitGotchi is inspired by Stardew Valley's cozy, friendly aesthetic. Your companion is a warm, magical spirit - not scary! Think Junimos, sparkles, and autumn leaves.
|
|
77
|
+
|
|
78
|
+
Built with ❤️ for Kiroween Hackathon 2024
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 🎃 GitGotchi - Your Friendly Dev Companion 👻
|
|
2
|
+
|
|
3
|
+
A Stardew Valley-inspired terminal companion that lives in your git repository!
|
|
4
|
+
|
|
5
|
+
## ✨ Features
|
|
6
|
+
- Adorable pixel art companion that evolves based on your coding habits
|
|
7
|
+
- Warm, encouraging stories about your code history
|
|
8
|
+
- Automatic feeding through git hooks
|
|
9
|
+
- Friendship system inspired by Stardew Valley
|
|
10
|
+
- Cozy terminal UI with sparkles and hearts
|
|
11
|
+
- Fast evolution - see changes every 2-3 commits!
|
|
12
|
+
|
|
13
|
+
## 🚀 Quick Start
|
|
14
|
+
```bash
|
|
15
|
+
pip install -r requirements.txt
|
|
16
|
+
python gitgotchi.py install # Install git hooks
|
|
17
|
+
python gitgotchi.py status # Meet your companion!
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 🎮 Commands
|
|
21
|
+
- `gitgotchi status` - See your companion
|
|
22
|
+
- `gitgotchi pet` - Give them affection
|
|
23
|
+
- `gitgotchi story` - Hear a code story
|
|
24
|
+
- `gitgotchi evolve` - Check evolution progress
|
|
25
|
+
- `gitgotchi name <name>` - Give your companion a name
|
|
26
|
+
|
|
27
|
+
## 🌟 Evolution Forms (Fast Track!)
|
|
28
|
+
- 🥚 Egg (0-2 commits)
|
|
29
|
+
- 👻 Ghost (3-5 commits)
|
|
30
|
+
- 👼 Angel (6+ commits, high quality)
|
|
31
|
+
- 😈 Demon (6+ commits, chaotic)
|
|
32
|
+
- 🧟 Zombie (4+ reverts, needs coffee)
|
|
33
|
+
- 🌙 Wraith (15+ commits, ultimate form)
|
|
34
|
+
|
|
35
|
+
## 🎨 Theme
|
|
36
|
+
GitGotchi is inspired by Stardew Valley's cozy, friendly aesthetic. Your companion is a warm, magical spirit - not scary! Think Junimos, sparkles, and autumn leaves.
|
|
37
|
+
|
|
38
|
+
Built with ❤️ for Kiroween Hackathon 2024
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gitgotchi
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A Stardew Valley-inspired terminal companion for your git repository
|
|
5
|
+
Home-page: https://github.com/yourusername/gitgotchi
|
|
6
|
+
Author: GitGotchi Team
|
|
7
|
+
Author-email: GitGotchi Team <gitgotchi@example.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://github.com/yourusername/gitgotchi
|
|
10
|
+
Project-URL: Repository, https://github.com/yourusername/gitgotchi
|
|
11
|
+
Project-URL: Issues, https://github.com/yourusername/gitgotchi/issues
|
|
12
|
+
Project-URL: Documentation, https://github.com/yourusername/gitgotchi#readme
|
|
13
|
+
Keywords: git,terminal,pet,companion,stardew-valley,ai,tamagotchi,devtools,hackathon,kiro
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: rich>=13.7.0
|
|
26
|
+
Requires-Dist: gitpython>=3.1.40
|
|
27
|
+
Requires-Dist: anthropic>=0.34.0
|
|
28
|
+
Requires-Dist: sqlalchemy>=2.0.36
|
|
29
|
+
Requires-Dist: typer>=0.9.0
|
|
30
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: pytest>=7.4.3; extra == "dev"
|
|
33
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
34
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
35
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
36
|
+
Dynamic: author
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: requires-python
|
|
40
|
+
|
|
41
|
+
# 🎃 GitGotchi - Your Friendly Dev Companion 👻
|
|
42
|
+
|
|
43
|
+
A Stardew Valley-inspired terminal companion that lives in your git repository!
|
|
44
|
+
|
|
45
|
+
## ✨ Features
|
|
46
|
+
- Adorable pixel art companion that evolves based on your coding habits
|
|
47
|
+
- Warm, encouraging stories about your code history
|
|
48
|
+
- Automatic feeding through git hooks
|
|
49
|
+
- Friendship system inspired by Stardew Valley
|
|
50
|
+
- Cozy terminal UI with sparkles and hearts
|
|
51
|
+
- Fast evolution - see changes every 2-3 commits!
|
|
52
|
+
|
|
53
|
+
## 🚀 Quick Start
|
|
54
|
+
```bash
|
|
55
|
+
pip install -r requirements.txt
|
|
56
|
+
python gitgotchi.py install # Install git hooks
|
|
57
|
+
python gitgotchi.py status # Meet your companion!
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 🎮 Commands
|
|
61
|
+
- `gitgotchi status` - See your companion
|
|
62
|
+
- `gitgotchi pet` - Give them affection
|
|
63
|
+
- `gitgotchi story` - Hear a code story
|
|
64
|
+
- `gitgotchi evolve` - Check evolution progress
|
|
65
|
+
- `gitgotchi name <name>` - Give your companion a name
|
|
66
|
+
|
|
67
|
+
## 🌟 Evolution Forms (Fast Track!)
|
|
68
|
+
- 🥚 Egg (0-2 commits)
|
|
69
|
+
- 👻 Ghost (3-5 commits)
|
|
70
|
+
- 👼 Angel (6+ commits, high quality)
|
|
71
|
+
- 😈 Demon (6+ commits, chaotic)
|
|
72
|
+
- 🧟 Zombie (4+ reverts, needs coffee)
|
|
73
|
+
- 🌙 Wraith (15+ commits, ultimate form)
|
|
74
|
+
|
|
75
|
+
## 🎨 Theme
|
|
76
|
+
GitGotchi is inspired by Stardew Valley's cozy, friendly aesthetic. Your companion is a warm, magical spirit - not scary! Think Junimos, sparkles, and autumn leaves.
|
|
77
|
+
|
|
78
|
+
Built with ❤️ for Kiroween Hackathon 2024
|