Skip to main content

Development Workflow Enforcement & Automation

Development Workflow

Separation of Duties: See Separation of Duties - Getting started guides document onboarding. They do NOT own agent manifests, execution, or infrastructure configuration. Enforcement & Automation

Last Updated: 2025-01-XX
Status: Production Ready

See Branch Naming Rules for strict branch naming enforcement.

Daily Workflow Options

Option 1: Docker Compose (Local)

cd $LLM_ROOT/kagent-demo/demo && docker-compose up -d curl http://localhost:3008/health # Agent Tracer curl http://localhost:3006/health # Agent Router curl http://localhost:3003/health # Agent Mesh

Option 2: DDEV (Drupal Platform)

cd $LLM_ROOT/demo_llm-platform ddev start ddev platform status open https://llm-platform.ddev.site

Option 3: OrbStack Kubernetes

kubectl apply -f deployment/orbstack/ kubectl get pods -n development open http://192.168.139.2:4000 # Agent Router open http://192.168.139.2:6006 # Phoenix

Option 4: LLMCLI Infrastructure

llmcli infra core # Core services llmcli infra ai # AI services llmcli infra all # Full platform llmcli infra status # Check status

Worktree-Only Workflow

Setup Script

#!/bin/bash # setup-worktree.sh ISSUE_ID=$1 ISSUE_TYPE=${2:-feature} ISSUE_TITLE=$(glab issue view $ISSUE_ID --json title -q .title | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g') BRANCH_NAME="${ISSUE_TYPE}/${ISSUE_ID}-${ISSUE_TITLE}" cd ~/Sites/LLM && git worktree add "worktrees/${BRANCH_NAME}" -b "${BRANCH_NAME}" main

Pre-commit Hook

#!/bin/bash REPO_ROOT=$(git rev-parse --show-toplevel) if [[ ! "$REPO_ROOT" =~ ~/Sites/.workingtrees/LLM ]]; then echo "Commits only in worktrees!" exit 1 fi BRANCH=$(git rev-parse --abbrev-ref HEAD) if [[ "$BRANCH" == "main" ]]; then echo "Protected branch: main" exit 1 fi

Merge Train Config

workflow: rules: - if: $CI_MERGE_REQUEST_EVENT_TYPE == "merge_train" - if: $CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" - if: $CI_COMMIT_BRANCH

Quality Gates

  • 80%+ coverage
  • Lint passing
  • TypeScript strict
  • No console.log

Closes #14