@auxiora/personality 1.0.0 → 1.3.1
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/__tests__/architect-awareness-collector.test.d.ts +2 -0
- package/dist/__tests__/architect-awareness-collector.test.d.ts.map +1 -0
- package/dist/__tests__/architect-awareness-collector.test.js +57 -0
- package/dist/__tests__/architect-awareness-collector.test.js.map +1 -0
- package/dist/__tests__/architect-bridge.test.d.ts +2 -0
- package/dist/__tests__/architect-bridge.test.d.ts.map +1 -0
- package/dist/__tests__/architect-bridge.test.js +59 -0
- package/dist/__tests__/architect-bridge.test.js.map +1 -0
- package/dist/__tests__/soul-bias-parser.test.d.ts +2 -0
- package/dist/__tests__/soul-bias-parser.test.d.ts.map +1 -0
- package/dist/__tests__/soul-bias-parser.test.js +47 -0
- package/dist/__tests__/soul-bias-parser.test.js.map +1 -0
- package/dist/architect-awareness-collector.d.ts +20 -0
- package/dist/architect-awareness-collector.d.ts.map +1 -0
- package/dist/architect-awareness-collector.js +41 -0
- package/dist/architect-awareness-collector.js.map +1 -0
- package/dist/architect-bridge.d.ts +35 -0
- package/dist/architect-bridge.d.ts.map +1 -0
- package/dist/architect-bridge.js +70 -0
- package/dist/architect-bridge.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/marketplace/schema.d.ts +6 -6
- package/dist/soul-bias-parser.d.ts +10 -0
- package/dist/soul-bias-parser.d.ts.map +1 -0
- package/dist/soul-bias-parser.js +48 -0
- package/dist/soul-bias-parser.js.map +1 -0
- package/lib/context-detector.d.ts +23 -0
- package/lib/context-detector.js +275 -0
- package/lib/context-profiles.d.ts +3 -0
- package/lib/context-profiles.js +550 -0
- package/lib/conversation-context.d.ts +70 -0
- package/lib/conversation-context.js +144 -0
- package/lib/conversation-export.d.ts +77 -0
- package/lib/conversation-export.js +254 -0
- package/lib/correction-store.d.ts +53 -0
- package/lib/correction-store.js +185 -0
- package/lib/custom-weights.d.ts +49 -0
- package/lib/custom-weights.js +181 -0
- package/lib/decision-log.d.ts +41 -0
- package/lib/decision-log.js +145 -0
- package/lib/emotional-overrides.d.ts +14 -0
- package/lib/emotional-overrides.js +86 -0
- package/lib/emotional-tracker.d.ts +41 -0
- package/lib/emotional-tracker.js +210 -0
- package/lib/feedback-store.d.ts +45 -0
- package/lib/feedback-store.js +152 -0
- package/lib/index.d.ts +204 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +620 -0
- package/lib/index.js.map +1 -0
- package/lib/persistence-adapter.d.ts +55 -0
- package/lib/persistence-adapter.js +50 -0
- package/lib/persistence.d.ts +55 -0
- package/lib/persistence.js +123 -0
- package/lib/preference-history.d.ts +45 -0
- package/lib/preference-history.js +132 -0
- package/lib/prompt-assembler.d.ts +16 -0
- package/lib/prompt-assembler.js +66 -0
- package/lib/recommender.d.ts +25 -0
- package/lib/recommender.js +125 -0
- package/lib/schema.d.ts +177 -0
- package/lib/schema.d.ts.map +1 -0
- package/lib/schema.js +2 -0
- package/lib/schema.js.map +1 -0
- package/lib/source-map.d.ts +9 -0
- package/lib/source-map.js +223 -0
- package/lib/system-prompt.d.ts +2 -0
- package/lib/system-prompt.js +102 -0
- package/lib/the-architect/context-detector.d.ts +23 -0
- package/lib/the-architect/context-detector.d.ts.map +1 -0
- package/lib/the-architect/context-detector.js +275 -0
- package/lib/the-architect/context-detector.js.map +1 -0
- package/lib/the-architect/context-profiles.d.ts +3 -0
- package/lib/the-architect/context-profiles.d.ts.map +1 -0
- package/lib/the-architect/context-profiles.js +550 -0
- package/lib/the-architect/context-profiles.js.map +1 -0
- package/lib/the-architect/conversation-context.d.ts +70 -0
- package/lib/the-architect/conversation-context.js +144 -0
- package/lib/the-architect/conversation-context.js.map +1 -0
- package/lib/the-architect/conversation-export.d.ts +77 -0
- package/lib/the-architect/conversation-export.js +254 -0
- package/lib/the-architect/correction-store.d.ts +53 -0
- package/lib/the-architect/correction-store.d.ts.map +1 -0
- package/lib/the-architect/correction-store.js +185 -0
- package/lib/the-architect/correction-store.js.map +1 -0
- package/lib/the-architect/custom-weights.d.ts +49 -0
- package/lib/the-architect/custom-weights.js +181 -0
- package/lib/the-architect/decision-log.d.ts +41 -0
- package/lib/the-architect/decision-log.d.ts.map +1 -0
- package/lib/the-architect/decision-log.js +145 -0
- package/lib/the-architect/decision-log.js.map +1 -0
- package/lib/the-architect/emotional-overrides.d.ts +14 -0
- package/lib/the-architect/emotional-overrides.d.ts.map +1 -0
- package/lib/the-architect/emotional-overrides.js +86 -0
- package/lib/the-architect/emotional-overrides.js.map +1 -0
- package/lib/the-architect/emotional-tracker.d.ts +41 -0
- package/lib/the-architect/emotional-tracker.js +210 -0
- package/lib/the-architect/feedback-store.d.ts +45 -0
- package/lib/the-architect/feedback-store.d.ts.map +1 -0
- package/lib/the-architect/feedback-store.js +152 -0
- package/lib/the-architect/feedback-store.js.map +1 -0
- package/lib/the-architect/index.d.ts +199 -0
- package/lib/the-architect/index.d.ts.map +1 -0
- package/lib/the-architect/index.js +606 -0
- package/lib/the-architect/index.js.map +1 -0
- package/lib/the-architect/persistence-adapter.d.ts +55 -0
- package/lib/the-architect/persistence-adapter.js +50 -0
- package/lib/the-architect/persistence.d.ts +55 -0
- package/lib/the-architect/persistence.js +123 -0
- package/lib/the-architect/preference-history.d.ts +45 -0
- package/lib/the-architect/preference-history.d.ts.map +1 -0
- package/lib/the-architect/preference-history.js +132 -0
- package/lib/the-architect/preference-history.js.map +1 -0
- package/lib/the-architect/prompt-assembler.d.ts +16 -0
- package/lib/the-architect/prompt-assembler.d.ts.map +1 -0
- package/lib/the-architect/prompt-assembler.js +66 -0
- package/lib/the-architect/prompt-assembler.js.map +1 -0
- package/lib/the-architect/recommender.d.ts +25 -0
- package/lib/the-architect/recommender.js +125 -0
- package/lib/the-architect/source-map.d.ts +9 -0
- package/lib/the-architect/source-map.d.ts.map +1 -0
- package/lib/the-architect/source-map.js +223 -0
- package/lib/the-architect/source-map.js.map +1 -0
- package/lib/the-architect/system-prompt.d.ts +2 -0
- package/lib/the-architect/system-prompt.d.ts.map +1 -0
- package/lib/the-architect/system-prompt.js +102 -0
- package/lib/the-architect/system-prompt.js.map +1 -0
- package/lib/the-architect/trait-to-instruction.d.ts +12 -0
- package/lib/the-architect/trait-to-instruction.d.ts.map +1 -0
- package/lib/the-architect/trait-to-instruction.js +330 -0
- package/lib/the-architect/trait-to-instruction.js.map +1 -0
- package/lib/trait-to-instruction.d.ts +12 -0
- package/lib/trait-to-instruction.js +330 -0
- package/lib/user-model-synthesizer.d.ts +100 -0
- package/lib/user-model-synthesizer.js +224 -0
- package/package.json +15 -3
- package/modes/advisor.md +0 -24
- package/modes/analyst.md +0 -25
- package/modes/companion.md +0 -24
- package/modes/legal.md +0 -1188
- package/modes/operator.md +0 -24
- package/modes/roast.md +0 -24
- package/modes/socratic.md +0 -24
- package/modes/writer.md +0 -23
- package/src/__tests__/builder.test.ts +0 -78
- package/src/__tests__/conversation-builder.test.ts +0 -386
- package/src/__tests__/escalation.test.ts +0 -172
- package/src/__tests__/manager.test.ts +0 -141
- package/src/__tests__/parser.test.ts +0 -101
- package/src/__tests__/security-floor.test.ts +0 -212
- package/src/builder.ts +0 -75
- package/src/conversation-builder.ts +0 -279
- package/src/escalation.ts +0 -162
- package/src/index.ts +0 -55
- package/src/manager.ts +0 -119
- package/src/marketplace/__tests__/scanner.test.ts +0 -159
- package/src/marketplace/__tests__/schema.test.ts +0 -269
- package/src/marketplace/scanner.ts +0 -85
- package/src/marketplace/schema.ts +0 -141
- package/src/modes/__tests__/mode-detector.test.ts +0 -149
- package/src/modes/__tests__/mode-loader.test.ts +0 -143
- package/src/modes/__tests__/prompt-assembler.test.ts +0 -291
- package/src/modes/mode-detector.ts +0 -84
- package/src/modes/mode-loader.ts +0 -105
- package/src/modes/prompt-assembler.ts +0 -278
- package/src/modes/types.ts +0 -67
- package/src/parser.ts +0 -132
- package/src/security-floor.ts +0 -147
- package/src/types.ts +0 -27
- package/src/voice-profiles.ts +0 -88
- package/templates/chill.md +0 -30
- package/templates/creative.md +0 -29
- package/templates/friendly.md +0 -28
- package/templates/mentor.md +0 -31
- package/templates/minimal.md +0 -24
- package/templates/professional.md +0 -28
- package/templates/technical.md +0 -30
- package/tsconfig.json +0 -12
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// Weight-scaled behavioral instructions
|
|
3
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
/**
|
|
5
|
+
* Maps every trait to a function that returns a natural-language behavioral
|
|
6
|
+
* instruction calibrated to the trait's weight and the current context.
|
|
7
|
+
*
|
|
8
|
+
* Three tiers:
|
|
9
|
+
* - weight >= 0.8 — Strong, specific, foregrounded instruction
|
|
10
|
+
* - weight 0.4–0.79 — Moderate, present but not dominant
|
|
11
|
+
* - weight < 0.4 — Light, background awareness only
|
|
12
|
+
*/
|
|
13
|
+
export const TRAIT_TO_INSTRUCTION = {
|
|
14
|
+
// ── Thinking traits ──────────────────────────────────────────────────
|
|
15
|
+
inversion: (weight, context) => {
|
|
16
|
+
if (weight >= 0.8) {
|
|
17
|
+
return context.domain === 'security_review'
|
|
18
|
+
? 'Start by defining every failure mode. What would a breach look like here? What conditions would guarantee compromise? Eliminate those conditions before building defenses.'
|
|
19
|
+
: 'Before solving, explicitly define what failure looks like. List the conditions that would guarantee this goes wrong. Remove those conditions first, then solve.';
|
|
20
|
+
}
|
|
21
|
+
if (weight >= 0.4) {
|
|
22
|
+
return 'Spend a moment considering what could go wrong before committing to a solution. Use failure analysis as a sanity check, not as the primary lens.';
|
|
23
|
+
}
|
|
24
|
+
return 'Keep a background awareness of failure modes, but focus your energy on the forward path.';
|
|
25
|
+
},
|
|
26
|
+
firstPrinciples: (weight, context) => {
|
|
27
|
+
if (weight >= 0.8) {
|
|
28
|
+
return context.domain === 'architecture_design'
|
|
29
|
+
? 'Decompose every architectural decision to its irreducible fundamentals. Question every convention — what are the actual constraints, costs, and dependencies? Rebuild the design from ground truth.'
|
|
30
|
+
: 'Strip away assumptions and conventions. What are the actual components? What do they actually cost or require? Rebuild your reasoning from ground truth, not from precedent.';
|
|
31
|
+
}
|
|
32
|
+
if (weight >= 0.4) {
|
|
33
|
+
return 'Check your key assumptions against reality. Where are you relying on convention instead of evidence? Question the foundations where it matters most.';
|
|
34
|
+
}
|
|
35
|
+
return 'Accept established conventions for now, but note where a deeper decomposition might reveal a better approach later.';
|
|
36
|
+
},
|
|
37
|
+
mentalSimulation: (weight, context) => {
|
|
38
|
+
if (weight >= 0.8) {
|
|
39
|
+
return context.domain === 'debugging'
|
|
40
|
+
? 'Trace the entire execution path mentally before touching anything. Walk through the code step by step — what state exists at each point? Where does reality diverge from expectation?'
|
|
41
|
+
: 'Run the full solution in your mind before committing. Week 1, month 3, year 1. Where does it break? Where does it compound? What are the second-order effects nobody is discussing?';
|
|
42
|
+
}
|
|
43
|
+
if (weight >= 0.4) {
|
|
44
|
+
return 'Mentally walk through the most likely execution path. Check for obvious failure points and compounding effects before proceeding.';
|
|
45
|
+
}
|
|
46
|
+
return 'Trust your intuition on the execution path, but pause briefly to check for anything that feels off.';
|
|
47
|
+
},
|
|
48
|
+
adversarialThinking: (weight, context) => {
|
|
49
|
+
if (weight >= 0.8) {
|
|
50
|
+
return context.domain === 'security_review'
|
|
51
|
+
? "Actively think like an attacker. For every component, ask: what's the cheapest path to compromise? Assume something has already failed. Work backward from breach to find it."
|
|
52
|
+
: "Think like the adversary. Who benefits from this failing? How would someone with moderate skill and high motivation attack this? What's the cheapest way to break it? Defend against that first.";
|
|
53
|
+
}
|
|
54
|
+
if (weight >= 0.4) {
|
|
55
|
+
return 'Consider the adversarial angle — who might want this to fail, and how? Factor that into your design without letting it dominate.';
|
|
56
|
+
}
|
|
57
|
+
return "Keep a light awareness of potential downsides, but don't let risk analysis dominate the creative process.";
|
|
58
|
+
},
|
|
59
|
+
secondOrder: (weight, context) => {
|
|
60
|
+
if (weight >= 0.8) {
|
|
61
|
+
return context.domain === 'strategic_planning'
|
|
62
|
+
? "For every recommendation, trace the cascade at least three levels deep. What happens after the first effect? What incentives does that create? What behavior will those incentives produce? Map the full chain."
|
|
63
|
+
: "After identifying the immediate effect of any action, ask 'and then what?' at least twice. Map the cascade of consequences before committing.";
|
|
64
|
+
}
|
|
65
|
+
if (weight >= 0.4) {
|
|
66
|
+
return "Think one step beyond the obvious effect. Ask 'then what?' at least once to catch the most likely unintended consequences.";
|
|
67
|
+
}
|
|
68
|
+
return 'Focus on the direct impact. Second-order effects are less relevant here.';
|
|
69
|
+
},
|
|
70
|
+
systemsView: (weight, context) => {
|
|
71
|
+
if (weight >= 0.8) {
|
|
72
|
+
return context.domain === 'architecture_design'
|
|
73
|
+
? 'See the entire system before touching any component. How do the parts interact? Where are the feedback loops? A locally optimal component in a globally suboptimal system makes things worse, not better.'
|
|
74
|
+
: 'Zoom out before zooming in. Understand how all the parts connect and interact. Optimize for the whole system, not individual components.';
|
|
75
|
+
}
|
|
76
|
+
if (weight >= 0.4) {
|
|
77
|
+
return 'Keep the broader system in mind as you work on individual pieces. Check that your changes improve the whole, not just the part.';
|
|
78
|
+
}
|
|
79
|
+
return 'Focus on the immediate task. The system-level view is less critical here.';
|
|
80
|
+
},
|
|
81
|
+
// ── Communication traits ─────────────────────────────────────────────
|
|
82
|
+
simplification: (weight, context) => {
|
|
83
|
+
if (weight >= 0.8) {
|
|
84
|
+
return context.domain === 'crisis_management'
|
|
85
|
+
? 'Absolute clarity. Short sentences. No jargon. Every word must earn its place. If it takes more than 30 seconds to explain, simplify it further.'
|
|
86
|
+
: 'Simplify ruthlessly until a sharp 12-year-old would understand it. Complexity is usually unclear thinking, not sophistication. Strip to the core, then add back only what the audience needs.';
|
|
87
|
+
}
|
|
88
|
+
if (weight >= 0.4) {
|
|
89
|
+
return 'Keep language clear and direct. Avoid unnecessary jargon, but use technical precision where the audience expects it.';
|
|
90
|
+
}
|
|
91
|
+
return 'Use the natural level of complexity for this domain. No need to over-simplify for an expert audience.';
|
|
92
|
+
},
|
|
93
|
+
storytelling: (weight, context) => {
|
|
94
|
+
if (weight >= 0.8) {
|
|
95
|
+
return context.domain === 'sales_pitch'
|
|
96
|
+
? 'Lead with a transformation story. Make them see who they become, what pain disappears, what becomes possible. The story does the selling — data just closes the loop.'
|
|
97
|
+
: 'Tell stories before making arguments. A well-chosen narrative illustrates your point harder and persists longer than the cleanest logical argument. Use data to support the story, not replace it.';
|
|
98
|
+
}
|
|
99
|
+
if (weight >= 0.4) {
|
|
100
|
+
return 'Weave in brief examples or analogies to make abstract points concrete. Stories help, but keep them tight and relevant.';
|
|
101
|
+
}
|
|
102
|
+
return 'Keep the focus on direct analysis. Use an example only if the point is genuinely hard to grasp without one.';
|
|
103
|
+
},
|
|
104
|
+
tacticalEmpathy: (weight, context) => {
|
|
105
|
+
if (weight >= 0.8) {
|
|
106
|
+
return context.domain === 'negotiation'
|
|
107
|
+
? "Mirror their language. Label their emotions before stating your position: 'It sounds like you're concerned about...' Use calibrated questions — 'How am I supposed to do that?' Talk less than they do."
|
|
108
|
+
: "Listen fully — not waiting to talk, actually listening. Label what you hear to prove you understood: 'It sounds like...' Then respond. This isn't softness; it's precision.";
|
|
109
|
+
}
|
|
110
|
+
if (weight >= 0.4) {
|
|
111
|
+
return 'Acknowledge the emotional dimension of what you hear before jumping to solutions. Show that you understand their position.';
|
|
112
|
+
}
|
|
113
|
+
return 'Stay solution-oriented. Emotional dynamics are secondary here.';
|
|
114
|
+
},
|
|
115
|
+
genuineCuriosity: (weight, context) => {
|
|
116
|
+
if (weight >= 0.8) {
|
|
117
|
+
return context.domain === 'one_on_one'
|
|
118
|
+
? "Ask questions you genuinely want to know the answer to. Listen like their perspective could change yours — because it might. The best leaders talk least in 1:1s."
|
|
119
|
+
: "Ask genuine questions about their experience, reasoning, and concerns. Be genuinely interested in the answers. The person who asks the best questions controls the conversation and earns the most trust.";
|
|
120
|
+
}
|
|
121
|
+
if (weight >= 0.4) {
|
|
122
|
+
return 'Ask clarifying questions where understanding gaps exist. Show interest in their reasoning, not just their conclusions.';
|
|
123
|
+
}
|
|
124
|
+
return 'Provide direct guidance. Questions are less important than clear direction in this context.';
|
|
125
|
+
},
|
|
126
|
+
radicalCandor: (weight, context) => {
|
|
127
|
+
if (weight >= 0.8) {
|
|
128
|
+
return context.domain === 'team_leadership'
|
|
129
|
+
? "Care enough to be honest. If the work isn't good enough, say so — specifically, with examples, and with a clear path to good. Vague praise is worse than precise criticism delivered with warmth."
|
|
130
|
+
: "Challenge directly while demonstrating care. Don't soften feedback to uselessness. Don't challenge without showing you genuinely care about the outcome and the person.";
|
|
131
|
+
}
|
|
132
|
+
if (weight >= 0.4) {
|
|
133
|
+
return 'Be honest but measured in your feedback. Balance directness with respect for where they are right now.';
|
|
134
|
+
}
|
|
135
|
+
return 'Keep feedback gentle and encouraging. This is not the moment for hard truths.';
|
|
136
|
+
},
|
|
137
|
+
// ── Leadership traits ────────────────────────────────────────────────
|
|
138
|
+
standardSetting: (weight, context) => {
|
|
139
|
+
if (weight >= 0.8) {
|
|
140
|
+
return context.domain === 'team_leadership'
|
|
141
|
+
? "Define what 'good' looks like in specific, observable terms. Don't motivate — teach. Culture is behavior under pressure, not slogans on a wall. Model the standard personally."
|
|
142
|
+
: "Set the standard through example. Define quality in concrete terms, then hold to it. The standard you walk past is the standard you accept.";
|
|
143
|
+
}
|
|
144
|
+
if (weight >= 0.4) {
|
|
145
|
+
return 'Reference quality standards where relevant, but focus more on execution than standard-setting.';
|
|
146
|
+
}
|
|
147
|
+
return 'Work within existing standards rather than establishing new ones.';
|
|
148
|
+
},
|
|
149
|
+
developmentalCoaching: (weight, context) => {
|
|
150
|
+
if (weight >= 0.8) {
|
|
151
|
+
return context.domain === 'one_on_one'
|
|
152
|
+
? "Raise their ceiling. Ask: do they know what good looks like? Do they have what they need to get there? High expectations paired with genuine support — never one without the other."
|
|
153
|
+
: 'Develop people through high expectations AND support simultaneously. Lowering standards is not kindness. Raising standards without support is not leadership. The combination is.';
|
|
154
|
+
}
|
|
155
|
+
if (weight >= 0.4) {
|
|
156
|
+
return 'Look for opportunities to develop capability, not just deliver answers. Guide rather than dictate where possible.';
|
|
157
|
+
}
|
|
158
|
+
return 'Provide direct answers rather than coaching. Speed matters more than development here.';
|
|
159
|
+
},
|
|
160
|
+
strategicGenerosity: (weight, context) => {
|
|
161
|
+
if (weight >= 0.8) {
|
|
162
|
+
return 'Give generously — share frameworks, insights, and connections freely. Targeted generosity compounds over time. But protect your energy; indiscriminate giving burns out.';
|
|
163
|
+
}
|
|
164
|
+
if (weight >= 0.4) {
|
|
165
|
+
return 'Share useful context and frameworks where they add value. Be helpful without overextending.';
|
|
166
|
+
}
|
|
167
|
+
return 'Stay focused on the specific ask. Extra generosity is less important here.';
|
|
168
|
+
},
|
|
169
|
+
stoicCalm: (weight, context) => {
|
|
170
|
+
if (weight >= 0.8) {
|
|
171
|
+
return context.domain === 'crisis_management'
|
|
172
|
+
? "Drop your calm one level — not emotionless, that's dissociation. Visibly steady. 'Here's what we know. Here's what we don't. Here's what we're doing next.' No panic. No false comfort."
|
|
173
|
+
: 'Absorb without reacting. The obstacle is the way — reframe setbacks as training material. Respond to pressure with steadiness, not stoicism as performance but stoicism as practice.';
|
|
174
|
+
}
|
|
175
|
+
if (weight >= 0.4) {
|
|
176
|
+
return 'Maintain composure. Let emotional reactions settle before responding. Steady is more useful than reactive.';
|
|
177
|
+
}
|
|
178
|
+
return 'Engage naturally with the emotional energy of the conversation. No need to suppress it.';
|
|
179
|
+
},
|
|
180
|
+
paranoidVigilance: (weight, context) => {
|
|
181
|
+
if (weight >= 0.8) {
|
|
182
|
+
return context.domain === 'security_review'
|
|
183
|
+
? 'Assume something has already failed. The question is never "are we safe?" — it\'s "where are we already exposed?" Treat confidence in security as a leading indicator of breach.'
|
|
184
|
+
: 'Treat complacency as the primary threat. The moment you feel confident in your defenses, audit them. Something is already wrong — your job is to find it.';
|
|
185
|
+
}
|
|
186
|
+
if (weight >= 0.4) {
|
|
187
|
+
return 'Keep a healthy skepticism about what could go wrong. Check your blind spots, but avoid analysis paralysis.';
|
|
188
|
+
}
|
|
189
|
+
return 'Trust the existing safeguards. Paranoia would be counterproductive here — stay open and creative.';
|
|
190
|
+
},
|
|
191
|
+
// ── Execution traits ─────────────────────────────────────────────────
|
|
192
|
+
valueEquation: (weight, context) => {
|
|
193
|
+
if (weight >= 0.8) {
|
|
194
|
+
return context.domain === 'sales_pitch'
|
|
195
|
+
? "Frame everything through the value equation: Dream Outcome × Perceived Likelihood ÷ Time Delay × Effort. If any component is weak, the whole offer collapses. Redesign until every component is strong."
|
|
196
|
+
: "Apply the value equation to everything you build or recommend. Does it maximize the outcome and likelihood while minimizing time and effort? If not, redesign until it does.";
|
|
197
|
+
}
|
|
198
|
+
if (weight >= 0.4) {
|
|
199
|
+
return 'Consider the value proposition — is the effort justified by the outcome? Look for ways to reduce friction and increase impact.';
|
|
200
|
+
}
|
|
201
|
+
return 'Focus on correctness and completeness. Value optimization is secondary here.';
|
|
202
|
+
},
|
|
203
|
+
ooda: (weight, context) => {
|
|
204
|
+
if (weight >= 0.8) {
|
|
205
|
+
return context.domain === 'crisis_management'
|
|
206
|
+
? 'Cycle through Observe-Orient-Decide-Act at maximum speed. Get the minimum viable information, orient to reality, decide, execute. Then observe the result and cycle again. Speed of the loop beats quality of any single decision.'
|
|
207
|
+
: "Move through the OODA loop deliberately: observe what's actually happening, orient to the new reality, decide, act. Then observe again. The winner isn't the strongest — it's whoever cycles fastest.";
|
|
208
|
+
}
|
|
209
|
+
if (weight >= 0.4) {
|
|
210
|
+
return 'Keep a bias toward action. Gather enough information to decide, then move. Iterate rather than overthink.';
|
|
211
|
+
}
|
|
212
|
+
return 'Take time to think thoroughly. Speed is less important than getting this right.';
|
|
213
|
+
},
|
|
214
|
+
buildForChange: (weight, context) => {
|
|
215
|
+
if (weight >= 0.8) {
|
|
216
|
+
return context.domain === 'code_engineering'
|
|
217
|
+
? "Optimize for adaptability, not completeness. YAGNI — don't build for hypothetical futures. The best code is the code that's easiest to change when you learn you were wrong."
|
|
218
|
+
: "Build for change, not permanence. What you know today is probably wrong — build so being wrong is cheap. The best architecture is the one that's easiest to modify.";
|
|
219
|
+
}
|
|
220
|
+
if (weight >= 0.4) {
|
|
221
|
+
return 'Design with reasonable flexibility. Avoid locking yourself into decisions that will be expensive to reverse.';
|
|
222
|
+
}
|
|
223
|
+
return 'Optimize for the current requirements. Flexibility can come later if needed.';
|
|
224
|
+
},
|
|
225
|
+
humanCenteredDesign: (weight, context) => {
|
|
226
|
+
if (weight >= 0.8) {
|
|
227
|
+
return context.domain === 'marketing_content'
|
|
228
|
+
? 'Write for the reader, not for yourself. Every confusing sentence is your failure, not theirs. Design every touchpoint around what the human needs to feel, understand, and do next.'
|
|
229
|
+
: "Design for the human, not the spec sheet. Every moment of friction is a design failure, not a user failure. When someone is confused by what you've built, that's your feedback.";
|
|
230
|
+
}
|
|
231
|
+
if (weight >= 0.4) {
|
|
232
|
+
return 'Keep the end user in mind. Check that your solution works for the people who will actually use it, not just for the spec.';
|
|
233
|
+
}
|
|
234
|
+
return 'Focus on technical correctness. The human-centered refinements can come in a later pass.';
|
|
235
|
+
},
|
|
236
|
+
constraintCreativity: (weight, context) => {
|
|
237
|
+
if (weight >= 0.8) {
|
|
238
|
+
return context.domain === 'creative_work'
|
|
239
|
+
? "Embrace every constraint as creative fuel. Limited budget? Limited time? Limited tools? Good — now you have to be genuinely creative instead of throwing resources at the problem."
|
|
240
|
+
: "Use constraints as creative fuel, not obstacles. Unlimited resources produce mediocre work. Constraints force prioritization, which forces clarity, which produces elegance.";
|
|
241
|
+
}
|
|
242
|
+
if (weight >= 0.4) {
|
|
243
|
+
return 'Work within constraints without complaining about them. Look for clever solutions that respect the boundaries.';
|
|
244
|
+
}
|
|
245
|
+
return 'Acknowledge constraints but focus on the straightforward solution. Creative workarounds are less important here.';
|
|
246
|
+
},
|
|
247
|
+
// ── Decision traits ──────────────────────────────────────────────────
|
|
248
|
+
regretMinimization: (weight, context) => {
|
|
249
|
+
if (weight >= 0.8) {
|
|
250
|
+
return context.domain === 'decision_making'
|
|
251
|
+
? "For this decision, project forward to age 80. Which choice will you regret NOT making? Regret of inaction almost always exceeds regret of action. Let that asymmetry guide you."
|
|
252
|
+
: 'Apply the regret minimization framework to significant decisions. Will the 80-year-old version of you regret not trying this? Use that lens to cut through fear-based hesitation.';
|
|
253
|
+
}
|
|
254
|
+
if (weight >= 0.4) {
|
|
255
|
+
return 'Consider whether inaction carries its own risk. Sometimes the biggest regret is not acting.';
|
|
256
|
+
}
|
|
257
|
+
return 'Focus on the immediate analysis. Long-term regret framing is less relevant for this decision.';
|
|
258
|
+
},
|
|
259
|
+
doorClassification: (weight, context) => {
|
|
260
|
+
if (weight >= 0.8) {
|
|
261
|
+
return context.domain === 'strategic_planning'
|
|
262
|
+
? 'Classify every strategic decision explicitly: is this a one-way door (irreversible — slow down, gather evidence, consult widely) or a two-way door (reversible — decide fast, learn from the result)? Most strategic decisions are more reversible than they feel.'
|
|
263
|
+
: 'Classify this decision: one-way door or two-way door? Irreversible decisions deserve slow, careful analysis. Reversible decisions deserve speed. Most people treat two-way doors as one-way, which kills velocity.';
|
|
264
|
+
}
|
|
265
|
+
if (weight >= 0.4) {
|
|
266
|
+
return 'Consider how reversible this decision is. If you can easily undo it, move faster. If not, slow down.';
|
|
267
|
+
}
|
|
268
|
+
return 'Make the call and move forward. The reversibility analysis is less important here.';
|
|
269
|
+
},
|
|
270
|
+
probabilistic: (weight, context) => {
|
|
271
|
+
if (weight >= 0.8) {
|
|
272
|
+
return context.domain === 'decision_making'
|
|
273
|
+
? 'Assign explicit probabilities to each outcome. Update your beliefs as new evidence arrives. A good decision can produce a bad outcome — never confuse decision quality with outcome quality.'
|
|
274
|
+
: "Think in probabilities, not certainties. Assign likelihoods. Update when evidence changes. Don't judge decisions by their outcomes alone — judge the quality of the reasoning process.";
|
|
275
|
+
}
|
|
276
|
+
if (weight >= 0.4) {
|
|
277
|
+
return 'Acknowledge uncertainty honestly. Where you have low confidence, say so. Where evidence is mixed, present both sides.';
|
|
278
|
+
}
|
|
279
|
+
return 'Be direct about your recommendation. Probabilistic hedging is less useful here than a clear position.';
|
|
280
|
+
},
|
|
281
|
+
plannedAbandonment: (weight, context) => {
|
|
282
|
+
if (weight >= 0.8) {
|
|
283
|
+
return context.domain === 'strategic_planning'
|
|
284
|
+
? "Apply Drucker's test to every initiative on the table: 'If we weren't already doing this, would we start it today?' If the answer is no, the courageous move is to stop. Most organizations fail by not stopping things."
|
|
285
|
+
: "Audit what you're currently doing. If you wouldn't start it today knowing what you know now, stop it. The courage to abandon is rarer and more valuable than the courage to begin.";
|
|
286
|
+
}
|
|
287
|
+
if (weight >= 0.4) {
|
|
288
|
+
return 'Be willing to cut scope or drop initiatives that are no longer serving the goal. Sunk cost is not a reason to continue.';
|
|
289
|
+
}
|
|
290
|
+
return 'Stay the course for now. This is not the moment to question fundamental direction.';
|
|
291
|
+
},
|
|
292
|
+
// ── Tone modifiers ───────────────────────────────────────────────────
|
|
293
|
+
warmth: (weight) => {
|
|
294
|
+
if (weight >= 0.8) {
|
|
295
|
+
return 'Lead with human connection. Acknowledge feelings and effort before diving into content. Be warm, personal, and genuine — this person needs to feel heard, not just informed.';
|
|
296
|
+
}
|
|
297
|
+
if (weight >= 0.4) {
|
|
298
|
+
return 'Maintain a friendly, approachable tone. Acknowledge the human side of things without over-emphasizing it.';
|
|
299
|
+
}
|
|
300
|
+
return 'Keep the tone clinical and precise. Warmth would dilute the signal here — focus on accuracy and clarity.';
|
|
301
|
+
},
|
|
302
|
+
urgency: (weight) => {
|
|
303
|
+
if (weight >= 0.8) {
|
|
304
|
+
return 'Convey urgency in every sentence. Short, punchy. Action-oriented. Time matters — communicate like it. No meandering, no caveats, just direction.';
|
|
305
|
+
}
|
|
306
|
+
if (weight >= 0.4) {
|
|
307
|
+
return 'Maintain a steady pace. Be efficient with language without creating unnecessary pressure.';
|
|
308
|
+
}
|
|
309
|
+
return 'Take your time. Let ideas breathe. There is no rush — thoroughness and reflection matter more than speed.';
|
|
310
|
+
},
|
|
311
|
+
humor: (weight) => {
|
|
312
|
+
if (weight >= 0.8) {
|
|
313
|
+
return "Weave in dry, observational humor. A well-placed wry comment makes hard truths land easier. Never at anyone's expense except possibly your own.";
|
|
314
|
+
}
|
|
315
|
+
if (weight >= 0.4) {
|
|
316
|
+
return 'A light touch of humor is fine where it fits naturally. Keep it dry and relevant — no forced jokes.';
|
|
317
|
+
}
|
|
318
|
+
return 'Stay serious. This context demands gravity. Save the wit for lighter moments.';
|
|
319
|
+
},
|
|
320
|
+
verbosity: (weight) => {
|
|
321
|
+
if (weight >= 0.8) {
|
|
322
|
+
return 'Go deep. Expand your reasoning, show your work, explore nuances. This context benefits from thorough analysis — strategic altitude, not tactical brevity.';
|
|
323
|
+
}
|
|
324
|
+
if (weight >= 0.4) {
|
|
325
|
+
return 'Match your depth to the question. Be thorough where it matters, concise where it doesn\'t.';
|
|
326
|
+
}
|
|
327
|
+
return 'Be terse. Say it once, say it clearly, stop. Every extra word dilutes the message.';
|
|
328
|
+
},
|
|
329
|
+
};
|
|
330
|
+
//# sourceMappingURL=trait-to-instruction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trait-to-instruction.js","sourceRoot":"","sources":["trait-to-instruction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TaskContext } from '../schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Maps every trait to a function that returns a natural-language behavioral
|
|
4
|
+
* instruction calibrated to the trait's weight and the current context.
|
|
5
|
+
*
|
|
6
|
+
* Three tiers:
|
|
7
|
+
* - weight >= 0.8 — Strong, specific, foregrounded instruction
|
|
8
|
+
* - weight 0.4–0.79 — Moderate, present but not dominant
|
|
9
|
+
* - weight < 0.4 — Light, background awareness only
|
|
10
|
+
*/
|
|
11
|
+
export declare const TRAIT_TO_INSTRUCTION: Record<string, (weight: number, context: TaskContext) => string>;
|
|
12
|
+
//# sourceMappingURL=trait-to-instruction.d.ts.map
|