agentic-qe 1.5.1 → 1.6.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.
Files changed (188) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +118 -0
  2. package/.claude/agents/qe-chaos-engineer.md +320 -5
  3. package/.claude/agents/qe-code-complexity.md +360 -0
  4. package/.claude/agents/qe-coverage-analyzer.md +112 -0
  5. package/.claude/agents/qe-deployment-readiness.md +322 -6
  6. package/.claude/agents/qe-flaky-test-hunter.md +115 -0
  7. package/.claude/agents/qe-fleet-commander.md +319 -6
  8. package/.claude/agents/qe-performance-tester.md +234 -0
  9. package/.claude/agents/qe-production-intelligence.md +114 -0
  10. package/.claude/agents/qe-quality-analyzer.md +126 -0
  11. package/.claude/agents/qe-quality-gate.md +119 -0
  12. package/.claude/agents/qe-regression-risk-analyzer.md +114 -0
  13. package/.claude/agents/qe-requirements-validator.md +114 -0
  14. package/.claude/agents/qe-security-scanner.md +118 -0
  15. package/.claude/agents/qe-test-data-architect.md +234 -0
  16. package/.claude/agents/qe-test-executor.md +115 -0
  17. package/.claude/agents/qe-test-generator.md +114 -0
  18. package/.claude/agents/qe-visual-tester.md +305 -6
  19. package/.claude/agents/subagents/qe-code-reviewer.md +0 -4
  20. package/.claude/agents/subagents/qe-data-generator.md +0 -16
  21. package/.claude/agents/subagents/qe-integration-tester.md +0 -17
  22. package/.claude/agents/subagents/qe-performance-validator.md +0 -16
  23. package/.claude/agents/subagents/qe-security-auditor.md +0 -16
  24. package/.claude/agents/subagents/qe-test-implementer.md +0 -17
  25. package/.claude/agents/subagents/qe-test-refactorer.md +0 -17
  26. package/.claude/agents/subagents/qe-test-writer.md +0 -19
  27. package/.claude/skills/brutal-honesty-review/README.md +218 -0
  28. package/.claude/skills/brutal-honesty-review/SKILL.md +725 -0
  29. package/.claude/skills/brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  30. package/.claude/skills/brutal-honesty-review/resources/review-template.md +102 -0
  31. package/.claude/skills/brutal-honesty-review/scripts/assess-code.sh +179 -0
  32. package/.claude/skills/brutal-honesty-review/scripts/assess-tests.sh +223 -0
  33. package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +301 -0
  34. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +510 -0
  35. package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/microservice-pipeline.md +239 -0
  36. package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/mobile-pipeline.md +375 -0
  37. package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/monolith-pipeline.md +268 -0
  38. package/.claude/skills/six-thinking-hats/README.md +190 -0
  39. package/.claude/skills/six-thinking-hats/SKILL.md +1215 -0
  40. package/.claude/skills/six-thinking-hats/resources/examples/api-testing-example.md +345 -0
  41. package/.claude/skills/six-thinking-hats/resources/templates/solo-session-template.md +167 -0
  42. package/.claude/skills/six-thinking-hats/resources/templates/team-session-template.md +336 -0
  43. package/CHANGELOG.md +2472 -2129
  44. package/README.md +48 -10
  45. package/dist/adapters/MemoryStoreAdapter.d.ts +38 -0
  46. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  47. package/dist/adapters/MemoryStoreAdapter.js +22 -0
  48. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  49. package/dist/agents/BaseAgent.d.ts.map +1 -1
  50. package/dist/agents/BaseAgent.js +13 -0
  51. package/dist/agents/BaseAgent.js.map +1 -1
  52. package/dist/cli/commands/init-claude-md-template.d.ts +16 -0
  53. package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -0
  54. package/dist/cli/commands/init-claude-md-template.js +69 -0
  55. package/dist/cli/commands/init-claude-md-template.js.map +1 -0
  56. package/dist/cli/commands/init.d.ts +1 -1
  57. package/dist/cli/commands/init.d.ts.map +1 -1
  58. package/dist/cli/commands/init.js +509 -460
  59. package/dist/cli/commands/init.js.map +1 -1
  60. package/dist/core/memory/AgentDBService.d.ts +33 -28
  61. package/dist/core/memory/AgentDBService.d.ts.map +1 -1
  62. package/dist/core/memory/AgentDBService.js +233 -290
  63. package/dist/core/memory/AgentDBService.js.map +1 -1
  64. package/dist/core/memory/EnhancedAgentDBService.d.ts.map +1 -1
  65. package/dist/core/memory/EnhancedAgentDBService.js +5 -3
  66. package/dist/core/memory/EnhancedAgentDBService.js.map +1 -1
  67. package/dist/core/memory/RealAgentDBAdapter.d.ts +9 -2
  68. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
  69. package/dist/core/memory/RealAgentDBAdapter.js +126 -100
  70. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
  71. package/dist/core/memory/SwarmMemoryManager.d.ts +58 -0
  72. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  73. package/dist/core/memory/SwarmMemoryManager.js +176 -0
  74. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  75. package/dist/core/memory/index.d.ts.map +1 -1
  76. package/dist/core/memory/index.js +2 -1
  77. package/dist/core/memory/index.js.map +1 -1
  78. package/dist/learning/LearningEngine.d.ts +14 -27
  79. package/dist/learning/LearningEngine.d.ts.map +1 -1
  80. package/dist/learning/LearningEngine.js +57 -119
  81. package/dist/learning/LearningEngine.js.map +1 -1
  82. package/dist/learning/index.d.ts +0 -1
  83. package/dist/learning/index.d.ts.map +1 -1
  84. package/dist/learning/index.js +0 -1
  85. package/dist/learning/index.js.map +1 -1
  86. package/dist/mcp/handlers/learning/learning-query.d.ts +34 -0
  87. package/dist/mcp/handlers/learning/learning-query.d.ts.map +1 -0
  88. package/dist/mcp/handlers/learning/learning-query.js +156 -0
  89. package/dist/mcp/handlers/learning/learning-query.js.map +1 -0
  90. package/dist/mcp/handlers/learning/learning-store-experience.d.ts +30 -0
  91. package/dist/mcp/handlers/learning/learning-store-experience.d.ts.map +1 -0
  92. package/dist/mcp/handlers/learning/learning-store-experience.js +86 -0
  93. package/dist/mcp/handlers/learning/learning-store-experience.js.map +1 -0
  94. package/dist/mcp/handlers/learning/learning-store-pattern.d.ts +31 -0
  95. package/dist/mcp/handlers/learning/learning-store-pattern.d.ts.map +1 -0
  96. package/dist/mcp/handlers/learning/learning-store-pattern.js +126 -0
  97. package/dist/mcp/handlers/learning/learning-store-pattern.js.map +1 -0
  98. package/dist/mcp/handlers/learning/learning-store-qvalue.d.ts +30 -0
  99. package/dist/mcp/handlers/learning/learning-store-qvalue.d.ts.map +1 -0
  100. package/dist/mcp/handlers/learning/learning-store-qvalue.js +100 -0
  101. package/dist/mcp/handlers/learning/learning-store-qvalue.js.map +1 -0
  102. package/dist/mcp/server.d.ts +11 -0
  103. package/dist/mcp/server.d.ts.map +1 -1
  104. package/dist/mcp/server.js +98 -1
  105. package/dist/mcp/server.js.map +1 -1
  106. package/dist/mcp/services/LearningEventListener.d.ts +123 -0
  107. package/dist/mcp/services/LearningEventListener.d.ts.map +1 -0
  108. package/dist/mcp/services/LearningEventListener.js +322 -0
  109. package/dist/mcp/services/LearningEventListener.js.map +1 -0
  110. package/dist/mcp/tools.d.ts +4 -0
  111. package/dist/mcp/tools.d.ts.map +1 -1
  112. package/dist/mcp/tools.js +179 -0
  113. package/dist/mcp/tools.js.map +1 -1
  114. package/dist/types/memory-interfaces.d.ts +71 -0
  115. package/dist/types/memory-interfaces.d.ts.map +1 -1
  116. package/dist/utils/Calculator.d.ts +35 -0
  117. package/dist/utils/Calculator.d.ts.map +1 -0
  118. package/dist/utils/Calculator.js +50 -0
  119. package/dist/utils/Calculator.js.map +1 -0
  120. package/dist/utils/Logger.d.ts.map +1 -1
  121. package/dist/utils/Logger.js +4 -1
  122. package/dist/utils/Logger.js.map +1 -1
  123. package/package.json +7 -5
  124. package/.claude/agents/qe-api-contract-validator.md.backup +0 -1148
  125. package/.claude/agents/qe-api-contract-validator.md.backup-20251107-134747 +0 -1148
  126. package/.claude/agents/qe-api-contract-validator.md.backup-phase2-20251107-140039 +0 -1123
  127. package/.claude/agents/qe-chaos-engineer.md.backup +0 -808
  128. package/.claude/agents/qe-chaos-engineer.md.backup-20251107-134747 +0 -808
  129. package/.claude/agents/qe-chaos-engineer.md.backup-phase2-20251107-140039 +0 -787
  130. package/.claude/agents/qe-code-complexity.md.backup +0 -291
  131. package/.claude/agents/qe-code-complexity.md.backup-20251107-134747 +0 -291
  132. package/.claude/agents/qe-code-complexity.md.backup-phase2-20251107-140039 +0 -286
  133. package/.claude/agents/qe-coverage-analyzer.md.backup +0 -467
  134. package/.claude/agents/qe-coverage-analyzer.md.backup-20251107-134747 +0 -467
  135. package/.claude/agents/qe-coverage-analyzer.md.backup-phase2-20251107-140039 +0 -438
  136. package/.claude/agents/qe-deployment-readiness.md.backup +0 -1166
  137. package/.claude/agents/qe-deployment-readiness.md.backup-20251107-134747 +0 -1166
  138. package/.claude/agents/qe-deployment-readiness.md.backup-phase2-20251107-140039 +0 -1140
  139. package/.claude/agents/qe-flaky-test-hunter.md.backup +0 -1195
  140. package/.claude/agents/qe-flaky-test-hunter.md.backup-20251107-134747 +0 -1195
  141. package/.claude/agents/qe-flaky-test-hunter.md.backup-phase2-20251107-140039 +0 -1162
  142. package/.claude/agents/qe-fleet-commander.md.backup +0 -718
  143. package/.claude/agents/qe-fleet-commander.md.backup-20251107-134747 +0 -718
  144. package/.claude/agents/qe-fleet-commander.md.backup-phase2-20251107-140039 +0 -697
  145. package/.claude/agents/qe-performance-tester.md.backup +0 -428
  146. package/.claude/agents/qe-performance-tester.md.backup-20251107-134747 +0 -428
  147. package/.claude/agents/qe-performance-tester.md.backup-phase2-20251107-140039 +0 -372
  148. package/.claude/agents/qe-production-intelligence.md.backup +0 -1219
  149. package/.claude/agents/qe-production-intelligence.md.backup-20251107-134747 +0 -1219
  150. package/.claude/agents/qe-production-intelligence.md.backup-phase2-20251107-140039 +0 -1194
  151. package/.claude/agents/qe-quality-analyzer.md.backup +0 -425
  152. package/.claude/agents/qe-quality-analyzer.md.backup-20251107-134747 +0 -425
  153. package/.claude/agents/qe-quality-analyzer.md.backup-phase2-20251107-140039 +0 -394
  154. package/.claude/agents/qe-quality-gate.md.backup +0 -446
  155. package/.claude/agents/qe-quality-gate.md.backup-20251107-134747 +0 -446
  156. package/.claude/agents/qe-quality-gate.md.backup-phase2-20251107-140039 +0 -415
  157. package/.claude/agents/qe-regression-risk-analyzer.md.backup +0 -1009
  158. package/.claude/agents/qe-regression-risk-analyzer.md.backup-20251107-134747 +0 -1009
  159. package/.claude/agents/qe-regression-risk-analyzer.md.backup-phase2-20251107-140039 +0 -984
  160. package/.claude/agents/qe-requirements-validator.md.backup +0 -748
  161. package/.claude/agents/qe-requirements-validator.md.backup-20251107-134747 +0 -748
  162. package/.claude/agents/qe-requirements-validator.md.backup-phase2-20251107-140039 +0 -723
  163. package/.claude/agents/qe-security-scanner.md.backup +0 -634
  164. package/.claude/agents/qe-security-scanner.md.backup-20251107-134747 +0 -634
  165. package/.claude/agents/qe-security-scanner.md.backup-phase2-20251107-140039 +0 -573
  166. package/.claude/agents/qe-test-data-architect.md.backup +0 -1064
  167. package/.claude/agents/qe-test-data-architect.md.backup-20251107-134747 +0 -1064
  168. package/.claude/agents/qe-test-data-architect.md.backup-phase2-20251107-140039 +0 -1040
  169. package/.claude/agents/qe-test-executor.md.backup +0 -389
  170. package/.claude/agents/qe-test-executor.md.backup-20251107-134747 +0 -389
  171. package/.claude/agents/qe-test-executor.md.backup-phase2-20251107-140039 +0 -369
  172. package/.claude/agents/qe-test-generator.md.backup +0 -997
  173. package/.claude/agents/qe-test-generator.md.backup-20251107-134747 +0 -997
  174. package/.claude/agents/qe-visual-tester.md.backup +0 -777
  175. package/.claude/agents/qe-visual-tester.md.backup-20251107-134747 +0 -777
  176. package/.claude/agents/qe-visual-tester.md.backup-phase2-20251107-140039 +0 -756
  177. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  178. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  179. package/.claude/commands/flow-nexus/app-store.md +0 -124
  180. package/.claude/commands/flow-nexus/challenges.md +0 -120
  181. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  182. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  183. package/.claude/commands/flow-nexus/payments.md +0 -116
  184. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  185. package/.claude/commands/flow-nexus/swarm.md +0 -87
  186. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  187. package/.claude/commands/flow-nexus/workflow.md +0 -115
  188. package/.claude/commands/memory/usage.md +0 -46
