Skip to content

Agentic sync / architecture sync: surface partial-sync dep drops; do not clear dependencies on non-dep prompts #735

@vishalramvelu

Description

@vishalramvelu

Problem

  1. build_dep_graph_from_architecture only returned a subgraph for the modules being synced. When architecture.json listed a dependency outside that set (partial sync) or a filename with no matching arch entry (orphan), edges were dropped with no signal. Operators could not tell whether the schedule was intentionally minimal or silently inconsistent with the file.
  2. update_architecture_from_prompt treated some prompts as “touching” dependencies even when the prompt had no metadata. Reason- or interface-only updates could wipe dependencies in architecture.json, even though those edges may still be valid (e.g. from or manual curation).

Solution

  • Visibility for graph construction
    Return a small result type (graph + warnings) from build_dep_graph_from_architecture.
    Emit warnings for orphan dependency filenames and for dependencies not in the sync target set (edge still omitted from the scheduled graph).
    Surface warnings in agentic sync output when not in quiet mode.

  • Preserve dependencies unless the prompt defines them
    Update architecture.json dependencies only when the prompt includes dependency intent: present (including empty tag to mean “clear”) or a non-empty parsed dependency list.
    Do not clear dependencies on prompts that only change reason/interface and do not specify deps.

Tests cover the new graph API, warning text, preservation vs explicit clear, and related agentic/architecture sync paths.

Related Issue

Parent #733 (addresses parts of this issue) (733 will be broken into few smaller PRs to allow for continous methodical improvements)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions