Showing posts with label bedrock. Show all posts
Showing posts with label bedrock. Show all posts

Tuesday, 28 April 2026

Autonomous SDLC Platform — AI-powered

Autonomous SDLC Platform Architecture

Tool Architecture

Autonomous SDLC Platform — AI-powered requirement analysis, solution proposal generation, intelligent code generation, and end-to-end delivery pipeline orchestration.

System Architecture Overview

Spring Boot monolith orchestrating AWS AI services, Git providers, and notification channels.

Browser (Thymeleaf + HTMX) Bootstrap 5 · Mermaid.js · SSE Spring Boot 3.3.5 · Java 21 Controllers (REST + MVC) RequirementController · AdminController 9 Services Proposal · CodeGen · RepoAnalysis 10 Application Events Async · ThreadPool(4/8) JPA + Flyway (V1–V13) 8 Entities · Spring Data Repositories JGit 6.10 + OkHttp 4.12 GitHub · Bitbucket · Clone · Push · PR SseEmitter Pipeline Streaming · Real-time status updates to browser H2 Database File: ./data/XXXXX Console: /h2-console ☁ AWS (eu-west-1) Amazon Bedrock Primary: nova-pro-v1:0 Fallback: nova-lite-v1:0 Temp: 0.2 · Max: 4096 tokens Bedrock Knowledge Base KB: XXXXXX (RAG) Titan Embeddings v2 DataSource: XXXXXX Amazon S3 XXXXX-repo-eu-XXXXXXX Prefix: repos/ 20 parallel upload threads OpenSearch Serverless Vector index for RAG KB backend store AWS STS + SSO Profile: PowerUserAccess-XXXXXXXXX GitHub · Bitbucket REST API · Clone · Push · PR Creation MS Teams Webhook notifications

☕ Runtime

Java 21 LTS on Spring Boot 3.3.5. Embedded Tomcat, Spring MVC, Spring Data JPA, Flyway migrations, async event bus.

java 21 spring boot 3.3.5

🤖 AI Engine

Amazon Bedrock with Nova Pro v1 (primary) and Nova Lite v1 (fallback). 5 prompt templates for analysis, options, cost estimation, code generation, and plan generation.

bedrock nova-pro

📚 RAG Pipeline

Bedrock Knowledge Base (XXXXXXX) backed by OpenSearch Serverless vector index. Titan Embeddings v2 for semantic code search.

RAG titan embeddings

🔀 Git Integration

JGit 6.10 for clone/commit/push. OkHttp 4.12 for GitHub & Bitbucket REST APIs. Auto PR creation with generated code.

jgit github bitbucket

💾 Database

H2 in file mode (./data/XXXXX) with Flyway migrations V1–V13. 8 JPA entities. Web console at /h2-console.

h2 flyway

🖥️ Frontend

Thymeleaf server-rendered templates. Bootstrap 5 UI, HTMX for dynamic updates, Mermaid.js for diagrams, Prism.js for syntax highlighting, SSE for live pipeline streaming.

thymeleaf htmx sse

Workflow Pipeline 18 States

End-to-end lifecycle from requirement submission to deployed code with Pull Request.

SUBMITTED ANALYZING_REQUIREMENT Bedrock: requirement-analysis.txt ANALYSIS_COMPLETE GENERATING_OPTIONS Bedrock: option-generation.txt OPTIONS_READY OPTION_SELECTED User picks 1 of 3 options ESTIMATING_COST Bedrock: cost-estimation.txt ⏳ PENDING_APPROVAL Admin review required ✓ APPROVED PLAN_GENERATION Bedrock: plan-generation.txt CLONING_REPO JGit clone + S3 upload INGESTING_TO_KB S3 → Knowledge Base sync 🧠 GENERATING_CODE Bedrock + RAG → Code CODE_GENERATED CREATING_PR Push branch + open PR ✅ COMPLETED PR ready for review Error & Terminal States REJECTED ANALYSIS_FAILED GENERATION_FAILED CODE_GEN_FAILED PR_FAILED CANCELLED

Status Transition Table