@@ -0,0 +1,218 @@
1
+ # Brutal Honesty Review Skill
2
+
3
+ ## Overview
4
+
5
+ A QE skill that delivers unvarnished technical criticism combining three legendary personas:
6
+ - **Linus Torvalds**: Surgical technical precision
7
+ - **Gordon Ramsay**: Standards-driven quality assessment
8
+ - **James Bach**: BS detection in testing practices
9
+
10
+ ## Purpose
11
+
12
+ Unlike diplomatic reviews, this skill eliminates ambiguity about technical standards. It **dissects why something is wrong, explains the correct approach, and has zero patience for repeated mistakes or sloppy thinking**.
13
+
14
+ ## When to Use
15
+
16
+ ✅ **Appropriate**:
17
+ - Senior engineers wanting unfiltered feedback
18
+ - Repeated architectural mistakes
19
+ - Critical bugs requiring immediate attention
20
+ - Evaluating vendor claims/certifications
21
+ - Teams explicitly requesting no-BS feedback
22
+
23
+ ❌ **Inappropriate**:
24
+ - Junior developers' first contributions
25
+ - Demoralized teams
26
+ - Public forums (avoid humiliation)
27
+ - When psychological safety is low
28
+
29
+ ## Three Modes
30
+
31
+ ### 1. Linus Mode (Technical Precision)
32
+ Focus on code correctness, performance, concurrency, and architecture.
33
+
34
+ **Example**:
35
+ > "This is completely broken. You're holding the lock during I/O, which means every thread serializes. Did you even test under load? The correct approach is..."
36
+
37
+ ### 2. Ramsay Mode (Standards-Driven Quality)
38
+ Compare reality against clear excellence model using concrete metrics.
39
+
40
+ **Example**:
41
+ > "Look at this! 12 tests and 10 are just checking if variables exist. Where's the business logic coverage? This is RAW. Don't merge it."
42
+
43
+ ### 3. Bach Mode (BS Detection)
44
+ Question certifications, best practices, and vendor hype.
45
+
46
+ **Example**:
47
+ > "This certification teaches scripts, not thinking. Does it help testers find bugs faster? No. It helps the cert body make money."
48
+
49
+ ## Quick Start
50
+
51
+ ### Using the Skill
52
+
53
+ Invoke the skill when you need brutal honesty:
54
+
55
+ ```markdown
56
+ Use brutal-honesty-review skill in Linus mode to review this code:
57
+ [paste code]
58
+ ```
59
+
60
+ ### Using Assessment Scripts
61
+
62
+ ```bash
63
+ # Assess code quality (Linus Mode)
64
+ ./scripts/assess-code.sh src/myfile.js
65
+
66
+ # Assess test quality (Ramsay Mode)
67
+ ./scripts/assess-tests.sh tests/
68
+ ```
69
+
70
+ ## Files Included
71
+
72
+ ```
73
+ brutal-honesty-review/
74
+ ├── SKILL.md # Main skill instructions
75
+ ├── README.md # This file
76
+ ├── resources/
77
+ │ ├── review-template.md # Template for structured reviews
78
+ │ └── assessment-rubrics.md # Scoring rubrics for all modes
79
+ └── scripts/
80
+ ├── assess-code.sh # Automated code quality check
81
+ └── assess-tests.sh # Automated test quality check
82
+ ```
83
+
84
+ ## Assessment Rubrics
85
+
86
+ ### Code Quality (Linus Mode)
87
+
88
+ | Criteria | Failing | Passing | Excellent |
89
+ |----------|---------|---------|-----------|
90
+ | Correctness | Wrong logic | Works in tested cases | Proven across edge cases |
91
+ | Performance | O(n²) where O(n) exists | Acceptable | Optimal + profiled |
92
+ | Error Handling | Crashes | Returns errors | Graceful degradation |
93
+ | Concurrency | Race conditions | Thread-safe | Lock-free/proven |
94
+ | Testability | Can't unit test | Mockable | Self-testing |
95
+ | Maintainability | "Clever" code | Clear | Self-documenting |
96
+
97
+ **Threshold**: Minimum "Passing" on ALL to merge.
98
+
99
+ ### Test Quality (Ramsay Mode)
100
+
101
+ | Criteria | Raw | Acceptable | Michelin Star |
102
+ |----------|-----|------------|---------------|
103
+ | Coverage | <50% | 80%+ | 95%+ + mutation |
104
+ | Edge Cases | Happy path only | Common failures | Boundary analysis |
105
+ | Clarity | Unclear names | Clear names | Self-documenting |
106
+ | Speed | Minutes | <10s | <1s, parallel |
107
+ | Stability | Flaky (>1%) | Stable | Deterministic |
108
+ | Isolation | Dependent | Independent | Pure, stateless |
109
+
110
+ **Threshold**: Minimum "Acceptable" on ALL to merge.
111
+
112
+ ### BS Detection (Bach Mode)
113
+
114
+ Red flags:
115
+ - Cargo cult practices (no context)
116
+ - Certification theater (filters thinkers)
117
+ - Vendor lock-in (solves own problem)
118
+ - False automation (still needs humans)
119
+ - Checkbox quality (compliance, not outcomes)
120
+ - Hype cycle (10x claims without proof)
121
+
122
+ **Green flag test**: "Does this help testers/developers do better work in THIS context?"
123
+
124
+ ## Examples
125
+
126
+ ### Example 1: Linus Mode - Concurrency Bug
127
+
128
+ **Problem**: Holding DB connection during HTTP call
129
+
130
+ **Brutal Honesty**:
131
+ > "This is completely broken. You're holding a database connection open while waiting for an HTTP request. Under load, you'll exhaust the connection pool in seconds. Did you test with >1 user? The correct approach: 1) Fetch data, 2) Close connection, 3) Make HTTP call."
132
+
133
+ ### Example 2: Ramsay Mode - Weak Tests
134
+
135
+ **Problem**: 15 tests, all happy path
136
+
137
+ **Brutal Honesty**:
138
+ > "Look at this test suite. 15 tests, 14 are happy path. Where's validation? Where are edge cases? This is RAW. You're testing if code runs, not if it's correct. You have 35% coverage. Production needs 80%+. Don't merge this."
139
+
140
+ ### Example 3: Bach Mode - Certification Theater
141
+
142
+ **Problem**: Required ISTQB certification
143
+
144
+ **Brutal Honesty**:
145
+ > "ISTQB tests if you memorized terminology, not if you can test software. Real skills: finding bugs, designing strategies, communicating risk. ISTQB tests: definitions, model names, checkbox thinking. If it helped, ISTQB-certified teams would ship higher quality. They don't."
146
+
147
+ ## Calibration Guide
148
+
149
+ ### Harshness Levels
150
+
151
+ **Level 1 - Direct**: For experienced engineers
152
+ > "This approach is flawed because..."
153
+
154
+ **Level 2 - Harsh**: For repeated mistakes
155
+ > "We've discussed this pattern three times. Why is it back?"
156
+
157
+ **Level 3 - Brutal**: For critical issues or willful ignorance
158
+ > "This is negligent. You're exposing user data because..."
159
+
160
+ ### Context Matters
161
+
162
+ Before being brutal, verify:
163
+ 1. **Audience maturity**: Can they handle directness?
164
+ 2. **Relationship capital**: Have you earned harsh feedback rights?
165
+ 3. **Actionability**: Can they actually fix this?
166
+ 4. **Intent**: Helping or venting?
167
+
168
+ ## Philosophy
169
+
170
+ ### Why Brutal Honesty Works
171
+
172
+ 1. **Eliminates Ambiguity**: No confusion about technical standards
173
+ 2. **Scales Teaching**: Public technical breakdown teaches entire team
174
+ 3. **Cuts Through BS**: Exposes cargo cult practices and vendor hype
175
+
176
+ ### The Costs
177
+
178
+ 1. **Relationship Damage**: Harsh criticism without trust destroys collaboration
179
+ 2. **Chills Participation**: Fear stops newcomers from contributing
180
+ 3. **Burnout**: Constant harshness is exhausting
181
+
182
+ ### The Contract
183
+
184
+ Before using brutal honesty, establish explicit contract:
185
+
186
+ > "I'm going to give unfiltered technical feedback. This will be direct, possibly harsh. Goal is clarity, not cruelty. I'll explain: 1) What's wrong, 2) Why, 3) What correct looks like, 4) How to fix. Want diplomatic instead?"
187
+
188
+ **Get explicit consent first.**
189
+
190
+ ## Integration with Agentic QE Fleet
191
+
192
+ This skill extends the QE skill set:
193
+
194
+ - **Complements**: `code-review-quality`, `context-driven-testing`
195
+ - **Contrasts with**: Diplomatic, constructive review approaches
196
+ - **Use when**: Technical precision and BS-cutting are priorities
197
+ - **Avoid when**: Building confidence or psychological safety
198
+
199
+ ## Related Skills
200
+
201
+ - `code-review-quality` - Diplomatic code review
202
+ - `context-driven-testing` - Foundation for BS detection
203
+ - `tdd-london-chicago` - Systematic quality approach
204
+ - `exploratory-testing-advanced` - Critical thinking in testing
205
+
206
+ ## License
207
+
208
+ MIT - Part of Agentic QE Fleet
209
+
210
+ ## Contributing
211
+
212
+ Found this too harsh? Good. Found this too soft? You're Linus Torvalds.
213
+
214
+ Submit issues if the skill produces ineffective criticism (not actionable, personal attacks, wrong context).
215
+
216
+ ---
217
+
218
+ **Remember**: Brutal honesty is a tool, not a personality. Use it when it helps, not when it harms.