Lattice
연구를 위한 작업공간
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A personal (and soon multi-user) operating system for life, home, and work.
Capture messy notes. AiEA proposes structure — one-time vs recurring, priorities, deadlines, people follow-ups — you confirm. Then it surfaces a Today board, Daily Brief, and in-app pings so you stay ahead.
• Next.js 16 (App Router) + TypeScript + Tailwind
• Prisma 7 + SQLite (local); schema is workspace-scoped for multi-tenant later
• SpaceXAI / xAI (grok-4.5) for capture + brief (optional; heuristics work without a key)
• PWA manifest for installable web appREADME 전문 보기 ↗A personal (and soon multi-user) operating system for life, home, and work.
Capture messy notes. Farm Manager proposes structure — one-time vs recurring, priorities, deadlines, people follow-ups — you confirm. Then it surfaces a Today board, Daily Brief, and in-app pings so you stay ahead.
grok-4.5) for capture + brief (optional; heuristics work without a key)# 1. Install deps
npm install
# 2. Env
cp .env.example .env
# Optional: set XAI_API_KEY from https://console.x.ai
# 3. Database
npm run db:migrate
# or: npx prisma migrate dev
# 4. PWA icons (optional)
npm run icons
# 5. Dev server
npm run dev
Open http://localhost:3000 → Get started → create an account.
| Flow | What happens |
|---|---|
| Capture | Paste brain-dump → AI proposes tasks → you accept |
| Today | Priority + due-today + follow-ups |
| People | Open loops per person |
| Recurring | Templates; occurrences auto-materialize when due |
| Daily Brief | Morning-style briefing + coach tips |
| Pings | Bell menu for due reminders |
| Script | Purpose |
|---|---|
npm run dev | Dev server |
npm run build | Production build |
npm run db:migrate | Apply migrations (local SQLite) |
npm run db:push:turso | Apply Prisma migrations to Turso (prod/preview — Vercel build does not migrate) |
npm run db:studio | Prisma Studio |
npm run icons | Generate PWA icons |
| Var | Purpose |
|---|---|
DATABASE_URL | SQLite path (file:./dev.db) |
TURSO_DATABASE_URL / TURSO_AUTH_TOKEN | Production libSQL. Preview uses its own database, aiea-db-preview, not production. |
Starting the app does not copy a bf-maintenance database and does not change the schema. Production (aiea-cyan) stays on the old schema until you push the schema immediately before merge, then merge right away — the code that is live now breaks on the new schema.
Back up first (turso db shell <db-name> ".dump" or a Turso branch). Count tasks before and after (SELECT COUNT(*) FROM Task). Find the workspace with SELECT id, name, createdAt FROM Workspace. Then:
vercel env pull .env.vercel --environment=production --yes
FARM_SCHEMA_PUSH=1 node --env-file=.env.vercel scripts/push-turso-schema.mjs
Import only after that backup, into the workspace id you looked up. Load the production env with --env-file. BF_SOURCE_* stays on this command, never in Vercel.
FARM_IMPORT_ALLOW_REMOTE=1 \
BF_SOURCE_DATABASE_URL="libsql://..." \
BF_SOURCE_AUTH_TOKEN="..." \
npx tsx --env-file=.env.vercel scripts/import-bf-data.ts --workspace <id>
A file database needs an explicit --local. With TURSO_DATABASE_URL unset and no --local, the script refuses so it cannot write dev.db:
BF_SOURCE_DATABASE_URL="file:./bf.db" \
npx tsx scripts/import-bf-data.ts --local --workspace <id>
| XAI_API_KEY | SpaceXAI / xAI key — console.x.ai |
| XAI_MODEL | Optional model override (default grok-4.5) |
| XAI_BASE_URL | Optional API base (default https://api.x.ai/v1) |
| AIEA_TIMEZONE | Optional IANA tz for AI date reasoning (e.g. America/New_York) |
| AUTH_SECRET | Session hardening (change in prod) |
| CRON_SECRET | Auth for /api/cron/materialize-schedules (daily 12:00 UTC) |
| BF_SOURCE_DATABASE_URL / BF_SOURCE_AUTH_TOKEN | Old bf-maintenance database for scripts/import-bf-data.ts. One-shot, on your machine. Never set these in Vercel. |
| FARM_IMPORT_WORKSPACE_ID | Workspace that receives that import (or pass --workspace) |
| FARM_SCHEMA_PUSH | Set to 1 to allow scripts/push-turso-schema.mjs on a remote database. Not a Vercel env var. |
| FARM_IMPORT_ALLOW_REMOTE | Set to 1 to allow the import script to write to Turso. Not a Vercel env var. |
Remove these from Vercel when this app ships: BF_MAINTENANCE_URL, BF_MAINTENANCE_ORIGIN, NEXT_PUBLIC_BF_MAINTENANCE_URL, BF_INTEGRATION_SECRET. Keep CRON_SECRET, TURSO_DATABASE_URL, TURSO_AUTH_TOKEN, AUTH_SECRET, and XAI_*. After the import, freeze bf-maintenance.vercel.app (no further deploys or edits).
.env (never commit this file):XAI_API_KEY="xai-..."
npm run dev) so Next.js reloads env.GET /api/ai/status?ping=1Without a key, Capture still works via local heuristics.
Private — all rights reserved unless you choose otherwise.
Hong / agents: use poteto-mode with the project skill .cursor/skills/verify-aiea/ (launch → doctor → Playwright drive → evidence). Confirm ~/.cursor/rules/pstack-models.mdc on the box. One-shot:
./.cursor/skills/verify-aiea/scripts/gate.sh --local --feature capture-accept
Live/post-auth needs AIEA_SMOKE_EMAIL + AIEA_SMOKE_PASSWORD (both; smoke user only — never personal / 1Password). When unset, gate.sh --live-smoke clean-skips (CI stays green). On a pull request it also clean-skips: production is still the pre-merge app, while this revision’s doctor requires the public landing page on logged-out GET / and 307 to /tasks when signed in. That check stays strict on main. Hong creates the smoke User row; verify does not. Set CI secrets with gh secret set (see .cursor/skills/verify-aiea/SKILL.md). Legacy AIEA_EMAIL/AIEA_PASSWORD are demoted — migrate to SMOKE names. No separate BF_* pair for smoke login. Parallel to bf-maintenance verify — do not conflate with BF PIN / #20 login threads.