implements PLN-0026 frontend-owned semantic presentation spec propagation

This commit is contained in:
bQUARKz 2026-04-02 15:05:56 +01:00
parent c00fc221be
commit 78758c1023
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
4 changed files with 47 additions and 3 deletions

View File

@ -57,3 +57,14 @@ The active PBS chapter focus is:
- `11. AST Specification.md`
- `12. Diagnostics Specification.md`
- `13. Lowering IRBackend Specification.md`
## Frontend-Owned Semantic Presentation Rule
PBS, as a frontend, owns its semantic vocabulary and semantic editor presentation contract.
That means:
- PBS semantic keys are PBS-owned contract data,
- PBS semantic highlight resources belong to PBS rather than to Studio or LSP,
- PBS publishes that contract through `FrontendSpec`,
- and Studio/LSP consume that contract without becoming owners of PBS semantic presentation assets.

View File

@ -52,6 +52,7 @@ This document depends on:
- `20. IRBackend to IRVM Lowering Specification.md`
- `21. IRVM Optimization Pipeline Specification.md`
- `docs/specs/compiler-languages/pbs/13. Lowering IRBackend Specification.md`
- the frontend-owned semantic presentation contract published through `FrontendSpec`
## 5. Canonical Shared Pipeline
@ -191,6 +192,24 @@ Those configs/contexts MUST NOT:
Filesystem-default composition MUST happen outside the pipeline core.
## 8.1 FrontendSpec-Owned Semantic Presentation Contract
`FrontendSpec` MUST remain the canonical static contract surface for frontend-owned semantic presentation metadata.
At minimum, that contract MUST allow frontend publication of:
1. stable frontend-owned `semanticKeys`,
2. frontend-owned `resources`,
3. and enough static metadata for downstream semantic consumers to derive a consumable descriptor without inventing host-owned fallback semantics.
This contract MUST NOT:
1. move frontend semantic presentation ownership into Studio,
2. move frontend semantic presentation ownership into LSP,
3. or force frontend semantic output into a shared artificial host vocabulary.
Tooling consumers such as integrated LSP and Studio MAY derive downstream descriptors from `FrontendSpec`, but they MUST treat `FrontendSpec` as the canonical source rather than a host-owned replacement contract.
## 9. Public Surface Rule
The shared compiler public surface MUST expose explicit entrypoints equivalent in meaning to:

View File

@ -46,9 +46,10 @@ The `Code Editor` workspace must assume:
- all project files remain visible in the editor workspace even when only some are frontend-relevant,
- `prometeu.json` plus the selected frontend may identify source roots worth tagging,
- the integrated frontend semantic-read phase may add diagnostics, symbols, outline-facing structure, definition, and highlight for frontend documents,
- frontend semantic presentation contract data comes from frontend-owned metadata published through `FrontendSpec`,
- and the current wave must not depend on semantic behavior to remain coherent.
This workspace may consume Studio project metadata and Studio-owned workspace framework primitives, but it must not infer a semantic-provider contract beyond keeping the path open for later integration.
This workspace may consume Studio project metadata and Studio-owned workspace framework primitives, but it must not infer a semantic-provider contract beyond the explicit frontend-owned descriptor surfaced by the integrated semantic-read phase.
This workspace must consume project tree and document data through `prometeu-vfs` rather than through editor-owned direct filesystem readers.
This workspace must consume document access policy and save capability from `prometeu-vfs` rather than rederiving editability locally.
@ -213,7 +214,10 @@ Rules:
- Opened frontend documents must be analyzed from the VFS-owned in-memory snapshot exposed through `prometeu-vfs`.
- Unopened frontend documents may be analyzed from filesystem-backed state exposed through the same `prometeu-vfs` boundary.
- Non-frontend highlight may remain Studio-local in this phase.
- Frontend highlight must come from the integrated LSP semantic-read phase and use frontend-owned color semantics.
- Frontend highlight must come from the integrated LSP semantic-read phase and use frontend-owned semantic presentation contract data derived from `FrontendSpec`.
- Frontend semantic presentation resources must remain frontend-owned and must not be replaced by a Studio-owned generic fallback theme.
- When semantic presentation descriptor data or usable frontend resources are absent, the workspace must continue without semantic highlight for that frontend document.
- The workspace must not surface this condition as a product-facing editor error.
- The workspace must not treat semantic-read over editorial snapshots as authorization for frontend save, mutation, or build participation.
## Status Bar Rules

View File

@ -39,6 +39,7 @@ The integrated semantic-read phase must assume:
- frontend-scoped documents remain hard `read-only`,
- editable non-frontend documents remain governed by the controlled write wave,
- `FrontendSpec.allowedExtensions` remains the source of truth for frontend scope,
- `FrontendSpec` is the canonical source of frontend semantic presentation contract data,
- `prometeu-vfs` owns document state, snapshots, persistence, and access policy,
- and semantic-read over editorial snapshots must remain separate from build-facing ownership.
@ -58,6 +59,7 @@ Rules:
- `prometeu-vfs` owns document state, access policy, editorial snapshots, and persistence.
- `prometeu-lsp` is a semantic consumer above `prometeu-vfs`.
- the Studio `Code Editor` owns UX surfaces that render semantic-read output.
- each frontend owns its semantic vocabulary and semantic presentation resources.
- build-facing document ownership remains outside this phase.
`prometeu-lsp` must not become the owner of:
@ -65,6 +67,7 @@ Rules:
- save,
- persistence,
- document access policy,
- frontend semantic presentation assets,
- or frontend edit-right release.
## Document Source-of-Truth Rules
@ -88,7 +91,14 @@ The minimum semantic capability set of this phase must include:
## Highlight Ownership Rules
- frontend highlight must come from semantic information provided through `prometeu-lsp`;
- frontend highlight must use frontend-owned color semantics rather than a Studio-local fallback token scheme;
- frontend highlight must use frontend-owned semantic presentation contract data derived from `FrontendSpec`;
- `prometeu-lsp` must expose a dedicated semantic presentation descriptor derived from the resolved `FrontendSpec`;
- that descriptor must remain simple and include frontend-owned `semanticKeys` plus frontend-owned `resources` in the same message surface;
- `prometeu-lsp` must not collapse frontend semantic keys into host-owned generic categories;
- Studio must project semantic keys mechanically to CSS classes without semantic translation;
- frontend semantic presentation resources must remain under frontend `resources/` and be resolved like ordinary Java resources;
- when semantic presentation descriptor data or usable resources are absent, Studio must continue without semantic highlight;
- this condition must not become a product-facing Studio error and may at most produce normal development logs;
- non-frontend highlight may remain on the existing Studio-local highlighting path in this phase.
## Packaging Rules