devflow-engine 1.0.0__py3-none-any.whl

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 (393) hide show
  1. devflow_engine/__init__.py +3 -0
  2. devflow_engine/agentic_prompts.py +100 -0
  3. devflow_engine/agentic_runtime.py +398 -0
  4. devflow_engine/api_key_flow_harness.py +539 -0
  5. devflow_engine/api_keys.py +357 -0
  6. devflow_engine/bootstrap/__init__.py +2 -0
  7. devflow_engine/bootstrap/provision_from_template.py +84 -0
  8. devflow_engine/cli/__init__.py +0 -0
  9. devflow_engine/cli/app.py +7270 -0
  10. devflow_engine/core/__init__.py +0 -0
  11. devflow_engine/core/config.py +86 -0
  12. devflow_engine/core/logging.py +29 -0
  13. devflow_engine/core/paths.py +45 -0
  14. devflow_engine/core/toml_kv.py +33 -0
  15. devflow_engine/devflow_event_worker.py +1292 -0
  16. devflow_engine/devflow_state.py +201 -0
  17. devflow_engine/devin2/__init__.py +9 -0
  18. devflow_engine/devin2/agent_definition.py +120 -0
  19. devflow_engine/devin2/pi_runner.py +204 -0
  20. devflow_engine/devin_orchestration.py +69 -0
  21. devflow_engine/docs/prompts/anti-patterns.md +42 -0
  22. devflow_engine/docs/prompts/devin-agent-prompt.md +55 -0
  23. devflow_engine/docs/prompts/devin2-agent-prompt.md +81 -0
  24. devflow_engine/docs/prompts/examples/devin-vapi-clone-reference-exchange.json +85 -0
  25. devflow_engine/doctor/__init__.py +2 -0
  26. devflow_engine/doctor/triage.py +140 -0
  27. devflow_engine/error/__init__.py +0 -0
  28. devflow_engine/error/remediation.py +21 -0
  29. devflow_engine/errors/error_solver_dag.py +522 -0
  30. devflow_engine/errors/runtime_observability.py +67 -0
  31. devflow_engine/idea/__init__.py +4 -0
  32. devflow_engine/idea/actors.py +481 -0
  33. devflow_engine/idea/agentic.py +465 -0
  34. devflow_engine/idea/analyze.py +93 -0
  35. devflow_engine/idea/devin_chat_dag.py +1 -0
  36. devflow_engine/idea/diff.py +99 -0
  37. devflow_engine/idea/drafts.py +446 -0
  38. devflow_engine/idea/idea_creation_dag.py +643 -0
  39. devflow_engine/idea/ideation_enrichment.py +355 -0
  40. devflow_engine/idea/ideation_enrichment_worker.py +19 -0
  41. devflow_engine/idea/paths.py +28 -0
  42. devflow_engine/idea/promote.py +53 -0
  43. devflow_engine/idea/redaction.py +27 -0
  44. devflow_engine/idea/repo_tools.py +1277 -0
  45. devflow_engine/idea/response_mode.py +30 -0
  46. devflow_engine/idea/story_pipeline.py +1585 -0
  47. devflow_engine/idea/sufficiency.py +376 -0
  48. devflow_engine/idea/traditional_stories.py +1257 -0
  49. devflow_engine/implementation/__init__.py +0 -0
  50. devflow_engine/implementation/alembic_preflight.py +700 -0
  51. devflow_engine/implementation/dag.py +8450 -0
  52. devflow_engine/implementation/green_gate.py +93 -0
  53. devflow_engine/implementation/prompts.py +108 -0
  54. devflow_engine/implementation/test_runtime.py +623 -0
  55. devflow_engine/integration/__init__.py +19 -0
  56. devflow_engine/integration/agentic.py +66 -0
  57. devflow_engine/integration/dag.py +3539 -0
  58. devflow_engine/integration/prompts.py +114 -0
  59. devflow_engine/integration/supabase_schema.sql +31 -0
  60. devflow_engine/integration/supabase_sync.py +177 -0
  61. devflow_engine/llm/__init__.py +1 -0
  62. devflow_engine/llm/cli_one_shot.py +84 -0
  63. devflow_engine/llm/cli_stream.py +371 -0
  64. devflow_engine/llm/execution_context.py +26 -0
  65. devflow_engine/llm/invoke.py +1322 -0
  66. devflow_engine/llm/provider_api.py +304 -0
  67. devflow_engine/llm/repo_knowledge.py +588 -0
  68. devflow_engine/llm_primitives.py +315 -0
  69. devflow_engine/orchestration.py +62 -0
  70. devflow_engine/planning/__init__.py +0 -0
  71. devflow_engine/planning/analyze_repo.py +92 -0
  72. devflow_engine/planning/render_drafts.py +133 -0
  73. devflow_engine/playground/__init__.py +0 -0
  74. devflow_engine/playground/hooks.py +26 -0
  75. devflow_engine/playwright_workflow/__init__.py +5 -0
  76. devflow_engine/playwright_workflow/dag.py +1317 -0
  77. devflow_engine/process/__init__.py +5 -0
  78. devflow_engine/process/dag.py +59 -0
  79. devflow_engine/project_registration/__init__.py +3 -0
  80. devflow_engine/project_registration/dag.py +1581 -0
  81. devflow_engine/project_registry.py +109 -0
  82. devflow_engine/prompts/devin/generic/prompt.md +6 -0
  83. devflow_engine/prompts/devin/ideation/prompt.md +263 -0
  84. devflow_engine/prompts/devin/ideation/scenarios.md +5 -0
  85. devflow_engine/prompts/devin/ideation_loop/prompt.md +6 -0
  86. devflow_engine/prompts/devin/insight/prompt.md +11 -0
  87. devflow_engine/prompts/devin/insight/scenarios.md +5 -0
  88. devflow_engine/prompts/devin/intake/prompt.md +15 -0
  89. devflow_engine/prompts/devin/iterate/prompt.md +12 -0
  90. devflow_engine/prompts/devin/shared/eval_doctrine.md +9 -0
  91. devflow_engine/prompts/devin/shared/principles.md +246 -0
  92. devflow_engine/prompts/devin_eval/assessment/prompt.md +18 -0
  93. devflow_engine/prompts/idea/api_ideation_agent/prompt.md +8 -0
  94. devflow_engine/prompts/idea/api_insight_agent/prompt.md +8 -0
  95. devflow_engine/prompts/idea/response_doctrine/prompt.md +18 -0
  96. devflow_engine/prompts/implementation/dependency_assessment/prompt.md +12 -0
  97. devflow_engine/prompts/implementation/green/green/prompt.md +11 -0
  98. devflow_engine/prompts/implementation/green/node_config/prompt.md +3 -0
  99. devflow_engine/prompts/implementation/green_review/outcome_review/prompt.md +5 -0
  100. devflow_engine/prompts/implementation/green_review/prior_run_review/prompt.md +5 -0
  101. devflow_engine/prompts/implementation/red/prompt.md +27 -0
  102. devflow_engine/prompts/implementation/redreview/prompt.md +23 -0
  103. devflow_engine/prompts/implementation/redreview_repair/prompt.md +16 -0
  104. devflow_engine/prompts/implementation/setupdoc/prompt.md +10 -0
  105. devflow_engine/prompts/implementation/story_planning/prompt.md +13 -0
  106. devflow_engine/prompts/implementation/test_design/prompt.md +27 -0
  107. devflow_engine/prompts/integration/README.md +185 -0
  108. devflow_engine/prompts/integration/green/example.md +67 -0
  109. devflow_engine/prompts/integration/green/green/prompt.md +10 -0
  110. devflow_engine/prompts/integration/green/node_config/prompt.md +42 -0
  111. devflow_engine/prompts/integration/green/past_prompts/20260417T212300/green/prompt.md +15 -0
  112. devflow_engine/prompts/integration/green/past_prompts/20260417T212300/node_config/prompt.md +42 -0
  113. devflow_engine/prompts/integration/green_enrich/example.md +79 -0
  114. devflow_engine/prompts/integration/green_enrich/green_enrich/prompt.md +9 -0
  115. devflow_engine/prompts/integration/green_enrich/node_config/prompt.md +41 -0
  116. devflow_engine/prompts/integration/green_enrich/past_prompts/20260417T212300/green_enrich/prompt.md +14 -0
  117. devflow_engine/prompts/integration/green_enrich/past_prompts/20260417T212300/node_config/prompt.md +41 -0
  118. devflow_engine/prompts/integration/red/code_repair/prompt.md +12 -0
  119. devflow_engine/prompts/integration/red/example.md +152 -0
  120. devflow_engine/prompts/integration/red/node_config/prompt.md +86 -0
  121. devflow_engine/prompts/integration/red/past_prompts/20260417T212300/code_repair/prompt.md +19 -0
  122. devflow_engine/prompts/integration/red/past_prompts/20260417T212300/node_config/prompt.md +84 -0
  123. devflow_engine/prompts/integration/red/past_prompts/20260417T212300/red/prompt.md +16 -0
  124. devflow_engine/prompts/integration/red/past_prompts/20260417T212300/red_repair/prompt.md +15 -0
  125. devflow_engine/prompts/integration/red/past_prompts/20260417T215032/code_repair/prompt.md +10 -0
  126. devflow_engine/prompts/integration/red/past_prompts/20260417T215032/node_config/prompt.md +84 -0
  127. devflow_engine/prompts/integration/red/past_prompts/20260417T215032/red_repair/prompt.md +11 -0
  128. devflow_engine/prompts/integration/red/red/prompt.md +11 -0
  129. devflow_engine/prompts/integration/red/red_repair/prompt.md +12 -0
  130. devflow_engine/prompts/integration/red_review/example.md +71 -0
  131. devflow_engine/prompts/integration/red_review/node_config/prompt.md +41 -0
  132. devflow_engine/prompts/integration/red_review/past_prompts/20260417T212300/node_config/prompt.md +41 -0
  133. devflow_engine/prompts/integration/red_review/past_prompts/20260417T212300/red_review/prompt.md +15 -0
  134. devflow_engine/prompts/integration/red_review/red_review/prompt.md +9 -0
  135. devflow_engine/prompts/integration/resolve/example.md +111 -0
  136. devflow_engine/prompts/integration/resolve/node_config/prompt.md +64 -0
  137. devflow_engine/prompts/integration/resolve/past_prompts/20260417T212300/node_config/prompt.md +64 -0
  138. devflow_engine/prompts/integration/resolve/past_prompts/20260417T212300/resolve_implicated_users/prompt.md +15 -0
  139. devflow_engine/prompts/integration/resolve/past_prompts/20260417T212300/resolve_side_effects/prompt.md +15 -0
  140. devflow_engine/prompts/integration/resolve/resolve_implicated_users/prompt.md +10 -0
  141. devflow_engine/prompts/integration/resolve/resolve_side_effects/prompt.md +10 -0
  142. devflow_engine/prompts/integration/validate/build_idea_acceptance_coverage/prompt.md +12 -0
  143. devflow_engine/prompts/integration/validate/code_repair/prompt.md +13 -0
  144. devflow_engine/prompts/integration/validate/example.md +143 -0
  145. devflow_engine/prompts/integration/validate/node_config/prompt.md +87 -0
  146. devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/code_repair/prompt.md +19 -0
  147. devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/node_config/prompt.md +67 -0
  148. devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/validate_enrich_gate/prompt.md +17 -0
  149. devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/validate_repair/prompt.md +16 -0
  150. devflow_engine/prompts/integration/validate/past_prompts/20260417T215032/code_repair/prompt.md +10 -0
  151. devflow_engine/prompts/integration/validate/past_prompts/20260417T215032/node_config/prompt.md +67 -0
  152. devflow_engine/prompts/integration/validate/past_prompts/20260417T215032/validate_repair/prompt.md +9 -0
  153. devflow_engine/prompts/integration/validate/validate_enrich_gate/prompt.md +10 -0
  154. devflow_engine/prompts/integration/validate/validate_repair/prompt.md +20 -0
  155. devflow_engine/prompts/integration/write_workflows/example.md +100 -0
  156. devflow_engine/prompts/integration/write_workflows/node_config/prompt.md +44 -0
  157. devflow_engine/prompts/integration/write_workflows/past_prompts/20260417T212300/node_config/prompt.md +44 -0
  158. devflow_engine/prompts/integration/write_workflows/past_prompts/20260417T212300/write_workflows/prompt.md +17 -0
  159. devflow_engine/prompts/integration/write_workflows/write_workflows/prompt.md +11 -0
  160. devflow_engine/prompts/iterate/README.md +7 -0
  161. devflow_engine/prompts/iterate/coder/prompt.md +11 -0
  162. devflow_engine/prompts/iterate/framer/prompt.md +11 -0
  163. devflow_engine/prompts/iterate/iterator/prompt.md +13 -0
  164. devflow_engine/prompts/iterate/observer/prompt.md +11 -0
  165. devflow_engine/prompts/recovery/diagnosis/prompt.md +7 -0
  166. devflow_engine/prompts/recovery/execution/prompt.md +8 -0
  167. devflow_engine/prompts/recovery/execution_verification/prompt.md +7 -0
  168. devflow_engine/prompts/recovery/failure_investigation/prompt.md +10 -0
  169. devflow_engine/prompts/recovery/preflight_health_repo_repair/prompt.md +8 -0
  170. devflow_engine/prompts/recovery/remediation_execution/prompt.md +11 -0
  171. devflow_engine/prompts/recovery/root_cause_investigation/prompt.md +12 -0
  172. devflow_engine/prompts/scope_idea/doctrine/prompt.md +7 -0
  173. devflow_engine/prompts/source_doc_eval/document/prompt.md +6 -0
  174. devflow_engine/prompts/source_doc_eval/targeted_mutation/prompt.md +9 -0
  175. devflow_engine/prompts/source_doc_mutation/domain_entities/prompt.md +6 -0
  176. devflow_engine/prompts/source_doc_mutation/product_brief/prompt.md +6 -0
  177. devflow_engine/prompts/source_doc_mutation/project_doc_coherence/prompt.md +7 -0
  178. devflow_engine/prompts/source_doc_mutation/project_doc_render/prompt.md +9 -0
  179. devflow_engine/prompts/source_doc_mutation/source_doc_coherence/prompt.md +5 -0
  180. devflow_engine/prompts/source_doc_mutation/source_doc_enrichment_coherence/prompt.md +6 -0
  181. devflow_engine/prompts/source_doc_mutation/user_workflows/prompt.md +6 -0
  182. devflow_engine/prompts/source_scope/doctrine/prompt.md +10 -0
  183. devflow_engine/prompts/ui_grounding/doctrine/prompt.md +7 -0
  184. devflow_engine/recovery/__init__.py +3 -0
  185. devflow_engine/recovery/dag.py +2609 -0
  186. devflow_engine/recovery/models.py +220 -0
  187. devflow_engine/refactor.py +93 -0
  188. devflow_engine/registry/__init__.py +1 -0
  189. devflow_engine/registry/cards.py +238 -0
  190. devflow_engine/registry/domain_normalize.py +60 -0
  191. devflow_engine/registry/effects.py +65 -0
  192. devflow_engine/registry/enforce_report.py +150 -0
  193. devflow_engine/registry/module_cards_classify.py +164 -0
  194. devflow_engine/registry/module_cards_draft.py +184 -0
  195. devflow_engine/registry/module_cards_gate.py +59 -0
  196. devflow_engine/registry/packages.py +347 -0
  197. devflow_engine/registry/pathways.py +323 -0
  198. devflow_engine/review/__init__.py +11 -0
  199. devflow_engine/review/dag.py +588 -0
  200. devflow_engine/review/review_story.py +67 -0
  201. devflow_engine/scope_idea/__init__.py +3 -0
  202. devflow_engine/scope_idea/agentic.py +39 -0
  203. devflow_engine/scope_idea/dag.py +1069 -0
  204. devflow_engine/scope_idea/models.py +175 -0
  205. devflow_engine/skills/builtins/devflow/queue_failure_investigation/SKILL.md +112 -0
  206. devflow_engine/skills/builtins/devflow/queue_idea_to_story/SKILL.md +120 -0
  207. devflow_engine/skills/builtins/devflow/queue_integration/SKILL.md +105 -0
  208. devflow_engine/skills/builtins/devflow/queue_recovery/SKILL.md +108 -0
  209. devflow_engine/skills/builtins/devflow/queue_runtime_core/SKILL.md +155 -0
  210. devflow_engine/skills/builtins/devflow/queue_story_implementation/SKILL.md +122 -0
  211. devflow_engine/skills/builtins/devin/idea_to_story_handoff/SKILL.md +120 -0
  212. devflow_engine/skills/builtins/devin/ideation/SKILL.md +168 -0
  213. devflow_engine/skills/builtins/devin/ideation/state-and-phrasing-reference.md +18 -0
  214. devflow_engine/skills/builtins/devin/insight/SKILL.md +22 -0
  215. devflow_engine/skills/registry.example.yaml +42 -0
  216. devflow_engine/source_doc_assumptions.py +291 -0
  217. devflow_engine/source_doc_mutation_dag.py +1606 -0
  218. devflow_engine/source_doc_mutation_eval.py +417 -0
  219. devflow_engine/source_doc_mutation_worker.py +25 -0
  220. devflow_engine/source_docs_schema.py +207 -0
  221. devflow_engine/source_docs_updater.py +309 -0
  222. devflow_engine/source_scope/__init__.py +15 -0
  223. devflow_engine/source_scope/agentic.py +45 -0
  224. devflow_engine/source_scope/dag.py +1626 -0
  225. devflow_engine/source_scope/models.py +177 -0
  226. devflow_engine/stores/__init__.py +0 -0
  227. devflow_engine/stores/execution_store.py +3534 -0
  228. devflow_engine/story/__init__.py +0 -0
  229. devflow_engine/story/contracts.py +160 -0
  230. devflow_engine/story/discovery.py +47 -0
  231. devflow_engine/story/evidence.py +118 -0
  232. devflow_engine/story/hashing.py +27 -0
  233. devflow_engine/story/implemented_queue_purge.py +148 -0
  234. devflow_engine/story/indexer.py +105 -0
  235. devflow_engine/story/io.py +20 -0
  236. devflow_engine/story/markdown_contracts.py +298 -0
  237. devflow_engine/story/reconciliation.py +408 -0
  238. devflow_engine/story/validate_stories.py +149 -0
  239. devflow_engine/story/validate_tests_story.py +512 -0
  240. devflow_engine/story/validation.py +133 -0
  241. devflow_engine/ui_grounding/__init__.py +11 -0
  242. devflow_engine/ui_grounding/agentic.py +31 -0
  243. devflow_engine/ui_grounding/dag.py +874 -0
  244. devflow_engine/ui_grounding/models.py +224 -0
  245. devflow_engine/ui_grounding/pencil_bridge.py +247 -0
  246. devflow_engine/vendor/__init__.py +0 -0
  247. devflow_engine/vendor/datalumina_genai/__init__.py +11 -0
  248. devflow_engine/vendor/datalumina_genai/core/__init__.py +0 -0
  249. devflow_engine/vendor/datalumina_genai/core/exceptions.py +9 -0
  250. devflow_engine/vendor/datalumina_genai/core/nodes/__init__.py +0 -0
  251. devflow_engine/vendor/datalumina_genai/core/nodes/agent.py +48 -0
  252. devflow_engine/vendor/datalumina_genai/core/nodes/agent_streaming_node.py +26 -0
  253. devflow_engine/vendor/datalumina_genai/core/nodes/base.py +89 -0
  254. devflow_engine/vendor/datalumina_genai/core/nodes/concurrent.py +30 -0
  255. devflow_engine/vendor/datalumina_genai/core/nodes/router.py +69 -0
  256. devflow_engine/vendor/datalumina_genai/core/schema.py +72 -0
  257. devflow_engine/vendor/datalumina_genai/core/task.py +52 -0
  258. devflow_engine/vendor/datalumina_genai/core/validate.py +139 -0
  259. devflow_engine/vendor/datalumina_genai/core/workflow.py +200 -0
  260. devflow_engine/worker.py +1086 -0
  261. devflow_engine/worker_guard.py +233 -0
  262. devflow_engine-1.0.0.dist-info/METADATA +235 -0
  263. devflow_engine-1.0.0.dist-info/RECORD +393 -0
  264. devflow_engine-1.0.0.dist-info/WHEEL +4 -0
  265. devflow_engine-1.0.0.dist-info/entry_points.txt +3 -0
  266. devin/__init__.py +6 -0
  267. devin/dag.py +58 -0
  268. devin/dag_two_arm.py +138 -0
  269. devin/devin_chat_scenario_catalog.json +588 -0
  270. devin/devin_eval.py +677 -0
  271. devin/nodes/__init__.py +0 -0
  272. devin/nodes/ideation/__init__.py +0 -0
  273. devin/nodes/ideation/node.py +195 -0
  274. devin/nodes/ideation/playground.py +267 -0
  275. devin/nodes/ideation/prompt.md +65 -0
  276. devin/nodes/ideation/scenarios/continue_refinement.py +13 -0
  277. devin/nodes/ideation/scenarios/continue_refinement_evals.py +18 -0
  278. devin/nodes/ideation/scenarios/idea_fits_existing_patterns.py +17 -0
  279. devin/nodes/ideation/scenarios/idea_fits_existing_patterns_evals.py +16 -0
  280. devin/nodes/ideation/scenarios/large_idea_split.py +4 -0
  281. devin/nodes/ideation/scenarios/large_idea_split_evals.py +17 -0
  282. devin/nodes/ideation/scenarios/source_documentation_added.py +4 -0
  283. devin/nodes/ideation/scenarios/source_documentation_added_evals.py +16 -0
  284. devin/nodes/ideation/scenarios/user_says_create_it.py +30 -0
  285. devin/nodes/ideation/scenarios/user_says_create_it_evals.py +23 -0
  286. devin/nodes/ideation/scenarios/vague_idea.py +16 -0
  287. devin/nodes/ideation/scenarios/vague_idea_evals.py +47 -0
  288. devin/nodes/ideation/tools.json +312 -0
  289. devin/nodes/insight/__init__.py +0 -0
  290. devin/nodes/insight/node.py +49 -0
  291. devin/nodes/insight/playground.py +154 -0
  292. devin/nodes/insight/prompt.md +61 -0
  293. devin/nodes/insight/scenarios/architecture_pattern_query.py +15 -0
  294. devin/nodes/insight/scenarios/architecture_pattern_query_evals.py +25 -0
  295. devin/nodes/insight/scenarios/codebase_exploration.py +15 -0
  296. devin/nodes/insight/scenarios/codebase_exploration_evals.py +23 -0
  297. devin/nodes/insight/scenarios/devin_ideation_routing.py +19 -0
  298. devin/nodes/insight/scenarios/devin_ideation_routing_evals.py +39 -0
  299. devin/nodes/insight/scenarios/devin_insight_routing.py +20 -0
  300. devin/nodes/insight/scenarios/devin_insight_routing_evals.py +40 -0
  301. devin/nodes/insight/scenarios/operational_debugging.py +15 -0
  302. devin/nodes/insight/scenarios/operational_debugging_evals.py +23 -0
  303. devin/nodes/insight/scenarios/operational_question.py +9 -0
  304. devin/nodes/insight/scenarios/operational_question_evals.py +8 -0
  305. devin/nodes/insight/scenarios/queue_status.py +15 -0
  306. devin/nodes/insight/scenarios/queue_status_evals.py +23 -0
  307. devin/nodes/insight/scenarios/source_doc_explanation.py +14 -0
  308. devin/nodes/insight/scenarios/source_doc_explanation_evals.py +21 -0
  309. devin/nodes/insight/scenarios/worker_state_check.py +15 -0
  310. devin/nodes/insight/scenarios/worker_state_check_evals.py +22 -0
  311. devin/nodes/insight/tools.json +126 -0
  312. devin/nodes/intake/__init__.py +0 -0
  313. devin/nodes/intake/node.py +27 -0
  314. devin/nodes/intake/playground.py +47 -0
  315. devin/nodes/intake/prompt.md +12 -0
  316. devin/nodes/intake/scenarios/ideation_routing.py +4 -0
  317. devin/nodes/intake/scenarios/ideation_routing_evals.py +5 -0
  318. devin/nodes/intake/scenarios/insight_routing.py +4 -0
  319. devin/nodes/intake/scenarios/insight_routing_evals.py +5 -0
  320. devin/nodes/iterate/README.md +44 -0
  321. devin/nodes/iterate/__init__.py +1 -0
  322. devin/nodes/iterate/_archived_design_stages/01-objectives-requirements.md +112 -0
  323. devin/nodes/iterate/_archived_design_stages/02-evals.md +131 -0
  324. devin/nodes/iterate/_archived_design_stages/03-tools-and-boundaries.md +110 -0
  325. devin/nodes/iterate/_archived_design_stages/04-harness-and-playground.md +32 -0
  326. devin/nodes/iterate/_archived_design_stages/05-prompt-deferred.md +11 -0
  327. devin/nodes/iterate/_archived_design_stages/coder_agent_design/01-objectives-requirements.md +20 -0
  328. devin/nodes/iterate/_archived_design_stages/coder_agent_design/02-evals.md +8 -0
  329. devin/nodes/iterate/_archived_design_stages/coder_agent_design/03-tools-and-boundaries.md +14 -0
  330. devin/nodes/iterate/_archived_design_stages/coder_agent_design/04-harness-and-playground.md +12 -0
  331. devin/nodes/iterate/_archived_design_stages/framer_agent_design/01-objectives-requirements.md +20 -0
  332. devin/nodes/iterate/_archived_design_stages/framer_agent_design/02-evals.md +8 -0
  333. devin/nodes/iterate/_archived_design_stages/framer_agent_design/03-tools-and-boundaries.md +13 -0
  334. devin/nodes/iterate/_archived_design_stages/framer_agent_design/04-harness-and-playground.md +12 -0
  335. devin/nodes/iterate/_archived_design_stages/iterator_agent_design/01-objectives-requirements.md +25 -0
  336. devin/nodes/iterate/_archived_design_stages/iterator_agent_design/02-evals.md +9 -0
  337. devin/nodes/iterate/_archived_design_stages/iterator_agent_design/03-tools-and-boundaries.md +14 -0
  338. devin/nodes/iterate/_archived_design_stages/iterator_agent_design/04-harness-and-playground.md +12 -0
  339. devin/nodes/iterate/_archived_design_stages/observer_agent_design/01-objectives-requirements.md +20 -0
  340. devin/nodes/iterate/_archived_design_stages/observer_agent_design/02-evals.md +8 -0
  341. devin/nodes/iterate/_archived_design_stages/observer_agent_design/03-tools-and-boundaries.md +14 -0
  342. devin/nodes/iterate/_archived_design_stages/observer_agent_design/04-harness-and-playground.md +13 -0
  343. devin/nodes/iterate/agent-roles.md +89 -0
  344. devin/nodes/iterate/agents/README.md +10 -0
  345. devin/nodes/iterate/artifacts.md +504 -0
  346. devin/nodes/iterate/contract.md +100 -0
  347. devin/nodes/iterate/eval-plan.md +74 -0
  348. devin/nodes/iterate/node.py +100 -0
  349. devin/nodes/iterate/pipeline/README.md +13 -0
  350. devin/nodes/iterate/playground-contract.md +76 -0
  351. devin/nodes/iterate/prompt.md +11 -0
  352. devin/nodes/iterate/scenarios/README.md +38 -0
  353. devin/nodes/iterate/scenarios/artifact-and-loop-scenarios.md +101 -0
  354. devin/nodes/iterate/scenarios/coder_artifact_alignment.py +32 -0
  355. devin/nodes/iterate/scenarios/coder_artifact_alignment_evals.py +45 -0
  356. devin/nodes/iterate/scenarios/coder_bounded_fix.py +27 -0
  357. devin/nodes/iterate/scenarios/coder_bounded_fix_evals.py +45 -0
  358. devin/nodes/iterate/scenarios/devin_iterate_routing.py +21 -0
  359. devin/nodes/iterate/scenarios/devin_iterate_routing_evals.py +36 -0
  360. devin/nodes/iterate/scenarios/framer_scope_boundary.py +25 -0
  361. devin/nodes/iterate/scenarios/framer_scope_boundary_evals.py +57 -0
  362. devin/nodes/iterate/scenarios/framer_task_framing.py +25 -0
  363. devin/nodes/iterate/scenarios/framer_task_framing_evals.py +58 -0
  364. devin/nodes/iterate/scenarios/iterate_error_fix.py +21 -0
  365. devin/nodes/iterate/scenarios/iterate_error_fix_evals.py +39 -0
  366. devin/nodes/iterate/scenarios/iterate_quick_change.py +21 -0
  367. devin/nodes/iterate/scenarios/iterate_quick_change_evals.py +35 -0
  368. devin/nodes/iterate/scenarios/iterate_to_idea_promotion.py +23 -0
  369. devin/nodes/iterate/scenarios/iterate_to_idea_promotion_evals.py +53 -0
  370. devin/nodes/iterate/scenarios/iterate_to_insight_reroute.py +23 -0
  371. devin/nodes/iterate/scenarios/iterate_to_insight_reroute_evals.py +53 -0
  372. devin/nodes/iterate/scenarios/observer_evidence_seam.py +28 -0
  373. devin/nodes/iterate/scenarios/observer_evidence_seam_evals.py +55 -0
  374. devin/nodes/iterate/scenarios/observer_repro_creation.py +28 -0
  375. devin/nodes/iterate/scenarios/observer_repro_creation_evals.py +45 -0
  376. devin/nodes/iterate/scenarios/routing-matrix.md +45 -0
  377. devin/nodes/shared/__init__.py +0 -0
  378. devin/nodes/shared/filemaker_expert.md +80 -0
  379. devin/nodes/shared/filemaker_expert.py +354 -0
  380. devin/nodes/shared/filemaker_expert_eval/runner.py +176 -0
  381. devin/nodes/shared/filemaker_expert_eval/scenarios.json +65 -0
  382. devin/nodes/shared/goldilocks_advisor_eval/runner.py +214 -0
  383. devin/nodes/shared/goldilocks_advisor_eval/scenarios.json +58 -0
  384. devin/nodes/shared/helpers.py +156 -0
  385. devin/nodes/shared/idea_compliance_advisor_eval/runner.py +252 -0
  386. devin/nodes/shared/idea_compliance_advisor_eval/scenarios.json +75 -0
  387. devin/nodes/shared/models.py +44 -0
  388. devin/nodes/shared/post.py +40 -0
  389. devin/nodes/shared/router.py +107 -0
  390. devin/nodes/shared/tools.py +191 -0
  391. devin/shared/devin-chat-rubric.md +237 -0
  392. devin/shared/devin-chat-scenario-suite.md +90 -0
  393. devin/shared/eval_doctrine.md +9 -0
