developer-growth-analysis
Verifiedby ComposioHQ · Updated Apr 16, 2026
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
See It In Action
Let me get started. First, I'll read your chat history and check what tools are available.
There's a history.jsonl in the project directory. Let me read it along with the skill README.
Got the full history. I can see 17 entries within the 48h window across two projects. Let me analyze and search for resources in parallel.
Now let me search HN for resources matching the growth areas I've identified from the history. I'll search in parallel.
Now let me check for Rube MCP / Slack tools to send the report.
The skill references Rube MCP tools for Slack integration, but those aren't available in this environment. Let me generate the full report and we'll sort out Slack delivery after.
Here's your report:
Your Developer Growth Report
Report Period: April 10-12, 2026 Last Updated: April 12, 2026
Work Summary
Over the past 48 hours you worked intensively across two projects: pulse-analytics-api (backend, ~14 sessions) and pulse-dashboard (React frontend, ~3 sessions). Your work spanned TypeScript/Express API development, Prisma ORM query tuning, raw SQL optimization, React component architecture, testing, and documentation. You shipped a significant analytics query-layer refactor (P95 latency from 3.2s down to 340ms) and prepared a PR with 24 new integration tests.
Your sessions show an iterative, depth-first problem-solving style -- you'd fix one layer (e.g. Promise.all -> allSettled) then immediately recognize the next gap (unwrapping settled results cleanly), which is a strong learning signal.
Improvement Areas (Prioritized)
1. Advanced TypeScript Type Narrowing and Generics
Why This Matters: TypeScript is the backbone of both your projects. Mastering type narrowing, discriminated unions, and generic constraints eliminates an entire class of runtime bugs and makes your APIs self-documenting.
What I Observed: Three separate sessions touched type-safety issues:
string | undefinednot assignable tostring-- a classic narrowing gap (entry 3)PaginatedResponse<any>-- leakinganythrough a generic function defeats the point of generics (entry 7)- Type guard for
ApiResponse<T>that "doesn't narrow properly" -- the function lacked an explicit return type predicate (response is ...) (entry 15)
These came up across different days, suggesting this is a recurring friction point, not a one-off.
Recommendation: Study TypeScript's is type predicates, asserts type predicates, and the satisfies operator. Rewrite your processResponse function with a proper generic constraint (<T extends Record<string, unknown>>) instead of any. Practice writing discriminated union type guards with explicit return types.
Time to Skill Up: 3-4 focused hours
2. Async/Await Error Handling Architecture
Why This Matters: Your API handles parallel data fetching and Express routing -- both are async-error-heavy. Getting this wrong means silent failures, hanging requests, and swallowed errors in production.
What I Observed: Four sessions formed a clear chain:
- Promise.all losing successful results on single rejection (entry 8)
- Promise.allSettled producing verbose unwrapping boilerplate (entry 9)
- Express async handlers silently swallowing rejected promises (entry 17)
- Error middleware not differentiating 400/404/500 (entry 18)
Each fix revealed the next gap, suggesting this area hasn't been studied holistically yet.
Recommendation: Build a small error-handling architecture: (1) a typed AppError class hierarchy with status codes, (2) an asyncHandler wrapper for Express routes, (3) a settledResults() utility that separates fulfilled/rejected with proper types. Study how Express 5 handles async errors natively.
Time to Skill Up: 4-5 hours
3. Database Query Performance (ORM vs. Raw SQL Trade-offs)
Why This Matters: Your analytics layer processes 10k+ events with joins across multiple tables. The difference between a naive query and an optimized one was nearly 10x in your own benchmarks (3.2s -> 340ms).
What I Observed: Three sessions on query performance:
- Prisma
includeloading too much data eagerly (entry 5) - N+1 queries surfacing when dashboard loaded related teams (entry 6)
- Raw SQL producing duplicate rows from multiple JOINs, needing rewrite (entry 14)
You've already made the pragmatic decision to use raw SQL for hot paths and Prisma for CRUD (per your PR). The next step is building systematic intuition for when each approach wins.
Recommendation: Learn to read Prisma's query logs (prisma.$on('query')) and EXPLAIN ANALYZE output. Study when include triggers separate queries vs. JOINs. Consider Prisma's $queryRaw with tagged templates or explore Kysely for type-safe raw SQL.
Time to Skill Up: 3-4 hours
4. React Rendering Mental Model
Why This Matters: Your dashboard re-rendered the entire chart grid on every keystroke, and a side effect inside useMemo triggered the "Cannot update while rendering" warning. These are symptoms of a shallow mental model of React's render cycle.
What I Observed:
- Search state changes causing full ChartGrid re-renders -- state colocation issue (entry 10)
fetchMetrics().then(setMetrics)insideuseMemo-- a side effect in a computation hook (entry 12)- Needed guidance on error boundaries (entry 11)
The useMemo misuse (entry 12) is the most telling: putting an async fetch inside useMemo shows a gap in understanding when/why React calls these hooks.
Recommendation: Study the React render lifecycle: what triggers a render, when effects run vs. memos compute, and why useMemo must be pure. Move data fetching into useEffect or a data-fetching library (TanStack Query). Use React DevTools Profiler to visualize re-renders. Memo-ize ChartGrid with React.memo and isolate search state to its own context.
Time to Skill Up: 4-6 hours
Strengths Observed
- Testing discipline: You proactively wrote unit, integration, and edge-case tests (entries 4, 13, 19) -- including non-obvious edge cases like circular JSON in error objects
- Performance ownership: You benchmarked before/after (P95 3.2s -> 340ms) and load-tested with realistic data (50k events)
- Security awareness: You checked for express CVEs before upgrading (entry 1)
- Clear communication: Your PR description was well-structured with explicit breaking changes and quantified results
Action Items
- Write a proper type-guarded
isApiError<T>()with anispredicate for yourApiResponse<T>union -- apply it immediately to your codebase - Extract a reusable
asyncHandler+AppErrorhierarchy for your Express routes -- consolidate the ad-hoc error handling from this week - Add
prisma.$on('query')logging in dev mode and run EXPLAIN ANALYZE on your top 3 slowest endpoints - Move the
fetchMetricscall out ofuseMemointouseEffectinMetricsProvider, and wrapChartGridinReact.memo
Curated Learning Resources
For: TypeScript Type Narrowing & Generics
-
TypeScript: Control flow analysis for destructured discriminated unions - HN Discussion Dives into how TypeScript's control flow analysis handles discriminated unions after destructuring -- directly relevant to your
ApiResponse<T>type guard work. -
Zod: TypeScript-first schema validation with static type inference - HN Discussion Covers how Zod bridges runtime validation with compile-time types, a pattern that would eliminate your
string | undefinedissues at API boundaries.
For: Async Error Handling
-
The gotcha of unhandled promise rejections - HN Discussion Breaks down exactly the Express async error swallowing pattern you hit -- why rejected promises don't reach Express error middleware and how to fix it.
-
Express Error Handling Patterns - Better Stack Guide Comprehensive guide to structuring Express error middleware with typed error hierarchies, async wrappers, and proper status code differentiation.
For: Database Query Optimization
-
Finding and optimizing N+1 queries on a relational database - HN Discussion Systematic approach to detecting and fixing N+1 queries -- the exact issue you hit with team loading in your dashboard.
-
We migrated to SQL. Our biggest learning? Don't use Prisma - HN Discussion A team's journey from Prisma to raw SQL for performance-critical paths. Mirrors your own refactor and offers lessons learned on the hybrid approach.
For: React Rendering Performance
-
The Useless UseCallback - HN Discussion (2025) Recent discussion challenging common memoization assumptions. Good for building a clearer mental model of when React.memo / useMemo / useCallback actually help.
-
Understanding UseMemo and UseCallback - HN Discussion Practical breakdown of when these hooks matter, with examples of the "useless useMemo" anti-pattern -- relevant to your MetricsProvider issue.
Now for the Slack delivery -- the skill references Rube MCP tools (RUBE_MANAGE_CONNECTIONS, RUBE_MULTI_EXECUTE_TOOL) for sending to Slack, but those MCP tools aren't connected in this environment.
I can't auto-send to Slack because the Rube MCP integration isn't configured in this session. To get this into your Slack DMs, you have a couple of options:
- Save as file -- I can write the full report to a
.mdfile you can drag into Slack or share - Copy from above -- the full report is rendered above, ready to copy/paste
- Skip Slack -- use the report as-is for your 1:1 prep
Let me know which you'd prefer, or if you have Slack CLI / webhook I can use instead.
Saved to:
/private/var/folders/t6/.../claude-run-kf9b6plo/growth-report-2026-04-12.md
Good luck with your 1:1. The four areas in priority order are: TypeScript narrowing, async error architecture, Prisma/SQL trade-offs, and React rendering mental model — with the 8 HN links mapped to each one.
External Tools
| Tool | Type |
|---|---|
| slack | mcp |
Permissions
| Scope | Description |
|---|---|
| filesystem:read | |
| network:outbound |
SKILL.md
Developer Growth Analysis
This skill provides personalized feedback on your recent coding work by analyzing your Claude Code chat interactions and identifying patterns that reveal strengths and areas for growth.
When to Use This Skill
Use this skill when you want to:
- Understand your development patterns and habits from recent work
- Identify specific technical gaps or recurring challenges
- Discover which topics would benefit from deeper study
- Get curated learning resources tailored to your actual work patterns
- Track improvement areas across your recent projects
- Find high-quality articles that directly address the skills you're developing
This skill is ideal for developers who want structured feedback on their growth without waiting for code reviews, and who prefer data-driven insights from their own work history.
What This Skill Does
This skill performs a six-step analysis of your development work:
-
Reads Your Chat History: Accesses your local Claude Code chat history from the past 24-48 hours to understand what you've been working on.
-
Identifies Development Patterns: Analyzes the types of problems you're solving, technologies you're using, challenges you encounter, and how you approach different kinds of tasks.
-
Detects Improvement Areas: Recognizes patterns that suggest skill gaps, repeated struggles, inefficient approaches, or areas where you might benefit from deeper knowledge.
-
Generates a Personalized Report: Creates a comprehensive report showing your work summary, identified improvement areas, and specific recommendations for growth.
-
Finds Learning Resources: Uses HackerNews to curate high-quality articles and discussions directly relevant to your improvement areas, providing you with a reading list tailored to your actual development work.
-
Sends to Your Slack DMs: Automatically delivers the complete report to your own Slack direct messages so you can reference it anytime, anywhere.
How to Use
Ask Claude to analyze your recent coding work:
Analyze my developer growth from my recent chats
Or be more specific about which time period:
Analyze my work from today and suggest areas for improvement
The skill will generate a formatted report with:
- Overview of your recent work
- Key improvement areas identified
- Specific recommendations for each area
- Curated learning resources from HackerNews
- Action items you can focus on
Instructions
When a user requests analysis of their developer growth or coding patterns from recent work:
-
Access Chat History
Read the chat history from
~/.claude/history.jsonl. This file is a JSONL format where each line contains:display: The user's message/requestproject: The project being worked ontimestamp: Unix timestamp (in milliseconds)pastedContents: Any code or content pasted
Filter for entries from the past 24-48 hours based on the current timestamp.
-
Analyze Work Patterns
Extract and analyze the following from the filtered chats:
- Projects and Domains: What types of projects was the user working on? (e.g., backend, frontend, DevOps, data, etc.)
- Technologies Used: What languages, frameworks, and tools appear in the conversations?
- Problem Types: What categories of problems are being solved? (e.g., performance optimization, debugging, feature implementation, refactoring, setup/configuration)
- Challenges Encountered: What problems did the user struggle with? Look for:
- Repeated questions about similar topics
- Problems that took multiple attempts to solve
- Questions indicating knowledge gaps
- Complex architectural decisions
- Approach Patterns: How does the user solve problems? (e.g., methodical, exploratory, experimental)
-
Identify Improvement Areas
Based on the analysis, identify 3-5 specific areas where the user could improve. These should be:
- Specific (not vague like "improve coding skills")
- Evidence-based (grounded in actual chat history)
- Actionable (practical improvements that can be made)
- Prioritized (most impactful first)
Examples of good improvement areas:
- "Advanced TypeScript patterns (generics, utility types, type guards) - you struggled with type safety in [specific project]"
- "Error handling and validation - I noticed you patched several bugs related to missing null checks"
- "Async/await patterns - your recent work shows some race conditions and timing issues"
- "Database query optimization - you rewrote the same query multiple times"
-
Generate Report
Create a comprehensive report with this structure:
# Your Developer Growth Report **Report Period**: [Yesterday / Today / [Custom Date Range]] **Last Updated**: [Current Date and Time] ## Work Summary [2-3 paragraphs summarizing what the user worked on, projects touched, technologies used, and overall focus areas] Example: "Over the past 24 hours, you focused primarily on backend development with three distinct projects. Your work involved TypeScript, React, and deployment infrastructure. You tackled a mix of feature implementation, debugging, and architectural decisions, with a particular focus on API design and database optimization." ## Improvement Areas (Prioritized) ### 1. [Area Name] **Why This Matters**: [Explanation of why this skill is important for the user's work] **What I Observed**: [Specific evidence from chat history showing this gap] **Recommendation**: [Concrete step(s) to improve in this area] **Time to Skill Up**: [Brief estimate of effort required] --- [Repeat for 2-4 additional areas] ## Strengths Observed [2-3 bullet points highlighting things you're doing well - things to continue doing] ## Action Items Priority order: 1. [Action item derived from highest priority improvement area] 2. [Action item from next area] 3. [Action item from next area] ## Learning Resources [Will be populated in next step] -
Search for Learning Resources
Use Rube MCP to search HackerNews for articles related to each improvement area:
- For each improvement area, construct a search query targeting high-quality resources
- Search HackerNews using RUBE_SEARCH_TOOLS with queries like:
- "Learn [Technology/Pattern] best practices"
- "[Technology] advanced patterns and techniques"
- "Debugging [specific problem type] in [language]"
- Prioritize posts with high engagement (comments, upvotes)
- For each area, include 2-3 most relevant articles with:
- Article title
- Publication date
- Brief description of why it's relevant
- Link to the article
Add this section to the report:
## Curated Learning Resources ### For: [Improvement Area] 1. **[Article Title]** - [Date] [Description of what it covers and why it's relevant to your improvement area] [Link] 2. **[Article Title]** - [Date] [Description] [Link] [Repeat for other improvement areas] -
Present the Complete Report
Deliver the report in a clean, readable format that the user can:
- Quickly scan for key takeaways
- Use for focused learning planning
- Reference over the next week as they work on improvements
- Share with mentors if they want external feedback
-
Send Report to Slack DMs
Use Rube MCP to send the complete report to the user's own Slack DMs:
- Check if Slack connection is active via RUBE_SEARCH_TOOLS
- If not connected, use RUBE_MANAGE_CONNECTIONS to initiate Slack auth
- Use RUBE_MULTI_EXECUTE_TOOL to send the report as a formatted message:
- Send the report title and period as the first message
- Break the report into logical sections (Summary, Improvements, Strengths, Actions, Resources)
- Format each section as a well-structured Slack message with proper markdown
- Include clickable links for the learning resources
- Confirm delivery in the CLI output
This ensures the user has the report in a place they check regularly and can reference it throughout the week.
Example Usage
Input
Analyze my developer growth from my recent chats
Output
# Your Developer Growth Report
**Report Period**: November 9-10, 2024
**Last Updated**: November 10, 2024, 9:15 PM UTC
## Work Summary
Over the past two days, you focused on backend infrastructure and API development. Your primary project was an open-source showcase application, where you made significant progress on connections management, UI improvements, and deployment configuration. You worked with TypeScript, React, and Node.js, tackling challenges ranging from data security to responsive design. Your work shows a balance between implementing features and addressing technical debt.
## Improvement Areas (Prioritized)
### 1. Advanced TypeScript Patterns and Type Safety
**Why This Matters**: TypeScript is central to your work, but leveraging its advanced features (generics, utility types, conditional types, type guards) can significantly improve code reliability and reduce runtime errors. Better type safety catches bugs at compile time rather than in production.
**What I Observed**: In your recent chats, you were working with connection data structures and struggled a few times with typing auth configurations properly. You also had to iterate on union types for different connection states. There's an opportunity to use discriminated unions and type guards more effectively.
**Recommendation**: Study TypeScript's advanced type system, particularly utility types (Omit, Pick, Record), conditional types, and discriminated unions. Apply these patterns to your connection configuration handling and auth state management.
**Time to Skill Up**: 5-8 hours of focused learning and practice
### 2. Secure Data Handling and Information Hiding in UI
**Why This Matters**: You identified and fixed a security concern where sensitive connection data was being displayed in your console. Preventing information leakage is critical for applications handling user credentials and API keys. Good practices here prevent security incidents and user trust violations.
**What I Observed**: You caught that your "Your Apps" page was showing full connection data including auth configs. This shows good security instincts, and the next step is building this into your default thinking when handling sensitive information.
**Recommendation**: Review security best practices for handling sensitive data in frontend applications. Create reusable patterns for filtering/masking sensitive information before displaying it. Consider implementing a secure data layer that explicitly whitelist what can be shown in the UI.
**Time to Skill Up**: 3-4 hours
### 3. Component Architecture and Responsive UI Patterns
**Why This Matters**: You're designing UIs that need to work across different screen sizes and user interactions. Strong component architecture makes it easier to build complex UIs without bugs and improves maintainability.
**What I Observed**: You worked on the "Marketplace" UI (formerly Browse Tools), recreating it from a design image. You also identified and fixed scrolling issues where content was overflowing containers. There's an opportunity to strengthen your understanding of layout containment and responsive design patterns.
**Recommendation**: Study React component composition patterns and CSS layout best practices (especially flexbox and grid). Focus on container queries and responsive patterns that prevent overflow issues. Look into component composition libraries and design system approaches.
**Time to Skill Up**: 6-10 hours (depending on depth)
## Strengths Observed
- **Security Awareness**: You proactively identified data leakage issues before they became problems
- **Iterative Refinement**: You worked through UI requirements methodically, asking clarifying questions and improving designs
- **Full-Stack Capability**: You comfortably work across backend APIs, frontend UI, and deployment concerns
- **Problem-Solving Approach**: You break down complex tasks into manageable steps
## Action Items
Priority order:
1. Spend 1-2 hours learning TypeScript utility types and discriminated unions; apply to your connection data structures
2. Document security patterns for your project (what data is safe to display, filtering/masking functions)
3. Study one article on advanced React patterns and apply one pattern to your current UI work
4. Set up a code review checklist focused on type safety and data security for future PRs
## Curated Learning Resources
### For: Advanced TypeScript Patterns
1. **TypeScript's Advanced Types: Generics, Utility Types, and Conditional Types** - HackerNews, October 2024
Deep dive into TypeScript's type system with practical examples and real-world applications. Covers discriminated unions, type guards, and patterns for ensuring compile-time safety in complex applications.
[Link to discussion]
2. **Building Type-Safe APIs in TypeScript** - HackerNews, September 2024
Practical guide to designing APIs with TypeScript that catch errors early. Particularly relevant for your connection configuration work.
[Link to discussion]
### For: Secure Data Handling in Frontend
1. **Preventing Information Leakage in Web Applications** - HackerNews, August 2024
Comprehensive guide to data security in frontend applications, including filtering sensitive information, secure logging, and audit trails.
[Link to discussion]
2. **OAuth and API Key Management Best Practices** - HackerNews, July 2024
How to safely handle authentication tokens and API keys in applications, with examples for different frameworks.
[Link to discussion]
### For: Component Architecture and Responsive Design
1. **Advanced React Patterns: Composition Over Configuration** - HackerNews
Explores component composition strategies that scale, with examples using modern React patterns.
[Link to discussion]
2. **CSS Layout Mastery: Flexbox, Grid, and Container Queries** - HackerNews, October 2024
Learn responsive design patterns that prevent overflow issues and work across all screen sizes.
[Link to discussion]
Tips and Best Practices
- Run this analysis once a week to track your improvement trajectory over time
- Pick one improvement area at a time and focus on it for a few days before moving to the next
- Use the learning resources as a study guide; work through the recommended materials and practice applying the patterns
- Revisit this report after focusing on an area for a week to see how your work patterns change
- The learning resources are intentionally curated for your actual work, not generic topics, so they'll be highly relevant to what you're building
How Accuracy and Quality Are Maintained
This skill:
- Analyzes your actual work patterns from timestamped chat history
- Generates evidence-based recommendations grounded in real projects
- Curates learning resources that directly address your identified gaps
- Focuses on actionable improvements, not vague feedback
- Provides specific time estimates based on complexity
- Prioritizes areas that will have the most impact on your development velocity
FAQ
What does developer-growth-analysis do?
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
When should I use developer-growth-analysis?
Use it when you need a repeatable workflow that produces text report.
What does developer-growth-analysis output?
In the evaluated run it produced text report.
How do I install or invoke developer-growth-analysis?
npx skills add https://github.com/composiohq/awesome-claude-skills --skill developer-growth-analysis
Which agents does developer-growth-analysis support?
Claude Code
What tools, channels, or permissions does developer-growth-analysis need?
It uses slack; channels commonly include text; permissions include filesystem:read, network:outbound.
Is developer-growth-analysis safe to install?
Static analysis marked this skill as medium risk; review side effects and permissions before enabling it.
How is developer-growth-analysis different from an MCP or plugin?
A skill packages instructions and workflow conventions; tools, MCP servers, and plugins are dependencies the skill may call during execution.
Does developer-growth-analysis outperform not using a skill?
About developer-growth-analysis
When to use developer-growth-analysis
When you want a retrospective on the last 24-48 hours of coding work based on your Claude Code chats. When you want evidence-based suggestions for technical growth areas and next learning steps. When you want the report delivered to Slack for later reference.
When developer-growth-analysis is not the right choice
When you do not want your report sent externally to Slack. When you need analysis of codebases or tools beyond recent local Claude Code chat history.
What it produces
Produces text report.
Install
npx skills add https://github.com/composiohq/awesome-claude-skills --skill developer-growth-analysisInvoke: Ask Claude Code to use developer-growth-analysis for the task.