You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Buyer surface can already show source_project_code / source_project_name, semantic post_project_mention evidence, Event Lineage, R&R actors, tickets, and post details. However, a project evidence card currently offers only Search related posts. A buyer cannot open one project and inspect the full order-to-current-issue history on one screen.
The required To-Be surface is a project timeline such as:
Order → specification change → delivery → VOC → rebid
with the selected event showing:
the related order and prior history,
the relevant specification-change history,
observed responsibility history,
responsibility handoffs or intervals with no observed assignee,
exact source records and provenance.
Root cause
Project identity, chronological post facts, reconstruction edges, and R&R evidence are stored in separate read paths. There is no ABAC-safe project-history projection that joins them without changing their truth status. The frontend therefore falls back to a board text search rather than a project-level history view.
Product boundary
This feature must explain stored evidence without inventing project-management facts.
PostgreSQL source records remain authoritative.
source_project_* fields are explicit source hints.
post_project_mention rows are semantic candidates with their existing confidence and provenance.
post_lineage_edge is reconstructed/inferred related history, not a causal claim.
post_summary_role is observed R&R evidence, not an authoritative HR assignment ledger.
The first release uses source_post.created_at as document_time unless an explicit event clock exists; it must not relabel document time as event time.
Unauthorized private, draft-excluded, or deletion-excluded posts must not influence the timeline, reverse trace, counts, or handoff analysis.
Functional acceptance criteria
Backend projection
Add a versioned GET /api/project-history?project_key=... read contract.
Match authorized posts by exact normalized explicit project code/name or exact stored semantic project key/name.
Bound the request and response; stable-sort by (occurred_at, post_id) and report truncation.
Return a declared time_basis_code; default to document_time for the current schema.
Return typed related-prior paths using only visible project posts and persisted lineage edges.
Return each path's truth status, source relation, score where applicable, and provenance.
Return observed R&R actors per event and adjacent-event responsibility transitions: continuous, handoff, or assignment_gap.
Return the distinct observed actor count without treating missing R&R as a negative assignment fact.
Buyer UI
Replace the project card's search-only dead end with Open project history while retaining board search as a secondary action.
Render an accessible chronological timeline with event date, title, and declared time basis.
Selecting an event updates one detail panel with related prior history and observed responsibility history.
Handoffs and gaps are communicated by text/icons, not color alone.
Provide keyboard operation, visible focus, aria-current, responsive reflow, and an exact-value table/ordered-list representation.
Allow opening the selected event's source post without losing the originating Buyer context.
Localize the surface for Korean, English, Chinese, Japanese, and Vietnamese.
Add a Storybook fixture representing order, specification change, delivery, VOC, and rebid.
Required tests
RED→GREEN API contract tests for exact project matching and stable chronology.
ABAC regression proving an unauthorized private event cannot affect history, lineage paths, actor counts, or handoff segments.
Regression for explicit and semantic project evidence converging on one event without duplication.
Unit tests for reverse-path traversal and continuous / handoff / assignment_gap classification.
Frontend tests for selection, keyboard navigation, related-history disclosure, responsibility count, and source-post opening.
I18n and Storybook build checks.
Full PostgreSQL/Python and frontend lint/test/build gates on the exact head.
ISO 8601-1:2019 with Amendment 1:2022 for interchange date/time representation; the 2026 edition is still a committee draft: https://www.iso.org/standard/70907.html
Implement as a new stacked PR on the stabilized head of #264. Do not mix the separate #274 channel-score evidence-table work into this slice. #258 must ultimately land before the descendant Buyer-surface stack is merged.
Buyer problem
The Buyer surface can already show
source_project_code/source_project_name, semanticpost_project_mentionevidence, Event Lineage, R&R actors, tickets, and post details. However, a project evidence card currently offers only Search related posts. A buyer cannot open one project and inspect the full order-to-current-issue history on one screen.The required To-Be surface is a project timeline such as:
Order → specification change → delivery → VOC → rebidwith the selected event showing:
Root cause
Project identity, chronological post facts, reconstruction edges, and R&R evidence are stored in separate read paths. There is no ABAC-safe project-history projection that joins them without changing their truth status. The frontend therefore falls back to a board text search rather than a project-level history view.
Product boundary
This feature must explain stored evidence without inventing project-management facts.
source_project_*fields are explicit source hints.post_project_mentionrows are semantic candidates with their existing confidence and provenance.post_lineage_edgeis reconstructed/inferred related history, not a causal claim.post_summary_roleis observed R&R evidence, not an authoritative HR assignment ledger.source_post.created_atasdocument_timeunless an explicit event clock exists; it must not relabel document time as event time.Functional acceptance criteria
Backend projection
GET /api/project-history?project_key=...read contract.(occurred_at, post_id)and report truncation.time_basis_code; default todocument_timefor the current schema.continuous,handoff, orassignment_gap.Buyer UI
aria-current, responsive reflow, and an exact-value table/ordered-list representation.Required tests
continuous/handoff/assignment_gapclassification.Standards grounding
Stack and merge boundary
Implement as a new stacked PR on the stabilized head of #264. Do not mix the separate #274 channel-score evidence-table work into this slice. #258 must ultimately land before the descendant Buyer-surface stack is merged.