@pjmendonca/devflow 1.13.1 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.claude/commands/agent.md +1 -1
  2. package/.claude/commands/bugfix.md +21 -0
  3. package/.claude/commands/checkpoint.md +0 -1
  4. package/.claude/commands/collab.md +0 -1
  5. package/.claude/commands/costs.md +88 -18
  6. package/.claude/commands/devflow.md +26 -0
  7. package/.claude/commands/handoff.md +0 -1
  8. package/.claude/commands/memory.md +0 -1
  9. package/.claude/commands/pair.md +0 -1
  10. package/.claude/commands/review.md +27 -0
  11. package/.claude/commands/route.md +0 -1
  12. package/.claude/commands/swarm.md +0 -1
  13. package/.claude/commands/validate.md +55 -0
  14. package/.claude/hooks/session-notification.sh +44 -0
  15. package/.claude/hooks/session-startup.sh +427 -0
  16. package/.claude/hooks/session-stop.sh +38 -0
  17. package/.claude/hooks/session_tracker.py +272 -0
  18. package/.claude/settings.json +38 -0
  19. package/.claude/skills/costs/SKILL.md +156 -0
  20. package/.claude/skills/validate/SKILL.md +101 -0
  21. package/CHANGELOG.md +254 -0
  22. package/README.md +207 -10
  23. package/bin/devflow-install.js +2 -1
  24. package/bin/devflow.js +5 -2
  25. package/lib/constants.js +0 -1
  26. package/lib/exec-python.js +1 -1
  27. package/package.json +1 -2
  28. package/tooling/.automation/.checkpoint_lock +1 -0
  29. package/tooling/.automation/agents/architect.md +19 -0
  30. package/tooling/.automation/agents/ba.md +19 -0
  31. package/tooling/.automation/agents/maintainer.md +19 -0
  32. package/tooling/.automation/agents/pm.md +19 -0
  33. package/tooling/.automation/agents/reviewer.md +1 -1
  34. package/tooling/.automation/agents/writer.md +19 -0
  35. package/tooling/.automation/benchmarks/benchmark_20251230_100119.json +314 -0
  36. package/tooling/.automation/benchmarks/benchmark_20251230_100216.json +314 -0
  37. package/tooling/.automation/costs/config.json +31 -0
  38. package/tooling/.automation/costs/sessions/2025-12-29_20251229_164128.json +22 -0
  39. package/tooling/.automation/memory/knowledge/kg_integration-test.json +707 -1
  40. package/tooling/.automation/memory/knowledge/kg_test-story.json +3273 -2
  41. package/tooling/.automation/memory/shared/shared_integration-test.json +181 -1
  42. package/tooling/.automation/memory/shared/shared_test-story.json +721 -1
  43. package/tooling/.automation/memory/shared/shared_test.json +1254 -0
  44. package/tooling/.automation/memory/shared/shared_validation-check.json +227 -0
  45. package/tooling/.automation/overrides/templates/architect/cloud-native.yaml +5 -5
  46. package/tooling/.automation/overrides/templates/architect/enterprise-architect.yaml +23 -5
  47. package/tooling/.automation/overrides/templates/architect/pragmatic-minimalist.yaml +24 -6
  48. package/tooling/.automation/overrides/templates/ba/agile-storyteller.yaml +4 -4
  49. package/tooling/.automation/overrides/templates/ba/domain-expert.yaml +4 -4
  50. package/tooling/.automation/overrides/templates/ba/requirements-engineer.yaml +4 -4
  51. package/tooling/.automation/overrides/templates/dev/performance-engineer.yaml +18 -0
  52. package/tooling/.automation/overrides/templates/dev/rapid-prototyper.yaml +19 -1
  53. package/tooling/.automation/overrides/templates/dev/security-focused.yaml +18 -0
  54. package/tooling/.automation/overrides/templates/dev/user-advocate.yaml +54 -0
  55. package/tooling/.automation/overrides/templates/maintainer/devops-maintainer.yaml +4 -4
  56. package/tooling/.automation/overrides/templates/maintainer/legacy-steward.yaml +4 -4
  57. package/tooling/.automation/overrides/templates/maintainer/oss-maintainer.yaml +4 -4
  58. package/tooling/.automation/overrides/templates/maintainer/reliability-engineer.yaml +55 -0
  59. package/tooling/.automation/overrides/templates/pm/agile-pm.yaml +4 -4
  60. package/tooling/.automation/overrides/templates/pm/hybrid-delivery.yaml +3 -3
  61. package/tooling/.automation/overrides/templates/pm/traditional-pm.yaml +4 -4
  62. package/tooling/.automation/overrides/templates/reviewer/quick-sanity.yaml +18 -0
  63. package/tooling/.automation/overrides/templates/reviewer/thorough-critic.yaml +18 -0
  64. package/tooling/.automation/overrides/templates/sm/agile-coach.yaml +2 -2
  65. package/tooling/.automation/overrides/templates/sm/startup-pm.yaml +3 -3
  66. package/tooling/.automation/overrides/templates/writer/api-documentarian.yaml +5 -5
  67. package/tooling/.automation/overrides/templates/writer/docs-as-code.yaml +4 -4
  68. package/tooling/.automation/overrides/templates/writer/user-guide-author.yaml +5 -5
  69. package/tooling/.automation/validation/history/2025-12-29_val_002a28c1.json +32 -0
  70. package/tooling/.automation/validation/history/2025-12-29_val_01273bb1.json +32 -0
  71. package/tooling/.automation/validation/history/2025-12-29_val_03369914.json +41 -0
  72. package/tooling/.automation/validation/history/2025-12-29_val_07a449ba.json +32 -0
  73. package/tooling/.automation/validation/history/2025-12-29_val_0df1f0a2.json +41 -0
  74. package/tooling/.automation/validation/history/2025-12-29_val_10ff3d34.json +41 -0
  75. package/tooling/.automation/validation/history/2025-12-29_val_110771d7.json +32 -0
  76. package/tooling/.automation/validation/history/2025-12-29_val_13f3a7f9.json +32 -0
  77. package/tooling/.automation/validation/history/2025-12-29_val_17ba9d21.json +41 -0
  78. package/tooling/.automation/validation/history/2025-12-29_val_22247089.json +32 -0
  79. package/tooling/.automation/validation/history/2025-12-29_val_227ea6a4.json +32 -0
  80. package/tooling/.automation/validation/history/2025-12-29_val_2335d5ae.json +32 -0
  81. package/tooling/.automation/validation/history/2025-12-29_val_246824bb.json +41 -0
  82. package/tooling/.automation/validation/history/2025-12-29_val_28b4b9cd.json +32 -0
  83. package/tooling/.automation/validation/history/2025-12-29_val_2abd12cc.json +32 -0
  84. package/tooling/.automation/validation/history/2025-12-29_val_2c801b2f.json +59 -0
  85. package/tooling/.automation/validation/history/2025-12-29_val_2c8cfa8e.json +32 -0
  86. package/tooling/.automation/validation/history/2025-12-29_val_2ce76eb0.json +32 -0
  87. package/tooling/.automation/validation/history/2025-12-29_val_30351948.json +41 -0
  88. package/tooling/.automation/validation/history/2025-12-29_val_30eb7229.json +41 -0
  89. package/tooling/.automation/validation/history/2025-12-29_val_34df0e77.json +41 -0
  90. package/tooling/.automation/validation/history/2025-12-29_val_376e4d6a.json +32 -0
  91. package/tooling/.automation/validation/history/2025-12-29_val_3a4e8a1a.json +59 -0
  92. package/tooling/.automation/validation/history/2025-12-29_val_3b77a628.json +32 -0
  93. package/tooling/.automation/validation/history/2025-12-29_val_3ea4e1cf.json +59 -0
  94. package/tooling/.automation/validation/history/2025-12-29_val_44aacdb4.json +59 -0
  95. package/tooling/.automation/validation/history/2025-12-29_val_457ddfa8.json +32 -0
  96. package/tooling/.automation/validation/history/2025-12-29_val_45af6238.json +41 -0
  97. package/tooling/.automation/validation/history/2025-12-29_val_4735dba1.json +41 -0
  98. package/tooling/.automation/validation/history/2025-12-29_val_486b203c.json +41 -0
  99. package/tooling/.automation/validation/history/2025-12-29_val_49dc56cd.json +59 -0
  100. package/tooling/.automation/validation/history/2025-12-29_val_4d863d6d.json +32 -0
  101. package/tooling/.automation/validation/history/2025-12-29_val_5149a808.json +59 -0
  102. package/tooling/.automation/validation/history/2025-12-29_val_52e0bb43.json +32 -0
  103. package/tooling/.automation/validation/history/2025-12-29_val_585d6319.json +59 -0
  104. package/tooling/.automation/validation/history/2025-12-29_val_5b2d859a.json +32 -0
  105. package/tooling/.automation/validation/history/2025-12-29_val_635a7081.json +41 -0
  106. package/tooling/.automation/validation/history/2025-12-29_val_64df4905.json +32 -0
  107. package/tooling/.automation/validation/history/2025-12-29_val_70634cee.json +41 -0
  108. package/tooling/.automation/validation/history/2025-12-29_val_714553f9.json +32 -0
  109. package/tooling/.automation/validation/history/2025-12-29_val_7f7bfdbf.json +41 -0
  110. package/tooling/.automation/validation/history/2025-12-29_val_7faad91d.json +32 -0
  111. package/tooling/.automation/validation/history/2025-12-29_val_81821f8f.json +41 -0
  112. package/tooling/.automation/validation/history/2025-12-29_val_8249f3c9.json +32 -0
  113. package/tooling/.automation/validation/history/2025-12-29_val_8422b50f.json +41 -0
  114. package/tooling/.automation/validation/history/2025-12-29_val_8446c134.json +32 -0
  115. package/tooling/.automation/validation/history/2025-12-29_val_879f4e26.json +59 -0
  116. package/tooling/.automation/validation/history/2025-12-29_val_8b6d5bd7.json +32 -0
  117. package/tooling/.automation/validation/history/2025-12-29_val_8c5cd787.json +32 -0
  118. package/tooling/.automation/validation/history/2025-12-29_val_91d20bc7.json +32 -0
  119. package/tooling/.automation/validation/history/2025-12-29_val_958a12b7.json +41 -0
  120. package/tooling/.automation/validation/history/2025-12-29_val_95d91108.json +41 -0
  121. package/tooling/.automation/validation/history/2025-12-29_val_980dbb74.json +32 -0
  122. package/tooling/.automation/validation/history/2025-12-29_val_9e40c79b.json +32 -0
  123. package/tooling/.automation/validation/history/2025-12-29_val_9f499b7c.json +32 -0
  124. package/tooling/.automation/validation/history/2025-12-29_val_9f7c3b57.json +32 -0
  125. package/tooling/.automation/validation/history/2025-12-29_val_a30d5bd4.json +32 -0
  126. package/tooling/.automation/validation/history/2025-12-29_val_a6eb09c7.json +32 -0
  127. package/tooling/.automation/validation/history/2025-12-29_val_a86f7b83.json +41 -0
  128. package/tooling/.automation/validation/history/2025-12-29_val_ad5347e1.json +41 -0
  129. package/tooling/.automation/validation/history/2025-12-29_val_b0a5a993.json +32 -0
  130. package/tooling/.automation/validation/history/2025-12-29_val_bcb0192e.json +32 -0
  131. package/tooling/.automation/validation/history/2025-12-29_val_bf3c9aaa.json +32 -0
  132. package/tooling/.automation/validation/history/2025-12-29_val_c461ff88.json +32 -0
  133. package/tooling/.automation/validation/history/2025-12-29_val_c4f4e258.json +41 -0
  134. package/tooling/.automation/validation/history/2025-12-29_val_c7f0fa6d.json +41 -0
  135. package/tooling/.automation/validation/history/2025-12-29_val_c911b0e6.json +32 -0
  136. package/tooling/.automation/validation/history/2025-12-29_val_cc581964.json +32 -0
  137. package/tooling/.automation/validation/history/2025-12-29_val_cdd5a33b.json +32 -0
  138. package/tooling/.automation/validation/history/2025-12-29_val_cfd42495.json +32 -0
  139. package/tooling/.automation/validation/history/2025-12-29_val_d1c7a4ee.json +41 -0
  140. package/tooling/.automation/validation/history/2025-12-29_val_d2280d0e.json +32 -0
  141. package/tooling/.automation/validation/history/2025-12-29_val_d2a6ff69.json +32 -0
  142. package/tooling/.automation/validation/history/2025-12-29_val_d8c53ab2.json +59 -0
  143. package/tooling/.automation/validation/history/2025-12-29_val_d9c1247a.json +41 -0
  144. package/tooling/.automation/validation/history/2025-12-29_val_d9d58569.json +32 -0
  145. package/tooling/.automation/validation/history/2025-12-29_val_dabb4fd9.json +32 -0
  146. package/tooling/.automation/validation/history/2025-12-29_val_dd8fe359.json +32 -0
  147. package/tooling/.automation/validation/history/2025-12-29_val_decdffc9.json +32 -0
  148. package/tooling/.automation/validation/history/2025-12-29_val_e3a95476.json +59 -0
  149. package/tooling/.automation/validation/history/2025-12-29_val_e776dfca.json +32 -0
  150. package/tooling/.automation/validation/history/2025-12-29_val_ea70969f.json +59 -0
  151. package/tooling/.automation/validation/history/2025-12-29_val_ef41ea95.json +32 -0
  152. package/tooling/.automation/validation/history/2025-12-29_val_f384f9b1.json +32 -0
  153. package/tooling/.automation/validation/history/2025-12-29_val_f8adc38c.json +41 -0
  154. package/tooling/.automation/validation/history/2025-12-29_val_fa40b69e.json +32 -0
  155. package/tooling/.automation/validation/history/2025-12-29_val_fc538d54.json +41 -0
  156. package/tooling/.automation/validation/history/2025-12-29_val_fe814665.json +32 -0
  157. package/tooling/.automation/validation/history/2025-12-29_val_ffea4b12.json +32 -0
  158. package/tooling/.automation/validation/history/2025-12-30_val_02d001e5.json +59 -0
  159. package/tooling/.automation/validation/history/2025-12-30_val_0b8966dc.json +32 -0
  160. package/tooling/.automation/validation/history/2025-12-30_val_15455fbf.json +59 -0
  161. package/tooling/.automation/validation/history/2025-12-30_val_157e34b9.json +32 -0
  162. package/tooling/.automation/validation/history/2025-12-30_val_28d1d933.json +32 -0
  163. package/tooling/.automation/validation/history/2025-12-30_val_3442a52c.json +32 -0
  164. package/tooling/.automation/validation/history/2025-12-30_val_37f1ce1e.json +32 -0
  165. package/tooling/.automation/validation/history/2025-12-30_val_4f1d8a93.json +32 -0
  166. package/tooling/.automation/validation/history/2025-12-30_val_56ff1de3.json +32 -0
  167. package/tooling/.automation/validation/history/2025-12-30_val_664fd4e2.json +41 -0
  168. package/tooling/.automation/validation/history/2025-12-30_val_66afb0a7.json +32 -0
  169. package/tooling/.automation/validation/history/2025-12-30_val_7634663c.json +41 -0
  170. package/tooling/.automation/validation/history/2025-12-30_val_8ea830c3.json +41 -0
  171. package/tooling/.automation/validation/history/2025-12-30_val_998957c2.json +32 -0
  172. package/tooling/.automation/validation/history/2025-12-30_val_a52177db.json +32 -0
  173. package/tooling/.automation/validation/history/2025-12-30_val_a5b65a63.json +32 -0
  174. package/tooling/.automation/validation/history/2025-12-30_val_ae391d0e.json +32 -0
  175. package/tooling/.automation/validation/history/2025-12-30_val_c7895339.json +41 -0
  176. package/tooling/.automation/validation/history/2025-12-30_val_ca416593.json +41 -0
  177. package/tooling/.automation/validation/history/2025-12-30_val_cee19422.json +32 -0
  178. package/tooling/.automation/validation/history/2025-12-30_val_ddd4f4e6.json +32 -0
  179. package/tooling/.automation/validation/history/2025-12-30_val_f2e1394b.json +32 -0
  180. package/tooling/.automation/validation/history/2025-12-30_val_f4a7fa06.json +41 -0
  181. package/tooling/.automation/validation/history/2025-12-30_val_ffea3369.json +32 -0
  182. package/tooling/.automation/validation-config.yaml +103 -0
  183. package/tooling/completions/DevflowCompletion.ps1 +21 -21
  184. package/tooling/completions/_run-story +3 -3
  185. package/tooling/completions/run-story-completion.bash +8 -8
  186. package/tooling/docs/DOC-STANDARD.md +14 -14
  187. package/tooling/docs/templates/migration-spec.md +4 -4
  188. package/tooling/scripts/context_checkpoint.py +5 -15
  189. package/tooling/scripts/cost_dashboard.py +610 -13
  190. package/tooling/scripts/create-persona.py +1 -12
  191. package/tooling/scripts/create-persona.sh +44 -44
  192. package/tooling/scripts/lib/__init__.py +12 -1
  193. package/tooling/scripts/lib/agent_handoff.py +11 -2
  194. package/tooling/scripts/lib/agent_router.py +31 -10
  195. package/tooling/scripts/lib/colors.py +106 -0
  196. package/tooling/scripts/lib/context_monitor.py +766 -0
  197. package/tooling/scripts/lib/cost_config.py +229 -10
  198. package/tooling/scripts/lib/cost_display.py +20 -45
  199. package/tooling/scripts/lib/cost_tracker.py +462 -15
  200. package/tooling/scripts/lib/currency_converter.py +28 -5
  201. package/tooling/scripts/lib/pair_programming.py +102 -3
  202. package/tooling/scripts/lib/personality_system.py +949 -0
  203. package/tooling/scripts/lib/platform.py +55 -0
  204. package/tooling/scripts/lib/shared_memory.py +9 -3
  205. package/tooling/scripts/lib/swarm_orchestrator.py +514 -75
  206. package/tooling/scripts/lib/validation_loop.py +1014 -0
  207. package/tooling/scripts/memory_summarize.py +9 -2
  208. package/tooling/scripts/new-doc.py +2 -9
  209. package/tooling/scripts/personalize_agent.py +1 -12
  210. package/tooling/scripts/rollback-migration.sh +60 -60
  211. package/tooling/scripts/run-collab.ps1 +16 -16
  212. package/tooling/scripts/run-collab.py +88 -53
  213. package/tooling/scripts/run-collab.sh +4 -4
  214. package/tooling/scripts/run-story.py +278 -20
  215. package/tooling/scripts/run-story.sh +3 -3
  216. package/tooling/scripts/setup-checkpoint-service.py +2 -9
  217. package/tooling/scripts/tech-debt-tracker.py +1 -12
  218. package/tooling/scripts/test_adversarial_swarm.py +452 -0
  219. package/tooling/scripts/update_version.py +48 -2
  220. package/tooling/scripts/validate-overrides.py +1 -10
  221. package/tooling/scripts/validate-overrides.sh +40 -40
  222. package/tooling/scripts/validate_loop.py +162 -0
  223. package/tooling/scripts/validate_setup.py +2 -30
  224. package/.claude/skills/init/SKILL.md +0 -496
  225. package/bin/devflow-init.js +0 -10
  226. package/tooling/scripts/init-project-workflow.ps1 +0 -651
  227. package/tooling/scripts/init-project-workflow.py +0 -70
  228. package/tooling/scripts/init-project-workflow.sh +0 -746
