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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
//! Compile-time embedded framework artifacts.
//!
//! Why: `trusty-mpm install` must deploy a working set of default artifacts
//! (optimizer policy, framework instructions, user instruction stub,
//! placeholder agent/skill) without depending on files shipped alongside the
//! binary — embedding them at compile time keeps the installer a single
//! self-contained executable.
//! What: exposes each default artifact under `crates/trusty-mpm-core/assets/`
//! as a `pub const &str` via `include_str!`, plus a [`BundledArtifact`] table
//! describing the relative install path of each one.
//! Test: `cargo test -p trusty-mpm-core bundle` asserts every constant is
//! non-empty and that [`ALL`] enumerates each artifact exactly once.
/// Default token-optimizer policy installed to `hooks/optimizer.toml`.
pub const OPTIMIZER_TOML: &str = include_str!;
/// Default session-overseer policy installed to `hooks/overseer.toml`.
///
/// Overseer oversight is opt-in: the shipped policy has `enabled = false`, so
/// installing it is inert until an operator flips the flag.
pub const OVERSEER_TOML: &str = include_str!;
/// Framework launch instructions installed to `instructions/INSTRUCTIONS.md`.
///
/// This is the framework-owned artifact: `trusty-mpm install` overwrites it on
/// every run so framework upgrades take effect.
pub const FRAMEWORK_INSTRUCTIONS: &str = include_str!;
/// User-editable instruction stub installed to `instructions/CLAUDE.md`.
///
/// This is a one-time seed: the installer writes it only when absent so any
/// project-specific edits the user makes survive subsequent installs.
pub const CLAUDE_STUB: &str = include_str!;
/// Base agent — the root of every trusty-mpm inheritance chain.
pub const BASE_AGENT: &str = include_str!;
/// Base engineer agent — foundation for all engineer agents.
pub const BASE_ENGINEER: &str = include_str!;
/// Base research agent — foundation for all research agents.
pub const BASE_RESEARCH: &str = include_str!;
/// Base QA agent — foundation for all QA agents.
pub const BASE_QA: &str = include_str!;
/// Base ops agent — foundation for all ops agents.
pub const BASE_OPS: &str = include_str!;
/// Concrete general-purpose engineer agent (`extends: base-engineer`).
pub const ENGINEER_AGENT: &str = include_str!;
/// Concrete QA agent (`extends: base-qa`).
pub const QA_AGENT: &str = include_str!;
/// Concrete research agent (`extends: base-research`).
pub const RESEARCH_AGENT: &str = include_str!;
/// Concrete ops agent — local operations specialist (`extends: base-ops`).
pub const OPS_AGENT: &str = include_str!;
/// Concrete security agent (`extends: base-agent`).
pub const SECURITY_AGENT: &str = include_str!;
/// Concrete documentation agent (`extends: base-agent`).
pub const DOCUMENTATION_AGENT: &str = include_str!;
/// Concrete data-engineer agent (`extends: base-engineer`).
pub const DATA_ENGINEER_AGENT: &str = include_str!;
/// Concrete version-control agent (`extends: base-ops`).
pub const VERSION_CONTROL_AGENT: &str = include_str!;
/// Concrete ticketing agent (`extends: base-agent`).
pub const TICKETING_AGENT: &str = include_str!;
/// Concrete code-analyzer agent (`extends: base-research`).
pub const CODE_ANALYZER_AGENT: &str = include_str!;
/// Concrete python-engineer agent (`extends: base-engineer`).
pub const PYTHON_ENGINEER_AGENT: &str = include_str!;
/// Concrete typescript-engineer agent (`extends: base-engineer`).
pub const TYPESCRIPT_ENGINEER_AGENT: &str = include_str!;
/// Concrete golang-engineer agent (`extends: base-engineer`).
pub const GOLANG_ENGINEER_AGENT: &str = include_str!;
/// Concrete rust-engineer agent (`extends: base-engineer`).
pub const RUST_ENGINEER_AGENT: &str = include_str!;
/// Concrete java-engineer agent (`extends: base-engineer`).
pub const JAVA_ENGINEER_AGENT: &str = include_str!;
/// Concrete php-engineer agent (`extends: base-engineer`).
pub const PHP_ENGINEER_AGENT: &str = include_str!;
/// Concrete ruby-engineer agent (`extends: base-engineer`).
pub const RUBY_ENGINEER_AGENT: &str = include_str!;
/// Concrete react-engineer agent (`extends: base-engineer`).
pub const REACT_ENGINEER_AGENT: &str = include_str!;
/// Concrete nextjs-engineer agent (`extends: base-engineer`).
pub const NEXTJS_ENGINEER_AGENT: &str = include_str!;
/// Concrete svelte-engineer agent (`extends: base-engineer`).
pub const SVELTE_ENGINEER_AGENT: &str = include_str!;
/// Concrete web-qa agent (`extends: base-qa`).
pub const WEB_QA_AGENT: &str = include_str!;
/// Concrete api-qa agent (`extends: base-qa`).
pub const API_QA_AGENT: &str = include_str!;
// --- Increment 3 agents ---
/// Concrete javascript-engineer agent (`extends: base-engineer`).
pub const JAVASCRIPT_ENGINEER_AGENT: &str = include_str!;
/// Concrete phoenix-engineer agent — Elixir/Phoenix (`extends: base-engineer`).
pub const PHOENIX_ENGINEER_AGENT: &str = include_str!;
/// Concrete dart-engineer agent — Flutter/Dart (`extends: base-engineer`).
pub const DART_ENGINEER_AGENT: &str = include_str!;
/// Concrete tauri-engineer agent (`extends: base-engineer`).
pub const TAURI_ENGINEER_AGENT: &str = include_str!;
/// Concrete web-ui-engineer agent (`extends: base-engineer`).
pub const WEB_UI_ENGINEER_AGENT: &str = include_str!;
/// Concrete refactoring-engineer agent (`extends: base-engineer`).
pub const REFACTORING_ENGINEER_AGENT: &str =
include_str!;
/// Concrete prompt-engineer agent (`extends: base-engineer`).
pub const PROMPT_ENGINEER_AGENT: &str = include_str!;
/// Concrete code-critic agent — adversarial reviewer (`extends: base-qa`).
pub const CODE_CRITIC_AGENT: &str = include_str!;
/// Concrete gcp-ops agent — Google Cloud Platform (`extends: base-ops`).
pub const GCP_OPS_AGENT: &str = include_str!;
/// Concrete vercel-ops agent (`extends: base-ops`).
pub const VERCEL_OPS_AGENT: &str = include_str!;
/// Concrete local-ops agent — local dev environment (`extends: base-ops`).
pub const LOCAL_OPS_AGENT: &str = include_str!;
/// Concrete memory-manager agent — trusty-memory MCP backend only (`extends: base-agent`).
pub const MEMORY_MANAGER_AGENT: &str = include_str!;
/// Concrete mpm-agent-manager agent — bundled-asset catalog lifecycle (`extends: base-agent`).
pub const MPM_AGENT_MANAGER_AGENT: &str = include_str!;
/// Concrete mpm-skills-manager agent — skill lifecycle and recommendations (`extends: base-agent`).
pub const MPM_SKILLS_MANAGER_AGENT: &str = include_str!;
/// Canonical self-description doc installed to `docs/WHAT-IS-TRUSTY-MPM.md`
/// (DOC-28 R1 — `docs/specs/trusty-mpm-self-awareness.md`).
///
/// Why: no single, stable, canonically-pointed-at answer to "what is
/// trusty-mpm" existed anywhere in the bundled assets, which let a launched
/// session conflate this Rust project with the unrelated Python `claude-mpm`
/// package (the "self-awareness incident"). Source lives under
/// `crates/trusty-mpm/docs/` (ordinary, human-reviewable documentation)
/// rather than `src/assets/` so it reads naturally as a doc while still being
/// embeddable here, exactly like every other bundled artifact.
pub const WHAT_IS_TRUSTY_MPM: &str = include_str!;
/// Architecture overview doc installed to `docs/ARCHITECTURE-MEMORY-SESSIONS-SEARCH.md`
/// (issue #2034 — bundled PM-facing reference for shipped design patterns).
///
/// Why: three foundational behaviours (memory over MCP, session↔worktree 1:1
/// model, per-worktree search-index) are now shipped on main but not
/// documented for PM audiences. This doc summarizes each pattern, its
/// trade-offs, and its integration with the others, then cross-references
/// the deeper specs and source code so operators and framework users can
/// understand the design from first principles.
pub const ARCHITECTURE_MEMORY_SESSIONS_SEARCH: &str =
include_str!;
// --- tm-skills-portfolio epic: the /tm- skill catalog — bundle_tm_skills.rs ---
// Supersedes the Phase 1 (#770) mpm-* guidance skills (formerly
// bundle_skills.rs), which were a mechanical port of claude-mpm's Python
// skill catalog with unadapted tool/path references. Removed entirely.
pub use ;
/// Default (professional) Claude Code output style deployed to
/// `~/.claude/output-styles/trusty-mpm.md`.
///
/// Why: launched sessions set `"outputStyle": "trusty-mpm"` in the project
/// `.claude/settings.json`; Claude Code only honours that name if a matching
/// style file exists. Bundling it lets the launch path deploy it directly,
/// outside the framework-root [`ALL`] table (which installs under
/// `~/.trusty-mpm/framework/`, not `~/.claude/`).
pub const OUTPUT_STYLE: &str = include_str!;
/// Teaching-mode Claude Code output style (id `trusty-mpm-teacher`).
///
/// Why: HR-4 bundles three styles so an operator can pick a communication mode;
/// this variant narrates the orchestration reasoning while keeping the
/// mandatory-delegation floor intact.
pub const OUTPUT_STYLE_TEACHER: &str =
include_str!;
/// Research-mode Claude Code output style (id `trusty-mpm-research`).
///
/// Why: HR-4 bundles three styles; this variant front-loads investigation and
/// demands evidence before any change, again keeping the delegation floor.
pub const OUTPUT_STYLE_RESEARCH: &str =
include_str!;
/// The default output-style id used when none is configured/selected.
///
/// Why: callers (config resolution, settings writer) need a single source of
/// truth for the professional default so they cannot drift.
/// What: the frontmatter `name:` of [`OUTPUT_STYLE`].
/// Test: `bundle_tests::output_style_registry_default_resolves`.
pub const DEFAULT_OUTPUT_STYLE_ID: &str = "trusty-mpm";
/// One entry in the bundled output-style registry.
///
/// Why: the multi-style launch path (HR-4) must map a configured/selected style
/// id to its bundled content and the file name it deploys to; bundling the id,
/// file name, and content together keeps those three facts from drifting.
/// What: the style id (matching the file's frontmatter `name:`), the file name
/// written under `~/.claude/output-styles/`, and the embedded content.
/// Test: `bundle_tests::output_style_registry_ids_match_frontmatter`.
/// All bundled output styles, default first.
///
/// Why: `deploy_output_style` writes every entry, and the style resolver looks
/// up a configured/selected id against this table; a single ordered slice keeps
/// both behaviours consistent.
/// What: the professional (`trusty-mpm`), teaching (`trusty-mpm-teacher`), and
/// research (`trusty-mpm-research`) styles.
/// Test: `bundle_tests::output_style_registry_has_three_distinct_ids`.
pub const OUTPUT_STYLES: & = &;
// BundledArtifact, InstallPolicy, and ALL are defined in bundle_all.rs.
// They are included here so they can access the constants above via `use super::*`.
pub use ;