# Task AR.2 Epic & Technical Design Baseline - 2026-07-07

## Scope

- convert the AR.1 transition architecture into an implementation-ready epic and technical-design baseline
- define epic boundaries, dependency order, delivery slices, technical contracts, and reuse rules for each AR.1 capability
- include workspace-design prerequisites and design-governance checkpoints before code implementation begins
- keep this phase documentation-only with no schema, API, UI, service, permission, or runtime business-logic changes

## Review Summary

Reviewed before drafting AR.2:

- `AGENTS.md`
- `plans/task-ar.2.md`
- `docs/standards/task-contract-template.md`
- `docs/standards/task-catalog.md`
- `docs/standards/project-foundations.md`
- `docs/standards/architecture-rules.md`
- `docs/standards/ui-ux-rules.md`
- `docs/standards/task-review-checklist.md`
- `layout.md`
- `docs/business/relationship-sales-workspace-blueprint-v1.md`
- `docs/implementation/task-bu-r.1-business-capability-audit-2026-07-07.md`
- `docs/implementation/task-ar.1-architecture-transition-plan-2026-07-07.md`
- `docs/implementation/task-ar.1-implementation-report-2026-07-07.md`
- `docs/security/crm-authorization-boundaries.md`
- `docs/adr/0014-crm-multi-role-user-assignment.md`
- `docs/adr/0015-customer-ownership-contact-sharing.md`
- `docs/adr/0016-won-lost-lifecycle-governance.md`
- `docs/adr/0017-report-foundation.md`
- `docs/adr/0018-lead-enquiry-domain-separation.md`
- `plans/task-j.md`
- `plans/task-d.md`
- `src/components/layout/page-container.tsx`
- `src/features/crm/dashboard/components/crm-dashboard.tsx`
- `src/features/crm/customers/components/customer-detail.tsx`
- `src/features/crm/reports/components/pipeline-report-view.tsx`

UI/UX design process inputs:

- `.agents/skills/ui-ux-pro-max/SKILL.md`
- `python .agents/skills/ui-ux-pro-max/scripts/search.py "relationship driven sales workspace enterprise crm operational dashboard" --design-system -f markdown -p "ALLA OS CRM Workspaces"`
- `python .agents/skills/ui-ux-pro-max/scripts/search.py "dashboard information hierarchy filters empty loading" --domain ux -n 12`
- `python .agents/skills/ui-ux-pro-max/scripts/search.py "minimalism enterprise dashboard" --domain style -n 8`
- `python .agents/skills/ui-ux-pro-max/scripts/search.py "analytics dashboard operational crm" --domain chart -n 10`

## AR.2 Objective

AR.2 turns AR.1 from architecture baseline into delivery baseline. The result of AR.2 is not code. The result is a frozen set of implementation epics and technical-design contracts that future work must follow.

AR.2 therefore answers:

1. Which epic comes first and why.
2. Which existing modules and foundations each epic must reuse.
3. Which new routes, services, query layers, and UI shells are expected.
4. Which schema/API risks exist before implementation starts.
5. Which workspace surfaces require dedicated UI/UX notes before coding.

## Implementation Principles Carried Forward

1. Preserve current production write owners: Customer, Contact, Lead, Opportunity, Quotation, Approval.
2. Introduce Activity, Timeline, Calendar, and role workspaces as extensions and projections.
3. Keep route handlers thin and business logic in feature/foundation server services.
4. Reuse resolved CRM access, approval, report, notification, audit, PDF, and artifact foundations.
5. Preserve current admin `/dashboard/workspaces` meaning; business workspaces live under `/dashboard/crm/*`.
6. Do not start any major workspace UI implementation without an approved UI/UX design note.

## Delivery Model

AR.2 groups future work into three layers of implementation:

| Layer | Purpose | Epics |
| --- | --- | --- |
| Foundational Runtime | create shared operational primitives | Activity Platform, Business Event Expansion |
| Projection Layer | create generated read models | Timeline Projection, Calendar Projection |
| Workspace Layer | create user-facing operational surfaces | Customer Workspace, My Day, Manager Workspace, Executive Workspace |

