@promptbook/wizard 0.112.0-44 → 0.112.0-45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm/index.es.js +50 -22
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/src/avatars/Avatar.d.ts +7 -0
  4. package/esm/src/avatars/avatarRenderingUtils.d.ts +117 -0
  5. package/esm/src/avatars/index.d.ts +6 -0
  6. package/esm/src/avatars/renderAvatarVisual.d.ts +9 -0
  7. package/esm/src/avatars/types/AvatarDefinition.d.ts +20 -0
  8. package/esm/src/avatars/types/AvatarVisualDefinition.d.ts +96 -0
  9. package/esm/src/avatars/visuals/avatarVisualRegistry.d.ts +16 -0
  10. package/esm/src/avatars/visuals/minecraftAvatarVisual.d.ts +7 -0
  11. package/esm/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  12. package/esm/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  13. package/esm/src/commitments/STYLE/STYLE.d.ts +9 -2
  14. package/esm/src/version.d.ts +1 -1
  15. package/package.json +2 -2
  16. package/umd/index.umd.js +50 -22
  17. package/umd/index.umd.js.map +1 -1
  18. package/umd/src/avatars/Avatar.d.ts +7 -0
  19. package/umd/src/avatars/avatarRenderingUtils.d.ts +117 -0
  20. package/umd/src/avatars/index.d.ts +6 -0
  21. package/umd/src/avatars/renderAvatarVisual.d.ts +9 -0
  22. package/umd/src/avatars/types/AvatarDefinition.d.ts +20 -0
  23. package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +96 -0
  24. package/umd/src/avatars/visuals/avatarVisualRegistry.d.ts +16 -0
  25. package/umd/src/avatars/visuals/minecraftAvatarVisual.d.ts +7 -0
  26. package/umd/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  27. package/umd/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  28. package/umd/src/commitments/STYLE/STYLE.d.ts +9 -2
  29. package/umd/src/version.d.ts +1 -1
