Version: 1.0.0
Last Updated: 2026-02-07
Status: Active
This document defines the process standards for contributing to the Business Wallet project, including the Definition of Ready and Definition of Done checklists that must be satisfied for all issues and pull requests.
An issue is considered "Ready" when it meets all of the following criteria. Issues that are not Ready should not be started.
- Clear Description: The issue has a clear, unambiguous description of what needs to be accomplished
- Acceptance Criteria: Specific, testable acceptance criteria are defined (Given/When/Then format preferred)
- Priority Assigned: The issue has a priority level assigned (Critical, High, Medium, Low)
- Size Estimated: The issue has been estimated and is appropriately sized (can be completed within a single sprint/iteration)
- Dependencies Identified: Any blocking dependencies on other issues, external systems, or teams are identified and resolved or tracked
- Technical Approach Understood: The implementation approach is clear, or a spike has been completed to clarify it
- API Contract Defined: For features requiring API changes, the OpenAPI specification has been reviewed or drafted
- Security Considerations Documented: Any security implications have been identified and documented
- Privacy Impact Assessed: GDPR and privacy implications have been considered (data minimization, purpose limitation, data subject rights)
- Multi-Tenancy Impact Assessed: For SaaS features, tenant isolation requirements are understood
- No Open Questions: All clarifying questions have been answered; no blockers remain
- User story follows the format: "As a [role], I want [capability] so that [benefit]"
- UI mockups or wireframes provided (if applicable)
- Accessibility requirements specified (WCAG 2.1 Level AA compliance)
- Steps to reproduce are documented
- Expected vs. actual behavior is clearly described
- Environment and version information provided
- Business justification provided
- Scope is clearly bounded
- Risk assessment completed
An issue is considered "Done" when all of the following criteria are satisfied. Work should not be merged or released until it meets the Definition of Done.
- Code Implemented: All acceptance criteria are implemented and verified
- Code Review Passed: Code has been reviewed by at least one other developer and all feedback addressed
- TypeScript Standards Met: Code follows TypeScript best practices:
- No
anytypes (useunknownif type is truly unknown) - No
@ts-ignoreor@ts-expect-errorwithout detailed justification - Explicit types for function parameters and return values
- Strict mode compliance
- No
- Coding Standards Followed: Code follows project naming conventions and style guidelines
- No New Warnings: No new linter warnings or errors introduced
- Unit Tests Written: Unit tests cover new business logic with meaningful assertions
- Integration Tests Written: Integration tests cover API endpoints (where applicable)
- Tests Pass: All existing and new tests pass
- Test Coverage Maintained: Test coverage has not decreased
- Edge Cases Covered: Edge cases and error conditions are tested
- Security Scan Passed: CodeQL or equivalent security scanning shows no new vulnerabilities
- Input Validation: All user inputs are validated and sanitized
- Authentication/Authorization: Proper authentication and authorization checks are in place
- No Secrets in Code: No credentials, API keys, or secrets are hardcoded
- Audit Logging: Security-relevant actions generate audit log entries
- GDPR Compliance: Data handling follows GDPR requirements (data minimization, purpose limitation)
- Tenant Isolation Verified: Multi-tenant data isolation is maintained (no cross-tenant data access)
- Selective Disclosure Supported: Credential presentations support selective disclosure where applicable
- OpenAPI Specification Updated: OpenAPI spec is updated to reflect changes
- Backward Compatibility: Breaking changes follow semantic versioning guidelines
- Error Responses Consistent: Error responses follow the standard format
- API Documentation Updated: API documentation reflects the changes
- Code Comments: Complex logic is documented with comments explaining "why"
- README Updated: Module README is updated if public interfaces change
- Architecture Docs Updated: architecture.md updated for architectural changes
- Requirements Docs Updated: requirements.md updated if requirements are added or modified
- WCAG 2.1 AA Compliance: UI changes meet accessibility standards
- Keyboard Navigation: All interactive elements are keyboard accessible
- Screen Reader Support: Appropriate ARIA labels are provided
- Semantic HTML: Semantic HTML elements are used
- Environment Configuration: Required environment variables are documented
- Database Migrations: Database migrations are tested and reversible
- Feature Flags: Feature flags are in place for gradual rollout (if applicable)
- Observability: Logging, tracing, and metrics are implemented
- Acceptance Testing Instructions Added: A comment has been added to the issue explaining how a reviewer or product owner can manually test and verify the implemented functionality
- Test Scenarios Documented: The comment includes specific scenarios to test, including happy path and edge cases
- Expected Results Described: The comment clearly describes the expected behavior or outcome for each test scenario
- Prerequisites Listed: Any prerequisites (test data, configuration, environment setup) needed for acceptance testing are documented in the comment
- Acceptance Criteria Met: All acceptance criteria from the issue are satisfied
- Acceptance Testing Checklist Complete: All items in the Acceptance Testing Checklist above are satisfied
- Product Owner Approval: Changes have been reviewed and approved by product owner
- No Regressions: No regressions in existing functionality
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Backlog │────▶│ Ready │────▶│ In Progress │────▶│ Done │
│ │ │ (DoR ✓) │ │ │ │ (DoD ✓) │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │
│ │
▼ ▼
Refinement Review &
Required Testing
- Backlog: Issue is captured but not yet refined
- Ready: Issue meets Definition of Ready; can be pulled into a sprint
- In Progress: Issue is actively being worked on
- Done: Issue meets Definition of Done; can be released
- ✅ Verify the issue meets the Definition of Ready
- ✅ Review existing documentation (architecture.md, requirements.md)
- ✅ Understand module boundaries and dependencies
- ✅ Check OpenAPI specifications for API contracts
- ✅ Run all tests locally and verify they pass
- ✅ Run linters and fix any issues
- ✅ Self-review your code changes
- ✅ Update documentation as needed
- ✅ Verify the Definition of Done checklist
- ✅ Verify code quality and standards compliance
- ✅ Check for security implications
- ✅ Verify tenant isolation is maintained
- ✅ Ensure tests are comprehensive
- ✅ Validate documentation is updated