- Never add
Co-Authored-Bylines to git commit messages. - Use
varinstead ofconst/let. No arrow functions. - Server-side: CommonJS (
require). Client-side: ES modules (import). - Never commit, create PRs, merge, or comment on issues automatically. Only do these when explicitly asked.
- All user-facing messages, code comments, and commit messages must be in English only.
- Every commit must strictly follow the Angular Commit Convention. This requirement is mandatory with no exceptions, including small fixes, generated changes, and follow-up commits.
- When the user explicitly requests a commit, always invoke and follow the
angular-commitskill before staging or committing. Never rungit commitwithout using that skill. - Commit subjects must use either
<type>: <summary>or<type>(<scope>): <summary>, wheretypeis one offeat,fix,docs,chore,refactor,perf,test,style,ci, orbuild. Do not use vague or non-conforming subjects such asupdate,changes,fix stuff, or bare prose. - Breaking changes must use
!after the type or scope, or include aBREAKING CHANGE:footer. Commit messages must remain in English and must never includeCo-Authored-Bylines. - Never use browser-native
alert(),confirm(), orprompt(). Always use custom JS dialogs/modals instead. - When rebuilding daemon config (e.g.
restartDaemonFromConfig()), always useObject.assign({}, lastConfig, overrides)to preserve all existing settings. Never reconstruct config by manually listing fields. - Before adding new code, read docs/guides/MODULE_MAP.md to find the right file. Never add inline logic to
project.jshandleMessage. Keep modules under 500 lines. - Never use
localStoragefor user settings or preferences. All settings must be stored server-side (via WebSocket messages or REST API) so they persist across devices and browsers. - Client modules (
lib/public/modules/): state goes in store.js (zustand-like), WS via ws-ref.js, functions via direct import. Never usevar _ctx = null/initXxx(ctx). See docs/guides/CLIENT_MODULE_DEPS.md.