The slice
The campaign-digest widget (#690) is the home tile; the Campaign tab is its drill-down sibling — a Work Column tab rendering the FULL campaign ledger view for the active campaign: the objective, the complete verdict table (unit → status → evidence), the blocked queue with reasons, and the loop log — everything GET /amicode/campaigns and the per-campaign detail route (#662) already serve.
Acceptance criteria
Pointers
The slice
The campaign-digest widget (#690) is the home tile; the Campaign tab is its drill-down sibling — a Work Column tab rendering the FULL campaign ledger view for the active campaign: the objective, the complete verdict table (unit → status → evidence), the blocked queue with reasons, and the loop log — everything
GET /amicode/campaignsand the per-campaign detail route (#662) already serve.Acceptance criteria
amico.prompt— the tab is the readable surface beside it).Pointers
packages/extension/src/amicode_service/campaign_ledger.ts(the data path),index.ts(the routes),widgets_src/campaign-digest.ts(the digest's rendering pattern).packages/app-bundle/overlay/packages/app/src/context/layout.tsx,pages/session.tsx(campaign context today); the Work Column's tab structure (explore).