FromToTriggerService
SUBMITTEDANALYZING_REQUIREMENTAuto (on submit)RequirementService
ANALYZING_REQUIREMENTANALYSIS_COMPLETEBedrock response parsedProposalService
ANALYSIS_COMPLETEGENERATING_OPTIONSAuto (event-driven)ProposalService
GENERATING_OPTIONSOPTIONS_READY3 options storedProposalService
OPTIONS_READYOPTION_SELECTEDUser selects optionRequirementController
OPTION_SELECTEDESTIMATING_COSTAuto (event-driven)CostEstimationService
ESTIMATING_COSTPENDING_APPROVALCost estimate savedCostEstimationService
PENDING_APPROVALAPPROVEDAdmin approvalApprovalService
PENDING_APPROVALREJECTEDAdmin rejectionApprovalService
APPROVEDPLAN_GENERATIONAuto or manual triggerCodeGenerationService
PLAN_GENERATIONCLONING_REPOPlan generatedCodeGenerationService
CLONING_REPOINGESTING_TO_KBRepo cloned + S3 uploadedGitService + S3
INGESTING_TO_KBGENERATING_CODEKB ingestion completeKnowledgeBaseService
GENERATING_CODECODE_GENERATEDAll files generatedCodeGenerationService
CODE_GENERATEDCREATING_PRAutoGitService
CREATING_PRCOMPLETEDPR created successfullyGitService

Data Model 8 Entities

JPA entities with Flyway-managed schema (V1–V13). H2 file-mode database.

Requirement id : Long (PK) title : String description : String(5000) status : RequirementStatus (enum) priority : String repositoryUrl : String branch : String selectedOptionId : Long solutionType : String analysisResult : String(10000) createdAt / updatedAt : LocalDateTime submittedBy / platform : String pullRequestUrl : String SolutionOption id : Long (PK) requirement_id : Long (FK) optionNumber / name : Int / String description : String(5000) pros / cons : String(3000) estimatedEffort / complexity : String solutionType : String architectureDiagramMermaid : String(10000) dataFlowDiagramMermaid : String(10000) codeSnippetsJson / codeChangesJson : String(20000) 1:N CostEstimate id : Long (PK) requirement_id : Long (FK) estimatedHours : Double estimatedCost : Double breakdown : String(5000) assumptions : String(3000) confidence : String createdAt : LocalDateTime 1:1 ApprovalRecord id : Long (PK) requirement_id : Long (FK) approvedBy : String decision : String (APPROVED|REJECTED) comments : String(3000) approvedAt : LocalDateTime estimatedCost : String GeneratedCode id : Long (PK) requirement_id : Long (FK) filePath : String content : String(100000) language : String status : String generatedAt : LocalDateTime AuditLog id : Long (PK) requirementId : Long action : String details : String(5000) performedBy : String timestamp : LocalDateTime Notification id, requirementId, type, channel, message recipientUrl, sentAt, status ImplementationPlan id, requirementId, planContent(50000) generatedAt, status

Event-Driven Architecture 10 Events

Spring ApplicationEvents with @Async processing on ThreadPoolTaskExecutor (core=4, max=8).

Spring Event Bus Publishers RequirementService ProposalService CostEstimationService ApprovalService CodeGenerationService GitService Subscribers ProposalService CostEstimationService ApprovalService (auto) CodeGenerationService NotificationService AuditService All 10 Events RequirementSubmittedEvent AnalysisCompletedEvent OptionsGeneratedEvent OptionSelectedEvent CostEstimationDoneEvent ApprovalDecisionEvent PlanGeneratedEvent CodeGenerationDoneEvent PullRequestCreatedEvent RepoClonedEvent

AWS Services eu-west-1

All AWS services used, their configuration IDs, and how they connect.

🧠 Amazon Bedrock

Primary: eu.amazon.nova-pro-v1:0
Fallback: eu.amazon.nova-lite-v1:0
Config: temp=0.2, maxTokens=4096, topP=0.9
Used by: RequirementAnalysis, OptionGeneration, CostEstimation, PlanGeneration, CodeGeneration

