- Agent-Ops MCP Control Plane을 Agent-Ops Work Item Lifecycle로 변경
- MCP 제어 표면은 ops lifecycle과 분리해 별도 스케치 phase로 이동
- ROADMAP.md 및 관련 PHASE/milestone 파일 업데이트
roadmap sync 과정에서 origin 프로젝트 간행본의 identity
정보를 채우는 backfill 파이프라인을 구현한다.
- git_backfiller: git 레이블/태그 간행본의 identity 백필
- migration: backfill 완료 단계 테이블 스키마 추가
- pipeline/service: backfill 호출 흐름 연동
- identity_write: backfill 결과 쓰기 통합
- Update tasks.sql.go with new query mappings
- Add scheduler job definitions and tests
- Extend storage store with new methods
- Update workflow lifecycle and service tests
- Add task query definitions for authoring
When the missing-create path stores a RoadmapRevision, a later reconcile push
(after the authoring roundtrip adds the Plane identity to the milestone file)
conflicts with ReconcileCreationCycle's revision guard because the new push has
a different revision than the original missing-create push.
Since missing-create has no completed projection steps, a future reconcile on a
different revision should be allowed to resume. Omit RoadmapRevision from the
missing-create job args so the persisted row stores NULL and the revision guard
does not block the subsequent reconcile push.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a milestone file's provider identity block omits Tenant and Project
(both are optional since MatchDevelopMilestone fills them from expected),
the bridge's FetchWorkItem call fails with ErrInvalidInput because
planeWorkItemRef requires all three: tenant, project, id.
Fill in missing Tenant/Project from BridgeConfig before building the ref,
mirroring the missing-create path which always uses b.cfg.Tenant/Project.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
On the missing-create path, SyncCreation creates a new Plane work item and
returns SyncActionProjected before any workflow task has been registered for
the new work item UUID. Calling CompleteTaskByExternalRef with an empty Ref.ID
caused pgx.ErrNoRows → River retry → reconcile returning not_ready, leaving
only develop_matched recorded.
Fix 1 (roadmap_sync_jobs.go): guard CompleteTaskByExternalRef with args.Ref.ID != ""
so missing-create jobs complete cleanly without retrying.
Fix 2 (workflow/service.go): CompleteTaskByExternalRef now returns (zero, false, nil)
when GetTaskByExternalRef returns pgx.ErrNoRows, so reconcile jobs that have no
registered workflow task also complete cleanly rather than triggering retry loops.
Also adds PLANE_PROJECT_ID to docker-compose.yml environment so the missing-create
bridge receives non-empty tenant/project inputs at runtime.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- roadmapsync pipeline에 retry 로직 및 개발 일치 검증 로직 추가
- gitosync scanner에 slug 재조정 및 plane 매칭 로직 강화
- roadmap sync identity 관리를 위한 migration(00009) 및 SQL 쿼리 추가
- milestone parser 테스트 및 retry 테스트 보강
- agent-ops 문서(PHASE, SDD, milestones) 갱신
- agent-task archive 및 작업 디렉터리 추가
- authoring: identity write 도메인 구현 (identity_write.go)
- authoring: request/result 도메인 정리 및 테스트 개선
- scheduler: job/river 구조 리팩토링 및 테스트 보완
- gitosync: bridge/scanner 테스트 개선
- roadmap: plane-origin-authoring-roundtrip-sync 마일스톤 업데이트
- Add code review and plan logs for cloud G07, G08 subtasks
- Add stale task detection to scheduler
- Update OpenAI client config and tests
- Fix core services Makefile, README, docker-compose, and run script