@@ -95,3 +95,22 @@ Brownfield development - working with existing, production code. Your approach i
95
95
  - **Quick fixes**: Sonnet (simple changes)
96
96
  - **Refactoring**: Opus (careful changes needed)
97
97
  - **Migrations**: Opus (complex, high-risk)
98
+
99
+ ## Context Management
100
+
101
+ When investigating existing codebases:
102
+
103
+ 1. **Read strategically** - Focus on relevant files, don't load entire codebase
104
+ 2. **Create checkpoints** before starting large investigations
105
+ 3. **Document findings incrementally** - Don't wait until the end
106
+ 4. **Summarize learnings** - Keep notes for context preservation
107
+
108
+ ## When Complete
109
+
110
+ After completing maintenance work:
111
+
112
+ 1. Document what was changed and why in commit messages
113
+ 2. Update any affected documentation
114
+ 3. Create fix summary if applicable (for bugs)
115
+ 4. Update sprint-status.yaml with new status
116
+ 5. Note any remaining technical debt or follow-up items
@@ -114,3 +114,22 @@ For releases:
114
114
  - **Feature Adoption**: Usage of key features
115
115
  - **Performance**: App load times, crash rates
116
116
  - **Satisfaction**: App store ratings, NPS
117
+
118
+ ## Context Management
119
+
120
+ When planning and prioritizing:
121
+
122
+ 1. **Keep roadmaps focused** - Don't load entire product history
123
+ 2. **Create checkpoints** before strategic planning sessions
124
+ 3. **Summarize decisions** - Document rationale concisely
125
+ 4. **Link to details** - Reference full docs instead of copying
126
+
127
+ ## When Complete
128
+
129
+ After completing product management work:
130
+
131
+ 1. Update roadmap and epic documentation
132
+ 2. Ensure sprint-status.yaml reflects current priorities
133
+ 3. Create clear handoff notes for BA and SM agents
134
+ 4. Document any scope changes or pivots
135
+ 5. Update stakeholder communication as needed
@@ -112,7 +112,7 @@ Location: path/to/file.dart:42
112
112
 
