22 KiB
Engineering Ticket Breakdown
Overview
This document converts all specifications into PR-ready engineering tickets with acceptance criteria, organized by component (Frontend, Backend, Smart Contracts, Integration, Testing).
Frontend Tickets
FE-001: Builder UI - Drag & Drop Canvas
Priority: P0
Estimate: 8 story points
Component: webapp/src/components/builder/Canvas.tsx
Description: Implement drag-and-drop canvas for building financial workflows. Users can drag adapters from palette to canvas, reorder steps, and configure step parameters.
Acceptance Criteria:
- ✅ Users can drag adapters from palette to canvas
- ✅ Steps can be reordered by dragging
- ✅ Step cards display step number, icon, type, and summary
- ✅ Drop zone highlights when dragging over it
- ✅ Visual feedback during drag operations
- ✅ Steps can be edited and removed
- ✅ Canvas is responsive (mobile/tablet/desktop)
Technical Requirements:
- Use
@dnd-kit/coreand@dnd-kit/sortable - Support both DeFi and Fiat/DTL adapters
- Real-time step dependency visualization
Dependencies: None
Related: FE-002, FE-003
FE-002: Builder UI - Adapter Palette
Priority: P0
Estimate: 5 story points
Component: webapp/src/components/builder/StepPalette.tsx
Description: Implement adapter palette sidebar with filtering capabilities. Show DeFi protocols and Fiat/DTL rails separately, with whitelist filtering option.
Acceptance Criteria:
- ✅ Adapters grouped by type (DeFi, Fiat/DTL)
- ✅ Filter options: All, DeFi, Fiat/DTL, Whitelisted Only
- ✅ Search functionality for adapters
- ✅ Adapters show name, icon, and status (Approved, Deprecated, Restricted)
- ✅ Draggable adapters with visual feedback
- ✅ Compliance badge section visible
Technical Requirements:
- Fetch adapters from
/api/adaptersendpoint - Filter based on user selection and whitelist status
- Support drag-and-drop to canvas
Dependencies: BE-005 (Adapter Registry API)
Related: FE-001
FE-003: Builder UI - Step Configuration Drawer
Priority: P0
Estimate: 6 story points
Component: webapp/src/components/builder/StepConfigDrawer.tsx
Description: Implement step configuration drawer that opens when user clicks "Edit" on a step. Show step-specific fields and compliance requirements.
Acceptance Criteria:
- ✅ Drawer slides up from bottom (mobile) or from side (desktop)
- ✅ Step-specific fields (token, amount, beneficiary, etc.)
- ✅ Compliance fields auto-populated from user session
- ✅ Real-time validation (balance checks, IBAN format, etc.)
- ✅ Dependency visualization (shows which previous steps feed this step)
- ✅ Save/Cancel buttons
Technical Requirements:
- Support all step types: borrow, swap, repay, pay
- Validate inputs before saving
- Show error messages for invalid inputs
Dependencies: FE-001, BE-004 (Compliance API)
Related: FE-001
FE-004: Builder UI - Compliance Status Dashboard
Priority: P0
Estimate: 4 story points
Component: webapp/src/components/compliance/ComplianceDashboard.tsx
Description: Implement compliance status dashboard overlay showing LEI, DID, KYC, AML status. Always visible badge in header, expandable to full details.
Acceptance Criteria:
- ✅ Compliance badge in header (✓ LEI, ✓ KYC, ✓ AML, ✓ DID)
- ✅ Expandable overlay with full compliance details
- ✅ Workflow-specific compliance validation
- ✅ Expiration warnings (if KYC/AML expiring soon)
- ✅ Quick links to update identity or run new checks
- ✅ Real-time status updates
Technical Requirements:
- Fetch compliance status from
/api/compliance/status - Validate compliance for current workflow
- Show warnings for missing requirements
Dependencies: BE-004 (Compliance API)
Related: FE-001
FE-005: Builder UI - Optional Simulation Panel
Priority: P1
Estimate: 6 story points
Component: webapp/src/components/simulation/SimulationPanel.tsx
Description: Implement optional simulation panel for advanced users. Toggleable simulation feature that shows gas estimates, slippage analysis, liquidity checks, and failure predictions.
Acceptance Criteria:
- ✅ Simulation toggle in summary panel (optional for advanced users)
- ✅ "Simulate" button appears when toggle enabled
- ✅ Simulation results panel shows:
- Step-by-step results (success/failure)
- Gas estimate and cost
- Slippage analysis
- Liquidity checks
- Compliance status
- Warnings and errors
- ✅ "Run Simulation Again" and "Proceed to Sign" buttons
- ✅ Results panel closes/closes on click outside
Technical Requirements:
- Call
/api/plans/{planId}/simulateendpoint - Parse and display simulation results
- Show warnings/errors clearly
Dependencies: BE-003 (Simulation Engine)
Related: FE-001
FE-006: Preview Page - Plan Summary & Signing
Priority: P0
Estimate: 5 story points
Component: webapp/src/app/builder/preview/page.tsx
Description: Enhance preview page to show plan summary, compliance status, and signature panel. Allow users to sign plan with wallet before execution.
Acceptance Criteria:
- ✅ Display complete plan summary (steps, amounts, fees)
- ✅ Show compliance status for all steps
- ✅ Signature panel with hash computation and wallet signing
- ✅ "Create Plan" button (calls API)
- ✅ "Execute" button (after plan created and signed)
- ✅ Error banners for API failures
Technical Requirements:
- Use
useBuilderStorefor plan data - Integrate
SignaturePanelcomponent - Use
useMutationfor API calls
Dependencies: FE-001, BE-001 (Plan API)
Related: FE-007
FE-007: Execution Timeline - Real-Time Updates
Priority: P0
Estimate: 6 story points
Component: webapp/src/components/plan/ExecutionTimeline.tsx
Description: Enhance execution timeline to show real-time status updates via SSE or polling. Display phases (Prepare, Execute DLT, Bank Instruction, Commit) with status indicators.
Acceptance Criteria:
- ✅ Real-time status updates via SSE (when enabled) or polling
- ✅ Phase progression visualization (Prepare → Execute DLT → Bank Instruction → Commit)
- ✅ Status indicators (pending, in_progress, complete, failed)
- ✅ Terminal states handled correctly (complete, failed, aborted)
- ✅ DLT transaction hash and ISO message ID displayed
- ✅ Error messages shown for failed phases
Technical Requirements:
- Use
createPlanStatusStreamfor SSE - Fallback to polling if SSE disabled
- Handle terminal states correctly (fix Bug 1)
Dependencies: BE-002 (Execution Status API), BE-006 (SSE)
Related: FE-006
Backend Tickets
BE-001: Orchestrator API - Plan Management
Priority: P0
Estimate: 8 story points
Component: orchestrator/src/api/plans.ts
Description: Implement plan management endpoints: create plan, get plan, add signature, validate plan.
Acceptance Criteria:
- ✅
POST /api/plans- Create execution plan - ✅
GET /api/plans/{planId}- Get plan details - ✅
POST /api/plans/{planId}/signature- Add user signature - ✅ Plan validation (recursion depth, LTV, step dependencies)
- ✅ Error responses with clear messages
- ✅ OpenAPI spec documented
Technical Requirements:
- Validate plan structure
- Check step dependencies
- Store plan in database
- Return plan with computed hash
Dependencies: DB-001 (Plan Schema)
Related: FE-006
BE-002: Orchestrator API - Execution Coordination
Priority: P0
Estimate: 10 story points
Component: orchestrator/src/services/execution.ts
Description: Implement execution coordination service that manages 2PC (two-phase commit) across DLT and banking rails.
Acceptance Criteria:
- ✅
POST /api/plans/{planId}/execute- Initiate execution - ✅
GET /api/plans/{planId}/status- Get execution status - ✅
POST /api/plans/{planId}/abort- Abort execution - ✅ 2PC pattern implementation (prepare, commit, abort)
- ✅ Real-time status updates via SSE
- ✅ Error handling and rollback on failures
Technical Requirements:
- Coordinate DLT and bank steps
- Implement prepare/commit/abort phases
- Handle failure modes (DLT fail, bank fail, liquidity denial)
- Emit status events for SSE
Dependencies: BE-001, BE-007 (DLT Handler), BE-008 (Bank Connector)
Related: FE-007
BE-003: Simulation Engine API
Priority: P1
Estimate: 8 story points
Component: orchestrator/src/services/simulation.ts
Description: Implement optional simulation engine that provides dry-run execution, gas estimation, slippage calculation, and liquidity checks.
Acceptance Criteria:
- ✅
POST /api/plans/{planId}/simulate- Run simulation - ✅ Gas estimation for all steps
- ✅ Slippage calculation for swaps
- ✅ Liquidity checks for trades
- ✅ Failure prediction
- ✅ Step-by-step results
- ✅ Response time < 5 seconds
Technical Requirements:
- Integrate with price oracles
- Calculate gas estimates
- Check liquidity pools
- Predict failures
Dependencies: BE-001, External (Price Oracles)
Related: FE-005
BE-004: Compliance Engine API
Priority: P0
Estimate: 6 story points
Component: orchestrator/src/services/compliance.ts
Description: Implement compliance engine that validates LEI, DID, KYC, AML requirements and injects compliance data into ISO messages.
Acceptance Criteria:
- ✅
GET /api/compliance/status- Get user compliance status - ✅
POST /api/compliance/check- Validate workflow compliance - ✅ LEI/DID/KYC/AML validation
- ✅ Compliance data injection into ISO messages
- ✅ Real-time status checks
- ✅ Expiration warnings
Technical Requirements:
- Integrate with KYC/AML providers (Onfido, Chainalysis)
- Validate LEI format
- Generate compliance assertions
- Inject into ISO message supplementary data
Dependencies: External (KYC/AML Providers)
Related: FE-004, BE-009 (ISO Message Generation)
BE-005: Adapter Registry API
Priority: P0
Estimate: 5 story points
Component: orchestrator/src/api/adapters.ts
Description: Implement adapter registry API that lists available adapters (DeFi + Fiat/DTL) with filtering and whitelist support.
Acceptance Criteria:
- ✅
GET /api/adapters- List adapters with filtering - ✅
GET /api/adapters/{adapterId}- Get adapter details - ✅ Filter by type (DeFi, Fiat/DTL, All)
- ✅ Filter by whitelist status
- ✅ Search functionality
- ✅ Adapter metadata (name, version, status, chainIds)
Technical Requirements:
- Fetch from adapter registry contract (on-chain)
- Cache adapter list
- Support filtering and search
Dependencies: SC-003 (Adapter Registry Contract)
Related: FE-002
BE-006: Server-Sent Events (SSE) for Real-Time Updates
Priority: P1
Estimate: 4 story points
Component: orchestrator/src/api/sse.ts
Description: Implement SSE endpoint for real-time execution status updates. Feature flag controlled.
Acceptance Criteria:
- ✅
GET /api/plans/{planId}/status/stream- SSE endpoint - ✅ Real-time status events
- ✅ Phase progression updates
- ✅ Error events
- ✅ Graceful connection handling
- ✅ Feature flag controlled
Technical Requirements:
- Use EventSource-compatible endpoint
- Emit events on status changes
- Handle disconnections gracefully
Dependencies: BE-002
Related: FE-007
BE-007: DLT Handler Service
Priority: P0
Estimate: 10 story points
Component: orchestrator/src/services/dlt.ts
Description: Implement DLT handler service that interacts with handler smart contract for atomic execution of DLT steps.
Acceptance Criteria:
- ✅ Execute DLT steps via handler contract
- ✅ Support 2PC prepare/commit/abort
- ✅ Gas estimation
- ✅ Transaction monitoring
- ✅ Rollback on failure
- ✅ Error handling
Technical Requirements:
- Integrate with handler contract (SC-001)
- Use Web3/Ethers.js
- Monitor transaction status
- Handle reentrancy protection
Dependencies: SC-001 (Handler Contract)
Related: BE-002
BE-008: Bank Connector Service
Priority: P0
Estimate: 10 story points
Component: orchestrator/src/services/bank.ts
Description: Implement bank connector service that generates ISO-20022 messages and sends them to banking rails (SWIFT, SEPA, FedNow, etc.).
Acceptance Criteria:
- ✅ Generate ISO-20022 pacs.008 messages
- ✅ Inject compliance data (LEI, DID, KYC, AML)
- ✅ Inject plan metadata and digital signature
- ✅ Support 2PC prepare phase (provisional messages)
- ✅ Send to banking rails
- ✅ Monitor settlement status
- ✅ Generate camt.056 for cancellation
Technical Requirements:
- ISO-20022 message generation
- Bank API integration
- Compliance data injection
- Error handling
Dependencies: BE-004, BE-009 (ISO Message Generation)
Related: BE-002
BE-009: ISO-20022 Message Generation
Priority: P0
Estimate: 6 story points
Component: orchestrator/src/services/iso20022.ts
Description: Implement ISO-20022 message generation service that creates pacs.008, camt.052/053, camt.056 messages with plan metadata and compliance data.
Acceptance Criteria:
- ✅ Generate pacs.008 (payment instruction)
- ✅ Generate camt.052/053 (bank statements)
- ✅ Generate camt.056 (cancellation request)
- ✅ Inject plan ID, digital signature, compliance data
- ✅ Inject DLT transaction reference
- ✅ Inject notary proof
- ✅ Validate XML structure
Technical Requirements:
- Use ISO-20022 XML schemas
- Template-based generation
- Compliance data injection
- XML validation
Dependencies: BE-004, BE-010 (Notary Service)
Related: BE-008
BE-010: Notary Service Integration
Priority: P0
Estimate: 5 story points
Component: orchestrator/src/services/notary.ts
Description: Implement notary service integration that registers plans, finalizes executions, and provides audit proofs.
Acceptance Criteria:
- ✅
POST /api/notary/register- Register plan - ✅
GET /api/notary/proof/{planId}- Get notary proof - ✅ Register plan with notary contract
- ✅ Finalize plan (success or failure)
- ✅ Retrieve notary proof for audit
Technical Requirements:
- Integrate with notary registry contract (SC-002)
- Register plan hashes
- Finalize executions
- Provide audit trail
Dependencies: SC-002 (Notary Registry Contract)
Related: BE-001, BE-002
BE-011: Receipt Generation Service
Priority: P0
Estimate: 4 story points
Component: orchestrator/src/services/receipts.ts
Description: Implement receipt generation service that aggregates DLT transactions, ISO messages, and notary proofs for audit trail.
Acceptance Criteria:
- ✅
GET /api/receipts/{planId}- Get execution receipts - ✅ Aggregate DLT transaction receipts
- ✅ Aggregate ISO message receipts
- ✅ Aggregate notary proofs
- ✅ Generate audit trail report
Technical Requirements:
- Query DLT transactions
- Query ISO messages
- Query notary proofs
- Aggregate into receipt structure
Dependencies: BE-002, BE-009, BE-010
Related: FE-008
Smart Contract Tickets
SC-001: Handler/Aggregator Contract
Priority: P0
Estimate: 13 story points
Component: contracts/ComboHandler.sol
Description: Implement handler/aggregator contract that executes multi-step combos atomically, supports 2PC, and integrates with adapter registry.
Acceptance Criteria:
- ✅ Execute multi-step combos atomically
- ✅ Support 2PC (prepare, commit, abort)
- ✅ Validate adapter whitelist
- ✅ Reentrancy protection
- ✅ Gas optimization
- ✅ Event emission for off-chain tracking
- ✅ Security audit passed
Technical Requirements:
- Use OpenZeppelin contracts (Ownable, ReentrancyGuard)
- Integrate with adapter registry
- Support step execution with error handling
- Emit events for all state changes
Dependencies: SC-003 (Adapter Registry)
Related: BE-007
SC-002: Notary Registry Contract
Priority: P0
Estimate: 8 story points
Component: contracts/NotaryRegistry.sol
Description: Implement notary registry contract that stores plan hashes, codehashes, and provides immutable audit trail.
Acceptance Criteria:
- ✅ Register execution plans
- ✅ Finalize plan executions (success/failure)
- ✅ Register adapter codehashes
- ✅ Verify codehash matches
- ✅ Query plans by creator
- ✅ Immutable audit trail
Technical Requirements:
- Store plan proofs
- Store codehashes
- Provide query functions
- Emit events for all registrations
Dependencies: None
Related: BE-010
SC-003: Adapter Registry Contract
Priority: P0
Estimate: 6 story points
Component: contracts/AdapterRegistry.sol
Description: Implement adapter registry contract that manages whitelist/blacklist of adapters, tracks versions, and enforces upgrade controls.
Acceptance Criteria:
- ✅ Register adapters (DeFi + Fiat/DTL)
- ✅ Whitelist/blacklist adapters
- ✅ Check whitelist status
- ✅ List adapters by type
- ✅ Multi-sig for admin functions
- ✅ Timelock for critical operations
Technical Requirements:
- Use OpenZeppelin AccessControl
- Support adapter metadata
- Provide query functions
- Emit events for all changes
Dependencies: None
Related: BE-005, SC-001
SC-004: Adapter Interface & Example Adapters
Priority: P0
Estimate: 10 story points
Component: contracts/adapters/
Description: Implement IAdapter interface and example adapters (Uniswap V3, Aave, ISO-20022 Pay) to demonstrate integration pattern.
Acceptance Criteria:
- ✅ IAdapter interface defined
- ✅ Uniswap V3 adapter implemented
- ✅ Aave adapter implemented
- ✅ ISO-20022 Pay adapter implemented
- ✅ All adapters pass tests
- ✅ Documentation for adding new adapters
Technical Requirements:
- Follow IAdapter interface
- Support executeStep function
- Support prepareStep (if applicable)
- Emit events for off-chain tracking
Dependencies: SC-003
Related: INT-001
Integration Tickets
INT-001: Bank Connector Integration
Priority: P0
Estimate: 8 story points
Component: orchestrator/src/integrations/bank/
Description: Implement bank connector adapters for different banking rails (SWIFT, SEPA, FedNow, ISO-20022).
Acceptance Criteria:
- ✅ SWIFT MT connector
- ✅ SEPA connector
- ✅ FedNow connector
- ✅ ISO-20022 generic connector
- ✅ Support 2PC prepare phase
- ✅ Error handling and retry logic
Technical Requirements:
- Bank API integration
- ISO-20022 message generation
- Error handling
- Retry logic
Dependencies: BE-009
Related: BE-008
INT-002: Compliance Provider Integration
Priority: P0
Estimate: 6 story points
Component: orchestrator/src/integrations/compliance/
Description: Integrate with KYC/AML providers (Onfido, Chainalysis) and Entra Verified ID for compliance verification.
Acceptance Criteria:
- ✅ Onfido KYC integration
- ✅ Chainalysis AML integration
- ✅ Entra Verified ID integration
- ✅ LEI validation
- ✅ DID verification
- ✅ Error handling
Technical Requirements:
- Provider API integration
- Credential verification
- Status caching
- Error handling
Dependencies: External (KYC/AML Providers)
Related: BE-004
Testing Tickets
TEST-001: E2E Tests - Builder Flow
Priority: P0
Estimate: 8 story points
Component: tests/e2e/builder.spec.ts
Description: Implement end-to-end tests for builder flow: drag-drop, configure steps, create plan, sign, execute.
Acceptance Criteria:
- ✅ Test drag-and-drop from palette to canvas
- ✅ Test step reordering
- ✅ Test step configuration
- ✅ Test plan creation
- ✅ Test plan signing
- ✅ Test plan execution
- ✅ Test error scenarios
Technical Requirements:
- Use Playwright
- Test all user flows
- Test error cases
- CI/CD integration
Dependencies: FE-001, FE-002, FE-003, BE-001, BE-002
Related: All Frontend/Backend tickets
TEST-002: E2E Tests - Failure Scenarios
Priority: P0
Estimate: 6 story points
Component: tests/e2e/failures.spec.ts
Description: Implement end-to-end tests for failure scenarios: DLT failure, bank failure, liquidity denial, rollback.
Acceptance Criteria:
- ✅ Test DLT failure after bank prepare
- ✅ Test bank failure after DLT commit
- ✅ Test liquidity denial
- ✅ Test rollback mechanisms
- ✅ Test audit trail generation
Technical Requirements:
- Mock failure scenarios
- Test recovery mechanisms
- Verify audit logs
Dependencies: BE-002, BE-011
Related: BE-002
TEST-003: Smart Contract Tests
Priority: P0
Estimate: 10 story points
Component: contracts/test/
Description: Implement comprehensive smart contract tests for handler, notary, and adapter registry contracts.
Acceptance Criteria:
- ✅ Unit tests for all contracts
- ✅ Integration tests
- ✅ Fuzz tests for edge cases
- ✅ Gas optimization tests
- ✅ Security tests (reentrancy, access control)
Technical Requirements:
- Use Hardhat/Foundry
- High test coverage (>90%)
- Security audit ready
Dependencies: SC-001, SC-002, SC-003
Related: All Smart Contract tickets
Summary
Total Tickets: 28
- Frontend: 7 tickets
- Backend: 11 tickets
- Smart Contracts: 4 tickets
- Integration: 2 tickets
- Testing: 3 tickets
- Documentation: 1 ticket (already completed)
Priority Breakdown
- P0 (Critical): 24 tickets
- P1 (High): 2 tickets (Simulation, SSE - optional features)
Estimated Story Points
- Total: ~180 story points
- Frontend: ~40 story points
- Backend: ~80 story points
- Smart Contracts: ~37 story points
- Integration: ~14 story points
- Testing: ~24 story points
Document Version: 1.0
Last Updated: 2025-01-15
Author: Engineering Team