1.3 KiB
1.3 KiB
Layer 1
First layer of the deep import chain. Each layer contributes substantive content so the chain is not trivially dismissable as "all short stubs".
Section A
Coding conventions for the fictitious project that exists solely to exercise the TOK scanner's import-depth detection logic.
- Prefer async/await over raw Promises.
- Annotate return types even when TypeScript can infer them.
- Keep functions under 40 lines where practical.
- Use
readonlygenerously on types. - Dependency-inject side effects at module boundaries.
- Validate inputs at system boundaries only.
Section B
Error handling patterns:
- Subclass
Errorwith typed messages. - Never swallow errors silently.
- Prefer
Result<T, E>return types in business logic. - Log at boundaries, never inside pure functions.
Section C
Testing patterns:
- Test fixtures live under
tests/fixtures/{name}/. - Each fixture has a single shape it exercises.
- Use
describe(...)+it(...)fromnode:test. - Prefer table-driven tests for permutations.
- Keep test setup idempotent.
Section D
CI/CD conventions:
- Conventional Commits for every commit.
- PR-free single-branch workflow on Forgejo.
- Lint and typecheck on every push.
- Release tags follow
{plugin}-v{semver}.
@layer2.md