feat(P01): add ideation engine + ciagent ideate command — IDEATE-01,02,03,17 + MULTI-01
---ci---
phase: 1
milestone: v0.10
status: execute
decisions:
- id: D-080
decision: Three-tier ideation (mechanical, backend-enriched, cross-project)
rationale: Mechanical tier always produces output without backend
confidence: 0.92
- id: D-089
decision: No separate codebase map command
rationale: Git-native + .ciagent/ covers mapping; avoids tree-sitter dep
confidence: 0.88
requirements:
covered:
- IDEATE-01
- IDEATE-02
- IDEATE-03
- IDEATE-17
- MULTI-01
---/ci---
Add IdeationEngine core module with 15 signal collectors:
- Uncovered/partial requirements from REQUIREMENTS.md
- Coverage gaps (documented but unimplemented agents)
- Repeated lessons from git history
- Low-confidence decisions from ---ci--- blocks
- Escalation patterns from git history
- Compound solution patterns
- Architecture drift (ARCHITECTURE.md vs src/)
- Verification inversion (missing test files)
- Improvement patterns (cross-referencing lessons + requirements)
- Spec ambiguity (should/could/might patterns)
- Spec missing (common requirement categories)
- Cascade impact (--affected from git diff)
- External signals (npm audit, dependency staleness)
- Cross-project lesson mining
Add ciagent ideate CLI command with flags:
--category, --affected, --spec, --external, --cross-project, --output
Add active_projects to CIAgentConfig (backwards compatible with active_project).
Add IDEATE pipeline stage between RESEARCH and PLAN.
Update IdeationAgent to delegate to IdeationEngine.
533 tests passing.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { BackendConfigSection } from "../backends/types.js";
|
||||
import { IdeationConfig, IdeationCategory } from "./ideation.js";
|
||||
|
||||
export type AutonomyLevel = "full" | "supervised" | "guided";
|
||||
|
||||
@@ -82,6 +83,7 @@ export interface ProjectEntry {
|
||||
export interface CIAgentConfig {
|
||||
projects: ProjectEntry[];
|
||||
active_project: string;
|
||||
active_projects: string[];
|
||||
autonomy: AutonomyConfig;
|
||||
model_profile: ModelProfile;
|
||||
parallelization: ParallelizationConfig;
|
||||
@@ -90,11 +92,13 @@ export interface CIAgentConfig {
|
||||
git: GitConfig;
|
||||
backend: BackendConfigSection;
|
||||
gitea?: GiteaConfig;
|
||||
ideation?: IdeationConfig;
|
||||
}
|
||||
|
||||
export const DEFAULT_CIAGENT_CONFIG: CIAgentConfig = {
|
||||
projects: [],
|
||||
active_project: "",
|
||||
active_projects: [],
|
||||
autonomy: {
|
||||
level: "full",
|
||||
escalation_hooks: ["deploy", "delete_data", "merge_to_main"],
|
||||
@@ -165,4 +169,23 @@ export const DEFAULT_CIAGENT_CONFIG: CIAgentConfig = {
|
||||
owner: "",
|
||||
repo: "",
|
||||
},
|
||||
ideation: {
|
||||
enabled: true,
|
||||
categories: ["security", "quality", "architecture", "coverage", "improvement"] as IdeationCategory[],
|
||||
confidence_threshold: 0.6,
|
||||
max_ideas: 20,
|
||||
external_signals: {
|
||||
npm_audit: true,
|
||||
osv_advisories: true,
|
||||
dependency_staleness: true,
|
||||
},
|
||||
cross_project: {
|
||||
enabled: false,
|
||||
similarity_weight: 0.5,
|
||||
},
|
||||
chaos: {
|
||||
enabled: true,
|
||||
scenarios: ["backend_unavailable", "requirement_change", "test_coverage_drop"],
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user