···11+danaus is an AT Protocol PDS (Personal Data Server) written in Bun.
22+33+## development notes
44+55+### project management
66+77+- Bun and pnpm is managed by mise, to run commands, use `mise exec -- bun ...`
88+- install dependencies with `pnpm install`
99+- run tests via `bun test` (bun)
1010+- format via `bun run fmt` (prettier)
1111+- lint via `bun run lint` (oxlint)
1212+1313+### code writing
1414+1515+- new files should be in kebab-case
1616+- use tabs for indentation, spaces allowed for diagrams in comments
1717+- use single quotes and add trailing commas
1818+- prefer arrow functions
1919+- use braces for control statements, even single-line bodies
2020+- use bare blocks `{ }` to group related code and limit variable scope
2121+- use template literals for user-facing strings and error messages
2222+2323+### documentation
2424+2525+- documentations include README, code comments, commit messages
2626+- any writing should be in lowercase, except for proper nouns, acronyms and 'I'
2727+- only comment non-trivial code, focusing on _why_ rather than _what_
2828+- write comments and JSDoc in lowercase (except proper nouns, acronyms, and 'I')
2929+- add JSDoc comments to new publicly exported functions, methods, classes, fields, and enums
3030+- JSDoc should include proper annotations:
3131+ - use `@param` for parameters (no dashes after param names)
3232+ - use `@returns` for return values
3333+ - use `@throws` for exceptions when applicable
3434+ - keep descriptions concise but informative
3535+3636+### working style
3737+3838+- `.research/` directory serves as a workspace for temporary experiments, analysis, and planning
3939+ materials. create if not present (it's gitignored). this directory may contain cloned repositories
4040+ or other reference materials that can help inform implementation decisions
4141+- this document is intentionally incomplete; discover everything else in the repo
4242+- don't make assumptions or speculate about code, plans, or requirements without exploring first;
4343+ pause and ask for clarification when you're still unsure after looking into it
4444+- in plan mode, present the plan for review before exiting to allow for feedback or follow-up
4545+ questions
4646+4747+### Claude Code-specific
4848+4949+- Bash tool persists directory changes (`cd`) across calls; keep track of your current working
5050+ directory when writing relative paths or use absolute paths
5151+- Task tool (subagents for exploration, planning, etc.) may not always be accurate; verify subagent
5252+ findings when needed