3.3 KiB
3.3 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0092 | pbs-symbol-documentation-and-hover-markdown | Specify PBS Doc attribute and markdown text block syntax | done | 2026-07-15 |
|
|
Briefing
Update the PBS normative specs so DEC-0039 is reflected before code changes begin. This plan is the specification gate for the [Doc(markdown = """...""")] feature.
Objective
Define the syntax, static semantics, AST shape, diagnostics, and stdlib documentation policy for compiler-owned PBS symbol documentation.
Dependencies
- Requires accepted decision
DEC-0039. - Must be completed before parser, semantic, LSP, and stdlib implementation plans are accepted as complete.
Scope
- Add
[Doc(markdown = """...""")]to the PBS attribute surface. - Define triple-quoted documentation text blocks as documentation-only payloads, not runtime strings.
- Define documentable named API declarations and explicitly exclude parameters.
- Define normalization, duplicate handling, invalid shape diagnostics, and non-runtime lowering rules.
Non-Goals
- Implement lexer, parser, semantics, or LSP code.
- Define general multiline runtime strings.
- Define VSCode rendering details beyond the compiler/LSP ownership boundary.
Execution Method
- Update
docs/specs/compiler-languages/pbs/3. Core Syntax Specification.mdwith the canonical[Doc(markdown = """...""")]syntax, allowed declaration sites, attribute ordering rule, and text block delimiter rules. - Update
docs/specs/compiler-languages/pbs/4. Static Semantics Specification.mdwith reservedDocvalidation, duplicate rejection, parameter exclusion, empty normalized payload rejection, and non-documentable target diagnostics. - Update
docs/specs/compiler-languages/pbs/11. AST Specification.mdwith an AST representation for documentation attributes and documentation text block payloads. - Update
docs/specs/compiler-languages/pbs/12. Diagnostics Specification.mdwith required diagnostic categories for unterminated text block, invalidDocshape, duplicateDoc, empty payload, and invalid target. - Update
docs/specs/compiler-languages/pbs/5. Manifest, Stdlib, and SDK Resolution Specification.mdwith the rule that stdlib, SDK, and interface modules use the same authoredDocsurface.
Acceptance Criteria
- Specs define all normative rules from
DEC-0039without deferring syntax or semantics to implementation judgment. - The specs explicitly state that
"""..."""is documentation-only for this feature. - The specs explicitly state that parameters never receive
[Doc]in v1. - The specs identify propagation boundaries: compiler resolves, LSP transports, editor renders.
Tests
- Run any existing spec conformance tests that validate PBS spec references.
- No code behavior tests are required in this plan.
Affected Artifacts
docs/specs/compiler-languages/pbs/3. Core Syntax Specification.mddocs/specs/compiler-languages/pbs/4. Static Semantics Specification.mddocs/specs/compiler-languages/pbs/11. AST Specification.mddocs/specs/compiler-languages/pbs/12. Diagnostics Specification.mddocs/specs/compiler-languages/pbs/5. Manifest, Stdlib, and SDK Resolution Specification.md