From 5c3608f77fcd69ca20862d38a2d8cb0e45aa2413 Mon Sep 17 00:00:00 2001 From: Tom Ballard Date: Sun, 5 Jul 2026 12:36:21 +0000 Subject: [PATCH 1/2] docs(decisions): accept ADR-100 after ratification [roadmap:lore-overlay] Status flips Proposed to Accepted: the decision merged through independent review in #320 (ADR-065 trust boundary). --- rac/decisions/adr-100-desktop-capture-product.md | 2 +- rac/roadmaps/{future => }/lore-overlay.md | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename rac/roadmaps/{future => }/lore-overlay.md (100%) diff --git a/rac/decisions/adr-100-desktop-capture-product.md b/rac/decisions/adr-100-desktop-capture-product.md index a97e63e9..3e55b998 100644 --- a/rac/decisions/adr-100-desktop-capture-product.md +++ b/rac/decisions/adr-100-desktop-capture-product.md @@ -7,7 +7,7 @@ type: decision ## Status -Proposed +Accepted ## Category diff --git a/rac/roadmaps/future/lore-overlay.md b/rac/roadmaps/lore-overlay.md similarity index 100% rename from rac/roadmaps/future/lore-overlay.md rename to rac/roadmaps/lore-overlay.md From bcb1748edd370837fc374c3047f36ba57bd49418 Mon Sep 17 00:00:00 2001 From: Tom Ballard Date: Sun, 5 Jul 2026 12:36:21 +0000 Subject: [PATCH 2/2] docs(roadmap): graduate lore-overlay to a scoped roadmap [roadmap:lore-overlay] Implements rac/roadmaps/lore-overlay.md. Moves the item out of future/ now ADR-100 ratifies its gate, and aligns the initiatives with the ratified decision: cross-platform MVP (macOS + Windows first-class, both signing pipelines), extraction of the staging spike to rac-overlay, and the admin-provisioned setup path. Execution epic: #321. Also links the retrieval-diagnostics roadmap to its execution epic #314 alongside the programme epic #248. --- rac/roadmaps/lore-overlay.md | 92 +++++++++++++++++---------- rac/roadmaps/retrieval-diagnostics.md | 1 + 2 files changed, 60 insertions(+), 33 deletions(-) diff --git a/rac/roadmaps/lore-overlay.md b/rac/roadmaps/lore-overlay.md index 043d87ed..d613aac8 100644 --- a/rac/roadmaps/lore-overlay.md +++ b/rac/roadmaps/lore-overlay.md @@ -3,32 +3,37 @@ schema_version: 1 id: RAC-KVW466JX9931 type: roadmap --- -# Lore Overlay (Future) +# Lore Overlay ## Status Planned -Unscheduled — recorded as future intent, not yet on a release. It is gated on the -decision to start a `lore-*` desktop product and must not displace nearer-term -work. The implementation contract (the *how*) lives in the design `lore-overlay`. +Graduated out of `future/`: the gate this item was recorded behind — the +decision to start a desktop product — is ratified as ADR-100 (Tauri v2, +cross-platform from the outset, admin-provisioned deployment, own +`rac-overlay` repository). It must not displace scheduled engine work. The +implementation contract (the *how*) lives in the design `lore-capture-overlay`. +Execution is tracked in GitHub (ADR-093): the epic in `## Related Tickets` +carries ordering and task state. ## Context `lore-capture-surfaces` names a desktop overlay (Host B) as one of the favoured ways to reach a non-technical author "alongside any screen", and -`lore-capture-overlay` (design) works out its architecture: a Tauri v2 app, -macOS-first, that summons a -modal from a global hotkey, runs the `rac-capture` loop behind a bring-your-own -gateway, and opens a draft pull request through the same GitHub-App + two-gate -path as `lore-slack-capture-flow`. This roadmap records the *what and why* and the -build's acceptance bar, kept as intent rather than a scheduled release. It is the +`lore-capture-overlay` (design) works out its architecture: a Tauri v2 app +that summons a modal from a global hotkey, runs the `rac-capture` loop behind +an admin-provisioned gateway, and opens a draft pull request through the same +GitHub-App + two-gate path as `lore-slack-capture-flow`. ADR-100 ratified the +product and reset the platform posture from macOS-first to cross-platform: +macOS and Windows are both first-class targets of the initial release cycle. +This roadmap records the *what and why* and the build's acceptance bar. It is the desktop sibling of `lore-slack-bot`; both wrap the shared capture core (`rac-capture-skill`). ## Outcomes -- A macOS user captures a decision from a global hotkey, mid-task, without leaving +- An author on macOS or Windows captures a decision from a global hotkey, mid-task, without leaving their current app, learning Markdown, or touching git — and nothing enters the reviewed corpus except through an independent maintainer's pull-request merge (ADR-065, ADR-077). @@ -38,20 +43,29 @@ desktop sibling of `lore-slack-bot`; both wrap the shared capture core ## Initiatives -### Initiative 1 — macOS MVP - -A Tauri v2 menu-bar app: global hotkey → non-activating modal → the `rac-capture` -interview → a draft pull request via the GitHub App → the two-gate model. Includes -the settings surface (gateway endpoint/key/model; target repo + GitHub App; -hotkey). Signed with Developer ID and notarized. This is the smallest end-to-end -slice that captures a real decision. - -### Initiative 2 — Windows fast-follow - -Bring the same codebase to Windows (tray via `Shell_NotifyIcon`, hotkey via -`RegisterHotKey`, always-on-top via `WS_EX_TOPMOST`), with Authenticode / Azure -Trusted Signing, the SmartScreen-reputation ramp, and a bundled/bootstrapped -WebView2 runtime. +### Initiative 1 — Cross-platform MVP + +A Tauri v2 tray app on macOS and Windows (ADR-100: both first-class in the +initial release cycle): global hotkey → non-activating modal → the +`rac-capture` interview → a draft pull request via the GitHub App → the +two-gate model. Includes the settings surface (gateway endpoint/key/model; +target repo + GitHub App; hotkey) and both distribution pipelines: Developer +ID signing + notarization on macOS; Authenticode / Azure Trusted Signing, the +SmartScreen-reputation ramp, and a bundled/bootstrapped WebView2 runtime on +Windows (tray via `Shell_NotifyIcon`, hotkey via `RegisterHotKey`, +always-on-top via `WS_EX_TOPMOST`). This is the smallest end-to-end slice +that captures a real decision on either platform. + +### Initiative 2 — Extraction and admin provisioning + +Extract the staging spike (`lore-overlay/` in rac-core, PR #202) into the +product's own `rac-overlay` repository with history preserved (ADR-092, +ADR-100), and build the admin-provisioned setup path: an administrator +configures the model gateway, the GitHub App identity, and the target +repository once (composing with the ADR-088 profile scaffold), so the +author-facing surface is only hotkey → interview → fidelity confirmation. +The provisioning documentation is a first-class deliverable of this +initiative, not an afterthought. ### Initiative 3 — Polish and the optional live viewer @@ -65,7 +79,8 @@ of `lore-frontend-optionality`) or stays capture-only. ADR-035, ADR-067); the app is a thin client over the `rac` contract (ADR-063). - Two gates; the app's GitHub identity only proposes and never approves/merges (ADR-065, ADR-077). -- A `lore-*` product in its own repository, not engine code (ADR-068); it emits to +- A product in its own repository — `rac-overlay` per ADR-092/ADR-100, Lore + brand at org/marketplace level — not engine code (ADR-068); it emits to git and stores no content (ADR-024). ## Non-Goals @@ -77,13 +92,17 @@ of `lore-frontend-optionality`) or stays capture-only. ## Success Measures -- A macOS user produces a schema-valid artifact (`rac validate` exits 0) from a - hotkey-summoned interview, choosing no id and writing no Markdown, landing it as - a draft PR promoted only by an independent merge. +- An author on macOS or Windows produces a schema-valid artifact + (`rac validate` exits 0) from a hotkey-summoned interview, choosing no id and + writing no Markdown, landing it as a draft PR promoted only by an independent + merge. - The app reuses `lore-slack-capture-flow`'s write/approve path and the `rac-capture` core with no `rac-core` change. -- Evidence that authors use a desktop hotkey surface (the signal that would - schedule this out of `future/`). +- An admin completes the one-time provisioning (gateway, GitHub App, target + repo) from the documentation alone, after which a non-technical author + never sees a configuration surface. +- Evidence that authors use a desktop hotkey surface — corpus lift from + authors who are not maintainers is the adoption signal. ## Assumptions @@ -97,8 +116,10 @@ of `lore-frontend-optionality`) or stays capture-only. ## Risks - **Distribution tax.** Signing/notarization (macOS) and Authenticode + - SmartScreen reputation + WebView2 (Windows) are real, ongoing costs; mitigated - by macOS-first and a cloud signing service. + SmartScreen reputation + WebView2 (Windows) are real, ongoing costs — and + ADR-100 accepts both pipelines in the first cycle; mitigated by a cloud + signing service and by treating distribution as Initiative 1 scope, not a + follow-up surprise. - **Desktop GitHub-App auth.** The device-flow install and on-device token caching are the least-charted part; mitigated by treating it as Initiative 1's spike. - **Scope creep into screen-watching.** The temptation to read on-screen context; @@ -112,6 +133,7 @@ of `lore-frontend-optionality`) or stays capture-only. - ADR-067 - ADR-068 - ADR-077 +- ADR-100 ## Related Designs @@ -120,3 +142,7 @@ of `lore-frontend-optionality`) or stays capture-only. ## Related Roadmaps - rac-capture-skill + +## Related Tickets + +- itsthelore/rac-core#321 diff --git a/rac/roadmaps/retrieval-diagnostics.md b/rac/roadmaps/retrieval-diagnostics.md index ed0ce3dc..e0d70836 100644 --- a/rac/roadmaps/retrieval-diagnostics.md +++ b/rac/roadmaps/retrieval-diagnostics.md @@ -129,3 +129,4 @@ behaviour. ## Related Tickets - itsthelore/rac-core#248 +- itsthelore/rac-core#314