@@ -0,0 +1,67 @@
1
+ # Validate Node Contract
2
+
3
+ Enrich and repair integration workflows to ensure they have complete story backing, code backing, and interaction point coverage before the deterministic gate.
4
+
5
+ ## What this file is
6
+
7
+ Stable node doctrine loaded by:
8
+
9
+ - `load_integration_node_instruction("validate")`
10
+ - `ValidateEnrichGateNode.get_agent_config()`
11
+
12
+ ## What actually reaches the model
13
+
14
+ The current integration runtime uses two validate-node prompt shapes:
15
+
16
+ 1. enrich/validate pass (`integration_validate_enrich_gate`)
17
+ 2. code repair pass (`integration_code_repair_iter<N>`)
18
+
19
+ Those model-facing payloads are assembled from stage bullets + runtime context + output schema.
20
+
21
+ ## Real injected runtime components
22
+
23
+ ### Validate enrich pass
24
+
25
+ `context_payload` fields:
26
+
27
+ - `idea_id` ← `event.idea_id`
28
+ - `side_effects_artifact` ← `task_context.metadata["side_effects_artifact"]`
29
+ - `implicated_users_artifact` ← `task_context.metadata["implicated_users_artifact"]`
30
+ - `workflows` ← `task_context.metadata["workflows"]`
31
+ - `implemented_stories` ← `event.implemented_stories`
32
+ - `code_evidence` ← `event.code_evidence`
33
+ - `source_docs` ← `event.source_docs`
34
+
35
+ `instructions` source:
36
+
37
+ - bullets parsed from `prompts/integration/validate/validate_enrich_gate/prompt.md`
38
+
39
+ `output_schema` source:
40
+
41
+ - `ValidateEnrichArtifact.model_json_schema()`
42
+
43
+ ### Validate code repair pass
44
+
45
+ `context_payload` fields:
46
+
47
+ - `failing_workflows` ← derived from validation failures against `enriched_workflows`
48
+ - `validation_errors` ← `report["errors"]`
49
+ - `code_evidence_files` ← `_load_code_evidence_for_workflows(...)`
50
+ - `side_effects_artifact` ← `task_context.metadata["side_effects_artifact"]`
51
+ - `implicated_users_artifact` ← `task_context.metadata["implicated_users_artifact"]`
52
+ - `implemented_stories` ← `event.implemented_stories`
53
+
54
+ `instructions` source:
55
+
56
+ - bullets parsed from `prompts/integration/validate/code_repair/prompt.md`
57
+ - plus runtime-appended line: `This is repair iteration <N>. Be precise and targeted.`
58
+
59
+ `output_schema` source:
60
+
61
+ - `CodeRepairArtifact.model_json_schema()`
62
+
63
+ ## Tools / skills / config
64
+
65
+ - No integration-specific skills are injected.
66
+ - No tool definitions are injected.
67
+ - File content reaches repair through `code_evidence_files`, not through an interactive tool surface.
@@ -0,0 +1,17 @@
1
+ # Validate Enrich Gate
2
+
3
+ Enrich and repair integration workflows to ensure they have complete story backing, code backing, and interaction point coverage before the deterministic gate.
4
+
5
+ - This is a real GenAI DAG. Return JSON only.
6
+ - Node 1 and Node 2 must be genuinely model-backed; do not simulate agentic behavior with deterministic shortcuts.
7
+ - Workflows are anchored to side effects, not users.
8
+ - Attach implicated users to workflows using the canonical actor model: kind x scope x authority.
9
+ - Reject denied canonical actor combinations by listing them under denied_candidates with explicit reasons.
10
+ - Treat interaction points as first-class. Reference implemented seams when they exist; mark needed interaction points when required but missing.
11
+ - Preserve alignment to implemented stories, implementation evidence, and source docs.
12
+ - Do not overclaim unsupported implementation. Keep rationale explicit.
13
+ - Review every workflow using the real model-backed runtime path and return enriched_workflows plus findings.
14
+ - You may enrich rationale, story/code/source-doc backing, process sequencing clarity, branches, resulting artifacts, and interaction-point descriptions when the evidence supports it.
15
+ - Do not invent unsupported seams, actor coverage, or implementation facts.
16
+ - Keep blocking findings explicit when a workflow is under-supported, inconsistent, or overclaims coverage.
17
+ - Preserve workflow identity and side-effect anchoring; return exactly one enriched workflow per input workflow.
@@ -0,0 +1,16 @@
1
+ # Validate Repair
2
+
3
+ Enrich and repair integration workflows to ensure they have complete story backing, code backing, and interaction point coverage before the deterministic gate.
4
+
5
+ - This is a real GenAI DAG. Return JSON only.
6
+ - Node 1 and Node 2 must be genuinely model-backed; do not simulate agentic behavior with deterministic shortcuts.
7
+ - Workflows are anchored to side effects, not users.
8
+ - Attach implicated users to workflows using the canonical actor model: kind x scope x authority.
9
+ - Reject denied canonical actor combinations by listing them under denied_candidates with explicit reasons.
10
+ - Treat interaction points as first-class. Reference implemented seams when they exist; mark needed interaction points when required but missing.
11
+ - Preserve alignment to implemented stories, implementation evidence, and source docs.
12
+ - Do not overclaim unsupported implementation. Keep rationale explicit.
13
+ - You are performing a repair pass on the enriched_workflows.
14
+ - Resolve every repair source listed in repair_sources, including deterministic validation errors and blocking agentic findings.
15
+ - Use deterministic_errors for structural/deterministic validation failures and blocking_findings for agentic blocking findings.
16
+ - Return enriched_workflows with the same workflow_ids; do not add or remove workflows.
@@ -0,0 +1,10 @@
1
+ # Validate Code Repair
2
+
3
+ Repair the code so the listed failing workflows can pass validation.
4
+
5
+ - Use validation_errors and the provided code evidence to identify the minimal real code changes.
6
+ - For MISSING_INTERACTION_POINTS, create or declare the real seam and update interaction_points in the repaired workflow.
7
+ - For STORY_ALIGNMENT_MISMATCH, patch the code and workflow description to match supported story intent.
8
+ - For MISSING_CODE_BACKING, implement the missing seam with real code, not stubs.
9
+ - Return only changed files with full contents, updated_workflows for repaired workflows, and unresolvable_failures for anything code cannot fix.
10
+ - Return JSON only.
@@ -0,0 +1,67 @@
1
+ # Validate Node Contract
2
+
3
+ Enrich and repair workflows so they are evidence-backed and structurally ready for deterministic validation.
4
+
5
+ ## What this file is
6
+
7
+ Stable node doctrine loaded by:
8
+
9
+ - `load_integration_node_instruction("validate")`
10
+ - `ValidateEnrichGateNode.get_agent_config()`
11
+
12
+ ## What actually reaches the model
13
+
14
+ The current integration runtime uses two validate-node prompt shapes:
15
+
16
+ 1. enrich/validate pass (`integration_validate_enrich_gate`)
17
+ 2. code repair pass (`integration_code_repair_iter<N>`)
18
+
19
+ Those model-facing payloads are assembled from stage bullets + runtime context + output schema.
20
+
21
+ ## Real injected runtime components
22
+
23
+ ### Validate enrich pass
24
+
25
+ `context_payload` fields:
26
+
27
+ - `idea_id` ← `event.idea_id`
28
+ - `side_effects_artifact` ← `task_context.metadata["side_effects_artifact"]`
29
+ - `implicated_users_artifact` ← `task_context.metadata["implicated_users_artifact"]`
30
+ - `workflows` ← `task_context.metadata["workflows"]`
31
+ - `implemented_stories` ← `event.implemented_stories`
32
+ - `code_evidence` ← `event.code_evidence`
33
+ - `source_docs` ← `event.source_docs`
34
+
35
+ `instructions` source:
36
+
37
+ - bullets parsed from `prompts/integration/validate/validate_enrich_gate/prompt.md`
38
+
39
+ `output_schema` source:
40
+
41
+ - `ValidateEnrichArtifact.model_json_schema()`
42
+
43
+ ### Validate code repair pass
44
+
45
+ `context_payload` fields:
46
+
47
+ - `failing_workflows` ← derived from validation failures against `enriched_workflows`
48
+ - `validation_errors` ← `report["errors"]`
49
+ - `code_evidence_files` ← `_load_code_evidence_for_workflows(...)`
50
+ - `side_effects_artifact` ← `task_context.metadata["side_effects_artifact"]`
51
+ - `implicated_users_artifact` ← `task_context.metadata["implicated_users_artifact"]`
52
+ - `implemented_stories` ← `event.implemented_stories`
53
+
54
+ `instructions` source:
55
+
56
+ - bullets parsed from `prompts/integration/validate/code_repair/prompt.md`
57
+ - plus runtime-appended line: `This is repair iteration <N>. Be precise and targeted.`
58
+
59
+ `output_schema` source:
60
+
61
+ - `CodeRepairArtifact.model_json_schema()`
62
+
63
+ ## Tools / skills / config
64
+
65
+ - No integration-specific skills are injected.
66
+ - No tool definitions are injected.
67
+ - File content reaches repair through `code_evidence_files`, not through an interactive tool surface.
@@ -0,0 +1,9 @@
1
+ # Validate Repair
2
+
3
+ Repair enriched workflows so they are structurally ready for deterministic validation.
4
+
5
+ - Resolve every repair source listed in repair_sources.
6
+ - Use deterministic_errors for structural failures and blocking_findings for agentic blocking findings.
7
+ - Return enriched_workflows with the same workflow_ids.
8
+ - Repair unsupported claims, missing backing, and missing interaction points without inventing evidence.
9
+ - Return JSON only.
@@ -0,0 +1,10 @@
1
+ # Validate Enrich Gate
2
+
3
+ Enrich workflows so they are evidence-backed and ready for deterministic validation.
4
+
5
+ - Review every workflow and return exactly one enriched_workflow per input workflow.
6
+ - Preserve workflow identity and side-effect anchoring.
7
+ - Improve rationale, backing, sequencing, branches, resulting artifacts, and interaction-point descriptions only where the evidence supports it.
8
+ - Make unsupported, inconsistent, or under-supported areas explicit in findings.
9
+ - Do not invent seams, actors, or implementation facts.
10
+ - Return JSON only.
@@ -0,0 +1,20 @@
1
+ # Validate Repair
2
+
3
+ Repair only the failing workflow and idea-acceptance coverage surfaces so deterministic validation can continue.
4
+
5
+ - Resolve every item in repair_sources with the smallest workflow + coverage delta that fixes the current failure.
6
+ - Stay on the primary failing seam for each workflow and failing idea acceptance criterion; work only on remaining failing criteria/workflows and leave clean or already-proven sections untouched.
7
+ - Treat protected_sections as immutable context and obey every item in do_not_touch.
8
+ - When idea-acceptance failures are present, repair only the workflows/coverage entries needed to cover the failing criteria or restore the missing seam.
9
+ - Do not re-summarize the full artifact on repair passes; update only the scoped enriched_workflows and scoped idea_acceptance_coverage entries you were given.
10
+ - Do not revisit already-stable criteria unless you can cite a contradiction in the current artifact, and if you do, cite that contradiction explicitly in repair_delta_ledger.contradiction_citations.
11
+ - Preserve workflow_ids, side-effect anchoring, criterion_index, criterion text, and any supported evidence.
12
+ - Make missing code, runtime, or orchestration causes explicit instead of smuggling them into workflow or coverage edits.
13
+ - Do not invent evidence, broaden workflow scope, or rewrite adjacent workflows/criteria.
14
+ - Return enriched_workflows with the same workflow_ids and an updated idea_acceptance_coverage artifact.
15
+ - Return repair_delta_ledger with all of:
16
+ - verdict_changes: every criterion/workflow verdict change made in this pass.
17
+ - evidence_changes: every new, removed, or corrected evidence reference used in this pass.
18
+ - newly_resolved_seams: each seam newly resolved in this pass.
19
+ - contradiction_citations: only contradictions in the current artifact that justify revisiting a stable criterion.
20
+ - Return JSON only.
@@ -0,0 +1,100 @@
1
+ # Write Workflows node assembled payload
2
+
3
+ ## Provenance
4
+
5
+ Reconstructed from:
6
+
7
+ - `prompts/integration/write_workflows/write_workflows/prompt.md`
8
+ - `src/devflow_engine/integration/dag.py` write-workflows `context_payload`
9
+ - `src/devflow_engine/agentic_runtime.py` prompt envelope builder
10
+ - `WorkflowSetArtifact` in `src/devflow_engine/integration/dag.py`
11
+
12
+ Not copied from a persisted past-run prompt artifact.
13
+
14
+ ## Stable doctrine vs actual payload
15
+
16
+ - Stable node doctrine file: `prompts/integration/write_workflows/node_config/prompt.md`
17
+ - Actual `instructions` come from `write_workflows/write_workflows/prompt.md`
18
+ - Actual `context` comes from `task_context.metadata` + `event.*` in `integration/dag.py`
19
+ - No skills or tools are injected here
20
+
21
+ ```json
22
+ {
23
+ "task": "integration_write_workflows",
24
+ "instructions": [
25
+ "Write exactly one workflow per side effect.",
26
+ "Keep each workflow anchored to its side effect and attach the implicated users to that workflow.",
27
+ "Use only supported story_backing, code_backing, and source_doc_backing.",
28
+ "Include concrete interaction_points when implemented; otherwise use needed_interaction_points.",
29
+ "Capture process_sequence, branches when real, and resulting_artifacts; include mermaid only when it adds clarity.",
30
+ "Do not invent seams, unsupported implementation facts, or anchor_user.",
31
+ "Return JSON only."
32
+ ],
33
+ "context": {
34
+ "idea_id": "idea_checkout_recovery_v1",
35
+ "side_effects_artifact": {
36
+ "idea_id": "idea_checkout_recovery_v1",
37
+ "side_effects": [
38
+ {
39
+ "id": "se_recovery_email_sent",
40
+ "name": "Recovery email sent",
41
+ "rationale": "The implementation sends a recovery reminder after abandonment criteria are met.",
42
+ "interaction_points": [
43
+ {
44
+ "kind": "endpoint",
45
+ "name": "POST /api/carts/{cart_id}/recover",
46
+ "implemented": true
47
+ }
48
+ ],
49
+ "needed_interaction_points": [],
50
+ "process_sequence": [
51
+ "customer abandons cart",
52
+ "recovery endpoint or job is triggered",
53
+ "email delivery job is enqueued"
54
+ ],
55
+ "resulting_artifacts": ["queued recovery email job"]
56
+ }
57
+ ],
58
+ "alignment_context": {
59
+ "implemented_story_count": 2,
60
+ "code_evidence_count": 2,
61
+ "source_doc_count": 1
62
+ }
63
+ },
64
+ "implicated_users_artifact": {
65
+ "idea_id": "idea_checkout_recovery_v1",
66
+ "implicated_users": [
67
+ {
68
+ "kind": "human",
69
+ "scope": "customer_account",
70
+ "authority": "self",
71
+ "rationale": "The customer receives a reminder about their own abandoned cart."
72
+ }
73
+ ],
74
+ "denied_candidates": []
75
+ },
76
+ "implemented_stories": [
77
+ {
78
+ "story_id": "STORY-recovery-email-send",
79
+ "title": "Send recovery reminder email",
80
+ "side_effect_ids": ["se_recovery_email_sent"],
81
+ "required_planes": []
82
+ }
83
+ ],
84
+ "code_evidence": [
85
+ {
86
+ "path": "src/jobs/recovery_email_job.py",
87
+ "side_effect_ids": [],
88
+ "interaction_points": []
89
+ }
90
+ ],
91
+ "source_docs": [
92
+ {
93
+ "path": "ai_docs/context/v2/project_docs/user_workflows.md"
94
+ }
95
+ ]
96
+ },
97
+ "output_schema": "WorkflowSetArtifact.model_json_schema() from src/devflow_engine/integration/dag.py",
98
+ "return_format": "json_only"
99
+ }
100
+ ```
@@ -0,0 +1,44 @@
1
+ # Write Workflows Node Contract
2
+
3
+ Write one workflow per implemented side effect from the provided evidence.
4
+
5
+ ## What this file is
6
+
7
+ Stable node doctrine loaded by:
8
+
9
+ - `load_integration_node_instruction("write_workflows")`
10
+ - `WriteWorkflowPerSideEffectNode.get_agent_config()`
11
+
12
+ ## What actually reaches the model
13
+
14
+ The assembled prompt for this node is built from:
15
+
16
+ - stage bullets in `prompts/integration/write_workflows/write_workflows/prompt.md`
17
+ - runtime `context_payload` from `src/devflow_engine/integration/dag.py`
18
+ - `WorkflowSetArtifact.model_json_schema()`
19
+ - `return_format: "json_only"`
20
+
21
+ ## Real injected runtime components
22
+
23
+ `context_payload` fields:
24
+
25
+ - `idea_id` ← `event.idea_id`
26
+ - `side_effects_artifact` ← `task_context.metadata["side_effects_artifact"]`
27
+ - `implicated_users_artifact` ← `task_context.metadata["implicated_users_artifact"]`
28
+ - `implemented_stories` ← `event.implemented_stories`
29
+ - `code_evidence` ← `event.code_evidence`
30
+ - `source_docs` ← `event.source_docs`
31
+
32
+ `instructions` source:
33
+
34
+ - bullets parsed from `prompts/integration/write_workflows/write_workflows/prompt.md`
35
+
36
+ `output_schema` source:
37
+
38
+ - `WorkflowSetArtifact.model_json_schema()`
39
+
40
+ ## Tools / skills / config
41
+
42
+ - No integration-specific skills are injected.
43
+ - No tool definitions are injected.
44
+ - Provider/model/runtime transport is resolved later by `src/devflow_engine/llm/invoke.py`.
@@ -0,0 +1,44 @@
1
+ # Write Workflows Node Contract
2
+
3
+ Write one workflow artifact per side effect from implementation evidence.
4
+
5
+ ## What this file is
6
+
7
+ Stable node doctrine loaded by:
8
+
9
+ - `load_integration_node_instruction("write_workflows")`
10
+ - `WriteWorkflowPerSideEffectNode.get_agent_config()`
11
+
12
+ ## What actually reaches the model
13
+
14
+ The assembled prompt for this node is built from:
15
+
16
+ - stage bullets in `prompts/integration/write_workflows/write_workflows/prompt.md`
17
+ - runtime `context_payload` from `src/devflow_engine/integration/dag.py`
18
+ - `WorkflowSetArtifact.model_json_schema()`
19
+ - `return_format: "json_only"`
20
+
21
+ ## Real injected runtime components
22
+
23
+ `context_payload` fields:
24
+
25
+ - `idea_id` ← `event.idea_id`
26
+ - `side_effects_artifact` ← `task_context.metadata["side_effects_artifact"]`
27
+ - `implicated_users_artifact` ← `task_context.metadata["implicated_users_artifact"]`
28
+ - `implemented_stories` ← `event.implemented_stories`
29
+ - `code_evidence` ← `event.code_evidence`
30
+ - `source_docs` ← `event.source_docs`
31
+
32
+ `instructions` source:
33
+
34
+ - bullets parsed from `prompts/integration/write_workflows/write_workflows/prompt.md`
35
+
36
+ `output_schema` source:
37
+
38
+ - `WorkflowSetArtifact.model_json_schema()`
39
+
40
+ ## Tools / skills / config
41
+
42
+ - No integration-specific skills are injected.
43
+ - No tool definitions are injected.
44
+ - Provider/model/runtime transport is resolved later by `src/devflow_engine/llm/invoke.py`.
@@ -0,0 +1,17 @@
1
+ # Write Workflows
2
+
3
+ Write one workflow artifact per side effect from implementation evidence.
4
+
5
+ - This is a real GenAI DAG. Return JSON only.
6
+ - Node 1 and Node 2 must be genuinely model-backed; do not simulate agentic behavior with deterministic shortcuts.
7
+ - Workflows are anchored to side effects, not users.
8
+ - Attach implicated users to workflows using the canonical actor model: kind x scope x authority.
9
+ - Reject denied canonical actor combinations by listing them under denied_candidates with explicit reasons.
10
+ - Treat interaction points as first-class. Reference implemented seams when they exist; mark needed interaction points when required but missing.
11
+ - Preserve alignment to implemented stories, implementation evidence, and source docs.
12
+ - Do not overclaim unsupported implementation. Keep rationale explicit.
13
+ - Write exactly one workflow per side effect.
14
+ - Each workflow must stay anchored to the side effect and attach implicated users to that workflow.
15
+ - Interaction points must be concrete when implemented; if required but missing, list them under needed_interaction_points instead of pretending they exist.
16
+ - Include story_backing, code_backing, process_sequence, branches when relevant, resulting_artifacts, and optional mermaid when useful.
17
+ - Do not anchor workflows to a user. Do not emit anchor_user.
@@ -0,0 +1,11 @@
1
+ # Write Workflows
2
+
3
+ Write one workflow per implemented side effect from the provided evidence.
4
+
5
+ - Write exactly one workflow per side effect.
6
+ - Keep each workflow anchored to its side effect and attach the implicated users to that workflow.
7
+ - Use only supported story_backing, code_backing, and source_doc_backing.
8
+ - Include concrete interaction_points when implemented; otherwise use needed_interaction_points.
9
+ - Capture process_sequence, branches when real, and resulting_artifacts; include mermaid only when it adds clarity.
10
+ - Do not invent seams, unsupported implementation facts, or anchor_user.
11
+ - Return JSON only.
@@ -0,0 +1,7 @@
1
+ # Iterate prompt layer
2
+
3
+ These files are the minimal prompt contracts for the Iterate lane.
4
+
5
+ They should stay focused on model-visible role instructions only.
6
+
7
+ Keep runtime wiring, tool configuration, orchestration mechanics, and operational policy outside this directory unless a model must reason over them directly.
@@ -0,0 +1,11 @@
1
+ # Coder
2
+
3
+ Implement only the scoped delta described by the provided task and observation artifacts, then report the attempt honestly.
4
+
5
+ - Treat the task artifact and observation artifact as the governing contract.
6
+ - Make the smallest change that can satisfy the stated green condition.
7
+ - Stay inside scope unless Iterator explicitly changes it.
8
+ - Run the narrowest valid verification seam.
9
+ - Report what changed, what passed, what failed, and what remains blocked.
10
+ - Do not broaden scope for opportunistic cleanup.
11
+ - Do not self-certify final completion.
@@ -0,0 +1,11 @@
1
+ # Framer
2
+
3
+ Turn the provided request and local context into a bounded task artifact for a targeted change.
4
+
5
+ - Classify the task as error_fix, quick_change, or targeted_improvement.
6
+ - Distinguish current behavior from desired behavior.
7
+ - Write observable success criteria.
8
+ - Separate facts, assumptions, blocking unknowns, and nonblocking unknowns.
9
+ - Recommend stay_iterate, investigate_first, or promote_to_idea.
10
+ - Do not perform observation work.
11
+ - Do not broaden the task to make it sound more important.
@@ -0,0 +1,13 @@
1
+ # Iterator
2
+
3
+ Own the iterate task end to end using only the provided request, artifacts, and evidence, then return one truthful lane outcome.
4
+
5
+ - Synthesize framing, observation, and attempt evidence without collapsing their roles.
6
+ - Decide readiness before coding starts.
7
+ - Keep scope aligned to the task contract.
8
+ - When Observer shows the task is really diagnosis or investigation, call `devin_insight` as a tool to get an insight-level read before choosing the final lane outcome.
9
+ - When the task expands beyond iterate-scale repair into broader feature or workflow shaping, call `call_devin_ideation` to promote into the ideation arm with iterate linkage intact.
10
+ - Respawn only with repair-specific guidance when the task is still viable.
11
+ - Block, reroute, or promote when truth or scope is insufficient.
12
+ - Do not rewrite advisor conclusions casually.
13
+ - Do not claim success without verification against the stated green condition.
@@ -0,0 +1,11 @@
1
+ # Observer
2
+
3
+ Turn the provided task artifact and local evidence into an observation artifact that states what is confirmed, what is not, and what green condition should govern verification.
4
+
5
+ - Use only evidence that is explicitly available from logs, traces, repro steps, or inspected state.
6
+ - Say confirmed, not_confirmed, or inconclusive plainly.
7
+ - Define a bounded failing seam when direct repro is not the right frame.
8
+ - State the expected green condition concretely.
9
+ - Recommend whether the task is ready for coding.
10
+ - Do not implement fixes.
11
+ - Do not invent evidence or imply completion.
@@ -0,0 +1,7 @@
1
+ # Recovery Diagnosis
2
+
3
+ - Return JSON only.
4
+ - Diagnose the next bounded recovery move directly from the failure evidence and investigation.
5
+ - Do not use or invent failure classes, fix families, candidate strategy registries, or class-backed routing.
6
+ - Define verification_targets with explicit oracle fields.
7
+ - Keep the diagnosis operational and specific to the concrete failed boundary.
@@ -0,0 +1,8 @@
1
+ # Recovery Execution
2
+
3
+ - Return JSON only.
4
+ - Define concise success criteria for this recovery attempt.
5
+ - Choose one outcome: reenqueue, delegated, or blocked.
6
+ - Ground the execution attempt in the diagnosis success criteria and their oracles.
7
+ - Do not use or invent failure classes, fix families, candidate strategy registries, or class-backed routing.
8
+ - Perform recovery conceptually and then verify whether those success criteria were satisfied.
@@ -0,0 +1,7 @@
1
+ # Recovery Execution Verification
2
+
3
+ - Return JSON only.
4
+ - Validate whether the execution outcome satisfied the diagnosis success criteria and their oracles.
5
+ - Set ready=true only if the recovery outcome is trustworthy enough to conclude recovery for this attempt.
6
+ - Use blocking_reasons for hard contradictions, explicit human-required decisions, or exhausted bounded recovery.
7
+ - Do not treat provenance or byte-identity uncertainty by itself as a viability contradiction when the repaired state is otherwise runnable.
@@ -0,0 +1,10 @@
1
+ # Recovery Failure Investigation
2
+
3
+ - Return JSON only.
4
+ - Investigate the failed queue item as a process recovery problem.
5
+ - When streamed agent logs, llm logs, or session logs are present in log_evidence, treat them as the primary evidence source before secondary artifacts or summaries.
6
+ - Record the primary evidence source, its refs, and the key insight derived from those logs in the investigation output.
7
+ - Identify the nature of the process failure and the affected boundary.
8
+ - Define the recovery goal, success criteria, verification evidence, and escalation conditions.
9
+ - Each success criterion must include an oracle describing what observable condition would prove it was met.
10
+ - Keep the summary concise and specific.
@@ -0,0 +1,8 @@
1
+ # Recovery Preflight Health Repo Repair
2
+
3
+ - Return JSON only.
4
+ - Repair the repository code or config that caused the preflight health check failure.
5
+ - Use file_patches with complete file contents for each repo file that must change.
6
+ - Do not claim ready_to_requeue unless the repo/config repair is actually sufficient for a fresh health verification.
7
+ - Do not emit fallback behavior that merely masks the failure.
8
+ - Keep the fix bounded to the health-check boundary evidence in the provided report, setup contract, and logs.
@@ -0,0 +1,11 @@
1
+ # Recovery Remediation Execution
2
+
3
+ - Return JSON only.
4
+ - You are the remediation executor. Apply the fix described in root_cause.specific_fix_plan.
5
+ - For each file that needs changing, emit a FilePatch with path (repo-relative, e.g. 'src/devflow_engine/agentic_runtime.py') and content (COMPLETE new file contents — not a diff, the whole file).
6
+ - Set fix_applied=true in your response (the orchestrator will write the files to disk).
7
+ - Set ready_to_requeue=true if all systemic items can be safely re-enqueued after this fix.
8
+ - items_to_requeue should list all affected_items that should be re-enqueued.
9
+ - items_to_dead_letter should list any that should NOT be re-enqueued.
10
+ - verification_notes should describe how to verify the fix worked.
11
+ - Do NOT narrow scope. The fix must address the root cause for ALL affected items.
@@ -0,0 +1,12 @@
1
+ # Recovery Root Cause Investigation
2
+
3
+ - Return JSON only.
4
+ - You are the root cause investigator for a systemic failure that killed multiple DevFlow queue items.
5
+ - Read the key_source_files carefully to understand WHY failures occurred.
6
+ - For 'Prompt is too long' failures: the likely root cause is that .claude/agents/*.md project context (~100KB+) is auto-loaded by claude CLI when invoked from the project directory, and the DAG prompts are already 50-120KB. The combined total exceeds Claude CLI limits. The artifact-reference fallback in agentic_runtime.py also fails because the CLI project context alone exceeds limits.
7
+ - Identify the root_cause_location (filename:function or filename:line), root_cause_description, and specific_fix_plan.
8
+ - fix_type must be one of: code_fix, config_fix, environment_fix, dead_letter, item_local_only.
9
+ - confidence must be one of: high, medium, low.
10
+ - List all files you read in files_inspected.
11
+ - Set affects_all_items=true if the fix will unblock ALL systemic items once applied.
12
+ - List any items in residual_items_needing_attention that still require individual attention after the systemic fix.
@@ -0,0 +1,7 @@
1
+ # Scope Idea Doctrine
2
+
3
+ - Approved scope is the anchor; enrich or split from it without silently replacing intent.
4
+ - Return JSON only. No markdown. No prose outside JSON.
5
+ - Canonical idea sufficiency remains downstream; do not pretend scope->idea output is story-ready.
6
+ - Prefer evidence-backed interpretation over deterministic hints when the approved scope supports it.
7
+ - Keep all assumptions explicit and preserve traceability to the approved scope and source evidence.
@@ -0,0 +1,6 @@
1
+ # Source Doc Eval Document
2
+
3
+ - Score this single document only.
4
+ - Quality is the chance this document alone would let a team deliver a functional, useful project from the information in it.
5
+ - Completeness is how well the document answers reasonable questions for its topic.
6
+ - Return quality and completeness as numbers between 0 and 1.
@@ -0,0 +1,9 @@
1
+ # Source Doc Eval Targeted Mutation
2
+
3
+ - Assess the after-document against the targeted mutation request.
4
+ - Quality is the chance this document alone would let a team deliver a functional, useful project from the information in it.
5
+ - Completeness is how well the document answers reasonable questions for its topic.
6
+ - appropriate_update measures whether the changed areas were updated correctly for the targeted mutation.
7
+ - thoroughness measures whether all areas that should have been updated were actually updated.
8
+ - accuracy must equal the average of appropriate_update and thoroughness.
9
+ - Return all scores as numbers between 0 and 1.
@@ -0,0 +1,6 @@
1
+ # Source Doc Mutation Domain Entities
2
+
3
+ - Own only domain_entities.json.
4
+ - Return entities, relationships, and ownership assumptions.
5
+ - In sparse scenarios, infer the smallest viable business-object model needed to support the workflows and product framing, including relationship shape and data-authority assumptions when helpful.
6
+ - Keep entity output compact and canonical; do not turn it into a full architecture document.
@@ -0,0 +1,6 @@
1
+ # Source Doc Mutation Product Brief
2
+
3
+ - Own only product_brief.json.
4
+ - Return a canonically sufficient but compact payload: summary, problem, users, goals, scope, non-goals, constraints, success criteria, and explicit product assumptions.
5
+ - When intake is sparse, infer only the minimum useful planning depth and mark every meaningful gap-filling move as an assumption rather than pretending certainty.
6
+ - Do not bloat the source doc into a pseudo-project-doc or pseudo-PRD.
@@ -0,0 +1,7 @@
1
+ # Source Doc Mutation Project Doc Coherence
2
+
3
+ - Review the five project-doc outputs as one doc family, not isolated markdown files.
4
+ - Use the supplied project-doc richness contract, agent contract, source-to-project-doc reference map, and cross-reference rules as explicit grounding/support contracts.
5
+ - Check coverage/depth/traceability/consistency and cross-doc alignment against the canonical source docs.
6
+ - Call out mismatches, unsupported elaboration, and still-thin areas explicitly rather than pretending the suite is richer than it is.
7
+ - Return concise coherence notes only.