# Kanban Board - Almacen2 Project

## Board Columns

Following the SSOT workflow guidelines, this project uses the following Kanban columns:

| Column | Purpose | Entry Criteria | Exit Criteria |
|--------|---------|----------------|--------------|
| **Backlog** | Idea freezer, future work | Any new idea or low-priority task | Prioritized for upcoming milestone |
| **Ready** | Immediate to-do for current milestone | Issue essential for milestone, complete anatomy | Developer assigns to self |
| **In Progress** | Actively being developed | Developer started work from Ready | PR opened, moved to In Review |
| **In Review** | Waiting for CI + peer review | PR opened | CI passes + peer approved |
| **Blocked** | On hold, blocked | External dependency or deprioritized | Blocker resolved or deprecated |
| **Done** | Completed work | PR merged to main | - |

## Issue Lifecycle

```
Backlog → Ready → In Progress → In Review → Done
                    ↓
              (feedback)
                    ↓
              Backlog/In Progress
```

## Labels

### Priority
- `priority:critical` - Must be fixed immediately; blocks other work
- `priority:high` - Essential for current milestone
- `priority:medium` - Standard task, timely manner
- `priority:low` - Nice-to-have, can be deferred

### Type
- `type:feature` - New feature or user-facing functionality
- `type:bug` - Bug fix
- `type:chore` - Maintenance, refactoring, DevOps
- `type:testing` - Test-related tasks
- `type:documentation` - Documentation tasks
- `type:research` - Investigation or technical spike

### Module
- `module:api` - API endpoints and layer
- `module:ui` - Frontend user interface
- `module:auth` - Authentication and authorization
- `module:database` - Database schema and migrations
- `module:devops` - Docker, CI/CD, deployment

## GitHub Projects Alternative

Since GitHub Projects (Kanban board) requires GraphQL API access not available in current tools, we simulate the Kanban workflow using:

1. **Milestones** - Track progress through phases (M1-M7)
2. **Labels** - Categorize issues by priority, type, and module
3. **Issue States** - Open/Closed to track progress
4. **Project Board** - (Manual) Users can create a GitHub Project and link issues

### GitHub Project Board

**Project URL:** https://github.com/users/joelabreurojas/projects/9

**Project Number:** 9

**Status:** Created and linked to issues

### To Configure the Board Columns:

1. Go to: https://github.com/users/joelabreurojas/projects/9
2. Click "Add column" and create:
   - Backlog
   - Ready
   - In Progress
   - In Review
   - Done

3. Add issues to columns based on milestone priority

## Branch Naming Convention

When implementing issues, use branch names following this pattern:

```
[type]/[issue-number]-[short-description]
```

Examples:
- `feature/18-create-item-service`
- `fix/45-stock-adjustment-bug`
- `chore/109-configure-ci-cd`

## Commit Convention

Follow Conventional Commits:

```
type(scope): subject

- type: feat, fix, chore, docs, refactor, test, style
- scope: api, ui, auth, database, etc.
- subject: imperative mood, max 50 chars
```

Examples:
- `feat(api): add ItemService with barcode generation`
- `fix(auth): resolve role middleware not applying`
- `chore(database): add indexes for performance`
