AI-powered agents implementing the Dynamic Systems Development Method (DSDM) framework using the Claude Agent SDK.
- Full DSDM Workflow Automation - Run complete project lifecycle from feasibility to implementation
- 6 DSDM Phase Agents - Specialized agents for each phase of the methodology
- 6 Design & Build Specialized Roles - Granular control with Dev Lead, Frontend/Backend Developers, Testers
- Multiple LLM Provider Support - Anthropic Claude, OpenAI GPT, Google Gemini, Ollama local
- 3 Agent Execution Modes - Automated, Manual (approval required), or Hybrid (balanced)
- 3 Workflow Modes - Agent-writes code, provides tips, or assists with manual development
- Enterprise Integrations - Confluence for docs, Jira for task management, DevOps tools
- 28 DevOps Tools - Based on 14 Development Principles for CI/CD, testing, monitoring, infrastructure
- 42+ DSDM Tools - File management, code generation, testing, documentation, deployment
- Project Generation - Auto-create folder structures with code, tests, docs, config
- Code Generation - Write production-ready code for frontend, backend, and APIs
- Test Generation - Unit, integration, and E2E tests with coverage analysis
- Documentation Generation - PRD, TRD, API docs, architecture diagrams, user guides
- Prototype Creation - Build functional prototypes for user validation
- MoSCoW Prioritization - Automated requirement prioritization (Must/Should/Could/Won't)
- Jira-Confluence Sync - Auto-sync work items and status to documentation
- Interactive Menu System - Browse phases, configure agents, run workflows
- CLI Commands - Full command-line interface with 11 flags and options
- Programmatic API - Python library for custom automation
- Agent Mode Configuration - Per-phase or per-role execution settings
- Workflow Mode Configuration - Customize interaction styles (code writing, tips, manual)
- Requirements File Support - Build from Markdown, text, or DOCX files
- Quick Feasibility Checks - Rapid assessment with caching
- Output Formatting - Rich terminal UI with tables, panels, progress bars
- Multi-Provider LLM - Switch between Anthropic, OpenAI, Gemini, Ollama
- 8 Core DSDM Principles - Business focus, timely delivery, collaboration, quality, incremental build, iteration, communication, control
- MoSCoW Method - Must/Should/Could/Won't have prioritization
- Timeboxing - Fixed-duration iterations and sprints
- Iterative Development - Continuous refinement via feedback loops
- Prototyping - Early validation with working models
DSDM Agents provides a set of specialized AI agents for each phase of the DSDM methodology, plus a DevOps agent based on the Development Principles.
| Phase | Agent | Description |
|---|---|---|
| Feasibility | FeasibilityAgent | Assesses project viability and DSDM suitability |
| Business Study | BusinessStudyAgent | Defines requirements using MoSCoW prioritization |
| Functional Model | FunctionalModelAgent | Creates and refines prototypes iteratively |
| Design & Build | DesignBuildAgent | Develops production-ready code with testing |
| Implementation | ImplementationAgent | Deploys system to production |
| DevOps | DevOpsAgent | Enables development principles through DevOps practices |
The Design & Build phase can be broken down into specialized roles for more granular control:
| Role | Agent | Mode | Description |
|---|---|---|---|
| Dev Lead | DevLeadAgent | Hybrid | Architecture, ADRs, code review, team coordination |
| Frontend Developer | FrontendDeveloperAgent | Automated | UI/UX, components, accessibility, responsive design |
| Backend Developer | BackendDeveloperAgent | Automated | APIs, business logic, databases, integrations |
| Automation Tester | AutomationTesterAgent | Automated | Unit/integration/E2E tests, CI/CD, coverage |
| NFR Tester | NFRTesterAgent | Hybrid | Performance, scalability, reliability, accessibility |
| Penetration Tester | PenTesterAgent | Manual | Security scans, vulnerability assessment, OWASP |
Each agent has specialized tools and can operate in Manual, Automated, or Hybrid mode, with configurable Workflow Modes for how agents interact with developers.
- Requirement analysis and parsing
- Technical feasibility assessment
- Resource and budget estimation
- Risk identification and mitigation
- DSDM suitability checks
- Quick feasibility with caching
- Project initialization
- Business process mapping
- Stakeholder analysis and documentation
- MoSCoW prioritization
- Architecture and system design
- Timebox and iteration planning
- Risk log management
- Detailed requirements documentation
- Prototype generation (HTML, React, etc.)
- Code scaffolding
- User feedback collection
- Requirements refinement
- Functional testing
- Iteration documentation
- Prototype validation
- Technical design documentation
- Production-ready code generation
- Automated testing (unit, integration, E2E)
- Code review and quality checks
- Security scanning
- Technical requirements documentation
- Multi-language support (Python, JavaScript, TypeScript)
- Deployment planning
- Environment setup
- Production deployment
- Smoke testing
- Rollback preparation
- Training material generation
- Stakeholder communication
- Operations handover documentation
- Testing & Quality (5 tools) - Run tests, check coverage, linting, security scans, code quality
- CI/CD & Automation (4 tools) - Pipelines, deployment, rollback, task automation
- Infrastructure (4 tools) - Provisioning, Terraform validation, containers, scaling
- Monitoring & Health (4 tools) - Health checks, monitoring setup, service status, chaos testing
- NFRs & Dependencies (4 tools) - Dependency analysis, performance testing, accessibility, validation
- Documentation (2 tools) - Architecture Decision Records, documentation generation
- Task Management (2 tools) - Track incomplete tasks, monitor toil
- Backup & Recovery (2 tools) - Database backups, restore testing
- Architecture design and decisions
- ADR (Architecture Decision Records) creation
- Code review and quality oversight
- Team coordination and planning
- Technical design documentation
- System design validation
- UI/UX component development
- React/Vue component creation
- Responsive design implementation
- Accessibility (WCAG) compliance
- Responsive testing
- CSS/styling frameworks support
- Component reusability patterns
- REST API development
- Business logic implementation
- Database schema design
- Integration implementation
- Data validation and sanitization
- Error handling and logging
- Multi-database support (PostgreSQL, MongoDB, etc.)
- Unit test generation
- Integration test generation
- E2E test creation
- Test coverage analysis
- CI/CD pipeline integration
- Test reporting
- Mock and fixture generation
- Performance testing and benchmarking
- Scalability testing
- Reliability and uptime testing
- Accessibility testing (WCAG)
- Load testing
- Security baseline validation
- NFR metrics reporting
- Security vulnerability scanning
- OWASP Top 10 assessment
- Penetration testing scenarios
- Security report generation
- Risk ranking and prioritization
- Remediation recommendations
- Security documentation
- Project listing and discovery
- Project initialization
- File read/write/append operations
- File copying and deletion
- Directory creation and listing
- Markdown generation
- API documentation (OpenAPI/Swagger)
- Architecture Decision Records (ADRs)
- Technical design documents
- User guides and manuals
- Training materials
- Deployment runbooks
- Function-level code generation
- Full project scaffolding
- Component generation
- API endpoint generation
- Database schema generation
- Configuration file generation
- Test file generation
- Confluence - Page creation/update, CQL search, page hierarchy, comments
- Jira - Issue creation, sprint management, bulk operations, MoSCoW tracking
- Jira-Confluence Sync - Automatic status propagation, issue-to-page mapping
- AUTOMATED - Tools execute without approval
- MANUAL - Every tool requires explicit user approval
- HYBRID - Critical tools require approval, others auto-run
- AGENT_WRITES_CODE - Agent generates code autonomously
- AGENT_PROVIDES_TIPS - Agent provides guidance without writing
- MANUAL_WITH_TIPS - Human writes code, agent advises
- Anthropic Claude - claude-sonnet-4-5, claude-opus-4-5 (default)
- OpenAI GPT - gpt-4o, gpt-4-turbo, gpt-3.5-turbo
- Google Gemini - gemini-2.5-pro, gemini-2.5-flash
- Ollama Local - kimi-k2-thinking, llama3.2, codellama, or any Ollama model
- Project folder structure creation
- Source code (production & test)
- Configuration files
- Documentation
- Architecture diagrams
- API specifications
- Deployment plans
- Training materials
- Organized under
generated/<project-name>/ - Automatic directory creation
- Type detection (Python/Node)
- Version control ready (.gitignore, .env)
- Package configuration (pyproject.toml, package.json)
- Full-stack trading platform with 11 pages
- React frontend with TypeScript
- FastAPI/Node.js backend
- PostgreSQL + Redis stack
- Real-time data visualization
- Authentication system
- Portfolio management
- Options pricing engine
- Test suite included
- API documentation
- Docker support
- Python 3.10+
- Anthropic API key (or Ollama for local LLM)
- Clone the repository:
cd dsdm-agents- Create and activate the virtual environment:
python3 -m venv env
source env/bin/activate # On Windows: env\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Configure your API key:
cp .env.example .envEdit .env and add your Anthropic API key:
ANTHROPIC_API_KEY=your-api-key-here
Here are 3 example prompts to get you started with DSDM Agents:
python main.py --workflow --input "Build a task management application with user authentication, project organization, and team collaboration features. Users should be able to create tasks, assign them to team members, set due dates, and track progress with kanban boards."This runs the full DSDM workflow:
- Feasibility - Analyzes technical viability and resource requirements
- Business Study - Defines requirements with MoSCoW prioritization
- PRD/TRD - Creates Product and Technical Requirements Documents
- Functional Model - Generates prototypes and validates with stakeholders
- Design & Build - Develops production-ready code with tests
- Implementation - Prepares deployment and documentation
python main.py --phase design_build --input "Add real-time notifications to the existing task management app. Include: 1) Push notifications for task assignments, 2) Email digests for overdue tasks, 3) In-app notification center with read/unread status, 4) User preferences for notification types. The app uses React frontend and Node.js/Express backend with PostgreSQL."This runs only the Design & Build phase to implement a specific feature, generating:
- Technical design documents
- Production code for frontend and backend
- Unit and integration tests
- API documentation
python main.py --phase feasibility --input "Migrate our legacy monolithic e-commerce platform to microservices architecture. Current stack: PHP/Laravel with MySQL. Target: Node.js microservices with PostgreSQL and Redis. Must maintain 99.9% uptime during migration. ~500k monthly active users, 50k daily orders."This runs the Feasibility phase to assess:
- Technical complexity and risks
- Resource requirements (team, timeline, infrastructure)
- Migration strategy options
- Go/no-go recommendation with justification
You can build applications from PRD (Product Requirements Document) or other requirements files stored in the docs/requirements/ folder.
| Format | Description |
|---|---|
.md |
Markdown files (recommended) |
.txt |
Plain text files |
.docx |
Word documents (convert to .md first using pandoc) |
If you have a Word document, convert it first:
pandoc docs/requirements/YOUR_PRD.docx -t markdown -o docs/requirements/YOUR_PRD.mdRun full DSDM workflow:
python main.py --workflow --input "$(cat docs/requirements/YOUR_PRD.md)"Run specific phase:
python main.py --phase feasibility --input "$(cat docs/requirements/YOUR_PRD.md)"Programmatic approach:
from src.orchestrator import DSDMOrchestrator, DSDMPhase
orchestrator = DSDMOrchestrator(
include_devops=True,
include_jira=True, # Optional: track tasks in Jira
include_confluence=True # Optional: publish docs to Confluence
)
# Load requirements from file
with open("docs/requirements/YOUR_PRD.md", "r") as f:
requirements = f.read()
# Run full workflow
results = orchestrator.run_workflow(requirements)
# Or run specific phases
result = orchestrator.run_phase(DSDMPhase.FEASIBILITY, requirements)
result = orchestrator.run_phase(DSDMPhase.BUSINESS_STUDY, requirements)docs/requirements/
├── YOUR_PROJECT_PRD.md # Product Requirements Document
├── YOUR_PROJECT_TRD.md # Technical Requirements Document (optional)
├── feature_specs/ # Feature-specific requirements
│ ├── auth_feature.md
│ └── payment_feature.md
└── nfr/ # Non-Functional Requirements
├── performance.md
└── security.md
All generated artifacts are saved to generated/<project-name>/:
generated/
└── your-project/
├── docs/
│ ├── FEASIBILITY_REPORT.md
│ ├── BUSINESS_STUDY.md
│ ├── PRODUCT_REQUIREMENTS.md
│ ├── TECHNICAL_REQUIREMENTS.md
│ └── architecture/
├── src/ # Production code
├── tests/ # Test files
├── config/ # Configuration files
└── prototypes/ # Functional prototypes
Launch the interactive menu to explore phases and configure agents:
python main.py --interactiveThis opens a menu where you can:
- Run specific phases
- Run the full DSDM workflow
- Access the Design & Build team (specialized roles)
- Configure agent modes (Manual/Automated/Hybrid)
- Configure workflow modes (Write/Tips/Manual)
- View available tools for each phase
Run a specific phase:
python main.py --phase feasibility --input "Build a customer feedback system"Run the full workflow:
python main.py --workflow --input "Build an inventory management system"Set agent mode:
python main.py --phase design_build --mode manual --input "Implement user authentication"List all phases:
python main.py --list-phasesList all tools:
python main.py --list-tools| Flag | Description | Example |
|---|---|---|
--workflow |
Run ALL DSDM phases in sequence | python main.py --workflow --input "..." |
--phase <name> |
Run a SINGLE phase | python main.py --phase design_build --input "..." |
--mode <mode> |
Set agent mode: manual, automated, hybrid |
python main.py --phase design_build --mode hybrid --input "..." |
--input "<text>" |
Your requirements or task description | python main.py --phase feasibility --input "Build an API" |
--interactive |
Launch interactive menu | python main.py --interactive |
--list-phases |
List all available phases | python main.py --list-phases |
--list-tools |
List all available tools | python main.py --list-tools |
| Phase Name | Description |
|---|---|
feasibility |
Assess project viability |
business_study |
Define requirements with MoSCoW |
functional_model |
Create prototypes |
design_build |
Develop production code |
implementation |
Deploy to production |
Run Design & Build phase from a TRD file:
python main.py --phase design_build --input "$(cat docs/requirements/YOUR_TRD.md)"Run Design & Build with hybrid mode (recommended for production):
python main.py --phase design_build --mode hybrid --input "$(cat docs/requirements/YOUR_TRD.md)"Run full workflow from a PRD file:
python main.py --workflow --input "$(cat docs/requirements/YOUR_PRD.md)"Combine multiple requirement files:
python main.py --phase design_build --input "$(cat docs/requirements/TRD_MAIN.md docs/requirements/TRD_SLICES.md)"| Incorrect | Correct | Reason |
|---|---|---|
--workflow --design_build |
--phase design_build |
Cannot combine --workflow with phase flags |
--phase Design_Build |
--phase design_build |
Phase names are lowercase with underscores |
--input file.md |
--input "$(cat file.md)" |
Must read file contents, not pass filename |
from src.orchestrator import DSDMOrchestrator, DSDMPhase, DesignBuildRole
from src.agents import AgentMode, WorkflowMode
# Create orchestrator with all integrations
orchestrator = DSDMOrchestrator(
include_devops=True,
include_confluence=True,
include_jira=True
)
# Run a single phase
result = orchestrator.run_phase(
DSDMPhase.FEASIBILITY,
"Build a real-time analytics dashboard"
)
print(f"Success: {result.success}")
print(f"Output: {result.output}")
# Change agent mode
orchestrator.set_agent_mode(DSDMPhase.DESIGN_BUILD, AgentMode.MANUAL)
# Change workflow mode
orchestrator.set_workflow_mode(DSDMPhase.DESIGN_BUILD, WorkflowMode.AGENT_PROVIDES_TIPS)
# Run full workflow
results = orchestrator.run_workflow(
"Build an e-commerce platform",
start_phase=DSDMPhase.FEASIBILITY,
end_phase=DSDMPhase.FUNCTIONAL_MODEL
)DSDM Agents automatically manages projects in the generated/ directory. All documentation, code, and artifacts are saved under this folder.
When running any phase, all files are organized under generated/<project-name>/:
generated/
└── my-project/
├── docs/
│ ├── FEASIBILITY_REPORT.md # From Feasibility phase
│ ├── BUSINESS_STUDY.md # From Business Study phase
│ ├── PRODUCT_REQUIREMENTS.md # PRD from Product Manager
│ ├── TECHNICAL_REQUIREMENTS.md # TRD from Dev Lead
│ ├── FUNCTIONAL_MODEL_REPORT.md # From Functional Model phase
│ ├── DEPLOYMENT_PLAN.md # From Implementation phase
│ ├── TRAINING_MATERIALS.md # User training guides
│ ├── HANDOVER_DOCS.md # Operations handover
│ ├── api/ # API documentation
│ ├── architecture/ # Architecture Decision Records
│ │ └── decisions/
│ │ └── 001-database-choice.md
│ └── user-guides/ # End-user documentation
├── src/ # Production code
│ └── ...
├── tests/ # Test files
│ ├── unit/
│ └── integration/
├── config/ # Configuration files
├── prototypes/ # Functional prototypes
├── README.md
├── .gitignore
└── pyproject.toml / package.json
Before creating a new project, agents check if one already exists.
from src.tools.file_tools import list_projects_handler, get_project_handler, init_project_handler
import json
# List all valid projects (with src/, tests/, or config files)
result = list_projects_handler()
data = json.loads(result)
print(f"Found {data['count']} projects:")
for project in data['projects']:
print(f" - {project['name']} (type: {project['type']})")
print(f" Last modified: {project['last_modified']}")
print(f" Has tests: {project['has_tests']}, Has docs: {project['has_docs']}")
# List ALL directories (including non-project folders)
result = list_projects_handler(include_all=True)# Get detailed info about a specific project
result = get_project_handler("my-app")
data = json.loads(result)
if data['exists']:
project = data['project']
print(f"Project: {project['name']}")
print(f"Type: {project['type']}")
print(f"Files: {project['file_count']}")
print(f"Directories: {project['directory_count']}")
print(f"Structure: {project['structure']}")
else:
print(f"Project not found: {data['message']}")# Create a new project (checks if exists first)
result = init_project_handler(
project_name="my-new-app",
project_type="python", # or "node"
include_tests=True,
include_docs=True,
include_config=True,
include_infrastructure=False
)
data = json.loads(result)
if data.get('already_exists'):
# Project already exists - returns existing info
print(f"Project already exists: {data['message']}")
print(f"Existing project info: {data['existing_project']}")
else:
# New project created
print(f"Created project at: {data['base_path']}")
print(f"Directories: {data['directories_created']}")
print(f"Files: {data['files_created']}")
# Force recreate an existing project
result = init_project_handler("my-new-app", force_recreate=True)| Tool | Description |
|---|---|
project_list |
List all projects in generated/ directory |
project_get |
Get details of a specific project |
project_init |
Initialize new project (checks existence first) |
from src.orchestrator import DSDMOrchestrator, DesignBuildRole
from src.agents import AgentMode, WorkflowMode
orchestrator = DSDMOrchestrator()
# Run a specific role
result = orchestrator.run_design_build_role(
DesignBuildRole.BACKEND_DEV,
"Implement REST API for user authentication"
)
# Run the full Design & Build team in sequence
results = orchestrator.run_design_build_team(
"Build a payment processing module"
)
# Run specific roles only
results = orchestrator.run_design_build_team(
"Implement checkout flow",
roles=[
DesignBuildRole.DEV_LEAD,
DesignBuildRole.FRONTEND_DEV,
DesignBuildRole.BACKEND_DEV,
DesignBuildRole.AUTOMATION_TESTER
]
)
# Configure role mode
orchestrator.set_role_mode(DesignBuildRole.PEN_TESTER, AgentMode.MANUAL)
# Configure role workflow mode
orchestrator.set_role_workflow_mode(DesignBuildRole.FRONTEND_DEV, WorkflowMode.MANUAL_WITH_TIPS)| Mode | Description | Use Case |
|---|---|---|
| AUTOMATED | All tools run without approval | Development, prototyping |
| MANUAL | Every tool requires user approval | Production deployments, sensitive operations |
| HYBRID | Some tools auto-run, critical ones need approval | Balanced workflow |
Default execution modes by phase:
- Feasibility → Automated
- Business Study → Automated
- Functional Model → Automated
- Design & Build → Hybrid
- Implementation → Manual
- DevOps → Hybrid
Default execution modes for Design & Build roles:
- Dev Lead → Hybrid
- Frontend Developer → Automated
- Backend Developer → Automated
- Automation Tester → Automated
- NFR Tester → Hybrid
- Penetration Tester → Manual
Workflow modes determine how agents interact with developers:
| Mode | Description | Use Case |
|---|---|---|
| AGENT_WRITES_CODE | Agent autonomously writes code using tools | Full automation, rapid prototyping |
| AGENT_PROVIDES_TIPS | Agent provides guidance and best practices without writing code | Learning, architecture review |
| MANUAL_WITH_TIPS | Developer writes code manually, agent provides contextual advice | Hands-on learning, code review |
Programmatic configuration:
from src.orchestrator import DSDMOrchestrator, DSDMPhase, DesignBuildRole
from src.agents import WorkflowMode
orchestrator = DSDMOrchestrator()
# Set workflow mode for a specific phase
orchestrator.set_workflow_mode(DSDMPhase.DESIGN_BUILD, WorkflowMode.AGENT_PROVIDES_TIPS)
# Set workflow mode for a Design & Build role
orchestrator.set_role_workflow_mode(DesignBuildRole.BACKEND_DEV, WorkflowMode.MANUAL_WITH_TIPS)
# Set workflow mode for all agents
orchestrator.set_all_workflow_modes(WorkflowMode.AGENT_WRITES_CODE)Interactive menu: Select option 5 "Configure workflow modes" from the main menu to:
- Set workflow mode for all agents at once
- Configure specific phases individually
- Configure Design & Build roles individually
When using AGENT_PROVIDES_TIPS or MANUAL_WITH_TIPS modes, agents provide contextual best practices based on:
- Language detection: Python, JavaScript/TypeScript
- Framework detection: React, Node.js, FastAPI, Django, etc.
- Task analysis: Testing, security, API design, async patterns
Tips include:
- Code quality best practices
- Security recommendations
- Performance optimization
- Testing strategies
- Links to official documentation
Enable Confluence integration to create and manage DSDM documentation directly in Confluence.
- Add Confluence credentials to
.env:
CONFLUENCE_BASE_URL=https://your-domain.atlassian.net
CONFLUENCE_USERNAME=your-email@example.com
CONFLUENCE_API_TOKEN=your-confluence-api-token
CONFLUENCE_DEFAULT_SPACE=your-space-key
-
Get an API token from Atlassian API Tokens
-
Enable in your code:
orchestrator = DSDMOrchestrator(include_confluence=True)Available Confluence Tools:
confluence_get_page- Retrieve page contentconfluence_create_page- Create new pagesconfluence_update_page- Update existing pagesconfluence_search- Search using CQLconfluence_get_space- Get space infoconfluence_add_comment- Add comments to pagesconfluence_create_dsdm_doc- Create DSDM-formatted documentation
Enable Jira integration to manage project tasks, user stories, and sprints.
- Add Jira credentials to
.env:
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_USERNAME=your-email@example.com
JIRA_API_TOKEN=your-jira-api-token
JIRA_DEFAULT_PROJECT=your-project-key
-
Get an API token from Atlassian API Tokens
-
Enable in your code:
orchestrator = DSDMOrchestrator(include_jira=True)Available Jira Tools:
jira_get_issue- Get issue detailsjira_create_issue- Create tasks, bugs, storiesjira_update_issue- Update existing issuesjira_search- Search using JQLjira_transition_issue- Change issue statusjira_add_comment- Add commentsjira_get_project- Get project infojira_create_user_story- Create DSDM-formatted user stories with MoSCoW priorityjira_create_timebox- Create sprints/timeboxesjira_bulk_create_requirements- Bulk create requirementsjira_enable_confluence_sync- Enable automatic sync to Confluencejira_disable_confluence_sync- Disable automatic syncjira_sync_to_confluence- Manually sync an issue to Confluencejira_set_confluence_page_mapping- Map issue to specific Confluence page
When both Jira and Confluence integrations are enabled, you can automatically sync work item status changes to Confluence documentation.
Setup automatic sync:
from src.orchestrator import DSDMOrchestrator
orchestrator = DSDMOrchestrator(include_jira=True, include_confluence=True)
# Setup sync - this will:
# 1. Enable automatic sync for all Jira updates
# 2. Create a "Work Item Status Log" page in Confluence
result = orchestrator.tool_registry.execute(
"setup_jira_confluence_sync",
confluence_space_key="PROJ"
)How it works:
- When you transition a Jira issue (e.g., "To Do" -> "In Progress"), the status is automatically logged to Confluence
- When you update a Jira issue, the changes are synced to Confluence
- A "Work Item Status Log" page tracks all status changes with timestamps
Workflow Tools (available when both integrations enabled):
setup_jira_confluence_sync- Enable sync and create status pagesync_work_item_status- Sync with DSDM phase contextget_sync_status- Check current sync configuration
Map specific issues to documentation pages:
# Map a Jira issue to its design document in Confluence
orchestrator.tool_registry.execute(
"jira_set_confluence_page_mapping",
issue_key="PROJ-123",
page_id="12345678"
)
# Now when PROJ-123 status changes, the design doc is updatedDSDM Agents supports multiple LLM providers. Configure your preferred provider in .env:
| Provider | Description | Model Examples |
|---|---|---|
| Anthropic | Claude models (default) | claude-sonnet-4-5-20250929, claude-opus-4-5-20251101 |
| OpenAI | GPT models | gpt-4o, gpt-4-turbo, gpt-3.5-turbo |
| Gemini | Google AI models | gemini-2.5-pro, gemini-2.5-flash |
| Ollama | Local/Cloud LLM | kimi-k2-thinking:cloud, llama3.2, codellama |
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=your-api-key-here
ANTHROPIC_MODEL=claude-sonnet-4-5-20250929pip install openaiLLM_PROVIDER=openai
OPENAI_API_KEY=your-api-key-here
OPENAI_MODEL=gpt-4o
OPENAI_ORG_ID= # Optionalpip install google-generativeaiLLM_PROVIDER=gemini
GEMINI_API_KEY=your-api-key-here
GEMINI_MODEL=gemini-2.5-flash-
Install Ollama
-
Pull a model:
ollama pull kimi-k2-thinking:cloud
ollama pull codellama # For code-specific tasks- Configure in
.env:
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=kimi-k2-thinking:cloud
OLLAMA_CODE_MODEL=codellama
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
OLLAMA_TIMEOUT=120from src.llm import LLMProvider, create_llm_client
from src.agents import AgentConfig, AgentMode
# Create agent with specific provider
config = AgentConfig(
name="My Agent",
description="Custom agent",
phase="design_build",
system_prompt="You are a helpful assistant.",
llm_provider=LLMProvider.OPENAI, # Use OpenAI for this agent
model="gpt-4o",
)
# Or create a client directly
client = create_llm_client(LLMProvider.GEMINI)orchestrator = DSDMOrchestrator(
include_devops=True,
include_confluence=True,
include_jira=True
)You can extend agents with custom tools:
from src.tools import Tool, create_dsdm_tool_registry
# Get the default registry (optionally with integrations)
registry = create_dsdm_tool_registry(
include_jira=True,
include_devops=True
)
# Add a custom tool
registry.register(Tool(
name="my_custom_tool",
description="Description of what the tool does",
input_schema={
"type": "object",
"properties": {
"param1": {"type": "string", "description": "First parameter"},
"param2": {"type": "integer", "description": "Second parameter"}
},
"required": ["param1"]
},
handler=lambda param1, param2=0: f"Result: {param1}, {param2}",
requires_approval=False, # Set True for manual approval
category="feasibility" # Phase category
))See examples/custom_tools_example.py for more details.
dsdm-agents/
├── src/
│ ├── agents/ # DSDM phase agents
│ │ ├── base_agent.py # Base agent class with workflow modes
│ │ ├── workflow_modes.py # Workflow mode definitions and tips
│ │ ├── feasibility_agent.py
│ │ ├── business_study_agent.py
│ │ ├── functional_model_agent.py
│ │ ├── design_build_agent.py
│ │ ├── implementation_agent.py
│ │ ├── devops_agent.py
│ │ ├── dev_lead_agent.py # Design & Build specialized
│ │ ├── frontend_developer_agent.py
│ │ ├── backend_developer_agent.py
│ │ ├── automation_tester_agent.py
│ │ ├── nfr_tester_agent.py
│ │ └── pen_tester_agent.py
│ ├── llm/ # LLM provider abstraction
│ │ ├── __init__.py
│ │ ├── config.py # Provider configuration
│ │ ├── base_client.py # Base LLM client interface
│ │ ├── anthropic_client.py # Anthropic Claude
│ │ ├── openai_client.py # OpenAI GPT
│ │ ├── gemini_client.py # Google Gemini
│ │ └── ollama_client.py # Local Ollama
│ ├── tools/ # Tool definitions
│ │ ├── tool_registry.py
│ │ ├── dsdm_tools.py
│ │ └── integrations/ # External integrations
│ │ ├── confluence_tools.py
│ │ ├── jira_tools.py
│ │ └── devops_tools.py
│ ├── orchestrator/ # Workflow management
│ │ └── dsdm_orchestrator.py
│ ├── utils/ # Utility functions
│ │ └── output_formatter.py # Terminal output formatting
│ └── docs/ # Documentation
│ └── development-principles.md
├── examples/ # Usage examples
├── generated/ # Agent-generated project files
├── main.py # CLI entry point
├── requirements.txt
├── .env.example
├── GETTING_STARTED.md # Comprehensive setup guide
└── README.md
DSDM (Dynamic Systems Development Method) is an agile framework based on 8 principles:
- Focus on the business need
- Deliver on time
- Collaborate
- Never compromise quality
- Build incrementally from firm foundations
- Develop iteratively
- Communicate continuously and clearly
- Demonstrate control
Key practices used by these agents:
- MoSCoW Prioritization: Must have, Should have, Could have, Won't have
- Timeboxing: Fixed time periods for delivery
- Iterative Development: Continuous refinement through feedback
- Prototyping: Early validation through working models
analyze_requirements- Parse and structure requirementsassess_technical_feasibility- Evaluate technical viabilityestimate_resources- Estimate team and budget needsidentify_risks- Document project riskscheck_dsdm_suitability- Verify DSDM fitproject_init- Create project folder structurefile_write- Save feasibility report togenerated/<project>/docs/
analyze_business_process- Map current processesidentify_stakeholders- Document stakeholdersprioritize_requirements- MoSCoW prioritizationdefine_architecture- High-level system designcreate_timebox_plan- Plan iterationsupdate_risk_log- Maintain risk registerproject_init,file_write- Save reports togenerated/<project>/docs/
create_prototype- Build functional prototypesgenerate_code_scaffold- Create code structurecollect_user_feedback- Gather stakeholder inputrefine_requirements- Update based on feedbackrun_functional_tests- Validate functionalitydocument_iteration- Record progressproject_init,file_write,file_read- Save prototypes and reports togenerated/<project>/
create_technical_design- Detailed designsgenerate_code- Write production coderun_tests- Execute test suitesreview_code- Quality checkscreate_documentation- Technical docssecurity_check- Security scanninggenerate_technical_requirements_document- Create TRDproject_init,file_write,file_read,directory_create- Save all code and docs togenerated/<project>/
project_list- List all existing projects in generated/ directoryproject_get- Get details of a specific project (structure, file counts, type)project_init- Initialize new project (auto-checks if exists first)file_write- Write content to filesfile_read- Read file contentsfile_append- Append to filesfile_copy- Copy filesfile_delete- Delete filesdirectory_create- Create directoriesdirectory_list- List directory contents
create_deployment_plan- Plan go-livesetup_environment- Configure infrastructuredeploy_system- Deploy to productionrun_smoke_tests- Verify deploymentcreate_rollback- Prepare rollbackexecute_rollback- Revert if neededcreate_training_materials- User guidesnotify_stakeholders- Communicationgenerate_handover_docs- Operations handoverfile_write,file_read,directory_create- Save deployment docs togenerated/<project>/docs/
Testing & Quality: run_tests, check_coverage, run_linter, run_security_scan, check_code_quality
CI/CD & Automation: run_ci_pipeline, deploy_to_environment, rollback_deployment, automate_task
Infrastructure: provision_infrastructure, validate_terraform, manage_containers, scale_service
Monitoring & Health: health_check, setup_monitoring, check_service_status, run_chaos_test
NFRs & Dependencies: analyze_dependencies, run_performance_test, check_accessibility, validate_nfr
Documentation & Decisions: create_adr, generate_docs, track_decision
Task Management: check_incomplete_tasks, track_toil
Backup & Recovery: backup_database, test_restore
The repository includes a complete demo application - the OPTIX Trading Platform - built using DSDM Agents. This showcases what the agents can produce.
# From dsdm-agents root directory
./scripts/start_servers.sh
# Check status
./scripts/start_servers.sh status
# Stop all services
./scripts/start_servers.sh stop| Service | Port | Description |
|---|---|---|
| Frontend | 3000 | Web interface (11 pages) |
| OPTIX API | 8000 | Core platform API |
| GEX Visualizer | 8001 | Gamma exposure analytics |
| PostgreSQL | 5432 | Database |
| Redis | 6379 | Cache |
| Role | Password | |
|---|---|---|
| Admin | admin@optix.io |
Admin123! |
| User | test@optix.io |
Test123! |
- Frontend: http://localhost:3000
- API Docs: http://localhost:8000/docs
- Health Check: http://localhost:8000/health
See generated/optix/README.md for full documentation.
MIT