CodeBuddy

GitLab Codebase QA Agent

Docker Compose Architecture
Scheduler Service
Supercronic
Cron scheduler
1
index-update
Weekly
Cron0 6 * * 1
GitLab APIfetch all projects
New or removed repos?compare with INDEX.md
Agent SDK
per repo
Index Update Skill
Analyze repo structure & dependencies One-line Description (50-80 chars)
MD INDEX.md
REPO DESCRIPTION BRANCH
bi/analyticsBI dashboard & reportingmain
bi/ml/servingModel inference gatewaymain
bi/data/etl-pipeETL jobs for data warehousemain
2
repo-sync
Daily
Cron0 8 * * *
GitLab APIfetch commit SHAs
Commit SHA changed?compare with sync-state.json
repos/* shallow clones
Slack Bot Service
CodeBuddy
Slack Bolt async app
SQuestion → Answer Flow
"Where is the auth logic?"@CodeBuddy · app_mention
Agent SDK
Model Opus Sonnet Haiku
Allowed Tools Read Glob Grep Skill (read-only)
Agentic Loop
Claude
Evaluates
tool calls tool result
Tool
Execution
Codebase QA Skill
Read INDEX.md to locate target repos → search code across matched repos → compose answer with file paths and code snippets
Slack Replythread reply · USD cost
Shared Docker Volume — /workspace
File Purpose Data Flow
INDEX.md Repo registry & descriptions
index-update Slack Bot Dashboard
repos/* Shallow clones (read-only code)
repo-sync Slack Bot
sync-state.json Last-synced commit SHAs
repo-sync (internal)
sync-log.jsonl Sync run history & results
repo-sync Dashboard
index-log.jsonl Index generation history
index-update Dashboard
Dashboard Service
Monitoring Dashboard
Nginx static site
Sync History
Timeline of repo-sync runs, success/failure, duration
Repo Stats
Total repos tracked, last index update, coverage
Anomaly Detection
Sync failures, missing repos, stale clones alerts
Trigger
AI-Powered
Output
Slack Interaction
Processing Step
Shared Volume