src.intelligence.dependency_inferer module#

Dependency Inference Engine for Marcus Phase 2.

Smart dependency detection to prevent illogical task assignments like “Deploy to production” before development is complete.

class src.intelligence.dependency_inferer.DependencyPattern[source]#

Bases: object

Pattern for inferring dependencies.

name: str#
description: str#
condition_pattern: str#
dependency_pattern: str#
confidence: float#
mandatory: bool#
__init__(name, description, condition_pattern, dependency_pattern, confidence, mandatory)#
Parameters:
  • name (str)

  • description (str)

  • condition_pattern (str)

  • dependency_pattern (str)

  • confidence (float)

  • mandatory (bool)

Return type:

None

class src.intelligence.dependency_inferer.InferredDependency[source]#

Bases: object

Inferred dependency between tasks.

dependent_task_id: str#
dependency_task_id: str#
dependency_type: str#
confidence: float#
reasoning: str#
source: str = 'unknown'#
__init__(dependent_task_id, dependency_task_id, dependency_type, confidence, reasoning, source='unknown')#
Parameters:
  • dependent_task_id (str)

  • dependency_task_id (str)

  • dependency_type (str)

  • confidence (float)

  • reasoning (str)

  • source (str)

Return type:

None

class src.intelligence.dependency_inferer.DependencyGraph[source]#

Bases: object

Graph representation of task dependencies.

nodes: Dict[str, Task]#
edges: List[InferredDependency]#
adjacency_list: Dict[str, List[str]]#
reverse_adjacency: Dict[str, List[str]]#
has_cycle()[source]#

Check if the dependency graph has cycles.

Return type:

bool

get_critical_path()[source]#

Get the critical path (longest dependency chain).

Return type:

List[str]

__init__(nodes, edges, adjacency_list, reverse_adjacency)#
Parameters:
Return type:

None

class src.intelligence.dependency_inferer.DependencyInferer[source]#

Bases: object

Infers dependencies between tasks to prevent illogical assignments.

__init__()[source]#
Return type:

None

async infer_dependencies(tasks)[source]#

Infer dependencies from task names and descriptions.

Parameters:

tasks (List[Task]) – List of tasks to analyze

Returns:

Dependency graph with inferred dependencies

Return type:

DependencyGraph

async validate_dependencies(graph)[source]#

Validate dependency graph for correctness.

Returns:

Validation results with any issues found

Return type:

Dict[str, Any]

Parameters:

graph (DependencyGraph)