Expect humans to use /do to start work.
Emanote sites may use a single language, but that language is not necessarily English. When adding or changing user-facing strings in default templates, default JavaScript, or site-authored JavaScript, treat the change as i18n work:
- Keep literal fallback strings in code only as fallbacks.
- Add or update the canonical string keys under
template.i18ninemanote/default/index.yamlfor every built-in language. - In JavaScript, read strings through
_emanote-static/js/i18n.jshelpers such astextormessageinstead of hard-coding visible UI text. - Add or update e2e coverage when the string is part of visible default UI chrome.
Emanote depends on various dependencies (flake.nix inputs). When work requires changes to a dependency:
- Clone the dependency under
~/code(if not already there) and create a branch there. - Do the work in the dependency repo and open a PR against it.
- The dependency PR is not a shortcut. It MUST go through the full
/doworkflow exactly as Emanote PRs do — this is non-negotiable. In particular:- Run
/code-policeon the dependency PR before requesting review. - Run
/hickeyand/lowyon the dependency PR for structural and boundary review. - Iterate on CI and review feedback in the dependency PR until it is green and clean.
- Run
- Only after the dependency PR meets the same quality bar as an Emanote PR, wire it into Emanote by updating
flake.nixinputs to point at the dependency branch/PR.
Treat every dependency PR as a first-class PR. Skipping /code-police, /hickey, or /lowy on a dependency PR is a workflow violation, even if the change looks small.
This file was generated by APM CLI. Do not edit manually.
To regenerate: apm compile