Skip to content

Commit e4cf4cf

Browse files
GeneAIclaude
authored andcommitted
feat: Add UX commands for progressive user onboarding
New commands to help AI users become power users: - empathy cheatsheet: Quick reference organized by category - empathy onboard: Interactive 6-step tutorial with completion tracking - empathy explain <cmd>: Detailed explanations of how commands work - empathy achievements: Progress tracking with unlockable badges Achievements include: First Steps, Getting Started, Power User, Expert, Pattern Learner, Claude Whisperer, Early Bird, Quality Shipper, Code Doctor, Pattern Master, Week Warrior, and Monthly Maven. Also includes import sorting and formatting fixes across 150+ files. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent f82fbc3 commit e4cf4cf

File tree

94 files changed

+7722
-615
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+7722
-615
lines changed

.claude/rules/empathy/debugging.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Debugging Patterns
2+
3+
Auto-generated from Empathy Framework learned patterns.
4+
Total patterns: 10
5+
6+
---
7+
8+
## Bug Fix Patterns
9+
10+
When debugging similar issues, consider these historical fixes:
11+
12+
### unknown
13+
- **Root cause**: fix: Improve text contrast in debug wizard header
14+
- **Fix**: See commit 848e6c8a
15+
- **Files**: website/app/tools/debug-wizard/page.tsx, website/components/debug-wizard/DebugWizard.tsx
16+
17+
### unknown
18+
- **Root cause**: feat: Add Redis integration with environment-aware key prefixing
19+
- **Fix**: See commit fa236623
20+
- **Files**: website/app/api/debug-wizard/analyze/route.ts, website/app/api/debug-wizard/resolve/route.ts, website/app/api/debug-wizard/stats/route.ts
21+
22+
### unknown
23+
- **Root cause**: feat: Add autonomous error scanning and repair to Debug Wizard
24+
- **Fix**: See commit 450f5972
25+
- **Files**: website/components/debug-wizard/DebugWizard.tsx
26+
27+
### unknown
28+
- **Root cause**: feat: Improved DebugWizard UX with card-based file selection
29+
- **Fix**: See commit d92de34f
30+
- **Files**: website/components/debug-wizard/DebugWizard.tsx
31+
32+
### unknown
33+
- **Root cause**: feat: Enhanced DebugWizard with folder selection and tree view
34+
- **Fix**: See commit 17526090
35+
- **Files**: website/components/debug-wizard/DebugWizard.tsx
36+
37+
### unknown
38+
- **Root cause**: fix: Make GitHub Issues link clickable in FAQ page
39+
- **Fix**: See commit f669fb6a
40+
- **Files**: website/app/faq/page.tsx
41+
42+
### type_mismatch
43+
- **Root cause**: fix: Resolve all ESLint errors and improve type safety
44+
- **Fix**: See commit 8d974c1a
45+
- **Files**: site/search/search_index.json, site/sitemap.xml, site/sitemap.xml.gz
46+
47+
### unknown
48+
- **Root cause**: fix: Fix ESLint errors - escape apostrophes and quotes in JSX
49+
- **Fix**: See commit 99335a29
50+
- **Files**: website/app/api/debug-wizard/analyze/route.ts, website/app/api/og/route.tsx, website/app/blog/page.tsx
51+
52+
### unknown
53+
- **Root cause**: fix: Remove missing icon references from webmanifest
54+
- **Fix**: See commit 5179994c
55+
- **Files**: website/public/site.webmanifest
56+
57+
### unknown
58+
- **Root cause**: feat: Add drag-and-drop file upload to debug wizard
59+
- **Fix**: See commit 4c6069af
60+
- **Files**: website/components/debug-wizard/DebugWizard.tsx

