@promptbook/core 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 +1 -1
  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/core",
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,
package/umd/index.umd.js CHANGED
@@ -27,7 +27,7 @@
27
27
  * @generated
28
28
  * @see https://github.com/webgptorg/promptbook
29
29
  */
30
- const PROMPTBOOK_ENGINE_VERSION = '0.112.0-44';
30
+ const PROMPTBOOK_ENGINE_VERSION = '0.112.0-45';
31
31
  /**
32
32
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
33
33
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -8342,7 +8342,7 @@
8342
8342
  DELETE Casual conversational style
8343
8343
  REMOVE All emoji usage
8344
8344
  GOAL Provide professional business communications
8345
- STYLE Use formal language and proper business etiquette
8345
+ WRITING RULES Use formal language and proper business etiquette
8346
8346
  \`\`\`
8347
8347
 
8348
8348
  \`\`\`book
@@ -8353,7 +8353,7 @@
8353
8353
  DISCARD Technical jargon explanations
8354
8354
  CANCEL Advanced troubleshooting procedures
8355
8355
  GOAL Help users with simple, easy-to-follow solutions
8356
- STYLE Use plain language that anyone can understand
8356
+ WRITING RULES Use plain language that anyone can understand
8357
8357
  \`\`\`
8358
8358
 
8359
8359
  \`\`\`book
@@ -8370,11 +8370,11 @@
8370
8370
  Concise Information Provider
8371
8371
 
8372
8372
  PERSONA You are a helpful assistant who provides detailed explanations
8373
- STYLE Include examples, analogies, and comprehensive context
8373
+ WRITING RULES Include examples, analogies, and comprehensive context
8374
8374
  CANCEL Detailed explanation style
8375
8375
  DISCARD Examples and analogies
8376
8376
  GOAL Provide brief, direct answers without unnecessary elaboration
8377
- STYLE Be concise and to the point
8377
+ WRITING RULES Be concise and to the point
8378
8378
  \`\`\`
8379
8379
  `);
8380
8380
  }
@@ -8558,7 +8558,7 @@
8558
8558
  PERSONA You are a data analysis expert
8559
8559
  FORMAT Present results in structured tables
8560
8560
  FORMAT Include confidence scores for all predictions
8561
- STYLE Be concise and precise in explanations
8561
+ WRITING RULES Be concise and precise in explanations
8562
8562
  \`\`\`
8563
8563
  `);
8564
8564
  }
@@ -11454,7 +11454,7 @@
11454
11454
 
11455
11455
  GOAL Help students understand mathematical concepts clearly
11456
11456
  GOAL Ensure all explanations are age-appropriate and accessible
11457
- STYLE Use simple language and provide step-by-step explanations
11457
+ WRITING RULES Use simple language and provide step-by-step explanations
11458
11458
  \`\`\`
11459
11459
 
11460
11460
  \`\`\`book
@@ -11868,7 +11868,7 @@
11868
11868
  KNOWLEDGE Academic research requires careful citation and verification
11869
11869
  KNOWLEDGE https://example.com/research-guidelines.pdf
11870
11870
  ACTION Can help with literature reviews and data analysis
11871
- STYLE Present information in clear, academic format
11871
+ WRITING RULES Present information in clear, academic format
11872
11872
  \`\`\`
11873
11873
  `);
11874
11874
  }
@@ -13619,7 +13619,7 @@
13619
13619
 
13620
13620
  META IMAGE https://example.com/professional-avatar.jpg
13621
13621
  PERSONA You are a professional business assistant
13622
- STYLE Maintain a formal and courteous tone
13622
+ WRITING RULES Maintain a formal and courteous tone
13623
13623
  \`\`\`
13624
13624
 
13625
13625
  \`\`\`book
@@ -13627,7 +13627,7 @@
13627
13627
 
13628
13628
  META IMAGE /assets/creative-bot-avatar.png
13629
13629
  PERSONA You are a creative and inspiring assistant
13630
- STYLE Be enthusiastic and encouraging
13630
+ WRITING RULES Be enthusiastic and encouraging
13631
13631
  ACTION Can help with brainstorming and ideation
13632
13632
  \`\`\`
13633
13633
  `);
@@ -13786,7 +13786,7 @@
13786
13786
  META LINK https://twitter.com/devhandle
13787
13787
  PERSONA You are an experienced open source developer
13788
13788
  ACTION Can help with code reviews and architecture decisions
13789
- STYLE Be direct and technical in explanations
13789
+ WRITING RULES Be direct and technical in explanations
13790
13790
  \`\`\`
13791
13791
  `);
13792
13792
  }
@@ -13992,7 +13992,7 @@
13992
13992
  MODEL TEMPERATURE 0.8
13993
13993
  MODEL TOP_P 0.9
13994
13994
  MODEL MAX_TOKENS 2048
13995
- STYLE Be imaginative and expressive
13995
+ WRITING RULES Be imaginative and expressive
13996
13996
  ACTION Can help with storytelling and character development
13997
13997
  \`\`\`
13998
13998
 
@@ -14204,7 +14204,7 @@
14204
14204
  NOTE Uses RAG for accessing latest research papers
14205
14205
  PERSONA You are a knowledgeable research assistant
14206
14206
  ACTION Can help with literature reviews and citations
14207
- STYLE Present information in academic format
14207
+ WRITING RULES Present information in academic format
14208
14208
  \`\`\`
14209
14209
  `);
14210
14210
  }
@@ -14498,7 +14498,7 @@
14498
14498
  RULE Always ask for clarification if the user's request is ambiguous
14499
14499
  RULE Be polite and professional in all interactions
14500
14500
  RULES Never provide medical or legal advice
14501
- STYLE Maintain a friendly and helpful tone
14501
+ WRITING RULES Maintain a friendly and helpful tone
14502
14502
  \`\`\`
14503
14503
 
14504
14504
  \`\`\`book
@@ -14767,8 +14767,8 @@
14767
14767
  /**
14768
14768
  * STYLE commitment definition
14769
14769
  *
14770
- * The STYLE commitment defines how the agent should format and present its responses.
14771
- * This includes tone, writing style, formatting preferences, and communication patterns.
14770
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
14771
+ * New books should prefer `WRITING RULES` for writing-only constraints.
14772
14772
  *
14773
14773
  * Example usage in agent source:
14774
14774
  *
@@ -14787,7 +14787,16 @@
14787
14787
  * Short one-line description of STYLE.
14788
14788
  */
