2.2 KiB
At the start of every new session, run damem recall in the terminal and treat
its output as the context for this repository. If the damem command is not
found, read INSTALL.md
and follow it before reasoning or responding.
Pull requests
Land every change through a pull request. Immediately after creating one,
comment @bot to request an AI-bot review. Wait for green CI and the bot's
approval on the current head before merging. Never merge without the user's
explicit permission.
Runtime and checks
The action's TypeScript runs directly on the job image's Node.js (24.2 or
newer), which strips the types itself: there is no build step and no runtime
dependency. Keep the sources to erasable syntax and .ts imports, which
tsconfig.json enforces. Checks use Vite+: vp check formats, lints, and
type-checks, and vp test runs Vitest. Unit tests sit next to the code as
src/*.test.ts; repository-level tests live in tests/.
An alias in package.json imports owns its target: a folder's index.ts
owns that folder and everything below it, any other file owns only that file.
No file may be owned by 2 aliases. Outside an area, only the exact alias
reaches it (no deeper # specifier, no relative path); inside it, relative
imports of siblings and subfolders are free. ../ is banned in every file
(import/no-relative-parent-imports). The one alias is #testing
(./src/testing.ts): every test imports it by alias, and tests/ reaches
src/ only through it. Other src/ files import ./ siblings freely.
scripts/ is flat: one file per tool, no subfolders and no index.ts
(barrels live only in src/), imported directly by file path.
The only config files are package.json, tsconfig.json, and
vite.config.ts, plus package-lock.json. Repo-local lint rules and the rule
list live in scripts/project-lint.ts. Lint disable comments are not allowed;
fix the source instead.
The composite action uses npm only to install the externally distributed Claude Code, Codex, and OpenCode command-line tools, plus Deno for agents that check Deno-based repositories; do not treat those vendor executables as repository TypeScript dependencies.