Supporting alignment epics:

- Lead Handoff & Outcome Alignment
- Relationship Health & Forecast Semantics
- Notification Expansion
- Terminology & Governance Reconciliation

## Epic Sequencing

| Order | Epic | Reason |
| --- | --- | --- |
| 1 | Activity Platform Foundation | unblocks Timeline, Calendar, My Day, Manager signals, and notification expansion |
| 2 | Business Event Publishing Expansion | creates shared event contracts and projection fan-out |
| 3 | Customer Workspace Enhancement | strongest partial base and least risky visible value |
| 4 | Timeline Projection | depends on Activity + event publishing |
| 5 | Calendar Projection & Workspace | depends on Activity + milestone mapping + event contracts |
| 6 | My Day Workspace | depends on Activity + Calendar + Approval + Hot Project signals |
| 7 | Notification Expansion | safer after event taxonomy and activity lifecycle exist |
| 8 | Manager Workspace | depends on Calendar, Dashboard, Timeline, My Day patterns |
| 9 | Executive Workspace | depends on Dashboard + Reports + Relationship Health summaries |
| 10 | Lead Handoff & Outcome Alignment | can proceed alongside workspace work, but should preserve current Lead foundation |
| 11 | Relationship Health & Forecast Semantics | finalizes derived scoring and naming after projections exist |
| 12 | Terminology & Governance Reconciliation | ongoing cross-epic cleanup with low runtime dependency |

## Epic Overview Matrix

| Epic | Type | Main Output | Depends On | Reuses | Risk |
| --- | --- | --- | --- | --- | --- |
| Activity Platform Foundation | new capability | shared activity domain | none | security, audit, notifications, customers, leads, opportunities, quotations | high |
| Business Event Publishing Expansion | extension | event envelope + publisher rules | none | approval notifications, audit, source services | medium |
| Customer Workspace Enhancement | preserve + extend | relationship execution workspace | AR.1 only | customer detail, related opportunity/quotation links, audit tab | medium |
| Timeline Projection | new projection | generated chronology read model | Activity + Events | audit naming, source services, CRM security | high |
| Calendar Projection & Workspace | new projection + workspace | cross-role time view | Activity + Events | approval automation, dashboard filter patterns, PageContainer | high |
| My Day Workspace | new workspace | personalized action home | Activity + Calendar + Approval | dashboard cards, report filters, notification signals | medium |
| Notification Expansion | preserve + extend | broader operational event coverage | Events + Activity | notification foundation, templates, recipient resolver | medium |
| Manager Workspace | new workspace | team control tower | Calendar + My Day + Dashboard | dashboard foundation, reports, approvals | medium |
| Executive Workspace | new workspace | strategic monitoring surface | Manager dependencies partly complete | dashboard, reports, relationship summaries | medium |
| Lead Handoff & Outcome Alignment | enhancement | richer lead-to-opportunity flow | Activity optional | lead foundation, opportunity links, CRM access | medium |
| Relationship Health & Forecast Semantics | enhancement | derived health/forecast views | Timeline + Activity + Customer Workspace | customer, opportunity, quotation, dashboard | medium |
| Terminology & Governance Reconciliation | controlled refactor | docs and naming cleanup | none | blueprint, ADRs, current routes | low |

## Technical Design Standards for Every Epic

Each future implementation epic under AR.2 must include:

1. objective and explicit non-goals
2. historical review section
3. foundations reused
4. API boundary
5. service-layer contract
6. query/mutation design
7. permission and pricing boundary
8. audit events
9. UI/UX design note reference if the epic includes user-facing workspace surfaces
10. verification plan

## EPIC 1: Activity Platform Foundation

### Objective

Introduce the first production-grade shared Activity domain without breaking current lead/opportunity/quotation follow-up behavior.

### Non-goals

- no replacement of current follow-up APIs on day one
- no silent migration of dashboard/report datasets
- no automatic removal of audit-backed lead follow-up seam

