diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..7f94303 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,65 @@ +# siren-node — Agent Instructions + +Read this file at the start of every session. It is deliberately thin: it tells +you where the real context lives, not what the context is. Standards, patterns, +and anti-patterns live in the Navigator knowledgebase, not here. + +## What This Repo Is + +Official Siren SDK for Node.js and TypeScript — records affiliate and +incentive events (sales, refunds, site visits) and verifies signed webhooks +against the Siren API. Zero-runtime-dependency library published to npm as +`@novatorius/siren`; built with tsup, tested with Vitest. + +- **Initiative:** `siren` (declared in `navigator.yaml`) +- **Repository:** `Novatorius/siren-node` + +## Before Coding: Load the KB Context + +Repo standards live in the Navigator KB, referenced from `knowledgeDependencies` +in `navigator.yaml`. They are not in your training data. + +1. If `.claude/kb-context.md` exists, read it. +2. If it doesn't, generate it, then read it: + +```bash +navigator kb context +``` + +Do not skip this step. For targeted lookups afterwards: + +```bash +navigator kb search "" --initiative=siren --json +navigator kb show +``` + +## Verification + +The `ci` block in `navigator.yaml` is the contract. Run its commands before and +after every change and leave them green: + +```bash +npm ci # ci.setup +npm test # ci.test +npm run typecheck # ci.lint +``` + +What "done" means (PR audit, testing tiers, UAT proof) is defined in the KB: +`global-definition-of-done`. Test-modification rules: +`global-unit-testing-standards-modifying-existing-tests`. Both load via kb context. + +## Session End + +Journal early and often, not just at the end — journals are the update feed; +discovery docs (Navigator sources) hold current state. Conventions live in the +KB: `journaling-at-novatorius` and `discovery-process`. Quick path: the `/log` +skill, or: + +```bash +navigator journal submit "" "" \ + --initiative=siren --tags=siren-node --json +``` + +If this session produced decisions or durable understanding, that is discovery — +capture it per `discovery-process` (journal + charter drafts), don't let it +evaporate into chat history. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..5d30268 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +Read AGENTS.md. diff --git a/navigator.yaml b/navigator.yaml new file mode 100644 index 0000000..def5a53 --- /dev/null +++ b/navigator.yaml @@ -0,0 +1,16 @@ +initiative: siren +ci: + setup: npm ci + test: npm test + lint: npm run typecheck +knowledgeDependencies: + - initiative: phpnomad + description: "Org-wide engineering doctrine" + critical: + - global-definition-of-done + - global-failure-and-logging-doctrine + - global-unit-testing-standards-modifying-existing-tests + - global-taxonomy-and-sdk-doctrine + - global-integration-testing-standards-introduction + - global-e2e-testing-standards-introduction + - global-pattern-decidability-doctrine