Consumers need one contract.
Contracts and edge cases
Platform spec article
Contracts and edge cases
Spec standingStandard
-
Hub authority
Context
Decision
Hub owns Project.proj normative text.
Consequences
Mod/Template on hub.
Verification anchors
manifest tests.
-
Mod and Template types
Context
Discriminate project kinds.
Decision
May declare type Mod or Template; hosts use Host + corelib.
Consequences
Links to mods/scaffolding.
Verification anchors
project fixtures.
- Contracts and edge cases Strict guarantees and failure modes for Mod project manifests.
- Design model Conceptual model for `Project manifest contract` and its subsystem boundaries.
- Examples Concrete examples for `Project manifest contract` decisions and usage patterns.
- FAQ and troubleshooting Project manifest tooling FAQ.
- Flow and algorithm Manifest validation and Mod package discovery flow.
- Project link libraries Normative project.link block for Extern library resolution at link time (v0.3).
- Verification and traceability Verification for tooling-side project manifest contracts.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Contracts
Section titled “Contracts”Modmust be explicit — Compiler-mod contracts (Collector,Generator,Analyzer,Rewriter,AttributeGenerator) are valid only intype: Modprojects.- No host targets on Mod projects —
Modmanifests must not declare App/Lib/Testtargetblocks. - Transitive discovery — Host compilations auto-load all transitive
Moddependencies from the resolved graph. - Scope via Collector — Target narrowing is declared by
Collectorcontracts, not manifest attach metadata. - AOT-only execution — Mod packages compile to AOT artifacts; no compile-time JIT path is normative.
Edge cases
Section titled “Edge cases”- Invalid
project.modkeys — Unknown keys error with stable codes (E1801–E1810). - Capability denial — Effects without granted capability fail with E1821–E1835 diagnostics.
- Generator round exhaustion — Exceeding
maxGeneratorRoundsis a hard error, not a silent partial program. - Conflicting typed contributions — Merge failures use E1836–E1850 and leave syntax unchanged.