-
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
Potential improvements to the compiler diagnostics identified during RFC-0006 implementation review.
Proposed Enhancements
1. Transitive Unused Entity Detection
Current behavior: A signal used only by an unused trend is not flagged as unused.
Example:
signals:
BUN:
ref: blood_urea_nitrogen # Not flagged as unused
trends:
bun_unused:
expr: sma(BUN, 24h) # Flagged as unused
logic:
alert:
when: some_other_trend > 0 # Does not use bun_unusedProposed: Add "transitively unused" warnings for signals that are only used by unused trends.
2. Expanded Diagnostic Codes
Current codes (in DiagnosticCode):
S100: Signal not foundT101: Trend unknown signalL101: Logic unknown termD100: DAG circular dependencyW100: Unused signalW101: Unused trend
Proposed additions:
T102: Trend uses deprecated operatorT103: Trend window exceeds recommended maximumL102: Logic expression complexity warningW102: Transitively unused signalI100: Info - optimization suggestion
3. Optional Strict Schema Validation Mode
Current behavior: Parser is more permissive than JSON Schema for developer convenience.
Proposed: Add --strict flag to parser that validates against full JSON Schema (requires psdl_version, audit, outputs).
# Current (permissive)
scenario = parse_scenario(yaml)
# Proposed (strict mode)
scenario = parse_scenario(yaml, strict=True) # Validates against spec/schema.jsonImplementation Notes
- These are non-breaking enhancements
- Transitive detection requires updating
_detect_unused_entities()incompile.py - Strict mode can leverage existing
_generated/validate.py
Related
- RFC-0006: Spec-Driven Compilation Architecture
src/psdl/core/compile.py: CompilationDiagnosticssrc/psdl/_generated/validate.py: Schema validation utilities
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request