{"id":28196015,"url":"https://github.com/jonmagic/level-up","last_synced_at":"2025-08-25T08:17:57.697Z","repository":{"id":287980013,"uuid":"966389098","full_name":"jonmagic/level-up","owner":"jonmagic","description":"AI-powered GitHub contribution analyzer that helps developers level up by providing personalized feedback on their work. Analyzes issues, PRs, and discussions to identify strengths and growth opportunities.","archived":false,"fork":false,"pushed_at":"2025-04-22T07:03:46.000Z","size":323,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T14:15:03.289Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonmagic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-14T21:06:28.000Z","updated_at":"2025-04-22T07:03:50.000Z","dependencies_parsed_at":"2025-04-15T00:25:44.681Z","dependency_job_id":"f8513104-4f98-4960-8ca8-0d07d86975a5","html_url":"https://github.com/jonmagic/level-up","commit_stats":null,"previous_names":["jonmagic/level-up"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonmagic/level-up","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonmagic%2Flevel-up","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonmagic%2Flevel-up/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonmagic%2Flevel-up/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonmagic%2Flevel-up/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonmagic","download_url":"https://codeload.github.com/jonmagic/level-up/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonmagic%2Flevel-up/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272031477,"owners_count":24861687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-16T14:15:05.030Z","updated_at":"2025-08-25T08:17:57.672Z","avatar_url":"https://github.com/jonmagic.png","language":"TypeScript","readme":"# Level Up\n\nThis is an AI application for gathering GitHub contributions for an individual for a given time period and turning that data into feedback to help them level up. Use it for yourself. Use it for a teammate. _It's time to level up._\n\n## Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/level-up.git\ncd level-up\n\n# Install dependencies\npnpm install\n```\n\n## Usage\n\nRun the analyzer using the provided script:\n\n```bash\n./script/analyze --organization open-truss \\\n  --user jonmagic \\\n  --start-date 2024-03-01 \\\n  --end-date 2024-03-31 \\\n  --role-description /path/to/role-description.md \\\n  --notes /path/to/individual-notes.md\n```\n\n### Command Line Options\n\n- `--organization, -o`: GitHub organization to search within\n- `--user, -u`: GitHub username to analyze\n- `--start-date, -s`: Start date in YYYY-MM-DD format\n- `--end-date, -e`: End date in YYYY-MM-DD format\n- `--role-description, -r`: Path to a file containing the role description\n- `--notes, -n`: Optional path to a file containing additional notes about the individual and their work\n- `--output-path, -p`: Optional path to save the analysis JSON (if not provided, analysis will only be printed to console)\n- `--help, -h`: Show help message\n\n### Examples\n\n```bash\n# Using short flags\n./script/analyze -o open-truss -u jonmagic -s 2024-03-01 -e 2024-03-31 -r role.md\n\n# Save analysis to a file\n./script/analyze -o open-truss -u jonmagic -s 2024-03-01 -e 2024-03-31 -r role.md -p analysis.json\n\n# Include additional notes about the individual\n./script/analyze -o open-truss -u jonmagic -s 2024-03-01 -e 2024-03-31 -r role.md -n notes.md -p analysis.json\n```\n\n## Agents and Tools\n\nThe application uses a series of specialized AI agents and tools to analyze GitHub contributions:\n\n### Agents\n\n1. **Search Agent** (`search.ts`)\n   - Specialized in finding GitHub contributions within a specified time range\n   - Uses the `search_contributions` tool to query GitHub's GraphQL API\n   - Returns a structured list of issues, pull requests, and discussions\n\n2. **Fetcher Agent** (`fetcher.ts`)\n   - Retrieves detailed information about each contribution\n   - Uses specialized tools (`fetch-issue`, `fetch-pull-request`, `fetch-discussion`) to get full context\n   - Handles caching of contribution data to optimize performance\n\n3. **Contribution Analyzer Agent** (`contribution-analyzer.ts`)\n   - Analyzes individual contributions in detail\n   - Evaluates impact, technical quality, collaboration, and alignment with role expectations\n   - Provides structured feedback in JSON format\n   - Uses a comprehensive rubric for consistent evaluation\n\n4. **Summary Analyzer Agent** (`summary-analyzer.ts`)\n   - Synthesizes multiple contribution analyses into a comprehensive report\n   - Identifies key strengths, areas for improvement, and standout contributions\n   - Generates metrics and trends from the analyzed contributions\n   - Provides actionable feedback aligned with role expectations\n   - Incorporates additional context from optional notes about the individual\n\n### Tools\n\n1. **Search Contributions** (`search-contributions.ts`)\n   - GraphQL-based tool for searching GitHub contributions\n   - Handles pagination and rate limiting\n   - Returns structured data about issues, PRs, and discussions\n\n2. **Fetch Issue** (`fetch-issue.ts`)\n   - Retrieves detailed information about GitHub issues\n   - Includes comments, labels, and metadata\n   - Implements caching for performance optimization\n\n3. **Fetch Pull Request** (`fetch-pull-request.ts`)\n   - Gets comprehensive data about pull requests\n   - Includes reviews, comments, and code changes\n   - Handles caching and rate limiting\n\n4. **Fetch Discussion** (`fetch-discussion.ts`)\n   - Retrieves detailed information about GitHub discussions\n   - Includes comments, answers, and metadata\n   - Implements caching for efficiency\n\n### Flow\n\n1. The Search Agent finds all relevant contributions within the specified time range\n2. The Fetcher Agent retrieves detailed information for each contribution\n3. The Contribution Analyzer Agent evaluates each contribution individually\n4. The Summary Analyzer Agent synthesizes all analyses into a comprehensive report\n\nThis multi-agent approach allows for:\n- Efficient data gathering and caching\n- Detailed, context-aware analysis\n- Consistent evaluation using standardized rubrics\n- Actionable feedback aligned with role expectations\n\n## Roadmap\n\nWe have exciting plans to enhance Level Up and make it even more valuable for users and contributors. Here's what's coming:\n\n### Phase 1: Testing \u0026 Stability\n- Implement comprehensive test coverage for all agents and tools\n- Add automated testing for the analysis pipeline\n- Improve error handling and validation\n- Document testing practices for contributors\n\n### Phase 2: Interactive Chat Experience\n- Add a conversational interface for interacting with contribution data\n- Enable real-time analysis of individual contributions\n- Support dynamic search parameter adjustments\n- Implement chat-based summary analysis\n\n### Phase 3: Advanced Agent Architecture\n- Transition to a more flexible agent-based system\n- Implement dynamic routing between agents\n- Add decision-making capabilities to agents\n- Improve agent collaboration and communication\n\n### How to Contribute\n\nWe welcome contributions from the community! Here are some ways you can help:\n\n1. **Testing \u0026 Documentation**\n   - Write tests for existing functionality\n   - Improve documentation and examples\n   - Add usage guides and best practices\n\n2. **Feature Development**\n   - Help implement the chat interface\n   - Contribute to the agent architecture\n   - Add new analysis capabilities\n\n3. **Bug Fixes \u0026 Improvements**\n   - Report and fix bugs\n   - Optimize performance\n   - Enhance error handling\n\nTo get started:\n1. Fork the repository\n2. Create a feature branch\n3. Submit a pull request with your changes\n\n### Future Possibilities\n\nWe're exploring several exciting directions for Level Up:\n\n- **Custom Rubrics**: Allow users to define their own evaluation criteria\n- **Growth Plan**: Build out a growth plan based on your analysis\n- **Team Analysis**: Extend the tool to analyze team contributions and dynamics\n\n## License\n\nISC License\n\nCopyright (c) 2025 Jonathan Hoyt\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonmagic%2Flevel-up","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonmagic%2Flevel-up","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonmagic%2Flevel-up/lists"}