### Existing foundations to reuse

- `src/lib/auth/crm-access.ts`
- `src/features/crm/security/server/service.ts`
- `src/features/foundation/audit-log/service.ts`
- `src/features/foundation/notifications/**`
- `src/features/crm/customers/**`
- `src/features/crm/leads/**`
- `src/features/crm/opportunities/**`
- `src/features/crm/quotations/**`
- `src/features/crm/activity/types.ts`

### Recommended implementation structure

```text
src/features/crm/activities/
  api/
    types.ts
    service.ts
    queries.ts
    mutations.ts
  components/
  schemas/
  server/
    service.ts
    adapters/
      lead-followup.adapter.ts
      opportunity-followup.adapter.ts
      quotation-followup.adapter.ts
```

### Expected route surface

- `GET /api/crm/activities`
- `POST /api/crm/activities`
- `GET /api/crm/activities/[id]`
- `PATCH /api/crm/activities/[id]`
- `POST /api/crm/activities/[id]/complete`
- `POST /api/crm/activities/[id]/cancel`
- `POST /api/crm/activities/[id]/reassign`

### Minimum technical design decisions

- one primary record reference plus optional related references
- owner and assignee fields
- lifecycle states: planned, in_progress, completed, cancelled
- overdue derived in query/view layer, not lifecycle storage
- activity-level security resolves from primary record plus assignment
- pricing-sensitive notes must reuse quotation pricing visibility checks

### Required permission set

- `crm.activity.read`
- `crm.activity.create`
- `crm.activity.update`
- `crm.activity.complete`
- `crm.activity.cancel`
- `crm.activity.delete`
- `crm.activity.reassign`

### Query strategy

- define centralized query keys in `api/queries.ts`
- use list/detail/related-entity keys
- keep existing follow-up queries intact during transition

### Migration rule

Phase 1 must support coexistence:

- existing lead follow-up
- existing opportunity follow-up
- existing quotation follow-up
- new Activity records

No destructive cutover is allowed until dashboard/report continuity is proven.

### Validation and testing expectations

- permission tests
- ownership and visibility tests
- primary/related reference validation tests
- mutation audit tests
- notification publication smoke tests

## EPIC 2: Business Event Publishing Expansion

### Objective

Standardize operational business events so source services can publish shared events consumed by Timeline, Calendar, Notification, Dashboard, My Day, and future automation.

### Foundations to reuse

- approval notification event pipeline
- audit foundation
- source-domain service layers

### Technical design

- keep source-of-truth writes inside existing services
- publish event only after successful mutation
- preserve current approval event names for compatibility
- add shared envelope with `schemaVersion`

### Event families

- `relationship.*`
- `lead.*`
- `opportunity.*`
- `quotation.*`
- `approval.*`
- `activity.*`

### Implementation note

This epic should not replace the notification foundation with a new event bus. It should formalize a shared publisher contract and allow the existing notification event service to consume it.

## EPIC 3: Customer Workspace Enhancement

### Objective

Extend current customer detail into the first production Customer Workspace aligned to the business blueprint.

### Starting point

- `src/features/crm/customers/components/customer-detail.tsx`
- existing related opportunities and quotations
- owner card
- contacts tab
- audit log tab

### Required new sections

- Relationship Health
- Upcoming Activities
- Activities
- Timeline
- PO / Won History
- Files / Documents
- Relationship Summary / Notes

### Technical design

- preserve current `/dashboard/crm/customers/[id]` route
- extend the existing detail shell rather than replacing it
- add new tabs/cards fed by Activity and Timeline projections when available
- relationship health remains derived, not manually editable

### Dependency

Can start before Activity/Timeline are complete by using placeholders or staged sections, but final implementation depends on those epics.

## EPIC 4: Timeline Projection

### Objective

Create a generated chronology layer for Customer, Opportunity, Quotation, and later Lead contexts.

### Technical design

