Lattice
연구를 위한 작업공간
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A personal filing cabinet for German paperwork that explains each document in plain English. Moving to Germany means a flood of contracts and official letters: Mietvertrag, Krankenversicherung, Internetvertrag, Behördenbriefe. Klartext stores them and, for each one, produces an Extraction: what kind of document it is, an English summary, the key takeaways (amounts, dates, obligations), and the critical warnings (notice periods, hidden fees, liabilities) that cost you money or rights if you miss them. Live at klartext.nooney.dev — single-user deployment; sign-in is allowlist-gated.README 전문 보기 ↗
A personal filing cabinet for German paperwork that explains each document in plain English.
Moving to Germany means a flood of contracts and official letters: Mietvertrag, Krankenversicherung, Internetvertrag, Behördenbriefe. Klartext stores them and, for each one, produces an Extraction: the document type, an English summary, the key takeaways (amounts, dates, obligations), and the Action Items (notice periods, deadlines, hidden fees) that cost you money or rights if you miss them.
Live at klartext.nooney.dev. Sign-in is allowlist-gated.
Requires Node 24 and pnpm 9.
git clone https://github.com/JohnNooney/KlartextDMS.git && cd KlartextDMS
pnpm install
pnpm dev:demo
Open http://localhost:4200 and sign in with [email protected] / test1234 (emulator only). The seeded Documents open with their Extractions already filled in, and dev:demo swaps the AI provider for deterministic fixtures, so no API keys are needed. Plain pnpm dev calls the real Gemini model and needs Firebase credentials (see development internals).
Klartext is also a sandbox for an enterprise integration problem: embedding a newly acquired Vue product inside a legacy Angular dashboard when the only integration point is an <iframe>. So it is two independent frontends that talk only over window.postMessage: no Module Federation, no Web Components.
| Host | Guest | |
|---|---|---|
| Stack | Angular 21, SCSS | Vue 3.5, Vite 8, Tailwind 4 |
| Role | Sign-in, library, uploads, PDF reader, the frame the Guest renders in | Extraction panel; calls the AI |
| Dev port | :4200 | :5173 |
{ v, type, sessionId, payload }, defined in packages/bus-contract. The Host queues Extractions as background jobs after upload and opens a Session (INIT_SESSION) when a Document is clicked; the Guest reports progress back while you keep browsing.Domain terms (Host, Guest, Document, Extraction, Action Item, Bus, Envelope, Session, ...) are defined in CONTEXT.md.
v1 is shipped: sign-in, folder library, uploads, the reader, and persisted Extractions. v2 is in progress: the Extraction v2 schema, Action Items, and the Host extraction index are done; library search, calendar reminders, and per-page Translation are planned. See docs/spec.md.
apps/host Angular dashboard
apps/guest Vue insights panel rendered in the Host's iframe
packages/ shared theme tokens, Bus contract, Firebase config
e2e/ Playwright suite and screenshot composites
scripts/ emulator seed, fixtures, build helpers
emulator-data/ committed emulator snapshot
docs/ documentation, ADRs, spec
firebase.json, firestore.rules, storage.rules Firebase config and security rules
pnpm dev # Host + Guest + Auth/Firestore/Storage emulators (seeded)
pnpm dev:demo # same, with fixture Extractions instead of Gemini
pnpm typecheck
pnpm test # unit suites across the workspace
pnpm e2e # Playwright under the emulators
pnpm screenshots # regenerate docs/screenshots/*.png
The documentation index covers architecture, ADRs, deployment, and development internals (ports, e2e wiring, App Check tokens, the full script list).
Contributing: issues live in GitHub Issues (see docs/agents/issue-tracker.md); agent conventions are in AGENTS.md.