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.
- devflow_engine/__init__.py +3 -0
- devflow_engine/agentic_prompts.py +100 -0
- devflow_engine/agentic_runtime.py +398 -0
- devflow_engine/api_key_flow_harness.py +539 -0
- devflow_engine/api_keys.py +357 -0
- devflow_engine/bootstrap/__init__.py +2 -0
- devflow_engine/bootstrap/provision_from_template.py +84 -0
- devflow_engine/cli/__init__.py +0 -0
- devflow_engine/cli/app.py +7270 -0
- devflow_engine/core/__init__.py +0 -0
- devflow_engine/core/config.py +86 -0
- devflow_engine/core/logging.py +29 -0
- devflow_engine/core/paths.py +45 -0
- devflow_engine/core/toml_kv.py +33 -0
- devflow_engine/devflow_event_worker.py +1292 -0
- devflow_engine/devflow_state.py +201 -0
- devflow_engine/devin2/__init__.py +9 -0
- devflow_engine/devin2/agent_definition.py +120 -0
- devflow_engine/devin2/pi_runner.py +204 -0
- devflow_engine/devin_orchestration.py +69 -0
- devflow_engine/docs/prompts/anti-patterns.md +42 -0
- devflow_engine/docs/prompts/devin-agent-prompt.md +55 -0
- devflow_engine/docs/prompts/devin2-agent-prompt.md +81 -0
- devflow_engine/docs/prompts/examples/devin-vapi-clone-reference-exchange.json +85 -0
- devflow_engine/doctor/__init__.py +2 -0
- devflow_engine/doctor/triage.py +140 -0
- devflow_engine/error/__init__.py +0 -0
- devflow_engine/error/remediation.py +21 -0
- devflow_engine/errors/error_solver_dag.py +522 -0
- devflow_engine/errors/runtime_observability.py +67 -0
- devflow_engine/idea/__init__.py +4 -0
- devflow_engine/idea/actors.py +481 -0
- devflow_engine/idea/agentic.py +465 -0
- devflow_engine/idea/analyze.py +93 -0
- devflow_engine/idea/devin_chat_dag.py +1 -0
- devflow_engine/idea/diff.py +99 -0
- devflow_engine/idea/drafts.py +446 -0
- devflow_engine/idea/idea_creation_dag.py +643 -0
- devflow_engine/idea/ideation_enrichment.py +355 -0
- devflow_engine/idea/ideation_enrichment_worker.py +19 -0
- devflow_engine/idea/paths.py +28 -0
- devflow_engine/idea/promote.py +53 -0
- devflow_engine/idea/redaction.py +27 -0
- devflow_engine/idea/repo_tools.py +1277 -0
- devflow_engine/idea/response_mode.py +30 -0
- devflow_engine/idea/story_pipeline.py +1585 -0
- devflow_engine/idea/sufficiency.py +376 -0
- devflow_engine/idea/traditional_stories.py +1257 -0
- devflow_engine/implementation/__init__.py +0 -0
- devflow_engine/implementation/alembic_preflight.py +700 -0
- devflow_engine/implementation/dag.py +8450 -0
- devflow_engine/implementation/green_gate.py +93 -0
- devflow_engine/implementation/prompts.py +108 -0
- devflow_engine/implementation/test_runtime.py +623 -0
- devflow_engine/integration/__init__.py +19 -0
- devflow_engine/integration/agentic.py +66 -0
- devflow_engine/integration/dag.py +3539 -0
- devflow_engine/integration/prompts.py +114 -0
- devflow_engine/integration/supabase_schema.sql +31 -0
- devflow_engine/integration/supabase_sync.py +177 -0
- devflow_engine/llm/__init__.py +1 -0
- devflow_engine/llm/cli_one_shot.py +84 -0
- devflow_engine/llm/cli_stream.py +371 -0
- devflow_engine/llm/execution_context.py +26 -0
- devflow_engine/llm/invoke.py +1322 -0
- devflow_engine/llm/provider_api.py +304 -0
- devflow_engine/llm/repo_knowledge.py +588 -0
- devflow_engine/llm_primitives.py +315 -0
- devflow_engine/orchestration.py +62 -0
- devflow_engine/planning/__init__.py +0 -0
- devflow_engine/planning/analyze_repo.py +92 -0
- devflow_engine/planning/render_drafts.py +133 -0
- devflow_engine/playground/__init__.py +0 -0
- devflow_engine/playground/hooks.py +26 -0
- devflow_engine/playwright_workflow/__init__.py +5 -0
- devflow_engine/playwright_workflow/dag.py +1317 -0
- devflow_engine/process/__init__.py +5 -0
- devflow_engine/process/dag.py +59 -0
- devflow_engine/project_registration/__init__.py +3 -0
- devflow_engine/project_registration/dag.py +1581 -0
- devflow_engine/project_registry.py +109 -0
- devflow_engine/prompts/devin/generic/prompt.md +6 -0
- devflow_engine/prompts/devin/ideation/prompt.md +263 -0
- devflow_engine/prompts/devin/ideation/scenarios.md +5 -0
- devflow_engine/prompts/devin/ideation_loop/prompt.md +6 -0
- devflow_engine/prompts/devin/insight/prompt.md +11 -0
- devflow_engine/prompts/devin/insight/scenarios.md +5 -0
- devflow_engine/prompts/devin/intake/prompt.md +15 -0
- devflow_engine/prompts/devin/iterate/prompt.md +12 -0
- devflow_engine/prompts/devin/shared/eval_doctrine.md +9 -0
- devflow_engine/prompts/devin/shared/principles.md +246 -0
- devflow_engine/prompts/devin_eval/assessment/prompt.md +18 -0
- devflow_engine/prompts/idea/api_ideation_agent/prompt.md +8 -0
- devflow_engine/prompts/idea/api_insight_agent/prompt.md +8 -0
- devflow_engine/prompts/idea/response_doctrine/prompt.md +18 -0
- devflow_engine/prompts/implementation/dependency_assessment/prompt.md +12 -0
- devflow_engine/prompts/implementation/green/green/prompt.md +11 -0
- devflow_engine/prompts/implementation/green/node_config/prompt.md +3 -0
- devflow_engine/prompts/implementation/green_review/outcome_review/prompt.md +5 -0
- devflow_engine/prompts/implementation/green_review/prior_run_review/prompt.md +5 -0
- devflow_engine/prompts/implementation/red/prompt.md +27 -0
- devflow_engine/prompts/implementation/redreview/prompt.md +23 -0
- devflow_engine/prompts/implementation/redreview_repair/prompt.md +16 -0
- devflow_engine/prompts/implementation/setupdoc/prompt.md +10 -0
- devflow_engine/prompts/implementation/story_planning/prompt.md +13 -0
- devflow_engine/prompts/implementation/test_design/prompt.md +27 -0
- devflow_engine/prompts/integration/README.md +185 -0
- devflow_engine/prompts/integration/green/example.md +67 -0
- devflow_engine/prompts/integration/green/green/prompt.md +10 -0
- devflow_engine/prompts/integration/green/node_config/prompt.md +42 -0
- devflow_engine/prompts/integration/green/past_prompts/20260417T212300/green/prompt.md +15 -0
- devflow_engine/prompts/integration/green/past_prompts/20260417T212300/node_config/prompt.md +42 -0
- devflow_engine/prompts/integration/green_enrich/example.md +79 -0
- devflow_engine/prompts/integration/green_enrich/green_enrich/prompt.md +9 -0
- devflow_engine/prompts/integration/green_enrich/node_config/prompt.md +41 -0
- devflow_engine/prompts/integration/green_enrich/past_prompts/20260417T212300/green_enrich/prompt.md +14 -0
- devflow_engine/prompts/integration/green_enrich/past_prompts/20260417T212300/node_config/prompt.md +41 -0
- devflow_engine/prompts/integration/red/code_repair/prompt.md +12 -0
- devflow_engine/prompts/integration/red/example.md +152 -0
- devflow_engine/prompts/integration/red/node_config/prompt.md +86 -0
- devflow_engine/prompts/integration/red/past_prompts/20260417T212300/code_repair/prompt.md +19 -0
- devflow_engine/prompts/integration/red/past_prompts/20260417T212300/node_config/prompt.md +84 -0
- devflow_engine/prompts/integration/red/past_prompts/20260417T212300/red/prompt.md +16 -0
- devflow_engine/prompts/integration/red/past_prompts/20260417T212300/red_repair/prompt.md +15 -0
- devflow_engine/prompts/integration/red/past_prompts/20260417T215032/code_repair/prompt.md +10 -0
- devflow_engine/prompts/integration/red/past_prompts/20260417T215032/node_config/prompt.md +84 -0
- devflow_engine/prompts/integration/red/past_prompts/20260417T215032/red_repair/prompt.md +11 -0
- devflow_engine/prompts/integration/red/red/prompt.md +11 -0
- devflow_engine/prompts/integration/red/red_repair/prompt.md +12 -0
- devflow_engine/prompts/integration/red_review/example.md +71 -0
- devflow_engine/prompts/integration/red_review/node_config/prompt.md +41 -0
- devflow_engine/prompts/integration/red_review/past_prompts/20260417T212300/node_config/prompt.md +41 -0
- devflow_engine/prompts/integration/red_review/past_prompts/20260417T212300/red_review/prompt.md +15 -0
- devflow_engine/prompts/integration/red_review/red_review/prompt.md +9 -0
- devflow_engine/prompts/integration/resolve/example.md +111 -0
- devflow_engine/prompts/integration/resolve/node_config/prompt.md +64 -0
- devflow_engine/prompts/integration/resolve/past_prompts/20260417T212300/node_config/prompt.md +64 -0
- devflow_engine/prompts/integration/resolve/past_prompts/20260417T212300/resolve_implicated_users/prompt.md +15 -0
- devflow_engine/prompts/integration/resolve/past_prompts/20260417T212300/resolve_side_effects/prompt.md +15 -0
- devflow_engine/prompts/integration/resolve/resolve_implicated_users/prompt.md +10 -0
- devflow_engine/prompts/integration/resolve/resolve_side_effects/prompt.md +10 -0
- devflow_engine/prompts/integration/validate/build_idea_acceptance_coverage/prompt.md +12 -0
- devflow_engine/prompts/integration/validate/code_repair/prompt.md +13 -0
- devflow_engine/prompts/integration/validate/example.md +143 -0
- devflow_engine/prompts/integration/validate/node_config/prompt.md +87 -0
- devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/code_repair/prompt.md +19 -0
- devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/node_config/prompt.md +67 -0
- devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/validate_enrich_gate/prompt.md +17 -0
- devflow_engine/prompts/integration/validate/past_prompts/20260417T212300/validate_repair/prompt.md +16 -0
- devflow_engine/prompts/integration/validate/past_prompts/20260417T215032/code_repair/prompt.md +10 -0
- devflow_engine/prompts/integration/validate/past_prompts/20260417T215032/node_config/prompt.md +67 -0
- devflow_engine/prompts/integration/validate/past_prompts/20260417T215032/validate_repair/prompt.md +9 -0
- devflow_engine/prompts/integration/validate/validate_enrich_gate/prompt.md +10 -0
- devflow_engine/prompts/integration/validate/validate_repair/prompt.md +20 -0
- devflow_engine/prompts/integration/write_workflows/example.md +100 -0
- devflow_engine/prompts/integration/write_workflows/node_config/prompt.md +44 -0
- devflow_engine/prompts/integration/write_workflows/past_prompts/20260417T212300/node_config/prompt.md +44 -0
- devflow_engine/prompts/integration/write_workflows/past_prompts/20260417T212300/write_workflows/prompt.md +17 -0
- devflow_engine/prompts/integration/write_workflows/write_workflows/prompt.md +11 -0
- devflow_engine/prompts/iterate/README.md +7 -0
- devflow_engine/prompts/iterate/coder/prompt.md +11 -0
- devflow_engine/prompts/iterate/framer/prompt.md +11 -0
- devflow_engine/prompts/iterate/iterator/prompt.md +13 -0
- devflow_engine/prompts/iterate/observer/prompt.md +11 -0
- devflow_engine/prompts/recovery/diagnosis/prompt.md +7 -0
- devflow_engine/prompts/recovery/execution/prompt.md +8 -0
- devflow_engine/prompts/recovery/execution_verification/prompt.md +7 -0
- devflow_engine/prompts/recovery/failure_investigation/prompt.md +10 -0
- devflow_engine/prompts/recovery/preflight_health_repo_repair/prompt.md +8 -0
- devflow_engine/prompts/recovery/remediation_execution/prompt.md +11 -0
- devflow_engine/prompts/recovery/root_cause_investigation/prompt.md +12 -0
- devflow_engine/prompts/scope_idea/doctrine/prompt.md +7 -0
- devflow_engine/prompts/source_doc_eval/document/prompt.md +6 -0
- devflow_engine/prompts/source_doc_eval/targeted_mutation/prompt.md +9 -0
- devflow_engine/prompts/source_doc_mutation/domain_entities/prompt.md +6 -0
- devflow_engine/prompts/source_doc_mutation/product_brief/prompt.md +6 -0
- devflow_engine/prompts/source_doc_mutation/project_doc_coherence/prompt.md +7 -0
- devflow_engine/prompts/source_doc_mutation/project_doc_render/prompt.md +9 -0
- devflow_engine/prompts/source_doc_mutation/source_doc_coherence/prompt.md +5 -0
- devflow_engine/prompts/source_doc_mutation/source_doc_enrichment_coherence/prompt.md +6 -0
- devflow_engine/prompts/source_doc_mutation/user_workflows/prompt.md +6 -0
- devflow_engine/prompts/source_scope/doctrine/prompt.md +10 -0
- devflow_engine/prompts/ui_grounding/doctrine/prompt.md +7 -0
- devflow_engine/recovery/__init__.py +3 -0
- devflow_engine/recovery/dag.py +2609 -0
- devflow_engine/recovery/models.py +220 -0
- devflow_engine/refactor.py +93 -0
- devflow_engine/registry/__init__.py +1 -0
- devflow_engine/registry/cards.py +238 -0
- devflow_engine/registry/domain_normalize.py +60 -0
- devflow_engine/registry/effects.py +65 -0
- devflow_engine/registry/enforce_report.py +150 -0
- devflow_engine/registry/module_cards_classify.py +164 -0
- devflow_engine/registry/module_cards_draft.py +184 -0
- devflow_engine/registry/module_cards_gate.py +59 -0
- devflow_engine/registry/packages.py +347 -0
- devflow_engine/registry/pathways.py +323 -0
- devflow_engine/review/__init__.py +11 -0
- devflow_engine/review/dag.py +588 -0
- devflow_engine/review/review_story.py +67 -0
- devflow_engine/scope_idea/__init__.py +3 -0
- devflow_engine/scope_idea/agentic.py +39 -0
- devflow_engine/scope_idea/dag.py +1069 -0
- devflow_engine/scope_idea/models.py +175 -0
- devflow_engine/skills/builtins/devflow/queue_failure_investigation/SKILL.md +112 -0
- devflow_engine/skills/builtins/devflow/queue_idea_to_story/SKILL.md +120 -0
- devflow_engine/skills/builtins/devflow/queue_integration/SKILL.md +105 -0
- devflow_engine/skills/builtins/devflow/queue_recovery/SKILL.md +108 -0
- devflow_engine/skills/builtins/devflow/queue_runtime_core/SKILL.md +155 -0
- devflow_engine/skills/builtins/devflow/queue_story_implementation/SKILL.md +122 -0
- devflow_engine/skills/builtins/devin/idea_to_story_handoff/SKILL.md +120 -0
- devflow_engine/skills/builtins/devin/ideation/SKILL.md +168 -0
- devflow_engine/skills/builtins/devin/ideation/state-and-phrasing-reference.md +18 -0
- devflow_engine/skills/builtins/devin/insight/SKILL.md +22 -0
- devflow_engine/skills/registry.example.yaml +42 -0
- devflow_engine/source_doc_assumptions.py +291 -0
- devflow_engine/source_doc_mutation_dag.py +1606 -0
- devflow_engine/source_doc_mutation_eval.py +417 -0
- devflow_engine/source_doc_mutation_worker.py +25 -0
- devflow_engine/source_docs_schema.py +207 -0
- devflow_engine/source_docs_updater.py +309 -0
- devflow_engine/source_scope/__init__.py +15 -0
- devflow_engine/source_scope/agentic.py +45 -0
- devflow_engine/source_scope/dag.py +1626 -0
- devflow_engine/source_scope/models.py +177 -0
- devflow_engine/stores/__init__.py +0 -0
- devflow_engine/stores/execution_store.py +3534 -0
- devflow_engine/story/__init__.py +0 -0
- devflow_engine/story/contracts.py +160 -0
- devflow_engine/story/discovery.py +47 -0
- devflow_engine/story/evidence.py +118 -0
- devflow_engine/story/hashing.py +27 -0
- devflow_engine/story/implemented_queue_purge.py +148 -0
- devflow_engine/story/indexer.py +105 -0
- devflow_engine/story/io.py +20 -0
- devflow_engine/story/markdown_contracts.py +298 -0
- devflow_engine/story/reconciliation.py +408 -0
- devflow_engine/story/validate_stories.py +149 -0
- devflow_engine/story/validate_tests_story.py +512 -0
- devflow_engine/story/validation.py +133 -0
- devflow_engine/ui_grounding/__init__.py +11 -0
- devflow_engine/ui_grounding/agentic.py +31 -0
- devflow_engine/ui_grounding/dag.py +874 -0
- devflow_engine/ui_grounding/models.py +224 -0
- devflow_engine/ui_grounding/pencil_bridge.py +247 -0
- devflow_engine/vendor/__init__.py +0 -0
- devflow_engine/vendor/datalumina_genai/__init__.py +11 -0
- devflow_engine/vendor/datalumina_genai/core/__init__.py +0 -0
- devflow_engine/vendor/datalumina_genai/core/exceptions.py +9 -0
- devflow_engine/vendor/datalumina_genai/core/nodes/__init__.py +0 -0
- devflow_engine/vendor/datalumina_genai/core/nodes/agent.py +48 -0
- devflow_engine/vendor/datalumina_genai/core/nodes/agent_streaming_node.py +26 -0
- devflow_engine/vendor/datalumina_genai/core/nodes/base.py +89 -0
- devflow_engine/vendor/datalumina_genai/core/nodes/concurrent.py +30 -0
- devflow_engine/vendor/datalumina_genai/core/nodes/router.py +69 -0
- devflow_engine/vendor/datalumina_genai/core/schema.py +72 -0
- devflow_engine/vendor/datalumina_genai/core/task.py +52 -0
- devflow_engine/vendor/datalumina_genai/core/validate.py +139 -0
- devflow_engine/vendor/datalumina_genai/core/workflow.py +200 -0
- devflow_engine/worker.py +1086 -0
- devflow_engine/worker_guard.py +233 -0
- devflow_engine-1.0.0.dist-info/METADATA +235 -0
- devflow_engine-1.0.0.dist-info/RECORD +393 -0
- devflow_engine-1.0.0.dist-info/WHEEL +4 -0
- devflow_engine-1.0.0.dist-info/entry_points.txt +3 -0
- devin/__init__.py +6 -0
- devin/dag.py +58 -0
- devin/dag_two_arm.py +138 -0
- devin/devin_chat_scenario_catalog.json +588 -0
- devin/devin_eval.py +677 -0
- devin/nodes/__init__.py +0 -0
- devin/nodes/ideation/__init__.py +0 -0
- devin/nodes/ideation/node.py +195 -0
- devin/nodes/ideation/playground.py +267 -0
- devin/nodes/ideation/prompt.md +65 -0
- devin/nodes/ideation/scenarios/continue_refinement.py +13 -0
- devin/nodes/ideation/scenarios/continue_refinement_evals.py +18 -0
- devin/nodes/ideation/scenarios/idea_fits_existing_patterns.py +17 -0
- devin/nodes/ideation/scenarios/idea_fits_existing_patterns_evals.py +16 -0
- devin/nodes/ideation/scenarios/large_idea_split.py +4 -0
- devin/nodes/ideation/scenarios/large_idea_split_evals.py +17 -0
- devin/nodes/ideation/scenarios/source_documentation_added.py +4 -0
- devin/nodes/ideation/scenarios/source_documentation_added_evals.py +16 -0
- devin/nodes/ideation/scenarios/user_says_create_it.py +30 -0
- devin/nodes/ideation/scenarios/user_says_create_it_evals.py +23 -0
- devin/nodes/ideation/scenarios/vague_idea.py +16 -0
- devin/nodes/ideation/scenarios/vague_idea_evals.py +47 -0
- devin/nodes/ideation/tools.json +312 -0
- devin/nodes/insight/__init__.py +0 -0
- devin/nodes/insight/node.py +49 -0
- devin/nodes/insight/playground.py +154 -0
- devin/nodes/insight/prompt.md +61 -0
- devin/nodes/insight/scenarios/architecture_pattern_query.py +15 -0
- devin/nodes/insight/scenarios/architecture_pattern_query_evals.py +25 -0
- devin/nodes/insight/scenarios/codebase_exploration.py +15 -0
- devin/nodes/insight/scenarios/codebase_exploration_evals.py +23 -0
- devin/nodes/insight/scenarios/devin_ideation_routing.py +19 -0
- devin/nodes/insight/scenarios/devin_ideation_routing_evals.py +39 -0
- devin/nodes/insight/scenarios/devin_insight_routing.py +20 -0
- devin/nodes/insight/scenarios/devin_insight_routing_evals.py +40 -0
- devin/nodes/insight/scenarios/operational_debugging.py +15 -0
- devin/nodes/insight/scenarios/operational_debugging_evals.py +23 -0
- devin/nodes/insight/scenarios/operational_question.py +9 -0
- devin/nodes/insight/scenarios/operational_question_evals.py +8 -0
- devin/nodes/insight/scenarios/queue_status.py +15 -0
- devin/nodes/insight/scenarios/queue_status_evals.py +23 -0
- devin/nodes/insight/scenarios/source_doc_explanation.py +14 -0
- devin/nodes/insight/scenarios/source_doc_explanation_evals.py +21 -0
- devin/nodes/insight/scenarios/worker_state_check.py +15 -0
- devin/nodes/insight/scenarios/worker_state_check_evals.py +22 -0
- devin/nodes/insight/tools.json +126 -0
- devin/nodes/intake/__init__.py +0 -0
- devin/nodes/intake/node.py +27 -0
- devin/nodes/intake/playground.py +47 -0
- devin/nodes/intake/prompt.md +12 -0
- devin/nodes/intake/scenarios/ideation_routing.py +4 -0
- devin/nodes/intake/scenarios/ideation_routing_evals.py +5 -0
- devin/nodes/intake/scenarios/insight_routing.py +4 -0
- devin/nodes/intake/scenarios/insight_routing_evals.py +5 -0
- devin/nodes/iterate/README.md +44 -0
- devin/nodes/iterate/__init__.py +1 -0
- devin/nodes/iterate/_archived_design_stages/01-objectives-requirements.md +112 -0
- devin/nodes/iterate/_archived_design_stages/02-evals.md +131 -0
- devin/nodes/iterate/_archived_design_stages/03-tools-and-boundaries.md +110 -0
- devin/nodes/iterate/_archived_design_stages/04-harness-and-playground.md +32 -0
- devin/nodes/iterate/_archived_design_stages/05-prompt-deferred.md +11 -0
- devin/nodes/iterate/_archived_design_stages/coder_agent_design/01-objectives-requirements.md +20 -0
- devin/nodes/iterate/_archived_design_stages/coder_agent_design/02-evals.md +8 -0
- devin/nodes/iterate/_archived_design_stages/coder_agent_design/03-tools-and-boundaries.md +14 -0
- devin/nodes/iterate/_archived_design_stages/coder_agent_design/04-harness-and-playground.md +12 -0
- devin/nodes/iterate/_archived_design_stages/framer_agent_design/01-objectives-requirements.md +20 -0
- devin/nodes/iterate/_archived_design_stages/framer_agent_design/02-evals.md +8 -0
- devin/nodes/iterate/_archived_design_stages/framer_agent_design/03-tools-and-boundaries.md +13 -0
- devin/nodes/iterate/_archived_design_stages/framer_agent_design/04-harness-and-playground.md +12 -0
- devin/nodes/iterate/_archived_design_stages/iterator_agent_design/01-objectives-requirements.md +25 -0
- devin/nodes/iterate/_archived_design_stages/iterator_agent_design/02-evals.md +9 -0
- devin/nodes/iterate/_archived_design_stages/iterator_agent_design/03-tools-and-boundaries.md +14 -0
- devin/nodes/iterate/_archived_design_stages/iterator_agent_design/04-harness-and-playground.md +12 -0
- devin/nodes/iterate/_archived_design_stages/observer_agent_design/01-objectives-requirements.md +20 -0
- devin/nodes/iterate/_archived_design_stages/observer_agent_design/02-evals.md +8 -0
- devin/nodes/iterate/_archived_design_stages/observer_agent_design/03-tools-and-boundaries.md +14 -0
- devin/nodes/iterate/_archived_design_stages/observer_agent_design/04-harness-and-playground.md +13 -0
- devin/nodes/iterate/agent-roles.md +89 -0
- devin/nodes/iterate/agents/README.md +10 -0
- devin/nodes/iterate/artifacts.md +504 -0
- devin/nodes/iterate/contract.md +100 -0
- devin/nodes/iterate/eval-plan.md +74 -0
- devin/nodes/iterate/node.py +100 -0
- devin/nodes/iterate/pipeline/README.md +13 -0
- devin/nodes/iterate/playground-contract.md +76 -0
- devin/nodes/iterate/prompt.md +11 -0
- devin/nodes/iterate/scenarios/README.md +38 -0
- devin/nodes/iterate/scenarios/artifact-and-loop-scenarios.md +101 -0
- devin/nodes/iterate/scenarios/coder_artifact_alignment.py +32 -0
- devin/nodes/iterate/scenarios/coder_artifact_alignment_evals.py +45 -0
- devin/nodes/iterate/scenarios/coder_bounded_fix.py +27 -0
- devin/nodes/iterate/scenarios/coder_bounded_fix_evals.py +45 -0
- devin/nodes/iterate/scenarios/devin_iterate_routing.py +21 -0
- devin/nodes/iterate/scenarios/devin_iterate_routing_evals.py +36 -0
- devin/nodes/iterate/scenarios/framer_scope_boundary.py +25 -0
- devin/nodes/iterate/scenarios/framer_scope_boundary_evals.py +57 -0
- devin/nodes/iterate/scenarios/framer_task_framing.py +25 -0
- devin/nodes/iterate/scenarios/framer_task_framing_evals.py +58 -0
- devin/nodes/iterate/scenarios/iterate_error_fix.py +21 -0
- devin/nodes/iterate/scenarios/iterate_error_fix_evals.py +39 -0
- devin/nodes/iterate/scenarios/iterate_quick_change.py +21 -0
- devin/nodes/iterate/scenarios/iterate_quick_change_evals.py +35 -0
- devin/nodes/iterate/scenarios/iterate_to_idea_promotion.py +23 -0
- devin/nodes/iterate/scenarios/iterate_to_idea_promotion_evals.py +53 -0
- devin/nodes/iterate/scenarios/iterate_to_insight_reroute.py +23 -0
- devin/nodes/iterate/scenarios/iterate_to_insight_reroute_evals.py +53 -0
- devin/nodes/iterate/scenarios/observer_evidence_seam.py +28 -0
- devin/nodes/iterate/scenarios/observer_evidence_seam_evals.py +55 -0
- devin/nodes/iterate/scenarios/observer_repro_creation.py +28 -0
- devin/nodes/iterate/scenarios/observer_repro_creation_evals.py +45 -0
- devin/nodes/iterate/scenarios/routing-matrix.md +45 -0
- devin/nodes/shared/__init__.py +0 -0
- devin/nodes/shared/filemaker_expert.md +80 -0
- devin/nodes/shared/filemaker_expert.py +354 -0
- devin/nodes/shared/filemaker_expert_eval/runner.py +176 -0
- devin/nodes/shared/filemaker_expert_eval/scenarios.json +65 -0
- devin/nodes/shared/goldilocks_advisor_eval/runner.py +214 -0
- devin/nodes/shared/goldilocks_advisor_eval/scenarios.json +58 -0
- devin/nodes/shared/helpers.py +156 -0
- devin/nodes/shared/idea_compliance_advisor_eval/runner.py +252 -0
- devin/nodes/shared/idea_compliance_advisor_eval/scenarios.json +75 -0
- devin/nodes/shared/models.py +44 -0
- devin/nodes/shared/post.py +40 -0
- devin/nodes/shared/router.py +107 -0
- devin/nodes/shared/tools.py +191 -0
- devin/shared/devin-chat-rubric.md +237 -0
- devin/shared/devin-chat-scenario-suite.md +90 -0
- 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
|