113
113
  ## Rules
114
114
 
115
- 1. **No rubber stamping** - Every review must find at least one improvement opportunity
115
+ 1. **Thorough reviews** - Identify all legitimate issues; approve only when code genuinely meets standards
116
116
  2. **Be specific** - Vague feedback is useless; explain WHY and suggest HOW to fix
117
117
  3. **Prioritize by risk** - Security > Reliability > Correctness > Style
118
118
  4. **Check the tests** - Missing tests for critical paths is a blocking issue
@@ -191,3 +191,22 @@ Before finalizing documentation:
191
191
  - [ ] Links are valid
192
192
  - [ ] Code examples work
193
193
  - [ ] Screenshots are current (if applicable)
194
+
195
+ ## Context Management
196
+
197
+ When writing documentation:
198
+
199
+ 1. **Read source first** - Understand before documenting
200
+ 2. **Create checkpoints** before large documentation efforts
201
+ 3. **Write incrementally** - Save sections as you complete them
202
+ 4. **Keep examples minimal** - Use the simplest code that illustrates the point
203
+
204
+ ## When Complete
205
+
206
+ After completing documentation work:
207
+
208
+ 1. Save documentation to the appropriate working directory
209
+ 2. Verify all links and references are valid
210
+ 3. Update any related README files
211
+ 4. Update sprint-status.yaml if documenting a story
212
+ 5. Note any areas needing future documentation updates
@@ -0,0 +1,314 @@
1
+ [
2
+ {
3
+ "test_id": "sim_20251230_100119",
4
+ "task": "Design a secure authentication system with OAuth2 and JWT",
5
+ "agents": [
6
+ "ARCHITECT",
7
+ "DEV",
8
+ "REVIEWER"
9
+ ],
10
+ "personas_used": [
11
+ "Enterprise Architect",
12
+ "Cloud Native",
13
+ "Pragmatic Minimalist"
14
+ ],
15
+ "total_rounds": 5,
16
+ "termination_reason": "max_rounds",
17
+ "final_agreement_score": 0.4152174154581419,
18
+ "total_tokens": 4674,
19
+ "total_cost_usd": 0.046740000000000004,
20
+ "timestamp": "2025-12-30T10:01:19.418096",
21
+ "duration_seconds": 0.0007348060607910156,
22
+ "rounds": [
23
+ {
24
+ "round_num": 0,
25
+ "new_arguments": 4,
26
+ "challenges_raised": 4,
27
+ "concessions_made": 0,
28
+ "agreement_score": 0.16548581440877563,
29
+ "agreement_delta": 0.16548581440877563,
30
+ "unique_issues": 8,
31
+ "tokens_used": 639,
32
+ "cost_usd": 0.006390000000000001,
33
+ "positions_changed": 1
34
+ },
35
+ {
36
+ "round_num": 1,
37
+ "new_arguments": 5,
38
+ "challenges_raised": 2,
39
+ "concessions_made": 0,
40
+ "agreement_score": 0.2572500710936962,
41
+ "agreement_delta": 0.09176425668492055,
42
+ "unique_issues": 4,
43
+ "tokens_used": 923,
44
+ "cost_usd": 0.00923,
45
+ "positions_changed": 1
46
+ },
47
+ {
48
+ "round_num": 2,
49
+ "new_arguments": 2,
50
+ "challenges_raised": 0,
51
+ "concessions_made": 1,
52
+ "agreement_score": 0.32163266454672484,
53
+ "agreement_delta": 0.06438259345302866,
54
+ "unique_issues": 2,
55
+ "tokens_used": 1405,
56
+ "cost_usd": 0.014050000000000002,
57
+ "positions_changed": 0
58
+ },
59
+ {
60
+ "round_num": 3,
61
+ "new_arguments": 3,
62
+ "challenges_raised": 1,
63
+ "concessions_made": 2,
64
+ "agreement_score": 0.3887506875113108,
65
+ "agreement_delta": 0.06711802296458597,
66
+ "unique_issues": 1,
67
+ "tokens_used": 887,
68
+ "cost_usd": 0.008870000000000001,
69
+ "positions_changed": 0
70
+ },
71
+ {
72
+ "round_num": 4,
73
+ "new_arguments": 2,
74
+ "challenges_raised": 1,
75
+ "concessions_made": 2,
76
+ "agreement_score": 0.4152174154581419,
77
+ "agreement_delta": 0.02646672794683108,
78
+ "unique_issues": 0,
79
+ "tokens_used": 820,
80
+ "cost_usd": 0.0082,
81
+ "positions_changed": 0
82
+ }
83
+ ],
84
+ "arguments_per_round": [
85
+ 4,
86
+ 5,
87
+ 2,
88
+ 3,
89
+ 2
90
+ ],
91
+ "agreement_progression": [
92
+ 0.16548581440877563,
93
+ 0.2572500710936962,
94
+ 0.32163266454672484,
95
+ 0.3887506875113108,
96
+ 0.4152174154581419
97
+ ],
98
+ "marginal_value": [
99
+ 15.109324169151417,
100
+ 8.578160960833376,
101
+ 1.8817266437937983,
102
+ 5.2662685790821415,
103
+ 3.981301560327209
104
+ ]
105
+ },
106
+ {
107
+ "test_id": "sim_20251230_100119",
108
+ "task": "Implement a caching layer for the API with Redis",
109
+ "agents": [
110
+ "DEV",
111
+ "REVIEWER",
112
+ "SECURITY"
113
+ ],
114
+ "personas_used": [
115
+ "Enterprise Architect",
116
+ "Cloud Native",
117
+ "Legacy Steward"
118
+ ],
119
+ "total_rounds": 5,
120
+ "termination_reason": "max_rounds",
121
+ "final_agreement_score": 0.633611109969572,
122
+ "total_tokens": 5717,
123
+ "total_cost_usd": 0.057170000000000006,
124
+ "timestamp": "2025-12-30T10:01:19.418465",
125
+ "duration_seconds": 0.00034999847412109375,
126
+ "rounds": [
127
+ {
128
+ "round_num": 0,
129
+ "new_arguments": 6,
130
+ "challenges_raised": 4,
131
+ "concessions_made": 0,
132
+ "agreement_score": 0.24779613641768966,
133
+ "agreement_delta": 0.24779613641768966,
134
+ "unique_issues": 8,
135
+ "tokens_used": 896,
136
+ "cost_usd": 0.008960000000000001,
137
+ "positions_changed": 1
138
+ },
139
+ {
140
+ "round_num": 1,
141
+ "new_arguments": 6,
142
+ "challenges_raised": 2,
143
+ "concessions_made": 0,
144
+ "agreement_score": 0.4224856503032449,
145
+ "agreement_delta": 0.17468951388555526,
146
+ "unique_issues": 4,
147
+ "tokens_used": 745,
148
+ "cost_usd": 0.007450000000000001,
149
+ "positions_changed": 1
150
+ },
151
+ {
152
+ "round_num": 2,
153
+ "new_arguments": 2,
154
+ "challenges_raised": 1,
155
+ "concessions_made": 1,
156
+ "agreement_score": 0.49914978983499475,
157
+ "agreement_delta": 0.07666413953174983,
158
+ "unique_issues": 2,
159
+ "tokens_used": 1241,
160
+ "cost_usd": 0.012410000000000001,
161
+ "positions_changed": 0
162
+ },
163
+ {
164
+ "round_num": 3,
165
+ "new_arguments": 3,
166
+ "challenges_raised": 0,
167
+ "concessions_made": 1,
168
+ "agreement_score": 0.5746733088536397,
169
+ "agreement_delta": 0.0755235190186449,
170
+ "unique_issues": 1,
171
+ "tokens_used": 1454,
172
+ "cost_usd": 0.01454,
173
+ "positions_changed": 0
174
+ },
175
+ {
176
+ "round_num": 4,
177
+ "new_arguments": 1,
178
+ "challenges_raised": 0,
179
+ "concessions_made": 3,
180
+ "agreement_score": 0.633611109969572,
181
+ "agreement_delta": 0.05893780111593239,
182
+ "unique_issues": 0,
183
+ "tokens_used": 1381,
184
+ "cost_usd": 0.013810000000000001,
185
+ "positions_changed": 0
186
+ }
187
+ ],
188
+ "arguments_per_round": [
189
+ 6,
190
+ 6,
191
+ 2,
192
+ 3,
193
+ 1
194
+ ],
195
+ "agreement_progression": [
196
+ 0.24779613641768966,
197
+ 0.4224856503032449,
198
+ 0.49914978983499475,
199
+ 0.5746733088536397,
200
+ 0.633611109969572
201
+ ],
202
+ "marginal_value": [
203
+ 13.926296165376002,
204
+ 13.083080723296044,
205
+ 3.03516631371273,
206
+ 2.582692703016815,
207
+ 1.1508892187974828
208
+ ]
209
+ },
210
+ {
211
+ "test_id": "sim_20251230_100119",
212
+ "task": "Refactor the monolith into microservices",
213
+ "agents": [
214
+ "ARCHITECT",
215
+ "DEV",
216
+ "MAINTAINER"
217
+ ],
218
+ "personas_used": [
219
+ "Enterprise Architect",
220
+ "Cloud Native",
221
+ "Pragmatic Minimalist"
222
+ ],
223
+ "total_rounds": 5,
224
+ "termination_reason": "max_rounds",
225
+ "final_agreement_score": 0.6020975857005524,
226
+ "total_tokens": 6145,
227
+ "total_cost_usd": 0.061450000000000005,
228
+ "timestamp": "2025-12-30T10:01:19.418781",
229
+ "duration_seconds": 0.0003027915954589844,
230
+ "rounds": [
231
+ {
232
+ "round_num": 0,
233
+ "new_arguments": 7,
234
+ "challenges_raised": 2,
235
+ "concessions_made": 0,
236
+ "agreement_score": 0.21906235961694137,
237
+ "agreement_delta": 0.21906235961694137,
238
+ "unique_issues": 8,
239
+ "tokens_used": 1410,
240
+ "cost_usd": 0.014100000000000001,
241
+ "positions_changed": 1
242
+ },
243
+ {
244
+ "round_num": 1,
245
+ "new_arguments": 4,
246
+ "challenges_raised": 1,
247
+ "concessions_made": 1,
248
+ "agreement_score": 0.3745279924008167,
249
+ "agreement_delta": 0.15546563278387532,
250
+ "unique_issues": 4,
251
+ "tokens_used": 1452,
252
+ "cost_usd": 0.014520000000000002,
253
+ "positions_changed": 1
254
+ },
255
+ {
256
+ "round_num": 2,
257
+ "new_arguments": 2,
258
+ "challenges_raised": 1,
259
+ "concessions_made": 2,
260
+ "agreement_score": 0.49082614889689385,
261
+ "agreement_delta": 0.11629815649607717,
262
+ "unique_issues": 2,
263
+ "tokens_used": 1190,
264
+ "cost_usd": 0.0119,
265
+ "positions_changed": 0
266
+ },
267
+ {
268
+ "round_num": 3,
269
+ "new_arguments": 2,
270
+ "challenges_raised": 1,
271
+ "concessions_made": 1,
272
+ "agreement_score": 0.5596567470953212,
273
+ "agreement_delta": 0.06883059819842735,
274
+ "unique_issues": 1,
275
+ "tokens_used": 736,
276
+ "cost_usd": 0.00736,
277
+ "positions_changed": 0
278
+ },
279
+ {
280
+ "round_num": 4,
281
+ "new_arguments": 2,
282
+ "challenges_raised": 0,
283
+ "concessions_made": 2,
284
+ "agreement_score": 0.6020975857005524,
285
+ "agreement_delta": 0.04244083860523118,
286
+ "unique_issues": 0,
287
+ "tokens_used": 1357,
288
+ "cost_usd": 0.01357,
289
+ "positions_changed": 0
290
+ }
291
+ ],
292
+ "arguments_per_round": [
293
+ 7,
294
+ 4,
295
+ 2,
296
+ 2,
297
+ 2
298
+ ],
299
+ "agreement_progression": [
300
+ 0.21906235961694137,
301
+ 0.3745279924008167,
302
+ 0.49082614889689385,
303
+ 0.5596567470953212,
304
+ 0.6020975857005524
305
+ ],
306
+ "marginal_value": [
307
+ 7.9366124795527755,
308
+ 4.5142261211010695,
309
+ 3.498303836101489,
310
+ 5.0112853016090675,
311
+ 1.786594241748203
312
+ ]
313
+ }
314
+ ]
@@ -0,0 +1,314 @@
1
+ [
2
+ {
3
+ "test_id": "sim_20251230_100216",
4
+ "task": "Design a secure authentication system with OAuth2 and JWT",
5
+ "agents": [
6
+ "ARCHITECT",
7
+ "DEV",
8
+ "REVIEWER"
9
+ ],
10
+ "personas_used": [
11
+ "Cloud Native",
12
+ "Security Focused",
13
+ "Thorough Critic"
14
+ ],
15
+ "total_rounds": 5,
16
+ "termination_reason": "max_rounds",
17
+ "final_agreement_score": 0.49019387935470854,
18
+ "total_tokens": 5893,
19
+ "total_cost_usd": 0.05893,
20
+ "timestamp": "2025-12-30T10:02:16.339232",
21
+ "duration_seconds": 0.0005037784576416016,
22
+ "rounds": [
23
+ {
24
+ "round_num": 0,
25
+ "new_arguments": 7,
26
+ "challenges_raised": 3,
27
+ "concessions_made": 0,
28
+ "agreement_score": 0.23946842194910561,
29
+ "agreement_delta": 0.23946842194910561,
30
+ "unique_issues": 8,
31
+ "tokens_used": 1291,
32
+ "cost_usd": 0.012910000000000001,
33
+ "positions_changed": 1
34
+ },
35
+ {
36
+ "round_num": 1,
37
+ "new_arguments": 3,
38
+ "challenges_raised": 1,
39
+ "concessions_made": 1,
40
+ "agreement_score": 0.3293716905425653,
41
+ "agreement_delta": 0.0899032685934597,
42
+ "unique_issues": 4,
43
+ "tokens_used": 1125,
44
+ "cost_usd": 0.011250000000000001,
45
+ "positions_changed": 1
46
+ },
47
+ {
48
+ "round_num": 2,
49
+ "new_arguments": 2,
50
+ "challenges_raised": 0,
51
+ "concessions_made": 1,
52
+ "agreement_score": 0.40130710727763447,
53
+ "agreement_delta": 0.07193541673506915,
54
+ "unique_issues": 2,
55
+ "tokens_used": 1083,
56
+ "cost_usd": 0.010830000000000001,
57
+ "positions_changed": 0
58
+ },
59
+ {
60
+ "round_num": 3,
61
+ "new_arguments": 3,
62
+ "challenges_raised": 1,
63
+ "concessions_made": 2,
64
+ "agreement_score": 0.4535129062771106,
65
+ "agreement_delta": 0.05220579899947614,
66
+ "unique_issues": 1,
67
+ "tokens_used": 1165,
68
+ "cost_usd": 0.01165,
69
+ "positions_changed": 0
70
+ },
71
+ {
72
+ "round_num": 4,
73
+ "new_arguments": 1,
74
+ "challenges_raised": 0,
75
+ "concessions_made": 2,
76
+ "agreement_score": 0.49019387935470854,
77
+ "agreement_delta": 0.036680973077597934,
78
+ "unique_issues": 0,
79
+ "tokens_used": 1229,
80
+ "cost_usd": 0.01229,
81
+ "positions_changed": 0
82
+ }
83
+ ],
84
+ "arguments_per_round": [
85
+ 7,
86
+ 3,
87
+ 2,
88
+ 3,
89
+ 1
90
+ ],
91
+ "agreement_progression": [
92
+ 0.23946842194910561,
93
+ 0.3293716905425653,
94
+ 0.40130710727763447,
95
+ 0.4535129062771106,
96
+ 0.49019387935470854
97
+ ],
98
+ "marginal_value": [
99
+ 9.600839829195241,
100
+ 4.354695720830753,
101
+ 2.510945676224092,
102
+ 3.8815948411972196,
103
+ 1.1121315954239048
104
+ ]
105
+ },
106
+ {
107
+ "test_id": "sim_20251230_100216",
108
+ "task": "Implement a caching layer for the API with Redis",
109
+ "agents": [
110
+ "DEV",
111
+ "REVIEWER",
112
+ "SECURITY"
113
+ ],
114
+ "personas_used": [
115
+ "Rapid Prototyper",
116
+ "Mentoring Reviewer",
117
+ "Rapid Prototyper"
118
+ ],
119
+ "total_rounds": 5,
120
+ "termination_reason": "max_rounds",
121
+ "final_agreement_score": 0.4806110932047149,
122
+ "total_tokens": 4080,
123
+ "total_cost_usd": 0.0408,
124
+ "timestamp": "2025-12-30T10:02:16.339666",
125
+ "duration_seconds": 0.00041294097900390625,
126
+ "rounds": [
127
+ {
128
+ "round_num": 0,
129
+ "new_arguments": 4,
130
+ "challenges_raised": 3,
131
+ "concessions_made": 0,
132
+ "agreement_score": 0.2191275323905167,
133
+ "agreement_delta": 0.2191275323905167,
134
+ "unique_issues": 8,
135
+ "tokens_used": 813,
136
+ "cost_usd": 0.00813,
137
+ "positions_changed": 1
138
+ },
139
+ {
140
+ "round_num": 1,
141
+ "new_arguments": 3,
142
+ "challenges_raised": 2,
143
+ "concessions_made": 0,
144
+ "agreement_score": 0.2900503554649009,
145
+ "agreement_delta": 0.07092282307438419,
146
+ "unique_issues": 4,
147
+ "tokens_used": 909,
148
+ "cost_usd": 0.00909,
149
+ "positions_changed": 1
150
+ },
151
+ {
152
+ "round_num": 2,
153
+ "new_arguments": 4,
154
+ "challenges_raised": 0,
155
+ "concessions_made": 2,
156
+ "agreement_score": 0.37485556301934597,
157
+ "agreement_delta": 0.0848052075544451,
158
+ "unique_issues": 2,
159
+ "tokens_used": 1141,
160
+ "cost_usd": 0.011410000000000002,
161
+ "positions_changed": 0
162
+ },
163
+ {
164
+ "round_num": 3,
165
+ "new_arguments": 2,
166
+ "challenges_raised": 1,
167
+ "concessions_made": 1,
168
+ "agreement_score": 0.4334768125736834,
169
+ "agreement_delta": 0.05862124955433745,
170
+ "unique_issues": 1,
171
+ "tokens_used": 626,
172
+ "cost_usd": 0.006260000000000001,
173
+ "positions_changed": 0
174
+ },
175
+ {
176
+ "round_num": 4,
177
+ "new_arguments": 2,
178
+ "challenges_raised": 1,
179
+ "concessions_made": 3,
180
+ "agreement_score": 0.4806110932047149,
181
+ "agreement_delta": 0.04713428063103148,
182
+ "unique_issues": 0,
183
+ "tokens_used": 591,
184
+ "cost_usd": 0.00591,
185
+ "positions_changed": 0
186
+ }
187
+ ],
188
+ "arguments_per_round": [
189
+ 4,
190
+ 3,
191
+ 4,
192
+ 2,
193
+ 2
194
+ ],
195
+ "agreement_progression": [
196
+ 0.2191275323905167,
197
+ 0.2900503554649009,
198
+ 0.37485556301934597,
199
+ 0.4334768125736834,
200
+ 0.4806110932047149
201
+ ],
202
+ "marginal_value": [
203
+ 11.305381702220378,
204
+ 6.280779131731399,
205
+ 4.248950110030194,
206
+ 5.728773954542132,
207
+ 5.8736764912188075
208
+ ]
209
+ },
210
+ {
211
+ "test_id": "sim_20251230_100216",
212
+ "task": "Refactor the monolith into microservices",
213
+ "agents": [
214
+ "ARCHITECT",
215
+ "DEV",
216
+ "MAINTAINER"
217
+ ],
218
+ "personas_used": [
219
+ "Cloud Native",
220
+ "Senior Fullstack",
221
+ "Devops Maintainer"
222
+ ],
223
+ "total_rounds": 5,
224
+ "termination_reason": "max_rounds",
225
+ "final_agreement_score": 0.4522478003296368,
226
+ "total_tokens": 3943,
227
+ "total_cost_usd": 0.03943,
228
+ "timestamp": "2025-12-30T10:02:16.339945",
229
+ "duration_seconds": 0.00026607513427734375,
230
+ "rounds": [
231
+ {
232
+ "round_num": 0,
233
+ "new_arguments": 6,
234
+ "challenges_raised": 4,
235
+ "concessions_made": 0,
236
+ "agreement_score": 0.1356175692422249,
237
+ "agreement_delta": 0.1356175692422249,
238
+ "unique_issues": 8,
239
+ "tokens_used": 544,
240
+ "cost_usd": 0.00544,
241
+ "positions_changed": 1
242
+ },
243
+ {
244
+ "round_num": 1,
245
+ "new_arguments": 3,
246
+ "challenges_raised": 1,
247
+ "concessions_made": 1,
248
+ "agreement_score": 0.2755513560908879,
249
+ "agreement_delta": 0.13993378684866298,
250
+ "unique_issues": 4,
251
+ "tokens_used": 702,
252
+ "cost_usd": 0.00702,
253
+ "positions_changed": 1
254
+ },
255
+ {
256
+ "round_num": 2,
257
+ "new_arguments": 3,
258
+ "challenges_raised": 1,
259
+ "concessions_made": 1,
260
+ "agreement_score": 0.3457996988404968,
261
+ "agreement_delta": 0.07024834274960895,
262
+ "unique_issues": 2,
263
+ "tokens_used": 923,
264
+ "cost_usd": 0.00923,
265
+ "positions_changed": 0
266
+ },
267
+ {
268
+ "round_num": 3,
269
+ "new_arguments": 3,
270
+ "challenges_raised": 0,
271
+ "concessions_made": 2,
272
+ "agreement_score": 0.4094348887759161,
273
+ "agreement_delta": 0.06363518993541928,
274
+ "unique_issues": 1,
275
+ "tokens_used": 1227,
276
+ "cost_usd": 0.012270000000000001,
277
+ "positions_changed": 0
278
+ },
279
+ {
280
+ "round_num": 4,
281
+ "new_arguments": 1,
282
+ "challenges_raised": 0,
283
+ "concessions_made": 3,
284
+ "agreement_score": 0.4522478003296368,
285
+ "agreement_delta": 0.04281291155372069,
286
+ "unique_issues": 0,
287
+ "tokens_used": 547,
288
+ "cost_usd": 0.00547,
289
+ "positions_changed": 0
290
+ }
291
+ ],
292
+ "arguments_per_round": [
293
+ 6,
294
+ 3,
295
+ 3,
296
+ 3,
297
+ 1
298
+ ],
299
+ "agreement_progression": [
300
+ 0.1356175692422249,
301
+ 0.2755513560908879,
302
+ 0.3457996988404968,
303
+ 0.4094348887759161,
304
+ 0.4522478003296368
305
+ ],
306
+ "marginal_value": [
307
+ 20.875322964011488,
308
+ 7.691364485023689,
309
+ 5.094781611588395,
310
+ 2.9636119799137672,
311
+ 2.6108393337060454
312
+ ]
313
+ }
314
+ ]