feat: implement CI (Continuous Intelligence) autonomous engineering harness
Implements the full PRD for CI - a fully autonomous AI-driven software engineering harness derived from Learnship's architecture. Core components: - CI Orchestrator agent with autonomous pipeline (SPECIFY → CLARIFY → RESEARCH → PLAN → EXECUTE → VERIFY → COMPLETE) - Decision Engine with confidence thresholds (high/medium/low) - Clarify Phase with question budget and default acceptance - Escalation Protocol with timeout auto-proceed - Audit Trail system (.ci/audit/) for post-hoc review - Error Recovery with retry, plan revision, and rollback 18 agents (all Learnship agents + Orchestrator): - Autonomous behavioral modifications per PRD §7.1 - Agent registry with factory pattern 11 CLI commands: - ci init, ci run, ci quick, ci debug, ci verify - ci review, ci status, ci audit, ci clarify - ci rollback, ci ship 4-layer verification system: - Structural, Behavioral, Security, Code Quality 3 autonomy levels: full, supervised, guided Compatible with Learnship artifact schemas (.planning/)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
export interface AgentResult {
|
||||
success: boolean;
|
||||
output: string;
|
||||
artifacts_created: string[] | number;
|
||||
decisions: number;
|
||||
escalations: number;
|
||||
duration_ms: number;
|
||||
error?: string;
|
||||
}
|
||||
|
||||
export interface AgentContext {
|
||||
project_path: string;
|
||||
phase: number;
|
||||
stage: string;
|
||||
specification: string;
|
||||
config_path: string;
|
||||
}
|
||||
|
||||
export abstract class BaseAgent {
|
||||
abstract readonly name: string;
|
||||
abstract readonly description: string;
|
||||
|
||||
abstract execute(context: AgentContext): Promise<AgentResult>;
|
||||
|
||||
protected log(message: string): void {
|
||||
console.log(`[${this.name}] ${message}`);
|
||||
}
|
||||
|
||||
protected warn(message: string): void {
|
||||
console.warn(`[${this.name}] ⚠ ${message}`);
|
||||
}
|
||||
|
||||
protected error(message: string): void {
|
||||
console.error(`[${this.name}] ✗ ${message}`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user