The root
authentication.jadpo, policy.jadpo, flags.jadpo, jadpo.lock, ignored_suggestions.jadpo_record, taught_suggestions.jadpo_record, domains/, shared/, packages/, database/, api/,…
- The root holds only these entries:
app.jadpo,config.jadpo,authentication.jadpo,policy.jadpo,flags.jadpo,jadpo.lock,ignored_suggestions.jadpo_record,taught_suggestions.jadpo_record,domains/,shared/,packages/,database/,api/,acceptances/,translations/,tests/andbuild/. jadpo suggest ignorewrites the suggestions a team ignores, andjadpo suggest foundthe patterns it taught (Suggestions).- The hidden
.jadpo/folder holds local, untracked state and is never read as source. packages/holds only installed packages, each inpackages/<name>/<version>/. They are committed, read-only, and checked against their digest injadpo.lock. Everything the app's authors wrote lives indomains/andshared/, whatever kind it is, so the app's own integrations are inshared/providers/(Where packages live). A package is laid out asshared/is, under the same rules.app.jadponames the Jadpo release line the project is written for, asjadpo: "0.1"inapplication { }. It is the major and minor numbers as text, the same form a package's index uses for its own (The package format). It is a line, not a minimum: while Jadpo is at 0.x, a minor release may break apps, so the line is what must match, and a release that only fixes something stays on its line. The installedjadporuns the newest release of that line it keeps or can fetch, andjadpo.lockmay pin the exact release for reproducible builds (Which jadpo runs). Ajadpothat can't hand the project to that release refuses it with an error alone, naming the release to install:toolchain.version_newerwhen it is on an earlier line, rather than misread what a later version added, andtoolchain.version_olderwhen it is on a later line, rather than compile the project silently. Anything but a major and minor number istoolchain.version_invalid. If the line is left out, nothing is checked.jadpo newwrites the line of thejadpothat ran it (Thejadpocommand).- The root
translations/holds only the app's wording for text it didn't write, one<locale>.jadpofile each, grouped by owner:jadpo: { }for Jadpo's own text, a library package's name for its text. An application's own messages live in the domain that uses them, or inshared/translations/(Translations as messages). - A
.jadpofile anywhere else is an error. Folders with no.jadpofiles (docs/,.github/) are ignored. - There is no
env.jadpo.config.jadpodeclares every setting. Values come from the platform's environment in production and from one git-ignored.env.localfile locally, with secrets entered throughjadpo config set. - A single file handed to the compiler on its own, such as a test case or a snippet in these docs, is checked as one implicit domain with the layout rules off.
Markdown for agents: /docs/the-root.md.Built from Jadpo main at a707efb.