CHANGELOG.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,55 @@ All notable changes to the Empathy Framework will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.5.0] - 2025-12-20
9+
10+
### Added
11+
12+
**Power User Workflows**
13+
- **`empathy morning`** - Start-of-day briefing with patterns learned, tech debt trends, and suggested focus areas
14+
- **`empathy ship`** - Pre-commit validation pipeline (lint, format, types, git status, Claude sync)
15+
- **`empathy fix-all`** - Auto-fix all lint and format issues with ruff, black, and isort
16+
- **`empathy learn`** - Extract bug patterns from git history automatically
17+
18+
**Cost Optimization Dashboard**
19+
- **`empathy costs`** - View API cost tracking and savings from ModelRouter
20+
- Daily/weekly cost breakdown by model tier and task type
21+
- Automatic savings calculation vs always-using-premium baseline
22+
- Integration with dashboard and VS Code extension
23+
24+
**Project Scaffolding**
25+
- **`empathy new <template> <name>`** - Create new projects from templates
26+
- Templates available: `minimal`, `python-cli`, `python-fastapi`, `python-agent`
27+
- Pre-configured empathy.config.yml and .claude/CLAUDE.md included
28+
29+
**Progressive Feature Discovery**
30+
- Context-aware tips shown after command execution
31+
- Tips trigger based on usage patterns (e.g., "After 10 inspects, try sync-claude")
32+
- Maximum 2 tips at a time to avoid overwhelming users
33+
- Tracks command usage and patterns learned
34+
35+
**Visual Dashboard**
36+
- **`empathy dashboard`** - Launch web-based dashboard in browser
37+
- Pattern browser with bug types and resolution status
38+
- Cost savings visualization
39+
- Quick command reference
40+
- Dark mode support (respects system preference)
41+
42+
**VS Code Extension** (`vscode-extension/`)
43+
- Status bar showing patterns count and cost savings
44+
- Command palette integration for all empathy commands
45+
- Sidebar with Patterns, Health, and Costs tree views
46+
- Auto-refresh of pattern data
47+
- Settings for customization
48+
49+
### Changed
50+
51+
- CLI now returns proper exit codes for scripting integration
52+
- Improved terminal output formatting across all commands
53+
- Discovery tips integrated into CLI post-command hooks
54+
55+
---
56+
857
## [2.4.0] - 2025-12-20
958

1059
### Added

