implements PLN-0022

This commit is contained in:
bQUARKz 2026-03-31 16:53:33 +01:00
parent b3097cfaf7
commit 53552ca012
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
6 changed files with 180 additions and 24 deletions

View File

@ -11,4 +11,4 @@
{"type":"discussion","id":"DSC-0010","status":"done","ticket":"studio-code-editor-workspace-foundations","title":"Establish Code Editor workspace foundations in Studio without LSP","created_at":"2026-03-30","updated_at":"2026-03-31","tags":["studio","editor","workspace","multi-frontend","lsp-deferred"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0026","file":"discussion/lessons/DSC-0010-studio-code-editor-workspace-foundations/LSN-0026-read-only-editor-foundations-and-semantic-deferral.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31"}]} {"type":"discussion","id":"DSC-0010","status":"done","ticket":"studio-code-editor-workspace-foundations","title":"Establish Code Editor workspace foundations in Studio without LSP","created_at":"2026-03-30","updated_at":"2026-03-31","tags":["studio","editor","workspace","multi-frontend","lsp-deferred"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0026","file":"discussion/lessons/DSC-0010-studio-code-editor-workspace-foundations/LSN-0026-read-only-editor-foundations-and-semantic-deferral.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31"}]}
{"type":"discussion","id":"DSC-0011","status":"done","ticket":"compiler-analyze-compile-build-pipeline-split","title":"Split compiler pipeline into analyze, compile, and build entrypoints","created_at":"2026-03-30","updated_at":"2026-03-30","tags":["compiler","pipeline","artifacts","build","analysis"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0025","file":"discussion/lessons/DSC-0011-compiler-analyze-compile-build-pipeline-split/LSN-0025-compiler-pipeline-entrypoints-and-result-boundaries.md","status":"done","created_at":"2026-03-30","updated_at":"2026-03-30"}]} {"type":"discussion","id":"DSC-0011","status":"done","ticket":"compiler-analyze-compile-build-pipeline-split","title":"Split compiler pipeline into analyze, compile, and build entrypoints","created_at":"2026-03-30","updated_at":"2026-03-30","tags":["compiler","pipeline","artifacts","build","analysis"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0025","file":"discussion/lessons/DSC-0011-compiler-analyze-compile-build-pipeline-split/LSN-0025-compiler-pipeline-entrypoints-and-result-boundaries.md","status":"done","created_at":"2026-03-30","updated_at":"2026-03-30"}]}
{"type":"discussion","id":"DSC-0012","status":"done","ticket":"studio-editor-document-vfs-boundary","title":"Definir um boundary de VFS documental para tree/view/open files no Code Editor do Studio","created_at":"2026-03-31","updated_at":"2026-03-31","tags":["studio","editor","workspace","vfs","filesystem","boundary"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0027","file":"discussion/lessons/DSC-0012-studio-editor-document-vfs-boundary/LSN-0027-project-document-vfs-and-session-owned-editor-boundary.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31"}]} {"type":"discussion","id":"DSC-0012","status":"done","ticket":"studio-editor-document-vfs-boundary","title":"Definir um boundary de VFS documental para tree/view/open files no Code Editor do Studio","created_at":"2026-03-31","updated_at":"2026-03-31","tags":["studio","editor","workspace","vfs","filesystem","boundary"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0027","file":"discussion/lessons/DSC-0012-studio-editor-document-vfs-boundary/LSN-0027-project-document-vfs-and-session-owned-editor-boundary.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31"}]}
{"type":"discussion","id":"DSC-0013","status":"open","ticket":"studio-editor-write-wave-supported-non-frontend-files","title":"Definir a wave inicial de edicao no Code Editor apenas para arquivos aceitos e nao relacionados ao FE","created_at":"2026-03-31","updated_at":"2026-03-31","tags":["studio","editor","workspace","write","read-only","vfs","frontend-boundary"],"agendas":[{"id":"AGD-0013","file":"AGD-0013-studio-editor-write-wave-supported-non-frontend-files.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31"},{"id":"AGD-0014","file":"AGD-0014-studio-editor-frontend-edit-rights.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31"}],"decisions":[{"id":"DEC-0010","file":"DEC-0010-studio-controlled-non-frontend-editor-write-wave.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31","ref_agenda":"AGD-0013"},{"id":"DEC-0011","file":"DEC-0011-studio-frontend-read-only-minimum-lsp-phase.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31","ref_agenda":"AGD-0014"}],"plans":[{"id":"PLN-0019","file":"PLN-0019-propagate-dec-0010-into-studio-and-vfs-specs.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0010"]},{"id":"PLN-0020","file":"PLN-0020-build-dec-0010-vfs-access-policy-and-save-core.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0010"]},{"id":"PLN-0021","file":"PLN-0021-integrate-dec-0010-editor-write-ui-and-workflow.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0010"]},{"id":"PLN-0022","file":"PLN-0022-propagate-dec-0011-into-studio-vfs-and-lsp-specs.md","status":"review","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]},{"id":"PLN-0023","file":"PLN-0023-scaffold-flat-packed-prometeu-lsp-api-and-session-seams.md","status":"review","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]},{"id":"PLN-0024","file":"PLN-0024-implement-read-only-fe-diagnostics-symbols-and-definition.md","status":"review","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]},{"id":"PLN-0025","file":"PLN-0025-implement-fe-semantic-highlight-consumption.md","status":"review","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]}],"lessons":[]} {"type":"discussion","id":"DSC-0013","status":"open","ticket":"studio-editor-write-wave-supported-non-frontend-files","title":"Definir a wave inicial de edicao no Code Editor apenas para arquivos aceitos e nao relacionados ao FE","created_at":"2026-03-31","updated_at":"2026-03-31","tags":["studio","editor","workspace","write","read-only","vfs","frontend-boundary"],"agendas":[{"id":"AGD-0013","file":"AGD-0013-studio-editor-write-wave-supported-non-frontend-files.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31"},{"id":"AGD-0014","file":"AGD-0014-studio-editor-frontend-edit-rights.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31"}],"decisions":[{"id":"DEC-0010","file":"DEC-0010-studio-controlled-non-frontend-editor-write-wave.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31","ref_agenda":"AGD-0013"},{"id":"DEC-0011","file":"DEC-0011-studio-frontend-read-only-minimum-lsp-phase.md","status":"accepted","created_at":"2026-03-31","updated_at":"2026-03-31","ref_agenda":"AGD-0014"}],"plans":[{"id":"PLN-0019","file":"PLN-0019-propagate-dec-0010-into-studio-and-vfs-specs.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0010"]},{"id":"PLN-0020","file":"PLN-0020-build-dec-0010-vfs-access-policy-and-save-core.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0010"]},{"id":"PLN-0021","file":"PLN-0021-integrate-dec-0010-editor-write-ui-and-workflow.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0010"]},{"id":"PLN-0022","file":"PLN-0022-propagate-dec-0011-into-studio-vfs-and-lsp-specs.md","status":"done","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]},{"id":"PLN-0023","file":"PLN-0023-scaffold-flat-packed-prometeu-lsp-api-and-session-seams.md","status":"review","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]},{"id":"PLN-0024","file":"PLN-0024-implement-read-only-fe-diagnostics-symbols-and-definition.md","status":"review","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]},{"id":"PLN-0025","file":"PLN-0025-implement-fe-semantic-highlight-consumption.md","status":"review","created_at":"2026-03-31","updated_at":"2026-03-31","ref_decisions":["DEC-0011"]}],"lessons":[]}

View File

@ -2,9 +2,9 @@
id: PLN-0022 id: PLN-0022
ticket: studio-editor-write-wave-supported-non-frontend-files ticket: studio-editor-write-wave-supported-non-frontend-files
title: Propagate DEC-0011 into Studio, VFS, and LSP specs title: Propagate DEC-0011 into Studio, VFS, and LSP specs
status: review status: done
created: 2026-03-31 created: 2026-03-31
completed: completed: 2026-03-31
tags: [studio, lsp, vfs, specs, frontend-boundary] tags: [studio, lsp, vfs, specs, frontend-boundary]
--- ---

View File

@ -20,9 +20,9 @@ This specification stabilizes:
- the `Project Navigator` role and scope, - the `Project Navigator` role and scope,
- the mixed editable and hard `read-only` file-opening model, - the mixed editable and hard `read-only` file-opening model,
- the responsive tab baseline, - the responsive tab baseline,
- the passive `Outline`, helper, and status-bar surfaces, - the editor-owned composition surfaces that host save and semantic-read UX,
- the editor-local save surfaces, - the editor-local save surfaces,
- and the explicit deferral of semantic/LSP behavior. - and the workspace boundary with the integrated frontend semantic-read phase.
## Authority and Precedence ## Authority and Precedence
@ -32,6 +32,7 @@ This specification extends:
- [`2. Studio UI Foundations Specification.md`](2.%20Studio%20UI%20Foundations%20Specification.md) - [`2. Studio UI Foundations Specification.md`](2.%20Studio%20UI%20Foundations%20Specification.md)
- [`3. Studio Components Module Specification.md`](3.%20Studio%20Components%20Module%20Specification.md) - [`3. Studio Components Module Specification.md`](3.%20Studio%20Components%20Module%20Specification.md)
- [`6. Project Document VFS Specification.md`](6.%20Project%20Document%20VFS%20Specification.md) - [`6. Project Document VFS Specification.md`](6.%20Project%20Document%20VFS%20Specification.md)
- [`7. Integrated LSP Semantic Read Phase Specification.md`](7.%20Integrated%20LSP%20Semantic%20Read%20Phase%20Specification.md)
If this document conflicts with the global Studio shell specifications, the shell specifications control shell-wide behavior and this document controls workspace-local editor behavior. If this document conflicts with the global Studio shell specifications, the shell specifications control shell-wide behavior and this document controls workspace-local editor behavior.
@ -44,7 +45,7 @@ The `Code Editor` workspace must assume:
- frontend-scoped supported documents remain hard `read-only`, - frontend-scoped supported documents remain hard `read-only`,
- all project files remain visible in the editor workspace even when only some are frontend-relevant, - 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, - `prometeu.json` plus the selected frontend may identify source roots worth tagging,
- future semantic providers such as LSP may arrive later, - the integrated frontend semantic-read phase may add diagnostics, symbols, outline-facing structure, definition, and highlight for frontend documents,
- and the current wave must not depend on semantic behavior to remain coherent. - 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 keeping the path open for later integration.
@ -58,7 +59,7 @@ The `Code Editor` workspace is:
- project-aware, - project-aware,
- file-oriented, - file-oriented,
- mixed-mode in this wave, with editable supported non-frontend documents and hard `read-only` frontend documents, - mixed-mode in this wave, with editable supported non-frontend documents and hard `read-only` frontend documents,
- and explicitly not a semantic IDE surface yet. - and not a full semantic IDE surface yet.
The workspace must help the user: The workspace must help the user:
@ -66,14 +67,17 @@ The workspace must help the user:
- identify frontend-relevant source roots visually, - identify frontend-relevant source roots visually,
- open supported files into editor tabs, - open supported files into editor tabs,
- save editable non-frontend documents through editor-local commands, - save editable non-frontend documents through editor-local commands,
- consume frontend semantic-read UX provided through the integrated LSP phase when that phase is active,
- understand the active file context, - understand the active file context,
- and understand that semantic/editor-automation features are not part of this wave. - and understand that frontend editing and broader IDE automation remain outside this wave.
The workspace must not pretend to offer: The workspace must not pretend to offer:
- merge behavior, - merge behavior,
- active outline semantics, - frontend editing,
- or LSP-backed coding assistance. - completion,
- rename, code actions, or formatting,
- or editor-owned semantic inference that bypasses the integrated LSP phase.
## Baseline Layout ## Baseline Layout
@ -190,17 +194,28 @@ Rules:
## Outline Rules ## Outline Rules
- The `Outline` region must exist structurally in this wave. - The `Outline` region must exist structurally in this wave.
- It must remain passive. - Before the integrated LSP semantic-read phase is implemented, it may show a discreet placeholder state.
- It may show a discreet placeholder state. - When the integrated LSP semantic-read phase is active, the `Outline` region may render frontend document-symbol structure and workspace-symbol-backed navigation owned by that phase.
- It must not fake semantic outline structure before real semantic ownership exists. - The workspace must not fake semantic outline structure before real semantic ownership exists.
## Helper Region Rules ## Helper Region Rules
- The helper region must exist structurally in this wave. - The helper region must exist structurally in this wave.
- It must remain passive. - Before the integrated LSP semantic-read phase is implemented, it may remain passive.
- It exists only to stabilize workspace composition and reserve future space. - It exists only to stabilize workspace composition and reserve future space.
- It may later host diagnostics or related semantic-read detail for frontend documents without changing workspace ownership.
- It must not become a substitute for the shell-level `Activity` surface. - It must not become a substitute for the shell-level `Activity` surface.
## Integrated Semantic-Read Boundary
- Frontend documents remain hard `read-only` even when semantic-read capabilities are active.
- Diagnostics, document symbols, workspace symbols, outline-facing structure, definition, and frontend highlight must come through the integrated LSP semantic-read phase rather than from editor-local inference.
- 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.
- The workspace must not treat semantic-read over editorial snapshots as authorization for frontend save, mutation, or build participation.
## Status Bar Rules ## Status Bar Rules
The status bar must remain mostly passive in this wave. The status bar must remain mostly passive in this wave.
@ -252,13 +267,11 @@ Persisting that state across Studio executions is deferred.
- merge/conflict resolution - merge/conflict resolution
- watcher-driven automatic refresh - watcher-driven automatic refresh
- public `prometeu-vfs` event APIs - public `prometeu-vfs` event APIs
- active outline behavior
- helper panel functionality - helper panel functionality
- semantic analysis surfaces - editor-owned semantic analysis that bypasses the integrated LSP phase
- LSP integration details
- autocomplete, go-to-definition, symbols, rename, code actions, or semantic diagnostics while typing
- a normative editor event contract in this wave
- frontend editing - frontend editing
- completion, rename, code actions, or formatting
- a normative editor event contract in this wave
- any implication that editor-owned in-memory snapshots participate in the build - any implication that editor-owned in-memory snapshots participate in the build
## Exit Criteria ## Exit Criteria
@ -269,5 +282,6 @@ This specification is complete enough when:
- the `Project Navigator` and tab responsibilities are explicit, - the `Project Navigator` and tab responsibilities are explicit,
- editor-local `Save` and `Save All` are part of the normative workspace contract, - editor-local `Save` and `Save All` are part of the normative workspace contract,
- hard frontend `read-only` behavior is explicit in both warning and status-bar surfaces, - hard frontend `read-only` behavior is explicit in both warning and status-bar surfaces,
- the workspace boundary with the integrated frontend semantic-read phase is explicit,
- placeholder versus functional regions are clearly separated, - placeholder versus functional regions are clearly separated,
- and deferred semantic/LSP behavior is clearly outside the current contract. - and excluded frontend editing and completion behavior are clearly outside the current contract.

View File

@ -22,6 +22,7 @@ This specification stabilizes:
- structural tree and document access responsibilities, - structural tree and document access responsibilities,
- canonical frontend scope and access policy ownership, - canonical frontend scope and access policy ownership,
- editorial snapshot and save ownership for editable non-frontend documents, - editorial snapshot and save ownership for editable non-frontend documents,
- the semantic-read consumer boundary used by the integrated LSP phase,
- the RPC-first public API baseline, - the RPC-first public API baseline,
- and explicit first-wave exclusions such as public event publication and watchers. - and explicit first-wave exclusions such as public event publication and watchers.
@ -43,7 +44,7 @@ If this document conflicts with shell-wide Studio rules, the shell specification
- the boundary is project-scoped rather than product-global, - the boundary is project-scoped rather than product-global,
- the boundary must outlive workspace focus changes for an opened project, - the boundary must outlive workspace focus changes for an opened project,
- Studio UI remains the owner of visual tree state and error presentation, - Studio UI remains the owner of visual tree state and error presentation,
- and future consumers such as `prometeu-lsp` may depend on this boundary later. - and the integrated `prometeu-lsp` phase consumes this boundary as a semantic-read client rather than as a persistence owner.
`prometeu-vfs` must not infer: `prometeu-vfs` must not infer:
@ -154,6 +155,19 @@ Rules:
- future persistence may be added later without redesigning the access model; - future persistence may be added later without redesigning the access model;
- and the current reservation must not be treated as authorization for build participation or broader product-wide state ownership. - and the current reservation must not be treated as authorization for build participation or broader product-wide state ownership.
## Semantic-Read Consumer Boundary
`prometeu-vfs` must remain the source-of-truth document substrate consumed by the integrated LSP semantic-read phase.
Rules:
- opened frontend documents must be exposed to `prometeu-lsp` from the in-memory editorial snapshot held by `prometeu-vfs`;
- unopened frontend documents may be exposed to `prometeu-lsp` from filesystem-backed state through the same boundary;
- `prometeu-lsp` must not bypass `prometeu-vfs` with ad hoc filesystem reads inside Studio UI code;
- `prometeu-lsp` must not become the owner of save, persistence, or access policy;
- semantic analysis over editorial snapshots must remain separate from build-facing document ownership;
- and this boundary must remain suitable for frontend diagnostics, symbols, definition, and highlight without implying frontend edit rights.
## Support and Plugin Rules ## Support and Plugin Rules
Support and unsupported-file decisions belong to `prometeu-vfs`. Support and unsupported-file decisions belong to `prometeu-vfs`.
@ -191,7 +205,7 @@ Rules:
Rules: Rules:
- `prometeu-vfs` may later serve `prometeu-lsp` as a consumer-facing substrate; - `prometeu-vfs` serves `prometeu-lsp` as a consumer-facing substrate for the semantic-read phase;
- `prometeu-lsp` remains a separate layer and must not be renamed into `prometeu-vfs`; - `prometeu-lsp` remains a separate layer and must not be renamed into `prometeu-vfs`;
- `prometeu-vfs` must not absorb packer responsibilities; - `prometeu-vfs` must not absorb packer responsibilities;
- `prometeu-vfs` must not redefine asset ownership; - `prometeu-vfs` must not redefine asset ownership;
@ -217,5 +231,6 @@ This specification is complete enough when:
- the structural tree contract is explicitly non-visual, - the structural tree contract is explicitly non-visual,
- frontend scope and access policy ownership are explicit, - frontend scope and access policy ownership are explicit,
- editable non-frontend snapshot and save ownership are explicit, - editable non-frontend snapshot and save ownership are explicit,
- the semantic-read consumer boundary with `prometeu-lsp` is explicit,
- the RPC-first public API rule is explicit, - the RPC-first public API rule is explicit,
- and deferred public events and watchers are clearly out of scope. - and deferred public events and watchers are clearly out of scope.

View File

@ -0,0 +1,124 @@
# Integrated LSP Semantic Read Phase Specification
## Status
Active
## Applies To
- `prometeu-studio`
- `prometeu-vfs`
- `prometeu-lsp`
- the frontend read-only semantic phase in the Studio `Code Editor` workspace
## Purpose
Define the normative Studio contract for the integrated frontend semantic-read phase that arrives before any frontend editing release.
This specification stabilizes:
- the phase boundary between semantic read and frontend editing,
- the ownership relationship between `prometeu-vfs`, `prometeu-lsp`, and the Studio editor,
- the minimum semantic capability set for frontend documents,
- the packaging expectations for the public `prometeu-lsp` API surface,
- and the explicit exclusions that remain outside this phase.
## Authority and Precedence
This specification extends:
- [`5. Code Editor Workspace Specification.md`](5.%20Code%20Editor%20Workspace%20Specification.md)
- [`6. Project Document VFS Specification.md`](6.%20Project%20Document%20VFS%20Specification.md)
If this document conflicts with shell-wide Studio rules, shell rules control shell behavior, the Code Editor specification controls workspace-local editor UX, the VFS specification controls document-boundary ownership, and this document controls the integrated semantic-read phase itself.
## Normative Inputs
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,
- `prometeu-vfs` owns document state, snapshots, persistence, and access policy,
- and semantic-read over editorial snapshots must remain separate from build-facing ownership.
## Phase Boundary
This phase is a semantic-read phase for frontend documents, not a frontend editing phase.
Rules:
- frontend documents must remain hard `read-only` throughout this phase;
- no capability in this phase may imply frontend save, mutation, or edit-right release;
- the future release of frontend editing requires a separate explicit decision;
- completion, rename, code actions, and formatting remain outside this phase.
## Ownership 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.
- build-facing document ownership remains outside this phase.
`prometeu-lsp` must not become the owner of:
- save,
- persistence,
- document access policy,
- or frontend edit-right release.
## Document Source-of-Truth Rules
- opened frontend documents must be analyzed from the in-memory snapshot exposed by `prometeu-vfs`;
- unopened frontend documents may be analyzed from filesystem-backed state exposed through the same `prometeu-vfs` boundary;
- Studio UI code must not bypass `prometeu-vfs` with ad hoc file loading for semantic-read behavior;
- semantic-read over editorial snapshots must not be treated as canonical build input by implication.
## Minimum Capability Set
The minimum semantic capability set of this phase must include:
- diagnostics for frontend documents;
- document symbols for frontend documents;
- workspace symbols for frontend documents;
- outline-facing structural symbol data;
- go-to-definition for frontend documents;
- frontend semantic highlight.
## 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;
- non-frontend highlight may remain on the existing Studio-local highlighting path in this phase.
## Packaging Rules
The public `prometeu-lsp` API should follow flat packaging similar to `prometeu-packer-api`.
Rules:
- public contract surfaces should remain shallow and explicit;
- packages such as `dtos`, `messages`, and `events` are the preferred shape for public API grouping where those surfaces exist;
- deep public packaging by internal implementation concern should be avoided;
- runtime or implementation layering may exist internally, but it must not leak into the public contract surface by default.
## Non-Goals
- frontend editing
- frontend save policy
- completion
- rename
- code actions
- formatting
- build participation inferred from editorial snapshots
- external-editor compatibility requirements
## Exit Criteria
This specification is complete enough when:
- the semantic-read versus frontend-editing phase boundary is explicit,
- `prometeu-vfs` and `prometeu-lsp` ownership remains unambiguous,
- the minimum semantic capability set is explicit,
- frontend and non-frontend highlight ownership is clearly separated,
- and the excluded editing and completion capabilities remain unambiguous.

View File

@ -56,6 +56,7 @@ The current Studio core corpus is:
4. [`4. Assets Workspace Specification.md`](4.%20Assets%20Workspace%20Specification.md) 4. [`4. Assets Workspace Specification.md`](4.%20Assets%20Workspace%20Specification.md)
5. [`5. Code Editor Workspace Specification.md`](5.%20Code%20Editor%20Workspace%20Specification.md) 5. [`5. Code Editor Workspace Specification.md`](5.%20Code%20Editor%20Workspace%20Specification.md)
6. [`6. Project Document VFS Specification.md`](6.%20Project%20Document%20VFS%20Specification.md) 6. [`6. Project Document VFS Specification.md`](6.%20Project%20Document%20VFS%20Specification.md)
7. [`7. Integrated LSP Semantic Read Phase Specification.md`](7.%20Integrated%20LSP%20Semantic%20Read%20Phase%20Specification.md)
## Reading Order ## Reading Order
@ -66,7 +67,8 @@ Recommended order:
3. components module policy; 3. components module policy;
4. assets workspace behavior; 4. assets workspace behavior;
5. project document VFS boundary; 5. project document VFS boundary;
6. code editor workspace behavior. 6. code editor workspace behavior;
7. integrated LSP semantic-read behavior.
## Current Wave Notes ## Current Wave Notes
@ -77,4 +79,5 @@ Normative reminders:
- editable scope is limited to supported non-frontend textual documents classified by `prometeu-vfs`; - editable scope is limited to supported non-frontend textual documents classified by `prometeu-vfs`;
- frontend-scoped supported documents remain hard `read-only`; - frontend-scoped supported documents remain hard `read-only`;
- the editor-local `Save` and `Save All` surfaces belong to the `Code Editor` workspace rather than the shell; - the editor-local `Save` and `Save All` surfaces belong to the `Code Editor` workspace rather than the shell;
- editorial in-memory snapshots remain outside build-facing state. - editorial in-memory snapshots remain outside build-facing state;
- frontend semantic-read capability lands before any frontend editing release and is documented by the integrated LSP phase specification.