Submission category
Productivity & Enterprise Solutions - Orion Global Hackathon 2026.
Try it in two minutes: download SKATE-Setup.exe from the v1.1.0 release and run it. A complete Windows install with zero dependencies - no Python, no accounts, no cloud services - and the fictional Harborlight demo vault included so everything works immediately.
Inspiration
I facilitate operations improvement workshops for a living - kaizen events, root cause sessions, and design thinking sprints. Every session produces two things: great ideas and a pile of sticky notes that nobody looks at again. Observations, pain points, direct quotes, and decisions all disappear once the meeting ends. Teams either repeat discovery work later or dump an entire transcript into AI and hope the important parts survive the summary. I built SKATE because I was tired of losing the work that already happened in the room.
What it does
SKATE is a local-first workshop operating system, not another note-taking app.
- Capture: The Spotter agent captures natural meeting notes using simple typed signals (
#Oobservation,#Ppain,#Qquestion,#Aaction) - the same classification a skilled note-taker already does in their head, made machine-readable. Spotter Live also records any meeting app by capturing what the PC hears: no bot in the call, no calendar access, and transcription runs entirely on-device. Screenshots and files paste straight into notes. A Stream Deck and a 3D-printed skateboard wheel microphone puck provide a physical interface during workshops. - Govern: Every signal is stored as a Markdown/YAML memory object with themes, provenance, active or inactive scope, and typed relationships like
supports,contradicts, andcauses. - Retrieve: Weighted lexical search (plus optional local semantic embeddings) returns only the evidence needed instead of an entire transcript. Measured on the demo vault: the top result was relevant in 9 of 10 test queries - 4.2x better than chance - and the evidence payload stays flat at ~2,300 tokens whether the vault holds 25 notes or 800. The benchmark harness ships in the repo, so judges can reproduce every number:
python tools/benchmark_retrieval.py. - Synthesize: GRIND turns that evidence into ranked pain points, How Might We prompts, and solution ideas. It reads whole notes, not just openings, and when a transcript exceeds its context budget it selects by relevance - keeping marked signals, the opening, and the closing decisions - instead of truncating the tail. Every output links back to the original source notes and can be exported to Excel.
- Follow through:
#Asignals become action items in The Lineup, where they can be tracked as one-time, session-linked, or recurring Standard Work tasks. - Share memory with agents: An MCP server lets Codex, ChatGPT Desktop, or Claude Desktop query only the relevant slice of workshop memory. Reads are governed and bounded; writes are deliberately narrow - an agent can add new notes with explicit agent provenance, but can never edit or delete existing memory, and every write requires human approval.
You can choose how SKATE reasons. It supports OpenAI, Anthropic Claude, any model through OpenRouter, a local model with LM Studio, or no AI at all. In offline mode, deterministic local synthesis keeps the workflow fully functional - and because the AI payload is small and bounded, the same workflow already runs well on models small enough for a laptop.
How I built it
SKATE is built with Python, FastAPI, and Jinja2, wrapped in pywebview to create a native Windows application. Markdown and YAML files are the source of truth, while search indexes and embeddings are rebuildable performance layers instead of proprietary storage.
The provider layer supports the OpenAI Responses API, Anthropic Messages API, and any OpenAI-compatible endpoint, including OpenRouter and LM Studio. Reasoning settings are mapped to each provider's native capabilities.
The meeting recorder captures system audio through WASAPI loopback, optionally mixed with the microphone, and transcribes on-device with faster-whisper. The knowledge graph is a custom 2D and 3D WebGL visualization. The MCP server uses the official Python SDK over STDIO and Streamable HTTP. The installer bootstraps a compatible Python automatically if the machine has none, with no admin rights. The microphone puck housing is 3D printed from a skateboard wheel design, and the build files are included in the repository.
Challenges I ran into
The biggest challenge was deciding how much context to send to an AI model. Sending an entire transcript is easy, but it's expensive, difficult to audit, and - per the long-context research (NoLiMa, Context Rot, Lost in the Middle) - less accurate: model performance degrades as input grows. I built weighted lexical scoring with governance filters to narrow the evidence first, then measured the results with proper statistics: chance baselines computed from the hypergeometric distribution and an exact confidence interval, because a retrieval number without its null baseline isn't a claim anyone can check.
Long transcripts posed a related problem: naive truncation keeps the first hour of a meeting and throws away the endings - which is exactly where decisions live. I built relevance-based selection that keeps marked signals, keyword-scored paragraphs, and both the opening and closing of every note. In testing on a 140,000-character workshop note, truncation lost a pain point, an action item, and the final decision; selection kept all three at the same token cost.
Making the "No AI" mode legitimate was another challenge. Every feature that didn't require a model had to work completely offline, which forced a clean separation between deterministic local processing and LLM-powered synthesis.
I also wanted every generated insight to be traceable. That requirement shaped the entire memory architecture because every pain point, prompt, and recommendation has to link back to the original evidence.
Accomplishments that I'm proud of
A judge can be exploring a working workshop in minutes, two ways: run the v1.1.0 installer with zero dependencies, or clone the repository and double-click Start SKATE.bat - Python not required either way, because the launcher installs one if needed. The Harborlight demo vault ships with both.
Every performance claim in the README reproduces from a committed harness: retrieval quality with analytic chance baselines and an exact confidence interval, and a scale sweep showing the AI payload stays flat as the vault grows. I'd rather ship numbers anyone can re-run than a headline nobody can check.
I'm also proud that the synthesis is explainable instead of feeling like a black box. Every result can be traced back to the notes that produced it.
Finally, privacy isn't an afterthought - it's the architecture. Workshop data stays in local files, meetings are recorded with no bot and no vendor cloud, transcription runs on-device, and both transcription and reasoning can run on local models. Client conversations never have to leave the machine.
What I learned
Workshop data behaves a lot like any other data pipeline. If observations are structured when they're captured, everything downstream gets easier. Retrieval is better, synthesis is more reliable, and follow-through takes less effort.
The deeper surprise: humans and language models fail on unstructured information in remarkably similar ways. People lose findings in a 40-page transcript; models lose them in a 113,000-token context. The same fix works for both - classify at the moment of capture, and never ship the noise.
I also learned that model flexibility matters. The same workflow can run on a frontier model, a local LLM, or entirely offline, and users appreciate having that choice.
What's next for SKATE - Scalable Knowledge Architecture & Technology Engine
Next, I want to add cross-session pattern analysis so teams can identify recurring issues across multiple workshops. I'm also planning shared team vaults with role-based governance, signal analytics to surface trends and recurring themes, macOS and Linux support, and richer MCP write tools - relationship linking and action status updates - behind the same explicit human-approval gates.
Log in or sign up for Devpost to join the conversation.