rhachet-roles-bhrain 0.1.1 → 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 (159) 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/architect/briefs/brains.replic/arc000.sources.[catalog].md +178 -0
  34. package/dist/roles/architect/briefs/brains.replic/arc101.concept.llm.[article].md +25 -0
  35. package/dist/roles/architect/briefs/brains.replic/arc102.concept.repl.[article].md +33 -0
  36. package/dist/roles/architect/briefs/brains.replic/arc103.concept.replic-brain.[article].md +35 -0
  37. package/dist/roles/architect/briefs/brains.replic/arc104.concept.context-window.[article].md +40 -0
  38. package/dist/roles/architect/briefs/brains.replic/arc105.concept.system-prompt.[article].md +44 -0
  39. package/dist/roles/architect/briefs/brains.replic/arc106.concept.tool-definition.[article].md +59 -0
  40. package/dist/roles/architect/briefs/brains.replic/arc107.concept.tool-call.[article].md +54 -0
  41. package/dist/roles/architect/briefs/brains.replic/arc108.concept.tool-result.[article].md +58 -0
  42. package/dist/roles/architect/briefs/brains.replic/arc109.concept.agentic-loop.[article].md +62 -0
  43. package/dist/roles/architect/briefs/brains.replic/arc110.concept.reasoning-trace.[article].md +58 -0
  44. package/dist/roles/architect/briefs/brains.replic/arc111.concept.react-pattern.[article].md +65 -0
  45. package/dist/roles/architect/briefs/brains.replic/arc112.concept.reflexion-pattern.[article].md +68 -0
  46. package/dist/roles/architect/briefs/brains.replic/arc113.concept.tree-of-thoughts.[article].md +76 -0
  47. package/dist/roles/architect/briefs/brains.replic/arc114.concept.self-consistency.[article].md +73 -0
  48. package/dist/roles/architect/briefs/brains.replic/arc115.concept.lats-pattern.[article].md +78 -0
  49. package/dist/roles/architect/briefs/brains.replic/arc116.concept.context-compaction.[article].md +71 -0
  50. package/dist/roles/architect/briefs/brains.replic/arc117.concept.subagent.[article].md +71 -0
  51. package/dist/roles/architect/briefs/brains.replic/arc118.concept.extended-thinking.[article].md +69 -0
  52. package/dist/roles/architect/briefs/brains.replic/arc119.concept.mcp.[article].md +78 -0
  53. package/dist/roles/architect/briefs/brains.replic/arc120.concept.session.[article].md +67 -0
  54. package/dist/roles/architect/briefs/brains.replic/arc121.concept.message.[article].md +79 -0
  55. package/dist/roles/architect/briefs/brains.replic/arc122.concept.plan-and-solve.[article].md +80 -0
  56. package/dist/roles/architect/briefs/brains.replic/arc150.concepts.treestruct.[article].md +126 -0
  57. package/dist/roles/architect/briefs/brains.replic/arc201.blueprint.claude-code.[article].md +417 -0
  58. package/dist/roles/architect/briefs/brains.replic/arc201.blueprint.claude-code.zoomin.reason.[article].md +507 -0
  59. package/dist/roles/architect/briefs/brains.replic/arc202.blueprint.codex.[article].md +354 -0
  60. package/dist/roles/architect/briefs/brains.replic/arc300.blueprints.comparison.[catalog].md +284 -0
  61. package/dist/roles/getRoleRegistry.js +2 -1
  62. package/dist/roles/getRoleRegistry.js.map +1 -1
  63. package/dist/roles/getRoleRegistry.readme.js +6 -0
  64. package/dist/roles/getRoleRegistry.readme.js.map +1 -1
  65. package/dist/roles/reviewer/briefs/review.tactics.md +60 -0
  66. package/dist/roles/reviewer/getReviewerRole.d.ts +6 -0
  67. package/dist/roles/reviewer/getReviewerRole.js +80 -0
  68. package/dist/roles/reviewer/getReviewerRole.js.map +1 -0
  69. package/dist/roles/reviewer/skills/review/review.d.ts +57 -0
  70. package/dist/roles/reviewer/skills/review/review.js +445 -0
  71. package/dist/roles/reviewer/skills/review/review.js.map +1 -0
  72. package/dist/roles/reviewer/skills/review/review.sh +21 -0
  73. package/dist/roles/reviewer/skills/review/review.ts +575 -0
  74. package/dist/roles/thinker/briefs/term=brain.atomic_vs_replic.md +8 -0
  75. package/dist/roles/thinker/getThinkerRole.js +1 -1
  76. package/dist/roles/thinker/getThinkerRole.js.map +1 -1
  77. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19..i1.via_chatgpt.md +47 -0
  78. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19.i2.via_rhachet.md +60 -0
  79. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.md +62 -0
  80. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.with_feedback.md +89 -0
  81. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i2.md +47 -0
  82. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i1.md +44 -0
  83. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i2.md +63 -0
  84. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i3.md +51 -0
  85. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i1.md +62 -0
  86. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i2.md +49 -0
  87. package/dist/roles/thinker/skills/brief.articulate/.readme.md +0 -0
  88. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js +1 -1
  89. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js.map +1 -1
  90. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.ts +168 -0
  91. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.ts +157 -0
  92. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i1.md +93 -0
  93. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i2.md +84 -0
  94. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i1.no_focus_context.md +8 -0
  95. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i2.md +54 -0
  96. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i1.md +62 -0
  97. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i2.md +64 -0
  98. package/dist/roles/thinker/skills/brief.catalogize/.readme.md +5 -0
  99. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js +1 -1
  100. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js.map +1 -1
  101. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts +173 -0
  102. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.ts +132 -0
  103. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i4.md +3 -0
  104. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i5.md +3 -0
  105. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i6.md +3 -0
  106. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.md +3 -0
  107. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i1.md +52 -0
  108. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i2.md +51 -0
  109. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i3.md +47 -0
  110. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i4.md +62 -0
  111. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i5.md +47 -0
  112. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i6.md +53 -0
  113. package/dist/roles/thinker/skills/brief.demonstrate/.readme +3 -0
  114. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js +1 -1
  115. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js.map +1 -1
  116. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.ts +190 -0
  117. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.ts +164 -0
  118. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i1.md +72 -0
  119. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i2.md +53 -0
  120. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i3.which_objectives.md +58 -0
  121. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i5.which_personas.md +64 -0
  122. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i1.md +67 -0
  123. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i2.md +49 -0
  124. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i3.md +59 -0
  125. package/dist/roles/thinker/skills/khue.cluster/.readme.md +0 -0
  126. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js +1 -1
  127. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js.map +1 -1
  128. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.ts +174 -0
  129. package/dist/roles/thinker/skills/khue.cluster/stepCluster.ts +150 -0
  130. package/dist/roles/thinker/skills/khue.decompose/.readme.md +9 -0
  131. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i2.md +23 -0
  132. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i3.md +23 -0
  133. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.varieties.v2025_08_17.i1.md +23 -0
  134. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i1.md +9 -0
  135. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i2.md +9 -0
  136. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i3.md +23 -0
  137. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i4.folksy.md +9 -0
  138. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i5.folksy.md +23 -0
  139. package/dist/roles/thinker/skills/khue.diverge/.readme.md +0 -0
  140. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js +1 -1
  141. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js.map +1 -1
  142. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts +149 -0
  143. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.ts +151 -0
  144. package/dist/roles/thinker/skills/khue.encompose/.readme.md +7 -0
  145. package/dist/roles/thinker/skills/khue.instantiate/.readme.md +14 -0
  146. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js +1 -1
  147. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js.map +1 -1
  148. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts +190 -0
  149. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.ts +132 -0
  150. package/dist/roles/thinker/skills/khue.triage/.demo/laughs.v2025_08_18.i1.md +29 -0
  151. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i1.md +86 -0
  152. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i2.md +68 -0
  153. package/dist/roles/thinker/skills/khue.triage/.readme.md +0 -0
  154. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js +1 -1
  155. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js.map +1 -1
  156. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.ts +174 -0
  157. package/dist/roles/thinker/skills/khue.triage/stepTriage.ts +153 -0
  158. package/package.json +9 -7
  159. package/readme.md +55 -0
