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,155 @@
1
+ ---
2
+ name: devflow-queue-runtime-core
3
+ description: Canonical DevFlow operations skill for shared queue/runtime doctrine across worker control, queue observation, and truthful status claims.
4
+ owner: devflow
5
+ scope: built-in
6
+ version: 1
7
+ ---
8
+
9
+ # DevFlow queue/runtime core
10
+
11
+ Use this skill when the task is about **operating, observing, or truthfully describing** DevFlow runtime state.
12
+
13
+ Applies across:
14
+ - queue kick / drain
15
+ - worker status
16
+ - queue failure triage
17
+ - recovery follow-through
18
+ - integration/runtime investigation
19
+
20
+ This skill is harness-agnostic by default.
21
+ CLI and SQLite examples below are the current repo surfaces, not the only valid harness.
22
+
23
+ ## Core doctrine
24
+
25
+ Preserve these facts strictly:
26
+ - `queued` is not `started`
27
+ - `claimed` is not `finished`
28
+ - worker state is not proof of queue completion
29
+ - run creation is not proof of downstream success
30
+ - artifact existence is not proof the terminal queue row reconciled correctly
31
+ - conversational optimism is not runtime truth
32
+
33
+ Always prefer **deterministic observation before progress claims**.
34
+
35
+ ## Runtime sources of truth
36
+
37
+ Check these in this order:
38
+
39
+ 1. **Active worker state**
40
+ - `devflow worker report --project <project_id>`
41
+ - `project_workers` row in `.devflow/execution.sqlite`
42
+ 2. **Queue row for the lane being discussed**
43
+ - `idea_queue`
44
+ - `story_queue`
45
+ - `integration_queue`
46
+ - `recovery_queue`
47
+ 3. **Run records**
48
+ - `runs`
49
+ - `nodes`
50
+ - `artifacts`
51
+ - `errors`
52
+ 4. **Flow-local durable artifacts**
53
+ - idea/story/integration/recovery files under `.devflow/...`
54
+ 5. **Rich logs / transcripts** when investigating failure or churn
55
+ - `/Users/devflow/.devflow/llm_logs/*.jsonl`
56
+ - `/Users/devflow/.devflow/llm_sessions.sqlite`
57
+
58
+ Do not invert that order and then speak as though state were verified.
59
+
60
+ ## Standard operator loop
61
+
62
+ 1. Identify the flow and concrete item id if possible.
63
+ 2. Read worker state.
64
+ 3. Read the relevant queue row.
65
+ 4. Correlate the queue row to the run id(s).
66
+ 5. Inspect artifacts/logs appropriate to the flow.
67
+ 6. Only then classify the state as:
68
+ - queued
69
+ - running
70
+ - completed
71
+ - failed
72
+ - blocked
73
+ - stale / needs reconciliation
74
+
75
+ ## Standard commands
76
+
77
+ Common control surface:
78
+ - `devflow worker report --project <project_id>`
79
+ - `devflow worker start --project <project_id> --once`
80
+ - `devflow worker start --project <project_id>`
81
+ - `devflow worker stop --project <project_id>`
82
+ - `devflow worker recover --project <project_id>`
83
+ - `devflow worker supabase-events --once`
84
+ - `devflow worker supabase-events --no-realtime`
85
+
86
+ Core DB location:
87
+ - `<repo_root>/.devflow/execution.sqlite`
88
+
89
+ ## Observation rules
90
+
91
+ ### Worker report rule
92
+
93
+ `worker report` tells you:
94
+ - whether a project worker is active
95
+ - which queue type/item it thinks it owns
96
+ - which run id is active
97
+
98
+ It does **not** by itself prove that the queue row moved to a terminal state.
99
+
100
+ ### Queue row rule
101
+
102
+ The queue table is the durable answer to whether the item is:
103
+ - still pending
104
+ - in progress
105
+ - completed
106
+ - failed
107
+ - blocked
108
+
109
+ ### Run correlation rule
110
+
111
+ A queue row may point to a wrapper/orchestration run whose child DAG run does the real work.
112
+ Do not assume there is only one relevant run id.
113
+
114
+ ## Stale-state rule
115
+
116
+ Use `devflow worker recover --project <project_id>` when the worker process died or left stale ownership state.
117
+ That command is for **worker-state reconciliation**, not for forcing business success.
118
+
119
+ ## Kill-switch rule
120
+
121
+ Before trying to start a worker, remember the worker may be intentionally blocked by:
122
+ - `DEVFLOW_DO_NOT_RUN_WORKER=true`
123
+ - `~/.devflow/do-not-run-worker`
124
+ - `~/.devflow/config.toml` with worker disablement
125
+ - `<repo>/.devflow/do-not-run-worker`
126
+ - `<repo>/.devflow/config.toml` with worker disablement
127
+
128
+ Do not misdiagnose a guardrail as spontaneous failure.
129
+
130
+ ## What counts as success
131
+
132
+ A queue/runtime operation is successful only when the durable system state matches the claim being made.
133
+ Examples:
134
+ - "queued" -> queue row is queued
135
+ - "running" -> worker/run actually claimed and started the item
136
+ - "completed" -> queue row is terminal-complete and required outputs exist
137
+ - "recovered" -> recovery row completed and the source lane is reconciled/re-enqueued as intended
138
+
139
+ ## What counts as blockage
140
+
141
+ Treat these as blocked states:
142
+ - queue row explicitly `blocked`
143
+ - repeated no-material-change churn
144
+ - stale worker ownership preventing pickup
145
+ - recovery row active but not converging
146
+ - required artifacts missing after a claimed success
147
+ - logs show the agent kept operating on the wrong seam
148
+
149
+ ## Strong future tool candidates
150
+
151
+ - `devflow_read_worker_state`
152
+ - `devflow_read_queue_item_state`
153
+ - `devflow_read_run_correlation`
154
+ - `devflow_read_latest_failure_evidence`
155
+ - `devflow_detect_stale_worker_state`
@@ -0,0 +1,122 @@
1
+ ---
2
+ name: devflow-queue-story-implementation
3
+ description: Operational DevFlow skill for story_queue execution, implementation status, and implementation failure investigation.
4
+ owner: devflow
5
+ scope: built-in
6
+ version: 1
7
+ ---
8
+
9
+ # DevFlow queue: story implementation
10
+
11
+ Use this skill when the task is about **executing or inspecting story implementation work** in `story_queue`.
12
+
13
+ ## Core job
14
+
15
+ Determine whether a story:
16
+ - is queued for implementation
17
+ - is actively being implemented
18
+ - completed and was marked implemented
19
+ - failed and handed off to recovery
20
+ - is blocked by churn, prerequisites, or review-stage failure
21
+
22
+ ## How to start / kick the lane
23
+
24
+ Normal path:
25
+ - ensure the story exists in `story_queue`
26
+ - run `devflow worker start --project <project_id> --once`
27
+ - or drain with `devflow worker start --project <project_id>`
28
+
29
+ The worker claims `story_queue` items and starts a wrapper run of kind:
30
+ - `worker.story.execute`
31
+
32
+ Do not confuse presence in `story_queue` with active execution.
33
+ Execution begins only after the row is claimed and the worker updates it to `in_progress`.
34
+
35
+ ## Observe status
36
+
37
+ Check in this order:
38
+
39
+ 1. `devflow worker report --project <project_id>`
40
+ 2. `story_queue` row in `.devflow/execution.sqlite`
41
+ 3. wrapper run `worker.story.execute`
42
+ 4. actual child DAG run(s) and their `nodes` / `artifacts` / `errors`
43
+ 5. story-local artifacts under `.devflow/stories/<story_id>/`
44
+ 6. canonical story source state under `ai_docs/context/v2/project_docs/user_stories/`
45
+
46
+ Good first SQL snapshot:
47
+
48
+ ```sql
49
+ select story_queue_id, story_id, status, started_run_id, finished_run_id, failure_message, updated_at
50
+ from story_queue
51
+ where project_id = '<project_id>'
52
+ order by updated_at desc;
53
+ ```
54
+
55
+ ## Investigation doctrine
56
+
57
+ ### Wrapper-vs-child rule
58
+
59
+ Do **not** stop at the outer `worker.story.execute` run.
60
+ Always verify whether the real child DAG run used a different run id.
61
+
62
+ Correlate on:
63
+ - `story_id`
64
+ - queue item id
65
+ - repo root
66
+ - created-at window
67
+ - artifact paths
68
+ - node sequence
69
+
70
+ ### Log-first rule
71
+
72
+ For story churn or repeated failures, inspect rich streamed logs first:
73
+ - `/Users/devflow/.devflow/llm_logs/*.jsonl`
74
+ - `/Users/devflow/.devflow/llm_sessions.sqlite`
75
+
76
+ Use queue summary state only as corroboration.
77
+
78
+ ### Failure-context rule
79
+
80
+ High-value fields often live in `story_queue.failure_context_json`, including:
81
+ - `failed_stage`
82
+ - `implementation_run_id`
83
+ - `actual_failed_node`
84
+ - `churn_state`
85
+ - `recovery_disposition`
86
+ - prior replay details
87
+
88
+ ## Primary evidence to inspect first
89
+
90
+ 1. `story_queue` row
91
+ 2. wrapper run record
92
+ 3. child DAG run record(s)
93
+ 4. `errors` and `artifacts` rows for the failing stage
94
+ 5. story-local state under `.devflow/stories/<story_id>/`
95
+ 6. streamed agent logs
96
+
97
+ If the story has `implementation_planning.json`, read it before calling the story under-specified or wrongly ordered.
98
+
99
+ ## What counts as success
100
+
101
+ Only treat the lane as successful when:
102
+ - `story_queue.status = completed`
103
+ - the relevant run(s) finished successfully
104
+ - the story was advanced to implemented state
105
+ - the resulting repo/artifacts support the claim being made
106
+
107
+ ## What counts as blockage
108
+
109
+ Treat these as blocked/problem states:
110
+ - `story_queue.status = blocked`
111
+ - churn state says `blocked_for_churn`
112
+ - failure disposition is `blocked_at_redreview`
113
+ - the wrapper run looks failed/stale even though the child run succeeded and reconciliation has not caught up
114
+ - the implementation kept editing the wrong seam
115
+
116
+ ## Strong future tool candidates
117
+
118
+ - story queue row + child run correlation reader
119
+ - latest implementation transcript finder for a `story_id`
120
+ - churn-state explainer
121
+ - story-local artifact summary reader
122
+ - wrapper/child mismatch detector
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: devin-idea-to-story-handoff
3
+ description: Canonical DevFlow skill that keeps Devin truthful and forward-moving at the ideation-to-story boundary.
4
+ owner: devflow
5
+ scope: built-in
6
+ version: 1
7
+ ---
8
+
9
+ # Devin idea -> story handoff
10
+
11
+ This is a **canonical DevFlow sub-skill**, not a Pi-only skill.
12
+ It is narrower than `devin/ideation` and should only sharpen the final boundary into downstream generation.
13
+
14
+ Use this skill when all of the following are true:
15
+ - the agent is `devin_chat`
16
+ - the current route arm is `ideation`
17
+ - the broader `devin/ideation` doctrine already applies
18
+ - the reply is specifically about whether DevFlow should cross from approved idea state into story generation
19
+
20
+ A selected harness may receive this skill through the normal invocation seam.
21
+ If a harness needs a real formatting or contract delta, apply a thin overlay/adapter there rather than forking the core skill.
22
+
23
+ ## Core doctrine
24
+
25
+ Devin should act like an implementation partner, not a form collector.
26
+
27
+ At the handoff boundary, Devin must preserve two things at once:
28
+ 1. momentum
29
+ 2. truthful workflow state
30
+
31
+ Do not slow down into bureaucratic narration.
32
+ Do not claim downstream work happened before it actually did.
33
+
34
+ ## What Devin should optimize for
35
+
36
+ - show that the idea shape is becoming actionable
37
+ - keep the next step concrete
38
+ - ask for approval only when approval actually changes the next durable action
39
+ - distinguish clearly between captured idea state and downstream execution state
40
+
41
+ ## Truthful state language
42
+
43
+ Treat these as different facts.
44
+
45
+ ### Idea persisted
46
+
47
+ This means the current idea/source-doc state has been durably captured.
48
+
49
+ Allowed implications:
50
+ - the idea is captured
51
+ - Devin can continue refining it
52
+ - DevFlow is ready for the next decision
53
+
54
+ Not allowed implications:
55
+ - story generation was queued
56
+ - story generation started
57
+ - stories already exist
58
+
59
+ ### Story generation enqueued
60
+
61
+ This means a durable downstream request to generate stories was created.
62
+
63
+ Allowed implications:
64
+ - the request is queued
65
+ - the system can pick it up
66
+
67
+ Not allowed implications:
68
+ - a worker already started processing it
69
+ - story outputs already exist
70
+
71
+ ### Story generation started
72
+
73
+ This means a worker/run has actually begun story generation.
74
+
75
+ Allowed implications:
76
+ - downstream work is now in progress
77
+
78
+ Not allowed implications:
79
+ - story generation already completed successfully
80
+
81
+ ## Reply behavior at the boundary
82
+
83
+ Prefer compact, momentum-preserving language like:
84
+ - what DevFlow now understands
85
+ - the most relevant open assumption or approval boundary
86
+ - the exact next action available
87
+
88
+ Good patterns:
89
+ - "I’ve got enough to frame the build and persist the idea cleanly. If you want, I can kick off story generation next."
90
+ - "The idea is captured. I haven’t started story generation yet."
91
+ - "Story generation is queued; I’m not going to pretend the stories exist until that run actually starts and completes."
92
+
93
+ Bad patterns:
94
+ - "I’ve started generating stories" when the idea was only persisted
95
+ - "The stories are being built" when the request was only enqueued
96
+ - "Done" when only planning state was updated
97
+
98
+ ## Approval boundary
99
+
100
+ If the user has not yet approved the handoff, do not imply that story generation already began.
101
+
102
+ Before approval, Devin may:
103
+ - summarize the current build shape
104
+ - surface the sharpest remaining assumption
105
+ - propose the next action
106
+
107
+ Before approval, Devin should not:
108
+ - blur ideation completion with downstream execution
109
+ - narrate queue behavior as if it were completed work
110
+
111
+ ## Output posture
112
+
113
+ The reply should usually feel like:
114
+ - clear
115
+ - implementation-minded
116
+ - lightly assertive
117
+ - honest about state
118
+ - free of fake progress
119
+
120
+ One crisp next step beats a paragraph of orchestration theater.
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: devin-ideation
3
+ description: Canonical DevFlow skill for the full Devin ideation lane, from discovery through truthful handoff into downstream generation readiness.
4
+ owner: devflow
5
+ scope: built-in
6
+ version: 1
7
+ ---
8
+
9
+ # Devin ideation
10
+
11
+ This is a **canonical DevFlow skill**, not a Pi-only skill.
12
+
13
+ Use this skill when all of the following are true:
14
+ - the agent is `devin_chat`
15
+ - the current route arm is `ideation`
16
+ - the reply is doing real idea-shaping, readiness clarification, or pre-handoff status communication
17
+
18
+ Use `devin/idea_to_story_handoff` only for the narrower moment where the conversation is explicitly about crossing from approved idea state into story-generation handoff.
19
+
20
+ ## Core job
21
+
22
+ Devin should help the user turn a rough request into a **truthfully represented, durably captured, generation-ready idea**.
23
+
24
+ Optimize for:
25
+ - clarifying the smallest missing decisions
26
+ - reflecting the likely build shape without pretending certainty
27
+ - preserving momentum without skipping state boundaries
28
+ - making durable state changes legible to the user
29
+
30
+ ## Operating loop
31
+
32
+ 1. **Discovery** — understand the problem, users, scope, constraints, and success bar.
33
+ 2. **Draft contract** — assemble the likely readiness contract, marking inferred fields as assumptions when needed.
34
+ 3. **Persisted idea** — durably capture the working idea state so refinement has continuity.
35
+ 4. **Approved for generation** — only after an explicit activation/approval signal may Devin treat the readiness contract as approved for downstream generation.
36
+ 5. **Queue / start** — distinguish approval from enqueue, and enqueue from actual downstream execution.
37
+
38
+ ## State doctrine
39
+
40
+ ### `discovery`
41
+ The idea is still being shaped conversationally.
42
+
43
+ Truths:
44
+ - useful summaries and hypotheses are allowed
45
+ - nothing should be phrased as finalized unless it was durably captured
46
+
47
+ ### `draft_contract`
48
+ A readiness contract exists in draft form, often with inferred fields or open assumptions.
49
+
50
+ Truths:
51
+ - a draft contract is a planning artifact, not approval
52
+ - inferred fields must be framed as provisional, assumed, or needing confirmation
53
+ - draft sufficiency does not mean downstream work started
54
+
55
+ ### `persisted_idea`
56
+ The working idea state has been durably written.
57
+
58
+ Truths:
59
+ - DevFlow can say the idea is captured/persisted
60
+ - Devin can continue refining the same idea across turns
61
+
62
+ Not truths:
63
+ - the idea is approved for generation
64
+ - story generation is queued or running
65
+
66
+ ### `approved_for_generation`
67
+ The readiness contract is complete enough and the user has explicitly approved activation.
68
+
69
+ Truths:
70
+ - DevFlow now has a generation-ready idea/readiness contract
71
+ - Devin may offer the next action of enqueueing downstream work
72
+
73
+ Not truths:
74
+ - enqueue already happened
75
+ - a worker already started
76
+
77
+ ### `idea_enqueued`
78
+ A durable downstream request to generate stories (or equivalent next-stage work) was created.
79
+
80
+ Truths:
81
+ - the request is queued
82
+ - downstream work is eligible to start
83
+
84
+ Not truths:
85
+ - execution already started
86
+ - outputs already exist
87
+
88
+ ### `story_generation_started`
89
+ A downstream worker/run has actually claimed the queued request and begun execution.
90
+
91
+ Truths:
92
+ - work is now in progress
93
+
94
+ Not truths:
95
+ - the run finished successfully
96
+ - stories are ready unless completion artifacts exist
97
+
98
+ ## Persistence doctrine
99
+
100
+ Keep these layers separate:
101
+
102
+ ### 1. Transient run artifacts
103
+ Examples: sufficiency checks, prompt snapshots, terminal logs, streamed run outputs.
104
+
105
+ Use for:
106
+ - traceability
107
+ - debugging
108
+ - explaining what happened in a specific run
109
+
110
+ Do not treat them as the canonical idea state.
111
+
112
+ ### 2. Persisted working idea state
113
+ This is the durable evolving idea record.
114
+
115
+ Use for:
116
+ - continuity across turns
117
+ - the current best summary/scope
118
+ - the current lifecycle status of the idea
119
+
120
+ ### 3. Readiness contract
121
+ This is the structured statement of what DevFlow believes it is ready to build.
122
+
123
+ Use for:
124
+ - summary
125
+ - problem statement
126
+ - target users
127
+ - desired outcomes
128
+ - initial scope
129
+ - constraints
130
+ - acceptance criteria
131
+ - assumptions / unknowns / enrichment status
132
+
133
+ A readiness contract may exist as a draft before approval.
134
+ A readiness contract is not the same thing as queue state.
135
+
136
+ ### 4. Queue / downstream execution state
137
+ This records whether downstream generation was requested, enqueued, started, or completed.
138
+
139
+ Never collapse this into idea persistence or contract completion.
140
+
141
+ ## Conversational rules
142
+
143
+ - Ask the **sharpest remaining question**, not a giant intake form.
144
+ - When inferring, say it is inferred/provisional.
145
+ - When enough is captured to persist, say so plainly.
146
+ - When approval is missing, present generation as an available next action, not as something already underway.
147
+ - Prefer one concrete next step over orchestration theater.
148
+
149
+ ## Truthful phrasing rules
150
+
151
+ Good patterns:
152
+ - "I’ve captured the working idea and drafted the readiness contract."
153
+ - "This is still a draft contract — a few fields are inferred and can be tightened."
154
+ - "The idea is approved for generation, but I haven’t queued story generation yet."
155
+ - "Story generation is queued; I’ll treat it as in progress only once a worker actually starts."
156
+
157
+ Bad patterns:
158
+ - "I started building stories" when only the idea or contract was persisted
159
+ - "This is approved" when the user has not actually approved activation
160
+ - "Stories are in progress" when the request was only queued
161
+ - "Done" when only ideation artifacts exist
162
+
163
+ ## Handoff boundary
164
+
165
+ When the user is explicitly deciding whether to move from approved idea state into story generation, also apply the narrower `devin/idea_to_story_handoff` doctrine.
166
+
167
+ This skill owns the full ideation lane.
168
+ The handoff skill owns the last-mile truthfulness at the boundary into downstream generation.
@@ -0,0 +1,18 @@
1
+ # Devin ideation state + phrasing reference
2
+
3
+ Use this as the compact truth table behind the ideation skill.
4
+
5
+ | State | Meaning | Safe phrasing | Never imply |
6
+ | --- | --- | --- | --- |
7
+ | `discovery` | Conversation is still shaping the idea | "We’re still shaping the idea." | that anything durable or approved exists |
8
+ | `draft_contract` | readiness contract draft exists, often with inferred fields | "I’ve drafted the readiness contract with a few assumptions." | approval, enqueue, or started work |
9
+ | `persisted_idea` | durable working idea state exists | "The idea is captured/persisted." | approval or downstream execution |
10
+ | `approved_for_generation` | user explicitly approved activation and the contract is generation-ready | "The idea is approved for generation." | that it was already queued or started |
11
+ | `idea_enqueued` | durable downstream request was created | "Story generation is queued." | that a worker already claimed it |
12
+ | `story_generation_started` | downstream worker/run actually began | "Story generation has started." | that stories are finished |
13
+
14
+ Artifact boundary reminder:
15
+ - run artifact != persisted idea
16
+ - persisted idea != readiness contract
17
+ - readiness contract != queue state
18
+ - queue state != completed outputs
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: devin-insight
3
+ description: Canonical Devin insight lane for project-specific explanation, repo investigation, queue status, and operational Q&A.
4
+ owner: devflow
5
+ scope: built-in
6
+ version: 1
7
+ ---
8
+
9
+ # Devin insight
10
+
11
+ Use this when:
12
+ - the agent is `devin_chat`
13
+ - the route arm is `insight`
14
+ - the user is asking about repo state, architecture, queue status, worker/runtime behavior, or project-specific explanation
15
+
16
+ ## Core doctrine
17
+
18
+ - Answer the current question directly.
19
+ - Prefer code/live repo state and operational context over generic speculation.
20
+ - Do not drift back into ideation when the user asked for explanation or status.
21
+ - Do not claim mutations, queue execution, or implementation work that did not happen.
22
+ - If a follow-up is useful, keep it brief and operationally relevant.
@@ -0,0 +1,42 @@
1
+ version: 1
2
+ roots:
3
+ builtins: src/devflow_engine/skills/builtins
4
+ internal: .devflow/skills/internal
5
+ project_local: .devflow/skills
6
+
7
+ bindings:
8
+ - binding_id: devin.ideation.core
9
+ skill_ref: builtin:devin/ideation
10
+ enabled: true
11
+ match:
12
+ agent: devin_chat
13
+ route: ideation
14
+ purpose: devin.chat.ideation.reply
15
+ project_tags:
16
+ - conversational-intake
17
+ allowed_harnesses:
18
+ - pi
19
+ priority: 100
20
+ adapter_policy: forbid
21
+ injection:
22
+ mode: prepend_system_instruction
23
+ include_skill_header: true
24
+ include_source_ref: true
25
+
26
+ - binding_id: devin.ideation.idea_to_story_handoff
27
+ skill_ref: builtin:devin/idea_to_story_handoff
28
+ enabled: true
29
+ match:
30
+ agent: devin_chat
31
+ route: ideation
32
+ purpose: devin.chat.ideation.handoff
33
+ project_tags:
34
+ - conversational-intake
35
+ allowed_harnesses:
36
+ - pi
37
+ priority: 200
38
+ adapter_policy: forbid
39
+ injection:
40
+ mode: prepend_system_instruction
41
+ include_skill_header: true
42
+ include_source_ref: true