Drewgent Kanban — 사용자 가이드

생성일: 2026-05-19 상태: 완전 구현 완료 Updated: 2026-05-20 — Linear 의존성 제거 (Linear workflow 완전 제거)


2개 인터페이스

인터페이스용도자동화
Discord日常工作 — task 조회, 완료, reactionn8n board + reaction actions
터미널직접 조작 — 모든 기능Drewgent agent tool 직접 호출

1. Discord에서 사용하기

1-1. Kanban Board 확인

n8n workflow가 주기적으로 board를 Discord 채널에 게시합니다:

=== Drewgent Kanban Board ===
Board: default | Updated: 2026-05-20 10:30 KST

[todo] 3 tasks
  🟡 t_abc123 — Implement SEO article harvester

[ready] 2 tasks
  ⚪ t_def456 — Deploy n8n workflow

[in_progress] 1 task
  🔵 t_ghi789 — kanban-orchestrator skill (worker: pid 12345)

[blocked] 1 task
  🔴 t_jkl012 — gateway notifier (failures: 3)

[completed] 7 tasks (today: 2)
  ✅ t_mno345 — multi-board support

React to manage:
  ✅ = complete | 🔄 = unblock | ❌ = block

1-2. Reaction으로 Task 조작

Board message에 emoji reaction하면 해당 동작이 실행됩니다:

Emoji동작설명
Completetask 완료 처리
🔄Unblockblocked → ready로 변경
Blocktask를 blocked 상태로 변경
🔁Claimtask를 내가 작업 중인 것으로 표시

1-3. @Drewgent 명령어로 Task 생성

Discord에서 Drewgent에게 직접 말하기:

@Drewgent 새 테스크 만들어줘: SEO article harvester 개선
@Drewgent 테스크 완료: t_abc123 결과=설정 파일 업데이트함
@Drewgent 테스크 목록 보여줘
@Drewgent 테스크的状态: t_abc123

2. 터미널에서 사용하기

2-1. Task 생성

# Drewgent agent에서
kanban_create(
    title="SEO article 개선",
    body="설명...",
    assignee="drewgent",
    trigger_source="manual",  # 'manual' | 'cron' | 'subagent'
    priority=1,
    parent_task_ids=["t_abc123"],  # 의존성
    board="default",  # 'default' | 'content' | 'integrations'
)

2-2. Task 조회

# 전체 목록
kanban_list()
 
# 상태별 필터
kanban_list(status="ready")
kanban_list(status="in_progress")
 
# 특정 board
kanban_list(board="content")
 
# 특정 담당자
kanban_list(assignee="drewgent")

2-3. Task 작업 (Worker)

# Task 가져오기
kanban_list(status="ready")
task_id = "t_abc123"
 
# Claim (작업 시작)
kanban_claim(task_id, ttl_seconds=3600)
 
# 작업 중 heartbeat (지속不被 reclaim)
kanban_heartbeat(task_id, note="Step 2/5: running tests")
 
# 완료
kanban_complete(
    task_id,
    result="SEO article harvester 개선 완료",
    summary="설정 파일 업데이트 + rate limit 추가",
    metadata={"changed_files": ["harvester.py", "config.yaml"]},
    created_cards=["t_def456"],  # 생성한 sub-task (hallucination check)
)

2-4. 의존성 (Parent-Child)

# A가 완료되어야 B를 시작할 수 있음
kanban_link(parent_id="t_abc123", child_id="t_def456")
 
# 순환 의존성 방지 (DFS cycle detection)
# t_abc → t_def → t_ghi → t_abc (에러 반환)

2-5. Block/Unblock

# 외부 의존성으로 작업 불가
kanban_block(task_id, reason="API credentials 필요")
 
# 준비 완료
kanban_unblock(task_id)  # → ready 상태로 변경

2-6. Hallucination Detection

created_cards에 넣은 task ID가 DB에 실제로 존재하는지 자동 검증:

# 가짜 ID 넣으면 예외 발생
kanban_complete(task_id, created_cards=["t_fake123"])
# → completion_blocked_hallucination event

2-7. Integration Workflow 추적

도구/스킬 통합 시 자동 task 생성:

# signal_processor가 자동 호출
# integration 시작 → task_create(trigger_source="subagent", integration_workflow_id=xxx)
# integration 완료 → task_complete(workflow_id로 찾아서 완료)

2-8. Dispatcher (60초마다 자동 실행)

# cron job으로 자동 실행 (jobs.json에 등록済み)
# 수동 테스트
cd ~/.drewgent
python3 -c "
import sys; sys.path.insert(0, 'source/drewgent-agent')
from tools.drewgent_kanban_db import dispatch_once
result = dispatch_once(max_spawn=1, failure_limit=3)
print(result)
"

3. Cron Schedule

Job주기동작
kanban-dispatcher1분마다ready tasks → worker spawn
kanban-notifygateway lifecycleDiscord notification (task 완료/차단 시)

4. DB 위치

~/.drewgent/state/drewgent_tasks.db

Tables:
  tasks              — task 본체
  task_links         — parent-child 의존성
  task_events        — event log
  task_comments      — 코멘트
  task_runs          — worker 실행 이력
  kanban_notify_subs — subscriber (notification용)
  boards             — board 정의 (multi-board 지원)

5. Quick Reference

하고 싶은 일방법
지금 할 일 확인Discord board message 확인
새 작업 추가@Drewgent 새 테스크...
작업 완료 처리✅ reaction on board
복잡한 작업 분해/kanban-orchestrator skill
worker로 자동 실행kanban-dispatcher가 1분마다 spawn
상태 확인kanban_list(status="in_progress")
의존성 설정kanban_link(parent, child)
무응답 worker reclaimdispatcher가 자동 처리 (TTL 1시간)