5 prompt templates

📚 Bedrock Knowledge Base

KB ID: XXXXXXX
DataSource: XXXXXXX
Embeddings: Titan Embeddings v2
Backend: OpenSearch Serverless vector index
RAG: All 6 prompt templates enriched with KB context
Filtering: Metadata-scoped retrieval per requirement

rag vector search cross-req learning

📦 Amazon S3

Bucket: XXXX-repo-eu-XXXXXXXXX
Prefix: repos/
Upload: 20 parallel threads
Purpose: Cloned repo storage → KB data source sync

parallel upload

🔐 AWS STS + SSO

Profile: PowerUserAccess-XXXXXXXXXXX
Region: eu-west-1
Auth chain: SSO → STS AssumeRole → Temporary credentials

iam

Prompt Templates

FileUsed ByPurpose
requirement-analysis.txtProposalServiceAnalyze requirement with RAG context, classify solution type, extract key entities
option-generation.txtProposalServiceGenerate 3 options with Mermaid diagrams, code snippets, RAG-enriched context
code-generation.txtCodeGenerationServiceGenerate code files using RAG-retrieved codebase patterns and conventions
self-review.txtCodeGenerationServiceAI code review with RAG context for consistency validation
mvp-breakdown.txtMvpBreakdownServiceGenerate MVP tree with RAG-informed story points and task granularity
test-generation.txtCodeGenerationServiceGenerate tests matching existing test patterns via RAG retrieval

Knowledge Base & RAG 8 Features

Retrieval-Augmented Generation — enriching every AI prompt with real codebase context from AWS Bedrock Knowledge Base.

Knowledge Base — RAG Data Flow DATA INGESTION 🔗 Git Repository clone 📁 Local Clone upload 📦 S3 Bucket repos/ + learnings/ ingest 🧠 Bedrock Knowledge Base Titan Embeddings v2 · OpenSearch k-NN 📄 RAG Chunks RAG-ENRICHED PROMPTS (6 TEMPLATES) 🔍 Requirement Analysis ProposalService R 💡 Option Generation ProposalService R ⚡ Code Generation CodeGenerationService R 🔎 Self Review CodeGenerationService R 📋 MVP Breakdown MvpBreakdownService R 🧪 Test Generation CodeGenerationService R R = RAG Context Injected CROSS-REQUIREMENT LEARNING LOOP Completed Requirement PRCreatedEvent triggers 🔄 KnowledgeFeedbackService Build Markdown summary → upload to S3 📦 S3: learnings/ outcome.md per requirement re-sync METADATA FILTERING & ADMINISTRATION 🎯 Metadata Filtering x-amz-bedrock-kb-XXXXXXXX → scope per REQ-ID 📊 KB Admin Dashboard /kb-admin · sync trigger · test retrieval · status 🔌 KB REST API GET /api/kb/status · POST /api/kb/sync · GET /api/kb/retrieve

All 8 KB Enhancements — Detailed Breakdown

RAG Enabled by Default

Config: XXX.rag.enabled flipped from falsetrue

The entire RAG pipeline — S3 upload → KB ingestion → vector retrieval → prompt injection — was already implemented but gated behind a disabled feature flag. Enabling it activates the full pipeline: every new requirement now has its cloned repository uploaded to S3, synced to KB, and used for vector-searched code retrieval during AI analysis.

File: application.ymlXXXX.rag.enabled: ${XXXX_RAG_ENABLED:true}

configuration

RAG in Code Generation

The code-generation.txt prompt now includes a {{RAG_CONTEXT}} section. Before generating code, the system retrieves existing code patterns, import styles, error handling conventions, and file structures from the KB. This ensures generated code follows the project's existing conventions rather than generic best practices.

Flow: KB retrieve → inject as "Relevant Code from Knowledge Base" → Bedrock generates consistent code

Files: code-generation.txt, BedrockPromptBuilder.buildCodeGenerationPrompt(), CodeGenerationService

code gen prompt enrichment

RAG in MVP Breakdown

