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
35 lines
2.6 KiB
Markdown
35 lines
2.6 KiB
Markdown
---
|
|
name: html-change-report
|
|
description: 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 via `git 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)
|
|
1. Executive summary (metrics + 3-5 bullets).
|
|
2. Full commit timeline table, phase-color-tagged (border-left per phase).
|
|
3. `git show <hash>` command list per theme — Frank uses this for his review pass.
|
|
4. Changes by category: Added/Changed/Fixed/Removed/Security; omit empty categories; cite commit hashes per item. Fixed = old behavior was a bug; Changed = intentional.
|
|
5. 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`).
|
|
6. Verification evidence table (what / how / result).
|
|
7. Incidents & open risks.
|
|
8. 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 `.tag` chips.
|
|
- 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 (`write` JSON to xd://browser: open → run with `document.querySelectorAll` counts) → 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`.
|