- query-time read model first
- source adapters per domain
- deterministic ordering and tie-break rules
- no manual timeline CRUD
- no timeline table as source-of-truth in phase 1

### Recommended server structure

```text
src/features/crm/timeline/
  api/
    types.ts
    service.ts
    queries.ts
  server/
    service.ts
    adapters/
      activity.adapter.ts
      lead.adapter.ts
      opportunity.adapter.ts
      quotation.adapter.ts
      approval.adapter.ts
      customer.adapter.ts
```

### Security rule

Projection service must apply source-record access and pricing redaction before returning rows.

## EPIC 5: Calendar Projection & Workspace

### Objective

Create a time-based operational workspace over activities, reminders, milestones, and approval due signals.

### Technical design

- new route: `/dashboard/crm/calendar`
- day/week/month/agenda views
- agenda is manager-friendly default view
- milestone events are visually distinct from owned work
- route uses server prefetch and client `useSuspenseQuery()`

### Sources

- activities
- reminder signals
- opportunity expected-award / expected-delivery milestones
- quotation validity or milestone signals
- approval due and escalation signals

### UI dependency

Must not start code before a workspace UI/UX note is approved.

## EPIC 6: My Day Workspace

### Objective

Create the personalized operational home screen for action-taking users.

### Technical design

- new route: `/dashboard/crm/my-day`
- modules:
  - Today's Activities
  - Overdue Activities
  - Upcoming Meetings
  - Pending Approvals
  - Hot Projects Requiring Action
  - Urgent Quotations
  - Relationship Alerts

### Composition rule

My Day does not own data. It composes:

- Activity views
- Calendar windows
- Approval pending data
- Hot Project signals
- relationship health or follow-up gap signals

### UX rule

My Day must prioritize next action, not passive analytics.

## EPIC 7: Notification Expansion

### Objective

Extend the notification foundation from approval-centric delivery into broader operational activity and manager workflow coverage.

### New event coverage candidates

- activity assigned
- activity due soon
- activity overdue
- manager escalation
- quotation expiring soon
- hot project flagged
- expected award date changed

### Foundations to reuse

- `src/features/foundation/notifications/**`
- existing recipient resolver
- existing template system
- existing inbox UI and React Query hooks

### Constraint

Do not widen notification writes in a way that duplicates Activity or Reminder as source-of-truth records.

## EPIC 8: Manager Workspace

### Objective

Create the team execution control tower for managers.

### Technical design

- new route: `/dashboard/crm/manager`
- core modules:
  - Team Calendar
  - Overdue Activities
  - Idle Opportunities
  - Forecast Review
  - Hot Projects
  - Approval Queue
  - Workload Balance
  - Relationship Risk Alerts

### Reuse expectations

- reuse dashboard KPI service
- reuse report datasets where possible
- reuse approval runtime and visibility rules
- consume calendar and timeline projections instead of building ad hoc tables

### Risk

Team visibility is still partially approximate until a first-class team graph exists. AR.2 must document that manager workspace should remain branch/product/access aware and avoid inventing a parallel team permission system.

## EPIC 9: Executive Workspace

### Objective

Create a high-level strategic workspace for pipeline health, revenue outlook, and strategic account monitoring.

### Technical design

- new route: `/dashboard/crm/executive`
- emphasize summary + exception drilling, not operational task lists
- reuse dashboard/report infrastructure first
- use compact, high-value KPI modules and limited chart count

### Recommended data blocks

- Pipeline Health
- Revenue Outlook
- Strategic Accounts at Risk
- Win/Loss Trend
- Forecast Confidence
- Key Relationship Movement

## EPIC 10: Lead Handoff & Outcome Alignment

### Objective

Strengthen lead-to-opportunity handoff and downstream lead-outcome derivation without destabilizing the current lead foundation.

### Scope ideas

- explicit handoff-ready flow
- clearer lead-to-opportunity conversion markers
- derived lead outcome rules based on linked opportunities
- activity suggestions around handoff readiness

### Reuse

- current lead domain
- opportunity links
- customer ownership
- CRM access

