1.7 KiB
1.7 KiB
Agent Instructions
Quick Reference
- Default branch:
dev - Regenerate JS SDK:
./packages/sdk/js/script/build.ts - Always use parallel tools when applicable
Style Guide
General Principles
- Keep things in one function unless composable or reusable
- Avoid
try/catchwhere possible - Avoid using the
anytype - Use Bun APIs when possible (e.g.,
Bun.file()instead offs.existsSync()) - For sync file reads, use
readFileSyncfromfs(Bun.file is async-only) - Avoid generated file artifacts - prefer build-time
defineglobals for bundled data
Naming
Prefer single word variable names. Only use multiple words if necessary.
// Good
const foo = 1
const bar = 2
// Bad
const fooBar = 1
const barBaz = 2
Reduce total variable count by inlining when a value is only used once.
// Good
const journal = await Bun.file(path.join(dir, "journal.json")).json()
// Bad
const journalPath = path.join(dir, "journal.json")
const journal = await Bun.file(journalPath).json()
Destructuring
Avoid unnecessary destructuring. Use dot notation to preserve context.
// Good
obj.a
obj.b
// Bad
const { a, b } = obj
Variables
Prefer const over let. Use ternaries or early returns instead of reassignment.
// Good
const foo = condition ? 1 : 2
// Bad
let foo
if (condition) foo = 1
else foo = 2
Control Flow
Avoid else statements. Prefer early returns.
// Good
function foo() {
if (condition) return 1
return 2
}
// Bad
function foo() {
if (condition) return 1
else return 2
}
Testing
- Avoid mocks as much as possible
- Test actual implementation, do not duplicate logic into tests