AUP DSL is the authoring surface for a DSL-first app. For that kind of app, the runtime reads .aup/app.aup first and reads .aup/app.json as JSON source only when DSL is absent. When a source exists but cannot parse, fix the DSL instead of expecting JSON to mask the failure. JSON-first apps remain a supported input form.
minimal-app identifies these files as sources an author should change:
| Source | Purpose |
|---|---|
.aup/app.aup | App tree and page registration |
pages/**/layout.aup | Web page layout |
.web/components/**/component.dsl | Source for a Web-component manifest |
agents/**/agent.dsl | Source for an agent manifest |
seed/settings/**/settings.aup | Settings source |
Some JSON is generated by the recipe immediately; other .aup compatibility artifacts materialize only after arc dsl generate --write. Do not decide whether a file is authoring source just because it currently exists on disk. Inspect the recipe’s source DSL, AFS data, and generated compatibility artifacts sections first.
This model remains version-bound. Runtime compilation can expose AUP app/page/wrapper JSON virtually; only a compatibility consumer that explicitly needs on-disk output requires materialized .aup/*.json. Current source and the DSL Showcase both show that some runtime/reviewer workflows still consume JSON, so run the checks required by that consumer before deleting or ignoring an artifact.