The mvp-breakdown.txt prompt is now enriched with retrieved code from the KB. When generating the MVP tree (user stories → tasks → subtasks), the AI can see the actual codebase complexity, which results in more accurate story point estimates, better task-to-file mapping, and correct identification of affected files.

Flow: KnowledgeBaseService.retrieveAsContext() → inject into mvp-breakdown prompt → more accurate planning

Files: mvp-breakdown.txt, BedrockPromptBuilder.buildMvpBreakdownPrompt(), MvpBreakdownService

planning story points

RAG in Test Generation

The test-generation.txt prompt now receives codebase context via RAG. The AI retrieves existing test files to learn the project's test framework choice (JUnit 5, Mockito, etc.), naming conventions (shouldDoX_whenY), assertion styles, and mock patterns. Generated tests then match the project's existing test suite.

Flow: Retrieve existing test files via KB → inject test patterns → Bedrock generates consistent tests

Files: test-generation.txt, BedrockPromptBuilder.buildTestGenerationPrompt()

testing consistency

RAG in Self-Review

The self-review.txt prompt is enriched with real codebase patterns retrieved from the KB. When the AI reviews its own generated code, it can now compare against the actual project's patterns — catching inconsistencies like different error handling approaches, wrong import styles, or missing patterns that other files in the project use.

Flow: Retrieve codebase patterns → compare against generated code → catch deviations and security issues

Files: self-review.txt, BedrockPromptBuilder.buildSelfReviewPrompt()

quality gate pattern matching

RAG Wired into All Services

Every service that calls Bedrock now has KnowledgeBaseService injected as a dependency. Before each AI invocation, the service calls knowledgeBaseService.retrieveAsContext(query, reqId) to fetch relevant code chunks, which are then passed to the prompt builder's ragContext parameter.

ServiceKB Method CalledWhen
ProposalServiceretrieveAsContext()Each analysis + option generation round
MvpBreakdownServiceretrieveAsContext()Before MVP tree generation
CodeGenerationServiceretrieveAsContext()Before code generation (Phase 2)
dependency injection service layer

Cross-Requirement Learning

When a requirement reaches the PR_CREATED stage (pipeline completion), the new KnowledgeFeedbackService automatically captures the entire decision trail — requirement description, selected solution option, approach, risk assessment, affected files, and MVP breakdown — as a structured Markdown document and uploads it to S3 under the learnings/ prefix.

After upload, it triggers a KB re-sync job so the learning gets indexed. On future requirements, the KB can now retrieve past decisions: "For a similar feature last month, the team chose approach X with Y story points and Z files were affected."

PR Created PRCreatedEvent Build Summary option + approach + MVPs S3 Upload learnings/REQ-X/ 🧠 KB Re-Sync indexed for future RAG

File: KnowledgeFeedbackService.java — listens for PRCreatedEvent, uploads to S3, triggers KB sync

feedback loop continuous learning

KB Admin Dashboard

A new admin page at /kb-admin provides full visibility into the Knowledge Base health. The dashboard includes three status cards (KB connection, S3 storage, cross-requirement learning), a RAG integration map showing all 6 enriched prompts, manual sync trigger, and a live RAG query tester that lets admins search the KB and inspect retrieved chunks with relevance scores.

ComponentEndpointPurpose
Dashboard PageGET /kb-adminStatus cards + RAG map + sync controls + query tester
Status APIGET /api/kb/statusJSON: { enabled, feedbackEnabled }
Manual SyncPOST /api/kb/syncTrigger KB data source ingestion job
Test RetrievalGET /api/kb/retrieve?query=...Test RAG query, returns chunks with scores
Upload FeedbackPOST /api/kb/feedback/{reqId}Manually trigger learning upload for a requirement

Files: KbAdminWebController.java, KbApiController.java, kb-admin.html

admin ui diagnostics

Metadata Filtering in Retrieval

KB retrieval now scopes vector search to the specific requirement's S3 prefix using the x-amz-bedrock-kb-source-uri metadata field. When analyzing requirement REQ-ABC123, only code chunks from that requirement's repository are returned — preventing cross-contamination when multiple repositories are indexed in the same KB.

