Skip to content

feat(lampstand): semantic parse + fail-closed router (campaign gap #6) - #37

Merged
mdheller merged 1 commit into
mainfrom
feat/lampstand-service
Aug 3, 2026
Merged

feat(lampstand): semantic parse + fail-closed router (campaign gap #6)#37
mdheller merged 1 commit into
mainfrom
feat/lampstand-service

Conversation

@mdheller

@mdheller mdheller commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Turns the lampstand launcher prototype into real service logic — the Spotlight replacement's core (feature-gaps-zero #267 gap #6).

  • tools/lampstand_parse.py — NL query → typed tokens (the annotation tree the launcher + Turn Witness render) + resolved {intent, object, scope, purpose, space, admissible}. Purposes follow the consent plane; a destructive operate is marked so it can never self-authorize. Rule/lexicon v0 — a transparent baseline for the learned App-Intents model, not a permanent dictionary.
  • tools/lampstand_route.py — fail-closed routing: discover → sherlock (IR)/holmes; operate/egress → consent-plane (owner grant); destructive/unrecognized → Governor (deny). to_turn() projects a query into a Turn Witness feed turn, closing the loop to the surface.
  • 12 tests (python -m pytest) + .github/workflows/lampstand.yml.

Verified locally: 12 pass; the three canonical queries route allow/consent/deny correctly.

The Spotlight replacement's core logic: NL query → typed tokens + resolved intent
(lampstand_parse) → governed routing (lampstand_route). Discover routes to sherlock
(IR); operate/egress needs an owner grant; destructive/unrecognized fails closed to
the Governor. to_turn() projects a query into a Turn Witness feed turn, closing the
loop to the surface. 12 tests + CI workflow. Rule/lexicon v0 → learned App-Intents next.
@mdheller
mdheller merged commit 852661a into main Aug 3, 2026
3 checks passed
@mdheller
mdheller deleted the feat/lampstand-service branch August 3, 2026 09:06
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.

1 participant