1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! The Prompt-Generator [`Preset`] DTO.
//!
//! A `Preset` is **prompt-generator domain data**, not part of the parser
//! contract: a plugin *produces* its set (via
//! [`LanguagePlugin::presets`](crate::plugin::LanguagePlugin::presets)), but every
//! other consumer — the report snapshot, the `recommend` console/prompt views —
//! only *reads* presets and never parses anything. The type therefore lives here,
//! away from [`plugin`](crate::plugin), so those reporting consumers do not couple
//! to the parsing contract just to name this struct.
use ;
/// The language-neutral **prompt scaffolding** the Prompt-Generator wraps a
/// [`Preset`] in — the framing prose around a principle (intro, the doc-read
/// note, the task protocol, the focus line, and the dependency-cycle note).
/// **Data, not code**: it lives in the metric catalog (`builtin.toml [prompt]`)
/// and is carried in the snapshot, so the CLI's `prompt` format and the HTML
/// viewer's Prompt Generator render the same text from one source. `{id}` in a
/// `task` line is substituted with the active preset id at render time.
/// A Prompt-Generator preset (a refactoring principle): a ready-to-paste AI
/// instruction plus how the UI seeds the node selection for it. Each plugin
/// builds its own set from config via [`LanguagePlugin::presets`](crate::plugin::LanguagePlugin::presets)
/// (the common catalog plus any language-specific presets).