tt: Timesheet and Punch Card Verifier | Generated by AI
Summary
Project: tt — Timesheet and punch card verification tool for contractor attendance compliance.
How it works:
- User registers (
tt register <id> <name>) and logs in (tt login <id>) - Via REPL (
uv run ttwith no args), user runs/add_recordswhich:- Takes a screenshot of a timesheet/punch card
- Sends it to OpenRouter vision LLM (gemini-2.5-flash) for structured extraction
- Saves extracted data to
data/<staff_id>/<record_type>.json - Copies the image to
images/with timestamped naming
tt verifycross-checks client timesheets against vendor punch cards- Reports weekly/monthly pass/fail against a 60% project-time threshold
Current data:
- 1 registered user:
45294575(james.z.w.li) - 5 weeks of client timesheet records extracted (May 2026)
- Project ratios: 80%, 80%, 80%, 100%, 100% — all passing
Bugs fixed this session:
uv run ttfailed — missing[build-system]in pyproject.toml (hatchling added)tt statuscrashed —.session.jsonpicked up as contractor cache (hidden file filter added)uv.lockremoved from git tracking- GitHub remote URL updated to
lzwjava/tt
Architecture notes:
- Two cache systems coexist: flat
data/<name>.json(contractor verification cache fromtt verify) and per-userdata/<staff_id>/<type>.json(REPL records from/add_records) - REPL has full tab completion, interactive prompts, and image extraction pipeline
- All data is Pydantic v2 models with JSON serialization