rhachet-roles-bhrain 0.2.0 → 0.3.0

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 (130) hide show
  1. package/dist/.test/getContextOpenAI.js +1 -1
  2. package/dist/.test/getContextOpenAI.js.map +1 -1
  3. package/dist/domain.operations/review/compileReviewPrompt.d.ts +22 -0
  4. package/dist/domain.operations/review/compileReviewPrompt.js +95 -0
  5. package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -0
  6. package/dist/domain.operations/review/enumFilesFromDiffs.d.ts +8 -0
  7. package/dist/domain.operations/review/enumFilesFromDiffs.js +74 -0
  8. package/dist/domain.operations/review/enumFilesFromDiffs.js.map +1 -0
  9. package/dist/domain.operations/review/enumFilesFromGlob.d.ts +8 -0
  10. package/dist/domain.operations/review/enumFilesFromGlob.js +31 -0
  11. package/dist/domain.operations/review/enumFilesFromGlob.js.map +1 -0
  12. package/dist/domain.operations/review/estimateTokenCount.d.ts +9 -0
  13. package/dist/domain.operations/review/estimateTokenCount.js +20 -0
  14. package/dist/domain.operations/review/estimateTokenCount.js.map +1 -0
  15. package/dist/domain.operations/review/formatReviewOutput.d.ts +14 -0
  16. package/dist/domain.operations/review/formatReviewOutput.js +42 -0
  17. package/dist/domain.operations/review/formatReviewOutput.js.map +1 -0
  18. package/dist/domain.operations/review/genTokenBreakdownMarkdown.d.ts +19 -0
  19. package/dist/domain.operations/review/genTokenBreakdownMarkdown.js +110 -0
  20. package/dist/domain.operations/review/genTokenBreakdownMarkdown.js.map +1 -0
  21. package/dist/domain.operations/review/genTokenBreakdownReport.d.ts +24 -0
  22. package/dist/domain.operations/review/genTokenBreakdownReport.js +64 -0
  23. package/dist/domain.operations/review/genTokenBreakdownReport.js.map +1 -0
  24. package/dist/domain.operations/review/invokeClaudeCode.d.ts +22 -0
  25. package/dist/domain.operations/review/invokeClaudeCode.js +92 -0
  26. package/dist/domain.operations/review/invokeClaudeCode.js.map +1 -0
  27. package/dist/domain.operations/review/writeInputArtifacts.d.ts +27 -0
  28. package/dist/domain.operations/review/writeInputArtifacts.js +50 -0
  29. package/dist/domain.operations/review/writeInputArtifacts.js.map +1 -0
  30. package/dist/domain.operations/review/writeOutputArtifacts.d.ts +12 -0
  31. package/dist/domain.operations/review/writeOutputArtifacts.js +46 -0
  32. package/dist/domain.operations/review/writeOutputArtifacts.js.map +1 -0
  33. package/dist/roles/getRoleRegistry.js +2 -1
  34. package/dist/roles/getRoleRegistry.js.map +1 -1
  35. package/dist/roles/getRoleRegistry.readme.js +6 -0
  36. package/dist/roles/getRoleRegistry.readme.js.map +1 -1
  37. package/dist/roles/reviewer/briefs/review.tactics.md +60 -0
  38. package/dist/roles/reviewer/getReviewerRole.d.ts +6 -0
  39. package/dist/roles/reviewer/getReviewerRole.js +80 -0
  40. package/dist/roles/reviewer/getReviewerRole.js.map +1 -0
  41. package/dist/roles/reviewer/skills/review/review.d.ts +57 -0
  42. package/dist/roles/reviewer/skills/review/review.js +445 -0
  43. package/dist/roles/reviewer/skills/review/review.js.map +1 -0
  44. package/dist/roles/reviewer/skills/review/review.sh +21 -0
  45. package/dist/roles/reviewer/skills/review/review.ts +575 -0
  46. package/dist/roles/thinker/getThinkerRole.js +1 -1
  47. package/dist/roles/thinker/getThinkerRole.js.map +1 -1
  48. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19..i1.via_chatgpt.md +47 -0
  49. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19.i2.via_rhachet.md +60 -0
  50. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.md +62 -0
  51. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.with_feedback.md +89 -0
  52. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i2.md +47 -0
  53. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i1.md +44 -0
  54. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i2.md +63 -0
  55. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i3.md +51 -0
  56. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i1.md +62 -0
  57. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i2.md +49 -0
  58. package/dist/roles/thinker/skills/brief.articulate/.readme.md +0 -0
  59. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js +1 -1
  60. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js.map +1 -1
  61. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.ts +168 -0
  62. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.ts +157 -0
  63. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i1.md +93 -0
  64. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i2.md +84 -0
  65. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i1.no_focus_context.md +8 -0
  66. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i2.md +54 -0
  67. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i1.md +62 -0
  68. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i2.md +64 -0
  69. package/dist/roles/thinker/skills/brief.catalogize/.readme.md +5 -0
  70. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js +1 -1
  71. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js.map +1 -1
  72. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts +173 -0
  73. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.ts +132 -0
  74. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i4.md +3 -0
  75. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i5.md +3 -0
  76. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i6.md +3 -0
  77. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.md +3 -0
  78. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i1.md +52 -0
  79. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i2.md +51 -0
  80. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i3.md +47 -0
  81. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i4.md +62 -0
  82. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i5.md +47 -0
  83. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i6.md +53 -0
  84. package/dist/roles/thinker/skills/brief.demonstrate/.readme +3 -0
  85. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js +1 -1
  86. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js.map +1 -1
  87. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.ts +190 -0
  88. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.ts +164 -0
  89. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i1.md +72 -0
  90. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i2.md +53 -0
  91. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i3.which_objectives.md +58 -0
  92. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i5.which_personas.md +64 -0
  93. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i1.md +67 -0
  94. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i2.md +49 -0
  95. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i3.md +59 -0
  96. package/dist/roles/thinker/skills/khue.cluster/.readme.md +0 -0
  97. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js +1 -1
  98. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js.map +1 -1
  99. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.ts +174 -0
  100. package/dist/roles/thinker/skills/khue.cluster/stepCluster.ts +150 -0
  101. package/dist/roles/thinker/skills/khue.decompose/.readme.md +9 -0
  102. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i2.md +23 -0
  103. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i3.md +23 -0
  104. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.varieties.v2025_08_17.i1.md +23 -0
  105. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i1.md +9 -0
  106. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i2.md +9 -0
  107. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i3.md +23 -0
  108. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i4.folksy.md +9 -0
  109. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i5.folksy.md +23 -0
  110. package/dist/roles/thinker/skills/khue.diverge/.readme.md +0 -0
  111. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js +1 -1
  112. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js.map +1 -1
  113. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts +149 -0
  114. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.ts +151 -0
  115. package/dist/roles/thinker/skills/khue.encompose/.readme.md +7 -0
  116. package/dist/roles/thinker/skills/khue.instantiate/.readme.md +14 -0
  117. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js +1 -1
  118. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js.map +1 -1
  119. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts +190 -0
  120. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.ts +132 -0
  121. package/dist/roles/thinker/skills/khue.triage/.demo/laughs.v2025_08_18.i1.md +29 -0
  122. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i1.md +86 -0
  123. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i2.md +68 -0
  124. package/dist/roles/thinker/skills/khue.triage/.readme.md +0 -0
  125. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js +1 -1
  126. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js.map +1 -1
  127. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.ts +174 -0
  128. package/dist/roles/thinker/skills/khue.triage/stepTriage.ts +153 -0
  129. package/package.json +7 -6
  130. package/readme.md +55 -0
