Skip to content

Repository files navigation

Recompose Experience

Public concept site and fictional interactive demo for Recompose: a composition runtime on a device you control that turns source-owned information into bounded, decision-ready surfaces.

What “local” means

The implementation prototype runs its composition process and state locally. Calendar, weather, and other services may remain upstream, but adapters request only contract-bounded fields; raw records are not copied into a central Recompose datastore. Publishing a surface is a separate, deliberate action.

This repository is the public experience/UI prototype, not the private source-connected runtime. It includes a Today composition and an AI use case where LLM Wiki acts as a durable, provenance-rich data fabric.

Public boundaries

  • Every value in the demo and sample JSON files is fictional.
  • This repository contains no private corpus, generated household artifact, private network address, credential, or production endpoint.
  • The published pages are static, call no API, and collect no data. The Hermes walkthrough records a real workshop run against the same fictional fixture; playing the video invokes nothing.
  • Recompose is an early implementation prototype, not a finished product.

Run locally

python3 -m http.server 8080

Open http://127.0.0.1:8080/. The practical demo is at /demo/.

Verify and build

python3 scripts/verify_site.py
python3 scripts/build_pages.py
python3 scripts/verify_site.py _site

build_pages.py copies an explicit public allowlist into _site/; repository tooling and documentation are not deployed as site files. For a private local denylist, set RECOMPOSE_PRIVATE_MARKERS to ::-separated values before verification.

Optional Firefox runtime smoke test (run the server and driver in separate terminals):

python3 -m http.server 8190 --directory _site
geckodriver --port 4444
python3 scripts/test_verify_briefing_contract.py
python3 scripts/verify_briefing_runtime.py

The runtime check exercises whole-page format switching, nested selected-card reframing, unsupported-format refusal, evidence preservation, and stale-dependent withholding.

Structure

  • index.html — public explainer
  • demo/ — sanitized interactive Today experience and inspectable fictional fixtures
  • ai/ — fictional grounded-answer experience with inspectable LLM Wiki pages and query packet
  • career/ — resume + daily job-search match loop with ask/change-card states
  • briefing/ — living presentation room with live whole-page format recomposition, selected-card audience reframing, evidence preservation, and freshness refusal
  • assets/recompose-in-practice.mp4 — narrated, captioned quick walkthrough
  • assets/recompose-end-to-end.mp4 — five-minute narrated system demo covering architecture, contracts, use cases, and refusal paths
  • assets/recompose-hermes-end-to-end.mp4 — five-minute recorded Hermes run through bridge validation, real bounded model synthesis, citation checks, delivery, and pre-inference refusal
  • assets/recompose-ai-fabric.mp4 — narrated AI + LLM Wiki walkthrough
  • assets/recompose-career.mp4 — narrated Career Match walkthrough
  • assets/recompose-briefing.mp4 — narrated Living Briefing walkthrough
  • scripts/build_pages.py — explicit public artifact builder
  • scripts/verify_briefing_runtime.py — Firefox smoke test for page/card recomposition and stale refusal
  • scripts/test_verify_briefing_contract.py — mutation tests for fail-closed fixture validation
  • public-files.txt — per-file publication allowlist; unlisted files never enter _site/
  • .github/workflows/pages.yml — least-privilege GitHub Pages deployment

Deploy

When public publishing is intentionally re-enabled, push main to marctheshark3/recompose-experience. The Pages workflow verifies the repository, builds _site/, verifies the artifact again, and publishes only that directory.

About

Recompose: a local-first composition layer for decision-ready interfaces

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages