3.5 KiB
3.5 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0107 | multi-frontend-compiler-vs-language-services | Specify frontend compiler and editorial capability boundary | done | 2026-07-15 |
|
|
Briefing
DEC-0041 makes compilation mandatory and editorial language services optional for every frontend. This plan updates the normative compiler-facing documentation so future implementation work has a precise boundary to follow.
Objective
Document the frontend provider contract: compiler capability is required, editorial capabilities are optional, and absent editorial support must not invalidate build, analyze, compile, or backend flows.
Dependencies
- Accepted decision:
DEC-0041. - Existing
FrontendProvider.compiler()andFrontendProvider.languageService()API shape. - Existing compiler pipeline entrypoint specification.
Scope
- Update compiler specs to state that
FrontendProvider.compiler()is the required frontend capability. - Define
FrontendProvider.languageService()as the optional editorial capability boundary. - Document expected fallback behavior for absent editorial capabilities at the compiler/LSP boundary.
- Document that build/analyze diagnostics are compiler diagnostics, while editor diagnostics are optional editorial behavior.
- Add a short capability vocabulary for completion, hover, definition, signature help, semantic tokens, formatting, rename, and code actions without requiring all of them to exist now.
Non-Goals
- Implement Java API changes.
- Migrate PBS editor assistance.
- Change LSP behavior.
- Split
FrontendLanguageServiceinto many top-level interfaces. - Choose a plugin or process model for external frontends.
Execution Method
- Update
docs/specs/compiler/23. Compiler Pipeline Entry Points Specification.mdwith a subsection for frontend provider capability boundaries. - State that compiler entrypoints must depend on the compiler capability only and must not require editorial services.
- Define optional editorial capabilities as host-facing editor assistance, not backend-facing compilation requirements.
- Record fallback semantics: absent collection-shaped editorial results are empty, absent scalar results are neutral/absent, and protocol unsupported states are explicit where available.
- Document diagnostics ownership: build/analyze diagnostics are compiler contract output; editor diagnostics may reuse compiler analysis but are not required for frontend validity.
- Add cross-references to
DEC-0041and existing frontend provider docs or lessons where appropriate.
Acceptance Criteria
- The compiler spec explicitly separates required compiler capability from optional editorial capability.
- The spec states that compile-capable frontends with no language service are valid.
- The spec states that absent editorial capability is not a compiler failure.
- The spec does not require JSON, RPC, plugin loading, out-of-process frontends, or a wire format.
- The spec keeps
FrontendLanguageServiceaggregated for now and does not mandate premature feature-interface splitting.
Tests
- Documentation-only plan: run
discussion validateafter updates. - If markdown/spec linting exists locally, run the relevant docs validation task.
- Future implementation tests are delegated to
PLN-0110.
Affected Artifacts
docs/specs/compiler/23. Compiler Pipeline Entry Points Specification.mddiscussion/workflow/decisions/DEC-0041-separate-frontend-compilation-from-editorial-language-services.md- This plan.