Skip to content

[Agentic DX] libvcs: low-to-high lift API decomposition and contract roadmap #515

@tony

Description

@tony

Context

Review focused on src/libvcs/, especially the very large src/libvcs/cmd/git.py, plus sync APIs and docs.

Goal

Improve maintainability and machine-facing contracts without losing libvcs flexibility.

Low-lift ideas

  • Document stable imports in libvcs.__init__ and reinforce them with contract tests.
  • Standardize a typed command result model (cmd, returncode, stdout, stderr, timing).
  • Add an "agent quickstart" section for common sync/update flows.

Medium-lift ideas

  • Decompose cmd/git.py into smaller modules by concern (clone/fetch/worktree/remote/etc).
  • Centralize subprocess execution + tracing hooks.
  • Add subsystem-specific tests to reduce regression blast radius.

High-lift ideas

  • Publish a machine-readable capability matrix (git/hg/svn feature support).
  • Add a planning mode that emits intended operations before execution.

Done when

  • Core modules are easier to navigate.
  • Output and behavior contracts are explicit.
  • Tooling can reason about capabilities without reading internals.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions