Find a file
2026-07-09 01:37:25 +02:00
.agents/skills M1.5a pipeline core 2026-05-30 20:52:12 +02:00
.claude docs: resolve triage queue (state-placement, diagnostics wording) 2026-05-31 06:08:38 +02:00
.github/workflows fix: storybook ci timeout 2026-06-10 17:33:33 +02:00
.storybook M1.1-code-conventions 2026-05-29 04:41:31 +02:00
app fix: happ rabb 2026-07-09 01:37:25 +02:00
assets/images chore: initialize Expo + Electron foundation 2026-04-22 22:52:27 +02:00
components fix: happ rabb 2026-07-09 01:37:25 +02:00
constants chore: add lefthook, editorconfig, node pin; drop semicolons 2026-04-23 03:14:32 +02:00
docs fix: id generation in mobile, transition to uuid only, ulid removed 2026-07-08 19:49:26 +02:00
electron fix: milestone 1 review issues 2026-06-04 00:09:10 +02:00
hooks refactor: extract useMasterDetailBack hook from settings route 2026-06-01 18:28:12 +02:00
lib fix: happ rabb 2026-07-09 01:37:25 +02:00
locales/en fix: happ rabb 2026-07-09 01:37:25 +02:00
patches fix: preserve expansion state across add/delete in suggestion categories 2026-05-24 01:25:45 +02:00
scripts Slice/m2.6 (#353) 2026-07-02 12:54:37 +02:00
types fix: milestone 1 review issues 2026-06-04 00:09:10 +02:00
.editorconfig chore: add lefthook, editorconfig, node pin; drop semicolons 2026-04-23 03:14:32 +02:00
.gitattributes feat: db migration guards 2026-06-10 16:42:24 +02:00
.gitignore chore: ignore local worktrees 2026-05-30 03:02:26 +02:00
.mcp.json chore(deps): fix breakages from pnpm update 2026-04-23 00:48:56 +02:00
.npmrc chore: code conventions 2026-05-29 01:30:08 +02:00
.nvmrc Slice/m2.1 (#348) 2026-06-16 21:42:06 +02:00
.prettierignore fix: milestone 1 review issues 2026-06-04 00:09:10 +02:00
.prettierrc.json chore: add lefthook, editorconfig, node pin; drop semicolons 2026-04-23 03:14:32 +02:00
.remarkignore docs: inventory — JSONBlock + MultiSelect shipped, JSONViewer revision landed 2026-05-28 17:12:20 +02:00
AGENTS.md fix(ci): point AGENTS.md symlink at relative CLAUDE.md 2026-05-24 02:59:42 +02:00
app.json M1.2-drizzle-schema 2026-05-29 23:16:20 +02:00
babel.config.js M1.2-drizzle-schema 2026-05-29 23:16:20 +02:00
CLAUDE.md M1.1-code-conventions 2026-05-29 04:41:31 +02:00
components.json chore: set up proper ESLint + Prettier 2026-04-23 02:44:23 +02:00
drizzle.config.ts M1.2-drizzle-schema 2026-05-29 23:16:20 +02:00
drizzle.studio.config.ts chore: drizzle kit studio setup 2026-06-01 22:28:06 +02:00
eslint.config.js feat(eslint): forbid lib/diagnostics importing lib/stores 2026-06-01 20:53:26 +02:00
global.css feat(chrome): dedicated bar-height token + larger top-bar actions 2026-06-01 21:34:55 +02:00
lefthook.yml fix(ci): point AGENTS.md symlink at relative CLAUDE.md 2026-05-24 02:59:42 +02:00
LICENSE.md chore: transfer license from old codebase 2026-04-30 02:07:51 +02:00
metro.config.js M1.2-drizzle-schema 2026-05-29 23:16:20 +02:00
nativewind-env.d.ts feat(styling): set up NativeWind v4 with Tailwind CSS 2026-04-22 23:58:41 +02:00
package.json fix: id generation in mobile, transition to uuid only, ulid removed 2026-07-08 19:49:26 +02:00
pnpm-lock.yaml fix: id generation in mobile, transition to uuid only, ulid removed 2026-07-08 19:49:26 +02:00
pnpm-workspace.yaml fix: preserve expansion state across add/delete in suggestion categories 2026-05-24 01:25:45 +02:00
postcss.config.js chore: add lefthook, editorconfig, node pin; drop semicolons 2026-04-23 03:14:32 +02:00
README.md chore: local-first mentions cleaned up, app is local, but use api llm access 2026-05-17 22:12:12 +02:00
skills-lock.json feat: suggestion categories draggable, collapsible WIP 2026-05-23 22:08:11 +02:00
tailwind.config.js feat(chrome): dedicated bar-height token + larger top-bar actions 2026-06-01 21:34:55 +02:00
tsconfig.json fix(themes): revert .web.tsx rename + tsconfig moduleSuffixes 2026-05-03 01:28:42 +02:00
vite.config.ts chore: add lefthook, editorconfig, node pin; drop semicolons 2026-04-23 03:14:32 +02:00
vitest.config.ts slice: M1.5 S1 2026-06-06 00:22:37 +02:00
vitest.setup.ts slice: M1.5 S1 2026-06-06 00:22:37 +02:00
vitest.shims.d.ts chore: set up proper ESLint + Prettier 2026-04-23 02:44:23 +02:00

Aventuras

An AI-collaborative writing app. You write fiction with an AI co-author against backed by an advanced memory system that ensures characters, locations, items, factions, lore, plot threads, and event history are all tracked as the story unfolds. Branch the narrative freely. Roll back any change. All data lives on your machine.

Cross-platform via a single Expo app: mobile (iOS / Android) through Expo Go, desktop (Linux / macOS / Windows) through Electron wrapping the web build. No accounts, no cloud, no environment variables; everything in local database file.

Note on history. The previous iteration of this project lives on the legacy/master branch. The main branch is a ground-up rewrite taking lessons learned. Same idea, different architecture. Old issues, branches, and history remain reachable via legacy/master.

Status

Pre-implementation. The project is in the design + foundation phase:

  • Domain, schema, architecture, and UI surfaces are comprehensively specified in docs/.
  • Tooling is wired (Expo, Electron, Storybook, ESLint, Prettier, remark, lefthook, Vitest, Playwright story tests, CI).
  • A handful of design-system primitives have been scaffolded (components/ui/* with Storybook stories).
  • The writing-app domain itself, stories, entries, the classifier pipeline, world-state retrieval, the AI collaborator, has not yet been built.

This README describes the project's intent. Documentation describes the design. Code-following-design lands incrementally.

Documentation

The substance of the project today is the design corpus. Start here:

  • docs/README.md index of all documentation.
  • docs/architecture.md pipeline, generation context, retrieval, translation. How the code will be organized.
  • docs/data-model.md schema decisions: stories, branches, entries, entities, lore, threads, happenings, chapters, delta log.
  • docs/ui/ UI design: principles, cross-cutting patterns, and per-screen wireframes (interactive HTML + companion .md rationale per surface).
  • docs/tech-stack.md full stack with rationale.
  • docs/followups.md open design questions (current milestone).
  • docs/explorations/ dated session records of design decisions.

Stack

  • Runtime: Expo SDK 55, React 19, React Native 0.83, React Native Web, Electron 41.
  • Styling: NativeWind 4 + Tailwind 3 with shadcn-style theme CSS variables.
  • Storage: expo-sqlite (no external backend).
  • Build / dev: pnpm 10, Node 24, Vite (via Storybook), TypeScript.
  • Quality: ESLint 9, Prettier 3, remark (doc lint), lefthook (pre-commit hooks), Vitest + Playwright (story tests).

Full rationale in docs/tech-stack.md.

Repository layout

.
├── app/                Expo Router routes (mobile + web)
├── electron/           Electron main + preload (desktop shell)
├── components/         Shared UI components (RN + RN Web)
│   └── ui/             Design-system primitives + Storybook stories
├── lib/ hooks/ types/ constants/
├── docs/               Project documentation (the canonical spec)
│   ├── ui/             UI principles, patterns, per-screen designs
│   ├── explorations/   Dated design-session records
│   └── followups.md / parked.md
├── scripts/            Repository scripts
├── .storybook/         Storybook config
├── .github/            CI workflows
└── .claude/            Claude-Code-specific tooling (rules, skills)

Development

Requires Node 24 and pnpm 10 (both pinned via .nvmrc and packageManager).

pnpm install

Doc tooling

pnpm lint:docs       # remark over docs/

Wireframes are static HTML colocated with each screen's .md under docs/ui/screens/<screen>/. Open the .html directly in a browser.

Storybook (design-system primitives)

pnpm storybook       # http://localhost:6006

Runs the active design-system catalog. Stories under components/ui/*.stories.tsx.

Web / mobile (Expo)

pnpm web             # web build via Expo
pnpm android         # Android emulator
pnpm ios             # iOS simulator

The app shell is currently the default Expo scaffold, domain implementation hasn't started. These commands work but won't show the writing app itself.

Desktop (Electron)

pnpm desktop         # web build + Electron, hot-reloaded

Quality

pnpm lint            # ESLint
pnpm format:check    # Prettier
pnpm typecheck       # tsc --noEmit
pnpm test            # Vitest watch
pnpm test:run        # Vitest single-run + Playwright story tests

CI runs all of the above on every push / PR.

Workflow

  • Pre-commit hooks (lefthook.yml) run prettier + eslint + remark in parallel on staged files. Don't bypass with --no-verify.
  • Commits are small and focused. Multiple commits beat a single omnibus commit when the work is logically separable.
  • File moves use git mv to preserve history; inbound references update in the same commit.

Project-specific Claude-Code rules live under .claude/ (skills + topic-scoped rules that auto-load when relevant files are read).