Be respectful, inclusive, and professional in all interactions.
- Fork the repository
- Clone your fork
- Create a feature branch
- Make your changes
- Submit a pull request
- Follow PEP 8
- Use Black for formatting
- Use isort for imports
- Maximum line length: 100 characters
- Use type hints
def calculate_total(items: List[Item]) -> Decimal:
"""Calculate total amount from items."""
return sum(item.amount for item in items)- Follow Vue 3 Composition API style
- Use TypeScript for type safety
- Use Prettier for formatting
- Use ESLint for linting
interface Invoice {
id: string
amount: number
status: InvoiceStatus
}
const createInvoice = async (data: InvoiceCreate): Promise<Invoice> => {
return await apiClient.post('/invoices', data)
}- Minimum 80% code coverage
- Unit tests for all services
- Integration tests for API endpoints
- Mock external dependencies
def test_create_vendor(client):
response = client.post('/api/ap/vendors', json={
'vendor_name': 'Test Vendor',
'email': 'test@vendor.com'
})
assert response.status_code == 200
assert response.json()['vendor_name'] == 'Test Vendor'- Test critical components
- Test store logic
- E2E tests for user workflows
it('should create invoice', async () => {
const wrapper = mount(InvoiceForm)
await wrapper.find('[data-testid="submit"]').trigger('click')
expect(wrapper.emitted('created')).toBeTruthy()
})- Document complex logic
- Explain "why" not "what"
- Keep comments up to date
def process_payment(invoice_id: str, amount: Decimal) -> Payment:
"""
Process payment for an invoice.
Args:
invoice_id: UUID of the invoice
amount: Payment amount
Returns:
Payment object
Raises:
InvoiceNotFoundError: If invoice doesn't exist
InsufficientFundsError: If amount exceeds invoice balance
"""/**
* Fetch customer by ID
* @param id - Customer UUID
* @returns Customer object
* @throws {ApiError} If customer not found
*/
async function getCustomer(id: string): Promise<Customer> {
// ...
}- Code follows style guidelines
- Tests pass locally
- New tests added for new features
- Documentation updated
- No console.log or debugger statements
- No commented-out code
- Commit messages are clear
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
Describe testing performed
## Screenshots (if applicable)
Add screenshots for UI changes
## Checklist
- [ ] Tests pass
- [ ] Documentation updated
- [ ] No breaking changes- Automated checks must pass
- At least one approval required
- Address all review comments
- Squash commits before merge
type(scope): subject
body (optional)
footer (optional)
feat: New featurefix: Bug fixdocs: Documentationstyle: Formattingrefactor: Code restructuringtest: Adding testschore: Maintenance
feat(ap): add vendor bulk import functionality
Implements CSV import for vendors with validation
and error reporting.
Closes #123
fix(ar): correct invoice total calculation
Fixed rounding error in tax calculation that caused
invoice totals to be off by 1 cent.
Fixes #456
main: Production-ready codedevelop: Integration branch
feature/feature-namebugfix/bug-descriptionhotfix/critical-fix
- Create branch from
develop - Make changes
- Create PR to
develop - After approval, merge to
develop - Periodically merge
developtomain
- Keep PRs small and focused
- Provide context in description
- Respond to feedback promptly
- Be open to suggestions
- Review within 24 hours
- Be constructive and specific
- Ask questions, don't demand
- Approve when satisfied
- Code is readable and maintainable
- Logic is correct
- Tests are adequate
- No security issues
- Performance is acceptable
- Documentation is clear
Email security@paksa.com with:
- Description of vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- Never commit secrets
- Validate all inputs
- Use parameterized queries
- Implement rate limiting
- Keep dependencies updated
- Use HTTPS in production
- Use database indexes
- Implement caching
- Optimize queries
- Use async where appropriate
- Profile slow endpoints
- Lazy load components
- Optimize bundle size
- Minimize re-renders
- Use virtual scrolling for large lists
- Optimize images
- Check existing documentation
- Search closed issues
- Ask in team chat
- Email: dev@paksa.com