@@ -0,0 +1,157 @@
1
+ import { UnexpectedCodePathError } from 'helpful-errors';
2
+ import {
3
+ asStitcherFlat,
4
+ type GStitcher,
5
+ genStepImagineViaTemplate,
6
+ genStitchRoute,
7
+ genTemplate,
8
+ getTemplatePathByCallerPath,
9
+ getTemplateValFromArtifacts,
10
+ getTemplateVarsFromRoleInherit,
11
+ type RoleContext,
12
+ type Threads,
13
+ } from 'rhachet';
14
+ import type { Artifact } from 'rhachet-artifact';
15
+ import type { GitFile } from 'rhachet-artifact-git';
16
+ import { withRetry, withTimeout } from 'wrapper-fns';
17
+
18
+ import type { Focus } from '@src/_topublish/rhachet-roles-bhrain/src/domain/objects/Focus';
19
+ import { type ContextOpenAI, sdkOpenAi } from '@src/access/sdk/sdkOpenAi';
20
+ import { genLoopFeedback } from '@src/domain.operations/artifact/genLoopFeedback';
21
+ import { genStepArtSet } from '@src/domain.operations/artifact/genStepArtSet';
22
+ import { getThinkerBriefs } from '@src/roles/thinker/getThinkerBrief';
23
+
24
+ // exported so that we can pass them through to <ponder> too
25
+ export const BRIEFS_FOR_ARTICULATE = getThinkerBriefs([
26
+ 'trait.ocd.md',
27
+ 'cognition/cog401.questions.._.md',
28
+ 'cognition/cog000.overview.and.premise.md',
29
+ 'cognition/cog101.concept.treestruct._.md',
30
+ 'cognition/cog201.cortal.focus.p1.definition.md',
31
+ 'cognition/cog301.traversal.1.motion.primitives._.md',
32
+ 'cognition/cog401.questions.._.md',
33
+ 'cognition/cog401.questions.2.1.primitives.rough._.md',
34
+ 'cognition/cog201.cortal.focus.p2.acuity.md',
35
+ 'cognition/cog301.traversal.1.motion.primitives.acuity.md',
36
+ //
37
+ 'knowledge/kno201.documents.articles.[article].md',
38
+ 'knowledge/kno301.doc.enbrief.2.articulate.[article].md',
39
+ 'knowledge/kno301.doc.enbrief.2.articulate.[lesson].md',
40
+ //
41
+ 'librarian.tactics/[brief].verbiage.outline.over.narrative.md',
42
+ 'librarian.tactics/<articulate>._.[article].frame.cognitive.md',
43
+ 'librarian.tactics/<articulate>._.[article].frame.tactical.md',
44
+ 'librarian.tactics/<articulate>.tactic.[catalog].md',
45
+ 'librarian.tactics/<articulate>.tactic.concept_dimension.examples.[article][seed].md',
46
+ 'librarian.tactics/<articulate>.tactic.concept_dimension.invariants.[article].md',
47
+ 'librarian.tactics/<articulate>.tactic.from.examples.md',
48
+ 'librarian.tactics/<articulate>.tactic.from.seed.md',
49
+ 'librarian.tactics/<articulate>.tactic.with.templates.[article].md',
50
+ 'librarian.tactics/<articulate>.tone.bluecollar.[article][seed].md', // todo: review this
51
+ ]);
52
+
53
+ type StitcherDesired = GStitcher<
54
+ Threads<{
55
+ caller: RoleContext<
56
+ 'caller',
57
+ {
58
+ ask: string;
59
+ art: {
60
+ feedback: Artifact<typeof GitFile>;
61
+ 'foci.goal.concept': Focus['concept'];
62
+ 'foci.goal.context': Focus['context'];
63
+ templates: Artifact<typeof GitFile>[];
64
+ };
65
+ refs: Artifact<typeof GitFile>[];
66
+ }
67
+ >;
68
+ thinker: RoleContext<
69
+ 'thinker',
70
+ {
71
+ art: {
72
+ 'focus.concept': Focus['concept'];
73
+ 'focus.context': Focus['context'];
74
+ };
75
+ briefs: Artifact<typeof GitFile>[];
76
+ }
77
+ >;
78
+ }>,
79
+ ContextOpenAI & GStitcher['context'],
80
+ { content: string }
81
+ >;
82
+
83
+ const template = genTemplate<StitcherDesired['threads']>({
84
+ ref: { uri: getTemplatePathByCallerPath({ auto: true }) },
85
+ getVariables: async ({ threads }) => ({
86
+ ...(await getTemplateVarsFromRoleInherit({ thread: threads.thinker })),
87
+
88
+ guide: {
89
+ goal:
90
+ (await threads.caller.context.stash.art['foci.goal.concept'].get())
91
+ ?.content ||
92
+ UnexpectedCodePathError.throw('goal not declared', {
93
+ art: threads.caller.context.stash.art['foci.goal.concept'],
94
+ }),
95
+ feedback:
96
+ (await threads.caller.context.stash.art.feedback.get())?.content || '',
97
+ },
98
+
99
+ focus: {
100
+ context:
101
+ (await threads.thinker.context.stash.art['focus.context'].get())
102
+ ?.content ||
103
+ (await threads.caller.context.stash.art['foci.goal.context'].get()) // fallback to @[caller].focus[goal].context
104
+ ?.content ||
105
+ '',
106
+ concept:
107
+ (await threads.thinker.context.stash.art['focus.concept'].get())
108
+ ?.content || '',
109
+ },
110
+
111
+ templates: await getTemplateValFromArtifacts({
112
+ artifacts: [...threads.caller.context.stash.art.templates],
113
+ }),
114
+
115
+ skill: {
116
+ briefs: await getTemplateValFromArtifacts({
117
+ artifacts: [
118
+ ...BRIEFS_FOR_ARTICULATE,
119
+ ...threads.thinker.context.stash.briefs,
120
+ ],
121
+ }),
122
+ },
123
+
124
+ references: await getTemplateValFromArtifacts({
125
+ artifacts: threads.caller.context.stash.refs,
126
+ }),
127
+ }),
128
+ });
129
+
130
+ const stepImagine = genStepImagineViaTemplate<StitcherDesired>({
131
+ slug: '@[thinker]<articulate>',
132
+ stitchee: 'thinker',
133
+ readme: '',
134
+ template,
135
+ imagine: withRetry(
136
+ withTimeout(sdkOpenAi.imagine, { threshold: { seconds: 60 } }), // allow up to 60 sec, for longer files
137
+ ),
138
+ });
139
+
140
+ const stepPersist = genStepArtSet({
141
+ stitchee: 'thinker',
142
+ artee: 'focus.concept',
143
+ });
144
+
145
+ export const stepArticulate = asStitcherFlat<StitcherDesired>(
146
+ genStitchRoute({
147
+ slug: '@[thinker]<articulate>',
148
+ readme: '@[thinker]<articulate> -> [article]',
149
+ sequence: [stepImagine, stepPersist],
150
+ }),
151
+ );
152
+
153
+ export const loopArticulate = genLoopFeedback({
154
+ stitchee: 'thinker',
155
+ artee: 'focus.concept',
156
+ repeatee: stepArticulate,
157
+ });
@@ -0,0 +1,93 @@
1
+ # 🧩 .brief.catalog: Types of Jokes
2
+
3
+ ## 📊 Compressed Overview
4
+
5
+ | **Cluster** | **What** |
6
+ |---------------------|-------------------------------------------|
7
+ | **[Pun]** | A joke exploiting different meanings of a word or similar sounding words |
8
+ | **[Anecdote]** | A short, amusing story about a real incident or person |
9
+ | **[Slapstick]** | A style of humor involving exaggerated physical actions |
10
+ | **[One-liner]** | A concise joke delivered in a single line |
11
+ | **[Dark Humor]** | Humor that deals with serious, morbid, or taboo topics |
12
+
13
+ ---
14
+
15
+ ## 🎨 Clusters
16
+
17
+ ### 😋 **[Pun] — Play on Words**
18
+ A joke that relies on the humor in words with similar sounds or double meanings.
19
+ - **Homophonic Puns**
20
+ - Based on similarity in sound
21
+ - Example: "Time flies like an arrow; fruit flies like a banana."
22
+ - **Homographic Puns**
23
+ - Based on multiple meanings of a word
24
+ - Example: "I used to be a baker, but I couldn't make enough dough."
25
+ - **Compound Puns**
26
+ - Uses multiple puns in the same sentence
27
+ - Example: "The life of a patient of hypertension is always at steak."
28
+
29
+ ---
30
+
31
+ ### 📜 **[Anecdote] — Personal Story**
32
+ A short, amusing account of an actual personal experience or someone else's.
33
+ - **Humorous Anecdotes**
34
+ - Stories with funny twists
35
+ - Example: A tale about locking yourself out of the house in pajamas.
36
+ - **Historical Anecdotes**
37
+ - Amusing stories from history
38
+ - Example: The tale of Thomas Edison’s prank on Henry Ford.
39
+ - **Celebrities Anecdotes**
40
+ - Humorous incidents involving famous people
41
+ - Example: An amusing encounter between Marilyn Monroe and Einstein.
42
+
43
+ ---
44
+
45
+ ### 🎭 **[Slapstick] — Physical Comedy**
46
+ Comedy that emphasizes exaggerated physical actions, like falls, fake blows, etc.
47
+ - **Falling Humor**
48
+ - Comedy based on trips, slips, and falls
49
+ - Example: Characters slipping on a banana peel in old comedies.
50
+ - **Slap-Happy Smacks**
51
+ - Comedy based on exaggerated slaps or hits
52
+ - Example: Slapping someone with a rubber chicken.
53
+ - **Prop-Based Humor**
54
+ - Comedy using physical props
55
+ - Example: A pie to the face gag.
56
+
57
+ ---
58
+
59
+ ### ✏️ **[One-liner] — Brief and Witty**
60
+ A succinct and clever joke, delivered in one sentence.
61
+ - **Classic One-liners**
62
+ - Timeless, quick jokes
63
+ - Example: "I'm reading a book on anti-gravity. It's impossible to put down."
64
+ - **Observational One-liners**
65
+ - Jokes that comment on social observations
66
+ - Example: "Light travels faster than sound; this is why some people appear bright until they speak."
67
+ - **Self-Deprecating One-liners**
68
+ - Jokes where the teller makes fun of themselves
69
+ - Example: "I told my therapist about my fear of elevators, but the conversation had its ups and downs."
70
+
71
+ ---
72
+
73
+ ### 🌑 **[Dark Humor] — Edgy Comedy**
74
+ Humor that finds laughter in topics usually considered serious or taboo.
75
+ - **Macabre Jokes**
76
+ - Humor dealing with gruesome subjects
77
+ - Example: "I once swallowed a dictionary—it gave me thesaurus throat I ever had."
78
+ - **Taboo Topics**
79
+ - Comedy involving forbidden or sensitive subjects
80
+ - Example: Making light of awkward social norms.
81
+ - **Existential Humor**
82
+ - Jokes about life’s futility or absurdity
83
+ - Example: "Time flies when you’re having fun. Unfortunately, it flies even if you’re not."
84
+
85
+ ---
86
+
87
+ ## ✨ Insight
88
+ - **Puns** play with language for wit and surprise.
89
+ - **Anecdotes** deliver relatable or surprising slices of life.
90
+ - **Slapstick** leverages exaggerated physicality for immediate, visual laughter.
91
+ - **One-liners** compress humor into a single punchy sentence.
92
+ - **Dark humor** pushes boundaries using sensitive or grim topics creatively.
93
+ - Together, these types of jokes illustrate the diversity of humor, catering to various tastes and occasions by engaging different cognitive and emotional responses.
@@ -0,0 +1,84 @@
1
+ # 🧩 .brief.catalog: Types of Jokes
2
+
3
+ ## 📊 compressed overview
4
+
5
+ | **cluster** | **what** | **core element** |
6
+ |------------------|-------------------------------------------------|------------------------|
7
+ | **[puns]** | wordplay jokes that exploit multiple meanings | linguistic ambiguity |
8
+ | **[anecdotes]** | brief, amusing stories | storytelling |
9
+ | **[slapstick]** | physical humor involving exaggerated actions | physical expression |
10
+ | **[anti-jokes]** | jokes that subvert expectations for humor | unexpected seriousness |
11
+ | **[one-liners]** | concise, often witty jokes | brevity |
12
+ | **[observational]** | humor derived from everyday situations | relatability |
13
+ | **[satire]** | humor that criticizes societal norms | irony and critique |
14
+
15
+ ---
16
+
17
+ ## 🎨 clusters
18
+
19
+ ### 🎭 **[puns] — Wordplay and Linguistic Cleverness**
20
+ Puns play on words that have multiple meanings or similar sounds.
21
+ - **homophonic:** same sound, different meanings (e.g., "I used to be a baker, but I couldn't make enough dough.")
22
+ - **homographic:** same spelling, different meanings (e.g., "Time flies like an arrow; fruit flies like a banana.")
23
+ - **compound:** blends multiple word plays into a single joke
24
+
25
+ ---
26
+
27
+ ### 📚 **[anecdotes] — Amusing Stories from Life**
28
+ Anecdotes are short, humorous tales based on real-life events.
29
+ - **personal:** derived from the teller's own experiences
30
+ - **historical:** based on well-known figures or events with a humorous twist
31
+ - **fictional:** crafted stories made to resemble real experiences but with comedic outcomes
32
+
33
+ ---
34
+
35
+ ### 🤹 **[slapstick] — Physical and Extreme Comedy**
36
+ Slapstick involves exaggerated physical actions and situations.
37
+ - **visual gags:** humor through sight, with exaggerated expressions or setups
38
+ - **pratfalls:** intentional falls or accidents for comedic effect
39
+ - **mime:** non-verbal humor relying on exaggerated movement and expressions
40
+
41
+ ---
42
+
43
+ ### 🙃 **[anti-jokes] — Humor through Subversion**
44
+ Anti-jokes deliberately avoid traditional punchlines, creating humor through their lack.
45
+ - **literal:** tells the setup and delivers an expectedly dull outcome (e.g., "What's brown and sticky? A stick.")
46
+ - **overexplained:** excessively detailed punchlines that undermine the joke
47
+ - **dark:** uses bleak or serious conclusions for unexpected humor, often addressing sensitive subjects
48
+
49
+ ---
50
+
51
+ ### ✨ **[one-liners] — Brevity with Impact**
52
+ One-liners deliver humor in a single, impactful statement.
53
+ - **witty:** sharp, smart humor with clever word choice (e.g., "I'm on a whiskey diet... I've lost three days already.")
54
+ - **sarcastic:** uses irony to mock or convey contempt with humor
55
+ - **playful:** lighthearted and simple jokes that leave a quick smile
56
+
57
+ ---
58
+
59
+ ### 🔍 **[observational] — Everyday Humor**
60
+ Observational jokes find humor in common life experiences and observations.
61
+ - **situational:** based on common circumstances (e.g., "Have you ever noticed how...")
62
+ - **relatable:** focuses on universally shared experiences
63
+ - **insightful:** offers humorous insights into mundane activities
64
+
65
+ ---
66
+
67
+ ### 🎭 **[satire] — Social Critique through Comedy**
68
+ Satirical jokes use wit to criticize or expose societal issues.
69
+ - **parody:** imitating specific styles, works, or genres for a humorous effect
70
+ - **political:** addressing government or societal norms with irony
71
+ - **cultural:** highlighting differences or oddities in cultures humorously
72
+
73
+ ---
74
+
75
+ ## ✨ insight
76
+ - **puns** exploit linguistic nuances.
77
+ - **anecdotes** build humor through storytelling.
78
+ - **slapstick** uses exaggerated physicality.
79
+ - **anti-jokes** turn seriousness into humor.
80
+ - **one-liners** deliver sharp, quick laughs.
81
+ - **observational** connects through shared experiences.
82
+ - **satire** uses wit to critique societal norms.
83
+
84
+ These clusters reflect the diverse landscape of humor, each with its unique mechanism for eliciting laughter.
@@ -0,0 +1,8 @@
1
+ | **Joke Type** | **Description** |
2
+ |-------------------|--------------------------------------------------------------------|
3
+ | **Pun** | A form of wordplay that exploits multiple meanings of a term or similar-sounding words for comedic effect. |
4
+ | **Anecdote** | A short and amusing or interesting story about a real incident or person, often comedic. |
5
+ | **Slapstick** | A style of humor involving exaggerated physical actions or situations that do not involve verbal wit. |
6
+ | **Anti-joke** | A form of comedy that involves delivering a punchline that is deliberately unfunny or mundane. |
7
+ | **Observational** | Humor based on everyday life and situations, noted for highlighting the absurdity in the ordinary. |
8
+ | **Dark humor** | Comedy that finds humor in the morbid or taboo aspects of life, often dealing with grim subjects. |
@@ -0,0 +1,54 @@
1
+ # 🧩 .brief.catalog: different types of jokes
2
+
3
+ ## 📊 compressed overview
4
+
5
+ | **cluster** | **what** |
6
+ |--------------------|-------------------------------------|
7
+ | **[puns]** | wordplay exploiting different meanings|
8
+ | **[anecdotes]** | short, amusing stories |
9
+ | **[slapstick]** | physical comedy with exaggerated actions |
10
+ | **[anti-jokes]** | jokes that subvert traditional punchlines |
11
+
12
+ ---
13
+
14
+ ## 🎨 clusters
15
+
16
+ ### 🤪 **[puns] — play on words**
17
+ Puns create humor through clever use of language.
18
+ - rely on double meanings or phonetic similarities
19
+ - often used as icebreakers or in light humor
20
+ - examples: "Time flies like an arrow; fruit flies like a banana."
21
+
22
+ ---
23
+
24
+ ### 😂 **[anecdotes] — amusing stories**
25
+ Anecdotes are brief, entertaining stories about a real incident or person.
26
+ - aim to entertain or reveal a humorous truth
27
+ - often personal or relatable
28
+ - example: "I told my friend 10 jokes to get her to laugh. Sadly, no pun in ten did."
29
+
30
+ ---
31
+
32
+ ### 🤡 **[slapstick] — physical comedy**
33
+ Slapstick involves exaggerated physical actions, often in a comedic context.
34
+ - relies on visual and physical humor
35
+ - common in silent films and cartoons
36
+ - example: characters slipping on banana peels
37
+
38
+ ---
39
+
40
+ ### 🧐 **[anti-jokes] — subverting expectations**
41
+ Anti-jokes deliver humor by defying the expected punchline.
42
+ - play on the structure of traditional jokes
43
+ - often lead to literal or mundane conclusions
44
+ - example: "Why did the chicken cross the road? To get to the other side."
45
+
46
+ ---
47
+
48
+ ## ✨ insight
49
+ - **puns play with language**
50
+ - **anecdotes tell amusing stories**
51
+ - **slapstick uses physical comedy**
52
+ - **anti-jokes subvert expectations**
53
+
54
+ Jokes, as a form of humor, vary widely in style and effect. Each type leverages a unique mechanism to evoke laughter, demonstrating the broad spectrum of comedic expression.
@@ -0,0 +1,62 @@
1
+ # 🧩 .brief.catalog: Use Cases for Personas
2
+
3
+ ## 📊 compressed overview
4
+
5
+ | **cluster** | **what** | **benefit** |
6
+ |-------------|----------|-------------|
7
+ | **[Product Design]** | Utilizing personas to guide product features and functionality | Enhances user-centric design |
8
+ | **[Marketing Strategy]** | Crafting marketing messages and campaigns based on personas | Increases targeting precision |
9
+ | **[Customer Support]** | Tailoring support interactions to persona expectations | Improves customer satisfaction |
10
+ | **[Content Creation]** | Developing content that resonates with specific personas | Boosts engagement and retention |
11
+
12
+ ---
13
+
14
+ ## 🎨 clusters
15
+
16
+ ### 🎨 **[Product Design] — User-Centric Development**
17
+ Personas inform product features, interfaces, and flows by representing target users' needs and behaviors.
18
+ - prioritize user needs
19
+ - align product features with user expectations
20
+ - suboptimal navigation identified
21
+ - adjust based on persona feedback
22
+ - enhance usability through focused testing
23
+
24
+ ---
25
+
26
+ ### 📢 **[Marketing Strategy] — Precision Targeting**
27
+ Use personas to shape marketing campaigns and message tailoring for each group.
28
+ - develop clear, compelling messaging
29
+ - optimize campaign elements
30
+ - determine preferred channels
31
+ - select the right tone and style
32
+ - improve conversion rates by aligning with user motivations
33
+
34
+ ---
35
+
36
+ ### 🤝 **[Customer Support] — Contextual Interactions**
37
+ Tailor support processes and communications to align with persona profiles.
38
+ - personalize interactions
39
+ - expedite problem resolution
40
+ - preemptively address common issues
41
+ - use personas for empathy-building
42
+ - foster loyalty through understanding user contexts
43
+
44
+ ---
45
+
46
+ ### 📚 **[Content Creation] — Resonant Engagement**
47
+ Guide the creation of articles, videos, and other media to be relevant to target personas.
48
+ - create content that speaks directly to persona needs
49
+ - increase relatability
50
+ - utilize known preferences and concerns
51
+ - highlight benefits that resonate with personas
52
+ - drive engagement and sharing through tailored storytelling
53
+
54
+ ---
55
+
56
+ ## ✨ insight
57
+ - **product design** ensures user-centricity
58
+ - **marketing strategy** enhances targeting
59
+ - **customer support** personalizes service
60
+ - **content creation** increases engagement
61
+
62
+ Personas act as a critical lens for tailoring strategies across multiple business functions, ensuring efforts are coherent with audience expectations and fostering a deeper connection with users.
@@ -0,0 +1,64 @@
1
+ ## 🧩 .brief.catalog: Use Cases for Personas
2
+
3
+ ## 📊 Compressed Overview
4
+
5
+ | **Cluster** | **What** |
6
+ |-----------------------|---------------------------------------------------|
7
+ | **[Product Development]** | Using personas to guide the creation of products that meet user needs |
8
+ | **[Marketing Strategy]** | Leveraging personas to tailor marketing efforts and messages for target audiences |
9
+ | **[User Experience Design]** | Employing personas to enhance the usability and accessibility of digital interfaces |
10
+ | **[Customer Support]** | Utilizing personas to improve the effectiveness of support services |
11
+ | **[Training and Onboarding]** | Using personas to create targeted training materials for employees |
12
+
13
+ ---
14
+
15
+ ## 🎨 Clusters
16
+
17
+ ### 🎨 **Product Development — Enhance Product Relevance**
18
+ Personas help align product features with real user needs.
19
+ - Integrate user needs and pain points into product design.
20
+ - Prioritize features based on user motivations.
21
+ - Validate product ideas against persona scenarios.
22
+
23
+ ---
24
+
25
+ ### 📈 **Marketing Strategy — Optimize Messaging and Reach**
26
+ Personas aid in crafting tailored marketing messages.
27
+ - Segment audiences by demographic and behavioral traits.
28
+ - Refine value propositions based on persona insights.
29
+ - Identify the most effective channels for reaching target users.
30
+
31
+ ---
32
+
33
+ ### 💻 **User Experience Design — Improve Usability**
34
+ Personas inform interface and interaction design.
35
+ - Align design elements with user preferences and behaviors.
36
+ - Conduct usability testing with a focus on persona scenarios.
37
+ - Ensure accessibility for diverse user groups.
38
+
39
+ ---
40
+
41
+ ### 🛡️ **Customer Support — Enhance Service Delivery**
42
+ Personas support better customer interactions.
43
+ - Customize support strategies based on persona expectations.
44
+ - Develop FAQ and help resources tailored to common issues.
45
+ - Train support staff to address persona-specific challenges.
46
+
47
+ ---
48
+
49
+ ### 📚 **Training and Onboarding — Targeted Learning Materials**
50
+ Personas guide the development of training content.
51
+ - Design training programs that meet the specific needs of different employee personas.
52
+ - Tailor onboarding processes to align with new hires' backgrounds and skills.
53
+ - Evaluate training effectiveness through persona-driven feedback.
54
+
55
+ ---
56
+
57
+ ## ✨ Insight
58
+ - **Product Development optimizes relevance.**
59
+ - **Marketing Strategy refines targeting.**
60
+ - **User Experience Design enhances accessibility.**
61
+ - **Customer Support boosts service delivery.**
62
+ - **Training and Onboarding personalizes learning.**
63
+
64
+ Personas serve as a valuable tool in various contexts by providing detailed insights into user behaviors and needs, ultimately enhancing effectiveness and alignment with real-world scenarios.
@@ -0,0 +1,5 @@
1
+ catalogs instances of a concept, to organize them
2
+
3
+ ---
4
+
5
+ note, uses <instantiate> under the hood, to instantiate an instance of the doc.brief variant catalog
@@ -103,7 +103,7 @@ exports.SKILL_CATALOGIZE = (0, rhachet_1.genRoleSkill)({
103
103
  lookup: {
104
104
  apiKeyOpenai: {
105
105
  source: 'process.env',
106
- envar: 'PREP_OPENAI_KEY',
106
+ envar: 'OPENAI_API_KEY',
107
107
  desc: 'the openai key to use',
108
108
  type: 'string',
109
109
  },
@@ -1 +1 @@
1
- {"version":3,"file":"stepCatalogize.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AACjC,qCAA4E;AAC5E,+DAA6E;AAE7E,sEAAmE;AACnE,kEAA+D;AAC/D,yFAAsF;AACtF,gGAA6F;AAE7F,qDAAkD;AAErC,QAAA,gBAAgB,GAAG,IAAA,sBAAY,EAAC;IAC3C,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,+BAAc;IACrB,OAAO,EAAE;QACP,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,kCAAkC;gBACxC,IAAI,EAAE,QAAQ;aACf;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,yBAAyB;gBAC/B,IAAI,EAAE,SAAS;aAChB;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,wDAAwD;gBAC9D,IAAI,EAAE,SAAS;aAChB;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,oDAAoD;gBAC1D,IAAI,EAAE,SAAS;aAChB;SACF;QACD,MAAM,EAAE,CACN,KAAK,EAOL,EAAE,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QACrC,WAAW,EAAE,KAAK,EAAE,KAMnB,EAAE,EAAE;YACH,gDAAgD;YAChD,MAAM,MAAM,GAAG,IAAA,wCAAiB,EAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAA,yCAAkB,EACzB,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,EAAE,EACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;oBACD,OAAO,EAAE,IAAA,yCAAkB,EACzB,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,EAAE,EACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;iBACF;gBACD,QAAQ,EAAE,IAAA,yCAAkB,EAC1B,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,EAChC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;gBACD,eAAe,EAAE,IAAA,yCAAkB,EACjC,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,EAAE,EACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;gBACD,eAAe,EAAE,IAAA,yCAAkB,EACjC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,EACrB,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;gBACD,UAAU,EAAE,CACV,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,UAAU;oBACd,EAAE,KAAK,CAAC,GAAG,CAAC;qBACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;qBACtB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAA,gBAAI,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CACrD,CACF;qBACE,IAAI,EAAE;qBACN,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACjB,IAAA,yCAAkB,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/D;gBACH,MAAM,EACJ,KAAK,CAAC,MAAM;oBACV,EAAE,KAAK,CAAC,GAAG,CAAC;qBACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;qBACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,IAAA,yCAAkB,EAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC3D,IAAI,EAAE;aACZ,CAAC;YAEF,gCAAgC;YAChC,MAAM,WAAW,GAAW,MAAM,CAAC,KAAK,IAAI,EAAE;gBAC5C,qCAAqC;gBACrC,IAAI,KAAK,CAAC,IAAI;oBACZ,OAAO,CACL,CACE,MAAM,IAAA,yCAAkB,EACtB,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EACnB,EAAE,MAAM,EAAE,UAAU,EAAE,CACvB,CAAC,GAAG,EAAE,CACR,EAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CACxB,CAAC;gBAEJ,gCAAgC;gBAChC,OAAO,KAAK,CAAC,GAAG,CAAC;YACnB,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAE3D,sCAAsC;YACtC,MAAM,IAAA,qCAAiB,EAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,kCAAkC;YAE3G,OAAO;gBACL,MAAM,EAAE,MAAM,IAAA,sBAAY,EAAC;oBACzB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE;wBACL,GAAG,EAAE,EAAE;wBACP,GAAG,EAAE;4BACH,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;4BAC3C,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;4BAC3C,QAAQ,EAAE,SAAS,CAAC,QAAQ;yBAC7B;wBACD,IAAI,EAAE,SAAS,CAAC,UAAU;qBAC3B;iBACF,CAAC;gBACF,OAAO,EAAE,MAAM,IAAA,sBAAY,EAAC;oBAC1B,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL,GAAG,EAAE;4BACH,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC;4BAC3C,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC;yBAC5C;wBACD,MAAM,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACF,CAAC;aACH,CAAC;QACJ,CAAC;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,QAAQ;aACf;SACF;QACD,MAAM,EAAE,CAAC,KAAK,EAAqC,EAAE,CACnD,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;QACxC,WAAW,EAAE,GAAG,EAAE;YAChB,OAAO;gBACL,GAAG,IAAA,mCAAgB,GAAE;gBACrB,GAAG,IAAA,uCAAkB,GAAE;gBACvB,GAAG,IAAA,+BAAqB,EAAC;oBACvB,MAAM,EAAE,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,wBAAwB;iBAChF,CAAC;aACH,CAAC;QACJ,CAAC;KACF;IACD,MAAM,EAAE,EAAE;CACX,CAAC,CAAC"}
1
+ {"version":3,"file":"stepCatalogize.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts"],"names":[],"mappings":"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"}