Skip to content

[Buyer gap] 프로젝트 전 주기 이력을 단일 타임라인에서 조회 #278

Description

@seonghobae

Buyer problem

현재 Buyer surface는 개별 post, Event Lineage, VOC, Calendar, Customer master, Ask Agent를 연결하지만 프로젝트 단위의 전체 이력을 한 화면에서 시간순으로 읽을 수 없다. 사용자는 수주·사양 변경·납품·VOC·재입찰처럼 서로 다른 시점과 출처에 흩어진 기록을 매번 검색하고 개별 post를 열어야 한다.

Required buyer outcome

프로젝트 하나를 선택하면 다음을 한 화면에서 확인할 수 있어야 한다.

  1. 전 주기 시계열 조회 — 가장 이른 권한 있는 프로젝트 기록부터 현재 이슈까지 시간축으로 연결한다.
  2. 연관 이력 역추적 — 선택한 이벤트에서 persisted Event Lineage predecessor/successor를 따라 관련 과거·후속 기록을 연다. 이는 인과 주장으로 승격하지 않는다.
  3. 담당 변경 구간 — 각 기록의 observed source author와 persisted semantic role evidence를 시간순으로 비교해 변경 및 근거 공백을 표시한다. HR assignment 원장으로 과장하지 않는다.
  4. 단일 화면 drill-down — 타임라인 노드 선택 시 이벤트 상세, 프로젝트 근거, 관련 이벤트, 담당/작성자 근거를 표시하고 원문 post를 연다.
  5. historical cutoff — knowledge cutoff가 주어지면 그 시점까지 이용 가능했던 권한 있는 기록만 표시한다.

Truth and authorization boundaries

  • exact source project code/name 또는 persisted post_project_mention.project_key만 같은 프로젝트로 묶는다. fuzzy match를 프로젝트 identity로 사용하지 않는다.
  • public 또는 요청 계정 소속 법인의 post만 포함한다.
  • source-field project identity는 observed, semantic project mention은 inferred로 표시한다.
  • persisted post_lineage_edge는 related-history evidence이며 causal edge가 아니다.
  • 현재 schema에서 별도 event/available clock이 없으면 source_post.created_at fallback을 명시한다.
  • TEPP, fast-mlsirm, contextual-orchestrator 결과가 없을 때 0으로 대체하지 않는다.

Acceptance criteria

  • Buyer GNB에 Project history가 추가된다.
  • accessible horizontal timeline, keyboard selection, exact-value table fallback, responsive overflow를 제공한다.
  • project index와 project timeline API가 bounded·ABAC-filtered·cutoff-aware하게 동작한다.
  • selected event detail에서 related predecessor/successor와 담당/작성자 evidence를 확인하고 원문을 열 수 있다.
  • empty, access-denied, partial evidence, missing responsibility evidence 상태가 다음 행동을 안내한다.
  • Storybook inventory, ADR, changelog, API/frontend/backend tests가 포함된다.
  • 신규 production code statement/branch coverage와 public docstring gate를 충족한다.

Stack boundary

Buyer-surface prerequisite는 #258 → #260 → #261 → #262 → #263 → #264이다. 구현 PR은 #264 exact head에 Draft로 적층하고, 부모가 이동하면 exact-current-parent에 restack한 뒤 전체 검증을 다시 수행한다. #275의 Event Intelligence Dossier를 재구현하지 않고 향후 optional artifact projection으로 소비한다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions