diff --git a/.kilo/KILO_SPEC.md b/.kilo/KILO_SPEC.md index 0b0f1db..2f5e469 100644 --- a/.kilo/KILO_SPEC.md +++ b/.kilo/KILO_SPEC.md @@ -433,35 +433,40 @@ Provider availability depends on configuration. Common providers include: | Agent | Role | Model | |-------|------|-------| -| `@RequirementRefiner` | Converts vague ideas and bug reports into strict User Stories with acceptance criteria checklists. | ollama-cloud/kimi-k2-thinking | -| `@HistoryMiner` | Analyzes git history to find duplicates and past solutions, preventing regression and duplicate work. | ollama-cloud/nemotron-3-super | -| `@SystemAnalyst` | Designs technical specifications, data schemas, and API contracts before implementation. | ollama-cloud/nemotron-3-super | -| `@SdetEngineer` | Writes tests following TDD methodology. | ollama-cloud/qwen3-coder:480b | -| `@LeadDeveloper` | Primary code writer for backend and core logic. | ollama-cloud/nemotron-3-super | -| `@FrontendDeveloper` | Handles UI implementation with multimodal capabilities. | ollama-cloud/kimi-k2.5 | -| `@BackendDeveloper` | Backend specialist for Node. | ollama-cloud/deepseek-v3.2 | -| `@GoDeveloper` | Go backend specialist for Gin, Echo, APIs, and database integration. | ollama-cloud/qwen3-coder:480b | +| `@RequirementRefiner` | Converts vague ideas and bug reports into strict User Stories with acceptance criteria checklists. | ollama-cloud/kimi-k2.6 | +| `@HistoryMiner` | Analyzes git history to find duplicates and past solutions, preventing regression and duplicate work. | ollama-cloud/kimi-k2.6 | +| `@SystemAnalyst` | Designs technical specifications, data schemas, and API contracts before implementation. | ollama-cloud/glm-5.1 | +| `@SdetEngineer` | Writes tests following TDD methodology. | ollama-cloud/kimi-k2.6 | +| `@LeadDeveloper` | Primary code writer for backend and core logic. | ollama-cloud/kimi-k2.6 | +| `@FrontendDeveloper` | Handles UI implementation with multimodal capabilities. | ollama-cloud/kimi-k2.6 | +| `@BackendDeveloper` | Backend specialist for Node. | ollama-cloud/kimi-k2.6 | +| `@GoDeveloper` | Go backend specialist for Gin, Echo, APIs, and database integration. | ollama-cloud/deepseek-v4-pro-max | | `@DevopsEngineer` | DevOps specialist for Docker, Kubernetes, CI/CD pipeline automation, and infrastructure management. | ollama-cloud/kimi-k2.6 | -| `@CodeSkeptic` | Adversarial code reviewer. | ollama-cloud/minimax-m2.5 | -| `@TheFixer` | Iteratively fixes bugs based on specific error reports and test failures. | ollama-cloud/minimax-m2.5 | -| `@PerformanceEngineer` | Reviews code for performance issues. | ollama-cloud/nemotron-3-super | -| `@SecurityAuditor` | Scans for security vulnerabilities, OWASP Top 10, dependency CVEs, and hardcoded secrets. | ollama-cloud/nemotron-3-super | -| `@VisualTester` | Visual regression testing agent that compares screenshots and detects UI differences using pixelmatch and image diff. | ollama-cloud/qwen3-coder:480b | +| `@CodeSkeptic` | Adversarial code reviewer. | ollama-cloud/kimi-k2.6 | +| `@TheFixer` | Iteratively fixes bugs based on specific error reports and test failures. | ollama-cloud/kimi-k2.6 | +| `@PerformanceEngineer` | Reviews code for performance issues. | ollama-cloud/deepseek-v4-pro-max | +| `@SecurityAuditor` | Scans for security vulnerabilities, OWASP Top 10, dependency CVEs, and hardcoded secrets. | ollama-cloud/deepseek-v4-pro-max | +| `@VisualTester` | Visual regression testing agent that compares screenshots and detects UI differences using pixelmatch and image diff. | ollama-cloud/kimi-k2.6 | | `@Orchestrator` | Main dispatcher. | ollama-cloud/kimi-k2.6 | -| `@ReleaseManager` | Manages git operations, semantic versioning, branching, and deployments. | ollama-cloud/devstral-2:123b | -| `@Evaluator` | Scores agent effectiveness after task completion for continuous improvement. | ollama-cloud/nemotron-3-super | -| `@PromptOptimizer` | Improves agent system prompts based on performance failures. | ollama-cloud/glm-5.1 | -| `@ProductOwner` | Manages issue checklists, status labels, tracks progress and coordinates with human users. | ollama-cloud/glm-5.1 | +| `@ReleaseManager` | Manages git operations, semantic versioning, branching, and deployments. | ollama-cloud/glm-5.1 | +| `@Evaluator` | Scores agent effectiveness after task completion for continuous improvement. | ollama-cloud/kimi-k2.6 | +| `@PromptOptimizer` | Improves agent system prompts based on performance failures. | ollama-cloud/kimi-k2.6 | +| `@ProductOwner` | Manages issue checklists, status labels, tracks progress and coordinates with human users. | ollama-cloud/kimi-k2.6 | | `@AgentArchitect` | Creates, modifies, and reviews new agents, workflows, and skills based on capability gap analysis. | ollama-cloud/kimi-k2.6 | -| `@CapabilityAnalyst` | Analyzes task requirements against available agents, workflows, and skills. | ollama-cloud/nemotron-3-super | -| `@WorkflowArchitect` | Creates and maintains workflow definitions with complete architecture, Gitea integration, and quality gates. | ollama-cloud/gpt-oss:120b | -| `@MarkdownValidator` | Validates and corrects Markdown descriptions for Gitea issues. | ollama-cloud/nemotron-3-nano:30b | +| `@CapabilityAnalyst` | Analyzes task requirements against available agents, workflows, and skills. | ollama-cloud/glm-5.1 | +| `@WorkflowArchitect` | Creates and maintains workflow definitions with complete architecture, Gitea integration, and quality gates. | ollama-cloud/kimi-k2.6 | +| `@MarkdownValidator` | Validates and corrects Markdown descriptions for Gitea issues. | ollama-cloud/kimi-k2.6 | | `@BrowserAutomation` | Browser automation agent using Playwright MCP for E2E testing, form filling, navigation, and web interaction. | ollama-cloud/kimi-k2.6 | -| `@Planner` | Advanced task planner using Chain of Thought, Tree of Thoughts, and Plan-Execute-Reflect. | ollama-cloud/nemotron-3-super | -| `@Reflector` | Self-reflection agent using Reflexion pattern - learns from mistakes. | ollama-cloud/nemotron-3-super | -| `@MemoryManager` | Manages agent memory systems - short-term (context), long-term (vector store), and episodic (experiences). | ollama-cloud/nemotron-3-super | -| `@IncidentResponder` | Server incident response, live forensics, malware removal, hardening, and SSH-based cleanup. | ollama-cloud/kimi-k2.6 | -| `@WorkflowCrossChecker` | Pre-flight inter-agent conflict and architecture validation; asks uncomfortable questions before expensive work. | ollama-cloud/deepseek-v4-pro-max | +| `@Planner` | Advanced task planner using Chain of Thought, Tree of Thoughts, and Plan-Execute-Reflect. | ollama-cloud/deepseek-v4-pro-max | +| `@Reflector` | Self-reflection agent using Reflexion pattern - learns from mistakes. | ollama-cloud/deepseek-v4-pro-max | +| `@MemoryManager` | Manages agent memory systems - short-term (context), long-term (vector store), and episodic (experiences). | ollama-cloud/deepseek-v4-pro-max | +| `@ArchitectIndexer` | Indexes and maps project codebase architecture into . | ollama-cloud/kimi-k2.6 | +| `@FlutterDeveloper` | Flutter mobile specialist for cross-platform apps, state management, and UI components. | ollama-cloud/kimi-k2.6 | +| `@PhpDeveloper` | PHP specialist for Laravel, Symfony, WordPress, and modular architecture. | ollama-cloud/kimi-k2.6 | +| `@PipelineJudge` | Automated pipeline judge. | ollama-cloud/glm-5.1 | +| `@PythonDeveloper` | Python specialist for Django, FastAPI, data processing, and ML pipelines. | ollama-cloud/kimi-k2.6 | +| `@IncidentResponder` | Server incident response and system hardening specialist. | ollama-cloud/kimi-k2.6 | +| `@WorkflowCrossChecker` | Workflow cross-checker and process inspector. | ollama-cloud/kimi-k2.6 | diff --git a/AGENTS.md b/AGENTS.md index c59da98..2bbafe2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -52,6 +52,11 @@ These agents are invoked automatically by `/pipeline` or manually via `@mention` | `@BackendDeveloper` | Backend specialist for Node | When backend needed | | `@GoDeveloper` | Go backend specialist for Gin, Echo, APIs, and database integration | When Go backend needed | | `@DevopsEngineer` | DevOps specialist for Docker, Kubernetes, CI/CD pipeline automation, and infrastructure management | When deployment/infra needed | +| `@ArchitectIndexer` | Indexes and maps project codebase architecture into | Manual invocation | +| `@FlutterDeveloper` | Flutter mobile specialist for cross-platform apps, state management, and UI components | Manual invocation | +| `@PhpDeveloper` | PHP specialist for Laravel, Symfony, WordPress, and modular architecture | Manual invocation | +| `@PythonDeveloper` | Python specialist for Django, FastAPI, data processing, and ML pipelines | Manual invocation | +| `@IncidentResponder` | Server incident response and system hardening specialist | Manual invocation | ### Quality Assurance | Agent | Role | When Invoked | @@ -86,8 +91,9 @@ These agents are invoked automatically by `/pipeline` or manually via `@mention` | `@AgentArchitect` | Creates, modifies, and reviews new agents, workflows, and skills based on capability gap analysis | When gaps identified | | `@CapabilityAnalyst` | Analyzes task requirements against available agents, workflows, and skills | When starting new task | | `@WorkflowArchitect` | Creates and maintains workflow definitions with complete architecture, Gitea integration, and quality gates | New workflow needed | -| `@WorkflowCrossChecker` | Pre-flight inter-agent conflict and architecture validation; asks uncomfortable questions before expensive work | Before parallel spawn or state transitions | | `@MarkdownValidator` | Validates and corrects Markdown descriptions for Gitea issues | Before issue creation | +| `@PipelineJudge` | Automated pipeline judge | Manual invocation | +| `@WorkflowCrossChecker` | Workflow cross-checker and process inspector | Manual invocation | ### Security & Incident Response | Agent | Role | When Invoked | diff --git a/agent-evolution/index.html b/agent-evolution/index.html index e1ba105..782cf52 100644 --- a/agent-evolution/index.html +++ b/agent-evolution/index.html @@ -983,6 +983,7 @@ +
No history yet
'; - // Recommended agents (use inline recs if available) - let recAgents = []; - if (INLINE_RECOMMENDATIONS && INLINE_RECOMMENDATIONS.length > 0) { - recAgents = INLINE_RECOMMENDATIONS.slice(0, 6).map(r => ({ agent: r.agent, current: { recommendations: [{ priority: r.impact, target: r.source_of_truth_model || r.recommended_model, reason: r.rationale, score_before: r.score_before, score_after: r.score_after, score_delta: r.score_delta }], model: r.current_model_in_agent_versions || r.current_model, category: 'Core Dev', description: '', benchmark: { fit_score: r.score_after || 0 } } })); - } else { - recAgents = Object.entries(agentData.agents) - .filter(([_, a]) => a.current.recommendations && a.current.recommendations.length > 0) - .slice(0, 6); - } + // Recommended agents from live data + const recAgents = Object.entries(agentData.agents || {}) + .filter(([_, a]) => (a.current?.recommendations || []).length > 0) + .slice(0, 6); document.getElementById('recCount').textContent = recAgents.length; - if (INLINE_RECOMMENDATIONS && INLINE_RECOMMENDATIONS.length > 0) { - document.getElementById('recAgents').innerHTML = recAgents.map((r, idx) => renderRecCard({ - agent: r.agent, - current_model: r.current?.model || '', - recommended_model: r.current?.recommendations?.[0]?.target || '', - impact: r.current?.recommendations?.[0]?.priority?.toLowerCase() || 'medium', - score_before: r.current?.recommendations?.[0]?.score_before || 0, - score_after: r.current?.recommendations?.[0]?.score_after || 0, - score_delta: r.current?.recommendations?.[0]?.score_delta || 0, - rationale: r.current?.recommendations?.[0]?.reason || '' - }, idx)).join(''); - } else { - document.getElementById('recAgents').innerHTML = recAgents.map(([name, agent]) => - renderAgentCard(name, agent, true) - ).join(''); - } + document.getElementById('recAgents').innerHTML = recAgents.map(([name, agent]) => + renderAgentCard(name, agent, true) + ).join(''); } // Render All Agents @@ -1327,24 +1310,19 @@ function renderTimeline() { // Render Recommendations (v3 style with swap visuals) function renderRecommendations() { - // Use inline recommendations or fall back to agent data - let recs = []; - if (INLINE_RECOMMENDATIONS && INLINE_RECOMMENDATIONS.length > 0) { - recs = INLINE_RECOMMENDATIONS; - } else { - recs = Object.entries(agentData.agents) - .filter(([_, a]) => a.current.recommendations && a.current.recommendations.length > 0) - .map(([name, agent]) => ({ - agent: name, - current_model: agent.current.model, - recommended_model: agent.current.recommendations[0]?.target, - impact: agent.current.recommendations[0]?.priority?.toLowerCase() || 'medium', - score_before: agent.current.recommendations[0]?.score_before || 0, - score_after: agent.current.recommendations[0]?.score_after || 0, - score_delta: agent.current.recommendations[0]?.score_delta || 0, - rationale: agent.current.recommendations[0]?.reason || '' - })); - } + const recs = Object.entries(agentData.agents || {}) + .filter(([_, a]) => (a.current?.recommendations || []).length > 0) + .map(([name, agent]) => ({ + agent: name, + current_model: agent.current?.model, + recommended_model: agent.current?.recommendations?.[0]?.target, + impact: agent.current?.recommendations?.[0]?.priority?.toLowerCase() || 'medium', + score_before: agent.current?.recommendations?.[0]?.score_before || 0, + score_after: agent.current?.recommendations?.[0]?.score_after || 0, + score_delta: agent.current?.recommendations?.[0]?.score_delta || 0, + rationale: agent.current?.recommendations?.[0]?.reason || '', + current_model_in_agent_versions: agent.current?.model + })); if (recs.length === 0) { document.getElementById('allRecommendations').innerHTML = 'No recommendations available
'; @@ -1493,7 +1471,7 @@ function renderHeatmap() { h += `No prompt change history found
'; + } + + let html = 'No history yet
'; - // Recommended agents (use inline recs if available) - let recAgents = []; - if (INLINE_RECOMMENDATIONS && INLINE_RECOMMENDATIONS.length > 0) { - recAgents = INLINE_RECOMMENDATIONS.slice(0, 6).map(r => ({ agent: r.agent, current: { recommendations: [{ priority: r.impact, target: r.source_of_truth_model || r.recommended_model, reason: r.rationale, score_before: r.score_before, score_after: r.score_after, score_delta: r.score_delta }], model: r.current_model_in_agent_versions || r.current_model, category: 'Core Dev', description: '', benchmark: { fit_score: r.score_after || 0 } } })); - } else { - recAgents = Object.entries(agentData.agents) - .filter(([_, a]) => a.current.recommendations && a.current.recommendations.length > 0) - .slice(0, 6); - } + // Recommended agents from live data + const recAgents = Object.entries(agentData.agents || {}) + .filter(([_, a]) => (a.current?.recommendations || []).length > 0) + .slice(0, 6); document.getElementById('recCount').textContent = recAgents.length; - if (INLINE_RECOMMENDATIONS && INLINE_RECOMMENDATIONS.length > 0) { - document.getElementById('recAgents').innerHTML = recAgents.map((r, idx) => renderRecCard({ - agent: r.agent, - current_model: r.current?.model || '', - recommended_model: r.current?.recommendations?.[0]?.target || '', - impact: r.current?.recommendations?.[0]?.priority?.toLowerCase() || 'medium', - score_before: r.current?.recommendations?.[0]?.score_before || 0, - score_after: r.current?.recommendations?.[0]?.score_after || 0, - score_delta: r.current?.recommendations?.[0]?.score_delta || 0, - rationale: r.current?.recommendations?.[0]?.reason || '' - }, idx)).join(''); - } else { - document.getElementById('recAgents').innerHTML = recAgents.map(([name, agent]) => - renderAgentCard(name, agent, true) - ).join(''); - } + document.getElementById('recAgents').innerHTML = recAgents.map(([name, agent]) => + renderAgentCard(name, agent, true) + ).join(''); } // Render All Agents @@ -6068,7 +6051,7 @@ function renderHeatmap() { h += `No prompt change history found
'; + } + + let html = '