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.
- package/dist/.test/getContextOpenAI.js +1 -1
- package/dist/.test/getContextOpenAI.js.map +1 -1
- package/dist/domain.operations/review/compileReviewPrompt.d.ts +22 -0
- package/dist/domain.operations/review/compileReviewPrompt.js +95 -0
- package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -0
- package/dist/domain.operations/review/enumFilesFromDiffs.d.ts +8 -0
- package/dist/domain.operations/review/enumFilesFromDiffs.js +74 -0
- package/dist/domain.operations/review/enumFilesFromDiffs.js.map +1 -0
- package/dist/domain.operations/review/enumFilesFromGlob.d.ts +8 -0
- package/dist/domain.operations/review/enumFilesFromGlob.js +31 -0
- package/dist/domain.operations/review/enumFilesFromGlob.js.map +1 -0
- package/dist/domain.operations/review/estimateTokenCount.d.ts +9 -0
- package/dist/domain.operations/review/estimateTokenCount.js +20 -0
- package/dist/domain.operations/review/estimateTokenCount.js.map +1 -0
- package/dist/domain.operations/review/formatReviewOutput.d.ts +14 -0
- package/dist/domain.operations/review/formatReviewOutput.js +42 -0
- package/dist/domain.operations/review/formatReviewOutput.js.map +1 -0
- package/dist/domain.operations/review/genTokenBreakdownMarkdown.d.ts +19 -0
- package/dist/domain.operations/review/genTokenBreakdownMarkdown.js +110 -0
- package/dist/domain.operations/review/genTokenBreakdownMarkdown.js.map +1 -0
- package/dist/domain.operations/review/genTokenBreakdownReport.d.ts +24 -0
- package/dist/domain.operations/review/genTokenBreakdownReport.js +64 -0
- package/dist/domain.operations/review/genTokenBreakdownReport.js.map +1 -0
- package/dist/domain.operations/review/invokeClaudeCode.d.ts +22 -0
- package/dist/domain.operations/review/invokeClaudeCode.js +92 -0
- package/dist/domain.operations/review/invokeClaudeCode.js.map +1 -0
- package/dist/domain.operations/review/writeInputArtifacts.d.ts +27 -0
- package/dist/domain.operations/review/writeInputArtifacts.js +50 -0
- package/dist/domain.operations/review/writeInputArtifacts.js.map +1 -0
- package/dist/domain.operations/review/writeOutputArtifacts.d.ts +12 -0
- package/dist/domain.operations/review/writeOutputArtifacts.js +46 -0
- package/dist/domain.operations/review/writeOutputArtifacts.js.map +1 -0
- package/dist/roles/getRoleRegistry.js +2 -1
- package/dist/roles/getRoleRegistry.js.map +1 -1
- package/dist/roles/getRoleRegistry.readme.js +6 -0
- package/dist/roles/getRoleRegistry.readme.js.map +1 -1
- package/dist/roles/reviewer/briefs/review.tactics.md +60 -0
- package/dist/roles/reviewer/getReviewerRole.d.ts +6 -0
- package/dist/roles/reviewer/getReviewerRole.js +80 -0
- package/dist/roles/reviewer/getReviewerRole.js.map +1 -0
- package/dist/roles/reviewer/skills/review/review.d.ts +57 -0
- package/dist/roles/reviewer/skills/review/review.js +445 -0
- package/dist/roles/reviewer/skills/review/review.js.map +1 -0
- package/dist/roles/reviewer/skills/review/review.sh +21 -0
- package/dist/roles/reviewer/skills/review/review.ts +575 -0
- package/dist/roles/thinker/getThinkerRole.js +1 -1
- package/dist/roles/thinker/getThinkerRole.js.map +1 -1
- package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19..i1.via_chatgpt.md +47 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19.i2.via_rhachet.md +60 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.md +62 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.with_feedback.md +89 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i2.md +47 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i1.md +44 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i2.md +63 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i3.md +51 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i1.md +62 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i2.md +49 -0
- package/dist/roles/thinker/skills/brief.articulate/.readme.md +0 -0
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js +1 -1
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js.map +1 -1
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.ts +168 -0
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.ts +157 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i1.md +93 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i2.md +84 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i1.no_focus_context.md +8 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i2.md +54 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i1.md +62 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i2.md +64 -0
- package/dist/roles/thinker/skills/brief.catalogize/.readme.md +5 -0
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js +1 -1
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js.map +1 -1
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts +173 -0
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.ts +132 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i4.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i5.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i6.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i1.md +52 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i2.md +51 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i3.md +47 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i4.md +62 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i5.md +47 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i6.md +53 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.readme +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js +1 -1
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js.map +1 -1
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.ts +190 -0
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.ts +164 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i1.md +72 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i2.md +53 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i3.which_objectives.md +58 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i5.which_personas.md +64 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i1.md +67 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i2.md +49 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i3.md +59 -0
- package/dist/roles/thinker/skills/khue.cluster/.readme.md +0 -0
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.ts +174 -0
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.ts +150 -0
- package/dist/roles/thinker/skills/khue.decompose/.readme.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i2.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i3.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/joke.varieties.v2025_08_17.i1.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i1.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i2.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i3.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i4.folksy.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i5.folksy.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.readme.md +0 -0
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts +149 -0
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.ts +151 -0
- package/dist/roles/thinker/skills/khue.encompose/.readme.md +7 -0
- package/dist/roles/thinker/skills/khue.instantiate/.readme.md +14 -0
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts +190 -0
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.ts +132 -0
- package/dist/roles/thinker/skills/khue.triage/.demo/laughs.v2025_08_18.i1.md +29 -0
- package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i1.md +86 -0
- package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i2.md +68 -0
- package/dist/roles/thinker/skills/khue.triage/.readme.md +0 -0
- package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.ts +174 -0
- package/dist/roles/thinker/skills/khue.triage/stepTriage.ts +153 -0
- package/package.json +7 -6
- package/readme.md +55 -0
|
@@ -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
|
+
});
|
package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i1.md
ADDED
|
@@ -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.
|
package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i2.md
ADDED
|
@@ -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.
|
package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i3.md
ADDED
|
@@ -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.
|
package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i4.md
ADDED
|
@@ -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.
|
package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i5.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
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 the complete experience a user has when interacting with a product or service, from initial discovery through usage and beyond. It maps every touchpoint and path a user may take, often represented visually to understand and improve user experiences.
|
|
6
|
+
|
|
7
|
+
## β Question
|
|
8
|
+
|
|
9
|
+
> How does a road tripper plan a route with a digital map for scenic stops?
|
|
10
|
+
|
|
11
|
+
## π Walkthrough: Planning a Scenic Road Trip with a Digital Map
|
|
12
|
+
|
|
13
|
+
### π.π What
|
|
14
|
+
|
|
15
|
+
> What does the road trip planning journey involve?
|
|
16
|
+
|
|
17
|
+
1. **Preparation Phase**
|
|
18
|
+
- **Define Goals**: The road tripper determines the primary goal of the trip (e.g., visiting national parks, coastal drives).
|
|
19
|
+
- **Select Tools**: They choose a digital mapping tool (e.g., Google Maps, Waze) for route planning, considering features like traffic updates, offline maps, and user reviews.
|
|
20
|
+
|
|
21
|
+
2. **Route Planning Phase**
|
|
22
|
+
- **Initial Route Input**: The road tripper inputs starting point and destination into the mapping tool.
|
|
23
|
+
- **Customizing the Path**: They explore suggested routes, comparing distance, time, and scenic detour options.
|
|
24
|
+
- **Scenic Stops Identification**: Using the mapβs search features, they identify scenic spots along the route, such as trails, overlooks, and local attractions.
|
|
25
|
+
- **Incorporate Stops**: Selected stops are added to the itinerary, balancing desired locations with travel time.
|
|
26
|
+
|
|
27
|
+
3. **Logistical Coordination**
|
|
28
|
+
- **Accommodation Search**: Based on route and stops, find accommodations for overnight stays, factoring in proximity to scenic locations.
|
|
29
|
+
- **Optimize for Time and Experience**: Adjust departure times for optimal arrival at stops during peak scenic conditions (e.g., sunset views).
|
|
30
|
+
- **Resource Planning**: Check for necessary resources (e.g., fuel stations, rest areas) along the planned route.
|
|
31
|
+
|
|
32
|
+
4. **Execution Phase**
|
|
33
|
+
- **Real-Time Navigation**: During the trip, they use GPS for real-time updates and re-routing if needed due to traffic or spontaneous detours.
|
|
34
|
+
- **Experience Amplification**: Leverage map features like user reviews and photos to enhance visits to planned scenic stops.
|
|
35
|
+
|
|
36
|
+
### π.π How
|
|
37
|
+
|
|
38
|
+
> How does this planning exemplify a user journey?
|
|
39
|
+
|
|
40
|
+
This user journey exemplifies the concept through the following elements:
|
|
41
|
+
|
|
42
|
+
- **Touchpoints Mapping**: Every interaction with the digital map, from initial search to real-time navigation, is a touchpoint designed for seamless user experience.
|
|
43
|
+
- **Goal-Oriented Interaction**: The journey is aligned with the userβs goal of exploring scenic stops, driving their engagement and decision-making processes.
|
|
44
|
+
- **Iterative Path Customization**: The use of real-time data and user feedback loops within the digital tool allows for dynamic and responsive journey customization, enhancing user satisfaction.
|
|
45
|
+
- **Experience Personalization**: Incorporates personalized preferences for scenic routes versus faster routes, illustrating user-centric design.
|
|
46
|
+
|
|
47
|
+
This walkthrough comprehensively captures how the digital mapping tool facilitates a meaningful user journey for road trippers focusing on scenic stops.
|
package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i6.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# π§© .brief.demo: `user journey` via `walkthrough`
|
|
2
|
+
|
|
3
|
+
## π‘ Concept
|
|
4
|
+
|
|
5
|
+
A user journey is the path a user takes when interacting with a service or product to achieve a specific goal, mapped out to understand user experiences, touchpoints, and obstacles.
|
|
6
|
+
|
|
7
|
+
## β Question
|
|
8
|
+
|
|
9
|
+
> How can a user journey be demonstrated via a walkthrough?
|
|
10
|
+
|
|
11
|
+
## π Walkthrough: A Road Tripper Planning a Route with a Digital Map for Scenic Stops
|
|
12
|
+
|
|
13
|
+
### π.π What
|
|
14
|
+
|
|
15
|
+
> What is the scenario?
|
|
16
|
+
|
|
17
|
+
- **Context**: A road tripper named Alex uses a digital map service to plan a route featuring scenic stops across the country.
|
|
18
|
+
- **Purpose**: To ensure the journey is enjoyable, with opportunities to experience nature, culture, and landmarks.
|
|
19
|
+
- **Tools**: A smartphone with a digital map application loaded with features like route planning, attraction highlights, and user reviews.
|
|
20
|
+
|
|
21
|
+
### Key Steps in the Walkthrough:
|
|
22
|
+
|
|
23
|
+
1. **Initial Planning**
|
|
24
|
+
- Alex opens the digital map application and inputs the destination city.
|
|
25
|
+
- The app displays multiple route options with estimated travel times and scenic ratings.
|
|
26
|
+
|
|
27
|
+
2. **Route Selection**
|
|
28
|
+
- Alex selects a route optimized for scenic beauty, as indicated by user reviews and attraction icons along the map.
|
|
29
|
+
- The chosen route includes highlights like National Parks, quaint towns, and roadside attractions.
|
|
30
|
+
|
|
31
|
+
3. **Customization**
|
|
32
|
+
- Alex uses the "Add Stops" feature to integrate recommended scenic viewpoints and rest areas into the trip.
|
|
33
|
+
- The map recalculates the journey with these additional waypoints, showing updated travel times.
|
|
34
|
+
|
|
35
|
+
4. **Live Navigation**
|
|
36
|
+
- During the trip, Alex uses turn-by-turn navigation, which provides audio cues for upcoming attractions.
|
|
37
|
+
- Real-time traffic updates and road conditions adjust the route dynamically to avoid delays.
|
|
38
|
+
|
|
39
|
+
5. **Feedback and Reflection**
|
|
40
|
+
- Post-trip, Alex uses the app to rate the attractions and route experience, contributing to the community insights.
|
|
41
|
+
- The app prompts Alex to save the trip as a future reference or share with other users planning similar journeys.
|
|
42
|
+
|
|
43
|
+
### π.π How
|
|
44
|
+
|
|
45
|
+
> How does this walkthrough demonstrate a user journey?
|
|
46
|
+
|
|
47
|
+
- **Engagement with Technology**: Highlights interaction with the app's features to plan and execute an enriching journey.
|
|
48
|
+
- **User-Centric Design**: Shows how the app assists in optimizing the journey, suggesting alternatives and customizations tailored to user preferences.
|
|
49
|
+
- **Experience Enrichment**: Demonstrates how digital tools enhance the journey by integrating real-time data and community feedback.
|
|
50
|
+
- **Journey Mapping**: Captures the essence of a user journey by following Alex's experiences from planning to execution, reflecting the stages of exploration, decision-making, and reflection.
|
|
51
|
+
- **Feedback Loop**: Illustrates the app's role in creating a seamless experience while encouraging continuous improvement through user insights.
|
|
52
|
+
|
|
53
|
+
This walkthrough encapsulates the user journey of leveraging technology for enhanced trip experiences, reflecting the interplay between user actions, technology, and feedback mechanisms.
|