v0.1.6: human-friendly reports
- Dashboard renders deck reports and scorecards as formatted pages (self-contained markdown renderer inlined in index.html — headings, styled tables, evidence blockquotes; no CDN, air-gap friendly) - At-a-glance strip on every deck report: composite with delta vs the prior deck, quant/qual/penalty mix, KPI hit/miss chips, BDEF best/weakest category, red-flag count - Generated DECK_REPORT.md now leads with a concise "At a glance" summary table (scorecard.py); jobs.py passes the previous deck record so the delta appears in the file too; dashboard hides the duplicate section since the strip covers it - .gitignore: .venv/ Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
6bf0786993
commit
32d5d7f373
@@ -513,7 +513,10 @@ class JobRunner:
|
||||
|
||||
# --- reports ------------------------------------------------------------
|
||||
self.phase = "collecting"; self._persist()
|
||||
deck_md = scorecard.render_deck_report(record, ext_obj, adjudication_md)
|
||||
all_recs = led.deck_records(slug_c) # period-sorted, incl. the new record
|
||||
idx = next((i for i, r in enumerate(all_recs) if r.get("deck_id") == deck_id), -1)
|
||||
prev_rec = all_recs[idx - 1] if idx > 0 else None
|
||||
deck_md = scorecard.render_deck_report(record, ext_obj, adjudication_md, prev_rec)
|
||||
if rec_path and str(rec_path).endswith(".json"):
|
||||
ledger_md = os.path.splitext(str(rec_path))[0] + ".md"
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user