How joe-huber/github-developer-toolkit works
ghdtk analyzes a GitHub developer profile into provenance-backed metrics, scores, findings, and recommendations, then exposes the report through CLI/report outputs or an interactive dashboard. The main workflow is profile search → API collection → immutable raw snapshots → analysis → scoring and recommendations → report → visualization. The README documents the overall pipeline; sampled route and UI code confirms dashboard request ownership. Individual analyzer and report-assembly wiring was not sampled, so those connections are shown only at the documented subsystem level.
Main entry points: routes.py Report routes · assemble.py Report assembler · analyzers Profile analyzers · client.py GitHub client
Components 20
User interfaces
- CLI
src/ghdtk/cli/__init__.py - Dashboard UI
dashboard-ui/src/App.tsx - Report hook
dashboard-ui/src/hooks/useReport.ts - UI API client
dashboard-ui/src/api/client.ts
Data collection
- GitHub client
src/ghdtk/api/client.py - Profile collector
src/ghdtk/collectors/orchestrator.py - README collector
src/ghdtk/collectors/collectors.py
Profile analysis
- Profile analyzers
src/ghdtk/analyzers - Dimension scoring
src/ghdtk/scoring - Recommendations
src/ghdtk/recommendations
Reports and dashboard
- Dashboard app
src/ghdtk/dashboard/app.py - Report routes
src/ghdtk/dashboard/routes.py - Report visualizations
dashboard-ui/src/components/Dashboard.tsx - Report assembler
src/ghdtk/report/assemble.py - Report renderers
src/ghdtk/report
Models and configuration
- Raw snapshots
src/ghdtk/models/raw - Derived analysis
src/ghdtk/models/derived - Settings
src/ghdtk/config/settings.py
Other components
- Developer
- GitHub API
Connections 27
- Developer → Dashboard UI: searches profile
- Developer → CLI: analyzes profile
- Dashboard UI → Report hook: requests report
- Report hook → UI API client: fetches report
- UI API client → Report routes: HTTP request
- Dashboard app → Report routes: mounts routes
- Report routes → Settings: loads settings
- Report routes → GitHub client: creates client
- Report routes → Profile collector: collects profile
- Report routes → README collector: collects README
- Profile collector → GitHub client: requests GitHub data
- README collector → GitHub client: requests README
- GitHub client → GitHub API: reads API
- Profile collector → Raw snapshots: builds snapshots
- README collector → Raw snapshots: builds README data
- Raw snapshots → Profile analyzers: analyzes snapshots
- Profile analyzers → Derived analysis: produces metrics and findings
- Derived analysis → Dimension scoring: scores metrics
- Profile analyzers → Recommendations: supplies findings
- Dimension scoring → Recommendations: supplies scores
- Profile analyzers → Report assembler: provides analysis
- Dimension scoring → Report assembler: provides scores
- Recommendations → Report assembler: provides actions
- Report assembler → Report routes: returns report
- Report assembler → Report renderers: formats report
- Report routes → Report visualizations: returns report data
- Dashboard UI → Report visualizations: renders report