Filter: startsWith("s3://bucket/repos/REQ-ABC123/") — falls back gracefully to unfiltered if not supported.

File: KnowledgeBaseService.retrieve()

vector search scoped retrieval

RAG Integration Summary

Prompt TemplateServiceRAG StatusWhat RAG Provides
requirement-analysis.txtProposalService● ActiveRelevant code to assess requirement against codebase
option-generation.txtProposalService● ActiveCode patterns for accurate solution proposal generation
code-generation.txtCodeGenerationService● ActiveExisting conventions for consistent code output
self-review.txtCodeGenerationService● ActiveProject patterns to catch inconsistencies in generated code
mvp-breakdown.txtMvpBreakdownService● ActiveCode complexity context for accurate story points
test-generation.txtCodeGenerationService● ActiveExisting test patterns for framework-consistent tests

Service Layer 9 Services

Internal services with their responsibilities and key methods.

ServiceResponsibilityKey MethodsPublishes
RequirementService CRUD for requirements, submission trigger submitRequirement(), getAll(), getById() RequirementSubmittedEvent
ProposalService Bedrock analysis + option generation, JSON parsing analyzeRequirement(), generateOptions(), parseAndStoreOptions() AnalysisCompletedEvent, OptionsGeneratedEvent
CostEstimationService AI cost/effort estimation per selected option estimateCost() CostEstimationDoneEvent
ApprovalService Admin approve/reject workflow approve(), reject() ApprovalDecisionEvent
CodeGenerationService Full pipeline: plan → clone → ingest → generate → PR generatePlan(), triggerFullPipeline(), generateCode() PlanGeneratedEvent, CodeGenerationDoneEvent
GitService JGit clone/push, GitHub/Bitbucket REST API, PR creation cloneRepo(), pushBranch(), createPullRequest() RepoClonedEvent, PullRequestCreatedEvent
RepoAnalysisService S3 upload of cloned repos, KB data source ingestion uploadToS3(), triggerIngestion(), waitForIngestion()
NotificationService MS Teams webhook notifications on status changes sendNotification(), formatTeamsCard()
AuditService Immutable audit trail for all requirement actions logAction(), getAuditTrail()

API Endpoints REST + MVC

All HTTP endpoints exposed by the application.

RequirementController

MethodPathDescription
GET/Dashboard — lists all requirements
GET/requirements/newNew requirement form
POST/requirementsSubmit new requirement
GET/requirements/{id}Requirement detail page
GET/requirements/{id}/compareCompare 3 solution options side-by-side
POST/requirements/{id}/select-optionSelect preferred option
GET/requirements/{id}/pipeline-statusSSE stream — real-time pipeline updates
GET/requirements/{id}/generated-codeView generated code files

AdminController

MethodPathDescription
GET/admin/pendingList pending approval requests
POST/admin/{id}/approveApprove requirement (triggers code pipeline)
POST/admin/{id}/rejectReject requirement with reason

API REST Endpoints

MethodPathDescription
POST/api/requirementsJSON API — submit requirement programmatically
GET/api/requirements/{id}/statusJSON API — get current status
POST/api/requirements/{id}/generate-planTrigger plan generation
POST/api/requirements/{id}/generate-codeTrigger code generation pipeline

Frontend Stack Server-Rendered

Thymeleaf templates with progressive enhancement via HTMX and SSE.

📄 layout.html

Master layout with Bootstrap 5.3, Mermaid.js v10, Prism.js v1.29 (8 languages + line-numbers), dark mode support.

thymeleaf layout

📋 list.html

Dashboard view — requirement cards with status badges, priority indicators, quick actions.

dashboard

➕ form.html

New requirement submission form with repo URL, branch, priority, description fields.

submission

🔍 detail.html

Requirement detail with status stepper, analysis results, admin approve/reject buttons, audit trail, Mermaid diagrams.

detail view

⚖️ compare.html

Side-by-side comparison of 3 AI options. Solution type badge, architecture/data-flow diagrams, expandable code snippets with syntax highlighting, diff view for code changes.

