···24deciduous commands
25```
2627-**Branch-scoped context**: If working on a feature branch, filter nodes to see only decisions relevant to this branch. Main branch nodes are tagged with `[branch: main]`.
02829## Step 1.5: Audit Graph Integrity
30···115deciduous sync # Do this frequently!
116```
117118-**When to use `--prompt`:** On root goals (always) and when user gives new direction mid-stream. Downstream nodes inherit context via edges.
0119120---
121
···24deciduous commands
25```
2627+**Branch-scoped context**: If working on a feature branch, filter nodes to see only decisions
28+relevant to this branch. Main branch nodes are tagged with `[branch: main]`.
2930## Step 1.5: Audit Graph Integrity
31···116deciduous sync # Do this frequently!
117```
118119+**When to use `--prompt`:** On root goals (always) and when user gives new direction mid-stream.
120+Downstream nodes inherit context via edges.
121122---
123
+6-3
.claude/commands/decision.md
···6061## CRITICAL: Capture VERBATIM User Prompts
6263-**Prompts must be the EXACT user message, not a summary.** When a user request triggers new work, capture their full message word-for-word.
06465**BAD - summaries are useless for context recovery:**
66···102103## Branch-Based Grouping
104105-**Nodes are automatically tagged with the current git branch.** This enables filtering by feature/PR.
0106107### How It Works
108···241242## Multi-User Sync
243244-**Problem**: Multiple users work on the same codebase, each with a local `.deciduous/deciduous.db` (gitignored). How to share decisions?
0245246**Solution**: jj-inspired dual-ID model. Each node has:
247
···6061## CRITICAL: Capture VERBATIM User Prompts
6263+**Prompts must be the EXACT user message, not a summary.** When a user request triggers new work,
64+capture their full message word-for-word.
6566**BAD - summaries are useless for context recovery:**
67···103104## Branch-Based Grouping
105106+**Nodes are automatically tagged with the current git branch.** This enables filtering by
107+feature/PR.
108109### How It Works
110···243244## Multi-User Sync
245246+**Problem**: Multiple users work on the same codebase, each with a local `.deciduous/deciduous.db`
247+(gitignored). How to share decisions?
248249**Solution**: jj-inspired dual-ID model. Each node has:
250
···1-import path from 'node:path';
2import { Database } from 'bun:sqlite';
034import { defineRelations } from 'drizzle-orm';
5import { drizzle } from 'drizzle-orm/bun-sqlite';
···01import { Database } from 'bun:sqlite';
2+import path from 'node:path';
34import { defineRelations } from 'drizzle-orm';
5import { drizzle } from 'drizzle-orm/bun-sqlite';
+1-1
packages/danaus/src/actors/db/index.ts
···1-import path from 'node:path';
2import { Database } from 'bun:sqlite';
034import { defineRelations } from 'drizzle-orm';
5import { drizzle } from 'drizzle-orm/bun-sqlite';
···01import { Database } from 'bun:sqlite';
2+import path from 'node:path';
34import { defineRelations } from 'drizzle-orm';
5import { drizzle } from 'drizzle-orm/bun-sqlite';
+1-1
packages/danaus/src/auth/web.ts
···1-import { createHmac, timingSafeEqual, type KeyObject } from 'node:crypto';
2import type { BunRequest, CookieInit } from 'bun';
034/**
5 * web session cookie name.
···01import type { BunRequest, CookieInit } from 'bun';
2+import { createHmac, timingSafeEqual, type KeyObject } from 'node:crypto';
34/**
5 * web session cookie name.
+1-1
packages/danaus/src/identity/db/index.ts
···1-import path from 'node:path';
2import { Database } from 'bun:sqlite';
034import { drizzle } from 'drizzle-orm/bun-sqlite';
5import { migrate } from 'drizzle-orm/bun-sqlite/migrator';
···01import { Database } from 'bun:sqlite';
2+import path from 'node:path';
34import { drizzle } from 'drizzle-orm/bun-sqlite';
5import { migrate } from 'drizzle-orm/bun-sqlite/migrator';
+1-1
packages/danaus/src/sequencer/db/index.ts
···1-import path from 'node:path';
2import { Database } from 'bun:sqlite';
034import { drizzle } from 'drizzle-orm/bun-sqlite';
5import { migrate } from 'drizzle-orm/bun-sqlite/migrator';
···01import { Database } from 'bun:sqlite';
2+import path from 'node:path';
34import { drizzle } from 'drizzle-orm/bun-sqlite';
5import { migrate } from 'drizzle-orm/bun-sqlite/migrator';
···3334### with @atcute/lex-cli
3536-when building your own lexicons that reference these types, configure lex-cli to import from this package:
03738```ts
39// file: lex.config.js
···3334### with @atcute/lex-cli
3536+when building your own lexicons that reference these types, configure lex-cli to import from this
37+package:
3839```ts
40// file: lex.config.js
···1import type {} from '@atcute/lexicons';
2-3-import * as v from '@atcute/lexicons/validations';
4-5import type {} from '@atcute/lexicons/ambient';
067const _mainSchema = /*#__PURE__*/ v.procedure('local.danaus.account.createAccount', {
8 params: null,
···1import type {} from '@atcute/lexicons';
0002import type {} from '@atcute/lexicons/ambient';
3+import * as v from '@atcute/lexicons/validations';
45const _mainSchema = /*#__PURE__*/ v.procedure('local.danaus.account.createAccount', {
6 params: null,
···1import type {} from '@atcute/lexicons';
2-3import * as v from '@atcute/lexicons/validations';
45const _repoBlobRefSchema = /*#__PURE__*/ v.object({
···1import type {} from '@atcute/lexicons';
02import * as v from '@atcute/lexicons/validations';
34const _repoBlobRefSchema = /*#__PURE__*/ v.object({
···1import type {} from '@atcute/lexicons';
2-3-import * as v from '@atcute/lexicons/validations';
4-5import type {} from '@atcute/lexicons/ambient';
067const _accountStatsSchema = /*#__PURE__*/ v.object({
8 $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('local.danaus.admin.getStats#accountStats')),
···1import type {} from '@atcute/lexicons';
0002import type {} from '@atcute/lexicons/ambient';
3+import * as v from '@atcute/lexicons/validations';
45const _accountStatsSchema = /*#__PURE__*/ v.object({
6 $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('local.danaus.admin.getStats#accountStats')),
···01import type {} from '@atcute/lexicons';
2-3import * as v from '@atcute/lexicons/validations';
4-5-import type {} from '@atcute/lexicons/ambient';
6-7-import * as ComAtprotoRepoStrongRef from '@atcute/atproto/types/repo/strongRef';
89import * as LocalDanausAdminDefs from './defs.js';
10
···1+import * as ComAtprotoRepoStrongRef from '@atcute/atproto/types/repo/strongRef';
2import type {} from '@atcute/lexicons';
3+import type {} from '@atcute/lexicons/ambient';
4import * as v from '@atcute/lexicons/validations';
000056import * as LocalDanausAdminDefs from './defs.js';
7
···01import type {} from '@atcute/lexicons';
2-3import * as v from '@atcute/lexicons/validations';
4-5-import type {} from '@atcute/lexicons/ambient';
6-7-import * as ComAtprotoRepoStrongRef from '@atcute/atproto/types/repo/strongRef';
89import * as LocalDanausAdminDefs from './defs.js';
10
···1+import * as ComAtprotoRepoStrongRef from '@atcute/atproto/types/repo/strongRef';
2import type {} from '@atcute/lexicons';
3+import type {} from '@atcute/lexicons/ambient';
4import * as v from '@atcute/lexicons/validations';
000056import * as LocalDanausAdminDefs from './defs.js';
7