Repository navigation
Add HTML application-tracker dashboard (skill + native swelist command) - #13
Merged
Merged
Conversation
Introduces a new Claude Code skill (skills/html-report/SKILL.md) that renders job_search_tracker.csv and documents/applications/*/outcome.md into a single self-contained HTML dashboard with stat cards, Chart.js charts, and a filterable table. Read-only — never writes back to the tracker or archive.
Reads from the same applications table job-application-manager writes to (~/.offerplus/applications.db) instead of a separate CSV file, so both skills stay in sync automatically. Adapts charts/columns/status buckets to the actual tracker schema, with graceful fallback for the older v0.2.x column set.
Adapts the pattern from ai-job-search's test_html_report_command.py to this repo's actual layout (skills/html-report/SKILL.md, pytest style): checks the skill file exists with valid frontmatter and required sections, confirms it reads the shared SQLite tracker rather than the old CSV design, and that generated reports/ is gitignored.
Ports the html-report skill into real Python code so the dashboard can be generated without Claude: swelist/report.py reads the same SQLite applications table as the other tracker commands (adapting to either the base or richer v0.5.0 column set), computes status-bucket stats, and renders a self-contained HTML file with Chart.js charts and a filterable table. Wired up as `swelist tracker report [output] [--db] [--open]`, with --open launching the browser directly since a CLI can do that where a Claude skill can't.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #13 +/- ##
==========================================
+ Coverage 73.16% 79.36% +6.20%
==========================================
Files 5 6 +1
Lines 313 412 +99
==========================================
+ Hits 229 327 +98
- Misses 84 85 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
html-reportClaude Code skill (skills/html-report/SKILL.md) that generates a self-contained HTML dashboard (stat cards, Chart.js charts, filterable table) from the shared SQLite tracker database used byjob-application-manager, and adds structural tests for it plus areports/.gitignoreentry.swelist tracker report [output] [--db PATH] [--open]CLI command (swelist/report.py) that generates the same dashboard deterministically in Python, without Claude — reads the sameapplicationstable, adapts to either the base or richer tracker schema, and--openlaunches the browser directly.CLAUDE.md(Quick Reference, Project Layout, CLI Architecture, Testing) andskills/profile.mdto document the new command/skill.Test plan
pytest— full suite passes (67 passed, 6 skipped; skipped tests require the optionalopenaiextra)pytest tests/test_report.py— unit tests for the HTML generator (99% coverage onreport.py)pytest tests/test_tracker.py— CLI tests forswelist tracker report, including empty DB, missing DB, default output path, and--openbrowser launch (100% coverage ontracker.py)pytest tests/test_html_report_skill.py— structural checks on the Claude skill fileflake8clean on all touched filesGenerated by Claude Code