option comparison

🔄 pipeline.html

Real-time SSE pipeline viewer. Step-by-step progress with animated indicators for each pipeline stage.

sse streaming

💻 generated-code.html

Generated code file viewer with syntax highlighting and copy-to-clipboard.

code viewer

✅ admin-pending.html

Admin approval queue — pending requirements with cost estimates, approve/reject actions.

admin panel

JavaScript Libraries

LibraryVersionPurpose
Bootstrap5.3.xUI framework, responsive grid, components
HTMX1.9.xPartial page updates, AJAX replacement without JS
Mermaid.js10.xArchitecture & data flow diagram rendering
Prism.js1.29Syntax highlighting (Java, JS, TS, Python, YAML, Bash, JSON, XML)
EventSource (SSE)NativeReal-time pipeline status streaming

Technology Stack Full Inventory

Backend

TechnologyVersionPurpose
Java21 LTSRuntime platform
Spring Boot3.3.5Application framework
Spring Data JPA3.3.xDatabase access layer
Flyway10.xDatabase migration (V1–V13)
H22.xEmbedded database (file mode)
JGit6.10Git operations (clone, commit, push)
OkHttp4.12HTTP client for GitHub/Bitbucket APIs
AWS SDK v22.xBedrock, S3, STS, KB client
Jackson2.xJSON serialization/deserialization
Thymeleaf3.xServer-side HTML template engine
Maven3.xBuild & dependency management

Flyway Migration History

VersionDescription
V1Create requirements table
V2Create solution_options table
V3Create cost_estimates table
V4Create approval_records table
V5Create generated_code table
V6Create audit_log table
V7Create notifications table
V8Add analysis fields to requirements
V9Add pull_request_url to requirements
V10Add platform/submittedBy to requirements
V11Create implementation_plans table
V12Add solution_type to requirements
V13Add diagrams & code changes to solution_options
V14Create mvp_milestones, user_stories, story_tasks tables

Project Structure

src/main/java/com/XXXX/
├── Application.java          # Main entry point
├── config/
│   ├── AsyncConfig.java             # ThreadPoolTaskExecutor (core=4, max=8)
│   ├── AwsConfig.java               # Bedrock, S3, STS clients
│   └── WebConfig.java               # CORS, static resources
├── controller/
│   ├── RequirementController.java   # MVC + REST endpoints
│   └── AdminController.java         # Admin approval endpoints
├── model/
│   ├── Requirement.java             # Core entity (18 statuses)
│   ├── RequirementStatus.java       # Enum: 18 states
│   ├── SolutionOption.java          # AI-generated options with diagrams
│   ├── CostEstimate.java            # Cost/effort estimation
│   ├── ApprovalRecord.java          # Approval decisions
│   ├── GeneratedCode.java           # Generated code files
│   ├── AuditLog.java                # Audit trail entries
│   ├── ImplementationPlan.java      # Detailed plan content
│   └── Notification.java            # Notification records
├── repository/                       # Spring Data JPA repositories
├── service/
│   ├── RequirementService.java
│   ├── ProposalService.java
│   ├── CostEstimationService.java
│   ├── ApprovalService.java
│   ├── CodeGenerationService.java
│   ├── GitService.java
│   ├── RepoAnalysisService.java
│   ├── NotificationService.java
│   └── AuditService.java
└── event/                            # 10 ApplicationEvent classes

src/main/resources/
├── application.yml                   # All configuration
├── db/migration/                     # V1–V13 Flyway SQL
├── prompts/                          # 5 Bedrock prompt templates
├── static/                           # CSS, JS assets
└── templates/                        # Thymeleaf HTML templates
    ├── layout.html
    └── requirements/
        ├── list.html, form.html
        ├── detail.html, compare.html
        ├── pipeline.html
        ├── generated-code.html
        └── admin-pending.html

XXXXXX Autonomous SDLC Platform — Architecture Documentation

Generated April 2026 · Java 21 · Spring Boot 3.3.5 · AWS Bedrock