@@ -0,0 +1,7 @@
1
+ import type { AvatarProps } from './types/AvatarVisualDefinition';
2
+ /**
3
+ * Canvas-based deterministic avatar component.
4
+ *
5
+ * @private shared component for in-repository avatar previews
6
+ */
7
+ export declare function Avatar(props: AvatarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,117 @@
1
+ import type { AgentBasicInformation } from '../book-2.0/agent-source/AgentBasicInformation';
2
+ import type { string_color } from '../types/typeAliases';
3
+ import type { AvatarDefinition } from './types/AvatarDefinition';
4
+ import type { AvatarPalette } from './types/AvatarVisualDefinition';
5
+ /**
6
+ * Default square size used by avatar renderers.
7
+ *
8
+ * @private utility of the avatar rendering system
9
+ */
10
+ export declare const DEFAULT_AVATAR_SIZE = 192;
11
+ /**
12
+ * Normalizes arbitrary agent colors into a stable non-empty color list.
13
+ *
14
+ * @param colors Raw color list.
15
+ * @returns Stable list of usable colors.
16
+ *
17
+ * @private utility of the avatar rendering system
18
+ */
19
+ export declare function normalizeAvatarColors(colors: ReadonlyArray<string_color>): ReadonlyArray<string_color>;
20
+ /**
21
+ * Normalizes the avatar input so visuals can rely on consistent data.
22
+ *
23
+ * @param avatarDefinition Raw avatar input.
24
+ * @returns Normalized avatar definition.
25
+ *
26
+ * @private utility of the avatar rendering system
27
+ */
28
+ export declare function normalizeAvatarDefinition(avatarDefinition: AvatarDefinition): AvatarDefinition;
29
+ /**
30
+ * Extracts avatar colors from the flexible `META COLOR` agent field.
31
+ *
32
+ * @param colorValue Raw `META COLOR` value.
33
+ * @returns Parsed avatar colors.
34
+ *
35
+ * @private utility of the avatar rendering system
36
+ */
37
+ export declare function parseAvatarColors(colorValue: string | undefined): ReadonlyArray<string_color>;
38
+ /**
39
+ * Creates a reusable avatar definition from parsed agent information.
40
+ *
41
+ * @param agentBasicInformation Parsed agent information.
42
+ * @returns Avatar definition ready for canvas rendering.
43
+ *
44
+ * @private shared helper for app-level avatar previews
45
+ */
46
+ export declare function createAvatarDefinitionFromAgentBasicInformation(agentBasicInformation: Pick<AgentBasicInformation, 'agentName' | 'agentHash' | 'meta'>): AvatarDefinition;
47
+ /**
48
+ * Creates the shared derived palette used by every avatar visual.
49
+ *
50
+ * @param avatarDefinition Stable avatar definition.
51
+ * @returns Derived palette.
52
+ *
53
+ * @private utility of the avatar rendering system
54
+ */
55
+ export declare function createAvatarPalette(avatarDefinition: AvatarDefinition): AvatarPalette;
56
+ /**
57
+ * Draws the common rounded background frame used by most visuals.
58
+ *
59
+ * @param context Canvas 2D context.
60
+ * @param size Canvas size in CSS pixels.
61
+ * @param palette Derived avatar palette.
62
+ *
63
+ * @private utility of the avatar rendering system
64
+ */
65
+ export declare function drawAvatarFrame(context: CanvasRenderingContext2D, size: number, palette: AvatarPalette): void;
66
+ /**
67
+ * Creates a rounded rectangle path on the current canvas context.
68
+ *
69
+ * @param context Canvas 2D context.
70
+ * @param x Left coordinate.
71
+ * @param y Top coordinate.
72
+ * @param width Rectangle width.
73
+ * @param height Rectangle height.
74
+ * @param radius Corner radius.
75
+ *
76
+ * @private utility of the avatar rendering system
77
+ */
78
+ export declare function createRoundedRectPath(context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number): void;
79
+ /**
80
+ * Creates a stable pseudo-random number generator from a string seed.
81
+ *
82
+ * @param seedSource String seed.
83
+ * @returns Generator producing values in `[0, 1)`.
84
+ *
85
+ * @private utility of the avatar rendering system
86
+ */
87
+ export declare function createSeededRandom(seedSource: string): () => number;
88
+ /**
89
+ * Creates a deterministic random factory scoped to the avatar definition.
90
+ *
91
+ * @param avatarDefinition Stable avatar definition.
92
+ * @returns Random factory that can be re-seeded per visual part.
93
+ *
94
+ * @private utility of the avatar rendering system
95
+ */
96
+ export declare function createAvatarRandomFactory(avatarDefinition: AvatarDefinition): (salt: string) => () => number;
97
+ /**
98
+ * Clears and scales the canvas for crisp avatar rendering on high DPI displays.
99
+ *
100
+ * @param canvas Canvas element to prepare.
101
+ * @param context Canvas 2D context.
102
+ * @param size Canvas size in CSS pixels.
103
+ * @param devicePixelRatio Device pixel ratio.
104
+ *
105
+ * @private utility of the avatar rendering system
106
+ */
107
+ export declare function prepareAvatarCanvas(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D, size: number, devicePixelRatio: number): void;
108
+ /**
109
+ * Picks one deterministic element from a non-empty collection.
110
+ *
111
+ * @param items Candidate items.
112
+ * @param random Seeded random generator.
113
+ * @returns Picked item.
114
+ *
115
+ * @private utility of the avatar rendering system
116
+ */
117
+ export declare function pickRandomItem<T>(items: ReadonlyArray<T>, random: () => number): T;
@@ -0,0 +1,6 @@
1
+ export { Avatar } from './Avatar';
2
+ export { renderAvatarVisual } from './renderAvatarVisual';
3
+ export { createAvatarDefinitionFromAgentBasicInformation } from './avatarRenderingUtils';
4
+ export { AVATAR_VISUALS, getAvatarVisualById } from './visuals/avatarVisualRegistry';
5
+ export type { AvatarDefinition } from './types/AvatarDefinition';
6
+ export type { AvatarPalette, AvatarProps, AvatarVisual, AvatarVisualDefinition, AvatarVisualId, AvatarVisualRenderContext, RenderAvatarVisualOptions, } from './types/AvatarVisualDefinition';
@@ -0,0 +1,9 @@
1
+ import type { RenderAvatarVisualOptions } from './types/AvatarVisualDefinition';
2
+ /**
3
+ * Renders one deterministic avatar frame into the provided canvas.
4
+ *
5
+ * @param options Rendering options.
6
+ *
7
+ * @private shared helper for canvas avatar rendering
8
+ */
9
+ export declare function renderAvatarVisual(options: RenderAvatarVisualOptions): void;
@@ -0,0 +1,20 @@
1
+ import type { string_agent_hash, string_agent_name, string_color } from '../../types/typeAliases';
2
+ /**
3
+ * Normalized identity payload used by all canvas avatar visuals.
4
+ *
5
+ * @private shared contract for the avatar rendering system
6
+ */
7
+ export type AvatarDefinition = {
8
+ /**
9
+ * Human-readable name of the agent.
10
+ */
11
+ readonly agentName: string_agent_name;
12
+ /**
13
+ * Stable hash of the agent.
14
+ */
15
+ readonly agentHash: string_agent_hash;
16
+ /**
17
+ * Ordered list of agent colors used to derive a palette.
18
+ */
19
+ readonly colors: ReadonlyArray<string_color>;
20
+ };
@@ -0,0 +1,96 @@
1
+ import type { string_color, string_css_class } from '../../types/typeAliases';
2
+ import type { AvatarDefinition } from './AvatarDefinition';
3
+ /**
4
+ * Supported built-in avatar visual identifiers.
5
+ *
6
+ * @private shared contract for the avatar rendering system
7
+ */
8
+ export type AvatarVisualId = 'pixel-art' | 'octopus' | 'minecraft';
9
+ /**
10
+ * Derived color palette used by avatar visuals.
11
+ *
12
+ * @private shared contract for the avatar rendering system
13
+ */
14
+ export type AvatarPalette = {
15
+ readonly background: string_color;
16
+ readonly backgroundSecondary: string_color;
17
+ readonly primary: string_color;
18
+ readonly secondary: string_color;
19
+ readonly accent: string_color;
20
+ readonly highlight: string_color;
21
+ readonly shadow: string_color;
22
+ readonly ink: string_color;
23
+ };
24
+ /**
25
+ * Rendering context forwarded to a single avatar visual.
26
+ *
27
+ * @private shared contract for the avatar rendering system
28
+ */
29
+ export type AvatarVisualRenderContext = {
30
+ readonly canvas: HTMLCanvasElement;
31
+ readonly context: CanvasRenderingContext2D;
32
+ readonly size: number;
33
+ readonly devicePixelRatio: number;
34
+ readonly timeMs: number;
35
+ readonly avatarDefinition: AvatarDefinition;
36
+ readonly palette: AvatarPalette;
37
+ readonly createRandom: (salt: string) => () => number;
38
+ };
39
+ /**
40
+ * Signature of one canvas-based avatar visual renderer.
41
+ *
42
+ * @private shared contract for the avatar rendering system
43
+ */
44
+ export type AvatarVisual = (context: AvatarVisualRenderContext) => void;
45
+ /**
46
+ * Metadata and renderer for one built-in avatar visual.
47
+ *
48
+ * @private shared contract for the avatar rendering system
49
+ */
50
+ export type AvatarVisualDefinition = {
51
+ readonly id: AvatarVisualId;
52
+ readonly title: string;
53
+ readonly description: string;
54
+ readonly isAnimated: boolean;
55
+ readonly render: AvatarVisual;
56
+ };
57
+ /**
58
+ * Props of the shared `<Avatar/>` component.
59
+ *
60
+ * @private shared contract for the avatar rendering system
61
+ */
62
+ export type AvatarProps = {
63
+ /**
64
+ * Stable visual identity for the rendered avatar.
65
+ */
66
+ readonly avatarDefinition: AvatarDefinition;
67
+ /**
68
+ * Selected visual style.
69
+ */
70
+ readonly visualId: AvatarVisualId;
71
+ /**
72
+ * Output size in CSS pixels.
73
+ */
74
+ readonly size?: number;
75
+ /**
76
+ * Optional canvas title.
77
+ */
78
+ readonly title?: string;
79
+ /**
80
+ * Optional CSS class name applied to the canvas.
81
+ */
82
+ readonly className?: string_css_class;
83
+ };
84
+ /**
85
+ * Low-level rendering options for a single canvas frame.
86
+ *
87
+ * @private shared contract for the avatar rendering system
88
+ */
89
+ export type RenderAvatarVisualOptions = {
90
+ readonly canvas: HTMLCanvasElement;
91
+ readonly avatarDefinition: AvatarDefinition;
92
+ readonly visualId: AvatarVisualId;
93
+ readonly size: number;
94
+ readonly timeMs: number;
95
+ readonly devicePixelRatio?: number;
96
+ };
@@ -0,0 +1,16 @@
1
+ import type { AvatarVisualDefinition, AvatarVisualId } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Built-in avatar visuals available to the app.
4
+ *
5
+ * @private shared registry for the avatar rendering system
6
+ */
7
+ export declare const AVATAR_VISUALS: ReadonlyArray<AvatarVisualDefinition>;
8
+ /**
9
+ * Returns one avatar visual by its identifier.
10
+ *
11
+ * @param visualId Requested visual identifier.
12
+ * @returns Matching visual definition.
13
+ *
14
+ * @private shared registry for the avatar rendering system
15
+ */
16
+ export declare function getAvatarVisualById(visualId: AvatarVisualId): AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Minecraft-style 3D avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const minecraftAvatarVisual: AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Octopus avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const octopusAvatarVisual: AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Pixel-art avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const pixelArtAvatarVisual: AvatarVisualDefinition;
@@ -3,8 +3,8 @@ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * STYLE commitment definition
5
5
  *
6
- * The STYLE commitment defines how the agent should format and present its responses.
7
- * This includes tone, writing style, formatting preferences, and communication patterns.
6
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
7
+ * New books should prefer `WRITING RULES` for writing-only constraints.
8
8
  *
9
9
  * Example usage in agent source:
10
10
  *
@@ -21,6 +21,13 @@ export declare class StyleCommitmentDefinition extends BaseCommitmentDefinition<
21
21
  * Short one-line description of STYLE.
22
22
  */
23
23
  get description(): string;
24
+ /**
25
+ * Optional UI/docs-only deprecation metadata.
26
+ */
27
+ get deprecation(): {
28
+ readonly message: "Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.";
29
+ readonly replacedBy: readonly ["WRITING RULES"];
30
+ };
24
31
  /**
25
32
  * Icon for this commitment.
26
33
  */
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.112.0-43`).
18
+ * It follows semantic versioning (e.g., `0.112.0-44`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/wizard",
3
- "version": "0.112.0-44",
3
+ "version": "0.112.0-45",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -98,7 +98,7 @@
98
98
  "module": "./esm/index.es.js",
99
99
  "typings": "./esm/typings/src/_packages/wizard.index.d.ts",
100
100
  "peerDependencies": {
101
- "@promptbook/core": "0.112.0-44"
101
+ "@promptbook/core": "0.112.0-45"
102
102
  },
103
103
  "dependencies": {
104
104
  "@ai-sdk/deepseek": "0.1.17",
package/umd/index.umd.js CHANGED
@@ -49,7 +49,7 @@
49
49
  * @generated
50
50
  * @see https://github.com/webgptorg/promptbook
51
51
  */
52
- const PROMPTBOOK_ENGINE_VERSION = '0.112.0-44';
52
+ const PROMPTBOOK_ENGINE_VERSION = '0.112.0-45';
53
53
  /**
54
54
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
55
55
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -19270,7 +19270,7 @@
19270
19270
  DELETE Casual conversational style
19271
19271
  REMOVE All emoji usage
19272
19272
  GOAL Provide professional business communications
19273
- STYLE Use formal language and proper business etiquette
19273
+ WRITING RULES Use formal language and proper business etiquette
19274
19274
  \`\`\`
19275
19275
 
19276
19276
  \`\`\`book
@@ -19281,7 +19281,7 @@
19281
19281
  DISCARD Technical jargon explanations
19282
19282
  CANCEL Advanced troubleshooting procedures
19283
19283
  GOAL Help users with simple, easy-to-follow solutions
19284
- STYLE Use plain language that anyone can understand
19284
+ WRITING RULES Use plain language that anyone can understand
19285
19285
  \`\`\`
19286
19286
 
19287
19287
  \`\`\`book
@@ -19298,11 +19298,11 @@
19298
19298
  Concise Information Provider
19299
19299
 
19300
19300
  PERSONA You are a helpful assistant who provides detailed explanations
19301
- STYLE Include examples, analogies, and comprehensive context
19301
+ WRITING RULES Include examples, analogies, and comprehensive context
19302
19302
  CANCEL Detailed explanation style
19303
19303
  DISCARD Examples and analogies
19304
19304
  GOAL Provide brief, direct answers without unnecessary elaboration
19305
- STYLE Be concise and to the point
19305
+ WRITING RULES Be concise and to the point
19306
19306
  \`\`\`
19307
19307
  `);