@@ -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":"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"}
1
+ {"version":3,"file":"stepCatalogize.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ import { glob } from 'fast-glob';
2
+ import { enrollThread, genContextStitchTrail, genRoleSkill } from 'rhachet';
3
+ import { genArtifactGitFile, getArtifactObsDir } from 'rhachet-artifact-git';
4
+
5
+ import { genContextLogTrail } from '@src/.test/genContextLogTrail';
6
+ import { getContextOpenAI } from '@src/.test/getContextOpenAI';
7
+ import { setSkillOutputSrc } from '@src/domain.operations/artifact/setSkillOutputSrc';
8
+ import { genStitchStreamToDisk } from '@src/domain.operations/context/genStitchStreamToDisk';
9
+
10
+ import { loopCatalogize } from './stepCatalogize';
11
+
12
+ export const SKILL_CATALOGIZE = genRoleSkill({
13
+ slug: 'catalogize',
14
+ route: loopCatalogize,
15
+ threads: {
16
+ lookup: {
17
+ output: {
18
+ source: 'process.argv',
19
+ char: 'o',
20
+ desc: 'the output file to write against',
21
+ type: 'string',
22
+ },
23
+ goal: {
24
+ source: 'process.argv',
25
+ char: 'g',
26
+ desc: 'the goal of the request',
27
+ type: '?string',
28
+ },
29
+ references: {
30
+ source: 'process.argv',
31
+ char: 'f',
32
+ desc: 'reference files to to use, if any; delimit with commas',
33
+ type: '?string',
34
+ },
35
+ briefs: {
36
+ source: 'process.argv',
37
+ char: 'b',
38
+ desc: 'brief files to to use, if any; delimit with commas',
39
+ type: '?string',
40
+ },
41
+ },
42
+ assess: (
43
+ input,
44
+ ): input is {
45
+ output: string;
46
+ goal: string;
47
+ references: string;
48
+ briefs: string;
49
+ ask: string;
50
+ } => typeof input.output === 'string',
51
+ instantiate: async (input: {
52
+ output: string;
53
+ goal: string;
54
+ references: string;
55
+ briefs: string;
56
+ ask: string;
57
+ }) => {
58
+ // declare where all the artifacts will be found
59
+ const obsDir = getArtifactObsDir({ uri: input.output });
60
+ const artifacts = {
61
+ goal: {
62
+ concept: genArtifactGitFile(
63
+ { uri: obsDir + '.goal.concept.md' },
64
+ { versions: true },
65
+ ),
66
+ context: genArtifactGitFile(
67
+ { uri: obsDir + '.goal.context.md' },
68
+ { versions: true },
69
+ ),
70
+ },
71
+ feedback: genArtifactGitFile(
72
+ { uri: obsDir + '.feedback.md' },
73
+ { versions: true },
74
+ ),
75
+ 'focus.context': genArtifactGitFile(
76
+ { uri: obsDir + '.focus.context.md' },
77
+ { versions: true },
78
+ ),
79
+ 'focus.concept': genArtifactGitFile(
80
+ { uri: input.output },
81
+ { versions: true },
82
+ ),
83
+ references: (
84
+ await Promise.all(
85
+ input.references
86
+ ?.split(',')
87
+ .filter((uri) => !!uri)
88
+ .map(async (pattern) => await glob(pattern)) ?? [], // support glob references
89
+ )
90
+ )
91
+ .flat()
92
+ .map((reference) =>
93
+ genArtifactGitFile({ uri: reference }, { access: 'readonly' }),
94
+ ),
95
+ briefs:
96
+ input.briefs
97
+ ?.split(',')
98
+ .filter((uri) => !!uri)
99
+ .map((brief) =>
100
+ genArtifactGitFile({ uri: brief }, { access: 'readonly' }),
101
+ ) ?? [],
102
+ };
103
+
104
+ // detect the goal of the caller
105
+ const goalConcept: string = await (async () => {
106
+ // if goal explicitly defined, use it
107
+ if (input.goal)
108
+ return (
109
+ (
110
+ await genArtifactGitFile(
111
+ { uri: input.goal },
112
+ { access: 'readonly' },
113
+ ).get()
114
+ )?.content ?? input.ask
115
+ );
116
+
117
+ // otherwise, assume its the ask
118
+ return input.ask;
119
+ })();
120
+ await artifacts.goal.concept.set({ content: goalConcept });
121
+
122
+ // add an src file for historic record
123
+ await setSkillOutputSrc({ skillUri: 'bhrain.catalogize', opts: input }); // todo: get skillUri from context
124
+
125
+ return {
126
+ caller: await enrollThread({
127
+ role: 'caller',
128
+ stash: {
129
+ ask: '',
130
+ art: {
131
+ 'foci.goal.concept': artifacts.goal.concept,
132
+ 'foci.goal.context': artifacts.goal.context,
133
+ feedback: artifacts.feedback,
134
+ },
135
+ refs: artifacts.references,
136
+ },
137
+ }),
138
+ thinker: await enrollThread({
139
+ role: 'thinker',
140
+ stash: {
141
+ art: {
142
+ 'focus.context': artifacts['focus.context'],
143
+ 'focus.concept': artifacts['focus.concept'],
144
+ },
145
+ briefs: artifacts.briefs,
146
+ },
147
+ }),
148
+ };
149
+ },
150
+ },
151
+ context: {
152
+ lookup: {
153
+ apiKeyOpenai: {
154
+ source: 'process.env',
155
+ envar: 'OPENAI_API_KEY',
156
+ desc: 'the openai key to use',
157
+ type: 'string',
158
+ },
159
+ },
160
+ assess: (input): input is { apiKeyOpenai: string } =>
161
+ typeof input.apiKeyOpenai === 'string',
162
+ instantiate: () => {
163
+ return {
164
+ ...getContextOpenAI(),
165
+ ...genContextLogTrail(),
166
+ ...genContextStitchTrail({
167
+ stream: genStitchStreamToDisk({ dir: process.cwd() }), // stream events to disk
168
+ }),
169
+ };
170
+ },
171
+ },
172
+ readme: '',
173
+ });
@@ -0,0 +1,132 @@
1
+ import {
2
+ asStitcherFlat,
3
+ type GStitcher,
4
+ genStitchRoute,
5
+ type RoleContext,
6
+ StitchStepCompute,
7
+ type Threads,
8
+ } from 'rhachet';
9
+ import type { Artifact } from 'rhachet-artifact';
10
+ import type { GitFile } from 'rhachet-artifact-git';
11
+
12
+ import type { Focus } from '@src/_topublish/rhachet-roles-bhrain/src/domain/objects/Focus';
13
+ import type { ContextOpenAI } from '@src/access/sdk/sdkOpenAi';
14
+ import { genLoopFeedback } from '@src/domain.operations/artifact/genLoopFeedback';
15
+ import { getThinkerBriefs } from '@src/roles/thinker/getThinkerBrief';
16
+ import { stepInstantiate } from '@src/roles/thinker/skills/khue.instantiate/stepInstantiate';
17
+
18
+ const BRIEFS_FOR_CATALOGIZE = getThinkerBriefs([
19
+ 'cognition/cog021.structs.catalog.md',
20
+ 'knowledge/kno201.documents.catalogs.[article].md',
21
+ 'knowledge/kno201.documents._.[catalog].md',
22
+ 'knowledge/kno301.doc.enbrief.2._.[catalog].md',
23
+ 'knowledge/kno301.doc.enbrief.2.catalogize.[article].md',
24
+ 'knowledge/kno301.doc.enbrief.2.catalogize.[lesson].md',
25
+ 'knowledge/kno301.doc.enbrief.1.from_instances.[demo].color.md',
26
+ 'knowledge/kno301.doc.enbrief.1.from_instances.[demo].gravity.md',
27
+ 'knowledge/kno301.doc.enbrief.1.from_instances.[demo].entropy.md',
28
+ 'knowledge/kno501.doc.enbrief.catalog.structure1.[article].md',
29
+ 'knowledge/kno501.doc.enbrief.catalog.structure1.[lesson].template.md',
30
+ ]);
31
+
32
+ type StitcherDesired = GStitcher<
33
+ Threads<{
34
+ caller: RoleContext<
35
+ 'caller',
36
+ {
37
+ art: {
38
+ feedback: Artifact<typeof GitFile>;
39
+ 'foci.goal.concept': Focus['concept'];
40
+ 'foci.goal.context': Focus['context'];
41
+ };
42
+ refs: Artifact<typeof GitFile>[];
43
+ }
44
+ >;
45
+ thinker: RoleContext<
46
+ 'thinker',
47
+ {
48
+ art: {
49
+ 'focus.concept': Focus['concept'];
50
+ 'focus.context': Focus['context'];
51
+ };
52
+ briefs: Artifact<typeof GitFile>[];
53
+ }
54
+ >;
55
+ }>,
56
+ ContextOpenAI & GStitcher['context'],
57
+ { content: string }
58
+ >;
59
+
60
+ const stepAddThinkerBriefs = new StitchStepCompute<
61
+ GStitcher<
62
+ StitcherDesired['threads'],
63
+ GStitcher['context'],
64
+ { briefs: { before: string[]; after: string[] } }
65
+ >
66
+ >({
67
+ slug: '@[thinker]<getBriefs>',
68
+ readme: "adds a set of briefs to the @[thinker]'s context",
69
+ form: 'COMPUTE',
70
+ stitchee: 'thinker',
71
+ invoke: async ({ threads }) => {
72
+ // identify the prior briefs
73
+ const briefsBeforeUnsanitized = threads.thinker.context.stash.briefs;
74
+
75
+ // drop the briefs if they were already included (we'll put them at the end again, so they're the last thought)
76
+ const briefsBefore = briefsBeforeUnsanitized.filter(
77
+ (b) => !BRIEFS_FOR_CATALOGIZE.includes(b),
78
+ );
79
+
80
+ // append these briefs
81
+ const briefsAfter = [...briefsBefore, ...BRIEFS_FOR_CATALOGIZE];
82
+
83
+ // add the briefs to the thinker's context
84
+ threads.thinker.context.stash.briefs = briefsAfter;
85
+
86
+ // extend the focus context to explicitly know to use these briefs; // todo: put this into its own step for observability in stitch trail
87
+ const focusContextBefore = (
88
+ await threads.thinker.context.stash.art['focus.context'].get()
89
+ )?.content;
90
+ const focusContextToAdd = `
91
+ instantiate the concept as a [catalog] via the <catalogize> mechanism, defined in your briefs.
92
+
93
+ in particular, leverage 'catalog.structure.s1' when possible
94
+ `.trim();
95
+ const focusContextAfter = [
96
+ focusContextBefore,
97
+ '',
98
+ '---',
99
+ '',
100
+ focusContextToAdd,
101
+ ].join('\n');
102
+ await threads.thinker.context.stash.art['focus.context'].set({
103
+ content: focusContextAfter,
104
+ });
105
+
106
+ // and then report that we did so
107
+ return {
108
+ input: null,
109
+ output: {
110
+ briefs: {
111
+ before: briefsBefore.map((artifact) => artifact.ref.uri),
112
+ after: briefsAfter.map((artifact) => artifact.ref.uri),
113
+ },
114
+ },
115
+ };
116
+ },
117
+ });
118
+
119
+ export const stepCatalogize = asStitcherFlat<StitcherDesired>(
120
+ genStitchRoute({
121
+ slug: '@[thinker]<catalogize>',
122
+ readme:
123
+ '@[thinker]<getBriefs> -> @[thinker]<instantiate>[catalog] -> [instance][catalog]',
124
+ sequence: [stepAddThinkerBriefs, stepInstantiate],
125
+ }),
126
+ );
127
+
128
+ export const loopCatalogize = genLoopFeedback({
129
+ stitchee: 'thinker',
130
+ artee: 'focus.concept',
131
+ repeatee: stepCatalogize,
132
+ });
@@ -0,0 +1,3 @@
1
+ concept = user journey
2
+
3
+ demonstrate via `walkthrough` = `a road tripper planning a route with a digital map for scenic stops`
@@ -0,0 +1,3 @@
1
+ concept = [user journey] x [a road tripper planning a route with a digital map for scenic stops]
2
+
3
+ demonstrate via `walkthrough`
@@ -0,0 +1,3 @@
1
+ concept = [user journey]
2
+
3
+ demonstrate via `walkthrough` = [a road tripper planning a route with a digital map for scenic stops]
@@ -0,0 +1,3 @@
1
+ concept = [user journey]
2
+
3
+ demonstrate via `walkthrough` = [a road tripper planning a route with a digital map for scenic stops]
@@ -0,0 +1,52 @@
1
+ # 🧩 .brief.demo: `road trip planning` via `example` = `digital map for scenic stops`
2
+
3
+ ## 💡 concept
4
+
5
+ road trip planning involves designing a journey that includes specific routes, stops, and schedules, optimized for a desired travel experience. digital maps enhance this process by providing real-time navigation, route customization, and access to information on scenic and practical stops.
6
+
7
+ ## ❓ question
8
+
9
+ > what is an example of road trip planning?
10
+
11
+ ## 📌 example: using a digital map for scenic stops
12
+
13
+ ### 📌.📖 what
14
+
15
+ > what does using a digital map for scenic stops entail?
16
+
17
+ using a digital map for planning a road trip focuses on selecting routes that accommodate scenic stops, enhancing travel experiences with curated detours and sights along the journey. it involves inputting start and end points, and choosing routes that prioritize scenic value or landmark visits, supported by digital mapping features.
18
+
19
+ - **route selection**
20
+ - selecting pathways that maximize scenic value over directness
21
+ - *example:* choosing coastal highways over interstates for ocean views
22
+ - adjusting the route for side trips to landmarks or attractions
23
+
24
+ - **integration of technology**
25
+ - using apps like google maps or waze to identify scenic spots and detours
26
+ - *example:* employing satellite view to spot parks or bodies of water
27
+ - accessing real-time traffic updates to adjust plans dynamically
28
+
29
+ - **planning stops**
30
+ - identifying notable stops for rest, photos, or local experiences
31
+ - *example:* marking national parks or historical sites as waypoints
32
+ - arranging timing to ensure stops align with daylight or operational hours
33
+
34
+ ### 📌.🔍 how
35
+
36
+ > how is using a digital map for scenic stops an example of road trip planning?
37
+
38
+ using a digital map to plan a road trip with scenic stops exemplifies effective journey design by incorporating technology to enhance traveler experience and optimize route efficiency.
39
+
40
+ - **experience enhancement**
41
+ - improves the quality of the journey by including scenic and cultural landmarks
42
+ - offers flexibility in planning, allowing for spontaneous detours based on interest
43
+
44
+ - **efficiency and convenience**
45
+ - digital route planning minimizes travel stress with instant updates and alternative routing
46
+ - streamlines location scouting, reducing the need for manual guidebooks or paper maps
47
+
48
+ - **technology integration**
49
+ - leverages apps for multiple purposes: navigation, traffic management, and sightseeing
50
+ - supports informed choices with access to reviews, ratings, and user-generated content
51
+
52
+ together, these aspects create a comprehensive example of utilizing contemporary tools to refine and enrich the road trip experience.
@@ -0,0 +1,51 @@
1
+ # 🧩 .brief.demo: `road trip planning` via `walkthrough` = `scenic stops with a digital map`
2
+
3
+ ## 💡 concept
4
+ road trip planning involves organizing a journey by selecting routes, destinations, and activities that align with the traveler's interests, using tools such as digital maps to enhance the overall experience.
5
+
6
+ ## ❓ question
7
+ > how can a road tripper plan a route using a digital map for scenic stops?
8
+
9
+ ## 📌 walkthrough: planning a route with scenic stops
10
+
11
+ ### 📌.📖 what
12
+
13
+ > what is involved in planning a scenic road trip route using a digital map?
14
+
15
+ this planning process involves utilizing a digital map to identify and select scenic stops along a road trip path. it requires understanding both the map's functionalities and the tripper's preferences to create a satisfying and memorable travel experience.
16
+
17
+ - **digital map features**
18
+ - **search and discovery**: enter destinations and view routes; use filters to find scenic stops
19
+ - example: input "scenic highways" or "national parks" into the search bar to see options along the route
20
+ - **custom markers and notes**: pin locations and add personal notes for future reference
21
+ - example: mark "lookout point" and add a note: "great for sunsets"
22
+ - **real-time updates**: access live traffic conditions and estimated travel times
23
+ - example: toggle real-time traffic to avoid congested areas
24
+
25
+ - **trip optimization**
26
+ - **route customization**: adjust the path for desired stops and detours
27
+ - example: drag route line to include a favorite hiking trail
28
+ - **itinerary planning**: set time slots for each stop to maximize the day
29
+ - example: plan a morning stop at a lakeside park, followed by a lunch break at a local diner
30
+ - **alternative routes**: explore multiple paths to balance scenic beauty with travel efficiency
31
+ - example: compare scenic coastal routes vs. direct highways for time and experience balance
32
+
33
+ ### 📌.🔍 how
34
+
35
+ > how does this walkthrough demonstrate effective road trip planning with a digital map?
36
+
37
+ this walkthrough showcases road trip planning by illustrating the integration of technology, personal interests, and logistical considerations. it highlights the map's role in facilitating a personalized, efficient journey while maintaining flexibility.
38
+
39
+ - **technology integration**
40
+ - **enhanced exploration**: digital maps provide comprehensive visual data and search capabilities to uncover less-known scenic spots
41
+ - **real-time adaptability**: live traffic and weather updates allow for dynamic adjustments, ensuring a smooth journey
42
+
43
+ - **personalized travel experience**
44
+ - **interest alignment**: filtering for scenic stops ensures visits to places that match personal preferences
45
+ - **documenting and sharing**: custom markers and notes allow for shared experiences and future trip reference, enriching the travel narrative
46
+
47
+ - **logistical balance**
48
+ - **optimized scheduling**: itinerary tools balance time at each stop with overall trip progress, preventing rushed or leisurely days
49
+ - **efficient navigation**: contour the route with both speed and scenic enjoyment, leveraging real-time feedback for the best path forward
50
+
51
+ together, these elements articulate a seamless approach to road trip planning that combines strategy with spontaneity, all anchored by digital map tools.
@@ -0,0 +1,47 @@
1
+ # 🧩 .brief.demo: `user journey` via `walkthrough`
2
+
3
+ ## 💡 concept
4
+
5
+ a user journey represents the experience and steps a user takes to achieve a specific goal within a system or service, often visualized in stages to improve understanding of user interactions and touchpoints.
6
+
7
+ ## ❓ question
8
+
9
+ > how is the user journey demonstrated via a walkthrough?
10
+
11
+ ## 📌 example: road tripper planning a route with a digital map for scenic stops
12
+
13
+ ### 📌.📖 what
14
+
15
+ > what is the road tripper planning journey?
16
+
17
+ a road tripper uses a digital map application to plan a route that includes scenic stops. the journey involves several stages, from initial setup to final navigation, focusing on interaction points with the application.
18
+
19
+ - **initial setup**:
20
+ - **goal identification**: user decides on a scenic road trip and opens the digital map app.
21
+ - **preferences input**: user selects preferences for scenic spots and desired driving distance per day.
22
+
23
+ - **route planning**:
24
+ - **exploration and selection**: user explores available scenic stops suggested by the app, using filters for categories like nature, historical sites, or local cuisine.
25
+ - **itinerary building**: user selects preferred stops and adds them to the route.
26
+
27
+ - **navigation**:
28
+ - **real-time directions**: user follows turn-by-turn navigation provided by the app.
29
+ - **adaptive updates**: app suggests alternate routes or stops based on current traffic or user preferences.
30
+
31
+ ### 📌.🔍 how
32
+
33
+ > how does the user journey exemplify its concept via a walkthrough?
34
+
35
+ the user journey map illustrates touchpoints and decisions a road tripper encounters within the digital map app, providing practical insights into user interaction:
36
+
37
+ - **touchpoints**:
38
+ - engaging with app features like inputting preferences, exploring options, and building a route shows how users move through phases.
39
+
40
+ - **interaction flow**:
41
+ - navigating the map and making decisions on stops offers insight into user decision-making processes and potential friction points.
42
+
43
+ - **user engagement**:
44
+ - the seamless process from initial setup to navigation demonstrates user experience and app functionality, revealing areas for enhancement or innovation.
45
+
46
+ - **feedback loops**:
47
+ - how the app adapts based on user feedback (e.g., preferences and real-time navigation changes) illustrates user-centered design's importance in enhancing journey satisfaction.
@@ -0,0 +1,62 @@
1
+ # 🧩 .brief.demo: `user journey` via `walkthrough` = `a road tripper planning a route with a digital map for scenic stops`
2
+
3
+ ## 💡 concept
4
+
5
+ a user journey is a sequence of interactions a user experiences when engaging with a product or service to achieve a specific goal. it focuses on the touchpoints between the user and the system that facilitate the user's end goal, illustrating the user's needs, actions, emotions, and perceptions.
6
+
7
+ ## ❓ question
8
+
9
+ > how can we demonstrate a user journey through a walkthrough?
10
+
11
+ ## 📌 walkthrough: planning a road trip with a digital map
12
+
13
+ ### 📌.📖 what
14
+
15
+ > what is the user journey of planning a road trip with a digital map?
16
+
17
+ a digital map is used by a road tripper to plan a route with scenic spots, aligning with the essence of a user journey through sequential, user-centric touchpoints. this journey involves:
18
+
19
+ - **initial decision**
20
+ - the road tripper decides to embark on a scenic road trip and needs to plan the route.
21
+ - emotionally, the user is excited and anticipates discovering new places.
22
+
23
+ - **launching the map**
24
+ - the user opens a digital map application to begin the planning process.
25
+ - the interface is the first point of interaction, offering a familiar and intuitive layout, generating comfort.
26
+
27
+ - **entering the start and end points**
28
+ - the user inputs their current location and desired endpoint to generate potential routes.
29
+ - user feels engaged and hopeful as multiple route options are presented.
30
+
31
+ - **selecting a scenic route**
32
+ - the map suggests alternative routes emphasizing scenic views and attractions.
33
+ - by filtering for scenic routes, the user feels adventurous and curious.
34
+
35
+ - **adding stops**
36
+ - user explores the map to add points of interest like parks, historical sites, and diners along the route.
37
+ - excitement grows as the user customizes the trip, adding layers of experiences.
38
+
39
+ - **adjusting for time and preferences**
40
+ - user evaluates travel time and makes adjustments based on personal preferences for driving duration and stop frequency.
41
+ - combination of relaxation and control as the trip is tailored further.
42
+
43
+ - **final review and saving the itinerary**
44
+ - user reviews the completed itinerary within the app and saves it for navigation.
45
+ - satisfaction is high due to the interactive nature and personalized trip ahead.
46
+
47
+ - **embarking on the journey**
48
+ - the final step involves activating navigation and starting the adventure.
49
+ - anticipatory thrill evident as the journey formally begins.
50
+
51
+ ### 📌.🔍 how
52
+
53
+ > how does this journey exemplify a user journey?
54
+
55
+ the road trip planning journey exemplifies a user journey by showcasing:
56
+
57
+ - **goal-oriented interaction**: at each stage, the user's actions are directed towards the ultimate goal of creating a memorable road trip.
58
+ - **touchpoints and feedback loops**: interactions with the digital map generate continuous feedback, enhancing user satisfaction and decision-making.
59
+ - **emotional progression**: from excitement and curiosity at inception to satisfaction and anticipation at realization, the journey encapsulates the user's emotional landscape.
60
+ - **user-centered design**: the map app is designed to surface scenic options, allow customization, and assist in trip optimization, all centered around enhancing user experience.
61
+
62
+ this walkthrough renders abstract elements of user journeys tangible through a scenario many can relate to, enhancing understanding via a concrete instance.