milktea 0.1.0
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.
- checksums.yaml +7 -0
- data/.claude/commands/devlog.md +103 -0
- data/.claude/settings.json +29 -0
- data/.rspec +3 -0
- data/.rubocop.yml +17 -0
- data/ARCHITECTURE.md +621 -0
- data/CLAUDE.md +537 -0
- data/LICENSE.txt +21 -0
- data/README.md +382 -0
- data/Rakefile +12 -0
- data/docs/devlog/20250703.md +119 -0
- data/docs/devlog/20250704-2.md +129 -0
- data/docs/devlog/20250704.md +90 -0
- data/docs/devlog/20250705.md +81 -0
- data/examples/container_layout.rb +288 -0
- data/examples/container_simple.rb +66 -0
- data/examples/counter.rb +60 -0
- data/examples/dashboard.rb +121 -0
- data/examples/hot_reload_demo/models/demo_model.rb +91 -0
- data/examples/hot_reload_demo/models/status_model.rb +34 -0
- data/examples/hot_reload_demo.rb +64 -0
- data/examples/simple.rb +39 -0
- data/lib/milktea/application.rb +64 -0
- data/lib/milktea/bounds.rb +10 -0
- data/lib/milktea/config.rb +35 -0
- data/lib/milktea/container.rb +124 -0
- data/lib/milktea/loader.rb +45 -0
- data/lib/milktea/message.rb +39 -0
- data/lib/milktea/model.rb +112 -0
- data/lib/milktea/program.rb +81 -0
- data/lib/milktea/renderer.rb +44 -0
- data/lib/milktea/runtime.rb +71 -0
- data/lib/milktea/version.rb +5 -0
- data/lib/milktea.rb +69 -0
- data/sig/milktea.rbs +4 -0
- metadata +151 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2ed418298f9856106a16ea4b8547cddbdde2841e270faa7e7c5750e45498055c
|
4
|
+
data.tar.gz: ebbc971d234ee535db7d4cda1d57a94c57fbe6a6cade430d3a715a13340fae24
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4733b94d3d650b662671a3d14fee70d7a4aec3b8dd7bbb64f69f4f5e4bd8744a2993791bcc02690b349fa95b4dfdf0d4f01eb26261a733ce800ad0fa8823137a
|
7
|
+
data.tar.gz: 0f871c49c46ec816401b93cf7f16e856ccb2103e8bc256665d2a3fffcb0a8f669ba241f0d6279d37a0716acbe6e6ca1152d3f2a4283fdbedf925011a0f910eea
|
@@ -0,0 +1,103 @@
|
|
1
|
+
# Milktea Development Log Generator
|
2
|
+
|
3
|
+
Create a comprehensive development log for today in English, following this standardized format and guidelines. The document should be readable in 5 minutes (1200-1500 words maximum) and serve as a historical record for future development decisions.
|
4
|
+
|
5
|
+
## Output Requirements
|
6
|
+
|
7
|
+
**File Location**: `docs/devlog/[YYYYMMDD].md` where `[YYYYMMDD]` is today's date (e.g., `20250702.md`)
|
8
|
+
|
9
|
+
**Structure**: Use exactly this template structure:
|
10
|
+
|
11
|
+
```markdown
|
12
|
+
# Development Log - [Date in YYYY-MM-DD format]
|
13
|
+
|
14
|
+
## What's New
|
15
|
+
[New features, capabilities, and enhancements that provide value to users or developers]
|
16
|
+
|
17
|
+
## What's Fixed
|
18
|
+
[Bug fixes, issues resolved, and improvements to existing functionality]
|
19
|
+
|
20
|
+
## Design Decisions
|
21
|
+
[Architectural choices, alternatives considered, and reasoning for future reference]
|
22
|
+
|
23
|
+
## Impact
|
24
|
+
[Brief summary of how these changes affect users, developers, or the project direction]
|
25
|
+
|
26
|
+
## Files Modified
|
27
|
+
[Bulleted list of key files changed for quick reference]
|
28
|
+
```
|
29
|
+
|
30
|
+
## Content Guidelines
|
31
|
+
|
32
|
+
### What's New Section
|
33
|
+
- **Focus on**: New features, enhancements, added capabilities
|
34
|
+
- **Format**: Use descriptive headers (####) for major features
|
35
|
+
- **Include**: User impact, developer benefits, new possibilities enabled
|
36
|
+
- **Exclude**: Implementation details, code snippets (unless essential for understanding)
|
37
|
+
|
38
|
+
### What's Fixed Section
|
39
|
+
- **Structure**: Problem description → Root cause (if relevant) → Solution implemented
|
40
|
+
- **Focus on**: User-visible improvements, stability enhancements, developer experience
|
41
|
+
- **Include**: Impact of the fix, scenarios that now work correctly
|
42
|
+
- **Highlight**: Critical bugs, performance improvements, reliability enhancements
|
43
|
+
|
44
|
+
### Design Decisions Section
|
45
|
+
- **Document**: Architectural choices, pattern selections, technology decisions
|
46
|
+
- **Include**:
|
47
|
+
- Problem context and alternatives considered
|
48
|
+
- Reasoning and trade-offs made
|
49
|
+
- Future implications and guidance for similar decisions
|
50
|
+
- **Format**: Decision title → Context → Choice → Rationale
|
51
|
+
- **Critical**: Any decisions that change development patterns or conflict with existing approaches
|
52
|
+
|
53
|
+
### Quality Standards
|
54
|
+
- **Reading Time**: 5 minutes maximum (1200-1500 words)
|
55
|
+
- **Audience**: Ruby developers building TUI applications and contributors to the Milktea framework
|
56
|
+
- **Tone**: Professional, clear, technically accurate but accessible
|
57
|
+
- **Depth**: Enough detail to understand decisions, not implementation specifics
|
58
|
+
|
59
|
+
## Research Instructions
|
60
|
+
|
61
|
+
1. **Check recent commits**: Use `git log --oneline -10` to identify changes since last devlog
|
62
|
+
2. **Analyze changes**: Look at modified files, commit messages, and change patterns
|
63
|
+
3. **Categorize changes**: Group related commits and changes by the three main sections
|
64
|
+
4. **Extract decisions**: Identify any architectural, design, or technical choices made
|
65
|
+
5. **Check conflicts**: Review if any decisions contradict current CLAUDE.md guidance
|
66
|
+
|
67
|
+
## CLAUDE.md and ARCHITECTURE.md Integration
|
68
|
+
|
69
|
+
**Critical**: If any design decisions documented in the devlog contradict or change the development approach described in CLAUDE.md or ARCHITECTURE.md:
|
70
|
+
|
71
|
+
1. **Update CLAUDE.md** to reflect new development practices and commands
|
72
|
+
2. **Update ARCHITECTURE.md** to document architectural changes and design patterns
|
73
|
+
3. **Document the change** in the devlog's Design Decisions section
|
74
|
+
4. **Explain reasoning** for why the previous approach was modified
|
75
|
+
5. **Ensure consistency** between devlog, CLAUDE.md, and ARCHITECTURE.md for future development
|
76
|
+
|
77
|
+
### When to Update Each File:
|
78
|
+
- **CLAUDE.md**: Development commands, testing approaches, coding conventions, repository management
|
79
|
+
- **ARCHITECTURE.md**: System design, component relationships, architectural patterns, technical decisions
|
80
|
+
|
81
|
+
## File Analysis Guidelines
|
82
|
+
|
83
|
+
When analyzing git changes:
|
84
|
+
- **Focus on intent**: What problem was being solved?
|
85
|
+
- **Identify patterns**: Are there recurring themes in the changes?
|
86
|
+
- **Note architecture changes**: Any new patterns, refactoring, or structural improvements?
|
87
|
+
- **Capture rationale**: Why were specific approaches chosen?
|
88
|
+
- **TUI-specific considerations**: How do changes affect terminal rendering, user interaction, or event handling?
|
89
|
+
- **Framework impact**: How do modifications influence the developer experience for TUI application builders?
|
90
|
+
|
91
|
+
## Final Checklist
|
92
|
+
|
93
|
+
Before saving the devlog, verify:
|
94
|
+
- [ ] All three main sections are present and populated
|
95
|
+
- [ ] Word count is under 1500 words (5-minute read)
|
96
|
+
- [ ] Design decisions include reasoning and context
|
97
|
+
- [ ] File list captures major changes
|
98
|
+
- [ ] CLAUDE.md is updated if needed for development practices
|
99
|
+
- [ ] ARCHITECTURE.md is updated if needed for design changes
|
100
|
+
- [ ] Date format is correct (YYYY-MM-DD)
|
101
|
+
- [ ] Content provides value for future developers reviewing project history
|
102
|
+
|
103
|
+
This devlog will serve as a crucial historical record for understanding project evolution and making informed decisions in future development.
|
@@ -0,0 +1,29 @@
|
|
1
|
+
{
|
2
|
+
"permissions": {
|
3
|
+
"allow": [
|
4
|
+
"Bash(bundle exec rspec:*)",
|
5
|
+
"Bash(bundle exec rubocop:*)",
|
6
|
+
"Bash(diff:*)",
|
7
|
+
"Bash(find:*)",
|
8
|
+
"Bash(git add:*)",
|
9
|
+
"Bash(git rm:*)"
|
10
|
+
]
|
11
|
+
},
|
12
|
+
"hooks": {
|
13
|
+
"PostToolUse": [
|
14
|
+
{
|
15
|
+
"matcher": "Write|Edit|MultiEdit",
|
16
|
+
"hooks": [
|
17
|
+
{
|
18
|
+
"type": "command",
|
19
|
+
"command": "jq -r '.tool_input.file_path | select(endswith(\".rb\"))' | xargs -r bundle exec rubocop -A"
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"type": "command",
|
23
|
+
"command": "jq -r '.tool_input.file_path | select(endswith(\"_spec.rb\"))' | xargs -r bundle exec rspec"
|
24
|
+
}
|
25
|
+
]
|
26
|
+
}
|
27
|
+
]
|
28
|
+
}
|
29
|
+
}
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
AllCops:
|
2
|
+
NewCops: enable
|
3
|
+
SuggestExtensions: false
|
4
|
+
TargetRubyVersion: 3.1
|
5
|
+
Exclude:
|
6
|
+
- 'examples/**/*'
|
7
|
+
|
8
|
+
Style/StringLiterals:
|
9
|
+
EnforcedStyle: double_quotes
|
10
|
+
|
11
|
+
Style/StringLiteralsInInterpolation:
|
12
|
+
EnforcedStyle: double_quotes
|
13
|
+
|
14
|
+
Metrics/BlockLength:
|
15
|
+
Exclude:
|
16
|
+
- '*.gemspec'
|
17
|
+
- 'spec/**/*_spec.rb'
|