Skip to content

v0.14.0 Release Notes

Release Date: 2026-06-28

Highlights

  • New capabilities package for composable validation and QA building blocks
  • New loops package for REAL/VEAL autonomous loop patterns
  • Go-specific capabilities for linting, testing, building, and formatting
  • Agents participating in loops receive automatic loop instructions

What's New

Capabilities Package

The new capabilities package provides composable building blocks for QA validation that can be converted to either Skills (human-guided) or ValidationArea Checks (autonomous):

import (
    "github.com/plexusone/assistantkit/capabilities/core"
    capgo "github.com/plexusone/assistantkit/capabilities/go"
)

// Get all Go QA capabilities
caps := capgo.QACapabilities()

// Convert to a ValidationArea for autonomous QA
area := caps.ToValidationArea("go-qa", "Go Quality Assurance")

// Or convert individual capabilities to Skills
lintSkill := capgo.GolangciLint().ToSkill()

Go Capabilities

Pre-built capabilities for Go development:

Capability Description
GolangciLint() Run golangci-lint with error handling guide
GoTest() Run tests with go test ./...
GoTestCoverage() Run tests with coverage reporting
GoTestRace() Run tests with race detector
GoBuild() Build with go build ./...
GoModTidy() Run go mod tidy
GoVet() Run go vet ./...
GoFmt() Check formatting with gofmt -l .

Loops Package

The new loops package provides support for autonomous loop patterns from multi-agent-spec:

  • REAL (Read Eval Act Loop) - Mission-driven loops for open-ended tasks
  • VEAL (Validate Eval Act Loop) - State-driven validation loops with validator + actor agents
import "github.com/plexusone/assistantkit/loops"

// Load loops from specs directory
loopSet, err := loops.LoadLoopSet("specs/loops")

// Get a specific loop
qaLoop, ok := loopSet.Get("qa-fix")

// Generate instructions for validator agent
validatorInstructions := loops.GenerateLoopInstructions(qaLoop, "validator")

// Generate instructions for actor agent
actorInstructions := loops.GenerateLoopInstructions(qaLoop, "actor")

Loop-Aware Agent Generation

The generate package now automatically enriches agents with loop participation instructions:

import "github.com/plexusone/assistantkit/generate"

result, err := generate.Generate("specs", "local", ".")
fmt.Printf("Loaded %d loops\n", result.LoopCount)
// Agents referenced in loops receive injected instructions

When a loop references an agent as validator or actor, the generated agent definition includes:

  • Loop participation section with role description
  • Validation checks table (for validators)
  • Issue addressing guidance (for actors)
  • Max attempts and escalation policy

LoopSet Collection

Manage multiple loops with filtering:

loopSet := loops.NewLoopSet()
loopSet.Add(qaLoop)
loopSet.Add(docsLoop)

// Get all VEAL loops (validation-driven)
vealLoops := loopSet.VEALLoops()

// Get all REAL loops (mission-driven)
realLoops := loopSet.REALLoops()

Full Changelog

Added

Capabilities:

  • capabilities/core package with canonical Capability type
  • capabilities/core.Capability.ToSkill() for converting to Skills
  • capabilities/core.Capability.ToCheck() for converting to ValidationArea Checks
  • capabilities/core.CapabilitySet for grouping related capabilities
  • capabilities/core.CapabilitySet.ToValidationArea() for creating QA validation areas
  • capabilities/go.GolangciLint() with error handling priority guide and common fixes
  • capabilities/go.GoTest(), GoTestCoverage(), GoTestRace() for testing
  • capabilities/go.GoBuild(), GoModTidy(), GoVet(), GoFmt() for build/format
  • capabilities/go.QACapabilities() returns all Go QA checks as a CapabilitySet
  • capabilities/go.LintCapabilities(), TestCapabilities(), BuildCapabilities() for grouped access
  • capabilities/go.QAValidationInstructions() returns instructions for Go QA agent

Loops:

  • loops/core package with Loop, LoopType, LoopCheck, LoopSet types
  • loops/core.GenerateLoopInstructions() for generating validator/actor instructions
  • loops/core.EnrichAgentWithLoop() for adding loop participation to agents
  • loops/core.GenerateCoordinatorInstructions() for loop orchestrator agents
  • loops/core.LoopSet collection with filtering by type (VEALLoops, REALLoops)
  • loops package public API re-exporting core types and functions
  • generate.loadLoops() for loading loop specs from specs/loops/
  • generate.enrichAgentsWithLoops() for injecting loop instructions into agents
  • Result.LoopCount and GenerateResult.LoopCount fields

Documentation

  • Package documentation in capabilities/doc.go explaining composable architecture

Dependencies

  • Upgraded multi-agent-spec v0.8.0 → v0.9.0 for loop schema support