From cc00ac25fb862e6ff2d4269f0c78cf1278e10e69 Mon Sep 17 00:00:00 2001 From: toki Date: Sat, 23 May 2026 15:27:38 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20plane-task-pipeline-design=20=EB=A7=88?= =?UTF-8?q?=EC=9D=BC=EC=8A=A4=ED=86=A4=20=EC=A7=84=ED=96=89=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=20=EB=B0=8F=20=EC=83=9D=EC=84=B1=20=ED=9D=90=EB=A6=84?= =?UTF-8?q?=20=EB=AC=B8=EC=84=9C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../milestones/plane-task-pipeline-design.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/agent-ops/roadmap/milestones/plane-task-pipeline-design.md b/agent-ops/roadmap/milestones/plane-task-pipeline-design.md index f1ebf28..76c819f 100644 --- a/agent-ops/roadmap/milestones/plane-task-pipeline-design.md +++ b/agent-ops/roadmap/milestones/plane-task-pipeline-design.md @@ -23,7 +23,11 @@ Plane Task Pipeline Design ## 필수 기능 -- [ ] Plane work item -> core task 생성/연결 흐름을 문서화한다. +- [x] Plane work item -> core task 생성/연결 흐름을 문서화한다. + - [x] 초기 entrypoint는 기존 `POST /api/integrations/plane/tasks`를 기준선으로 삼는다. + - [x] 생성 단계는 Plane work item 조회와 core task 저장까지만 담당한다. + - [x] 생성된 task는 `pending` 상태로 남기고 enqueue는 별도 단계에서 처리한다. + - [x] Plane 연결 정보는 provider-neutral external ref와 Plane metadata에 함께 저장한다. - [ ] 자동 enqueue 여부와 사용자/운영 트리거 경계를 결정한다. - [ ] external ref metadata 계약을 확정한다. - [ ] 완료/실패 결과의 Plane comment/status update 정책을 정한다. @@ -52,4 +56,13 @@ Plane Task Pipeline Design - 관련 경로: `services/core/internal/adapters/plane/`, `services/core/internal/http/`, `services/core/internal/storage/`, `services/core/internal/scheduler/`, `services/core/internal/workflow/`, `services/core/README.md` - 선행 작업: Plane Communication Foundation - 후속 작업: Workflow Core +- 초기 생성/연결 흐름: + - 운영자 또는 상위 자동화가 `POST /api/integrations/plane/tasks`를 호출한다. + - 요청 필수값은 `workspace_slug`, `project_id`, `work_item_id`이고, `state_id`, `external_url`, `comment`는 선택값으로 받는다. + - core는 Plane adapter로 work item detail을 조회해 title과 description 후보를 얻는다. + - task title은 Plane work item name을 우선하고, 비어 있으면 `work_item_id`를 사용한다. + - task payload의 `message`는 요청 `comment`, Plane stripped description, plain description, HTML description, title 순서로 선택한다. + - task source는 `plane`, external provider는 `plane`, external id는 `work_item_id`로 저장한다. + - `workspace_slug`, `project_id`, `work_item_id`, `state_id`, `external_url`은 `payload.plane`과 `external_metadata`에 저장한다. + - 생성 직후 task 상태는 `pending`이며, 이 entrypoint는 enqueue, Plane 상태 변경, 결과 comment 발행을 수행하지 않는다. - 확인 필요: trigger 방식은 현재 구현 상태와 운영 기대치를 보고 수동 endpoint 유지, webhook, polling 중 하나를 선택한다.