Skip to content

Build P-TRIV.1-.3: the Trivia Wire - role-aware status-bar trivia + the executive INTEL WIRE (ADR-0174/0175/0176) - #241

Merged
mlcyclops merged 2 commits into
masterfrom
feat/trivia-wire
Jul 6, 2026
Merged

Build P-TRIV.1-.3: the Trivia Wire - role-aware status-bar trivia + the executive INTEL WIRE (ADR-0174/0175/0176)#241
mlcyclops merged 2 commits into
masterfrom
feat/trivia-wire

Conversation

@mlcyclops

Copy link
Copy Markdown
Owner

What

A word-game ticker in the status bar's idle gap (between the Gov chip and the gate-active pill) that keeps the user learning while they wait - visible only during the boredom windows: agent turns streaming past an 8s grace, and idle sessions (empty composer + past sessions or an unlocked Knowledge Graph) past 15s. One keystroke hides it; right-click dismisses permanently (undo toast). Score tile joins the metrics rail; lifetime tally in localStorage. Letters render in the single LUCID accent color.

Role-aware content (ADR-0088 roles)

  • executive - 50 seeded GovCon questions (M&A/novation/FOCI, capture mechanics, budget/policy) plus the INTEL WIRE: a live defense/intel-sector headline interleaved between every question
  • manager - 100 questions: CMMI-DEV L2+L3 process areas, appraisal mechanics, EVM/WBS/risk
  • security - 100 questions: CMMC 2.0 (DFARS 7019/7020/7021, SPRS scoring, scoping) + RMF (800-37/53/53A/30/39/61/137/161)
  • developer / no role - 100 general engineering questions

350 questions total, shape-gated, duplicate-free across banks, answer-position spread pinned by tests.

The INTEL WIRE's security posture

  • Curated first-party RSS allowlist (Breaking Defense, Defense One, DefenseScoop, GovCon Wire, ExecutiveGov, FNN Defense); no user URL surface this increment
  • Every refresh batch runs the SAME fail-closed scan gate as skill imports (real sidecar): findings or a dead scanner drop the whole batch + recordBlock - never 'safe by default' (invariant build(deps): bump github/codeql-action from 3 to 4 #3)
  • Every reach-out emits a P-REPORT.10-style host-only egress SecurityEvent (no new EventName values)
  • Headlines render as esc()'d text spans only - never markdown, never near a prompt; fail-quiet to questions-only when offline/air-gapped
  • A question parked unanswered 45s yields via a neutral skip() (no score impact) so the idle wire truly streams

Verified

66 trivia/news tests + demo-P-TRIV.1/.2/.3 green (the .3 demo includes a LIVE 40-headline fetch through the real scanner); tsc + license clean; verified live in the dev renderer (idle wake, keystroke hide, role switch retargets content, INTEL line scrolls between questions). Local Windows shows only the 6 pre-existing path-sep test failures (fs_browse + lucid_acp).

ADRs 0174/0175/0176 + PROGRESS entries included.

🤖 Generated with Claude Code

…he executive INTEL WIRE (ADR-0174/0175/0176)

A word-game ticker in the status bar's idle gap (between the Gov chip and the
gate-active pill), on the boredom windows only: streaming turns past an 8s grace,
and idle sessions (empty composer + past sessions or an unlocked KG) past 15s.

- P-TRIV.1 (ADR-0174): pure game core (no-repeat cycle, streak scoring capped x3,
  idempotent answers, corrupt-safe injected persistence, esc()'d per-letter markup),
  thin rAF shell (hover pause, wheel scrub, A-D keys, right-click hide + undo),
  score tile in the metrics rail, single LUCID-accent letter color.
- P-TRIV.2 (ADR-0175): role-aware banks riding the ADR-0088 role (executive ->
  GovCon, manager -> CMMI-DEV L3 + PM, security -> CMMC + RMF, developer -> general)
  + the idle-engagement visibility branch.
- P-TRIV.3 (ADR-0176): banks deepened to 100/100/100 + 50 executive (350 questions,
  duplicate-free, spread-checked); the executive INTEL WIRE - curated defense/intel
  RSS fetched first-party server-side, scan-gated FAIL-CLOSED through the real
  sidecar (findings or a dead scanner drop the batch), host-only egress
  SecurityEvents per reach-out, fail-quiet offline, headlines rendered as escaped
  text interleaved between questions; 45s park timeout via a neutral skip() keeps
  the idle wire streaming.

66 trivia/news tests + demos P-TRIV.1/.2/.3 green (P-TRIV.3 includes a live
40-headline fetch through the real scanner); tsc + license clean; the only local
failures are the 6 pre-existing Windows path-sep tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread desktop/intel_news.ts Fixed
…le-escaping alert

Sequential decode passes let '&#38;lt;' decode twice (to '<') after the tag-strip
had already run. One alternation over the original text means produced characters
are never re-scanned; a regression test pins the property. (The ticker esc()'d
every character regardless - this closes the hygiene gap, not an exploitable XSS.)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants