8e50049ba5
---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.
105 lines
2.2 KiB
TypeScript
105 lines
2.2 KiB
TypeScript
export type IdeationSource =
|
|
| "uncovered_requirement"
|
|
| "repeated_lesson"
|
|
| "low_confidence_decision"
|
|
| "escalation_pattern"
|
|
| "compound_pattern"
|
|
| "partial_requirement"
|
|
| "gap_in_coverage"
|
|
| "improvement_pattern"
|
|
| "architecture_drift"
|
|
| "verification_inversion"
|
|
| "spec_ambiguity"
|
|
| "spec_contradiction"
|
|
| "spec_missing"
|
|
| "external_signal"
|
|
| "cross_project_lesson"
|
|
| "chaos_scenario";
|
|
|
|
export type IdeationCategory =
|
|
| "security"
|
|
| "quality"
|
|
| "architecture"
|
|
| "coverage"
|
|
| "improvement"
|
|
| "spec"
|
|
| "chaos";
|
|
|
|
export type IdeationAction =
|
|
| "add_requirement"
|
|
| "update_architecture"
|
|
| "update_roadmap"
|
|
| "fix_documentation"
|
|
| "add_test"
|
|
| "add_security_pattern"
|
|
| "refactor"
|
|
| "new_milestone_phase";
|
|
|
|
export type IdeationTier = "mechanical" | "backend-enriched" | "cross-project";
|
|
|
|
export interface Idea {
|
|
id: string;
|
|
source: IdeationSource;
|
|
category: IdeationCategory;
|
|
title: string;
|
|
rationale: string;
|
|
confidence: number;
|
|
relatedReq?: string;
|
|
actions: IdeationAction[];
|
|
tier: IdeationTier;
|
|
}
|
|
|
|
export interface IdeationResult {
|
|
project: string;
|
|
milestone: string;
|
|
ideas: Idea[];
|
|
summary: IdeationSummary;
|
|
}
|
|
|
|
export interface IdeationSummary {
|
|
total: number;
|
|
accepted: number;
|
|
skipped: number;
|
|
by_category: Record<string, number>;
|
|
by_tier: Record<string, number>;
|
|
}
|
|
|
|
export interface IdeationConfig {
|
|
enabled: boolean;
|
|
categories: IdeationCategory[];
|
|
confidence_threshold: number;
|
|
max_ideas: number;
|
|
external_signals: {
|
|
npm_audit: boolean;
|
|
osv_advisories: boolean;
|
|
dependency_staleness: boolean;
|
|
};
|
|
cross_project: {
|
|
enabled: boolean;
|
|
similarity_weight: number;
|
|
};
|
|
chaos: {
|
|
enabled: boolean;
|
|
scenarios: string[];
|
|
};
|
|
}
|
|
|
|
export const DEFAULT_IDEATION_CONFIG: IdeationConfig = {
|
|
enabled: true,
|
|
categories: ["security", "quality", "architecture", "coverage", "improvement"],
|
|
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"],
|
|
},
|
|
}; |