monol-workbase
v1.3.0
Published
프로젝트 관리 플러그인 - Project, Phase, Feature, Task, TestCase, Issue
Maintainers
Readme
monol-workbase
프로젝트 관리 플러그인 for Claude Code
개요
monol-workbase는 소프트웨어 개발 프로젝트를 체계적으로 관리하기 위한 플러그인입니다.
핵심 기능:
- 📁 계층적 프로젝트 관리 - Project → Phase → Feature → Task
- 🔍 전문 검색 (FTS) - 태스크, 피처, 이슈 통합 검색
- 📊 분석 & 시각화 - 번다운 차트, 벨로시티 추세, 상태 분포
- 🏃 스프린트 관리 - 스프린트 계획, 실행, 완료, 벨로시티 추적
- ⚡ 자동화 - 마감 관리, Feature 자동 완료, 유효성 검증
버전
| 버전 | 테마 | 주요 기능 | |------|------|-----------| | v0.1.0 | 기초 | CRUD, 통계, Quick Actions | | v0.2.0 | 검색 | FTS 검색, 필터링, 자동완성 | | v0.3.0 | 분석 | 번다운, 벨로시티, 시각화 | | v0.4.0 | 스프린트 | 스프린트 CRUD, 백로그, 완료 | | v0.5.0 | 자동화 | 알림, 검증, 동기화, 변환 |
설치
cd monol-workbase
npm install
npm run build빠른 시작
import { getWorkbaseManager } from 'monol-workbase';
const wb = await getWorkbaseManager();
// 1. 프로젝트 생성
const project = await wb.createProject({
name: 'My Project',
status: 'active',
});
// 2. Phase 생성
const phase = await wb.createPhase(project.id, {
name: 'Phase 1: MVP',
});
// 3. Feature 생성
const feature = await wb.createFeature(phase.id, {
title: 'User Authentication',
priority: 'high',
estimatedHours: 40,
});
// 4. Task 생성
const task = await wb.createTask(feature.id, {
title: 'Implement login form',
estimatedHours: 8,
assignee: 'kent',
});
// 5. Task 완료
await wb.completeTask(task.id, 6);
// 6. 통계 확인
const stats = await wb.getProjectStats(project.id);
console.log(`Progress: ${stats.progressPercent}%`);데이터 모델
Project (프로젝트)
├── id, name, description, status, priority
├── startDate, endDate, repository, tags
└── phases[]
Phase (단계)
├── id, projectId, name, description
├── sortOrder, status, startDate, endDate
└── features[]
Feature (기능)
├── id, phaseId, title, description
├── status, priority, complexity
├── estimatedHours, actualHours, assignee
├── tasks[], testCases[], issues[]
└── acceptanceCriteria[]
Task (작업)
├── id, featureId, parentTaskId, sprintId
├── title, description, status, priority
├── estimatedHours, actualHours, dueDate
├── assignee, blockedReason, checklist[]
└── subtasks[]
Sprint (스프린트) [v0.4.0]
├── id, projectId, name, sprintNumber
├── goal, startDate, endDate, status
├── plannedPoints, completedPoints, velocity
└── tasks[]
TestCase (테스트 케이스)
├── id, featureId, title, testType
├── testStatus, priority, steps[]
└── automationStatus
Issue (이슈)
├── id, featureId, title, issueType
├── status, severity, priority
├── stepsToReproduce[], resolution
└── assignee, reporter상태 흐름
Task
todo → in_progress → completed
↓
blocked → in_progress
↓
cancelledFeature
backlog → todo → in_progress → review → testing → completed
↓
cancelledSprint
planning → active → completed
↓
cancelledIssue
open → confirmed → in_progress → resolved → closed
↓
wontfix / duplicate주요 API
기본 CRUD
// Project
createProject(data) → Project
getProject(id) → Project | null
listProjects(options?) → Project[]
updateProject(id, data) → Project
deleteProject(id) → void
archiveProject(id) → Project
// Phase
createPhase(projectId, data) → Phase
getPhase(id) → Phase | null
listPhases(projectId) → Phase[]
// Feature
createFeature(phaseId, data) → Feature
getFeature(id) → Feature | null
listFeatures(phaseId) → Feature[]
// Task
createTask(featureId, data) → Task
getTask(id) → Task | null
listTasks(featureId) → Task[]
completeTask(id, actualHours?) → Task
// Issue
createIssue(data) → Issue
resolveIssue(id, resolution) → Issue
getCriticalIssues() → Issue[]검색 (v0.2.0)
// FTS 검색
searchTasks(query, options?) → SearchResultItem<Task>[]
searchFeatures(query, options?) → SearchResultItem<Feature>[]
searchIssues(query, options?) → SearchResultItem<Issue>[]
searchAll(query, options?) → UnifiedSearchResult분석 (v0.3.0)
// 번다운 & 벨로시티
getBurndownData(projectId, startDate, endDate) → BurndownData
getVelocityTrend(projectId, period) → VelocityTrend
// 추세
getTaskCompletionTrend(projectId, period) → TrendData[]
getIssueCreationTrend(projectId, period) → TrendData[]
// 분포 & 워크로드
getStatusDistribution(projectId, entityType) → StatusDistribution[]
getAssigneeWorkload(projectId) → AssigneeWorkload[]
comparePeriods(projectId, period1, period2) → PeriodComparison시각화 (v0.3.0)
import {
renderBurndownChart,
renderVelocityChart,
renderDistributionBar,
renderProgressBar,
renderSparkline,
} from 'monol-workbase';
// ASCII 차트 렌더링
const chart = renderBurndownChart(burndownData, { title: 'Sprint Burndown' });
console.log(chart);스프린트 (v0.4.0)
// CRUD
createSprint(projectId, data) → Sprint
getSprint(id) → Sprint | null
listSprints(projectId, options?) → Sprint[]
// 라이프사이클
startSprint(id) → Sprint
completeSprint(id, options?) → SprintCompletionResult
// Task 관리
assignTaskToSprint(taskId, sprintId) → Task
removeTaskFromSprint(taskId) → Task
getSprintBacklog(sprintId) → Task[]
// 쿼리
getSprintStats(sprintId) → SprintDetailStats
getActiveSprint(projectId) → Sprint | null자동화 (v0.5.0)
// 마감 관리
getOverdueTasks(options?) → Task[]
getUpcomingTasks(days, options?) → Task[]
// 체크리스트
getChecklistProgress(taskId) → ChecklistProgress
toggleChecklistItem(taskId, itemIndex) → Task
// 동기화 & 자동화
syncFeatureHours(featureId) → Feature
checkAndUpdateFeatureStatus(featureId) → Feature | null
// 유효성 검증
validateTask(task) → ValidationResult
validateFeature(feature) → ValidationResult
// 변환 & 알림
createTaskFromIssue(issueId, options?) → Task
getDashboardAlerts(options?) → DashboardAlert[]Claude Code 명령어
| 명령어 | 설명 |
|--------|------|
| /workbase | 대시보드 |
| /workbase project list | 프로젝트 목록 |
| /workbase project create | 프로젝트 생성 |
| /workbase feature list | 피처 목록 |
| /workbase task add | 태스크 추가 |
| /workbase task complete <id> | 태스크 완료 |
| /workbase issue list --severity critical | Critical 이슈 |
| /workbase stats | 통계 |
| /workbase stats burndown | 번다운 차트 |
| /workbase stats velocity | 벨로시티 추세 |
| /workbase search <query> | 통합 검색 |
| /workbase sprint list | 스프린트 목록 |
| /workbase sprint start <id> | 스프린트 시작 |
| /workbase sprint complete <id> | 스프린트 완료 |
| /workbase alerts | 대시보드 알림 |
| /workbase sync hours <feature-id> | 시간 동기화 |
의존성
monol-datastore- SQLite 기반 데이터 저장소 (FTS5 지원)
라이선스
MIT