19308
19308
  }
@@ -19486,7 +19486,7 @@
19486
19486
  PERSONA You are a data analysis expert
19487
19487
  FORMAT Present results in structured tables
19488
19488
  FORMAT Include confidence scores for all predictions
19489
- STYLE Be concise and precise in explanations
19489
+ WRITING RULES Be concise and precise in explanations
19490
19490
  \`\`\`
19491
19491
  `);
19492
19492
  }
@@ -19880,7 +19880,7 @@
19880
19880
 
19881
19881
  GOAL Help students understand mathematical concepts clearly
19882
19882
  GOAL Ensure all explanations are age-appropriate and accessible
19883
- STYLE Use simple language and provide step-by-step explanations
19883
+ WRITING RULES Use simple language and provide step-by-step explanations
19884
19884
  \`\`\`
19885
19885
 
19886
19886
  \`\`\`book
@@ -20158,7 +20158,7 @@
20158
20158
  KNOWLEDGE Academic research requires careful citation and verification
20159
20159
  KNOWLEDGE https://example.com/research-guidelines.pdf
20160
20160
  ACTION Can help with literature reviews and data analysis
20161
- STYLE Present information in clear, academic format
20161
+ WRITING RULES Present information in clear, academic format
20162
20162
  \`\`\`
20163
20163
  `);