## EPIC 11: Relationship Health & Forecast Semantics

### Objective

Freeze the implementation rules for relationship health, follow-up health, expected award date, expected delivery date, and hot-project-driven urgency.

### Technical design

- derived scoring/service only
- no user-maintained health override in phase 1 unless separately approved
- consume activity recency, overdue count, open opportunity gaps, and strategic flags
- align dashboard, customer workspace, my day, and manager workspace to one shared semantics layer

## EPIC 12: Terminology & Governance Reconciliation

### Objective

Clean up remaining historical `enquiry` wording and reconcile governance docs with the active `opportunity` production model.

### Constraints

- do not rename stable production routes or schema without explicit migration approval
- prefer documentation, labels, and implementation-note reconciliation first

## UI/UX Design Gate

The following epics require a mandatory approved UI/UX design note before code starts:

- Customer Workspace Enhancement
- Calendar Projection & Workspace
- My Day Workspace
- Manager Workspace
- Executive Workspace
- any Activity list/detail page that becomes a new major workspace surface

The UI/UX note must reference:

- Business Constitution / BU-R.0 / BU-R.0.1
- BU-R.1
- AR.1
- this AR.2 baseline
- `layout.md`
- `docs/standards/ui-ux-rules.md`
- `ui-ux-pro-max`

## Shared API and Service Conventions

Every new AR.2 feature should follow:

```text
src/features/<feature>/
  api/
    types.ts
    service.ts
    queries.ts
    mutations.ts
  components/
  schemas/
  server/
```

Route handlers remain under `src/app/api/**`.

## Shared Permission and Security Requirements

Every AR.2 epic touching CRM data must:

- require organization access
- resolve CRM access server-side
- enforce branch/product/ownership scope in service layer
- enforce pricing visibility for quotation-derived commercial data
- audit security denials where applicable

No epic may authorize from raw role strings alone.

## Shared Verification Standard

Implementation tasks spawned from AR.2 should define:

- `tsc --noEmit`
- targeted lint, if touched area already has lint expectations
- feature service tests where practical
- route handler and permission scenarios
- manual workspace checks for loading, empty, error, responsive, and permission-aware states

## Technical Risk Register

| Risk | Affected Epics | Why | Mitigation |
| --- | --- | --- | --- |
| Follow-up data fragmentation | Activity, Timeline, Calendar, Dashboard consumers | existing lead/opportunity/quotation follow-up storage differs | adapter-first rollout and dataset continuity tests |
| Approval notification duplication | Events, Notification Expansion | approval flow already publishes notifications | keep approval event compatibility and dedupe strategy |
| Workspace route meaning collision | Calendar, My Day, Manager, Executive | `/dashboard/workspaces` already used for admin workspaces | keep business workspaces under `/dashboard/crm/*` |
| Pricing leakage | Timeline, Calendar, Executive, My Day | quotation-derived data may appear in new views | centralize pricing checks in projection/query services |
| Team visibility ambiguity | Manager, Calendar, Executive | team graph not yet first-class | reuse current resolved access and document known limitation |
| Over-engineered repository abstraction | Activity, Timeline | repo prefers service-layer-first pattern | keep internal adapters lightweight and feature-owned |

## AR.2 Freeze Outcome

AR.2 freezes:

1. the epic order for transition delivery
2. the minimum technical design boundaries for each epic
3. the no-code-before-design rule for major workspace surfaces
4. the reuse-first rule for security, notification, dashboard, report, and document foundations
5. the implementation expectation that Activity and projections arrive incrementally beside current production modules

## Verification

- Documentation-only change.
- No schema, migration, API, service, UI, permission, or runtime business-logic file changed.
- No build or test command was required for this phase.

## Outcome

AR.2 now provides the implementation-ready epic and technical design baseline for the Relationship-Driven Sales Workspace transition. Future implementation tasks can use this document to choose sequence, define scope, reuse correct foundations, prepare workspace UI/UX notes, and avoid breaking the mature production CRM backbone.
