Files
claw/docs/superpowers/reports/2026-04-21-generated-scene-invocation-alias-generation-hardening-report.md

61 lines
2.0 KiB
Markdown

# Generated Scene Invocation Alias Generation Hardening Report
Date: 2026-04-21
Parent plan:
- `docs/superpowers/plans/2026-04-20-generated-scene-invocation-alias-generation-hardening-plan.md`
## Scope
This route implemented the first reusable alias-generation slice for generated scene deterministic manifests.
It did not change runtime dispatch scoring, service-console behavior, final materialized skill files, board assets, or full rematerialization output.
## Implementation
Changed files:
- `src/generated_scene/generator.rs`
- `tests/scene_generator_test.rs`
The generator now builds deterministic `include_keywords` from:
- the canonical scene name
- existing page-title keywords
- punctuation/connector-normalized scene names
- month/week split aliases for names containing combined `月_周累计` style wording
- compact line-loss aliases such as `台区线损` and `线损大数据`
This turns the `sweep-030-scene` debugging lesson into a reusable generation rule instead of a hand-edited `scene.toml` patch.
## Anchor Result
For `sweep-030-scene`, route-local generation now emits aliases matching real operator wording, including:
- `线损大数据 月累计线损统计分析`
- `线损大数据 周累计线损统计分析`
- `台区线损`
These aliases are generated from the scene name semantics rather than being patched directly into the final materialized skill.
## Verification
Passed:
```powershell
cargo test --test scene_generator_test generator_writes_real_sweep_030_org_dictionary_from_embedded_source -- --nocapture
cargo test --test scene_generator_modes_test -- --nocapture
```
Known existing warnings were not addressed by this route:
- callback/openxml/generated_scene `dead_code`
- `scene_generator_test.rs` `unreachable_code`
## Stop Statement
The route stops after the first reusable alias-generation slice.
It does not claim full closure of every alias gap in the 84-scene ledger bucket. The next planned step is rematerialization refresh, followed by validation refresh.