{"owner":"EpicenterHQ","repo":"epicenter","hasSkills":true,"totalSkillsCount":210,"totalTokensCount":69931,"categories":["anthropic-skill","root-instruction","claude-rule","project-spec","command-prompt","plugin-manifest","cursor-rule"],"hasMcp":false,"mcpConfig":null,"found":[".agents/skills/worktree-hygiene/SKILL.md",".agents/skills/ui-design/SKILL.md",".agents/skills/yjs/SKILL.md",".agents/skills/typebox/SKILL.md",".agents/skills/typescript/SKILL.md",".agents/skills/tsconfig/SKILL.md",".agents/skills/testing/SKILL.md",".agents/skills/technical-articles/SKILL.md",".agents/skills/tauri/SKILL.md",".agents/skills/tanstack-table/SKILL.md",".agents/skills/svg-animations/SKILL.md",".agents/skills/sveltekit/SKILL.md",".agents/skills/svelte/SKILL.md",".agents/skills/styling/SKILL.md",".agents/skills/standalone-commits/SKILL.md",".agents/skills/specification-writing/SKILL.md",".agents/skills/spec-execution/SKILL.md",".agents/skills/social-media/SKILL.md",".agents/skills/services-layer/SKILL.md",".agents/skills/rust-errors/SKILL.md",".agents/skills/refactoring/SKILL.md",".agents/skills/radical-options/SKILL.md",".agents/skills/query-layer/SKILL.md",".agents/skills/pull-request/SKILL.md",".agents/skills/prototype/SKILL.md",".agents/skills/post-implementation-review/SKILL.md",".agents/skills/one-sentence-test/SKILL.md",".agents/skills/monorepo/SKILL.md",".agents/skills/method-shorthand-jsdoc/SKILL.md",".agents/skills/logging/SKILL.md",".agents/skills/hono/SKILL.md",".agents/skills/handoff/SKILL.md",".agents/skills/grill-me/SKILL.md",".agents/skills/greenfield-clean-breaks/SKILL.md",".agents/skills/govuk-style/SKILL.md",".agents/skills/github-issues/SKILL.md",".agents/skills/git/SKILL.md",".agents/skills/fresh-context-review/SKILL.md",".agents/skills/first-read-review/SKILL.md",".agents/skills/factory-function-composition/SKILL.md",".agents/skills/error-handling/SKILL.md",".agents/skills/drizzle-orm/SKILL.md",".agents/skills/documentation/SKILL.md",".agents/skills/dialectic/SKILL.md",".agents/skills/diagnose/SKILL.md",".agents/skills/delegate-claude/SKILL.md",".agents/skills/define-errors/SKILL.md",".agents/skills/control-flow/SKILL.md",".agents/skills/consult-claude/SKILL.md",".agents/skills/collapse-pass/SKILL.md",".agents/skills/cohesion-over-testability/SKILL.md",".agents/skills/codex-task-backlog-hygiene/SKILL.md",".agents/skills/code-audit/SKILL.md",".agents/skills/cloudflare-workers/SKILL.md",".agents/skills/change-proposal/SKILL.md",".agents/skills/caveman/SKILL.md",".agents/skills/better-auth-security-best-practices/SKILL.md",".agents/skills/better-auth-best-practices/SKILL.md",".agents/skills/autumn/SKILL.md",".agents/skills/auth/SKILL.md",".agents/skills/attach-primitive/SKILL.md",".agents/skills/asymmetric-wins/SKILL.md",".agents/skills/arktype/SKILL.md",".agents/skills/agent-instructions/SKILL.md",".agents/skills/agent-goal/SKILL.md","AGENTS.md","CLAUDE.md","docs/architecture.md",".claude/commands/workers.md","apps/skills/package.json","apps/skills/README.md","apps/skills/tsconfig.json","packages/vite-config/package.json","packages/vite-config/tsconfig.json","packages/ui/CHANGELOG.md","packages/ui/package.json","packages/ui/README.md","packages/ui/tsconfig.json","packages/sync/CHANGELOG.md","packages/sync/package.json","packages/sync/README.md","packages/sync/tsconfig.json","packages/svelte-utils/CHANGELOG.md","packages/svelte-utils/package.json","packages/svelte-utils/README.md","packages/svelte-utils/tsconfig.json","packages/sqlite/package.json","packages/sqlite/README.md","packages/sqlite/tsconfig.json","packages/skills/CHANGELOG.md","packages/skills/package.json","packages/skills/README.md","packages/skills/tsconfig.json","packages/server/CHANGELOG.md","packages/server/package.json","packages/server/README.md","packages/server/tsconfig.json","packages/recorder/package.json","packages/recorder/README.md","packages/recorder/tsconfig.json","packages/matter-core/package.json","packages/matter-core/tsconfig.json","packages/lens/package.json","packages/lens/tsconfig.build.json","packages/lens/tsconfig.json","packages/identity/CHANGELOG.md","packages/identity/package.json","packages/identity/tsconfig.json","packages/field/CHANGELOG.md","packages/field/package.json","packages/field/tsconfig.build.json","packages/field/tsconfig.json","packages/document-sync/package.json","packages/document-sync/tsconfig.json","packages/data/package.json","packages/data/README.md","packages/data/tsconfig.json","packages/constants/CHANGELOG.md","packages/constants/package.json","packages/constants/README.md","packages/constants/tsconfig.json","packages/client/CHANGELOG.md","packages/client/package.json","packages/client/tsconfig.json","packages/chat/package.json","packages/chat/tsconfig.json","packages/blobs/package.json","packages/blobs/README.md","packages/blobs/tsconfig.json","packages/auth/CHANGELOG.md","packages/auth/package.json","packages/auth/tsconfig.json","packages/app-shell/package.json","packages/app-shell/tsconfig.json","packages/app/package.json","packages/app/README.md","packages/app/tsconfig.build.json","packages/app/tsconfig.json","packages/agent-protocol/package.json","packages/agent-protocol/tsconfig.json","packages/agent/package.json","packages/agent/README.md","packages/agent/tsconfig.json",".agents/skills/prototype/LOGIC.md",".agents/skills/prototype/UI.md","packages/data/browser-evidence/tsconfig.json",".agents/skills/workspace-api/references/action-return-shapes.md",".agents/skills/workspace-api/references/actions-layout-and-attachments.md",".agents/skills/workspace-api/references/deriving-action-inputs.md",".agents/skills/workspace-api/references/primitive-api.md",".agents/skills/workspace-api/references/schema-definition-patterns.md",".agents/skills/workspace-api/references/table-kv-crud-observation.md",".agents/skills/workspace-api/references/table-migrations.md",".agents/skills/ui-design/references/anti-slop-tells.md",".agents/skills/ui-design/references/comparable-apps.md",".agents/skills/ui-design/references/component-system.md",".agents/skills/ui-design/references/direction-discovery.md",".agents/skills/ui-design/references/preflight.md",".agents/skills/typescript/references/advanced-typescript-features.md",".agents/skills/typescript/references/factory-patterns.md",".agents/skills/typescript/references/project-conventions.md",".agents/skills/typescript/references/runtime-schema-patterns.md",".agents/skills/typescript/references/testing-patterns.md",".agents/skills/typescript/references/type-organization.md",".agents/skills/typescript/references/type-safety-and-control-flow.md",".agents/skills/testing/references/honest-tests.md",".agents/skills/testing/references/setup-pattern.md",".agents/skills/testing/references/test-deletion-grill.md",".agents/skills/testing/references/test-structure.md",".agents/skills/testing/references/type-testing.md",".agents/skills/svg-animations/references/recipes.md",".agents/skills/svelte/references/component-ui-patterns.md",".agents/skills/svelte/references/lifecycle-and-reactivity.md",".agents/skills/svelte/references/mutations-and-workspace-inputs.md",".agents/skills/standalone-commits/references/splitting-into-ordered-waves.md",".agents/skills/specification-writing/references/decision-hygiene.md",".agents/skills/services-layer/references/service-implementation-pattern.md",".agents/skills/services-layer/references/service-organization-platforms.md",".agents/skills/query-layer/references/advanced-query-patterns.md",".agents/skills/query-layer/references/error-transformation-patterns.md",".agents/skills/query-layer/references/runtime-dependency-injection.md",".agents/skills/pull-request/references/body-patterns.md",".agents/skills/pull-request/references/changelog-entries.md",".agents/skills/pull-request/references/examples.md",".agents/skills/pull-request/references/github-pr-operations.md",".agents/skills/pull-request/references/visual-patterns.md",".agents/skills/greenfield-clean-breaks/references/goal-template.md",".agents/skills/greenfield-clean-breaks/references/wave-ordering.md",".agents/skills/fresh-context-review/references/type-lifecycle-review.md",".agents/skills/factory-function-composition/references/single-or-array-pattern.md",".agents/skills/factory-function-composition/references/sync-construction-render-gate.md",".agents/skills/error-handling/references/http-boundaries.md",".agents/skills/error-handling/references/toast-on-error.md",".agents/skills/error-handling/references/wrapping-boundaries.md",".agents/skills/collapse-pass/references/goal-template.md",".agents/skills/collapse-pass/references/library-refusal.md",".agents/skills/collapse-pass/references/never-touch.md",".agents/skills/collapse-pass/references/periodic-monorepo-pass.md",".agents/skills/collapse-pass/references/report-format.md",".agents/skills/collapse-pass/references/smell-catalog.md",".agents/skills/cohesion-over-testability/references/sweep-procedure.md",".agents/skills/codex-task-backlog-hygiene/agents/openai.yaml",".agents/skills/agent-instructions/references/composition-audit.md",".agents/skills/agent-instructions/references/evaluation.md",".agents/skills/agent-instructions/references/instruction-placement.md",".agents/skills/agent-instructions/evals/routing.json","apps/landing/.cursor/rules/posthog-integration.mdc","packages/ui/src/section-header/README.md","packages/app/test-fixtures/consumer/package.json","packages/app/test-fixtures/consumer/tsconfig.json"],"skills":{".agents/skills/worktree-hygiene/SKILL.md":"---\nname: worktree-hygiene\ndescription: Safely reap merged Git worktrees and branches across Epicenter harnesses. Use when cleaning `git worktree list`, removing orphaned or detached worktrees, or deciding whether one is safe to delete, not when creating branches or commits.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# Worktree Hygiene\n\n> **Related Skills**: [git](../git/SKILL.md) for branch creation, staging, and commit messages. [standalone-commits](../standalone-commits/SKILL.md) for reviewable units. [pull-request](../pull-request/SKILL.md) for merge strategy.\n\nFour harnesses (warp, codex, opencode, conductor) mint worktrees here and nothing reaps them, so they accumulate. The cure is to reap on close: when a branch lands, remove its worktree and delete the branch in the same motion. This skill is the safe procedure for doing that, one-off or as a periodic sweep.\n\n## The reap signal (and the trap)\n\n\"Branch merged\" is **not** sufficient to reap. A merged branch routinely carries live uncommitted edits in its working tree; removing it with `--force` destroys that work. The real signal is:\n\n```txt\nreap = (branch fully contained in origin/main)  AND  (working tree clean OR only throwaway dirt)\n```\n\nUse `git merge-base --is-ancestor <branch> origin/main` for containment: if true, every commit on the branch is in `origin/main`, which is airtight even when the branch sits on a stacked base. `git cherry origin/main <branch>` shows unmerged commits (`+` lines).\n\n## Audit procedure\n\nFetch first if `origin/main` is stale, then classify every worktree:\n\n```bash\ncd <main-checkout>; base=origin/main\ngit worktree list --porcelain | awk '/^branch /{print $2}' | sed 's#refs/heads/##' | while read b; do\n  [ -z \"$b\" ] && continue\n  ahead=$(git cherry \"$base\" \"$b\" 2>/dev/null | grep -c '^+')\n  if git merge-base --is-ancestor \"$b\" \"$base\" 2>/dev/null; then st=\"MERGED\"; else st=\"$ahead unmerged\"; fi\n  printf \"%-50s %s\\n\" \"$b\" \"$st\"\ndone\n```\n\nFor each MERGED worktree, check its working tree with `git -C <path> status --porcelain` (no output = clean). Inspect dirty file lists before deciding: lockfile-only churn is throwaway; modified source or unique untracked files are real work. Detached-HEAD worktrees have no branch line; test their tip with `git merge-base --is-ancestor <sha> origin/main`.\n\n## Decide per worktree\n\n```txt\nmerged + clean                 -> reap: git worktree remove <path>; git branch -d/-D <branch>\nmerged + throwaway dirt only   -> reap: git worktree remove --force <path>; git branch -d/-D <branch>\ndetached + merged + clean      -> reap: git worktree remove <path>   (no branch to delete)\nmerged + REAL uncommitted work -> preserve. Branch or commit the work first; do not reap.\ndetached + REAL uncommitted    -> anchor before anything: git -C <path> switch -c holding/<name>\nunmerged commits               -> leave alone (active work)\n```\n\n## Reaping is destructive: gate it\n\n`git worktree remove` and `git branch -d` are destructive (AGENTS.md: destructive actions need approval). For a sweep, present an approve-list of exact commands grouped by tier before running any of them. Never reap on a self-reported \"it's merged\"; run the audit yourself.\n\n- `git branch -d` refuses unless the branch is merged into the current HEAD. If local `main` lags `origin/main`, it will refuse a branch that is merged only on the remote; `-D` is then justified by the `merge-base --is-ancestor origin/main` proof.\n- `git worktree remove` can fail with `Directory not empty` when ignored files (node_modules, `.DS_Store`) remain. It still de-registers the worktree. Finish with `git worktree prune` then `rm -rf <path>`.\n- The harnesses spawn and mutate worktrees continuously, even mid-sweep. Re-run the audit at the end; treat reaping as ongoing discipline, not a one-time event.\n\n## Repo-specific worktree gotchas\n\n- **`git stash` is shared across all worktrees here.** A bare `git stash`/`stash pop` can grab another worktree's entry. Prefer explicit branches; avoid stash.\n- **Animal-named warp branches are stacked on unmerged bases**, cut from whatever was checked out rather than clean `origin/main`. Before opening a PR from one, run `git diff --stat origin/main...HEAD` and confirm scope; unrelated work rides along otherwise.\n- **Verify HEAD before committing in a worktree** (`git rev-parse --abbrev-ref HEAD`). A handoff may claim a \"fresh worktree on branch X\" that does not exist; these stay checked out on the base branch itself.\n\n## Invariant: one owner per worktree\n\nEach worktree and branch has a single owner (the harness/agent that created it). Do not reap or commit into a worktree you do not own without confirming it is abandoned; a clean-looking tree may belong to a live session.\n\n## Final checks\n\n1. Re-run the audit; confirm reaped paths are gone with `git worktree list`.\n2. `git worktree prune` to clear stale registrations.\n3. Confirm any anchored `holding/*` branches still hold their edits.\n</content>\n</invoke>\n",".agents/skills/ui-design/SKILL.md":"---\nname: ui-design\ndescription: Design and review Epicenter interfaces while collapsing local UI primitives into the shared component system. Use when co-designing, exploring comparable apps, turning a feature idea into Svelte UI, or changing `packages/ui`, not for a tiny CSS repair.\nmetadata:\n  author: epicenter\n  version: '1.0'\nlicense: Complete terms in LICENSE.txt\n---\n\n# UI Design\n\n`ui-design` preserves the user-visible objective while reimagining the simplest\ngreenfield composition and collapsing local markup, arbitrary styling, and\nduplicated visual contracts into `@epicenter/ui`, except where app-specific\nbehavior or a load-bearing interaction earns the custom shape.\n\nThe existing screen is evidence, not a structure to reproduce. For Epicenter\nproduct apps, `@epicenter/ui` is the default system. Treat shadcn-svelte as\nimplementation lineage and upstream grounding, not as an app import path.\n\n## Canonical Path\n\n1. Name the user-visible objective in one concrete sentence. When the product\n   direction is unsettled, read\n   [references/direction-discovery.md](references/direction-discovery.md) before\n   choosing the composition.\n2. Read the current and neighboring surfaces. Inventory the workflow, hierarchy,\n   accessibility, important states, and recognizable product intent that matter.\n3. Sketch the simplest greenfield composition using the natural anatomy of\n   existing `@epicenter/ui` primitives.\n4. Run the component-system collapse pass below. Refuse exact reproduction of\n   incidental markup, spacing, colors, breakpoints, and one-off states.\n5. Implement the whole state surface: loading, empty, error, disabled, pending,\n   selected, and filter-empty where relevant.\n6. Verify visible, responsive, and interactive results in the browser.\n7. Run UI pre-flight before final handoff or committing the change.\n\nFor substantial work, state the design read:\n\n```txt\nObjective: <what the user accomplishes>.\nGreenfield shape: <the simplest natural component-system composition>.\nCollapse: <the local structure or styling that disappears>.\n```\n\n## Component-System Collapse Pass\n\nRun this for every meaningful UI implementation or review, not only work called\na redesign. This is the UI application of\n[asymmetric-wins](../asymmetric-wins/SKILL.md); load that skill when a candidate\nrefusal needs an explicit product-loss versus deletion-prize decision.\n\n```txt\nPreserve the product sentence.\nChallenge the inherited composition.\nRefuse the incidental visual promise.\nDelete the local code family.\n```\n\nInspect every wrapper, class bundle, arbitrary Tailwind value, custom color,\nlocally reconstructed state surface, and primitive override. Ask:\n\n1. Does an existing primitive or variant already own this contract?\n2. Can the primitive's natural shape replace the wrapper and its classes?\n3. Is the exact local detail load-bearing for comprehension, accessibility,\n   interaction, brand, or required geometry?\n4. If it survives, who owns it: the app's product behavior or the shared system?\n\nImplement obvious collapses directly. Ask the user only when the refusal changes\nworkflow, hierarchy, product meaning, brand posture, or a plausibly load-bearing\ndetail.\n\nKeep custom UI app-local only when it owns app-specific behavior or product\nmeaning. Move a stable visual contract into `packages/ui` when several apps need\nit or it owns an accessibility or interaction contract.\n\n## Human Taste Gate\n\nAsk one focused question when human preference would materially change the\nvisual language, brand posture, primary hierarchy, navigation, density, or the\ndirection of an expressive public surface. Present concrete alternatives and a\nrecommendation. Do not ask about choices settled by the shared system,\naccessibility, existing product intent, or a mechanical collapse.\n\n## Product UI And Expressive Surfaces\n\nProduct UI should usually be dense, quiet, and operational. Distinctiveness\ncomes from workflow fit, hierarchy, copy, state design, and purposeful details.\nMarketing pages, docs entry points, prototypes, and explicitly expressive work\ncan use a stronger visual identity, but still run the collapse pass and keep only\ndetails that serve the chosen direction.\n\n## References\n\n- Read [references/direction-discovery.md](references/direction-discovery.md)\n  when the user wants to co-design, compare directions, or turn a rough UI idea\n  into a buildable surface.\n- Read [references/comparable-apps.md](references/comparable-apps.md) when the\n  design question depends on category fit or what other apps do.\n- Read [references/component-system.md](references/component-system.md) for every\n  meaningful Epicenter product UI implementation or review. It owns collapse\n  smells and exceptions, then routes exact component and package mechanics to\n  the authoritative `packages/ui` guide.\n- Read [references/anti-slop-tells.md](references/anti-slop-tells.md) for public,\n  marketing, docs, portfolio-like, or highly polished work where templated output\n  is a material risk.\n- Read [references/preflight.md](references/preflight.md) before final handoff or\n  committing any visible UI change. Report only failures or intentional exceptions.\n\n## Delegation Boundaries\n\n- `styling` owns CSS, Tailwind, spacing, wrappers, overflow, and scroll traps.\n- `svelte` owns component structure, runes, lifecycle, and state mechanics.\n- `tanstack-table` owns table state, columns, sorting, and row identity.\n- `writing-voice` owns visible interface copy and tone.\n\nFor an explicit external standards or accessibility audit, WebFetch the Vercel\nWeb Interface Guidelines and apply them directly, reporting findings as\n`file:line`. Fetch them per review rather than caching a copy here, because the\nupstream rules change and a stale copy would be worse than no copy.\n\n```txt\nhttps://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md\n```\n\nThe design decision and component-system collapse stay here even when another\nskill owns their implementation mechanics.\n\n## Final Output\n\nReport the changed surfaces, browser verification, any material deletion prize,\nand only the custom shapes or pre-flight exceptions that intentionally remain.\n",".agents/skills/yjs/SKILL.md":"---\nname: yjs\ndescription: Apply Epicenter’s Yjs 14 patterns for row documents, transactions, persistence, and synchronization. Use when working with `@y/y`, CRDTs, collaborative editing, awareness, or Yjs storage and providers.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# Yjs 14 CRDT Patterns\n## Reference Repositories\n\n- [Yjs](https://github.com/yjs/yjs): CRDT framework for shared editing and offline-first data\n- [Yjs Protocols](https://github.com/yjs/y-protocols): algorithmic grounding for sync and awareness\n\n## Upstream Grounding\n\nWhen conflict semantics, transaction origins, shared-type behavior, update encoding, storage growth, or shared-type APIs affect correctness, use source-backed grounding before relying on memory. If DeepWiki MCP is available, ask a narrow question against `yjs/yjs`; for sync and awareness algorithms, ask against `yjs/y-protocols`. If DeepWiki is unavailable or the repo is not indexed, use upstream source or official docs directly. Treat DeepWiki as orientation, then verify decisive details against the locally pinned `@y/y` types and source before changing code.\n\nEpicenter targets `@y/y` 14 only. Do not add `yjs` 13, `y-indexeddb`, a compatibility reader, a package alias, a dual wire, or a fallback. Existing Yjs 13 code is replacement material, not a compatibility surface.\n\nSkip DeepWiki for stable basics and repo-local patterns already documented below.\n\nRead [references/document-design.md](references/document-design.md) before\nchoosing how a new row document is structured. Counters, user-controlled\nordering, and nested shapes each have a conflict behavior that is expensive to\nchange once data exists.\n\nRead [references/debugging.md](references/debugging.md) when a document\nconverges to unexpected state or grows faster than its content.\n\n> **Related Skills**: See `svelte` for reading store data into a component, and `typebox` for the schemas behind the `field.*` declaration helpers.\n\n## Transactions, Origins, And Undo\n\n- Yjs updates are commutative and idempotent. A state vector describes what a\n  replica HAS; it does not order what it owes. A delete moves no client clock,\n  so two replicas can hold the same vector and differ, which is why obligation\n  in this store is a log position rather than a vector. Both the cursor and the\n  outbox are then DERIVED from one column on the update rows, `MAX(authoritySeq)`\n  and `authoritySeq IS NULL`, so neither can disagree with the bytes it accounts\n  for (`packages/app/evidence/data/invariants.test.ts`, ADR-0298).\n- Use `Y.encodeStateVector(doc)` to describe local clocks, then `Y.encodeStateAsUpdateV2(doc, remoteStateVector)` to send only missing updates.\n- Persist and transmit bytes from the `updateV2` event. Replay them with `Y.applyUpdateV2(doc, update, origin)`.\n- Wrap multi-write user actions in `doc.transact(() => { ... }, origin)`. This reduces observer churn and gives persistence, providers, and undo logic a useful origin.\n- Treat transaction origins as the boundary for filtering provider echoes, app-authored operations, and undo tracking.\n- Scope `Y.UndoManager` to concrete shared types. Set `trackedOrigins`, tune `captureTimeout`, and call `stopCapturing()` between logically separate commands.\n- Use relative positions for collaborative cursor and selection anchors. Raw numeric indexes drift under remote edits.\n- `Y.snapshot()` is a historical marker that depends on retained delete history. `Y.encodeStateAsUpdateV2(doc)` is the self-contained checkpoint format.\n- Prefer separate top-level docs over Yjs subdocuments unless Epicenter owns the whole provider lifecycle for the subdoc path.\n\n## Store Connection\n\n- Yjs is network-agnostic. It supplies CRDT state, state vectors, updates, and awareness behavior, not Epicenter's connection topology, authorization, or durability contract.\n- One socket per application, not one per open document. A replica connects to `STORE_SYNC_ROUTE.pattern` (`/api/store/v1/sync`, in `packages/sync/src/store-route.ts`) with a `namespace` naming the workspace and a `cursor` naming its own durably applied position, so a reconnect is a catch-up rather than a fresh start (ADR-0222).\n- Whose data it is never appears in the query. It comes from the resolved bearer, server-side, so there is no value a client can put in the URL that reaches another partition (ADR-0092).\n- Browser upgrades authenticate through exactly one `bearer.<token>` subprotocol entry, because a browser upgrade cannot set `Authorization`; the mount echoes only the main subprotocol on the 101, so the token never round-trips. Non-browser clients may use an `Authorization` header. Do not use cookie-only upgrades, query-string credentials, or post-accept authentication frames.\n- The wire is framing and nothing else: `push`, `ack`, `refuse`, `entry`, `offer`, `snapshot`, `wanted` (`packages/app/src/data/sync/frames.ts`). No frame knows what an update means, what a row is, or what Yjs is, which is exactly why chunking is safe at that layer.\n- Large updates are chunked at `CHUNK_BYTES`, set by Cloudflare's documented Durable Object SQLite value cap rather than by anything about Yjs. Do not raise it to the measured wall; the documented limit is the one Cloudflare is entitled to enforce.\n- Presence is deliberately absent until a concrete consumer earns awareness state and disconnect cleanup. If added later, awareness is ephemeral and must never be persisted into the Y.Doc or the SQLite update log as canonical data.\n\n## One document per store\n\nEpicenter pins `@y/y@14.0.0-rc.26`. A store is one `Y.Doc` with table roots\nnamed `tables:<name>` and a `kv` root. Each row is a nested `Y.Node` attribute\non its table root. The row’s attributes are JSON metadata and its sole sequence\nchild is the stable body node (ADR-0431).\n\nThe store creates both nodes together. Reads never create or repair them and\nrequire exactly one child of the correct node type. Field updates cannot\nreplace the child; deleting the row removes its subtree. Child index zero is\na storage convention, while the child has its own stable CRDT identity.\n\n`get`, `rows`, and `create` return value snapshots. `table.body(id)` returns\nthe live body independently of metadata conformance. `body`, `content`, and\n`!`-prefixed names are ordinary metadata; structural `id` remains reserved.\n\n```typescript\nconst notes = defineTable({\n  fields: { title: field.string(), body: field.string() },\n  body: plainText(),\n});\n\nconst row = db.tables.notes.create({ title: 'Trip', body: 'metadata' });\nconst body = db.tables.notes.body(row.id);\nbody?.insert(0, ['The writing.']);\n```\n\nKeep `field.*` helpers, which use TypeBox internally. The current two-method\nbody file format and artifact sequence replacement are specified in\n`packages/app/src/data/README.md`. Artifact reads expose\n`{ id, fields, body }`; values become frontmatter and the codec supplies the\ntext below it. Checkout distinguishes a field named `body` from a body edit\nby operation kind.\n\nOnly declared table/KV roots reach `Doc.get`, which creates on miss. Row\nlookups use `getAttr` and never mint roots. Keeping rows nested also avoids\n`findRootTypeKey` scanning one document root per row during encoding.\n\n## Editor bindings\n\nBind editors to the body child. Honeycrisp uses `@y/prosemirror@2.0.0-12`:\n`ynodeToPmnode(node, schema)` reads and `pmnodeToDelta(pmNode)` produces an\ninsertion delta for `node.applyDelta`. The converter fills an empty top-level document from the schema without\nwriting to Yjs. To rewrite, delete the old sequence and\napply the new delta inside one store transaction; never replace the body.\n\nEditor normalization owns body attributes. Parent metadata stays outside it.\nA metadata edit must neither notify body watchers nor clear editor undo history.\nHoneycrisp clears history for foreign body edits and preserves undo/redo origins.\nThe Skills CodeMirror adapter writes only its supplied body but replaces the\nwhole text on each edit; this has weaker concurrent-edit behavior than an\nincremental collaborative binding.\n\nRoot overrides keep RC26 and lib0 RC32 consistent through the dependency\nclosure. The old renderer and internal-export patches are removed. A new ProseMirror\npatch restores the virtual empty-content gate after undo to preserve redo. Do not\nintroduce Yjs 13 to accommodate stock Tiptap collaboration.\n\n## Three Signals, And Which One Fires\n\n- `table.subscribe` fires when a table's SHAPE changes: a row added, removed,\n  or a value edited. It does NOT fire for an edit inside a body node. It\n  hands the listener the ROW IDS the commit touched, so a consumer holding a\n  projection rebuilds only what moved; a consumer that just re-reads may\n  ignore them.\n- `table.watch(node)` fires for edits inside one body node, keyed by the\n  node's own identity.\n- `kv.subscribe` fires when any declared key changes, and carries nothing.\n  There are ten keys, so naming them would buy nothing.\n\nThe distinction is forced by the library. Delivery routes off\n`transaction.changed`, which Yjs fills with the types a transaction modified\nDIRECTLY, so a keystroke in a body puts the BODY's type there; its parent is\nthe row, not the table root. Nothing bubbles to the table. A surface that\nwatches a table for changes inside a node sees nothing.\n\n## Owner-Side Persistence\n\nOne document, so one chain: `_updates (id, bytes, authoritySeq)` in SQLite, and\nthe matching object store in the browser's IndexedDB. There is no per-document\npartition, no `_tombstones`, and no separate `_outbox` — what a replica still\nowes is the rows with `authoritySeq IS NULL`, which is a partial index rather\nthan a second table (ADR-0238). Do not add a separate IndexedDB provider or a\nsecond document store.\n\n- Hydrate BEFORE attaching the `updateV2` listener. Replaying stored bytes\n  through the listener would re-append them; the engine applies its history\n  first and then attaches, and throws if a foreign apply ever reaches the\n  listener, so a mistake here fails the open loudly rather than duplicating a\n  log (`packages/app/src/data/store/store.ts`).\n- A locally authored append joins the durable queue owed. Authority-accepted\n  bytes arrive on a remote origin and create no outbound obligation, which is\n  what the one listener checks before appending.\n- The chain compacts by ROW, and the row's `authoritySeq` picks which of two\n  mechanisms applies (ADR-0301). Rows the authority has taken replay into a\n  fresh `gc: true` document and rewrite as one complete V2 state update: replay\n  rather than `mergeUpdatesV2`, because merging does not GC and collapsing\n  tombstones is the point. `encodeStateAsUpdateV2` folds buffered pending state\n  back into its output, so a fold taken while dependencies are missing cannot\n  silently drop them.\n- Rows still OWED cannot take that path, and this is the one to get right. A\n  whole-document re-encode is not a delta the authority could be offered, so\n  owed rows collapse with `mergeUpdatesV2` into one resendable row that takes a\n  NEW id above every existing one. Folding them like acknowledged rows would\n  offer the authority a whole document per keystroke; inheriting a lower id\n  would let an earlier acknowledgement stamp bytes it never carried.\n- Treat replay corruption as storage failure: a document that cannot hydrate refuses its open rather than handing out a half-hydrated handle.\n\n## Storage Optimization\n\nv14 has ONE shared type, `Y.Node`, reached as `doc.get(name)` for a map-like\nroot or `doc.get(name, 'text')` for a text one. There is no `Y.Map`, `Y.Text`,\n`Y.Array` or `Y.XmlFragment`; code or advice naming them is Yjs 13 and is\nreplacement material.\n\nAttribute tombstones retain the key forever, and every `setAttr(key, value)`\ncreates a new internal item and tombstones the previous one, which is why\n`gc: true` is what collapses a field edited 5,000 times down to two structs.\n\n## Raw Types At The Boundary\n\nA `Y.Node` handed out by a table handle is a live CRDT reference and is MEANT\nto be bound to an editor. That is the design: the store hands the editor the\nreal thing rather than proxying it, because a copy would break the merge that\nmakes it worth having.\n\nA raw node can reach its parent and document. It is not a security sandbox.\nFeatures must use `table.body(id)` instead of constructing or repairing the\nrow layout. The store owns the invariant in\n`packages/app/src/data/store/document.ts`.\n\nRC26 still types configured children as `Fingerprintable`, which does not\ninclude a live `Y.Node`, and `insert` does not translate delta children into\nnode children. Keep the insertion escape localized at row creation; do not\nbroaden JSON metadata types or publish a compatibility alias to hide this gap.\nVerify the installed declarations before changing that boundary.\n\n## References\n\n- [Learn Yjs](https://learn.yjs.dev/) - Interactive tutorials\n- [Yjs Documentation](https://docs.yjs.dev/) - API reference\n- [Yjs INTERNALS.md](https://github.com/yjs/yjs/blob/main/INTERNALS.md) - How Yjs works internally\n- [GitHub issue #520](https://github.com/yjs/yjs/issues/520) - Conflict resolution discussion with dmonad\n- [fractional-indexing](https://github.com/rocicorp/fractional-indexing) - Production library\n- [YATA paper](https://www.researchgate.net/publication/310212186_Near_Real-Time_Peer-to-Peer_Shared_Editing_on_Extensible_Data_Types) - Academic foundation\n- `packages/app/src/data/store/document.ts`: the application-document grammar (roots, row types, field reads)\n- `packages/app/src/data/store/log.ts` and `packages/app/src/data/store/persistence.ts`: the durable update log, the outbox, and the persistence queue\n- `packages/app/evidence/data/invariants.test.ts`: the library behaviour this design rests on, pinned against the installed rc\n- `packages/app/src/data/sync/`: the Yjs 14 wire (frames, connection, client, authority)\n- [ADR-0295](../../../docs/adr/0295-a-database-is-one-yjs-document-and-a-row-holds-its-rich-content.md): one document per application, and a row holds its rich content (supersedes ADR-0248)\n- [ADR-0309](../../../docs/adr/0309-a-field-holds-a-value-or-a-node-and-the-retired-words-fail-the-build.md): historical field/node vocabulary, amended by [ADR-0431](../../../docs/adr/0431-rows-return-values-and-own-a-separate-body.md) for the sole-child layout\n- [ADR-0221](../../../docs/adr/0221-a-table-names-the-rows-a-commit-touched-and-says-so-after-the-projection-commits.md): what `subscribe` reports and when it fires\n- [ADR-0146](../../../docs/adr/0146-row-documents-use-one-yjs-14-major-and-runtime-native-update-logs.md): Yjs 14-only persistence decision\n- [ADR-0159](../../../docs/adr/0159-row-documents-persist-in-one-owner-side-sqlite-update-log.md): one owner-side SQLite update log and shared attachment seam\n",".agents/skills/typebox/SKILL.md":"---\nname: typebox\ndescription: TypeBox patterns for runtime schema validation and JSON Schema generation. Use when mentioning TypeBox, Standard Schema, or schema-based validation.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# TypeBox\n\n## Package Names\n\n**Use `typebox`, not `@sinclair/typebox`**. The `@sinclair/typebox` package is deprecated.\n\n```typescript\n// Correct\nimport { Type } from 'typebox';\nimport { Compile } from 'typebox/compile';\nimport { Value } from 'typebox/value';\n\n// Wrong - deprecated\nimport { Type } from '@sinclair/typebox';\n```\n\n## When to Use What\n\n| Need                        | Use                                  |\n| --------------------------- | ------------------------------------ |\n| Define schemas              | `typebox` with `Type.*`              |\n| One-off validation          | `Value.Check()` from `typebox/value` |\n| High-performance validation | `Compile()` from `typebox/compile`   |\n\nTypeBox schemas are portable JSON Schema-shaped data. If a TypeBox boundary\nneeds validation, validate the TypeBox schema directly:\n\n```typescript\nimport { Type } from 'typebox';\nimport { Compile } from 'typebox/compile';\nimport { Value } from 'typebox/value';\n\nconst schema = Type.Object({ name: Type.String(), age: Type.Number() });\n\nValue.Check(schema, value); // boolean\n\nconst validator = Compile(schema);\nvalidator.Check(value); // boolean\nvalidator.Parse(value); // throws or returns typed value\n```\n\n## Standard Schema Boundary\n\nTypeBox does not implement Standard Schema. Do not write TypeBox code that expects\n`schema['~standard']`. If a boundary accepts Standard Schema, prefer Arktype or\nanother schema library that implements it natively. If a boundary owns TypeBox\nschemas, keep the boundary TypeBox-native and use JSON Schema as the portable\nrepresentation.\n\n## Repo Policy\n\nUse TypeBox for portable schema objects: workspace tables, kv, fields, actions,\nMCP inputs, manifests, and other surfaces that need JSON Schema shape,\nmetadata, `Static<>`, or schema inspection. Use Arktype for local runtime\nvalidation, request parsing, env/config parsing, persisted UI state, transforms,\nand branded domain values.\n\n## References\n\n- [TypeBox is a Beast](../../../docs/articles/typebox-is-a-beast.md)\n- [The Schema Wars Just Shifted](../../../docs/articles/20260429T120000-typebox-standard-schema-pivot.md)\n",".agents/skills/typescript/SKILL.md":"---\nname: typescript\ndescription: Apply project conventions for TypeScript types, imports, generics, factories, and runtime schemas. Use when editing `.ts` files or reviewing TypeScript design and tests, including constraints that need to name an invalid literal key or string in a compiler error.\nmetadata:\n  author: epicenter\n  version: '2.0'\n---\n\n# TypeScript Guidelines\n\nProject-wide TypeScript conventions compose with narrower skills such as `arktype`, `typebox`, `testing`, and `factory-function-composition`.\n\n## Core Rules\n\n- Try to derive or import a type before declaring a new named type. New named types must earn their place as a real contract, protocol vocabulary, discriminated result union, capability port, or multi-implementation shape.\n- Treat local shape copies as boundary smells. Prefer the owning runtime type, schema inference, factory return type, function signature, or a caller-owned capability function.\n- Compose types upward from a named base: extend with `Base & Extra`, never subtract-and-replace with `Omit<Base, 'k'> & { k: U }`. An `Omit<...> &` in a type you author is structural override; it is the tell that a smaller base wants a name. To narrow a surface, return that base rather than `Omit`-ing a member away. See [project conventions](references/project-conventions.md).\n- Use `type`, not `interface`.\n- Use `readonly` only for arrays and maps, unless matching an upstream type exactly.\n- Treat acronyms as normal words in camelCase: `parseUrl`, `defineTable`, `readJson`, `customerId`.\n- Use `.js` extensions in relative imports. Do not use extensionless or `.ts` relative imports.\n- Export symbols at their declarations. Reserve `export { ... } from ...` for barrel files.\n- In React/TSX, prefer named function components with explicit props parameters over `React.FC`/`FunctionComponent`; only type component values when you are storing them in a registry or passing them as data.\n- Prefer factory functions over classes. Let closure position communicate private vs public API.\n- Use descriptive generic names with a `T` prefix, such as `TSchema`, `TDefs`, and `TKey`.\n- Destructure options in the function signature when the object is a configuration bag. Keep a named value only when it is the domain object being transformed or forwarded.\n- Let TypeScript infer private and inner return types. Annotate exported APIs only when useful for clarity or to break circular inference.\n- If an exported type is exactly the object returned by a `create*`, `attach*`, `open*`, or similar factory, derive it from the implementation with `ReturnType<typeof createThing>`. Put the exported output alias immediately after the factory. Keep input, config, data, protocol, and multi-implementation contract types above the factory.\n- Move consumer-facing JSDoc onto the returned object members. Add concrete member annotations inside the returned object when they preserve IntelliSense, narrow an implementation detail, or keep a public method/property surface stable.\n- For curried factories, derive from the inner return, such as `ReturnType<ReturnType<typeof createThing>>`. For generic factories, instantiate `typeof` when needed, such as `ReturnType<typeof openThing<TActions>>`.\n- Preserve intentional readonly public surfaces with getters when deriving from an object literal. Do not expose writable internal state just because the concrete implementation happens to store it that way.\n- Use a `Symbol` brand when identity means a specific factory output, not a coincidental shape probe.\n- Avoid `as any`. Use `unknown`, validation, brands, or narrower helpers instead.\n- Prefer optional chaining over `in` checks or truthiness when checking optional properties.\n- Use `is`, `has`, or `can` prefixes for booleans that answer a question.\n- Prefer `switch` over `if/else` for repeated equality comparisons against the same value. Use `default: value satisfies never` for exhaustiveness when needed.\n- Prefer `Record` lookup tables over nested ternaries for finite value mappings.\n- Compose typed errors bottom-up. Do not filter a broad upstream error union at the boundary. See `error-handling` for Result propagation, recovery, and presentation.\n- Question silent fallbacks that hide invalid state. Preserve round-trip invariants when parsing and serializing.\n\n## Go-to-Definition Awareness\n\nWhen organizing types and exports, always consider Go-to-Definition. A developer pressing Go-to-Def from a call site should land as close as possible to the actual source of truth. If a design choice forces an extra navigation hop, the choice has to earn it elsewhere (e.g., a real validation boundary, a published contract, or a multi-implementation port).\n\nConcrete regressions to watch for:\n\n- **Destructure-re-export of a module-level object**: `const stub = { fn, gn } satisfies T; export const { fn, gn } = stub;` lands Go-to-Def on the destructuring line, not the real definition. Prefer per-export `satisfies` or a direct `export const fn = ... satisfies T['fn']`.\n- **`typeof Real` annotation over `satisfies`**: `export const fn: typeof Real = unreachable` hides the underlying value's identity from navigation. `export const fn = unreachable satisfies typeof Real` keeps the value as the source of truth.\n- **`: T` annotation over `satisfies` for a multi-impl port**: the complement of the rule above. When an interface `T` has several impls (a `#platform/*` or browser/tauri split) and one impl is deliberately narrower than `T` (e.g. ignores a param the contract declares), `export const x = {...} satisfies T` leaks that narrow concrete type, so a caller's view of the method changes by platform. Annotate `export const x: T = {...}` to publish the wide contract, and the narrower impl still type-checks. Reference: whispering's `ManualRecorderLive: RecorderService<...>` (unary CPAL impl behind a binary contract).\n- **Re-export chains in non-barrel files**: `export { X } from './alias'` outside `index.ts` costs an extra hop with nothing to show for it. Reserve `export { ... } from ...` for barrels; export at the declaration everywhere else.\n- **Adapter / proxy / wrapper with no behavior change**: a `fromX` translator or thin passthrough makes Go-to-Def land on the wrapper. Widen the underlying factory's return shape instead (see `factory-function-composition` \"collapsed adapter\" rule).\n- **Manual return type annotation duplicating zone 4**: annotating a factory with a hand-written interface diverts Go-to-Def to the alias. Let the factory return its concrete object, then put the exported alias directly after it as `export type Thing = ReturnType<typeof createThing>`. This keeps navigation on the returned members and lets their JSDoc own the public documentation. See [factory method documentation](../factory-function-composition/references/method-documentation-and-sibling-calls.md) when hover or navigation is in question.\n- **Noisy `satisfies` generic lists**: if a return object should prove it extends a generic contract but `satisfies Contract<A, B, C> & Extras` forces callers to restate inferred table, action, or runtime types, prefer a constrained identity helper owned by the contract module. Example: `return defineWorkspace({ ...workspace, ...runtime })` where the helper accepts `TWorkspace extends Workspace<...>` and returns `TWorkspace`. This keeps the call site readable, preserves the exact inferred return type, and leaves Go-to-Def on the real object members.\n- **When not to add `defineX`**: do not wrap a simple `satisfies` check just to give it a helper name. If the contract has no required type arguments, or its generics have defaults that make `satisfies Contract` readable, prefer `satisfies`. The helper only earns the extra name when it removes generic noise the reader would otherwise have to carry.\n\nFor broader public-shape decisions that affect navigation across packages, see `rethink`.\n\n## Reference Map\n\n- [Project conventions](references/project-conventions.md): detailed examples for derived types, local shape copies, imports, barrels, factories, generics, destructuring, and factory return types.\n- [Type safety and control flow](references/type-safety-and-control-flow.md): identity brands, casts, optional properties, boolean naming, switches, record lookups, error composition, fallback smells, and round-trip invariants.\n- [Type organization](references/type-organization.md): `types.ts` location, co-location rules, inline-vs-extract hop test, options and ID naming.\n- [Factory patterns](references/factory-patterns.md): factory-focused refactors, parameter destructuring, and coupled state extraction.\n- [Runtime schema patterns](references/runtime-schema-patterns.md): arktype, branded IDs, optional property syntax, and workspace table IDs.\n- [Testing patterns](references/testing-patterns.md): inline single-use setup and source-shadowing tests.\n- [Advanced TypeScript features](references/advanced-typescript-features.md): iterator helpers and const generic array inference.\n- [Readable constraint errors](references/readable-constraint-errors.md): read when a literal key or string constraint needs to identify the offending value in a compiler diagnostic.\n",".agents/skills/tsconfig/SKILL.md":"# tsconfig\n\nPath: `.agents/skills/tsconfig/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tsconfig/SKILL.md)",".agents/skills/testing/SKILL.md":"# testing\n\nPath: `.agents/skills/testing/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/SKILL.md)",".agents/skills/technical-articles/SKILL.md":"# technical-articles\n\nPath: `.agents/skills/technical-articles/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/technical-articles/SKILL.md)",".agents/skills/tauri/SKILL.md":"# tauri\n\nPath: `.agents/skills/tauri/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tauri/SKILL.md)",".agents/skills/tanstack-table/SKILL.md":"# tanstack-table\n\nPath: `.agents/skills/tanstack-table/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tanstack-table/SKILL.md)",".agents/skills/svg-animations/SKILL.md":"# svg-animations\n\nPath: `.agents/skills/svg-animations/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/SKILL.md)",".agents/skills/sveltekit/SKILL.md":"# sveltekit\n\nPath: `.agents/skills/sveltekit/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/sveltekit/SKILL.md)",".agents/skills/svelte/SKILL.md":"# svelte\n\nPath: `.agents/skills/svelte/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/SKILL.md)",".agents/skills/styling/SKILL.md":"# styling\n\nPath: `.agents/skills/styling/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/styling/SKILL.md)",".agents/skills/standalone-commits/SKILL.md":"# standalone-commits\n\nPath: `.agents/skills/standalone-commits/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/SKILL.md)",".agents/skills/specification-writing/SKILL.md":"# specification-writing\n\nPath: `.agents/skills/specification-writing/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/SKILL.md)",".agents/skills/spec-execution/SKILL.md":"# spec-execution\n\nPath: `.agents/skills/spec-execution/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/spec-execution/SKILL.md)",".agents/skills/social-media/SKILL.md":"# social-media\n\nPath: `.agents/skills/social-media/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/social-media/SKILL.md)",".agents/skills/services-layer/SKILL.md":"# services-layer\n\nPath: `.agents/skills/services-layer/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/SKILL.md)",".agents/skills/rust-errors/SKILL.md":"# rust-errors\n\nPath: `.agents/skills/rust-errors/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/rust-errors/SKILL.md)",".agents/skills/refactoring/SKILL.md":"# refactoring\n\nPath: `.agents/skills/refactoring/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/refactoring/SKILL.md)",".agents/skills/radical-options/SKILL.md":"# radical-options\n\nPath: `.agents/skills/radical-options/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/radical-options/SKILL.md)",".agents/skills/query-layer/SKILL.md":"# query-layer\n\nPath: `.agents/skills/query-layer/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/SKILL.md)",".agents/skills/pull-request/SKILL.md":"# pull-request\n\nPath: `.agents/skills/pull-request/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/SKILL.md)",".agents/skills/prototype/SKILL.md":"# prototype\n\nPath: `.agents/skills/prototype/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/SKILL.md)",".agents/skills/post-implementation-review/SKILL.md":"# post-implementation-review\n\nPath: `.agents/skills/post-implementation-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/post-implementation-review/SKILL.md)",".agents/skills/one-sentence-test/SKILL.md":"# one-sentence-test\n\nPath: `.agents/skills/one-sentence-test/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/one-sentence-test/SKILL.md)",".agents/skills/monorepo/SKILL.md":"# monorepo\n\nPath: `.agents/skills/monorepo/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/monorepo/SKILL.md)",".agents/skills/method-shorthand-jsdoc/SKILL.md":"# method-shorthand-jsdoc\n\nPath: `.agents/skills/method-shorthand-jsdoc/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/method-shorthand-jsdoc/SKILL.md)",".agents/skills/logging/SKILL.md":"# logging\n\nPath: `.agents/skills/logging/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/logging/SKILL.md)",".agents/skills/hono/SKILL.md":"# hono\n\nPath: `.agents/skills/hono/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/hono/SKILL.md)",".agents/skills/handoff/SKILL.md":"# handoff\n\nPath: `.agents/skills/handoff/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/handoff/SKILL.md)",".agents/skills/grill-me/SKILL.md":"# grill-me\n\nPath: `.agents/skills/grill-me/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/grill-me/SKILL.md)",".agents/skills/greenfield-clean-breaks/SKILL.md":"# greenfield-clean-breaks\n\nPath: `.agents/skills/greenfield-clean-breaks/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/SKILL.md)",".agents/skills/govuk-style/SKILL.md":"# govuk-style\n\nPath: `.agents/skills/govuk-style/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/govuk-style/SKILL.md)",".agents/skills/github-issues/SKILL.md":"# github-issues\n\nPath: `.agents/skills/github-issues/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/github-issues/SKILL.md)",".agents/skills/git/SKILL.md":"# git\n\nPath: `.agents/skills/git/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/git/SKILL.md)",".agents/skills/fresh-context-review/SKILL.md":"# fresh-context-review\n\nPath: `.agents/skills/fresh-context-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/SKILL.md)",".agents/skills/first-read-review/SKILL.md":"# first-read-review\n\nPath: `.agents/skills/first-read-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/first-read-review/SKILL.md)",".agents/skills/factory-function-composition/SKILL.md":"# factory-function-composition\n\nPath: `.agents/skills/factory-function-composition/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/SKILL.md)",".agents/skills/error-handling/SKILL.md":"# error-handling\n\nPath: `.agents/skills/error-handling/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/SKILL.md)",".agents/skills/drizzle-orm/SKILL.md":"# drizzle-orm\n\nPath: `.agents/skills/drizzle-orm/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/drizzle-orm/SKILL.md)",".agents/skills/documentation/SKILL.md":"# documentation\n\nPath: `.agents/skills/documentation/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/documentation/SKILL.md)",".agents/skills/dialectic/SKILL.md":"# dialectic\n\nPath: `.agents/skills/dialectic/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/dialectic/SKILL.md)",".agents/skills/diagnose/SKILL.md":"# diagnose\n\nPath: `.agents/skills/diagnose/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/diagnose/SKILL.md)",".agents/skills/delegate-claude/SKILL.md":"# delegate-claude\n\nPath: `.agents/skills/delegate-claude/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/delegate-claude/SKILL.md)",".agents/skills/define-errors/SKILL.md":"# define-errors\n\nPath: `.agents/skills/define-errors/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/define-errors/SKILL.md)",".agents/skills/control-flow/SKILL.md":"# control-flow\n\nPath: `.agents/skills/control-flow/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/control-flow/SKILL.md)",".agents/skills/consult-claude/SKILL.md":"# consult-claude\n\nPath: `.agents/skills/consult-claude/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/consult-claude/SKILL.md)",".agents/skills/collapse-pass/SKILL.md":"# collapse-pass\n\nPath: `.agents/skills/collapse-pass/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/SKILL.md)",".agents/skills/cohesion-over-testability/SKILL.md":"# cohesion-over-testability\n\nPath: `.agents/skills/cohesion-over-testability/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/SKILL.md)",".agents/skills/codex-task-backlog-hygiene/SKILL.md":"# codex-task-backlog-hygiene\n\nPath: `.agents/skills/codex-task-backlog-hygiene/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/SKILL.md)",".agents/skills/code-audit/SKILL.md":"# code-audit\n\nPath: `.agents/skills/code-audit/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/code-audit/SKILL.md)",".agents/skills/cloudflare-workers/SKILL.md":"# cloudflare-workers\n\nPath: `.agents/skills/cloudflare-workers/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cloudflare-workers/SKILL.md)",".agents/skills/change-proposal/SKILL.md":"# change-proposal\n\nPath: `.agents/skills/change-proposal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/change-proposal/SKILL.md)",".agents/skills/caveman/SKILL.md":"# caveman\n\nPath: `.agents/skills/caveman/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/caveman/SKILL.md)",".agents/skills/better-auth-security-best-practices/SKILL.md":"# better-auth-security-best-practices\n\nPath: `.agents/skills/better-auth-security-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-security-best-practices/SKILL.md)",".agents/skills/better-auth-best-practices/SKILL.md":"# better-auth-best-practices\n\nPath: `.agents/skills/better-auth-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-best-practices/SKILL.md)",".agents/skills/autumn/SKILL.md":"# autumn\n\nPath: `.agents/skills/autumn/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/autumn/SKILL.md)",".agents/skills/auth/SKILL.md":"# auth\n\nPath: `.agents/skills/auth/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/auth/SKILL.md)",".agents/skills/attach-primitive/SKILL.md":"# attach-primitive\n\nPath: `.agents/skills/attach-primitive/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/attach-primitive/SKILL.md)",".agents/skills/asymmetric-wins/SKILL.md":"# asymmetric-wins\n\nPath: `.agents/skills/asymmetric-wins/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/asymmetric-wins/SKILL.md)",".agents/skills/arktype/SKILL.md":"# arktype\n\nPath: `.agents/skills/arktype/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/arktype/SKILL.md)",".agents/skills/agent-instructions/SKILL.md":"# agent-instructions\n\nPath: `.agents/skills/agent-instructions/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/SKILL.md)",".agents/skills/agent-goal/SKILL.md":"# agent-goal\n\nPath: `.agents/skills/agent-goal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-goal/SKILL.md)","AGENTS.md":"# AI Agent Protocol & Instructions\n\nPath: `AGENTS.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/AGENTS.md)","CLAUDE.md":"# Claude Agent Guidelines & System Prompt\n\nPath: `CLAUDE.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/CLAUDE.md)","docs/architecture.md":"# docs - System Architecture & Module Boundaries\n\nPath: `docs/architecture.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/docs/architecture.md)",".claude/commands/workers.md":"# Command: /workers\n\nPath: `.claude/commands/workers.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.claude/commands/workers.md)","apps/skills/package.json":"# Skills Skill\n\nPath: `apps/skills/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/package.json)","apps/skills/README.md":"# Skills Skill\n\nPath: `apps/skills/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/README.md)","apps/skills/tsconfig.json":"# Skills Skill\n\nPath: `apps/skills/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/tsconfig.json)","packages/vite-config/package.json":"# Vite-config Skill\n\nPath: `packages/vite-config/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/package.json)","packages/vite-config/tsconfig.json":"# Vite-config Skill\n\nPath: `packages/vite-config/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/tsconfig.json)","packages/ui/CHANGELOG.md":"# Ui Skill\n\nPath: `packages/ui/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/CHANGELOG.md)","packages/ui/package.json":"# Ui Skill\n\nPath: `packages/ui/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/package.json)","packages/ui/README.md":"# ui Documentation\n\nPath: `packages/ui/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/README.md)","packages/ui/tsconfig.json":"# Ui Skill\n\nPath: `packages/ui/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/tsconfig.json)","packages/sync/CHANGELOG.md":"# Sync Skill\n\nPath: `packages/sync/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/CHANGELOG.md)","packages/sync/package.json":"# Sync Skill\n\nPath: `packages/sync/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/package.json)","packages/sync/README.md":"# sync Documentation\n\nPath: `packages/sync/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/README.md)","packages/sync/tsconfig.json":"# Sync Skill\n\nPath: `packages/sync/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/tsconfig.json)","packages/svelte-utils/CHANGELOG.md":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/CHANGELOG.md)","packages/svelte-utils/package.json":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/package.json)","packages/svelte-utils/README.md":"# svelte-utils Documentation\n\nPath: `packages/svelte-utils/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/README.md)","packages/svelte-utils/tsconfig.json":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/tsconfig.json)","packages/sqlite/package.json":"# Sqlite Skill\n\nPath: `packages/sqlite/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/package.json)","packages/sqlite/README.md":"# sqlite Documentation\n\nPath: `packages/sqlite/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/README.md)","packages/sqlite/tsconfig.json":"# Sqlite Skill\n\nPath: `packages/sqlite/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/tsconfig.json)","packages/skills/CHANGELOG.md":"# Skills Skill\n\nPath: `packages/skills/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/CHANGELOG.md)","packages/skills/package.json":"# Skills Skill\n\nPath: `packages/skills/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/package.json)","packages/skills/README.md":"# skills Documentation\n\nPath: `packages/skills/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/README.md)","packages/skills/tsconfig.json":"# Skills Skill\n\nPath: `packages/skills/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/tsconfig.json)","packages/server/CHANGELOG.md":"# Server Skill\n\nPath: `packages/server/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/CHANGELOG.md)","packages/server/package.json":"# Server Skill\n\nPath: `packages/server/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/package.json)","packages/server/README.md":"# server Documentation\n\nPath: `packages/server/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/README.md)","packages/server/tsconfig.json":"# Server Skill\n\nPath: `packages/server/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/tsconfig.json)","packages/recorder/package.json":"# Recorder Skill\n\nPath: `packages/recorder/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/package.json)","packages/recorder/README.md":"# recorder Documentation\n\nPath: `packages/recorder/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/README.md)","packages/recorder/tsconfig.json":"# Recorder Skill\n\nPath: `packages/recorder/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/tsconfig.json)","packages/matter-core/package.json":"# Matter-core Skill\n\nPath: `packages/matter-core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/package.json)","packages/matter-core/tsconfig.json":"# Matter-core Skill\n\nPath: `packages/matter-core/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/tsconfig.json)","packages/lens/package.json":"# Lens Skill\n\nPath: `packages/lens/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/package.json)","packages/lens/tsconfig.build.json":"# Lens Skill\n\nPath: `packages/lens/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.build.json)","packages/lens/tsconfig.json":"# Lens Skill\n\nPath: `packages/lens/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.json)","packages/identity/CHANGELOG.md":"# Identity Skill\n\nPath: `packages/identity/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/CHANGELOG.md)","packages/identity/package.json":"# Identity Skill\n\nPath: `packages/identity/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/package.json)","packages/identity/tsconfig.json":"# Identity Skill\n\nPath: `packages/identity/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/tsconfig.json)","packages/field/CHANGELOG.md":"# Field Skill\n\nPath: `packages/field/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/CHANGELOG.md)","packages/field/package.json":"# Field Skill\n\nPath: `packages/field/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/package.json)","packages/field/tsconfig.build.json":"# Field Skill\n\nPath: `packages/field/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.build.json)","packages/field/tsconfig.json":"# Field Skill\n\nPath: `packages/field/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.json)","packages/document-sync/package.json":"# Document-sync Skill\n\nPath: `packages/document-sync/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/package.json)","packages/document-sync/tsconfig.json":"# Document-sync Skill\n\nPath: `packages/document-sync/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/tsconfig.json)","packages/data/package.json":"# Data Skill\n\nPath: `packages/data/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/package.json)","packages/data/README.md":"# data Documentation\n\nPath: `packages/data/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/README.md)","packages/data/tsconfig.json":"# Data Skill\n\nPath: `packages/data/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/tsconfig.json)","packages/constants/CHANGELOG.md":"# Constants Skill\n\nPath: `packages/constants/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/CHANGELOG.md)","packages/constants/package.json":"# Constants Skill\n\nPath: `packages/constants/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/package.json)","packages/constants/README.md":"# constants Documentation\n\nPath: `packages/constants/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/README.md)","packages/constants/tsconfig.json":"# Constants Skill\n\nPath: `packages/constants/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/tsconfig.json)","packages/client/CHANGELOG.md":"# Client Skill\n\nPath: `packages/client/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/CHANGELOG.md)","packages/client/package.json":"# Client Skill\n\nPath: `packages/client/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/package.json)","packages/client/tsconfig.json":"# Client Skill\n\nPath: `packages/client/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/tsconfig.json)","packages/chat/package.json":"# Chat Skill\n\nPath: `packages/chat/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/package.json)","packages/chat/tsconfig.json":"# Chat Skill\n\nPath: `packages/chat/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/tsconfig.json)","packages/blobs/package.json":"# Blobs Skill\n\nPath: `packages/blobs/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/package.json)","packages/blobs/README.md":"# blobs Documentation\n\nPath: `packages/blobs/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/README.md)","packages/blobs/tsconfig.json":"# Blobs Skill\n\nPath: `packages/blobs/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/tsconfig.json)","packages/auth/CHANGELOG.md":"# Auth Skill\n\nPath: `packages/auth/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/CHANGELOG.md)","packages/auth/package.json":"# Auth Skill\n\nPath: `packages/auth/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/package.json)","packages/auth/tsconfig.json":"# Auth Skill\n\nPath: `packages/auth/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/tsconfig.json)","packages/app-shell/package.json":"# App-shell Skill\n\nPath: `packages/app-shell/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/package.json)","packages/app-shell/tsconfig.json":"# App-shell Skill\n\nPath: `packages/app-shell/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/tsconfig.json)","packages/app/package.json":"# App Skill\n\nPath: `packages/app/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/package.json)","packages/app/README.md":"# app Documentation\n\nPath: `packages/app/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/README.md)","packages/app/tsconfig.build.json":"# App Skill\n\nPath: `packages/app/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.build.json)","packages/app/tsconfig.json":"# App Skill\n\nPath: `packages/app/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.json)","packages/agent-protocol/package.json":"# Agent-protocol Skill\n\nPath: `packages/agent-protocol/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/package.json)","packages/agent-protocol/tsconfig.json":"# Agent-protocol Skill\n\nPath: `packages/agent-protocol/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/tsconfig.json)","packages/agent/package.json":"# Agent Skill\n\nPath: `packages/agent/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/package.json)","packages/agent/README.md":"# agent Documentation\n\nPath: `packages/agent/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/README.md)","packages/agent/tsconfig.json":"# Agent Skill\n\nPath: `packages/agent/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/tsconfig.json)",".agents/skills/prototype/LOGIC.md":"# Prototype Skill\n\nPath: `.agents/skills/prototype/LOGIC.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/LOGIC.md)",".agents/skills/prototype/UI.md":"# Prototype Skill\n\nPath: `.agents/skills/prototype/UI.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/UI.md)","packages/data/browser-evidence/tsconfig.json":"# Browser-evidence Skill\n\nPath: `packages/data/browser-evidence/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/browser-evidence/tsconfig.json)",".agents/skills/workspace-api/references/action-return-shapes.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/action-return-shapes.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/action-return-shapes.md)",".agents/skills/workspace-api/references/actions-layout-and-attachments.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/actions-layout-and-attachments.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/actions-layout-and-attachments.md)",".agents/skills/workspace-api/references/deriving-action-inputs.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/deriving-action-inputs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/deriving-action-inputs.md)",".agents/skills/workspace-api/references/primitive-api.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/primitive-api.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/primitive-api.md)",".agents/skills/workspace-api/references/schema-definition-patterns.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/schema-definition-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/schema-definition-patterns.md)",".agents/skills/workspace-api/references/table-kv-crud-observation.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/table-kv-crud-observation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-kv-crud-observation.md)",".agents/skills/workspace-api/references/table-migrations.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/table-migrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-migrations.md)",".agents/skills/ui-design/references/anti-slop-tells.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/anti-slop-tells.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/anti-slop-tells.md)",".agents/skills/ui-design/references/comparable-apps.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/comparable-apps.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/comparable-apps.md)",".agents/skills/ui-design/references/component-system.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/component-system.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/component-system.md)",".agents/skills/ui-design/references/direction-discovery.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/direction-discovery.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/direction-discovery.md)",".agents/skills/ui-design/references/preflight.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/preflight.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/preflight.md)",".agents/skills/typescript/references/advanced-typescript-features.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/advanced-typescript-features.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/advanced-typescript-features.md)",".agents/skills/typescript/references/factory-patterns.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/factory-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/factory-patterns.md)",".agents/skills/typescript/references/project-conventions.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/project-conventions.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/project-conventions.md)",".agents/skills/typescript/references/runtime-schema-patterns.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/runtime-schema-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/runtime-schema-patterns.md)",".agents/skills/typescript/references/testing-patterns.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/testing-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/testing-patterns.md)",".agents/skills/typescript/references/type-organization.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/type-organization.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-organization.md)",".agents/skills/typescript/references/type-safety-and-control-flow.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/type-safety-and-control-flow.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-safety-and-control-flow.md)",".agents/skills/testing/references/honest-tests.md":"# References Skill\n\nPath: `.agents/skills/testing/references/honest-tests.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/honest-tests.md)",".agents/skills/testing/references/setup-pattern.md":"# References Skill\n\nPath: `.agents/skills/testing/references/setup-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/setup-pattern.md)",".agents/skills/testing/references/test-deletion-grill.md":"# References Skill\n\nPath: `.agents/skills/testing/references/test-deletion-grill.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-deletion-grill.md)",".agents/skills/testing/references/test-structure.md":"# References Skill\n\nPath: `.agents/skills/testing/references/test-structure.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-structure.md)",".agents/skills/testing/references/type-testing.md":"# References Skill\n\nPath: `.agents/skills/testing/references/type-testing.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/type-testing.md)",".agents/skills/svg-animations/references/recipes.md":"# References Skill\n\nPath: `.agents/skills/svg-animations/references/recipes.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/references/recipes.md)",".agents/skills/svelte/references/component-ui-patterns.md":"# References Skill\n\nPath: `.agents/skills/svelte/references/component-ui-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/component-ui-patterns.md)",".agents/skills/svelte/references/lifecycle-and-reactivity.md":"# References Skill\n\nPath: `.agents/skills/svelte/references/lifecycle-and-reactivity.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/lifecycle-and-reactivity.md)",".agents/skills/svelte/references/mutations-and-workspace-inputs.md":"# References Skill\n\nPath: `.agents/skills/svelte/references/mutations-and-workspace-inputs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/mutations-and-workspace-inputs.md)",".agents/skills/standalone-commits/references/splitting-into-ordered-waves.md":"# References Skill\n\nPath: `.agents/skills/standalone-commits/references/splitting-into-ordered-waves.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/references/splitting-into-ordered-waves.md)",".agents/skills/specification-writing/references/decision-hygiene.md":"# References Skill\n\nPath: `.agents/skills/specification-writing/references/decision-hygiene.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/references/decision-hygiene.md)",".agents/skills/services-layer/references/service-implementation-pattern.md":"# References Skill\n\nPath: `.agents/skills/services-layer/references/service-implementation-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-implementation-pattern.md)",".agents/skills/services-layer/references/service-organization-platforms.md":"# References Skill\n\nPath: `.agents/skills/services-layer/references/service-organization-platforms.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-organization-platforms.md)",".agents/skills/query-layer/references/advanced-query-patterns.md":"# References Skill\n\nPath: `.agents/skills/query-layer/references/advanced-query-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/advanced-query-patterns.md)",".agents/skills/query-layer/references/error-transformation-patterns.md":"# References Skill\n\nPath: `.agents/skills/query-layer/references/error-transformation-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/error-transformation-patterns.md)",".agents/skills/query-layer/references/runtime-dependency-injection.md":"# References Skill\n\nPath: `.agents/skills/query-layer/references/runtime-dependency-injection.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/runtime-dependency-injection.md)",".agents/skills/pull-request/references/body-patterns.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/body-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/body-patterns.md)",".agents/skills/pull-request/references/changelog-entries.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/changelog-entries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/changelog-entries.md)",".agents/skills/pull-request/references/examples.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/examples.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/examples.md)",".agents/skills/pull-request/references/github-pr-operations.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/github-pr-operations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/github-pr-operations.md)",".agents/skills/pull-request/references/visual-patterns.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/visual-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/visual-patterns.md)",".agents/skills/greenfield-clean-breaks/references/goal-template.md":"# References Skill\n\nPath: `.agents/skills/greenfield-clean-breaks/references/goal-template.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/goal-template.md)",".agents/skills/greenfield-clean-breaks/references/wave-ordering.md":"# References Skill\n\nPath: `.agents/skills/greenfield-clean-breaks/references/wave-ordering.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/wave-ordering.md)",".agents/skills/fresh-context-review/references/type-lifecycle-review.md":"# References Skill\n\nPath: `.agents/skills/fresh-context-review/references/type-lifecycle-review.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/references/type-lifecycle-review.md)",".agents/skills/factory-function-composition/references/single-or-array-pattern.md":"# References Skill\n\nPath: `.agents/skills/factory-function-composition/references/single-or-array-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/single-or-array-pattern.md)",".agents/skills/factory-function-composition/references/sync-construction-render-gate.md":"# References Skill\n\nPath: `.agents/skills/factory-function-composition/references/sync-construction-render-gate.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/sync-construction-render-gate.md)",".agents/skills/error-handling/references/http-boundaries.md":"# References Skill\n\nPath: `.agents/skills/error-handling/references/http-boundaries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/http-boundaries.md)",".agents/skills/error-handling/references/toast-on-error.md":"# References Skill\n\nPath: `.agents/skills/error-handling/references/toast-on-error.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/toast-on-error.md)",".agents/skills/error-handling/references/wrapping-boundaries.md":"# References Skill\n\nPath: `.agents/skills/error-handling/references/wrapping-boundaries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/wrapping-boundaries.md)",".agents/skills/collapse-pass/references/goal-template.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/goal-template.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/goal-template.md)",".agents/skills/collapse-pass/references/library-refusal.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/library-refusal.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/library-refusal.md)",".agents/skills/collapse-pass/references/never-touch.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/never-touch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/never-touch.md)",".agents/skills/collapse-pass/references/periodic-monorepo-pass.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/periodic-monorepo-pass.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/periodic-monorepo-pass.md)",".agents/skills/collapse-pass/references/report-format.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/report-format.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/report-format.md)",".agents/skills/collapse-pass/references/smell-catalog.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/smell-catalog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/smell-catalog.md)",".agents/skills/cohesion-over-testability/references/sweep-procedure.md":"# References Skill\n\nPath: `.agents/skills/cohesion-over-testability/references/sweep-procedure.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/references/sweep-procedure.md)",".agents/skills/codex-task-backlog-hygiene/agents/openai.yaml":"# Agents Skill\n\nPath: `.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml)",".agents/skills/agent-instructions/references/composition-audit.md":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/composition-audit.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/composition-audit.md)",".agents/skills/agent-instructions/references/evaluation.md":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/evaluation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/evaluation.md)",".agents/skills/agent-instructions/references/instruction-placement.md":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/instruction-placement.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/instruction-placement.md)",".agents/skills/agent-instructions/evals/routing.json":"# Evals Skill\n\nPath: `.agents/skills/agent-instructions/evals/routing.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/evals/routing.json)","apps/landing/.cursor/rules/posthog-integration.mdc":"# Cursor Rule: posthog-integration\n\nPath: `apps/landing/.cursor/rules/posthog-integration.mdc`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/landing/.cursor/rules/posthog-integration.mdc)","packages/ui/src/section-header/README.md":"# section-header Documentation\n\nPath: `packages/ui/src/section-header/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/src/section-header/README.md)","packages/app/test-fixtures/consumer/package.json":"# Consumer Skill\n\nPath: `packages/app/test-fixtures/consumer/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/package.json)","packages/app/test-fixtures/consumer/tsconfig.json":"# Consumer Skill\n\nPath: `packages/app/test-fixtures/consumer/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/tsconfig.json)"},"files":{".agents/skills/worktree-hygiene/SKILL.md":"---\nname: worktree-hygiene\ndescription: Safely reap merged Git worktrees and branches across Epicenter harnesses. Use when cleaning `git worktree list`, removing orphaned or detached worktrees, or deciding whether one is safe to delete, not when creating branches or commits.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# Worktree Hygiene\n\n> **Related Skills**: [git](../git/SKILL.md) for branch creation, staging, and commit messages. [standalone-commits](../standalone-commits/SKILL.md) for reviewable units. [pull-request](../pull-request/SKILL.md) for merge strategy.\n\nFour harnesses (warp, codex, opencode, conductor) mint worktrees here and nothing reaps them, so they accumulate. The cure is to reap on close: when a branch lands, remove its worktree and delete the branch in the same motion. This skill is the safe procedure for doing that, one-off or as a periodic sweep.\n\n## The reap signal (and the trap)\n\n\"Branch merged\" is **not** sufficient to reap. A merged branch routinely carries live uncommitted edits in its working tree; removing it with `--force` destroys that work. The real signal is:\n\n```txt\nreap = (branch fully contained in origin/main)  AND  (working tree clean OR only throwaway dirt)\n```\n\nUse `git merge-base --is-ancestor <branch> origin/main` for containment: if true, every commit on the branch is in `origin/main`, which is airtight even when the branch sits on a stacked base. `git cherry origin/main <branch>` shows unmerged commits (`+` lines).\n\n## Audit procedure\n\nFetch first if `origin/main` is stale, then classify every worktree:\n\n```bash\ncd <main-checkout>; base=origin/main\ngit worktree list --porcelain | awk '/^branch /{print $2}' | sed 's#refs/heads/##' | while read b; do\n  [ -z \"$b\" ] && continue\n  ahead=$(git cherry \"$base\" \"$b\" 2>/dev/null | grep -c '^+')\n  if git merge-base --is-ancestor \"$b\" \"$base\" 2>/dev/null; then st=\"MERGED\"; else st=\"$ahead unmerged\"; fi\n  printf \"%-50s %s\\n\" \"$b\" \"$st\"\ndone\n```\n\nFor each MERGED worktree, check its working tree with `git -C <path> status --porcelain` (no output = clean). Inspect dirty file lists before deciding: lockfile-only churn is throwaway; modified source or unique untracked files are real work. Detached-HEAD worktrees have no branch line; test their tip with `git merge-base --is-ancestor <sha> origin/main`.\n\n## Decide per worktree\n\n```txt\nmerged + clean                 -> reap: git worktree remove <path>; git branch -d/-D <branch>\nmerged + throwaway dirt only   -> reap: git worktree remove --force <path>; git branch -d/-D <branch>\ndetached + merged + clean      -> reap: git worktree remove <path>   (no branch to delete)\nmerged + REAL uncommitted work -> preserve. Branch or commit the work first; do not reap.\ndetached + REAL uncommitted    -> anchor before anything: git -C <path> switch -c holding/<name>\nunmerged commits               -> leave alone (active work)\n```\n\n## Reaping is destructive: gate it\n\n`git worktree remove` and `git branch -d` are destructive (AGENTS.md: destructive actions need approval). For a sweep, present an approve-list of exact commands grouped by tier before running any of them. Never reap on a self-reported \"it's merged\"; run the audit yourself.\n\n- `git branch -d` refuses unless the branch is merged into the current HEAD. If local `main` lags `origin/main`, it will refuse a branch that is merged only on the remote; `-D` is then justified by the `merge-base --is-ancestor origin/main` proof.\n- `git worktree remove` can fail with `Directory not empty` when ignored files (node_modules, `.DS_Store`) remain. It still de-registers the worktree. Finish with `git worktree prune` then `rm -rf <path>`.\n- The harnesses spawn and mutate worktrees continuously, even mid-sweep. Re-run the audit at the end; treat reaping as ongoing discipline, not a one-time event.\n\n## Repo-specific worktree gotchas\n\n- **`git stash` is shared across all worktrees here.** A bare `git stash`/`stash pop` can grab another worktree's entry. Prefer explicit branches; avoid stash.\n- **Animal-named warp branches are stacked on unmerged bases**, cut from whatever was checked out rather than clean `origin/main`. Before opening a PR from one, run `git diff --stat origin/main...HEAD` and confirm scope; unrelated work rides along otherwise.\n- **Verify HEAD before committing in a worktree** (`git rev-parse --abbrev-ref HEAD`). A handoff may claim a \"fresh worktree on branch X\" that does not exist; these stay checked out on the base branch itself.\n\n## Invariant: one owner per worktree\n\nEach worktree and branch has a single owner (the harness/agent that created it). Do not reap or commit into a worktree you do not own without confirming it is abandoned; a clean-looking tree may belong to a live session.\n\n## Final checks\n\n1. Re-run the audit; confirm reaped paths are gone with `git worktree list`.\n2. `git worktree prune` to clear stale registrations.\n3. Confirm any anchored `holding/*` branches still hold their edits.\n</content>\n</invoke>\n",".agents/skills/ui-design/SKILL.md":"---\nname: ui-design\ndescription: Design and review Epicenter interfaces while collapsing local UI primitives into the shared component system. Use when co-designing, exploring comparable apps, turning a feature idea into Svelte UI, or changing `packages/ui`, not for a tiny CSS repair.\nmetadata:\n  author: epicenter\n  version: '1.0'\nlicense: Complete terms in LICENSE.txt\n---\n\n# UI Design\n\n`ui-design` preserves the user-visible objective while reimagining the simplest\ngreenfield composition and collapsing local markup, arbitrary styling, and\nduplicated visual contracts into `@epicenter/ui`, except where app-specific\nbehavior or a load-bearing interaction earns the custom shape.\n\nThe existing screen is evidence, not a structure to reproduce. For Epicenter\nproduct apps, `@epicenter/ui` is the default system. Treat shadcn-svelte as\nimplementation lineage and upstream grounding, not as an app import path.\n\n## Canonical Path\n\n1. Name the user-visible objective in one concrete sentence. When the product\n   direction is unsettled, read\n   [references/direction-discovery.md](references/direction-discovery.md) before\n   choosing the composition.\n2. Read the current and neighboring surfaces. Inventory the workflow, hierarchy,\n   accessibility, important states, and recognizable product intent that matter.\n3. Sketch the simplest greenfield composition using the natural anatomy of\n   existing `@epicenter/ui` primitives.\n4. Run the component-system collapse pass below. Refuse exact reproduction of\n   incidental markup, spacing, colors, breakpoints, and one-off states.\n5. Implement the whole state surface: loading, empty, error, disabled, pending,\n   selected, and filter-empty where relevant.\n6. Verify visible, responsive, and interactive results in the browser.\n7. Run UI pre-flight before final handoff or committing the change.\n\nFor substantial work, state the design read:\n\n```txt\nObjective: <what the user accomplishes>.\nGreenfield shape: <the simplest natural component-system composition>.\nCollapse: <the local structure or styling that disappears>.\n```\n\n## Component-System Collapse Pass\n\nRun this for every meaningful UI implementation or review, not only work called\na redesign. This is the UI application of\n[asymmetric-wins](../asymmetric-wins/SKILL.md); load that skill when a candidate\nrefusal needs an explicit product-loss versus deletion-prize decision.\n\n```txt\nPreserve the product sentence.\nChallenge the inherited composition.\nRefuse the incidental visual promise.\nDelete the local code family.\n```\n\nInspect every wrapper, class bundle, arbitrary Tailwind value, custom color,\nlocally reconstructed state surface, and primitive override. Ask:\n\n1. Does an existing primitive or variant already own this contract?\n2. Can the primitive's natural shape replace the wrapper and its classes?\n3. Is the exact local detail load-bearing for comprehension, accessibility,\n   interaction, brand, or required geometry?\n4. If it survives, who owns it: the app's product behavior or the shared system?\n\nImplement obvious collapses directly. Ask the user only when the refusal changes\nworkflow, hierarchy, product meaning, brand posture, or a plausibly load-bearing\ndetail.\n\nKeep custom UI app-local only when it owns app-specific behavior or product\nmeaning. Move a stable visual contract into `packages/ui` when several apps need\nit or it owns an accessibility or interaction contract.\n\n## Human Taste Gate\n\nAsk one focused question when human preference would materially change the\nvisual language, brand posture, primary hierarchy, navigation, density, or the\ndirection of an expressive public surface. Present concrete alternatives and a\nrecommendation. Do not ask about choices settled by the shared system,\naccessibility, existing product intent, or a mechanical collapse.\n\n## Product UI And Expressive Surfaces\n\nProduct UI should usually be dense, quiet, and operational. Distinctiveness\ncomes from workflow fit, hierarchy, copy, state design, and purposeful details.\nMarketing pages, docs entry points, prototypes, and explicitly expressive work\ncan use a stronger visual identity, but still run the collapse pass and keep only\ndetails that serve the chosen direction.\n\n## References\n\n- Read [references/direction-discovery.md](references/direction-discovery.md)\n  when the user wants to co-design, compare directions, or turn a rough UI idea\n  into a buildable surface.\n- Read [references/comparable-apps.md](references/comparable-apps.md) when the\n  design question depends on category fit or what other apps do.\n- Read [references/component-system.md](references/component-system.md) for every\n  meaningful Epicenter product UI implementation or review. It owns collapse\n  smells and exceptions, then routes exact component and package mechanics to\n  the authoritative `packages/ui` guide.\n- Read [references/anti-slop-tells.md](references/anti-slop-tells.md) for public,\n  marketing, docs, portfolio-like, or highly polished work where templated output\n  is a material risk.\n- Read [references/preflight.md](references/preflight.md) before final handoff or\n  committing any visible UI change. Report only failures or intentional exceptions.\n\n## Delegation Boundaries\n\n- `styling` owns CSS, Tailwind, spacing, wrappers, overflow, and scroll traps.\n- `svelte` owns component structure, runes, lifecycle, and state mechanics.\n- `tanstack-table` owns table state, columns, sorting, and row identity.\n- `writing-voice` owns visible interface copy and tone.\n\nFor an explicit external standards or accessibility audit, WebFetch the Vercel\nWeb Interface Guidelines and apply them directly, reporting findings as\n`file:line`. Fetch them per review rather than caching a copy here, because the\nupstream rules change and a stale copy would be worse than no copy.\n\n```txt\nhttps://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md\n```\n\nThe design decision and component-system collapse stay here even when another\nskill owns their implementation mechanics.\n\n## Final Output\n\nReport the changed surfaces, browser verification, any material deletion prize,\nand only the custom shapes or pre-flight exceptions that intentionally remain.\n",".agents/skills/yjs/SKILL.md":"---\nname: yjs\ndescription: Apply Epicenter’s Yjs 14 patterns for row documents, transactions, persistence, and synchronization. Use when working with `@y/y`, CRDTs, collaborative editing, awareness, or Yjs storage and providers.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# Yjs 14 CRDT Patterns\n## Reference Repositories\n\n- [Yjs](https://github.com/yjs/yjs): CRDT framework for shared editing and offline-first data\n- [Yjs Protocols](https://github.com/yjs/y-protocols): algorithmic grounding for sync and awareness\n\n## Upstream Grounding\n\nWhen conflict semantics, transaction origins, shared-type behavior, update encoding, storage growth, or shared-type APIs affect correctness, use source-backed grounding before relying on memory. If DeepWiki MCP is available, ask a narrow question against `yjs/yjs`; for sync and awareness algorithms, ask against `yjs/y-protocols`. If DeepWiki is unavailable or the repo is not indexed, use upstream source or official docs directly. Treat DeepWiki as orientation, then verify decisive details against the locally pinned `@y/y` types and source before changing code.\n\nEpicenter targets `@y/y` 14 only. Do not add `yjs` 13, `y-indexeddb`, a compatibility reader, a package alias, a dual wire, or a fallback. Existing Yjs 13 code is replacement material, not a compatibility surface.\n\nSkip DeepWiki for stable basics and repo-local patterns already documented below.\n\nRead [references/document-design.md](references/document-design.md) before\nchoosing how a new row document is structured. Counters, user-controlled\nordering, and nested shapes each have a conflict behavior that is expensive to\nchange once data exists.\n\nRead [references/debugging.md](references/debugging.md) when a document\nconverges to unexpected state or grows faster than its content.\n\n> **Related Skills**: See `svelte` for reading store data into a component, and `typebox` for the schemas behind the `field.*` declaration helpers.\n\n## Transactions, Origins, And Undo\n\n- Yjs updates are commutative and idempotent. A state vector describes what a\n  replica HAS; it does not order what it owes. A delete moves no client clock,\n  so two replicas can hold the same vector and differ, which is why obligation\n  in this store is a log position rather than a vector. Both the cursor and the\n  outbox are then DERIVED from one column on the update rows, `MAX(authoritySeq)`\n  and `authoritySeq IS NULL`, so neither can disagree with the bytes it accounts\n  for (`packages/app/evidence/data/invariants.test.ts`, ADR-0298).\n- Use `Y.encodeStateVector(doc)` to describe local clocks, then `Y.encodeStateAsUpdateV2(doc, remoteStateVector)` to send only missing updates.\n- Persist and transmit bytes from the `updateV2` event. Replay them with `Y.applyUpdateV2(doc, update, origin)`.\n- Wrap multi-write user actions in `doc.transact(() => { ... }, origin)`. This reduces observer churn and gives persistence, providers, and undo logic a useful origin.\n- Treat transaction origins as the boundary for filtering provider echoes, app-authored operations, and undo tracking.\n- Scope `Y.UndoManager` to concrete shared types. Set `trackedOrigins`, tune `captureTimeout`, and call `stopCapturing()` between logically separate commands.\n- Use relative positions for collaborative cursor and selection anchors. Raw numeric indexes drift under remote edits.\n- `Y.snapshot()` is a historical marker that depends on retained delete history. `Y.encodeStateAsUpdateV2(doc)` is the self-contained checkpoint format.\n- Prefer separate top-level docs over Yjs subdocuments unless Epicenter owns the whole provider lifecycle for the subdoc path.\n\n## Store Connection\n\n- Yjs is network-agnostic. It supplies CRDT state, state vectors, updates, and awareness behavior, not Epicenter's connection topology, authorization, or durability contract.\n- One socket per application, not one per open document. A replica connects to `STORE_SYNC_ROUTE.pattern` (`/api/store/v1/sync`, in `packages/sync/src/store-route.ts`) with a `namespace` naming the workspace and a `cursor` naming its own durably applied position, so a reconnect is a catch-up rather than a fresh start (ADR-0222).\n- Whose data it is never appears in the query. It comes from the resolved bearer, server-side, so there is no value a client can put in the URL that reaches another partition (ADR-0092).\n- Browser upgrades authenticate through exactly one `bearer.<token>` subprotocol entry, because a browser upgrade cannot set `Authorization`; the mount echoes only the main subprotocol on the 101, so the token never round-trips. Non-browser clients may use an `Authorization` header. Do not use cookie-only upgrades, query-string credentials, or post-accept authentication frames.\n- The wire is framing and nothing else: `push`, `ack`, `refuse`, `entry`, `offer`, `snapshot`, `wanted` (`packages/app/src/data/sync/frames.ts`). No frame knows what an update means, what a row is, or what Yjs is, which is exactly why chunking is safe at that layer.\n- Large updates are chunked at `CHUNK_BYTES`, set by Cloudflare's documented Durable Object SQLite value cap rather than by anything about Yjs. Do not raise it to the measured wall; the documented limit is the one Cloudflare is entitled to enforce.\n- Presence is deliberately absent until a concrete consumer earns awareness state and disconnect cleanup. If added later, awareness is ephemeral and must never be persisted into the Y.Doc or the SQLite update log as canonical data.\n\n## One document per store\n\nEpicenter pins `@y/y@14.0.0-rc.26`. A store is one `Y.Doc` with table roots\nnamed `tables:<name>` and a `kv` root. Each row is a nested `Y.Node` attribute\non its table root. The row’s attributes are JSON metadata and its sole sequence\nchild is the stable body node (ADR-0431).\n\nThe store creates both nodes together. Reads never create or repair them and\nrequire exactly one child of the correct node type. Field updates cannot\nreplace the child; deleting the row removes its subtree. Child index zero is\na storage convention, while the child has its own stable CRDT identity.\n\n`get`, `rows`, and `create` return value snapshots. `table.body(id)` returns\nthe live body independently of metadata conformance. `body`, `content`, and\n`!`-prefixed names are ordinary metadata; structural `id` remains reserved.\n\n```typescript\nconst notes = defineTable({\n  fields: { title: field.string(), body: field.string() },\n  body: plainText(),\n});\n\nconst row = db.tables.notes.create({ title: 'Trip', body: 'metadata' });\nconst body = db.tables.notes.body(row.id);\nbody?.insert(0, ['The writing.']);\n```\n\nKeep `field.*` helpers, which use TypeBox internally. The current two-method\nbody file format and artifact sequence replacement are specified in\n`packages/app/src/data/README.md`. Artifact reads expose\n`{ id, fields, body }`; values become frontmatter and the codec supplies the\ntext below it. Checkout distinguishes a field named `body` from a body edit\nby operation kind.\n\nOnly declared table/KV roots reach `Doc.get`, which creates on miss. Row\nlookups use `getAttr` and never mint roots. Keeping rows nested also avoids\n`findRootTypeKey` scanning one document root per row during encoding.\n\n## Editor bindings\n\nBind editors to the body child. Honeycrisp uses `@y/prosemirror@2.0.0-12`:\n`ynodeToPmnode(node, schema)` reads and `pmnodeToDelta(pmNode)` produces an\ninsertion delta for `node.applyDelta`. The converter fills an empty top-level document from the schema without\nwriting to Yjs. To rewrite, delete the old sequence and\napply the new delta inside one store transaction; never replace the body.\n\nEditor normalization owns body attributes. Parent metadata stays outside it.\nA metadata edit must neither notify body watchers nor clear editor undo history.\nHoneycrisp clears history for foreign body edits and preserves undo/redo origins.\nThe Skills CodeMirror adapter writes only its supplied body but replaces the\nwhole text on each edit; this has weaker concurrent-edit behavior than an\nincremental collaborative binding.\n\nRoot overrides keep RC26 and lib0 RC32 consistent through the dependency\nclosure. The old renderer and internal-export patches are removed. A new ProseMirror\npatch restores the virtual empty-content gate after undo to preserve redo. Do not\nintroduce Yjs 13 to accommodate stock Tiptap collaboration.\n\n## Three Signals, And Which One Fires\n\n- `table.subscribe` fires when a table's SHAPE changes: a row added, removed,\n  or a value edited. It does NOT fire for an edit inside a body node. It\n  hands the listener the ROW IDS the commit touched, so a consumer holding a\n  projection rebuilds only what moved; a consumer that just re-reads may\n  ignore them.\n- `table.watch(node)` fires for edits inside one body node, keyed by the\n  node's own identity.\n- `kv.subscribe` fires when any declared key changes, and carries nothing.\n  There are ten keys, so naming them would buy nothing.\n\nThe distinction is forced by the library. Delivery routes off\n`transaction.changed`, which Yjs fills with the types a transaction modified\nDIRECTLY, so a keystroke in a body puts the BODY's type there; its parent is\nthe row, not the table root. Nothing bubbles to the table. A surface that\nwatches a table for changes inside a node sees nothing.\n\n## Owner-Side Persistence\n\nOne document, so one chain: `_updates (id, bytes, authoritySeq)` in SQLite, and\nthe matching object store in the browser's IndexedDB. There is no per-document\npartition, no `_tombstones`, and no separate `_outbox` — what a replica still\nowes is the rows with `authoritySeq IS NULL`, which is a partial index rather\nthan a second table (ADR-0238). Do not add a separate IndexedDB provider or a\nsecond document store.\n\n- Hydrate BEFORE attaching the `updateV2` listener. Replaying stored bytes\n  through the listener would re-append them; the engine applies its history\n  first and then attaches, and throws if a foreign apply ever reaches the\n  listener, so a mistake here fails the open loudly rather than duplicating a\n  log (`packages/app/src/data/store/store.ts`).\n- A locally authored append joins the durable queue owed. Authority-accepted\n  bytes arrive on a remote origin and create no outbound obligation, which is\n  what the one listener checks before appending.\n- The chain compacts by ROW, and the row's `authoritySeq` picks which of two\n  mechanisms applies (ADR-0301). Rows the authority has taken replay into a\n  fresh `gc: true` document and rewrite as one complete V2 state update: replay\n  rather than `mergeUpdatesV2`, because merging does not GC and collapsing\n  tombstones is the point. `encodeStateAsUpdateV2` folds buffered pending state\n  back into its output, so a fold taken while dependencies are missing cannot\n  silently drop them.\n- Rows still OWED cannot take that path, and this is the one to get right. A\n  whole-document re-encode is not a delta the authority could be offered, so\n  owed rows collapse with `mergeUpdatesV2` into one resendable row that takes a\n  NEW id above every existing one. Folding them like acknowledged rows would\n  offer the authority a whole document per keystroke; inheriting a lower id\n  would let an earlier acknowledgement stamp bytes it never carried.\n- Treat replay corruption as storage failure: a document that cannot hydrate refuses its open rather than handing out a half-hydrated handle.\n\n## Storage Optimization\n\nv14 has ONE shared type, `Y.Node`, reached as `doc.get(name)` for a map-like\nroot or `doc.get(name, 'text')` for a text one. There is no `Y.Map`, `Y.Text`,\n`Y.Array` or `Y.XmlFragment`; code or advice naming them is Yjs 13 and is\nreplacement material.\n\nAttribute tombstones retain the key forever, and every `setAttr(key, value)`\ncreates a new internal item and tombstones the previous one, which is why\n`gc: true` is what collapses a field edited 5,000 times down to two structs.\n\n## Raw Types At The Boundary\n\nA `Y.Node` handed out by a table handle is a live CRDT reference and is MEANT\nto be bound to an editor. That is the design: the store hands the editor the\nreal thing rather than proxying it, because a copy would break the merge that\nmakes it worth having.\n\nA raw node can reach its parent and document. It is not a security sandbox.\nFeatures must use `table.body(id)` instead of constructing or repairing the\nrow layout. The store owns the invariant in\n`packages/app/src/data/store/document.ts`.\n\nRC26 still types configured children as `Fingerprintable`, which does not\ninclude a live `Y.Node`, and `insert` does not translate delta children into\nnode children. Keep the insertion escape localized at row creation; do not\nbroaden JSON metadata types or publish a compatibility alias to hide this gap.\nVerify the installed declarations before changing that boundary.\n\n## References\n\n- [Learn Yjs](https://learn.yjs.dev/) - Interactive tutorials\n- [Yjs Documentation](https://docs.yjs.dev/) - API reference\n- [Yjs INTERNALS.md](https://github.com/yjs/yjs/blob/main/INTERNALS.md) - How Yjs works internally\n- [GitHub issue #520](https://github.com/yjs/yjs/issues/520) - Conflict resolution discussion with dmonad\n- [fractional-indexing](https://github.com/rocicorp/fractional-indexing) - Production library\n- [YATA paper](https://www.researchgate.net/publication/310212186_Near_Real-Time_Peer-to-Peer_Shared_Editing_on_Extensible_Data_Types) - Academic foundation\n- `packages/app/src/data/store/document.ts`: the application-document grammar (roots, row types, field reads)\n- `packages/app/src/data/store/log.ts` and `packages/app/src/data/store/persistence.ts`: the durable update log, the outbox, and the persistence queue\n- `packages/app/evidence/data/invariants.test.ts`: the library behaviour this design rests on, pinned against the installed rc\n- `packages/app/src/data/sync/`: the Yjs 14 wire (frames, connection, client, authority)\n- [ADR-0295](../../../docs/adr/0295-a-database-is-one-yjs-document-and-a-row-holds-its-rich-content.md): one document per application, and a row holds its rich content (supersedes ADR-0248)\n- [ADR-0309](../../../docs/adr/0309-a-field-holds-a-value-or-a-node-and-the-retired-words-fail-the-build.md): historical field/node vocabulary, amended by [ADR-0431](../../../docs/adr/0431-rows-return-values-and-own-a-separate-body.md) for the sole-child layout\n- [ADR-0221](../../../docs/adr/0221-a-table-names-the-rows-a-commit-touched-and-says-so-after-the-projection-commits.md): what `subscribe` reports and when it fires\n- [ADR-0146](../../../docs/adr/0146-row-documents-use-one-yjs-14-major-and-runtime-native-update-logs.md): Yjs 14-only persistence decision\n- [ADR-0159](../../../docs/adr/0159-row-documents-persist-in-one-owner-side-sqlite-update-log.md): one owner-side SQLite update log and shared attachment seam\n",".agents/skills/typebox/SKILL.md":"---\nname: typebox\ndescription: TypeBox patterns for runtime schema validation and JSON Schema generation. Use when mentioning TypeBox, Standard Schema, or schema-based validation.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# TypeBox\n\n## Package Names\n\n**Use `typebox`, not `@sinclair/typebox`**. The `@sinclair/typebox` package is deprecated.\n\n```typescript\n// Correct\nimport { Type } from 'typebox';\nimport { Compile } from 'typebox/compile';\nimport { Value } from 'typebox/value';\n\n// Wrong - deprecated\nimport { Type } from '@sinclair/typebox';\n```\n\n## When to Use What\n\n| Need                        | Use                                  |\n| --------------------------- | ------------------------------------ |\n| Define schemas              | `typebox` with `Type.*`              |\n| One-off validation          | `Value.Check()` from `typebox/value` |\n| High-performance validation | `Compile()` from `typebox/compile`   |\n\nTypeBox schemas are portable JSON Schema-shaped data. If a TypeBox boundary\nneeds validation, validate the TypeBox schema directly:\n\n```typescript\nimport { Type } from 'typebox';\nimport { Compile } from 'typebox/compile';\nimport { Value } from 'typebox/value';\n\nconst schema = Type.Object({ name: Type.String(), age: Type.Number() });\n\nValue.Check(schema, value); // boolean\n\nconst validator = Compile(schema);\nvalidator.Check(value); // boolean\nvalidator.Parse(value); // throws or returns typed value\n```\n\n## Standard Schema Boundary\n\nTypeBox does not implement Standard Schema. Do not write TypeBox code that expects\n`schema['~standard']`. If a boundary accepts Standard Schema, prefer Arktype or\nanother schema library that implements it natively. If a boundary owns TypeBox\nschemas, keep the boundary TypeBox-native and use JSON Schema as the portable\nrepresentation.\n\n## Repo Policy\n\nUse TypeBox for portable schema objects: workspace tables, kv, fields, actions,\nMCP inputs, manifests, and other surfaces that need JSON Schema shape,\nmetadata, `Static<>`, or schema inspection. Use Arktype for local runtime\nvalidation, request parsing, env/config parsing, persisted UI state, transforms,\nand branded domain values.\n\n## References\n\n- [TypeBox is a Beast](../../../docs/articles/typebox-is-a-beast.md)\n- [The Schema Wars Just Shifted](../../../docs/articles/20260429T120000-typebox-standard-schema-pivot.md)\n",".agents/skills/typescript/SKILL.md":"---\nname: typescript\ndescription: Apply project conventions for TypeScript types, imports, generics, factories, and runtime schemas. Use when editing `.ts` files or reviewing TypeScript design and tests, including constraints that need to name an invalid literal key or string in a compiler error.\nmetadata:\n  author: epicenter\n  version: '2.0'\n---\n\n# TypeScript Guidelines\n\nProject-wide TypeScript conventions compose with narrower skills such as `arktype`, `typebox`, `testing`, and `factory-function-composition`.\n\n## Core Rules\n\n- Try to derive or import a type before declaring a new named type. New named types must earn their place as a real contract, protocol vocabulary, discriminated result union, capability port, or multi-implementation shape.\n- Treat local shape copies as boundary smells. Prefer the owning runtime type, schema inference, factory return type, function signature, or a caller-owned capability function.\n- Compose types upward from a named base: extend with `Base & Extra`, never subtract-and-replace with `Omit<Base, 'k'> & { k: U }`. An `Omit<...> &` in a type you author is structural override; it is the tell that a smaller base wants a name. To narrow a surface, return that base rather than `Omit`-ing a member away. See [project conventions](references/project-conventions.md).\n- Use `type`, not `interface`.\n- Use `readonly` only for arrays and maps, unless matching an upstream type exactly.\n- Treat acronyms as normal words in camelCase: `parseUrl`, `defineTable`, `readJson`, `customerId`.\n- Use `.js` extensions in relative imports. Do not use extensionless or `.ts` relative imports.\n- Export symbols at their declarations. Reserve `export { ... } from ...` for barrel files.\n- In React/TSX, prefer named function components with explicit props parameters over `React.FC`/`FunctionComponent`; only type component values when you are storing them in a registry or passing them as data.\n- Prefer factory functions over classes. Let closure position communicate private vs public API.\n- Use descriptive generic names with a `T` prefix, such as `TSchema`, `TDefs`, and `TKey`.\n- Destructure options in the function signature when the object is a configuration bag. Keep a named value only when it is the domain object being transformed or forwarded.\n- Let TypeScript infer private and inner return types. Annotate exported APIs only when useful for clarity or to break circular inference.\n- If an exported type is exactly the object returned by a `create*`, `attach*`, `open*`, or similar factory, derive it from the implementation with `ReturnType<typeof createThing>`. Put the exported output alias immediately after the factory. Keep input, config, data, protocol, and multi-implementation contract types above the factory.\n- Move consumer-facing JSDoc onto the returned object members. Add concrete member annotations inside the returned object when they preserve IntelliSense, narrow an implementation detail, or keep a public method/property surface stable.\n- For curried factories, derive from the inner return, such as `ReturnType<ReturnType<typeof createThing>>`. For generic factories, instantiate `typeof` when needed, such as `ReturnType<typeof openThing<TActions>>`.\n- Preserve intentional readonly public surfaces with getters when deriving from an object literal. Do not expose writable internal state just because the concrete implementation happens to store it that way.\n- Use a `Symbol` brand when identity means a specific factory output, not a coincidental shape probe.\n- Avoid `as any`. Use `unknown`, validation, brands, or narrower helpers instead.\n- Prefer optional chaining over `in` checks or truthiness when checking optional properties.\n- Use `is`, `has`, or `can` prefixes for booleans that answer a question.\n- Prefer `switch` over `if/else` for repeated equality comparisons against the same value. Use `default: value satisfies never` for exhaustiveness when needed.\n- Prefer `Record` lookup tables over nested ternaries for finite value mappings.\n- Compose typed errors bottom-up. Do not filter a broad upstream error union at the boundary. See `error-handling` for Result propagation, recovery, and presentation.\n- Question silent fallbacks that hide invalid state. Preserve round-trip invariants when parsing and serializing.\n\n## Go-to-Definition Awareness\n\nWhen organizing types and exports, always consider Go-to-Definition. A developer pressing Go-to-Def from a call site should land as close as possible to the actual source of truth. If a design choice forces an extra navigation hop, the choice has to earn it elsewhere (e.g., a real validation boundary, a published contract, or a multi-implementation port).\n\nConcrete regressions to watch for:\n\n- **Destructure-re-export of a module-level object**: `const stub = { fn, gn } satisfies T; export const { fn, gn } = stub;` lands Go-to-Def on the destructuring line, not the real definition. Prefer per-export `satisfies` or a direct `export const fn = ... satisfies T['fn']`.\n- **`typeof Real` annotation over `satisfies`**: `export const fn: typeof Real = unreachable` hides the underlying value's identity from navigation. `export const fn = unreachable satisfies typeof Real` keeps the value as the source of truth.\n- **`: T` annotation over `satisfies` for a multi-impl port**: the complement of the rule above. When an interface `T` has several impls (a `#platform/*` or browser/tauri split) and one impl is deliberately narrower than `T` (e.g. ignores a param the contract declares), `export const x = {...} satisfies T` leaks that narrow concrete type, so a caller's view of the method changes by platform. Annotate `export const x: T = {...}` to publish the wide contract, and the narrower impl still type-checks. Reference: whispering's `ManualRecorderLive: RecorderService<...>` (unary CPAL impl behind a binary contract).\n- **Re-export chains in non-barrel files**: `export { X } from './alias'` outside `index.ts` costs an extra hop with nothing to show for it. Reserve `export { ... } from ...` for barrels; export at the declaration everywhere else.\n- **Adapter / proxy / wrapper with no behavior change**: a `fromX` translator or thin passthrough makes Go-to-Def land on the wrapper. Widen the underlying factory's return shape instead (see `factory-function-composition` \"collapsed adapter\" rule).\n- **Manual return type annotation duplicating zone 4**: annotating a factory with a hand-written interface diverts Go-to-Def to the alias. Let the factory return its concrete object, then put the exported alias directly after it as `export type Thing = ReturnType<typeof createThing>`. This keeps navigation on the returned members and lets their JSDoc own the public documentation. See [factory method documentation](../factory-function-composition/references/method-documentation-and-sibling-calls.md) when hover or navigation is in question.\n- **Noisy `satisfies` generic lists**: if a return object should prove it extends a generic contract but `satisfies Contract<A, B, C> & Extras` forces callers to restate inferred table, action, or runtime types, prefer a constrained identity helper owned by the contract module. Example: `return defineWorkspace({ ...workspace, ...runtime })` where the helper accepts `TWorkspace extends Workspace<...>` and returns `TWorkspace`. This keeps the call site readable, preserves the exact inferred return type, and leaves Go-to-Def on the real object members.\n- **When not to add `defineX`**: do not wrap a simple `satisfies` check just to give it a helper name. If the contract has no required type arguments, or its generics have defaults that make `satisfies Contract` readable, prefer `satisfies`. The helper only earns the extra name when it removes generic noise the reader would otherwise have to carry.\n\nFor broader public-shape decisions that affect navigation across packages, see `rethink`.\n\n## Reference Map\n\n- [Project conventions](references/project-conventions.md): detailed examples for derived types, local shape copies, imports, barrels, factories, generics, destructuring, and factory return types.\n- [Type safety and control flow](references/type-safety-and-control-flow.md): identity brands, casts, optional properties, boolean naming, switches, record lookups, error composition, fallback smells, and round-trip invariants.\n- [Type organization](references/type-organization.md): `types.ts` location, co-location rules, inline-vs-extract hop test, options and ID naming.\n- [Factory patterns](references/factory-patterns.md): factory-focused refactors, parameter destructuring, and coupled state extraction.\n- [Runtime schema patterns](references/runtime-schema-patterns.md): arktype, branded IDs, optional property syntax, and workspace table IDs.\n- [Testing patterns](references/testing-patterns.md): inline single-use setup and source-shadowing tests.\n- [Advanced TypeScript features](references/advanced-typescript-features.md): iterator helpers and const generic array inference.\n- [Readable constraint errors](references/readable-constraint-errors.md): read when a literal key or string constraint needs to identify the offending value in a compiler diagnostic.\n",".agents/skills/tsconfig/SKILL.md":"# tsconfig\n\nPath: `.agents/skills/tsconfig/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tsconfig/SKILL.md)",".agents/skills/testing/SKILL.md":"# testing\n\nPath: `.agents/skills/testing/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/SKILL.md)",".agents/skills/technical-articles/SKILL.md":"# technical-articles\n\nPath: `.agents/skills/technical-articles/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/technical-articles/SKILL.md)",".agents/skills/tauri/SKILL.md":"# tauri\n\nPath: `.agents/skills/tauri/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tauri/SKILL.md)",".agents/skills/tanstack-table/SKILL.md":"# tanstack-table\n\nPath: `.agents/skills/tanstack-table/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tanstack-table/SKILL.md)",".agents/skills/svg-animations/SKILL.md":"# svg-animations\n\nPath: `.agents/skills/svg-animations/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/SKILL.md)",".agents/skills/sveltekit/SKILL.md":"# sveltekit\n\nPath: `.agents/skills/sveltekit/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/sveltekit/SKILL.md)",".agents/skills/svelte/SKILL.md":"# svelte\n\nPath: `.agents/skills/svelte/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/SKILL.md)",".agents/skills/styling/SKILL.md":"# styling\n\nPath: `.agents/skills/styling/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/styling/SKILL.md)",".agents/skills/standalone-commits/SKILL.md":"# standalone-commits\n\nPath: `.agents/skills/standalone-commits/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/SKILL.md)",".agents/skills/specification-writing/SKILL.md":"# specification-writing\n\nPath: `.agents/skills/specification-writing/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/SKILL.md)",".agents/skills/spec-execution/SKILL.md":"# spec-execution\n\nPath: `.agents/skills/spec-execution/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/spec-execution/SKILL.md)",".agents/skills/social-media/SKILL.md":"# social-media\n\nPath: `.agents/skills/social-media/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/social-media/SKILL.md)",".agents/skills/services-layer/SKILL.md":"# services-layer\n\nPath: `.agents/skills/services-layer/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/SKILL.md)",".agents/skills/rust-errors/SKILL.md":"# rust-errors\n\nPath: `.agents/skills/rust-errors/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/rust-errors/SKILL.md)",".agents/skills/refactoring/SKILL.md":"# refactoring\n\nPath: `.agents/skills/refactoring/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/refactoring/SKILL.md)",".agents/skills/radical-options/SKILL.md":"# radical-options\n\nPath: `.agents/skills/radical-options/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/radical-options/SKILL.md)",".agents/skills/query-layer/SKILL.md":"# query-layer\n\nPath: `.agents/skills/query-layer/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/SKILL.md)",".agents/skills/pull-request/SKILL.md":"# pull-request\n\nPath: `.agents/skills/pull-request/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/SKILL.md)",".agents/skills/prototype/SKILL.md":"# prototype\n\nPath: `.agents/skills/prototype/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/SKILL.md)",".agents/skills/post-implementation-review/SKILL.md":"# post-implementation-review\n\nPath: `.agents/skills/post-implementation-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/post-implementation-review/SKILL.md)",".agents/skills/one-sentence-test/SKILL.md":"# one-sentence-test\n\nPath: `.agents/skills/one-sentence-test/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/one-sentence-test/SKILL.md)",".agents/skills/monorepo/SKILL.md":"# monorepo\n\nPath: `.agents/skills/monorepo/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/monorepo/SKILL.md)",".agents/skills/method-shorthand-jsdoc/SKILL.md":"# method-shorthand-jsdoc\n\nPath: `.agents/skills/method-shorthand-jsdoc/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/method-shorthand-jsdoc/SKILL.md)",".agents/skills/logging/SKILL.md":"# logging\n\nPath: `.agents/skills/logging/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/logging/SKILL.md)",".agents/skills/hono/SKILL.md":"# hono\n\nPath: `.agents/skills/hono/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/hono/SKILL.md)",".agents/skills/handoff/SKILL.md":"# handoff\n\nPath: `.agents/skills/handoff/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/handoff/SKILL.md)",".agents/skills/grill-me/SKILL.md":"# grill-me\n\nPath: `.agents/skills/grill-me/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/grill-me/SKILL.md)",".agents/skills/greenfield-clean-breaks/SKILL.md":"# greenfield-clean-breaks\n\nPath: `.agents/skills/greenfield-clean-breaks/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/SKILL.md)",".agents/skills/govuk-style/SKILL.md":"# govuk-style\n\nPath: `.agents/skills/govuk-style/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/govuk-style/SKILL.md)",".agents/skills/github-issues/SKILL.md":"# github-issues\n\nPath: `.agents/skills/github-issues/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/github-issues/SKILL.md)",".agents/skills/git/SKILL.md":"# git\n\nPath: `.agents/skills/git/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/git/SKILL.md)",".agents/skills/fresh-context-review/SKILL.md":"# fresh-context-review\n\nPath: `.agents/skills/fresh-context-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/SKILL.md)",".agents/skills/first-read-review/SKILL.md":"# first-read-review\n\nPath: `.agents/skills/first-read-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/first-read-review/SKILL.md)",".agents/skills/factory-function-composition/SKILL.md":"# factory-function-composition\n\nPath: `.agents/skills/factory-function-composition/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/SKILL.md)",".agents/skills/error-handling/SKILL.md":"# error-handling\n\nPath: `.agents/skills/error-handling/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/SKILL.md)",".agents/skills/drizzle-orm/SKILL.md":"# drizzle-orm\n\nPath: `.agents/skills/drizzle-orm/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/drizzle-orm/SKILL.md)",".agents/skills/documentation/SKILL.md":"# documentation\n\nPath: `.agents/skills/documentation/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/documentation/SKILL.md)",".agents/skills/dialectic/SKILL.md":"# dialectic\n\nPath: `.agents/skills/dialectic/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/dialectic/SKILL.md)",".agents/skills/diagnose/SKILL.md":"# diagnose\n\nPath: `.agents/skills/diagnose/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/diagnose/SKILL.md)",".agents/skills/delegate-claude/SKILL.md":"# delegate-claude\n\nPath: `.agents/skills/delegate-claude/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/delegate-claude/SKILL.md)",".agents/skills/define-errors/SKILL.md":"# define-errors\n\nPath: `.agents/skills/define-errors/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/define-errors/SKILL.md)",".agents/skills/control-flow/SKILL.md":"# control-flow\n\nPath: `.agents/skills/control-flow/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/control-flow/SKILL.md)",".agents/skills/consult-claude/SKILL.md":"# consult-claude\n\nPath: `.agents/skills/consult-claude/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/consult-claude/SKILL.md)",".agents/skills/collapse-pass/SKILL.md":"# collapse-pass\n\nPath: `.agents/skills/collapse-pass/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/SKILL.md)",".agents/skills/cohesion-over-testability/SKILL.md":"# cohesion-over-testability\n\nPath: `.agents/skills/cohesion-over-testability/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/SKILL.md)",".agents/skills/codex-task-backlog-hygiene/SKILL.md":"# codex-task-backlog-hygiene\n\nPath: `.agents/skills/codex-task-backlog-hygiene/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/SKILL.md)",".agents/skills/code-audit/SKILL.md":"# code-audit\n\nPath: `.agents/skills/code-audit/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/code-audit/SKILL.md)",".agents/skills/cloudflare-workers/SKILL.md":"# cloudflare-workers\n\nPath: `.agents/skills/cloudflare-workers/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cloudflare-workers/SKILL.md)",".agents/skills/change-proposal/SKILL.md":"# change-proposal\n\nPath: `.agents/skills/change-proposal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/change-proposal/SKILL.md)",".agents/skills/caveman/SKILL.md":"# caveman\n\nPath: `.agents/skills/caveman/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/caveman/SKILL.md)",".agents/skills/better-auth-security-best-practices/SKILL.md":"# better-auth-security-best-practices\n\nPath: `.agents/skills/better-auth-security-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-security-best-practices/SKILL.md)",".agents/skills/better-auth-best-practices/SKILL.md":"# better-auth-best-practices\n\nPath: `.agents/skills/better-auth-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-best-practices/SKILL.md)",".agents/skills/autumn/SKILL.md":"# autumn\n\nPath: `.agents/skills/autumn/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/autumn/SKILL.md)",".agents/skills/auth/SKILL.md":"# auth\n\nPath: `.agents/skills/auth/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/auth/SKILL.md)",".agents/skills/attach-primitive/SKILL.md":"# attach-primitive\n\nPath: `.agents/skills/attach-primitive/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/attach-primitive/SKILL.md)",".agents/skills/asymmetric-wins/SKILL.md":"# asymmetric-wins\n\nPath: `.agents/skills/asymmetric-wins/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/asymmetric-wins/SKILL.md)",".agents/skills/arktype/SKILL.md":"# arktype\n\nPath: `.agents/skills/arktype/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/arktype/SKILL.md)",".agents/skills/agent-instructions/SKILL.md":"# agent-instructions\n\nPath: `.agents/skills/agent-instructions/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/SKILL.md)",".agents/skills/agent-goal/SKILL.md":"# agent-goal\n\nPath: `.agents/skills/agent-goal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-goal/SKILL.md)","AGENTS.md":"# AI Agent Protocol & Instructions\n\nPath: `AGENTS.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/AGENTS.md)","CLAUDE.md":"# Claude Agent Guidelines & System Prompt\n\nPath: `CLAUDE.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/CLAUDE.md)","docs/architecture.md":"# docs - System Architecture & Module Boundaries\n\nPath: `docs/architecture.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/docs/architecture.md)",".claude/commands/workers.md":"# Command: /workers\n\nPath: `.claude/commands/workers.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.claude/commands/workers.md)","apps/skills/package.json":"# Skills Skill\n\nPath: `apps/skills/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/package.json)","apps/skills/README.md":"# Skills Skill\n\nPath: `apps/skills/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/README.md)","apps/skills/tsconfig.json":"# Skills Skill\n\nPath: `apps/skills/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/tsconfig.json)","packages/vite-config/package.json":"# Vite-config Skill\n\nPath: `packages/vite-config/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/package.json)","packages/vite-config/tsconfig.json":"# Vite-config Skill\n\nPath: `packages/vite-config/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/tsconfig.json)","packages/ui/CHANGELOG.md":"# Ui Skill\n\nPath: `packages/ui/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/CHANGELOG.md)","packages/ui/package.json":"# Ui Skill\n\nPath: `packages/ui/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/package.json)","packages/ui/README.md":"# ui Documentation\n\nPath: `packages/ui/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/README.md)","packages/ui/tsconfig.json":"# Ui Skill\n\nPath: `packages/ui/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/tsconfig.json)","packages/sync/CHANGELOG.md":"# Sync Skill\n\nPath: `packages/sync/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/CHANGELOG.md)","packages/sync/package.json":"# Sync Skill\n\nPath: `packages/sync/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/package.json)","packages/sync/README.md":"# sync Documentation\n\nPath: `packages/sync/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/README.md)","packages/sync/tsconfig.json":"# Sync Skill\n\nPath: `packages/sync/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/tsconfig.json)","packages/svelte-utils/CHANGELOG.md":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/CHANGELOG.md)","packages/svelte-utils/package.json":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/package.json)","packages/svelte-utils/README.md":"# svelte-utils Documentation\n\nPath: `packages/svelte-utils/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/README.md)","packages/svelte-utils/tsconfig.json":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/tsconfig.json)","packages/sqlite/package.json":"# Sqlite Skill\n\nPath: `packages/sqlite/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/package.json)","packages/sqlite/README.md":"# sqlite Documentation\n\nPath: `packages/sqlite/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/README.md)","packages/sqlite/tsconfig.json":"# Sqlite Skill\n\nPath: `packages/sqlite/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/tsconfig.json)","packages/skills/CHANGELOG.md":"# Skills Skill\n\nPath: `packages/skills/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/CHANGELOG.md)","packages/skills/package.json":"# Skills Skill\n\nPath: `packages/skills/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/package.json)","packages/skills/README.md":"# skills Documentation\n\nPath: `packages/skills/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/README.md)","packages/skills/tsconfig.json":"# Skills Skill\n\nPath: `packages/skills/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/tsconfig.json)","packages/server/CHANGELOG.md":"# Server Skill\n\nPath: `packages/server/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/CHANGELOG.md)","packages/server/package.json":"# Server Skill\n\nPath: `packages/server/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/package.json)","packages/server/README.md":"# server Documentation\n\nPath: `packages/server/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/README.md)","packages/server/tsconfig.json":"# Server Skill\n\nPath: `packages/server/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/tsconfig.json)","packages/recorder/package.json":"# Recorder Skill\n\nPath: `packages/recorder/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/package.json)","packages/recorder/README.md":"# recorder Documentation\n\nPath: `packages/recorder/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/README.md)","packages/recorder/tsconfig.json":"# Recorder Skill\n\nPath: `packages/recorder/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/tsconfig.json)","packages/matter-core/package.json":"# Matter-core Skill\n\nPath: `packages/matter-core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/package.json)","packages/matter-core/tsconfig.json":"# Matter-core Skill\n\nPath: `packages/matter-core/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/tsconfig.json)","packages/lens/package.json":"# Lens Skill\n\nPath: `packages/lens/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/package.json)","packages/lens/tsconfig.build.json":"# Lens Skill\n\nPath: `packages/lens/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.build.json)","packages/lens/tsconfig.json":"# Lens Skill\n\nPath: `packages/lens/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.json)","packages/identity/CHANGELOG.md":"# Identity Skill\n\nPath: `packages/identity/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/CHANGELOG.md)","packages/identity/package.json":"# Identity Skill\n\nPath: `packages/identity/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/package.json)","packages/identity/tsconfig.json":"# Identity Skill\n\nPath: `packages/identity/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/tsconfig.json)","packages/field/CHANGELOG.md":"# Field Skill\n\nPath: `packages/field/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/CHANGELOG.md)","packages/field/package.json":"# Field Skill\n\nPath: `packages/field/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/package.json)","packages/field/tsconfig.build.json":"# Field Skill\n\nPath: `packages/field/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.build.json)","packages/field/tsconfig.json":"# Field Skill\n\nPath: `packages/field/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.json)","packages/document-sync/package.json":"# Document-sync Skill\n\nPath: `packages/document-sync/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/package.json)","packages/document-sync/tsconfig.json":"# Document-sync Skill\n\nPath: `packages/document-sync/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/tsconfig.json)","packages/data/package.json":"# Data Skill\n\nPath: `packages/data/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/package.json)","packages/data/README.md":"# data Documentation\n\nPath: `packages/data/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/README.md)","packages/data/tsconfig.json":"# Data Skill\n\nPath: `packages/data/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/tsconfig.json)","packages/constants/CHANGELOG.md":"# Constants Skill\n\nPath: `packages/constants/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/CHANGELOG.md)","packages/constants/package.json":"# Constants Skill\n\nPath: `packages/constants/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/package.json)","packages/constants/README.md":"# constants Documentation\n\nPath: `packages/constants/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/README.md)","packages/constants/tsconfig.json":"# Constants Skill\n\nPath: `packages/constants/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/tsconfig.json)","packages/client/CHANGELOG.md":"# Client Skill\n\nPath: `packages/client/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/CHANGELOG.md)","packages/client/package.json":"# Client Skill\n\nPath: `packages/client/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/package.json)","packages/client/tsconfig.json":"# Client Skill\n\nPath: `packages/client/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/tsconfig.json)","packages/chat/package.json":"# Chat Skill\n\nPath: `packages/chat/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/package.json)","packages/chat/tsconfig.json":"# Chat Skill\n\nPath: `packages/chat/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/tsconfig.json)","packages/blobs/package.json":"# Blobs Skill\n\nPath: `packages/blobs/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/package.json)","packages/blobs/README.md":"# blobs Documentation\n\nPath: `packages/blobs/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/README.md)","packages/blobs/tsconfig.json":"# Blobs Skill\n\nPath: `packages/blobs/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/tsconfig.json)","packages/auth/CHANGELOG.md":"# Auth Skill\n\nPath: `packages/auth/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/CHANGELOG.md)","packages/auth/package.json":"# Auth Skill\n\nPath: `packages/auth/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/package.json)","packages/auth/tsconfig.json":"# Auth Skill\n\nPath: `packages/auth/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/tsconfig.json)","packages/app-shell/package.json":"# App-shell Skill\n\nPath: `packages/app-shell/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/package.json)","packages/app-shell/tsconfig.json":"# App-shell Skill\n\nPath: `packages/app-shell/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/tsconfig.json)","packages/app/package.json":"# App Skill\n\nPath: `packages/app/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/package.json)","packages/app/README.md":"# app Documentation\n\nPath: `packages/app/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/README.md)","packages/app/tsconfig.build.json":"# App Skill\n\nPath: `packages/app/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.build.json)","packages/app/tsconfig.json":"# App Skill\n\nPath: `packages/app/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.json)","packages/agent-protocol/package.json":"# Agent-protocol Skill\n\nPath: `packages/agent-protocol/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/package.json)","packages/agent-protocol/tsconfig.json":"# Agent-protocol Skill\n\nPath: `packages/agent-protocol/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/tsconfig.json)","packages/agent/package.json":"# Agent Skill\n\nPath: `packages/agent/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/package.json)","packages/agent/README.md":"# agent Documentation\n\nPath: `packages/agent/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/README.md)","packages/agent/tsconfig.json":"# Agent Skill\n\nPath: `packages/agent/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/tsconfig.json)",".agents/skills/prototype/LOGIC.md":"# Prototype Skill\n\nPath: `.agents/skills/prototype/LOGIC.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/LOGIC.md)",".agents/skills/prototype/UI.md":"# Prototype Skill\n\nPath: `.agents/skills/prototype/UI.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/UI.md)","packages/data/browser-evidence/tsconfig.json":"# Browser-evidence Skill\n\nPath: `packages/data/browser-evidence/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/browser-evidence/tsconfig.json)",".agents/skills/workspace-api/references/action-return-shapes.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/action-return-shapes.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/action-return-shapes.md)",".agents/skills/workspace-api/references/actions-layout-and-attachments.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/actions-layout-and-attachments.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/actions-layout-and-attachments.md)",".agents/skills/workspace-api/references/deriving-action-inputs.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/deriving-action-inputs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/deriving-action-inputs.md)",".agents/skills/workspace-api/references/primitive-api.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/primitive-api.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/primitive-api.md)",".agents/skills/workspace-api/references/schema-definition-patterns.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/schema-definition-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/schema-definition-patterns.md)",".agents/skills/workspace-api/references/table-kv-crud-observation.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/table-kv-crud-observation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-kv-crud-observation.md)",".agents/skills/workspace-api/references/table-migrations.md":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/table-migrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-migrations.md)",".agents/skills/ui-design/references/anti-slop-tells.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/anti-slop-tells.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/anti-slop-tells.md)",".agents/skills/ui-design/references/comparable-apps.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/comparable-apps.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/comparable-apps.md)",".agents/skills/ui-design/references/component-system.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/component-system.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/component-system.md)",".agents/skills/ui-design/references/direction-discovery.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/direction-discovery.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/direction-discovery.md)",".agents/skills/ui-design/references/preflight.md":"# References Skill\n\nPath: `.agents/skills/ui-design/references/preflight.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/preflight.md)",".agents/skills/typescript/references/advanced-typescript-features.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/advanced-typescript-features.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/advanced-typescript-features.md)",".agents/skills/typescript/references/factory-patterns.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/factory-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/factory-patterns.md)",".agents/skills/typescript/references/project-conventions.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/project-conventions.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/project-conventions.md)",".agents/skills/typescript/references/runtime-schema-patterns.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/runtime-schema-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/runtime-schema-patterns.md)",".agents/skills/typescript/references/testing-patterns.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/testing-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/testing-patterns.md)",".agents/skills/typescript/references/type-organization.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/type-organization.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-organization.md)",".agents/skills/typescript/references/type-safety-and-control-flow.md":"# References Skill\n\nPath: `.agents/skills/typescript/references/type-safety-and-control-flow.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-safety-and-control-flow.md)",".agents/skills/testing/references/honest-tests.md":"# References Skill\n\nPath: `.agents/skills/testing/references/honest-tests.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/honest-tests.md)",".agents/skills/testing/references/setup-pattern.md":"# References Skill\n\nPath: `.agents/skills/testing/references/setup-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/setup-pattern.md)",".agents/skills/testing/references/test-deletion-grill.md":"# References Skill\n\nPath: `.agents/skills/testing/references/test-deletion-grill.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-deletion-grill.md)",".agents/skills/testing/references/test-structure.md":"# References Skill\n\nPath: `.agents/skills/testing/references/test-structure.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-structure.md)",".agents/skills/testing/references/type-testing.md":"# References Skill\n\nPath: `.agents/skills/testing/references/type-testing.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/type-testing.md)",".agents/skills/svg-animations/references/recipes.md":"# References Skill\n\nPath: `.agents/skills/svg-animations/references/recipes.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/references/recipes.md)",".agents/skills/svelte/references/component-ui-patterns.md":"# References Skill\n\nPath: `.agents/skills/svelte/references/component-ui-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/component-ui-patterns.md)",".agents/skills/svelte/references/lifecycle-and-reactivity.md":"# References Skill\n\nPath: `.agents/skills/svelte/references/lifecycle-and-reactivity.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/lifecycle-and-reactivity.md)",".agents/skills/svelte/references/mutations-and-workspace-inputs.md":"# References Skill\n\nPath: `.agents/skills/svelte/references/mutations-and-workspace-inputs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/mutations-and-workspace-inputs.md)",".agents/skills/standalone-commits/references/splitting-into-ordered-waves.md":"# References Skill\n\nPath: `.agents/skills/standalone-commits/references/splitting-into-ordered-waves.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/references/splitting-into-ordered-waves.md)",".agents/skills/specification-writing/references/decision-hygiene.md":"# References Skill\n\nPath: `.agents/skills/specification-writing/references/decision-hygiene.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/references/decision-hygiene.md)",".agents/skills/services-layer/references/service-implementation-pattern.md":"# References Skill\n\nPath: `.agents/skills/services-layer/references/service-implementation-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-implementation-pattern.md)",".agents/skills/services-layer/references/service-organization-platforms.md":"# References Skill\n\nPath: `.agents/skills/services-layer/references/service-organization-platforms.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-organization-platforms.md)",".agents/skills/query-layer/references/advanced-query-patterns.md":"# References Skill\n\nPath: `.agents/skills/query-layer/references/advanced-query-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/advanced-query-patterns.md)",".agents/skills/query-layer/references/error-transformation-patterns.md":"# References Skill\n\nPath: `.agents/skills/query-layer/references/error-transformation-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/error-transformation-patterns.md)",".agents/skills/query-layer/references/runtime-dependency-injection.md":"# References Skill\n\nPath: `.agents/skills/query-layer/references/runtime-dependency-injection.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/runtime-dependency-injection.md)",".agents/skills/pull-request/references/body-patterns.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/body-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/body-patterns.md)",".agents/skills/pull-request/references/changelog-entries.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/changelog-entries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/changelog-entries.md)",".agents/skills/pull-request/references/examples.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/examples.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/examples.md)",".agents/skills/pull-request/references/github-pr-operations.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/github-pr-operations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/github-pr-operations.md)",".agents/skills/pull-request/references/visual-patterns.md":"# References Skill\n\nPath: `.agents/skills/pull-request/references/visual-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/visual-patterns.md)",".agents/skills/greenfield-clean-breaks/references/goal-template.md":"# References Skill\n\nPath: `.agents/skills/greenfield-clean-breaks/references/goal-template.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/goal-template.md)",".agents/skills/greenfield-clean-breaks/references/wave-ordering.md":"# References Skill\n\nPath: `.agents/skills/greenfield-clean-breaks/references/wave-ordering.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/wave-ordering.md)",".agents/skills/fresh-context-review/references/type-lifecycle-review.md":"# References Skill\n\nPath: `.agents/skills/fresh-context-review/references/type-lifecycle-review.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/references/type-lifecycle-review.md)",".agents/skills/factory-function-composition/references/single-or-array-pattern.md":"# References Skill\n\nPath: `.agents/skills/factory-function-composition/references/single-or-array-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/single-or-array-pattern.md)",".agents/skills/factory-function-composition/references/sync-construction-render-gate.md":"# References Skill\n\nPath: `.agents/skills/factory-function-composition/references/sync-construction-render-gate.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/sync-construction-render-gate.md)",".agents/skills/error-handling/references/http-boundaries.md":"# References Skill\n\nPath: `.agents/skills/error-handling/references/http-boundaries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/http-boundaries.md)",".agents/skills/error-handling/references/toast-on-error.md":"# References Skill\n\nPath: `.agents/skills/error-handling/references/toast-on-error.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/toast-on-error.md)",".agents/skills/error-handling/references/wrapping-boundaries.md":"# References Skill\n\nPath: `.agents/skills/error-handling/references/wrapping-boundaries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/wrapping-boundaries.md)",".agents/skills/collapse-pass/references/goal-template.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/goal-template.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/goal-template.md)",".agents/skills/collapse-pass/references/library-refusal.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/library-refusal.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/library-refusal.md)",".agents/skills/collapse-pass/references/never-touch.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/never-touch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/never-touch.md)",".agents/skills/collapse-pass/references/periodic-monorepo-pass.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/periodic-monorepo-pass.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/periodic-monorepo-pass.md)",".agents/skills/collapse-pass/references/report-format.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/report-format.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/report-format.md)",".agents/skills/collapse-pass/references/smell-catalog.md":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/smell-catalog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/smell-catalog.md)",".agents/skills/cohesion-over-testability/references/sweep-procedure.md":"# References Skill\n\nPath: `.agents/skills/cohesion-over-testability/references/sweep-procedure.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/references/sweep-procedure.md)",".agents/skills/codex-task-backlog-hygiene/agents/openai.yaml":"# Agents Skill\n\nPath: `.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml)",".agents/skills/agent-instructions/references/composition-audit.md":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/composition-audit.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/composition-audit.md)",".agents/skills/agent-instructions/references/evaluation.md":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/evaluation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/evaluation.md)",".agents/skills/agent-instructions/references/instruction-placement.md":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/instruction-placement.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/instruction-placement.md)",".agents/skills/agent-instructions/evals/routing.json":"# Evals Skill\n\nPath: `.agents/skills/agent-instructions/evals/routing.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/evals/routing.json)","apps/landing/.cursor/rules/posthog-integration.mdc":"# Cursor Rule: posthog-integration\n\nPath: `apps/landing/.cursor/rules/posthog-integration.mdc`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/landing/.cursor/rules/posthog-integration.mdc)","packages/ui/src/section-header/README.md":"# section-header Documentation\n\nPath: `packages/ui/src/section-header/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/src/section-header/README.md)","packages/app/test-fixtures/consumer/package.json":"# Consumer Skill\n\nPath: `packages/app/test-fixtures/consumer/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/package.json)","packages/app/test-fixtures/consumer/tsconfig.json":"# Consumer Skill\n\nPath: `packages/app/test-fixtures/consumer/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/tsconfig.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# AI Agent Protocol & Instructions\n\nPath: `AGENTS.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/AGENTS.md)","tokens":300,"sizeBytes":155},{"name":"architecture.md","path":"docs/architecture.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/docs/architecture.md","title":"docs - System Architecture & Module Boundaries","category":"project-spec","format":"markdown","content":"# docs - System Architecture & Module Boundaries\n\nPath: `docs/architecture.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/docs/architecture.md)","tokens":300,"sizeBytes":191},{"name":"SKILL.md","path":".agents/skills/agent-goal/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-goal/SKILL.md","title":"agent-goal","category":"anthropic-skill","format":"markdown","content":"# agent-goal\n\nPath: `.agents/skills/agent-goal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-goal/SKILL.md)","tokens":300,"sizeBytes":183},{"name":"routing.json","path":".agents/skills/agent-instructions/evals/routing.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/evals/routing.json","title":"Evals Skill","category":"anthropic-skill","format":"json","content":"# Evals Skill\n\nPath: `.agents/skills/agent-instructions/evals/routing.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/evals/routing.json)","tokens":300,"sizeBytes":220},{"name":"composition-audit.md","path":".agents/skills/agent-instructions/references/composition-audit.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/composition-audit.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/composition-audit.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/composition-audit.md)","tokens":300,"sizeBytes":251},{"name":"evaluation.md","path":".agents/skills/agent-instructions/references/evaluation.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/evaluation.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/evaluation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/evaluation.md)","tokens":300,"sizeBytes":237},{"name":"instruction-placement.md","path":".agents/skills/agent-instructions/references/instruction-placement.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/instruction-placement.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/agent-instructions/references/instruction-placement.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/instruction-placement.md)","tokens":300,"sizeBytes":259},{"name":"SKILL.md","path":".agents/skills/agent-instructions/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/SKILL.md","title":"agent-instructions","category":"anthropic-skill","format":"markdown","content":"# agent-instructions\n\nPath: `.agents/skills/agent-instructions/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/SKILL.md)","tokens":300,"sizeBytes":207},{"name":"SKILL.md","path":".agents/skills/arktype/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/arktype/SKILL.md","title":"arktype","category":"anthropic-skill","format":"markdown","content":"# arktype\n\nPath: `.agents/skills/arktype/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/arktype/SKILL.md)","tokens":300,"sizeBytes":174},{"name":"SKILL.md","path":".agents/skills/asymmetric-wins/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/asymmetric-wins/SKILL.md","title":"asymmetric-wins","category":"anthropic-skill","format":"markdown","content":"# asymmetric-wins\n\nPath: `.agents/skills/asymmetric-wins/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/asymmetric-wins/SKILL.md)","tokens":300,"sizeBytes":198},{"name":"SKILL.md","path":".agents/skills/attach-primitive/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/attach-primitive/SKILL.md","title":"attach-primitive","category":"anthropic-skill","format":"markdown","content":"# attach-primitive\n\nPath: `.agents/skills/attach-primitive/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/attach-primitive/SKILL.md)","tokens":300,"sizeBytes":201},{"name":"SKILL.md","path":".agents/skills/auth/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/auth/SKILL.md","title":"auth","category":"anthropic-skill","format":"markdown","content":"# auth\n\nPath: `.agents/skills/auth/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/auth/SKILL.md)","tokens":300,"sizeBytes":165},{"name":"SKILL.md","path":".agents/skills/autumn/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/autumn/SKILL.md","title":"autumn","category":"anthropic-skill","format":"markdown","content":"# autumn\n\nPath: `.agents/skills/autumn/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/autumn/SKILL.md)","tokens":300,"sizeBytes":171},{"name":"SKILL.md","path":".agents/skills/better-auth-best-practices/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-best-practices/SKILL.md","title":"better-auth-best-practices","category":"anthropic-skill","format":"markdown","content":"# better-auth-best-practices\n\nPath: `.agents/skills/better-auth-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-best-practices/SKILL.md)","tokens":300,"sizeBytes":231},{"name":"SKILL.md","path":".agents/skills/better-auth-security-best-practices/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-security-best-practices/SKILL.md","title":"better-auth-security-best-practices","category":"anthropic-skill","format":"markdown","content":"# better-auth-security-best-practices\n\nPath: `.agents/skills/better-auth-security-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-security-best-practices/SKILL.md)","tokens":300,"sizeBytes":258},{"name":"SKILL.md","path":".agents/skills/caveman/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/caveman/SKILL.md","title":"caveman","category":"anthropic-skill","format":"markdown","content":"# caveman\n\nPath: `.agents/skills/caveman/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/caveman/SKILL.md)","tokens":300,"sizeBytes":174},{"name":"SKILL.md","path":".agents/skills/change-proposal/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/change-proposal/SKILL.md","title":"change-proposal","category":"anthropic-skill","format":"markdown","content":"# change-proposal\n\nPath: `.agents/skills/change-proposal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/change-proposal/SKILL.md)","tokens":300,"sizeBytes":198},{"name":"SKILL.md","path":".agents/skills/cloudflare-workers/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cloudflare-workers/SKILL.md","title":"cloudflare-workers","category":"anthropic-skill","format":"markdown","content":"# cloudflare-workers\n\nPath: `.agents/skills/cloudflare-workers/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cloudflare-workers/SKILL.md)","tokens":300,"sizeBytes":207},{"name":"SKILL.md","path":".agents/skills/code-audit/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/code-audit/SKILL.md","title":"code-audit","category":"anthropic-skill","format":"markdown","content":"# code-audit\n\nPath: `.agents/skills/code-audit/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/code-audit/SKILL.md)","tokens":300,"sizeBytes":183},{"name":"openai.yaml","path":".agents/skills/codex-task-backlog-hygiene/agents/openai.yaml","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml","title":"Agents Skill","category":"anthropic-skill","format":"yaml","content":"# Agents Skill\n\nPath: `.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml)","tokens":300,"sizeBytes":237},{"name":"SKILL.md","path":".agents/skills/codex-task-backlog-hygiene/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/SKILL.md","title":"codex-task-backlog-hygiene","category":"anthropic-skill","format":"markdown","content":"# codex-task-backlog-hygiene\n\nPath: `.agents/skills/codex-task-backlog-hygiene/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/SKILL.md)","tokens":300,"sizeBytes":231},{"name":"sweep-procedure.md","path":".agents/skills/cohesion-over-testability/references/sweep-procedure.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/references/sweep-procedure.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/cohesion-over-testability/references/sweep-procedure.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/references/sweep-procedure.md)","tokens":300,"sizeBytes":261},{"name":"SKILL.md","path":".agents/skills/cohesion-over-testability/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/SKILL.md","title":"cohesion-over-testability","category":"anthropic-skill","format":"markdown","content":"# cohesion-over-testability\n\nPath: `.agents/skills/cohesion-over-testability/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/SKILL.md)","tokens":300,"sizeBytes":228},{"name":"goal-template.md","path":".agents/skills/collapse-pass/references/goal-template.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/goal-template.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/goal-template.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/goal-template.md)","tokens":300,"sizeBytes":233},{"name":"library-refusal.md","path":".agents/skills/collapse-pass/references/library-refusal.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/library-refusal.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/library-refusal.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/library-refusal.md)","tokens":300,"sizeBytes":237},{"name":"never-touch.md","path":".agents/skills/collapse-pass/references/never-touch.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/never-touch.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/never-touch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/never-touch.md)","tokens":300,"sizeBytes":229},{"name":"periodic-monorepo-pass.md","path":".agents/skills/collapse-pass/references/periodic-monorepo-pass.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/periodic-monorepo-pass.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/periodic-monorepo-pass.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/periodic-monorepo-pass.md)","tokens":300,"sizeBytes":251},{"name":"report-format.md","path":".agents/skills/collapse-pass/references/report-format.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/report-format.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/report-format.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/report-format.md)","tokens":300,"sizeBytes":233},{"name":"smell-catalog.md","path":".agents/skills/collapse-pass/references/smell-catalog.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/smell-catalog.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/collapse-pass/references/smell-catalog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/smell-catalog.md)","tokens":300,"sizeBytes":233},{"name":"SKILL.md","path":".agents/skills/collapse-pass/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/SKILL.md","title":"collapse-pass","category":"anthropic-skill","format":"markdown","content":"# collapse-pass\n\nPath: `.agents/skills/collapse-pass/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/SKILL.md)","tokens":300,"sizeBytes":192},{"name":"SKILL.md","path":".agents/skills/consult-claude/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/consult-claude/SKILL.md","title":"consult-claude","category":"anthropic-skill","format":"markdown","content":"# consult-claude\n\nPath: `.agents/skills/consult-claude/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/consult-claude/SKILL.md)","tokens":300,"sizeBytes":195},{"name":"SKILL.md","path":".agents/skills/control-flow/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/control-flow/SKILL.md","title":"control-flow","category":"anthropic-skill","format":"markdown","content":"# control-flow\n\nPath: `.agents/skills/control-flow/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/control-flow/SKILL.md)","tokens":300,"sizeBytes":189},{"name":"SKILL.md","path":".agents/skills/define-errors/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/define-errors/SKILL.md","title":"define-errors","category":"anthropic-skill","format":"markdown","content":"# define-errors\n\nPath: `.agents/skills/define-errors/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/define-errors/SKILL.md)","tokens":300,"sizeBytes":192},{"name":"SKILL.md","path":".agents/skills/delegate-claude/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/delegate-claude/SKILL.md","title":"delegate-claude","category":"anthropic-skill","format":"markdown","content":"# delegate-claude\n\nPath: `.agents/skills/delegate-claude/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/delegate-claude/SKILL.md)","tokens":300,"sizeBytes":198},{"name":"SKILL.md","path":".agents/skills/diagnose/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/diagnose/SKILL.md","title":"diagnose","category":"anthropic-skill","format":"markdown","content":"# diagnose\n\nPath: `.agents/skills/diagnose/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/diagnose/SKILL.md)","tokens":300,"sizeBytes":177},{"name":"SKILL.md","path":".agents/skills/dialectic/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/dialectic/SKILL.md","title":"dialectic","category":"anthropic-skill","format":"markdown","content":"# dialectic\n\nPath: `.agents/skills/dialectic/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/dialectic/SKILL.md)","tokens":300,"sizeBytes":180},{"name":"SKILL.md","path":".agents/skills/documentation/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/documentation/SKILL.md","title":"documentation","category":"anthropic-skill","format":"markdown","content":"# documentation\n\nPath: `.agents/skills/documentation/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/documentation/SKILL.md)","tokens":300,"sizeBytes":192},{"name":"SKILL.md","path":".agents/skills/drizzle-orm/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/drizzle-orm/SKILL.md","title":"drizzle-orm","category":"anthropic-skill","format":"markdown","content":"# drizzle-orm\n\nPath: `.agents/skills/drizzle-orm/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/drizzle-orm/SKILL.md)","tokens":300,"sizeBytes":186},{"name":"http-boundaries.md","path":".agents/skills/error-handling/references/http-boundaries.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/http-boundaries.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/error-handling/references/http-boundaries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/http-boundaries.md)","tokens":300,"sizeBytes":239},{"name":"toast-on-error.md","path":".agents/skills/error-handling/references/toast-on-error.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/toast-on-error.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/error-handling/references/toast-on-error.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/toast-on-error.md)","tokens":300,"sizeBytes":237},{"name":"wrapping-boundaries.md","path":".agents/skills/error-handling/references/wrapping-boundaries.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/wrapping-boundaries.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/error-handling/references/wrapping-boundaries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/references/wrapping-boundaries.md)","tokens":300,"sizeBytes":247},{"name":"SKILL.md","path":".agents/skills/error-handling/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/SKILL.md","title":"error-handling","category":"anthropic-skill","format":"markdown","content":"# error-handling\n\nPath: `.agents/skills/error-handling/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/error-handling/SKILL.md)","tokens":300,"sizeBytes":195},{"name":"single-or-array-pattern.md","path":".agents/skills/factory-function-composition/references/single-or-array-pattern.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/single-or-array-pattern.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/factory-function-composition/references/single-or-array-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/single-or-array-pattern.md)","tokens":300,"sizeBytes":283},{"name":"sync-construction-render-gate.md","path":".agents/skills/factory-function-composition/references/sync-construction-render-gate.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/sync-construction-render-gate.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/factory-function-composition/references/sync-construction-render-gate.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/references/sync-construction-render-gate.md)","tokens":300,"sizeBytes":295},{"name":"SKILL.md","path":".agents/skills/factory-function-composition/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/SKILL.md","title":"factory-function-composition","category":"anthropic-skill","format":"markdown","content":"# factory-function-composition\n\nPath: `.agents/skills/factory-function-composition/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/factory-function-composition/SKILL.md)","tokens":300,"sizeBytes":237},{"name":"SKILL.md","path":".agents/skills/first-read-review/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/first-read-review/SKILL.md","title":"first-read-review","category":"anthropic-skill","format":"markdown","content":"# first-read-review\n\nPath: `.agents/skills/first-read-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/first-read-review/SKILL.md)","tokens":300,"sizeBytes":204},{"name":"type-lifecycle-review.md","path":".agents/skills/fresh-context-review/references/type-lifecycle-review.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/references/type-lifecycle-review.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/fresh-context-review/references/type-lifecycle-review.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/references/type-lifecycle-review.md)","tokens":300,"sizeBytes":263},{"name":"SKILL.md","path":".agents/skills/fresh-context-review/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/SKILL.md","title":"fresh-context-review","category":"anthropic-skill","format":"markdown","content":"# fresh-context-review\n\nPath: `.agents/skills/fresh-context-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/fresh-context-review/SKILL.md)","tokens":300,"sizeBytes":213},{"name":"SKILL.md","path":".agents/skills/git/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/git/SKILL.md","title":"git","category":"anthropic-skill","format":"markdown","content":"# git\n\nPath: `.agents/skills/git/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/git/SKILL.md)","tokens":300,"sizeBytes":162},{"name":"SKILL.md","path":".agents/skills/github-issues/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/github-issues/SKILL.md","title":"github-issues","category":"anthropic-skill","format":"markdown","content":"# github-issues\n\nPath: `.agents/skills/github-issues/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/github-issues/SKILL.md)","tokens":300,"sizeBytes":192},{"name":"SKILL.md","path":".agents/skills/govuk-style/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/govuk-style/SKILL.md","title":"govuk-style","category":"anthropic-skill","format":"markdown","content":"# govuk-style\n\nPath: `.agents/skills/govuk-style/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/govuk-style/SKILL.md)","tokens":300,"sizeBytes":186},{"name":"goal-template.md","path":".agents/skills/greenfield-clean-breaks/references/goal-template.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/goal-template.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/greenfield-clean-breaks/references/goal-template.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/goal-template.md)","tokens":300,"sizeBytes":253},{"name":"wave-ordering.md","path":".agents/skills/greenfield-clean-breaks/references/wave-ordering.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/wave-ordering.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/greenfield-clean-breaks/references/wave-ordering.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/references/wave-ordering.md)","tokens":300,"sizeBytes":253},{"name":"SKILL.md","path":".agents/skills/greenfield-clean-breaks/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/SKILL.md","title":"greenfield-clean-breaks","category":"anthropic-skill","format":"markdown","content":"# greenfield-clean-breaks\n\nPath: `.agents/skills/greenfield-clean-breaks/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/greenfield-clean-breaks/SKILL.md)","tokens":300,"sizeBytes":222},{"name":"SKILL.md","path":".agents/skills/grill-me/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/grill-me/SKILL.md","title":"grill-me","category":"anthropic-skill","format":"markdown","content":"# grill-me\n\nPath: `.agents/skills/grill-me/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/grill-me/SKILL.md)","tokens":300,"sizeBytes":177},{"name":"SKILL.md","path":".agents/skills/handoff/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/handoff/SKILL.md","title":"handoff","category":"anthropic-skill","format":"markdown","content":"# handoff\n\nPath: `.agents/skills/handoff/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/handoff/SKILL.md)","tokens":300,"sizeBytes":174},{"name":"SKILL.md","path":".agents/skills/hono/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/hono/SKILL.md","title":"hono","category":"anthropic-skill","format":"markdown","content":"# hono\n\nPath: `.agents/skills/hono/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/hono/SKILL.md)","tokens":300,"sizeBytes":165},{"name":"SKILL.md","path":".agents/skills/logging/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/logging/SKILL.md","title":"logging","category":"anthropic-skill","format":"markdown","content":"# logging\n\nPath: `.agents/skills/logging/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/logging/SKILL.md)","tokens":300,"sizeBytes":174},{"name":"SKILL.md","path":".agents/skills/method-shorthand-jsdoc/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/method-shorthand-jsdoc/SKILL.md","title":"method-shorthand-jsdoc","category":"anthropic-skill","format":"markdown","content":"# method-shorthand-jsdoc\n\nPath: `.agents/skills/method-shorthand-jsdoc/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/method-shorthand-jsdoc/SKILL.md)","tokens":300,"sizeBytes":219},{"name":"SKILL.md","path":".agents/skills/monorepo/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/monorepo/SKILL.md","title":"monorepo","category":"anthropic-skill","format":"markdown","content":"# monorepo\n\nPath: `.agents/skills/monorepo/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/monorepo/SKILL.md)","tokens":300,"sizeBytes":177},{"name":"SKILL.md","path":".agents/skills/one-sentence-test/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/one-sentence-test/SKILL.md","title":"one-sentence-test","category":"anthropic-skill","format":"markdown","content":"# one-sentence-test\n\nPath: `.agents/skills/one-sentence-test/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/one-sentence-test/SKILL.md)","tokens":300,"sizeBytes":204},{"name":"SKILL.md","path":".agents/skills/post-implementation-review/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/post-implementation-review/SKILL.md","title":"post-implementation-review","category":"anthropic-skill","format":"markdown","content":"# post-implementation-review\n\nPath: `.agents/skills/post-implementation-review/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/post-implementation-review/SKILL.md)","tokens":300,"sizeBytes":231},{"name":"LOGIC.md","path":".agents/skills/prototype/LOGIC.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/LOGIC.md","title":"Prototype Skill","category":"anthropic-skill","format":"markdown","content":"# Prototype Skill\n\nPath: `.agents/skills/prototype/LOGIC.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/LOGIC.md)","tokens":300,"sizeBytes":186},{"name":"SKILL.md","path":".agents/skills/prototype/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/SKILL.md","title":"prototype","category":"anthropic-skill","format":"markdown","content":"# prototype\n\nPath: `.agents/skills/prototype/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/SKILL.md)","tokens":300,"sizeBytes":180},{"name":"UI.md","path":".agents/skills/prototype/UI.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/UI.md","title":"Prototype Skill","category":"anthropic-skill","format":"markdown","content":"# Prototype Skill\n\nPath: `.agents/skills/prototype/UI.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/prototype/UI.md)","tokens":300,"sizeBytes":180},{"name":"body-patterns.md","path":".agents/skills/pull-request/references/body-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/body-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/pull-request/references/body-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/body-patterns.md)","tokens":300,"sizeBytes":231},{"name":"changelog-entries.md","path":".agents/skills/pull-request/references/changelog-entries.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/changelog-entries.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/pull-request/references/changelog-entries.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/changelog-entries.md)","tokens":300,"sizeBytes":239},{"name":"examples.md","path":".agents/skills/pull-request/references/examples.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/examples.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/pull-request/references/examples.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/examples.md)","tokens":300,"sizeBytes":221},{"name":"github-pr-operations.md","path":".agents/skills/pull-request/references/github-pr-operations.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/github-pr-operations.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/pull-request/references/github-pr-operations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/github-pr-operations.md)","tokens":300,"sizeBytes":245},{"name":"visual-patterns.md","path":".agents/skills/pull-request/references/visual-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/visual-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/pull-request/references/visual-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/references/visual-patterns.md)","tokens":300,"sizeBytes":235},{"name":"SKILL.md","path":".agents/skills/pull-request/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/SKILL.md","title":"pull-request","category":"anthropic-skill","format":"markdown","content":"# pull-request\n\nPath: `.agents/skills/pull-request/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/pull-request/SKILL.md)","tokens":300,"sizeBytes":189},{"name":"advanced-query-patterns.md","path":".agents/skills/query-layer/references/advanced-query-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/advanced-query-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/query-layer/references/advanced-query-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/advanced-query-patterns.md)","tokens":300,"sizeBytes":249},{"name":"error-transformation-patterns.md","path":".agents/skills/query-layer/references/error-transformation-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/error-transformation-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/query-layer/references/error-transformation-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/error-transformation-patterns.md)","tokens":300,"sizeBytes":261},{"name":"runtime-dependency-injection.md","path":".agents/skills/query-layer/references/runtime-dependency-injection.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/runtime-dependency-injection.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/query-layer/references/runtime-dependency-injection.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/references/runtime-dependency-injection.md)","tokens":300,"sizeBytes":259},{"name":"SKILL.md","path":".agents/skills/query-layer/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/SKILL.md","title":"query-layer","category":"anthropic-skill","format":"markdown","content":"# query-layer\n\nPath: `.agents/skills/query-layer/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/query-layer/SKILL.md)","tokens":300,"sizeBytes":186},{"name":"SKILL.md","path":".agents/skills/radical-options/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/radical-options/SKILL.md","title":"radical-options","category":"anthropic-skill","format":"markdown","content":"# radical-options\n\nPath: `.agents/skills/radical-options/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/radical-options/SKILL.md)","tokens":300,"sizeBytes":198},{"name":"SKILL.md","path":".agents/skills/refactoring/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/refactoring/SKILL.md","title":"refactoring","category":"anthropic-skill","format":"markdown","content":"# refactoring\n\nPath: `.agents/skills/refactoring/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/refactoring/SKILL.md)","tokens":300,"sizeBytes":186},{"name":"SKILL.md","path":".agents/skills/rust-errors/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/rust-errors/SKILL.md","title":"rust-errors","category":"anthropic-skill","format":"markdown","content":"# rust-errors\n\nPath: `.agents/skills/rust-errors/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/rust-errors/SKILL.md)","tokens":300,"sizeBytes":186},{"name":"service-implementation-pattern.md","path":".agents/skills/services-layer/references/service-implementation-pattern.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-implementation-pattern.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/services-layer/references/service-implementation-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-implementation-pattern.md)","tokens":300,"sizeBytes":269},{"name":"service-organization-platforms.md","path":".agents/skills/services-layer/references/service-organization-platforms.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-organization-platforms.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/services-layer/references/service-organization-platforms.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/references/service-organization-platforms.md)","tokens":300,"sizeBytes":269},{"name":"SKILL.md","path":".agents/skills/services-layer/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/SKILL.md","title":"services-layer","category":"anthropic-skill","format":"markdown","content":"# services-layer\n\nPath: `.agents/skills/services-layer/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/services-layer/SKILL.md)","tokens":300,"sizeBytes":195},{"name":"SKILL.md","path":".agents/skills/social-media/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/social-media/SKILL.md","title":"social-media","category":"anthropic-skill","format":"markdown","content":"# social-media\n\nPath: `.agents/skills/social-media/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/social-media/SKILL.md)","tokens":300,"sizeBytes":189},{"name":"SKILL.md","path":".agents/skills/spec-execution/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/spec-execution/SKILL.md","title":"spec-execution","category":"anthropic-skill","format":"markdown","content":"# spec-execution\n\nPath: `.agents/skills/spec-execution/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/spec-execution/SKILL.md)","tokens":300,"sizeBytes":195},{"name":"decision-hygiene.md","path":".agents/skills/specification-writing/references/decision-hygiene.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/references/decision-hygiene.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/specification-writing/references/decision-hygiene.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/references/decision-hygiene.md)","tokens":300,"sizeBytes":255},{"name":"SKILL.md","path":".agents/skills/specification-writing/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/SKILL.md","title":"specification-writing","category":"anthropic-skill","format":"markdown","content":"# specification-writing\n\nPath: `.agents/skills/specification-writing/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/specification-writing/SKILL.md)","tokens":300,"sizeBytes":216},{"name":"splitting-into-ordered-waves.md","path":".agents/skills/standalone-commits/references/splitting-into-ordered-waves.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/references/splitting-into-ordered-waves.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/standalone-commits/references/splitting-into-ordered-waves.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/references/splitting-into-ordered-waves.md)","tokens":300,"sizeBytes":273},{"name":"SKILL.md","path":".agents/skills/standalone-commits/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/SKILL.md","title":"standalone-commits","category":"anthropic-skill","format":"markdown","content":"# standalone-commits\n\nPath: `.agents/skills/standalone-commits/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/standalone-commits/SKILL.md)","tokens":300,"sizeBytes":207},{"name":"SKILL.md","path":".agents/skills/styling/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/styling/SKILL.md","title":"styling","category":"anthropic-skill","format":"markdown","content":"# styling\n\nPath: `.agents/skills/styling/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/styling/SKILL.md)","tokens":300,"sizeBytes":174},{"name":"component-ui-patterns.md","path":".agents/skills/svelte/references/component-ui-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/component-ui-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/svelte/references/component-ui-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/component-ui-patterns.md)","tokens":300,"sizeBytes":235},{"name":"lifecycle-and-reactivity.md","path":".agents/skills/svelte/references/lifecycle-and-reactivity.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/lifecycle-and-reactivity.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/svelte/references/lifecycle-and-reactivity.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/lifecycle-and-reactivity.md)","tokens":300,"sizeBytes":241},{"name":"mutations-and-workspace-inputs.md","path":".agents/skills/svelte/references/mutations-and-workspace-inputs.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/mutations-and-workspace-inputs.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/svelte/references/mutations-and-workspace-inputs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/references/mutations-and-workspace-inputs.md)","tokens":300,"sizeBytes":253},{"name":"SKILL.md","path":".agents/skills/svelte/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/SKILL.md","title":"svelte","category":"anthropic-skill","format":"markdown","content":"# svelte\n\nPath: `.agents/skills/svelte/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svelte/SKILL.md)","tokens":300,"sizeBytes":171},{"name":"SKILL.md","path":".agents/skills/sveltekit/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/sveltekit/SKILL.md","title":"sveltekit","category":"anthropic-skill","format":"markdown","content":"# sveltekit\n\nPath: `.agents/skills/sveltekit/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/sveltekit/SKILL.md)","tokens":300,"sizeBytes":180},{"name":"recipes.md","path":".agents/skills/svg-animations/references/recipes.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/references/recipes.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/svg-animations/references/recipes.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/references/recipes.md)","tokens":300,"sizeBytes":223},{"name":"SKILL.md","path":".agents/skills/svg-animations/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/SKILL.md","title":"svg-animations","category":"anthropic-skill","format":"markdown","content":"# svg-animations\n\nPath: `.agents/skills/svg-animations/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/svg-animations/SKILL.md)","tokens":300,"sizeBytes":195},{"name":"SKILL.md","path":".agents/skills/tanstack-table/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tanstack-table/SKILL.md","title":"tanstack-table","category":"anthropic-skill","format":"markdown","content":"# tanstack-table\n\nPath: `.agents/skills/tanstack-table/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tanstack-table/SKILL.md)","tokens":300,"sizeBytes":195},{"name":"SKILL.md","path":".agents/skills/tauri/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tauri/SKILL.md","title":"tauri","category":"anthropic-skill","format":"markdown","content":"# tauri\n\nPath: `.agents/skills/tauri/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tauri/SKILL.md)","tokens":300,"sizeBytes":168},{"name":"SKILL.md","path":".agents/skills/technical-articles/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/technical-articles/SKILL.md","title":"technical-articles","category":"anthropic-skill","format":"markdown","content":"# technical-articles\n\nPath: `.agents/skills/technical-articles/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/technical-articles/SKILL.md)","tokens":300,"sizeBytes":207},{"name":"honest-tests.md","path":".agents/skills/testing/references/honest-tests.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/honest-tests.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/testing/references/honest-tests.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/honest-tests.md)","tokens":300,"sizeBytes":219},{"name":"setup-pattern.md","path":".agents/skills/testing/references/setup-pattern.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/setup-pattern.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/testing/references/setup-pattern.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/setup-pattern.md)","tokens":300,"sizeBytes":221},{"name":"test-deletion-grill.md","path":".agents/skills/testing/references/test-deletion-grill.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-deletion-grill.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/testing/references/test-deletion-grill.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-deletion-grill.md)","tokens":300,"sizeBytes":233},{"name":"test-structure.md","path":".agents/skills/testing/references/test-structure.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-structure.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/testing/references/test-structure.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/test-structure.md)","tokens":300,"sizeBytes":223},{"name":"type-testing.md","path":".agents/skills/testing/references/type-testing.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/type-testing.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/testing/references/type-testing.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/references/type-testing.md)","tokens":300,"sizeBytes":219},{"name":"SKILL.md","path":".agents/skills/testing/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/SKILL.md","title":"testing","category":"anthropic-skill","format":"markdown","content":"# testing\n\nPath: `.agents/skills/testing/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/testing/SKILL.md)","tokens":300,"sizeBytes":174},{"name":"SKILL.md","path":".agents/skills/tsconfig/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tsconfig/SKILL.md","title":"tsconfig","category":"anthropic-skill","format":"markdown","content":"# tsconfig\n\nPath: `.agents/skills/tsconfig/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/tsconfig/SKILL.md)","tokens":300,"sizeBytes":177},{"name":"SKILL.md","path":".agents/skills/typebox/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typebox/SKILL.md","title":"typebox","category":"anthropic-skill","format":"markdown","content":"---\nname: typebox\ndescription: TypeBox patterns for runtime schema validation and JSON Schema generation. Use when mentioning TypeBox, Standard Schema, or schema-based validation.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# TypeBox\n\n## Package Names\n\n**Use `typebox`, not `@sinclair/typebox`**. The `@sinclair/typebox` package is deprecated.\n\n```typescript\n// Correct\nimport { Type } from 'typebox';\nimport { Compile } from 'typebox/compile';\nimport { Value } from 'typebox/value';\n\n// Wrong - deprecated\nimport { Type } from '@sinclair/typebox';\n```\n\n## When to Use What\n\n| Need                        | Use                                  |\n| --------------------------- | ------------------------------------ |\n| Define schemas              | `typebox` with `Type.*`              |\n| One-off validation          | `Value.Check()` from `typebox/value` |\n| High-performance validation | `Compile()` from `typebox/compile`   |\n\nTypeBox schemas are portable JSON Schema-shaped data. If a TypeBox boundary\nneeds validation, validate the TypeBox schema directly:\n\n```typescript\nimport { Type } from 'typebox';\nimport { Compile } from 'typebox/compile';\nimport { Value } from 'typebox/value';\n\nconst schema = Type.Object({ name: Type.String(), age: Type.Number() });\n\nValue.Check(schema, value); // boolean\n\nconst validator = Compile(schema);\nvalidator.Check(value); // boolean\nvalidator.Parse(value); // throws or returns typed value\n```\n\n## Standard Schema Boundary\n\nTypeBox does not implement Standard Schema. Do not write TypeBox code that expects\n`schema['~standard']`. If a boundary accepts Standard Schema, prefer Arktype or\nanother schema library that implements it natively. If a boundary owns TypeBox\nschemas, keep the boundary TypeBox-native and use JSON Schema as the portable\nrepresentation.\n\n## Repo Policy\n\nUse TypeBox for portable schema objects: workspace tables, kv, fields, actions,\nMCP inputs, manifests, and other surfaces that need JSON Schema shape,\nmetadata, `Static<>`, or schema inspection. Use Arktype for local runtime\nvalidation, request parsing, env/config parsing, persisted UI state, transforms,\nand branded domain values.\n\n## References\n\n- [TypeBox is a Beast](../../../docs/articles/typebox-is-a-beast.md)\n- [The Schema Wars Just Shifted](../../../docs/articles/20260429T120000-typebox-standard-schema-pivot.md)\n","frontmatter":{"name":"typebox","description":"TypeBox patterns for runtime schema validation and JSON Schema generation. Use when mentioning TypeBox, Standard Schema, or schema-based validation.","metadata":{"author":"epicenter","version":"1.0"}},"isInternal":false,"tokens":519,"sizeBytes":2353},{"name":"advanced-typescript-features.md","path":".agents/skills/typescript/references/advanced-typescript-features.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/advanced-typescript-features.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/typescript/references/advanced-typescript-features.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/advanced-typescript-features.md)","tokens":300,"sizeBytes":257},{"name":"factory-patterns.md","path":".agents/skills/typescript/references/factory-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/factory-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/typescript/references/factory-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/factory-patterns.md)","tokens":300,"sizeBytes":233},{"name":"project-conventions.md","path":".agents/skills/typescript/references/project-conventions.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/project-conventions.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/typescript/references/project-conventions.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/project-conventions.md)","tokens":300,"sizeBytes":239},{"name":"runtime-schema-patterns.md","path":".agents/skills/typescript/references/runtime-schema-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/runtime-schema-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/typescript/references/runtime-schema-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/runtime-schema-patterns.md)","tokens":300,"sizeBytes":247},{"name":"testing-patterns.md","path":".agents/skills/typescript/references/testing-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/testing-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/typescript/references/testing-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/testing-patterns.md)","tokens":300,"sizeBytes":233},{"name":"type-organization.md","path":".agents/skills/typescript/references/type-organization.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-organization.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/typescript/references/type-organization.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-organization.md)","tokens":300,"sizeBytes":235},{"name":"type-safety-and-control-flow.md","path":".agents/skills/typescript/references/type-safety-and-control-flow.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-safety-and-control-flow.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/typescript/references/type-safety-and-control-flow.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/references/type-safety-and-control-flow.md)","tokens":300,"sizeBytes":257},{"name":"SKILL.md","path":".agents/skills/typescript/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/typescript/SKILL.md","title":"typescript","category":"anthropic-skill","format":"markdown","content":"---\nname: typescript\ndescription: Apply project conventions for TypeScript types, imports, generics, factories, and runtime schemas. Use when editing `.ts` files or reviewing TypeScript design and tests, including constraints that need to name an invalid literal key or string in a compiler error.\nmetadata:\n  author: epicenter\n  version: '2.0'\n---\n\n# TypeScript Guidelines\n\nProject-wide TypeScript conventions compose with narrower skills such as `arktype`, `typebox`, `testing`, and `factory-function-composition`.\n\n## Core Rules\n\n- Try to derive or import a type before declaring a new named type. New named types must earn their place as a real contract, protocol vocabulary, discriminated result union, capability port, or multi-implementation shape.\n- Treat local shape copies as boundary smells. Prefer the owning runtime type, schema inference, factory return type, function signature, or a caller-owned capability function.\n- Compose types upward from a named base: extend with `Base & Extra`, never subtract-and-replace with `Omit<Base, 'k'> & { k: U }`. An `Omit<...> &` in a type you author is structural override; it is the tell that a smaller base wants a name. To narrow a surface, return that base rather than `Omit`-ing a member away. See [project conventions](references/project-conventions.md).\n- Use `type`, not `interface`.\n- Use `readonly` only for arrays and maps, unless matching an upstream type exactly.\n- Treat acronyms as normal words in camelCase: `parseUrl`, `defineTable`, `readJson`, `customerId`.\n- Use `.js` extensions in relative imports. Do not use extensionless or `.ts` relative imports.\n- Export symbols at their declarations. Reserve `export { ... } from ...` for barrel files.\n- In React/TSX, prefer named function components with explicit props parameters over `React.FC`/`FunctionComponent`; only type component values when you are storing them in a registry or passing them as data.\n- Prefer factory functions over classes. Let closure position communicate private vs public API.\n- Use descriptive generic names with a `T` prefix, such as `TSchema`, `TDefs`, and `TKey`.\n- Destructure options in the function signature when the object is a configuration bag. Keep a named value only when it is the domain object being transformed or forwarded.\n- Let TypeScript infer private and inner return types. Annotate exported APIs only when useful for clarity or to break circular inference.\n- If an exported type is exactly the object returned by a `create*`, `attach*`, `open*`, or similar factory, derive it from the implementation with `ReturnType<typeof createThing>`. Put the exported output alias immediately after the factory. Keep input, config, data, protocol, and multi-implementation contract types above the factory.\n- Move consumer-facing JSDoc onto the returned object members. Add concrete member annotations inside the returned object when they preserve IntelliSense, narrow an implementation detail, or keep a public method/property surface stable.\n- For curried factories, derive from the inner return, such as `ReturnType<ReturnType<typeof createThing>>`. For generic factories, instantiate `typeof` when needed, such as `ReturnType<typeof openThing<TActions>>`.\n- Preserve intentional readonly public surfaces with getters when deriving from an object literal. Do not expose writable internal state just because the concrete implementation happens to store it that way.\n- Use a `Symbol` brand when identity means a specific factory output, not a coincidental shape probe.\n- Avoid `as any`. Use `unknown`, validation, brands, or narrower helpers instead.\n- Prefer optional chaining over `in` checks or truthiness when checking optional properties.\n- Use `is`, `has`, or `can` prefixes for booleans that answer a question.\n- Prefer `switch` over `if/else` for repeated equality comparisons against the same value. Use `default: value satisfies never` for exhaustiveness when needed.\n- Prefer `Record` lookup tables over nested ternaries for finite value mappings.\n- Compose typed errors bottom-up. Do not filter a broad upstream error union at the boundary. See `error-handling` for Result propagation, recovery, and presentation.\n- Question silent fallbacks that hide invalid state. Preserve round-trip invariants when parsing and serializing.\n\n## Go-to-Definition Awareness\n\nWhen organizing types and exports, always consider Go-to-Definition. A developer pressing Go-to-Def from a call site should land as close as possible to the actual source of truth. If a design choice forces an extra navigation hop, the choice has to earn it elsewhere (e.g., a real validation boundary, a published contract, or a multi-implementation port).\n\nConcrete regressions to watch for:\n\n- **Destructure-re-export of a module-level object**: `const stub = { fn, gn } satisfies T; export const { fn, gn } = stub;` lands Go-to-Def on the destructuring line, not the real definition. Prefer per-export `satisfies` or a direct `export const fn = ... satisfies T['fn']`.\n- **`typeof Real` annotation over `satisfies`**: `export const fn: typeof Real = unreachable` hides the underlying value's identity from navigation. `export const fn = unreachable satisfies typeof Real` keeps the value as the source of truth.\n- **`: T` annotation over `satisfies` for a multi-impl port**: the complement of the rule above. When an interface `T` has several impls (a `#platform/*` or browser/tauri split) and one impl is deliberately narrower than `T` (e.g. ignores a param the contract declares), `export const x = {...} satisfies T` leaks that narrow concrete type, so a caller's view of the method changes by platform. Annotate `export const x: T = {...}` to publish the wide contract, and the narrower impl still type-checks. Reference: whispering's `ManualRecorderLive: RecorderService<...>` (unary CPAL impl behind a binary contract).\n- **Re-export chains in non-barrel files**: `export { X } from './alias'` outside `index.ts` costs an extra hop with nothing to show for it. Reserve `export { ... } from ...` for barrels; export at the declaration everywhere else.\n- **Adapter / proxy / wrapper with no behavior change**: a `fromX` translator or thin passthrough makes Go-to-Def land on the wrapper. Widen the underlying factory's return shape instead (see `factory-function-composition` \"collapsed adapter\" rule).\n- **Manual return type annotation duplicating zone 4**: annotating a factory with a hand-written interface diverts Go-to-Def to the alias. Let the factory return its concrete object, then put the exported alias directly after it as `export type Thing = ReturnType<typeof createThing>`. This keeps navigation on the returned members and lets their JSDoc own the public documentation. See [factory method documentation](../factory-function-composition/references/method-documentation-and-sibling-calls.md) when hover or navigation is in question.\n- **Noisy `satisfies` generic lists**: if a return object should prove it extends a generic contract but `satisfies Contract<A, B, C> & Extras` forces callers to restate inferred table, action, or runtime types, prefer a constrained identity helper owned by the contract module. Example: `return defineWorkspace({ ...workspace, ...runtime })` where the helper accepts `TWorkspace extends Workspace<...>` and returns `TWorkspace`. This keeps the call site readable, preserves the exact inferred return type, and leaves Go-to-Def on the real object members.\n- **When not to add `defineX`**: do not wrap a simple `satisfies` check just to give it a helper name. If the contract has no required type arguments, or its generics have defaults that make `satisfies Contract` readable, prefer `satisfies`. The helper only earns the extra name when it removes generic noise the reader would otherwise have to carry.\n\nFor broader public-shape decisions that affect navigation across packages, see `rethink`.\n\n## Reference Map\n\n- [Project conventions](references/project-conventions.md): detailed examples for derived types, local shape copies, imports, barrels, factories, generics, destructuring, and factory return types.\n- [Type safety and control flow](references/type-safety-and-control-flow.md): identity brands, casts, optional properties, boolean naming, switches, record lookups, error composition, fallback smells, and round-trip invariants.\n- [Type organization](references/type-organization.md): `types.ts` location, co-location rules, inline-vs-extract hop test, options and ID naming.\n- [Factory patterns](references/factory-patterns.md): factory-focused refactors, parameter destructuring, and coupled state extraction.\n- [Runtime schema patterns](references/runtime-schema-patterns.md): arktype, branded IDs, optional property syntax, and workspace table IDs.\n- [Testing patterns](references/testing-patterns.md): inline single-use setup and source-shadowing tests.\n- [Advanced TypeScript features](references/advanced-typescript-features.md): iterator helpers and const generic array inference.\n- [Readable constraint errors](references/readable-constraint-errors.md): read when a literal key or string constraint needs to identify the offending value in a compiler diagnostic.\n","frontmatter":{"name":"typescript","description":"Apply project conventions for TypeScript types, imports, generics, factories, and runtime schemas. Use when editing `.ts` files or reviewing TypeScript design and tests, including constraints that need to name an invalid literal key or string in a compiler error.","metadata":{"author":"epicenter","version":"2.0"}},"isInternal":false,"tokens":1957,"sizeBytes":9172},{"name":"anti-slop-tells.md","path":".agents/skills/ui-design/references/anti-slop-tells.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/anti-slop-tells.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/ui-design/references/anti-slop-tells.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/anti-slop-tells.md)","tokens":300,"sizeBytes":229},{"name":"comparable-apps.md","path":".agents/skills/ui-design/references/comparable-apps.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/comparable-apps.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/ui-design/references/comparable-apps.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/comparable-apps.md)","tokens":300,"sizeBytes":229},{"name":"component-system.md","path":".agents/skills/ui-design/references/component-system.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/component-system.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/ui-design/references/component-system.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/component-system.md)","tokens":300,"sizeBytes":231},{"name":"direction-discovery.md","path":".agents/skills/ui-design/references/direction-discovery.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/direction-discovery.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/ui-design/references/direction-discovery.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/direction-discovery.md)","tokens":300,"sizeBytes":237},{"name":"preflight.md","path":".agents/skills/ui-design/references/preflight.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/preflight.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/ui-design/references/preflight.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/references/preflight.md)","tokens":300,"sizeBytes":217},{"name":"SKILL.md","path":".agents/skills/ui-design/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/ui-design/SKILL.md","title":"ui-design","category":"anthropic-skill","format":"markdown","content":"---\nname: ui-design\ndescription: Design and review Epicenter interfaces while collapsing local UI primitives into the shared component system. Use when co-designing, exploring comparable apps, turning a feature idea into Svelte UI, or changing `packages/ui`, not for a tiny CSS repair.\nmetadata:\n  author: epicenter\n  version: '1.0'\nlicense: Complete terms in LICENSE.txt\n---\n\n# UI Design\n\n`ui-design` preserves the user-visible objective while reimagining the simplest\ngreenfield composition and collapsing local markup, arbitrary styling, and\nduplicated visual contracts into `@epicenter/ui`, except where app-specific\nbehavior or a load-bearing interaction earns the custom shape.\n\nThe existing screen is evidence, not a structure to reproduce. For Epicenter\nproduct apps, `@epicenter/ui` is the default system. Treat shadcn-svelte as\nimplementation lineage and upstream grounding, not as an app import path.\n\n## Canonical Path\n\n1. Name the user-visible objective in one concrete sentence. When the product\n   direction is unsettled, read\n   [references/direction-discovery.md](references/direction-discovery.md) before\n   choosing the composition.\n2. Read the current and neighboring surfaces. Inventory the workflow, hierarchy,\n   accessibility, important states, and recognizable product intent that matter.\n3. Sketch the simplest greenfield composition using the natural anatomy of\n   existing `@epicenter/ui` primitives.\n4. Run the component-system collapse pass below. Refuse exact reproduction of\n   incidental markup, spacing, colors, breakpoints, and one-off states.\n5. Implement the whole state surface: loading, empty, error, disabled, pending,\n   selected, and filter-empty where relevant.\n6. Verify visible, responsive, and interactive results in the browser.\n7. Run UI pre-flight before final handoff or committing the change.\n\nFor substantial work, state the design read:\n\n```txt\nObjective: <what the user accomplishes>.\nGreenfield shape: <the simplest natural component-system composition>.\nCollapse: <the local structure or styling that disappears>.\n```\n\n## Component-System Collapse Pass\n\nRun this for every meaningful UI implementation or review, not only work called\na redesign. This is the UI application of\n[asymmetric-wins](../asymmetric-wins/SKILL.md); load that skill when a candidate\nrefusal needs an explicit product-loss versus deletion-prize decision.\n\n```txt\nPreserve the product sentence.\nChallenge the inherited composition.\nRefuse the incidental visual promise.\nDelete the local code family.\n```\n\nInspect every wrapper, class bundle, arbitrary Tailwind value, custom color,\nlocally reconstructed state surface, and primitive override. Ask:\n\n1. Does an existing primitive or variant already own this contract?\n2. Can the primitive's natural shape replace the wrapper and its classes?\n3. Is the exact local detail load-bearing for comprehension, accessibility,\n   interaction, brand, or required geometry?\n4. If it survives, who owns it: the app's product behavior or the shared system?\n\nImplement obvious collapses directly. Ask the user only when the refusal changes\nworkflow, hierarchy, product meaning, brand posture, or a plausibly load-bearing\ndetail.\n\nKeep custom UI app-local only when it owns app-specific behavior or product\nmeaning. Move a stable visual contract into `packages/ui` when several apps need\nit or it owns an accessibility or interaction contract.\n\n## Human Taste Gate\n\nAsk one focused question when human preference would materially change the\nvisual language, brand posture, primary hierarchy, navigation, density, or the\ndirection of an expressive public surface. Present concrete alternatives and a\nrecommendation. Do not ask about choices settled by the shared system,\naccessibility, existing product intent, or a mechanical collapse.\n\n## Product UI And Expressive Surfaces\n\nProduct UI should usually be dense, quiet, and operational. Distinctiveness\ncomes from workflow fit, hierarchy, copy, state design, and purposeful details.\nMarketing pages, docs entry points, prototypes, and explicitly expressive work\ncan use a stronger visual identity, but still run the collapse pass and keep only\ndetails that serve the chosen direction.\n\n## References\n\n- Read [references/direction-discovery.md](references/direction-discovery.md)\n  when the user wants to co-design, compare directions, or turn a rough UI idea\n  into a buildable surface.\n- Read [references/comparable-apps.md](references/comparable-apps.md) when the\n  design question depends on category fit or what other apps do.\n- Read [references/component-system.md](references/component-system.md) for every\n  meaningful Epicenter product UI implementation or review. It owns collapse\n  smells and exceptions, then routes exact component and package mechanics to\n  the authoritative `packages/ui` guide.\n- Read [references/anti-slop-tells.md](references/anti-slop-tells.md) for public,\n  marketing, docs, portfolio-like, or highly polished work where templated output\n  is a material risk.\n- Read [references/preflight.md](references/preflight.md) before final handoff or\n  committing any visible UI change. Report only failures or intentional exceptions.\n\n## Delegation Boundaries\n\n- `styling` owns CSS, Tailwind, spacing, wrappers, overflow, and scroll traps.\n- `svelte` owns component structure, runes, lifecycle, and state mechanics.\n- `tanstack-table` owns table state, columns, sorting, and row identity.\n- `writing-voice` owns visible interface copy and tone.\n\nFor an explicit external standards or accessibility audit, WebFetch the Vercel\nWeb Interface Guidelines and apply them directly, reporting findings as\n`file:line`. Fetch them per review rather than caching a copy here, because the\nupstream rules change and a stale copy would be worse than no copy.\n\n```txt\nhttps://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md\n```\n\nThe design decision and component-system collapse stay here even when another\nskill owns their implementation mechanics.\n\n## Final Output\n\nReport the changed surfaces, browser verification, any material deletion prize,\nand only the custom shapes or pre-flight exceptions that intentionally remain.\n","frontmatter":{"name":"ui-design","description":"Design and review Epicenter interfaces while collapsing local UI primitives into the shared component system. Use when co-designing, exploring comparable apps, turning a feature idea into Svelte UI, or changing `packages/ui`, not for a tiny CSS repair.","metadata":{"author":"epicenter","version":"1.0"},"license":"Complete terms in LICENSE.txt"},"isInternal":false,"tokens":1278,"sizeBytes":6181},{"name":"action-return-shapes.md","path":".agents/skills/workspace-api/references/action-return-shapes.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/action-return-shapes.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/action-return-shapes.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/action-return-shapes.md)","tokens":300,"sizeBytes":247},{"name":"actions-layout-and-attachments.md","path":".agents/skills/workspace-api/references/actions-layout-and-attachments.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/actions-layout-and-attachments.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/actions-layout-and-attachments.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/actions-layout-and-attachments.md)","tokens":300,"sizeBytes":267},{"name":"deriving-action-inputs.md","path":".agents/skills/workspace-api/references/deriving-action-inputs.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/deriving-action-inputs.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/deriving-action-inputs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/deriving-action-inputs.md)","tokens":300,"sizeBytes":251},{"name":"primitive-api.md","path":".agents/skills/workspace-api/references/primitive-api.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/primitive-api.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/primitive-api.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/primitive-api.md)","tokens":300,"sizeBytes":233},{"name":"schema-definition-patterns.md","path":".agents/skills/workspace-api/references/schema-definition-patterns.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/schema-definition-patterns.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/schema-definition-patterns.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/schema-definition-patterns.md)","tokens":300,"sizeBytes":259},{"name":"table-kv-crud-observation.md","path":".agents/skills/workspace-api/references/table-kv-crud-observation.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-kv-crud-observation.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/table-kv-crud-observation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-kv-crud-observation.md)","tokens":300,"sizeBytes":257},{"name":"table-migrations.md","path":".agents/skills/workspace-api/references/table-migrations.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-migrations.md","title":"References Skill","category":"anthropic-skill","format":"markdown","content":"# References Skill\n\nPath: `.agents/skills/workspace-api/references/table-migrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/workspace-api/references/table-migrations.md)","tokens":300,"sizeBytes":239},{"name":"SKILL.md","path":".agents/skills/worktree-hygiene/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/worktree-hygiene/SKILL.md","title":"worktree-hygiene","category":"anthropic-skill","format":"markdown","content":"---\nname: worktree-hygiene\ndescription: Safely reap merged Git worktrees and branches across Epicenter harnesses. Use when cleaning `git worktree list`, removing orphaned or detached worktrees, or deciding whether one is safe to delete, not when creating branches or commits.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# Worktree Hygiene\n\n> **Related Skills**: [git](../git/SKILL.md) for branch creation, staging, and commit messages. [standalone-commits](../standalone-commits/SKILL.md) for reviewable units. [pull-request](../pull-request/SKILL.md) for merge strategy.\n\nFour harnesses (warp, codex, opencode, conductor) mint worktrees here and nothing reaps them, so they accumulate. The cure is to reap on close: when a branch lands, remove its worktree and delete the branch in the same motion. This skill is the safe procedure for doing that, one-off or as a periodic sweep.\n\n## The reap signal (and the trap)\n\n\"Branch merged\" is **not** sufficient to reap. A merged branch routinely carries live uncommitted edits in its working tree; removing it with `--force` destroys that work. The real signal is:\n\n```txt\nreap = (branch fully contained in origin/main)  AND  (working tree clean OR only throwaway dirt)\n```\n\nUse `git merge-base --is-ancestor <branch> origin/main` for containment: if true, every commit on the branch is in `origin/main`, which is airtight even when the branch sits on a stacked base. `git cherry origin/main <branch>` shows unmerged commits (`+` lines).\n\n## Audit procedure\n\nFetch first if `origin/main` is stale, then classify every worktree:\n\n```bash\ncd <main-checkout>; base=origin/main\ngit worktree list --porcelain | awk '/^branch /{print $2}' | sed 's#refs/heads/##' | while read b; do\n  [ -z \"$b\" ] && continue\n  ahead=$(git cherry \"$base\" \"$b\" 2>/dev/null | grep -c '^+')\n  if git merge-base --is-ancestor \"$b\" \"$base\" 2>/dev/null; then st=\"MERGED\"; else st=\"$ahead unmerged\"; fi\n  printf \"%-50s %s\\n\" \"$b\" \"$st\"\ndone\n```\n\nFor each MERGED worktree, check its working tree with `git -C <path> status --porcelain` (no output = clean). Inspect dirty file lists before deciding: lockfile-only churn is throwaway; modified source or unique untracked files are real work. Detached-HEAD worktrees have no branch line; test their tip with `git merge-base --is-ancestor <sha> origin/main`.\n\n## Decide per worktree\n\n```txt\nmerged + clean                 -> reap: git worktree remove <path>; git branch -d/-D <branch>\nmerged + throwaway dirt only   -> reap: git worktree remove --force <path>; git branch -d/-D <branch>\ndetached + merged + clean      -> reap: git worktree remove <path>   (no branch to delete)\nmerged + REAL uncommitted work -> preserve. Branch or commit the work first; do not reap.\ndetached + REAL uncommitted    -> anchor before anything: git -C <path> switch -c holding/<name>\nunmerged commits               -> leave alone (active work)\n```\n\n## Reaping is destructive: gate it\n\n`git worktree remove` and `git branch -d` are destructive (AGENTS.md: destructive actions need approval). For a sweep, present an approve-list of exact commands grouped by tier before running any of them. Never reap on a self-reported \"it's merged\"; run the audit yourself.\n\n- `git branch -d` refuses unless the branch is merged into the current HEAD. If local `main` lags `origin/main`, it will refuse a branch that is merged only on the remote; `-D` is then justified by the `merge-base --is-ancestor origin/main` proof.\n- `git worktree remove` can fail with `Directory not empty` when ignored files (node_modules, `.DS_Store`) remain. It still de-registers the worktree. Finish with `git worktree prune` then `rm -rf <path>`.\n- The harnesses spawn and mutate worktrees continuously, even mid-sweep. Re-run the audit at the end; treat reaping as ongoing discipline, not a one-time event.\n\n## Repo-specific worktree gotchas\n\n- **`git stash` is shared across all worktrees here.** A bare `git stash`/`stash pop` can grab another worktree's entry. Prefer explicit branches; avoid stash.\n- **Animal-named warp branches are stacked on unmerged bases**, cut from whatever was checked out rather than clean `origin/main`. Before opening a PR from one, run `git diff --stat origin/main...HEAD` and confirm scope; unrelated work rides along otherwise.\n- **Verify HEAD before committing in a worktree** (`git rev-parse --abbrev-ref HEAD`). A handoff may claim a \"fresh worktree on branch X\" that does not exist; these stay checked out on the base branch itself.\n\n## Invariant: one owner per worktree\n\nEach worktree and branch has a single owner (the harness/agent that created it). Do not reap or commit into a worktree you do not own without confirming it is abandoned; a clean-looking tree may belong to a live session.\n\n## Final checks\n\n1. Re-run the audit; confirm reaped paths are gone with `git worktree list`.\n2. `git worktree prune` to clear stale registrations.\n3. Confirm any anchored `holding/*` branches still hold their edits.\n</content>\n</invoke>\n","frontmatter":{"name":"worktree-hygiene","description":"Safely reap merged Git worktrees and branches across Epicenter harnesses. Use when cleaning `git worktree list`, removing orphaned or detached worktrees, or deciding whether one is safe to delete, not when creating branches or commits.","metadata":{"author":"epicenter","version":"1.0"}},"isInternal":false,"tokens":1241,"sizeBytes":4985},{"name":"SKILL.md","path":".agents/skills/yjs/SKILL.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/yjs/SKILL.md","title":"yjs","category":"anthropic-skill","format":"markdown","content":"---\nname: yjs\ndescription: Apply Epicenter’s Yjs 14 patterns for row documents, transactions, persistence, and synchronization. Use when working with `@y/y`, CRDTs, collaborative editing, awareness, or Yjs storage and providers.\nmetadata:\n  author: epicenter\n  version: '1.0'\n---\n\n# Yjs 14 CRDT Patterns\n## Reference Repositories\n\n- [Yjs](https://github.com/yjs/yjs): CRDT framework for shared editing and offline-first data\n- [Yjs Protocols](https://github.com/yjs/y-protocols): algorithmic grounding for sync and awareness\n\n## Upstream Grounding\n\nWhen conflict semantics, transaction origins, shared-type behavior, update encoding, storage growth, or shared-type APIs affect correctness, use source-backed grounding before relying on memory. If DeepWiki MCP is available, ask a narrow question against `yjs/yjs`; for sync and awareness algorithms, ask against `yjs/y-protocols`. If DeepWiki is unavailable or the repo is not indexed, use upstream source or official docs directly. Treat DeepWiki as orientation, then verify decisive details against the locally pinned `@y/y` types and source before changing code.\n\nEpicenter targets `@y/y` 14 only. Do not add `yjs` 13, `y-indexeddb`, a compatibility reader, a package alias, a dual wire, or a fallback. Existing Yjs 13 code is replacement material, not a compatibility surface.\n\nSkip DeepWiki for stable basics and repo-local patterns already documented below.\n\nRead [references/document-design.md](references/document-design.md) before\nchoosing how a new row document is structured. Counters, user-controlled\nordering, and nested shapes each have a conflict behavior that is expensive to\nchange once data exists.\n\nRead [references/debugging.md](references/debugging.md) when a document\nconverges to unexpected state or grows faster than its content.\n\n> **Related Skills**: See `svelte` for reading store data into a component, and `typebox` for the schemas behind the `field.*` declaration helpers.\n\n## Transactions, Origins, And Undo\n\n- Yjs updates are commutative and idempotent. A state vector describes what a\n  replica HAS; it does not order what it owes. A delete moves no client clock,\n  so two replicas can hold the same vector and differ, which is why obligation\n  in this store is a log position rather than a vector. Both the cursor and the\n  outbox are then DERIVED from one column on the update rows, `MAX(authoritySeq)`\n  and `authoritySeq IS NULL`, so neither can disagree with the bytes it accounts\n  for (`packages/app/evidence/data/invariants.test.ts`, ADR-0298).\n- Use `Y.encodeStateVector(doc)` to describe local clocks, then `Y.encodeStateAsUpdateV2(doc, remoteStateVector)` to send only missing updates.\n- Persist and transmit bytes from the `updateV2` event. Replay them with `Y.applyUpdateV2(doc, update, origin)`.\n- Wrap multi-write user actions in `doc.transact(() => { ... }, origin)`. This reduces observer churn and gives persistence, providers, and undo logic a useful origin.\n- Treat transaction origins as the boundary for filtering provider echoes, app-authored operations, and undo tracking.\n- Scope `Y.UndoManager` to concrete shared types. Set `trackedOrigins`, tune `captureTimeout`, and call `stopCapturing()` between logically separate commands.\n- Use relative positions for collaborative cursor and selection anchors. Raw numeric indexes drift under remote edits.\n- `Y.snapshot()` is a historical marker that depends on retained delete history. `Y.encodeStateAsUpdateV2(doc)` is the self-contained checkpoint format.\n- Prefer separate top-level docs over Yjs subdocuments unless Epicenter owns the whole provider lifecycle for the subdoc path.\n\n## Store Connection\n\n- Yjs is network-agnostic. It supplies CRDT state, state vectors, updates, and awareness behavior, not Epicenter's connection topology, authorization, or durability contract.\n- One socket per application, not one per open document. A replica connects to `STORE_SYNC_ROUTE.pattern` (`/api/store/v1/sync`, in `packages/sync/src/store-route.ts`) with a `namespace` naming the workspace and a `cursor` naming its own durably applied position, so a reconnect is a catch-up rather than a fresh start (ADR-0222).\n- Whose data it is never appears in the query. It comes from the resolved bearer, server-side, so there is no value a client can put in the URL that reaches another partition (ADR-0092).\n- Browser upgrades authenticate through exactly one `bearer.<token>` subprotocol entry, because a browser upgrade cannot set `Authorization`; the mount echoes only the main subprotocol on the 101, so the token never round-trips. Non-browser clients may use an `Authorization` header. Do not use cookie-only upgrades, query-string credentials, or post-accept authentication frames.\n- The wire is framing and nothing else: `push`, `ack`, `refuse`, `entry`, `offer`, `snapshot`, `wanted` (`packages/app/src/data/sync/frames.ts`). No frame knows what an update means, what a row is, or what Yjs is, which is exactly why chunking is safe at that layer.\n- Large updates are chunked at `CHUNK_BYTES`, set by Cloudflare's documented Durable Object SQLite value cap rather than by anything about Yjs. Do not raise it to the measured wall; the documented limit is the one Cloudflare is entitled to enforce.\n- Presence is deliberately absent until a concrete consumer earns awareness state and disconnect cleanup. If added later, awareness is ephemeral and must never be persisted into the Y.Doc or the SQLite update log as canonical data.\n\n## One document per store\n\nEpicenter pins `@y/y@14.0.0-rc.26`. A store is one `Y.Doc` with table roots\nnamed `tables:<name>` and a `kv` root. Each row is a nested `Y.Node` attribute\non its table root. The row’s attributes are JSON metadata and its sole sequence\nchild is the stable body node (ADR-0431).\n\nThe store creates both nodes together. Reads never create or repair them and\nrequire exactly one child of the correct node type. Field updates cannot\nreplace the child; deleting the row removes its subtree. Child index zero is\na storage convention, while the child has its own stable CRDT identity.\n\n`get`, `rows`, and `create` return value snapshots. `table.body(id)` returns\nthe live body independently of metadata conformance. `body`, `content`, and\n`!`-prefixed names are ordinary metadata; structural `id` remains reserved.\n\n```typescript\nconst notes = defineTable({\n  fields: { title: field.string(), body: field.string() },\n  body: plainText(),\n});\n\nconst row = db.tables.notes.create({ title: 'Trip', body: 'metadata' });\nconst body = db.tables.notes.body(row.id);\nbody?.insert(0, ['The writing.']);\n```\n\nKeep `field.*` helpers, which use TypeBox internally. The current two-method\nbody file format and artifact sequence replacement are specified in\n`packages/app/src/data/README.md`. Artifact reads expose\n`{ id, fields, body }`; values become frontmatter and the codec supplies the\ntext below it. Checkout distinguishes a field named `body` from a body edit\nby operation kind.\n\nOnly declared table/KV roots reach `Doc.get`, which creates on miss. Row\nlookups use `getAttr` and never mint roots. Keeping rows nested also avoids\n`findRootTypeKey` scanning one document root per row during encoding.\n\n## Editor bindings\n\nBind editors to the body child. Honeycrisp uses `@y/prosemirror@2.0.0-12`:\n`ynodeToPmnode(node, schema)` reads and `pmnodeToDelta(pmNode)` produces an\ninsertion delta for `node.applyDelta`. The converter fills an empty top-level document from the schema without\nwriting to Yjs. To rewrite, delete the old sequence and\napply the new delta inside one store transaction; never replace the body.\n\nEditor normalization owns body attributes. Parent metadata stays outside it.\nA metadata edit must neither notify body watchers nor clear editor undo history.\nHoneycrisp clears history for foreign body edits and preserves undo/redo origins.\nThe Skills CodeMirror adapter writes only its supplied body but replaces the\nwhole text on each edit; this has weaker concurrent-edit behavior than an\nincremental collaborative binding.\n\nRoot overrides keep RC26 and lib0 RC32 consistent through the dependency\nclosure. The old renderer and internal-export patches are removed. A new ProseMirror\npatch restores the virtual empty-content gate after undo to preserve redo. Do not\nintroduce Yjs 13 to accommodate stock Tiptap collaboration.\n\n## Three Signals, And Which One Fires\n\n- `table.subscribe` fires when a table's SHAPE changes: a row added, removed,\n  or a value edited. It does NOT fire for an edit inside a body node. It\n  hands the listener the ROW IDS the commit touched, so a consumer holding a\n  projection rebuilds only what moved; a consumer that just re-reads may\n  ignore them.\n- `table.watch(node)` fires for edits inside one body node, keyed by the\n  node's own identity.\n- `kv.subscribe` fires when any declared key changes, and carries nothing.\n  There are ten keys, so naming them would buy nothing.\n\nThe distinction is forced by the library. Delivery routes off\n`transaction.changed`, which Yjs fills with the types a transaction modified\nDIRECTLY, so a keystroke in a body puts the BODY's type there; its parent is\nthe row, not the table root. Nothing bubbles to the table. A surface that\nwatches a table for changes inside a node sees nothing.\n\n## Owner-Side Persistence\n\nOne document, so one chain: `_updates (id, bytes, authoritySeq)` in SQLite, and\nthe matching object store in the browser's IndexedDB. There is no per-document\npartition, no `_tombstones`, and no separate `_outbox` — what a replica still\nowes is the rows with `authoritySeq IS NULL`, which is a partial index rather\nthan a second table (ADR-0238). Do not add a separate IndexedDB provider or a\nsecond document store.\n\n- Hydrate BEFORE attaching the `updateV2` listener. Replaying stored bytes\n  through the listener would re-append them; the engine applies its history\n  first and then attaches, and throws if a foreign apply ever reaches the\n  listener, so a mistake here fails the open loudly rather than duplicating a\n  log (`packages/app/src/data/store/store.ts`).\n- A locally authored append joins the durable queue owed. Authority-accepted\n  bytes arrive on a remote origin and create no outbound obligation, which is\n  what the one listener checks before appending.\n- The chain compacts by ROW, and the row's `authoritySeq` picks which of two\n  mechanisms applies (ADR-0301). Rows the authority has taken replay into a\n  fresh `gc: true` document and rewrite as one complete V2 state update: replay\n  rather than `mergeUpdatesV2`, because merging does not GC and collapsing\n  tombstones is the point. `encodeStateAsUpdateV2` folds buffered pending state\n  back into its output, so a fold taken while dependencies are missing cannot\n  silently drop them.\n- Rows still OWED cannot take that path, and this is the one to get right. A\n  whole-document re-encode is not a delta the authority could be offered, so\n  owed rows collapse with `mergeUpdatesV2` into one resendable row that takes a\n  NEW id above every existing one. Folding them like acknowledged rows would\n  offer the authority a whole document per keystroke; inheriting a lower id\n  would let an earlier acknowledgement stamp bytes it never carried.\n- Treat replay corruption as storage failure: a document that cannot hydrate refuses its open rather than handing out a half-hydrated handle.\n\n## Storage Optimization\n\nv14 has ONE shared type, `Y.Node`, reached as `doc.get(name)` for a map-like\nroot or `doc.get(name, 'text')` for a text one. There is no `Y.Map`, `Y.Text`,\n`Y.Array` or `Y.XmlFragment`; code or advice naming them is Yjs 13 and is\nreplacement material.\n\nAttribute tombstones retain the key forever, and every `setAttr(key, value)`\ncreates a new internal item and tombstones the previous one, which is why\n`gc: true` is what collapses a field edited 5,000 times down to two structs.\n\n## Raw Types At The Boundary\n\nA `Y.Node` handed out by a table handle is a live CRDT reference and is MEANT\nto be bound to an editor. That is the design: the store hands the editor the\nreal thing rather than proxying it, because a copy would break the merge that\nmakes it worth having.\n\nA raw node can reach its parent and document. It is not a security sandbox.\nFeatures must use `table.body(id)` instead of constructing or repairing the\nrow layout. The store owns the invariant in\n`packages/app/src/data/store/document.ts`.\n\nRC26 still types configured children as `Fingerprintable`, which does not\ninclude a live `Y.Node`, and `insert` does not translate delta children into\nnode children. Keep the insertion escape localized at row creation; do not\nbroaden JSON metadata types or publish a compatibility alias to hide this gap.\nVerify the installed declarations before changing that boundary.\n\n## References\n\n- [Learn Yjs](https://learn.yjs.dev/) - Interactive tutorials\n- [Yjs Documentation](https://docs.yjs.dev/) - API reference\n- [Yjs INTERNALS.md](https://github.com/yjs/yjs/blob/main/INTERNALS.md) - How Yjs works internally\n- [GitHub issue #520](https://github.com/yjs/yjs/issues/520) - Conflict resolution discussion with dmonad\n- [fractional-indexing](https://github.com/rocicorp/fractional-indexing) - Production library\n- [YATA paper](https://www.researchgate.net/publication/310212186_Near_Real-Time_Peer-to-Peer_Shared_Editing_on_Extensible_Data_Types) - Academic foundation\n- `packages/app/src/data/store/document.ts`: the application-document grammar (roots, row types, field reads)\n- `packages/app/src/data/store/log.ts` and `packages/app/src/data/store/persistence.ts`: the durable update log, the outbox, and the persistence queue\n- `packages/app/evidence/data/invariants.test.ts`: the library behaviour this design rests on, pinned against the installed rc\n- `packages/app/src/data/sync/`: the Yjs 14 wire (frames, connection, client, authority)\n- [ADR-0295](../../../docs/adr/0295-a-database-is-one-yjs-document-and-a-row-holds-its-rich-content.md): one document per application, and a row holds its rich content (supersedes ADR-0248)\n- [ADR-0309](../../../docs/adr/0309-a-field-holds-a-value-or-a-node-and-the-retired-words-fail-the-build.md): historical field/node vocabulary, amended by [ADR-0431](../../../docs/adr/0431-rows-return-values-and-own-a-separate-body.md) for the sole-child layout\n- [ADR-0221](../../../docs/adr/0221-a-table-names-the-rows-a-commit-touched-and-says-so-after-the-projection-commits.md): what `subscribe` reports and when it fires\n- [ADR-0146](../../../docs/adr/0146-row-documents-use-one-yjs-14-major-and-runtime-native-update-logs.md): Yjs 14-only persistence decision\n- [ADR-0159](../../../docs/adr/0159-row-documents-persist-in-one-owner-side-sqlite-update-log.md): one owner-side SQLite update log and shared attachment seam\n","frontmatter":{"name":"yjs","description":"Apply Epicenter’s Yjs 14 patterns for row documents, transactions, persistence, and synchronization. Use when working with `@y/y`, CRDTs, collaborative editing, awareness, or Yjs storage and providers.","metadata":{"author":"epicenter","version":"1.0"}},"isInternal":false,"tokens":3436,"sizeBytes":14751},{"name":"package.json","path":"apps/skills/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/package.json","title":"Skills Skill","category":"anthropic-skill","format":"json","content":"# Skills Skill\n\nPath: `apps/skills/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/package.json)","tokens":300,"sizeBytes":165},{"name":"README.md","path":"apps/skills/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/README.md","title":"Skills Skill","category":"anthropic-skill","format":"markdown","content":"# Skills Skill\n\nPath: `apps/skills/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/README.md)","tokens":300,"sizeBytes":159},{"name":"tsconfig.json","path":"apps/skills/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/tsconfig.json","title":"Skills Skill","category":"anthropic-skill","format":"json","content":"# Skills Skill\n\nPath: `apps/skills/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/skills/tsconfig.json)","tokens":300,"sizeBytes":167},{"name":"package.json","path":"packages/agent-protocol/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/package.json","title":"Agent-protocol Skill","category":"anthropic-skill","format":"json","content":"# Agent-protocol Skill\n\nPath: `packages/agent-protocol/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/package.json)","tokens":300,"sizeBytes":197},{"name":"tsconfig.json","path":"packages/agent-protocol/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/tsconfig.json","title":"Agent-protocol Skill","category":"anthropic-skill","format":"json","content":"# Agent-protocol Skill\n\nPath: `packages/agent-protocol/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent-protocol/tsconfig.json)","tokens":300,"sizeBytes":199},{"name":"package.json","path":"packages/agent/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/package.json","title":"Agent Skill","category":"anthropic-skill","format":"json","content":"# Agent Skill\n\nPath: `packages/agent/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/package.json)","tokens":300,"sizeBytes":170},{"name":"tsconfig.json","path":"packages/agent/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/tsconfig.json","title":"Agent Skill","category":"anthropic-skill","format":"json","content":"# Agent Skill\n\nPath: `packages/agent/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/tsconfig.json)","tokens":300,"sizeBytes":172},{"name":"package.json","path":"packages/app-shell/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/package.json","title":"App-shell Skill","category":"anthropic-skill","format":"json","content":"# App-shell Skill\n\nPath: `packages/app-shell/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/package.json)","tokens":300,"sizeBytes":182},{"name":"tsconfig.json","path":"packages/app-shell/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/tsconfig.json","title":"App-shell Skill","category":"anthropic-skill","format":"json","content":"# App-shell Skill\n\nPath: `packages/app-shell/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app-shell/tsconfig.json)","tokens":300,"sizeBytes":184},{"name":"package.json","path":"packages/app/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/package.json","title":"App Skill","category":"anthropic-skill","format":"json","content":"# App Skill\n\nPath: `packages/app/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/package.json)","tokens":300,"sizeBytes":164},{"name":"package.json","path":"packages/app/test-fixtures/consumer/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/package.json","title":"Consumer Skill","category":"anthropic-skill","format":"json","content":"# Consumer Skill\n\nPath: `packages/app/test-fixtures/consumer/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/package.json)","tokens":300,"sizeBytes":215},{"name":"tsconfig.json","path":"packages/app/test-fixtures/consumer/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/tsconfig.json","title":"Consumer Skill","category":"anthropic-skill","format":"json","content":"# Consumer Skill\n\nPath: `packages/app/test-fixtures/consumer/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/test-fixtures/consumer/tsconfig.json)","tokens":300,"sizeBytes":217},{"name":"tsconfig.build.json","path":"packages/app/tsconfig.build.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.build.json","title":"App Skill","category":"anthropic-skill","format":"json","content":"# App Skill\n\nPath: `packages/app/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.build.json)","tokens":300,"sizeBytes":178},{"name":"tsconfig.json","path":"packages/app/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.json","title":"App Skill","category":"anthropic-skill","format":"json","content":"# App Skill\n\nPath: `packages/app/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/tsconfig.json)","tokens":300,"sizeBytes":166},{"name":"CHANGELOG.md","path":"packages/auth/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/CHANGELOG.md","title":"Auth Skill","category":"anthropic-skill","format":"markdown","content":"# Auth Skill\n\nPath: `packages/auth/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/CHANGELOG.md)","tokens":300,"sizeBytes":167},{"name":"package.json","path":"packages/auth/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/package.json","title":"Auth Skill","category":"anthropic-skill","format":"json","content":"# Auth Skill\n\nPath: `packages/auth/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/package.json)","tokens":300,"sizeBytes":167},{"name":"tsconfig.json","path":"packages/auth/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/tsconfig.json","title":"Auth Skill","category":"anthropic-skill","format":"json","content":"# Auth Skill\n\nPath: `packages/auth/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/auth/tsconfig.json)","tokens":300,"sizeBytes":169},{"name":"package.json","path":"packages/blobs/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/package.json","title":"Blobs Skill","category":"anthropic-skill","format":"json","content":"# Blobs Skill\n\nPath: `packages/blobs/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/package.json)","tokens":300,"sizeBytes":170},{"name":"tsconfig.json","path":"packages/blobs/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/tsconfig.json","title":"Blobs Skill","category":"anthropic-skill","format":"json","content":"# Blobs Skill\n\nPath: `packages/blobs/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/tsconfig.json)","tokens":300,"sizeBytes":172},{"name":"package.json","path":"packages/chat/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/package.json","title":"Chat Skill","category":"anthropic-skill","format":"json","content":"# Chat Skill\n\nPath: `packages/chat/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/package.json)","tokens":300,"sizeBytes":167},{"name":"tsconfig.json","path":"packages/chat/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/tsconfig.json","title":"Chat Skill","category":"anthropic-skill","format":"json","content":"# Chat Skill\n\nPath: `packages/chat/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/chat/tsconfig.json)","tokens":300,"sizeBytes":169},{"name":"CHANGELOG.md","path":"packages/client/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/CHANGELOG.md","title":"Client Skill","category":"anthropic-skill","format":"markdown","content":"# Client Skill\n\nPath: `packages/client/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/CHANGELOG.md)","tokens":300,"sizeBytes":173},{"name":"package.json","path":"packages/client/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/package.json","title":"Client Skill","category":"anthropic-skill","format":"json","content":"# Client Skill\n\nPath: `packages/client/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/package.json)","tokens":300,"sizeBytes":173},{"name":"tsconfig.json","path":"packages/client/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/tsconfig.json","title":"Client Skill","category":"anthropic-skill","format":"json","content":"# Client Skill\n\nPath: `packages/client/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/client/tsconfig.json)","tokens":300,"sizeBytes":175},{"name":"CHANGELOG.md","path":"packages/constants/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/CHANGELOG.md","title":"Constants Skill","category":"anthropic-skill","format":"markdown","content":"# Constants Skill\n\nPath: `packages/constants/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/CHANGELOG.md)","tokens":300,"sizeBytes":182},{"name":"package.json","path":"packages/constants/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/package.json","title":"Constants Skill","category":"anthropic-skill","format":"json","content":"# Constants Skill\n\nPath: `packages/constants/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/package.json)","tokens":300,"sizeBytes":182},{"name":"tsconfig.json","path":"packages/constants/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/tsconfig.json","title":"Constants Skill","category":"anthropic-skill","format":"json","content":"# Constants Skill\n\nPath: `packages/constants/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/tsconfig.json)","tokens":300,"sizeBytes":184},{"name":"tsconfig.json","path":"packages/data/browser-evidence/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/browser-evidence/tsconfig.json","title":"Browser-evidence Skill","category":"anthropic-skill","format":"json","content":"# Browser-evidence Skill\n\nPath: `packages/data/browser-evidence/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/browser-evidence/tsconfig.json)","tokens":300,"sizeBytes":215},{"name":"package.json","path":"packages/data/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/package.json","title":"Data Skill","category":"anthropic-skill","format":"json","content":"# Data Skill\n\nPath: `packages/data/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/package.json)","tokens":300,"sizeBytes":167},{"name":"tsconfig.json","path":"packages/data/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/tsconfig.json","title":"Data Skill","category":"anthropic-skill","format":"json","content":"# Data Skill\n\nPath: `packages/data/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/tsconfig.json)","tokens":300,"sizeBytes":169},{"name":"package.json","path":"packages/document-sync/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/package.json","title":"Document-sync Skill","category":"anthropic-skill","format":"json","content":"# Document-sync Skill\n\nPath: `packages/document-sync/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/package.json)","tokens":300,"sizeBytes":194},{"name":"tsconfig.json","path":"packages/document-sync/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/tsconfig.json","title":"Document-sync Skill","category":"anthropic-skill","format":"json","content":"# Document-sync Skill\n\nPath: `packages/document-sync/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/document-sync/tsconfig.json)","tokens":300,"sizeBytes":196},{"name":"CHANGELOG.md","path":"packages/field/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/CHANGELOG.md","title":"Field Skill","category":"anthropic-skill","format":"markdown","content":"# Field Skill\n\nPath: `packages/field/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/CHANGELOG.md)","tokens":300,"sizeBytes":170},{"name":"package.json","path":"packages/field/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/package.json","title":"Field Skill","category":"anthropic-skill","format":"json","content":"# Field Skill\n\nPath: `packages/field/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/package.json)","tokens":300,"sizeBytes":170},{"name":"tsconfig.build.json","path":"packages/field/tsconfig.build.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.build.json","title":"Field Skill","category":"anthropic-skill","format":"json","content":"# Field Skill\n\nPath: `packages/field/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.build.json)","tokens":300,"sizeBytes":184},{"name":"tsconfig.json","path":"packages/field/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.json","title":"Field Skill","category":"anthropic-skill","format":"json","content":"# Field Skill\n\nPath: `packages/field/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/field/tsconfig.json)","tokens":300,"sizeBytes":172},{"name":"CHANGELOG.md","path":"packages/identity/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/CHANGELOG.md","title":"Identity Skill","category":"anthropic-skill","format":"markdown","content":"# Identity Skill\n\nPath: `packages/identity/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/CHANGELOG.md)","tokens":300,"sizeBytes":179},{"name":"package.json","path":"packages/identity/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/package.json","title":"Identity Skill","category":"anthropic-skill","format":"json","content":"# Identity Skill\n\nPath: `packages/identity/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/package.json)","tokens":300,"sizeBytes":179},{"name":"tsconfig.json","path":"packages/identity/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/tsconfig.json","title":"Identity Skill","category":"anthropic-skill","format":"json","content":"# Identity Skill\n\nPath: `packages/identity/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/identity/tsconfig.json)","tokens":300,"sizeBytes":181},{"name":"package.json","path":"packages/lens/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/package.json","title":"Lens Skill","category":"anthropic-skill","format":"json","content":"# Lens Skill\n\nPath: `packages/lens/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/package.json)","tokens":300,"sizeBytes":167},{"name":"tsconfig.build.json","path":"packages/lens/tsconfig.build.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.build.json","title":"Lens Skill","category":"anthropic-skill","format":"json","content":"# Lens Skill\n\nPath: `packages/lens/tsconfig.build.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.build.json)","tokens":300,"sizeBytes":181},{"name":"tsconfig.json","path":"packages/lens/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.json","title":"Lens Skill","category":"anthropic-skill","format":"json","content":"# Lens Skill\n\nPath: `packages/lens/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/lens/tsconfig.json)","tokens":300,"sizeBytes":169},{"name":"package.json","path":"packages/matter-core/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/package.json","title":"Matter-core Skill","category":"anthropic-skill","format":"json","content":"# Matter-core Skill\n\nPath: `packages/matter-core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/package.json)","tokens":300,"sizeBytes":188},{"name":"tsconfig.json","path":"packages/matter-core/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/tsconfig.json","title":"Matter-core Skill","category":"anthropic-skill","format":"json","content":"# Matter-core Skill\n\nPath: `packages/matter-core/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/matter-core/tsconfig.json)","tokens":300,"sizeBytes":190},{"name":"package.json","path":"packages/recorder/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/package.json","title":"Recorder Skill","category":"anthropic-skill","format":"json","content":"# Recorder Skill\n\nPath: `packages/recorder/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/package.json)","tokens":300,"sizeBytes":179},{"name":"tsconfig.json","path":"packages/recorder/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/tsconfig.json","title":"Recorder Skill","category":"anthropic-skill","format":"json","content":"# Recorder Skill\n\nPath: `packages/recorder/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/tsconfig.json)","tokens":300,"sizeBytes":181},{"name":"CHANGELOG.md","path":"packages/server/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/CHANGELOG.md","title":"Server Skill","category":"anthropic-skill","format":"markdown","content":"# Server Skill\n\nPath: `packages/server/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/CHANGELOG.md)","tokens":300,"sizeBytes":173},{"name":"package.json","path":"packages/server/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/package.json","title":"Server Skill","category":"anthropic-skill","format":"json","content":"# Server Skill\n\nPath: `packages/server/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/package.json)","tokens":300,"sizeBytes":173},{"name":"tsconfig.json","path":"packages/server/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/tsconfig.json","title":"Server Skill","category":"anthropic-skill","format":"json","content":"# Server Skill\n\nPath: `packages/server/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/tsconfig.json)","tokens":300,"sizeBytes":175},{"name":"CHANGELOG.md","path":"packages/skills/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/CHANGELOG.md","title":"Skills Skill","category":"anthropic-skill","format":"markdown","content":"# Skills Skill\n\nPath: `packages/skills/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/CHANGELOG.md)","tokens":300,"sizeBytes":173},{"name":"package.json","path":"packages/skills/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/package.json","title":"Skills Skill","category":"anthropic-skill","format":"json","content":"# Skills Skill\n\nPath: `packages/skills/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/package.json)","tokens":300,"sizeBytes":173},{"name":"tsconfig.json","path":"packages/skills/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/tsconfig.json","title":"Skills Skill","category":"anthropic-skill","format":"json","content":"# Skills Skill\n\nPath: `packages/skills/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/tsconfig.json)","tokens":300,"sizeBytes":175},{"name":"package.json","path":"packages/sqlite/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/package.json","title":"Sqlite Skill","category":"anthropic-skill","format":"json","content":"# Sqlite Skill\n\nPath: `packages/sqlite/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/package.json)","tokens":300,"sizeBytes":173},{"name":"tsconfig.json","path":"packages/sqlite/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/tsconfig.json","title":"Sqlite Skill","category":"anthropic-skill","format":"json","content":"# Sqlite Skill\n\nPath: `packages/sqlite/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/tsconfig.json)","tokens":300,"sizeBytes":175},{"name":"CHANGELOG.md","path":"packages/svelte-utils/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/CHANGELOG.md","title":"Svelte-utils Skill","category":"anthropic-skill","format":"markdown","content":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/CHANGELOG.md)","tokens":300,"sizeBytes":191},{"name":"package.json","path":"packages/svelte-utils/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/package.json","title":"Svelte-utils Skill","category":"anthropic-skill","format":"json","content":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/package.json)","tokens":300,"sizeBytes":191},{"name":"tsconfig.json","path":"packages/svelte-utils/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/tsconfig.json","title":"Svelte-utils Skill","category":"anthropic-skill","format":"json","content":"# Svelte-utils Skill\n\nPath: `packages/svelte-utils/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/tsconfig.json)","tokens":300,"sizeBytes":193},{"name":"CHANGELOG.md","path":"packages/sync/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/CHANGELOG.md","title":"Sync Skill","category":"anthropic-skill","format":"markdown","content":"# Sync Skill\n\nPath: `packages/sync/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/CHANGELOG.md)","tokens":300,"sizeBytes":167},{"name":"package.json","path":"packages/sync/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/package.json","title":"Sync Skill","category":"anthropic-skill","format":"json","content":"# Sync Skill\n\nPath: `packages/sync/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/package.json)","tokens":300,"sizeBytes":167},{"name":"tsconfig.json","path":"packages/sync/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/tsconfig.json","title":"Sync Skill","category":"anthropic-skill","format":"json","content":"# Sync Skill\n\nPath: `packages/sync/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/tsconfig.json)","tokens":300,"sizeBytes":169},{"name":"CHANGELOG.md","path":"packages/ui/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/CHANGELOG.md","title":"Ui Skill","category":"anthropic-skill","format":"markdown","content":"# Ui Skill\n\nPath: `packages/ui/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/CHANGELOG.md)","tokens":300,"sizeBytes":161},{"name":"package.json","path":"packages/ui/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/package.json","title":"Ui Skill","category":"anthropic-skill","format":"json","content":"# Ui Skill\n\nPath: `packages/ui/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/package.json)","tokens":300,"sizeBytes":161},{"name":"tsconfig.json","path":"packages/ui/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/tsconfig.json","title":"Ui Skill","category":"anthropic-skill","format":"json","content":"# Ui Skill\n\nPath: `packages/ui/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/tsconfig.json)","tokens":300,"sizeBytes":163},{"name":"package.json","path":"packages/vite-config/package.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/package.json","title":"Vite-config Skill","category":"anthropic-skill","format":"json","content":"# Vite-config Skill\n\nPath: `packages/vite-config/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/package.json)","tokens":300,"sizeBytes":188},{"name":"tsconfig.json","path":"packages/vite-config/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/tsconfig.json","title":"Vite-config Skill","category":"anthropic-skill","format":"json","content":"# Vite-config Skill\n\nPath: `packages/vite-config/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/vite-config/tsconfig.json)","tokens":300,"sizeBytes":190},{"name":"posthog-integration.mdc","path":"apps/landing/.cursor/rules/posthog-integration.mdc","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/landing/.cursor/rules/posthog-integration.mdc","title":"Cursor Rule: posthog-integration","category":"cursor-rule","format":"mdc","content":"# Cursor Rule: posthog-integration\n\nPath: `apps/landing/.cursor/rules/posthog-integration.mdc`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/apps/landing/.cursor/rules/posthog-integration.mdc)","tokens":300,"sizeBytes":237},{"name":"CLAUDE.md","path":"CLAUDE.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/CLAUDE.md","title":"Claude Agent Guidelines & System Prompt","category":"claude-rule","format":"markdown","content":"# Claude Agent Guidelines & System Prompt\n\nPath: `CLAUDE.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/CLAUDE.md)","tokens":300,"sizeBytes":162},{"name":"README.md","path":"packages/agent/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/README.md","title":"agent Documentation","category":"plugin-manifest","format":"markdown","content":"# agent Documentation\n\nPath: `packages/agent/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/agent/README.md)","tokens":300,"sizeBytes":172},{"name":"README.md","path":"packages/app/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/README.md","title":"app Documentation","category":"plugin-manifest","format":"markdown","content":"# app Documentation\n\nPath: `packages/app/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/app/README.md)","tokens":300,"sizeBytes":166},{"name":"README.md","path":"packages/blobs/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/README.md","title":"blobs Documentation","category":"plugin-manifest","format":"markdown","content":"# blobs Documentation\n\nPath: `packages/blobs/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/blobs/README.md)","tokens":300,"sizeBytes":172},{"name":"README.md","path":"packages/constants/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/README.md","title":"constants Documentation","category":"plugin-manifest","format":"markdown","content":"# constants Documentation\n\nPath: `packages/constants/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/constants/README.md)","tokens":300,"sizeBytes":184},{"name":"README.md","path":"packages/data/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/README.md","title":"data Documentation","category":"plugin-manifest","format":"markdown","content":"# data Documentation\n\nPath: `packages/data/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/data/README.md)","tokens":300,"sizeBytes":169},{"name":"README.md","path":"packages/recorder/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/README.md","title":"recorder Documentation","category":"plugin-manifest","format":"markdown","content":"# recorder Documentation\n\nPath: `packages/recorder/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/recorder/README.md)","tokens":300,"sizeBytes":181},{"name":"README.md","path":"packages/server/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/README.md","title":"server Documentation","category":"plugin-manifest","format":"markdown","content":"# server Documentation\n\nPath: `packages/server/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/server/README.md)","tokens":300,"sizeBytes":175},{"name":"README.md","path":"packages/skills/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/README.md","title":"skills Documentation","category":"plugin-manifest","format":"markdown","content":"# skills Documentation\n\nPath: `packages/skills/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/skills/README.md)","tokens":300,"sizeBytes":175},{"name":"README.md","path":"packages/sqlite/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/README.md","title":"sqlite Documentation","category":"plugin-manifest","format":"markdown","content":"# sqlite Documentation\n\nPath: `packages/sqlite/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sqlite/README.md)","tokens":300,"sizeBytes":175},{"name":"README.md","path":"packages/svelte-utils/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/README.md","title":"svelte-utils Documentation","category":"plugin-manifest","format":"markdown","content":"# svelte-utils Documentation\n\nPath: `packages/svelte-utils/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/svelte-utils/README.md)","tokens":300,"sizeBytes":193},{"name":"README.md","path":"packages/sync/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/README.md","title":"sync Documentation","category":"plugin-manifest","format":"markdown","content":"# sync Documentation\n\nPath: `packages/sync/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/sync/README.md)","tokens":300,"sizeBytes":169},{"name":"README.md","path":"packages/ui/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/README.md","title":"ui Documentation","category":"plugin-manifest","format":"markdown","content":"# ui Documentation\n\nPath: `packages/ui/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/README.md)","tokens":300,"sizeBytes":163},{"name":"README.md","path":"packages/ui/src/section-header/README.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/src/section-header/README.md","title":"section-header Documentation","category":"plugin-manifest","format":"markdown","content":"# section-header Documentation\n\nPath: `packages/ui/src/section-header/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/packages/ui/src/section-header/README.md)","tokens":300,"sizeBytes":213},{"name":"workers.md","path":".claude/commands/workers.md","rawUrl":"https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.claude/commands/workers.md","title":"Command: /workers","category":"command-prompt","format":"markdown","content":"# Command: /workers\n\nPath: `.claude/commands/workers.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.claude/commands/workers.md)","tokens":300,"sizeBytes":176}],"systemPromptSnippet":"<yakaai_skills repo=\"EpicenterHQ/epicenter\">\n<!-- File: AGENTS.md (Tokens: ~300 | Category: root-instruction) -->\n# AI Agent Protocol & Instructions\n\nPath: `AGENTS.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/AGENTS.md)\n\n<!-- File: docs/architecture.md (Tokens: ~300 | Category: project-spec) -->\n# docs - System Architecture & Module Boundaries\n\nPath: `docs/architecture.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/docs/architecture.md)\n\n<!-- File: .agents/skills/agent-goal/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# agent-goal\n\nPath: `.agents/skills/agent-goal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-goal/SKILL.md)\n\n<!-- File: .agents/skills/agent-instructions/evals/routing.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Evals Skill\n\nPath: `.agents/skills/agent-instructions/evals/routing.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/evals/routing.json)\n\n<!-- File: .agents/skills/agent-instructions/references/composition-audit.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/agent-instructions/references/composition-audit.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/composition-audit.md)\n\n<!-- File: .agents/skills/agent-instructions/references/evaluation.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/agent-instructions/references/evaluation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/evaluation.md)\n\n<!-- File: .agents/skills/agent-instructions/references/instruction-placement.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/agent-instructions/references/instruction-placement.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/references/instruction-placement.md)\n\n<!-- File: .agents/skills/agent-instructions/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# agent-instructions\n\nPath: `.agents/skills/agent-instructions/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/agent-instructions/SKILL.md)\n\n<!-- File: .agents/skills/arktype/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# arktype\n\nPath: `.agents/skills/arktype/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/arktype/SKILL.md)\n\n<!-- File: .agents/skills/asymmetric-wins/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# asymmetric-wins\n\nPath: `.agents/skills/asymmetric-wins/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/asymmetric-wins/SKILL.md)\n\n<!-- File: .agents/skills/attach-primitive/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# attach-primitive\n\nPath: `.agents/skills/attach-primitive/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/attach-primitive/SKILL.md)\n\n<!-- File: .agents/skills/auth/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# auth\n\nPath: `.agents/skills/auth/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/auth/SKILL.md)\n\n<!-- File: .agents/skills/autumn/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# autumn\n\nPath: `.agents/skills/autumn/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/autumn/SKILL.md)\n\n<!-- File: .agents/skills/better-auth-best-practices/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# better-auth-best-practices\n\nPath: `.agents/skills/better-auth-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-best-practices/SKILL.md)\n\n<!-- File: .agents/skills/better-auth-security-best-practices/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# better-auth-security-best-practices\n\nPath: `.agents/skills/better-auth-security-best-practices/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/better-auth-security-best-practices/SKILL.md)\n\n<!-- File: .agents/skills/caveman/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# caveman\n\nPath: `.agents/skills/caveman/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/caveman/SKILL.md)\n\n<!-- File: .agents/skills/change-proposal/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# change-proposal\n\nPath: `.agents/skills/change-proposal/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/change-proposal/SKILL.md)\n\n<!-- File: .agents/skills/cloudflare-workers/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# cloudflare-workers\n\nPath: `.agents/skills/cloudflare-workers/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cloudflare-workers/SKILL.md)\n\n<!-- File: .agents/skills/code-audit/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# code-audit\n\nPath: `.agents/skills/code-audit/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/code-audit/SKILL.md)\n\n<!-- File: .agents/skills/codex-task-backlog-hygiene/agents/openai.yaml (Tokens: ~300 | Category: anthropic-skill) -->\n# Agents Skill\n\nPath: `.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/agents/openai.yaml)\n\n<!-- File: .agents/skills/codex-task-backlog-hygiene/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# codex-task-backlog-hygiene\n\nPath: `.agents/skills/codex-task-backlog-hygiene/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/codex-task-backlog-hygiene/SKILL.md)\n\n<!-- File: .agents/skills/cohesion-over-testability/references/sweep-procedure.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/cohesion-over-testability/references/sweep-procedure.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/references/sweep-procedure.md)\n\n<!-- File: .agents/skills/cohesion-over-testability/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# cohesion-over-testability\n\nPath: `.agents/skills/cohesion-over-testability/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/cohesion-over-testability/SKILL.md)\n\n<!-- File: .agents/skills/collapse-pass/references/goal-template.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/collapse-pass/references/goal-template.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/goal-template.md)\n\n<!-- File: .agents/skills/collapse-pass/references/library-refusal.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/collapse-pass/references/library-refusal.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/library-refusal.md)\n\n<!-- File: .agents/skills/collapse-pass/references/never-touch.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/collapse-pass/references/never-touch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/never-touch.md)\n\n<!-- File: .agents/skills/collapse-pass/references/periodic-monorepo-pass.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/collapse-pass/references/periodic-monorepo-pass.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/periodic-monorepo-pass.md)\n\n<!-- File: .agents/skills/collapse-pass/references/report-format.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/collapse-pass/references/report-format.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/report-format.md)\n\n<!-- File: .agents/skills/collapse-pass/references/smell-catalog.md (Tokens: ~300 | Category: anthropic-skill) -->\n# References Skill\n\nPath: `.agents/skills/collapse-pass/references/smell-catalog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/references/smell-catalog.md)\n\n<!-- File: .agents/skills/collapse-pass/SKILL.md (Tokens: ~300 | Category: anthropic-skill) -->\n# collapse-pass\n\nPath: `.agents/skills/collapse-pass/SKILL.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/EpicenterHQ/epicenter/HEAD/.agents/skills/collapse-pass/SKILL.md)\n\n<!-- ... +180 more modular skills available via /api/skills/EpicenterHQ/epicenter?path={path} -->\n</yakaai_skills>"}