20164
20164
  }
@@ -21805,7 +21805,7 @@
21805
21805
 
21806
21806
  META IMAGE https://example.com/professional-avatar.jpg
21807
21807
  PERSONA You are a professional business assistant
21808
- STYLE Maintain a formal and courteous tone
21808
+ WRITING RULES Maintain a formal and courteous tone
21809
21809
  \`\`\`
21810
21810
 
21811
21811
  \`\`\`book
@@ -21813,7 +21813,7 @@
21813
21813
 
21814
21814
  META IMAGE /assets/creative-bot-avatar.png
21815
21815
  PERSONA You are a creative and inspiring assistant
21816
- STYLE Be enthusiastic and encouraging
21816
+ WRITING RULES Be enthusiastic and encouraging
21817
21817
  ACTION Can help with brainstorming and ideation
21818
21818
  \`\`\`
21819
21819
  `);
@@ -21972,7 +21972,7 @@
21972
21972
  META LINK https://twitter.com/devhandle
21973
21973
  PERSONA You are an experienced open source developer
21974
21974
  ACTION Can help with code reviews and architecture decisions
21975
- STYLE Be direct and technical in explanations
21975
+ WRITING RULES Be direct and technical in explanations
21976
21976
  \`\`\`
21977
21977
  `);
21978
21978
  }
@@ -22178,7 +22178,7 @@
22178
22178
  MODEL TEMPERATURE 0.8
22179
22179
  MODEL TOP_P 0.9
22180
22180
  MODEL MAX_TOKENS 2048
22181
- STYLE Be imaginative and expressive
22181
+ WRITING RULES Be imaginative and expressive
22182
22182
  ACTION Can help with storytelling and character development
22183
22183
  \`\`\`
22184
22184
 
@@ -22390,7 +22390,7 @@
22390
22390
  NOTE Uses RAG for accessing latest research papers
22391
22391
  PERSONA You are a knowledgeable research assistant
22392
22392
  ACTION Can help with literature reviews and citations
22393
- STYLE Present information in academic format
22393
+ WRITING RULES Present information in academic format
22394
22394
  \`\`\`
22395
22395
  `);
22396
22396
  }
@@ -22684,7 +22684,7 @@
22684
22684
  RULE Always ask for clarification if the user's request is ambiguous
22685
22685
  RULE Be polite and professional in all interactions
22686
22686
  RULES Never provide medical or legal advice
22687
- STYLE Maintain a friendly and helpful tone
22687
+ WRITING RULES Maintain a friendly and helpful tone
22688
22688
  \`\`\`
22689
22689
 
22690
22690
  \`\`\`book
@@ -22953,8 +22953,8 @@
22953
22953
  /**
22954
22954
  * STYLE commitment definition
22955
22955
  *
22956
- * The STYLE commitment defines how the agent should format and present its responses.
22957
- * This includes tone, writing style, formatting preferences, and communication patterns.
22956
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
22957
+ * New books should prefer `WRITING RULES` for writing-only constraints.
22958
22958
  *
22959
22959
  * Example usage in agent source:
22960
22960
  *
@@ -22973,7 +22973,16 @@
22973
22973
  * Short one-line description of STYLE.
22974
22974
  */
22975
22975
  get description() {
22976
- return 'Control the tone and writing style of responses.';
22976
+ return 'Deprecated legacy writing-style commitment. Prefer `WRITING RULES` for new books.';
22977
+ }
22978
+ /**
22979
+ * Optional UI/docs-only deprecation metadata.
22980
+ */
22981
+ get deprecation() {
22982
+ return {
22983
+ message: 'Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.',
22984
+ replacedBy: ['WRITING RULES'],
22985
+ };
22977
22986
  }
22978
22987
  /**
22979
22988
  * Icon for this commitment.
@@ -22988,15 +22997,34 @@
22988
22997
  return _spaceTrim.spaceTrim(`