agents/book_production/__init__.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,7 @@
2020
Licensed under Fair Source 0.9
2121
"""
2222

23-
from .base import (
24-
AgentConfig,
25-
BaseAgent,
26-
MemDocsConfig,
27-
OpusAgent,
28-
RedisConfig,
29-
SonnetAgent,
30-
)
23+
from .base import AgentConfig, BaseAgent, MemDocsConfig, OpusAgent, RedisConfig, SonnetAgent
3124
from .editor_agent import EditorAgent
3225
from .learning import ( # Pattern Extraction; Feedback Loop; Quality Gap Detection; SBAR Handoffs
3326
ExtractedPattern,

agents/book_production/base.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,10 @@
2424
from pathlib import Path
2525
from typing import Any
2626

27-
from empathy_llm_toolkit.config.unified import (
28-
MemDocsConfig as UnifiedMemDocsConfig,
29-
)
30-
from empathy_llm_toolkit.config.unified import (
31-
RedisConfig as UnifiedRedisConfig,
32-
)
33-
3427
# Import unified configuration (preferred)
35-
from empathy_llm_toolkit.config.unified import (
36-
UnifiedAgentConfig,
37-
)
28+
from empathy_llm_toolkit.config.unified import MemDocsConfig as UnifiedMemDocsConfig
29+
from empathy_llm_toolkit.config.unified import RedisConfig as UnifiedRedisConfig
30+
from empathy_llm_toolkit.config.unified import UnifiedAgentConfig
3831

3932
logger = logging.getLogger(__name__)
4033

agents/book_production/pipeline.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,7 @@
3535
)
3636
from .research_agent import ResearchAgent
3737
from .reviewer_agent import ReviewerAgent
38-
from .state import (
39-
AgentPhase,
40-
Chapter,
41-
ChapterSpec,
42-
create_initial_state,
43-
)
38+
from .state import AgentPhase, Chapter, ChapterSpec, create_initial_state
4439
from .writer_agent import WriterAgent
4540

4641
logger = logging.getLogger(__name__)

agents/code_inspection/adapters/code_review_adapter.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,7 @@ async def analyze(
102102

103103
try:
104104
# Import here to handle optional dependency
105-
from empathy_software_plugin.wizards.code_review_wizard import (
106-
CodeReviewWizard,
107-
)
105+
from empathy_software_plugin.wizards.code_review_wizard import CodeReviewWizard
108106

109107
wizard = CodeReviewWizard(patterns_dir=str(self.project_root / "patterns"))
110108

agents/code_inspection/adapters/tech_debt_adapter.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ async def analyze(self) -> ToolResult:
4848

4949
try:
5050
# Import here to handle optional dependency
51-
from empathy_software_plugin.wizards.tech_debt_wizard import (
52-
TechDebtWizard,
53-
)
51+
from empathy_software_plugin.wizards.tech_debt_wizard import TechDebtWizard
5452

5553
wizard = TechDebtWizard()
5654

agents/code_inspection/adapters/test_quality_adapter.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ async def analyze(self) -> ToolResult:
5151

5252
try:
5353
# Import here to handle optional dependency
54-
from empathy_software_plugin.wizards.testing.quality_analyzer import (
55-
TestQualityAnalyzer,
56-
)
54+
from empathy_software_plugin.wizards.testing.quality_analyzer import TestQualityAnalyzer
5755

5856
analyzer = TestQualityAnalyzer()
5957

agents/code_inspection/nodes/cross_analysis.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@
1717
from datetime import datetime
1818
from typing import Any
1919

20-
from ..state import (
21-
CodeInspectionState,
22-
CrossToolInsight,
23-
InspectionPhase,
24-
add_audit_entry,
25-
)
20+
from ..state import CodeInspectionState, CrossToolInsight, InspectionPhase, add_audit_entry
2621

2722
logger = logging.getLogger(__name__)
2823

agents/code_inspection/nodes/reporting.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -712,8 +712,8 @@ def format_report_html(state: CodeInspectionState, include_trends: bool = False)
712712
severity = issue.get("severity", "medium")
713713
html += f""" <tr>
714714
<td><span class="severity severity-{severity}">{severity}</span></td>
715-
<td><code>{issue.get('file_path', 'N/A')}</code></td>
716-
<td>{issue.get('message', 'No message')[:80]}</td>
715+
<td><code>{issue.get("file_path", "N/A")}</code></td>
716+
<td>{issue.get("message", "No message")[:80]}</td>
717717
</tr>
718718
"""
719719
html += """ </tbody>
@@ -730,8 +730,8 @@ def format_report_html(state: CodeInspectionState, include_trends: bool = False)
730730
"""
731731
for rec in recommendations:
732732
html += f""" <li>
733-
<span class="priority">[{rec['priority'].upper()}]</span>
734-
{rec['action']}
733+
<span class="priority">[{rec["priority"].upper()}]</span>
734+
{rec["action"]}
735735
</li>
736736
"""
737737
html += """ </ul>
@@ -740,7 +740,7 @@ def format_report_html(state: CodeInspectionState, include_trends: bool = False)
740740

741741
# Footer
742742
html += f""" <div class="footer">
743-
<p>Execution ID: {state['execution_id']} | Duration: {state.get('total_duration_ms', 0)}ms</p>
743+
<p>Execution ID: {state["execution_id"]} | Duration: {state.get("total_duration_ms", 0)}ms</p>
744744
<p>Generated by empathy-inspect v2.2.9</p>
745745
</div>
746746
</div>

0 commit comments

Comments
 (0)