Skip to content

SDLCAgent v1.0.0

Latest

Choose a tag to compare

@Ricordy Ricordy released this 23 Jul 22:14

SDLCAgent v1.0.0

First working release. The agent turns an informal bug report into a structured GitHub issue, checks whether the problem has already been reported, and asks for confirmation before filing anything.

What it does

Given a one-line report such as "the app crashes when exporting reports over 1000 rows", the agent:

  1. Drafts a structured issue — title, type, severity, summary, reproduction steps and labels — validated against a Pydantic schema
  2. Searches open issues in the repository and asks the model whether any of them already covers the same problem
  3. Stops and reports the existing issue if it is a duplicate
  4. Otherwise pauses for human approval, then files the issue and returns its URL

Duplicate detection works across wording and across languages: a report written in Portuguese is correctly matched against an existing issue written in English.

How it is built

  • LangGraph for orchestration. The flow branches (duplicate vs. new) and pauses (human approval), which is what a graph buys over a linear chain.
  • Pydantic schemas for every model response. Field descriptions double as prompt instructions, and malformed output fails at the boundary instead of downstream.
  • Deterministic where it can be. Issue search and markdown rendering are plain code; the model is used for drafting and for judging whether two issues describe the same problem.
  • Provider-agnostic. LLM_PROVIDER switches between Groq, Google Gemini and any OpenAI-compatible endpoint, including a self-hosted vLLM instance.
  • Human in the loop. Execution is interrupted before writing to GitHub. Nothing is filed without explicit approval.

Requirements

  • Python 3.11+
  • A Groq API key (free tier, no card required) or another supported provider
  • A GitHub fine-grained token with Issues: Read and write on the target repository

Getting started

pip install -e ".[dev]"
cp .env.example .env    # add GROQ_API_KEY, GITHUB_TOKEN and GITHUB_REPO
sdlc-agent "the login page breaks when the email has capitals"

Known limitations

  • Duplicate search matches on shared keywords, with no stemming, synonyms or stopword filtering. Common words like "fix" or "error" can surface irrelevant candidates.
  • Checkpointing is in-memory, so a paused run does not survive a restart.
  • Graph state holds Pydantic objects directly, which makes the checkpointer serialise custom types.

Next

Jira support, semantic duplicate search using embeddings, and multi-repository configuration.