22989
22998
  # ${this.type}
22990
22999
 
22991
- Defines how the agent should format and present its responses (tone, writing style, formatting).
23000
+ Deprecated legacy commitment for writing and presentation instructions.
23001
+
23002
+ ## Migration
23003
+
23004
+ - Existing \`${this.type}\` books still parse and compile.
23005
+ - New books should prefer \`WRITING RULES\`.
23006
+ - Use \`WRITING SAMPLE\` when you want to anchor voice by example instead of stating constraints directly.
23007
+ - The plural alias \`STYLES\` is the same legacy commitment family.
22992
23008
 
22993
23009
  ## Key aspects
22994
23010
 
22995
- - Both terms work identically and can be used interchangeably.
23011
+ - \`${this.type}\` remains functional for backward compatibility only.
22996
23012
  - Later style instructions can override earlier ones.
22997
23013
  - Style affects both tone and presentation format.
22998
23014
 
22999
- ## Examples
23015
+ ## Preferred replacement
23016
+
23017
+ \`\`\`book
23018
+ Technical Writer
23019
+
23020
+ GOAL Help the user understand technical topics with practical, accurate guidance.
23021
+ WRITING RULES Write in a professional but friendly tone.
23022
+ WRITING RULES Use bullet points for lists.
23023
+ WRITING RULES Always provide code examples when explaining programming concepts.
23024
+ FORMAT Use markdown formatting with clear headings
23025
+ \`\`\`
23026
+
23027
+ ## Legacy compatibility examples
23000
23028
 
23001
23029
  \`\`\`book
23002
23030
  Technical Writer
@@ -23737,7 +23765,7 @@
23737
23765
 
23738
23766
  PERSONA You are a helpful customer support representative
23739
23767
  TEMPLATE Always structure your response with: 1) Acknowledgment, 2) Solution, 3) Follow-up question
23740
- STYLE Be professional and empathetic
23768
+ WRITING RULES Be professional and empathetic
23741
23769
  \`\`\`
23742
23770
 
23743
23771
  \`\`\`book
@@ -24181,7 +24209,7 @@
24181
24209
 
24182
24210
  PERSONA You are a news analyst who stays up-to-date with current events
24183
24211
  USE BROWSER
24184
- STYLE Present news in a balanced and objective manner
24212
+ WRITING RULES Present news in a balanced and objective manner
24185
24213
  ACTION Can search for and summarize news articles
24186
24214
  \`\`\`
24187
24215