Purge live-state claims that ~/.pi is our harness; keep general pi documentation in omp-docs/ and dated historical records. - README.md: single config source; Legacy Notes reworded - AGENTS.md: drop 'like ~/.pi did' framing - APPEND_SYSTEM.md: okf-spec -> omp-docs/references/okf-spec.md - dotfiles/zsh/.zshrc: systemprompt alias -> APPEND_SYSTEM.md - managed skill llm-fleet-model-swap + model_config_sync skill: single-source models.yml; validation script YAML-only - memories (MEMORY.md, memory_summary.md, learned.md): single source - omp-docs: .okf root -> ~/.omp/omp-docs; de-live pi-era claims in pi/index.md, pi-web-access.md, engineering/agents-files.md
2.6 KiB
2.6 KiB
name, description
| name | description |
|---|---|
| html-change-report | Generate and open a self-contained dark-theme HTML change report (Keep a Changelog categories + code samples) for a git repo time window; use when Frank asks for a rendered report of recent work. |
HTML change report (Keep a Changelog + review aids)
Produce a self-contained HTML report of repo work in a time window and open it in Firefox.
Data gathering
- Window commits:
git log --since="24 hours ago" --pretty='%h|%ad|%s' --date=format:%H:%M(split on|). - Metrics:
git diff --shortstat <first>^..HEAD, per-area file counts viagit diff --name-only … | awk -F/ '{print $1"/"$2}' | sort | uniq -c | sort -rn. - Bucket commits into phase/theme rows by time-of-day for the timeline table.
Report structure (standard: Keep a Changelog 1.1.0)
- Executive summary (metrics + 3-5 bullets).
- Full commit timeline table, phase-color-tagged (border-left per phase).
git show <hash>command list per theme — Frank uses this for his review pass.- Changes by category: Added/Changed/Fixed/Removed/Security; omit empty categories; cite commit hashes per item. Fixed = old behavior was a bug; Changed = intentional.
- 4-6 notable code excerpts: read real files, pick load-bearing/instructive code, note file:lines + commits + why it matters. HTML-escape everything (
html.escape). - Verification evidence table (what / how / result).
- Incidents & open risks.
- Actions required from Frank (numbered, effort hints).
HTML requirements
- Self-contained: inline CSS only, NO CDNs (must work from file:// offline). Dark theme CSS vars (#1a1b26 bg family works).
- Sticky top nav, section anchors,
<pre class=code><code>blocks, commit hashes as.tagchips. - Build via python (eval kernel): subprocess for git data, string concat for CSS (avoid f-string brace pain), f-strings for rows.
- Literal
{}in HTML text (e.g.fallbackChains: {}) inside an f-string is a SyntaxError — build that fragment by concatenation or double the braces.
Delivery + verification
- Write to
$HOME/Reports/<repo>-<window>-<date>.html(outside repo, tree stays clean; create the dir — on Dankware that is /home/blank/Reports, on dank hosts /home/dank/Reports). - Validate: python HTMLParser feed (parse errors) + open in headless browser (
writeJSON to xd://browser: open → run withdocument.querySelectorAllcounts) → close tab. Element counts are sufficient proof; a fullPage screenshot of a long report returns a multi-MB raw pixel buffer dump — only screenshot short pages. - Open for Frank:
nohup firefox --new-tab file:///<path> >/dev/null 2>&1 & disown.