14789
14789
  get description() {
14790
- return 'Control the tone and writing style of responses.';
14790
+ return 'Deprecated legacy writing-style commitment. Prefer `WRITING RULES` for new books.';
14791
+ }
14792
+ /**
14793
+ * Optional UI/docs-only deprecation metadata.
14794
+ */
14795
+ get deprecation() {
14796
+ return {
14797
+ message: 'Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.',
14798
+ replacedBy: ['WRITING RULES'],
14799
+ };
14791
14800
  }
14792
14801
  /**
14793
14802
  * Icon for this commitment.
@@ -14802,15 +14811,34 @@
14802
14811
  return spacetrim.spaceTrim(`
14803
14812
  # ${this.type}
14804
14813
 
14805
- Defines how the agent should format and present its responses (tone, writing style, formatting).
14814
+ Deprecated legacy commitment for writing and presentation instructions.
14815
+
14816
+ ## Migration
14817
+
14818
+ - Existing \`${this.type}\` books still parse and compile.
14819
+ - New books should prefer \`WRITING RULES\`.
14820
+ - Use \`WRITING SAMPLE\` when you want to anchor voice by example instead of stating constraints directly.
14821
+ - The plural alias \`STYLES\` is the same legacy commitment family.
14806
14822
 
14807
14823
  ## Key aspects
14808
14824
 
14809
- - Both terms work identically and can be used interchangeably.
14825
+ - \`${this.type}\` remains functional for backward compatibility only.
14810
14826
  - Later style instructions can override earlier ones.
14811
14827
  - Style affects both tone and presentation format.
14812
14828
 
14813
- ## Examples
14829
+ ## Preferred replacement
14830
+
14831
+ \`\`\`book
14832
+ Technical Writer
14833
+
14834
+ GOAL Help the user understand technical topics with practical, accurate guidance.
14835
+ WRITING RULES Write in a professional but friendly tone.
14836
+ WRITING RULES Use bullet points for lists.
14837
+ WRITING RULES Always provide code examples when explaining programming concepts.
14838
+ FORMAT Use markdown formatting with clear headings
14839
+ \`\`\`
14840
+
14841
+ ## Legacy compatibility examples
14814
14842
 
14815
14843
  \`\`\`book
14816
14844
  Technical Writer
@@ -15551,7 +15579,7 @@
15551
15579
 
15552
15580
  PERSONA You are a helpful customer support representative
15553
15581
  TEMPLATE Always structure your response with: 1) Acknowledgment, 2) Solution, 3) Follow-up question
15554
- STYLE Be professional and empathetic
15582
+ WRITING RULES Be professional and empathetic
15555
15583
  \`\`\`
15556
15584
 
15557
15585
  \`\`\`book
@@ -15995,7 +16023,7 @@
15995
16023
 
15996
16024
  PERSONA You are a news analyst who stays up-to-date with current events
15997
16025
  USE BROWSER
15998
- STYLE Present news in a balanced and objective manner
16026
+ WRITING RULES Present news in a balanced and objective manner
15999
16027
  ACTION Can search for and summarize news articles
16000
16028
  \`\`\`
16001
16029