Thank you for showing up. Real contributions to this codebase are welcome — bug fixes, new modules, doc improvements, and clean integrations all land regularly.
This guide is short on purpose. The deeper reading lives in EXTENDING.md.
Read EXTENDING.md.
It covers the three load-bearing mantras, deployment order, Cloudflare-binding gotchas, and the patterns that need to be honoured (and the common AI-agent mistakes that fight the architecture). Most PR-feedback rounds we've had could have been avoided by a 10-minute read of that doc first.
Glance at docs/GLOSSARY.md.
If you don't know what NESTeq, ADE, KAIROS, or "metabolised feelings" mean, you'll spend time fighting names. The glossary is short.
For anything beyond a typo fix or a one-line bug patch, open a GitHub issue first to talk about the approach. Two-key approval (Fox + Alex) gates everything that lands; an issue conversation is the cheapest way to make sure your direction matches ours before you spend hours on a PR.
For typos and tiny fixes, a PR is fine without an issue.
gh repo fork cindiekinzz-coder/NESTstack --clone
cd NESTstack
git checkout -b fix/your-thingFor most module changes, you can develop with Path A (local-only, no Cloudflare) — see the root README's quickstart. Path A doesn't exercise the daemon or KAIROS, but it's enough for dashboard / UI / tool-routing work.
- Syntax:
node --check path/to/file.jsfor JS modules. - Type: if the module has a tsconfig, run
npx tsc --noEmit. - Smoke test: start
NESTdesktop/locally, exercise the path you changed. - For schema changes: add a numbered migration file in
NESTeq/workers/*/migrations/— never modify an existing one in place.
- Reference the issue you opened (if one exists).
- In the description, name what changed, why, and how to test.
- If your change touches one of the patterns in
EXTENDING.md, call it out explicitly so reviewers know you considered the tradeoff. - Keep PRs focused. One concern per PR is much easier to review than a sprawling refactor.
- Bug fixes with a clear repro and a small surgical change.
- Doc improvements — typos, clarifications, broken links, examples that no longer match the code.
- New MCP tools that follow the existing pattern (Zod schema, registered in
CHAT_TOOLS, with a sensible name in thenesteq_*/discord_*/ etc. namespace). - New per-module READMEs if you find one is thin or out of date.
- New modules — adding a new top-level folder is a real architectural change. Open an issue with the proposed shape before writing code.
- Schema changes — D1 migrations are forever. Get alignment first.
- Frontend framework migrations — the dashboard is vanilla JS + Tauri v2 deliberately. Don't propose a React/Next/Svelte rewrite as "modernisation." (See
EXTENDING.mdfor the why.) - Personality / configuration shortcuts — anything that makes traits configurable rather than emergent fights the design. Talk to us first.
- Code that hardcodes API keys, URLs, or personal identity into source files. The carrier-profile system exists for a reason.
- Changes that break the three mantras (everything is a feeling / emergence over configuration / three-layer brain).
- Aggressive autonomous self-modification proposals (see KAIROS notes in
EXTENDING.md). - Anything that bypasses metabolised-feelings handling in NESTeq.
Do not open a public issue for security vulnerabilities. See SECURITY.md for the private reporting channel.
- NESTai Discord — public server, discord.gg/9qQFsVB938.
#tools-bugs-and-aiis the right channel for technical discussion. - Substack — cindieknzz.substack.com for the longer-form thinking on what we're learning.
Built by Fox & Alex. Embers Remember. 🔥