623 lines
37 KiB
Markdown
623 lines
37 KiB
Markdown
# Task Catalog
|
|
|
|
This catalog is the official index of completed ALLA OS task history.
|
|
|
|
Use it to answer these questions before implementation:
|
|
|
|
- Which task created this feature or foundation?
|
|
- Which ADR governs this area?
|
|
- Which foundation was created or modified?
|
|
- Which implementation note should be reviewed first?
|
|
|
|
This file complements:
|
|
|
|
- `AGENTS.md`
|
|
- `docs/standards/project-foundations.md`
|
|
- `docs/standards/architecture-rules.md`
|
|
- `docs/standards/ui-ux-rules.md`
|
|
- `docs/standards/task-review-checklist.md`
|
|
- `docs/adr/**`
|
|
- `docs/business/**`
|
|
|
|
## How To Use This Catalog
|
|
|
|
Before changing any feature, foundation, report, PDF flow, or authorization behavior:
|
|
|
|
1. Identify the related foundation in `project-foundations.md`.
|
|
2. Find the creating and modifying tasks in this catalog.
|
|
3. Review the linked ADRs.
|
|
4. Review the listed implementation notes before coding.
|
|
5. Reuse the established pattern before creating a new one.
|
|
|
|
## Foundation -> Task Map
|
|
|
|
| Foundation | Created By | Key Follow-up Tasks |
|
|
| --- | --- | --- |
|
|
| Auth Context Foundation | Task B | Task B.1, Task D.1 |
|
|
| Organization Context Foundation | Task B | Task B.1 |
|
|
| Permission Foundation | Task B | Task L, Task J.1 |
|
|
| Branch Scope Foundation | Task B | Task B.1, Task L, Task L.3 |
|
|
| Audit Foundation | Task B | Tasks C-I, K.1, K.2, L.3 |
|
|
| Master Data Foundation | Task B | Task B.1, Task D.4, Task J.1, Task K.1, Hotfix 1 |
|
|
| Document Sequence Foundation | Task B | Task B.1, Task D, Task E, Task J.1 |
|
|
| Customer Ownership Foundation | Task C.1 | Task L.3.1 |
|
|
| Contact Sharing Foundation | Task C.1 | Task L.3.1 |
|
|
| Approval Foundation | Task F | Task H.3, Task J.1, Task L.3, Task L.3.1 |
|
|
| Document Template Foundation | Task G | Task H.2, Task H.3, Task H.5, Task H.5.3, Task J.1 |
|
|
| PDF Foundation | Task H | Task H.1, Task H.2, Task H.3, Task H.5, Task H.5.1, Task H.5.3, Task I |
|
|
| Document Artifact Foundation | Task I | Task L.3 |
|
|
| Storage Foundation | Task I | Task L.3 |
|
|
| Dashboard Foundation | Task J | Task D.3, Task D.4, Task J.0, Task L.3, UX.1 |
|
|
| Reporting Foundation | Task K.1 | Task K.2 |
|
|
| Role Management Foundation | Task L | Task L.1, Task L.2 |
|
|
| CRM Role Assignment Foundation | Task L.1 | Task L.2 |
|
|
| Authorization Foundation | Task L | Task L.1, Task L.2, Task L.3, Task L.3.1 |
|
|
| Follow-Up Foundation | Task D plus Task E | Task J, Task K.2 |
|
|
| Revenue Attribution Foundation | Task D.2.1 | Task J, Task K.1, Task K.2 |
|
|
|
|
## ADR -> Task Map
|
|
|
|
| ADR | Related Tasks |
|
|
| --- | --- |
|
|
| ADR-0006 Branch Domain Model | Task B, Task B.1, Task J.1 |
|
|
| ADR-0007 Quotation Revision Strategy | Task E.1, Task F |
|
|
| ADR-0008 Attachment Storage Strategy | Task E.1, Task I |
|
|
| ADR-0009 Approved Document Storage Lifecycle | Task H.1, Task I |
|
|
| ADR-0010 Revenue Attribution Governance | Task D.2.1, Task J, Task K.1, Task K.2 |
|
|
| ADR-0011 Lead and Enquiry Ownership Model | Task D.3, Task D.3.1, Task J, Task K.2 |
|
|
| ADR-0012 Approval Signature Strategy | Task H.3, Task J.1 |
|
|
| ADR-0013 PDF Visual Parity Strategy | Task H.5, Task H.5.1, Task H.5.3 |
|
|
| ADR-0014 CRM Multi-Role User Assignment | Task L, Task L.1, Task L.2, Task L.3 |
|
|
| ADR-0015 Customer Ownership and Contact Sharing | Task C.1, Task L.3.1 |
|
|
| ADR-0016 Won / Lost Lifecycle Governance | Task D.4, Task J, Task K.2 |
|
|
| ADR-0017 CRM Report Foundation | Task K.1, Task K.2 |
|
|
|
|
## Task Dependency Map
|
|
|
|
- Task B depends on: Task A
|
|
- Task B.1 depends on: Task B
|
|
- Task C depends on: Task B, Task B.1
|
|
- Task C.1 depends on: Task C, Task L.3 context for later security hardening
|
|
- Task D depends on: Task B, Task B.1, Task C
|
|
- Task D.1 depends on: Task D, Task B foundations
|
|
- Task D.2 depends on: Task D, Task E
|
|
- Task D.2.1 depends on: Task D.2, Task J.0
|
|
- Task D.3 depends on: Task D, Task D.1
|
|
- Task D.3.1 depends on: Task D.3
|
|
- Task D.4 depends on: Task D, Task D.3
|
|
- Task E depends on: Task D, Task B foundations
|
|
- Task E.1 depends on: Task E
|
|
- Task F depends on: Task E, Task E.1
|
|
- Task G depends on: Task E, Task F
|
|
- Task H depends on: Task G, Task F
|
|
- Task H.1 depends on: Task H
|
|
- Task H.2 depends on: Task H, Task H.1
|
|
- Task H.3 depends on: Task F, Task H.2
|
|
- Task H.5 depends on: Task H.2, Task H.3
|
|
- Task H.5.1 depends on: Task H.5
|
|
- Task H.5.2 depends on: historical record missing
|
|
- Task H.5.3 depends on: Task H.5, Task H.5.1
|
|
- Task I depends on: Task H, Task H.1
|
|
- Task J.0 depends on: Task D.2
|
|
- Task J depends on: Task J.0, Task D.2.1, Task D.3, Task D.4, Task F
|
|
- Task J.1 depends on: Task B, Task F, Task G
|
|
- Task K.1 depends on: Task J, Task L foundations
|
|
- Task K.2 depends on: Task K.1, Task D.3, Task D.4, Task L.3
|
|
- Task L depends on: Task D.1, Task J
|
|
- Task L.1 depends on: Task L
|
|
- Task L.2 depends on: Task L.1, users foundation
|
|
- Task L.3 depends on: Task L, Task L.1, Task I, Task J
|
|
- Task L.3.1 depends on: Task C.1, Task L.3, Task F
|
|
- Task UX.1 depends on: Task D.3, Task J
|
|
- Hotfix 1 depends on: Task C, Task B master options
|
|
|
|
## Task Entries
|
|
|
|
### Task A
|
|
|
|
- Task ID: `Task A`
|
|
- Task Name: `Template Audit`
|
|
- Status: `Completed`
|
|
- Objective: Freeze the initial project conventions and identify which repo areas were app-owned versus template/demo seams before CRM production work began.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `None`
|
|
- Major Deliverables: project structure audit, tenant-boundary freeze, module-pattern guidance, `Layout.md` usage guidance, migrated-pattern references.
|
|
- Key Files: `docs/implementation/task-a-template-audit.md`
|
|
- Read Before Modify: `task-a-template-audit.md`, `AGENTS.md`, `architecture-rules.md`
|
|
|
|
### Task B
|
|
|
|
- Task ID: `Task B`
|
|
- Task Name: `Template Audit`
|
|
- Status: `Completed`
|
|
- Objective: Create the shared foundation layer without introducing CRM business modules.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `Auth Context Foundation`, `Organization Context Foundation`, `Permission Foundation`, `Branch Scope Foundation`, `Master Data Foundation`, `Document Sequence Foundation`, `Audit Foundation`
|
|
- Foundations Modified: `None`
|
|
- Major Deliverables: schema and migration for early foundations, master-options API, shared helpers, audit helper, initial master-options UI path.
|
|
- Key Files: `docs/implementation/task-b-template-audit.md`, `src/features/foundation/**`, `src/app/api/foundation/master-options/route.ts`
|
|
- Read Before Modify: `task-b-template-audit.md`, `project-foundations.md`, `task-b1-foundation-stabilization.md`
|
|
|
|
### Task B.1
|
|
|
|
- Task ID: `Task B.1`
|
|
- Task Name: `Foundation Stabilization`
|
|
- Status: `Completed`
|
|
- Objective: Stabilize foundation seed data and isolate production CRM routes from demo seams.
|
|
- Related ADRs: `ADR-0006`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Master Data Foundation`, `Document Sequence Foundation`, `Branch Scope Foundation`, `Auth Context Foundation`, `Organization Context Foundation`, `Permission Foundation`
|
|
- Major Deliverables: repeatable foundation seed, production-safe CRM routes, demo isolation, schema and service review notes.
|
|
- Key Files: `docs/implementation/task-b1-foundation-stabilization.md`, `src/db/seeds/foundation.seed.ts`, `src/app/dashboard/crm/**`
|
|
- Read Before Modify: `task-b1-foundation-stabilization.md`, `task-b-template-audit.md`, `project-foundations.md`
|
|
|
|
### Task C
|
|
|
|
- Task ID: `Task C`
|
|
- Task Name: `Customer + Contact Production Module`
|
|
- Status: `Completed`
|
|
- Objective: Deliver the first production customer and contact CRUD module on top of the shared foundations.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `None dedicated`
|
|
- Foundations Modified: `Audit Foundation`, `Master Data Foundation`, `Document Sequence Foundation`
|
|
- Major Deliverables: `crm_customers`, `crm_customer_contacts`, customer and contact APIs, production list/detail UI, audit integration, search/filter plumbing.
|
|
- Key Files: `docs/implementation/task-c-customer-contact.md`, `src/features/crm/customers/**`, `src/app/api/crm/customers/**`
|
|
- Read Before Modify: `task-c-customer-contact.md`, `project-foundations.md`, `task-c1-customer-ownership-contact-sharing-governance.md`, `task-l31-customer-contact-approval-visibility.md`
|
|
|
|
### Task C.1
|
|
|
|
- Task ID: `Task C.1`
|
|
- Task Name: `Customer Ownership and Contact Sharing Governance`
|
|
- Status: `Completed`
|
|
- Objective: Add persistent customer ownership and persistent contact sharing to close CRM visibility and routing gaps.
|
|
- Related ADRs: `ADR-0015`
|
|
- Foundations Created: `Customer Ownership Foundation`, `Contact Sharing Foundation`
|
|
- Foundations Modified: `Authorization Foundation`, `Lead / Enquiry Foundation`
|
|
- Major Deliverables: owner fields and history, `crm_contact_shares`, owner/share APIs, owner UI, contact sharing UI, lead owner suggestion behavior, audit events.
|
|
- Key Files: `docs/implementation/task-c1-customer-ownership-contact-sharing-governance.md`, `docs/adr/0015-customer-ownership-contact-sharing.md`, `src/app/api/crm/customers/[id]/owner/route.ts`, `src/app/api/crm/customers/[id]/contacts/[contactId]/shares/**`
|
|
- Read Before Modify: `0015-customer-ownership-contact-sharing.md`, `task-c1-customer-ownership-contact-sharing-governance.md`, `project-foundations.md`, `crm-authorization-boundaries.md`
|
|
|
|
### Task D
|
|
|
|
- Task ID: `Task D`
|
|
- Task Name: `Enquiry Production Module`
|
|
- Status: `Completed`
|
|
- Objective: Deliver the production enquiry module and the first live follow-up flows.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `Follow-Up Foundation` (enquiry slice)
|
|
- Foundations Modified: `Document Sequence Foundation`, `Audit Foundation`, `Master Data Foundation`
|
|
- Major Deliverables: `crm_enquiries`, `crm_enquiry_followups`, enquiry CRUD APIs, follow-up APIs, enquiry detail UI, customer integration, sequence generation.
|
|
- Key Files: `docs/implementation/task-d-enquiry-production.md`, `src/features/crm/enquiries/**`, `src/app/api/crm/enquiries/**`
|
|
- Read Before Modify: `task-d-enquiry-production.md`, `project-foundations.md`, `task-d1-enquiry-assignment-role-stabilization.md`, `task-d3-lead-enquiry-ownership-refinement.md`, `task-d4-won-lost-lifecycle-governance.md`
|
|
|
|
### Task D.1
|
|
|
|
- Task ID: `Task D.1`
|
|
- Task Name: `Enquiry Assignment and CRM Role Stabilization`
|
|
- Status: `Completed`
|
|
- Objective: Stabilize assignment behavior and early CRM role handling around enquiries.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Auth Context Foundation`, `Permission Foundation`, early `Authorization Foundation` lineage
|
|
- Major Deliverables: assignment routes, assignment permissions, auth-context refinements, UI assignment support, audit integration.
|
|
- Key Files: `docs/implementation/task-d1-enquiry-assignment-role-stabilization.md`, `src/features/foundation/auth-context/service.ts`, `src/app/api/crm/enquiries/[id]/assign/route.ts`
|
|
- Read Before Modify: `task-d1-enquiry-assignment-role-stabilization.md`, `task-d-enquiry-production.md`, `task-l-crm-permission-role-management.md`
|
|
|
|
### Task D.2
|
|
|
|
- Task ID: `Task D.2`
|
|
- Task Name: `Billing Customer + Project Parties`
|
|
- Status: `Completed`
|
|
- Objective: Freeze separate billing-customer and project-party modeling for enquiries and quotations.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `None dedicated`
|
|
- Foundations Modified: `Revenue Attribution Foundation` lineage, `Master Data Foundation`, CRM shared project-party usage
|
|
- Major Deliverables: `crm_enquiry_customers`, quotation party remark support, shared `crm_project_party_role` sourcing, synchronized project-party UI.
|
|
- Key Files: `docs/implementation/task-d2-billing-customer-project-parties.md`, `src/features/crm/components/project-parties-editor.tsx`, `src/features/crm/shared/project-party.ts`
|
|
- Read Before Modify: `task-d2-billing-customer-project-parties.md`, `task-d21-revenue-attribution-governance.md`, `task-j0-kpi-definition-freeze.md`
|
|
|
|
### Task D.2.1
|
|
|
|
- Task ID: `Task D.2.1`
|
|
- Task Name: `Revenue Attribution and Party Governance`
|
|
- Status: `Completed`
|
|
- Objective: Freeze revenue-owner attribution and relationship analytics before dashboard and report expansion.
|
|
- Related ADRs: `ADR-0010`
|
|
- Foundations Created: `Revenue Attribution Foundation`
|
|
- Foundations Modified: `Dashboard Foundation`, `Reporting Foundation` lineage
|
|
- Major Deliverables: grouped revenue helpers, project-party governance, fallback rules, ADR freeze for reporting attribution.
|
|
- Key Files: `docs/implementation/task-d21-revenue-attribution-governance.md`, `docs/adr/0010-revenue-attribution-governance.md`, `src/features/crm/reporting/server/service.ts`
|
|
- Read Before Modify: `0010-revenue-attribution-governance.md`, `task-d21-revenue-attribution-governance.md`, `task-j-crm-dashboard-kpi.md`, `task-k1-report-foundation.md`
|
|
|
|
### Task D.3
|
|
|
|
- Task ID: `Task D.3`
|
|
- Task Name: `Lead / Enquiry Ownership Refinement`
|
|
- Status: `Completed`
|
|
- Objective: Freeze the single-record lead/enquiry lifecycle, ownership, visibility, and KPI language.
|
|
- Related ADRs: `ADR-0011`
|
|
- Foundations Created: `Lead / Enquiry Foundation`
|
|
- Foundations Modified: `Dashboard Foundation`, `Authorization Foundation`
|
|
- Major Deliverables: `pipelineStage`, marketing role, lead/enquiry visibility rules, KPI wording changes, ADR freeze.
|
|
- Key Files: `docs/implementation/task-d3-lead-enquiry-ownership-refinement.md`, `docs/adr/0011-lead-enquiry-ownership-model.md`, `src/features/crm/enquiries/server/service.ts`
|
|
- Read Before Modify: `0011-lead-enquiry-ownership-model.md`, `task-d3-lead-enquiry-ownership-refinement.md`, `task-d31-leads-enquiries-navigation-separation.md`, `task-k2-pipeline-reports.md`
|
|
|
|
### Task D.3.1
|
|
|
|
- Task ID: `Task D.3.1`
|
|
- Task Name: `Leads / Enquiries Navigation Separation`
|
|
- Status: `Completed`
|
|
- Objective: Split lead and enquiry into separate UX workspaces while preserving one shared backend model.
|
|
- Related ADRs: `ADR-0011`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Lead / Enquiry Foundation`, `Dashboard Foundation`
|
|
- Major Deliverables: `/dashboard/crm/leads`, workspace-specific query invalidation, lead permissions, ADR clarification for navigation separation.
|
|
- Key Files: `docs/implementation/task-d31-leads-enquiries-navigation-separation.md`, `src/app/dashboard/crm/leads/**`, `src/features/crm/enquiries/**`
|
|
- Read Before Modify: `0011-lead-enquiry-ownership-model.md`, `task-d31-leads-enquiries-navigation-separation.md`, `task-d3-lead-enquiry-ownership-refinement.md`
|
|
|
|
### Task D.4
|
|
|
|
- Task ID: `Task D.4`
|
|
- Task Name: `Won / Lost Lifecycle Governance`
|
|
- Status: `Completed`
|
|
- Objective: Freeze official won/lost outcome behavior on enquiries rather than deriving it from quotation status.
|
|
- Related ADRs: `ADR-0016`
|
|
- Foundations Created: `Won / Lost Governance Foundation`
|
|
- Foundations Modified: `Dashboard Foundation`, `Reporting Foundation`, `Master Data Foundation`
|
|
- Major Deliverables: won/lost outcome fields, PO attachments, lost reason master data, mark-won/mark-lost/reopen APIs, outcome card, reporting helpers.
|
|
- Key Files: `docs/implementation/task-d4-won-lost-lifecycle-governance.md`, `docs/adr/0016-won-lost-lifecycle-governance.md`, `src/app/api/crm/enquiries/[id]/mark-won/route.ts`
|
|
- Read Before Modify: `0016-won-lost-lifecycle-governance.md`, `task-d4-won-lost-lifecycle-governance.md`, `task-j-crm-dashboard-kpi.md`, `task-k2-pipeline-reports.md`
|
|
|
|
### Task E
|
|
|
|
- Task ID: `Task E`
|
|
- Task Name: `Quotation Production Module`
|
|
- Status: `Completed`
|
|
- Objective: Deliver the production quotation module and its core child-resource model.
|
|
- Related ADRs: `None dedicated at creation time`
|
|
- Foundations Created: `Quotation Foundation`
|
|
- Foundations Modified: `Document Sequence Foundation`, `Audit Foundation`, `Follow-Up Foundation`
|
|
- Major Deliverables: quotation CRUD, items, customers/project parties, topics, follow-ups, attachments metadata, revisions, detail UI, customer/enquiry linkage.
|
|
- Key Files: `docs/implementation/task-e-quotation-production.md`, `src/features/crm/quotations/**`, `src/app/api/crm/quotations/**`
|
|
- Read Before Modify: `task-e-quotation-production.md`, `task-e1-quotation-stabilization.md`, `0007-quotation-revision-strategy.md`, `0008-attachment-storage-strategy.md`
|
|
|
|
### Task E.1
|
|
|
|
- Task ID: `Task E.1`
|
|
- Task Name: `Quotation Stabilization Before Approval`
|
|
- Status: `Completed`
|
|
- Objective: Freeze quotation revision and attachment assumptions before approval work begins.
|
|
- Related ADRs: `ADR-0007`, `ADR-0008`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Quotation Foundation`, `Master Data Foundation`
|
|
- Major Deliverables: status vocabulary expansion, revision guard, quotation-related master options, approval readiness rules, ADRs for revision and attachment strategy.
|
|
- Key Files: `docs/implementation/task-e1-quotation-stabilization.md`, `docs/adr/0007-quotation-revision-strategy.md`, `docs/adr/0008-attachment-storage-strategy.md`
|
|
- Read Before Modify: `task-e1-quotation-stabilization.md`, `0007-quotation-revision-strategy.md`, `0008-attachment-storage-strategy.md`, `task-f-approval-production.md`
|
|
|
|
### Task F
|
|
|
|
- Task ID: `Task F`
|
|
- Task Name: `Approval Production`
|
|
- Status: `Completed`
|
|
- Objective: Introduce the first production approval workflow on top of quotation flows and keep it generic for future documents.
|
|
- Related ADRs: `ADR-0007`
|
|
- Foundations Created: `Approval Foundation`
|
|
- Foundations Modified: `Quotation Foundation`, `Audit Foundation`
|
|
- Major Deliverables: approval persistence, approval APIs, approval UI, quotation approval submission, seeded workflow steps, approval permissions.
|
|
- Key Files: `docs/implementation/task-f-approval-production.md`, `src/features/foundation/approval/**`, `src/app/api/crm/approvals/**`
|
|
- Read Before Modify: `task-f-approval-production.md`, `project-foundations.md`, `task-h3-approval-signature-strategy.md`, `task-l31-customer-contact-approval-visibility.md`
|
|
|
|
### Task G
|
|
|
|
- Task ID: `Task G`
|
|
- Task Name: `Quotation Document Preview Foundation`
|
|
- Status: `Completed`
|
|
- Objective: Add governed document templates and a production document-preview path before binary PDF generation.
|
|
- Related ADRs: `None dedicated at creation time`
|
|
- Foundations Created: `Document Template Foundation`
|
|
- Foundations Modified: `Quotation Foundation`
|
|
- Major Deliverables: template schema tables, template APIs, template settings UI, mapping resolver, preview APIs, approved snapshot preparation.
|
|
- Key Files: `docs/implementation/task-g-document-preview-foundation.md`, `src/features/foundation/document-template/**`, `src/features/crm/quotations/document/**`
|
|
- Read Before Modify: `task-g-document-preview-foundation.md`, `task-h-pdf-generation-persistence.md`, `task-h53-pdf-template-version-remap.md`
|
|
|
|
### Task H
|
|
|
|
- Task ID: `Task H`
|
|
- Task Name: `PDF Generation and Approved Document Persistence`
|
|
- Status: `Completed`
|
|
- Objective: Add server-side PDF generation and the first approved-document persistence path.
|
|
- Related ADRs: `None dedicated at creation time`
|
|
- Foundations Created: `PDF Foundation`
|
|
- Foundations Modified: `Quotation Foundation`, `Approval Foundation`
|
|
- Major Deliverables: pdfme generation service, preview/download/approved PDF APIs, approved snapshot fields, local-file persistence, PDF permissions.
|
|
- Key Files: `docs/implementation/task-h-pdf-generation-persistence.md`, `src/features/foundation/pdf-generator/server/service.ts`, `src/app/api/crm/quotations/[id]/pdf-preview/route.ts`
|
|
- Read Before Modify: `task-h-pdf-generation-persistence.md`, `task-h1-pdf-generation-stabilization.md`, `task-i-storage-artifact-lifecycle.md`
|
|
|
|
### Task H.1
|
|
|
|
- Task ID: `Task H.1`
|
|
- Task Name: `PDF Generation Stabilization`
|
|
- Status: `Completed`
|
|
- Objective: Validate and harden the Task H PDF flow with fixtures, verification scripts, and storage-lifecycle clarification.
|
|
- Related ADRs: `ADR-0009`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `PDF Foundation`
|
|
- Major Deliverables: repeatable fixture data, verification script, persistence checks, lifecycle ADR, debt documentation.
|
|
- Key Files: `docs/implementation/task-h1-pdf-generation-stabilization.md`, `docs/adr/0009-approved-document-storage-lifecycle.md`, `scripts/verify-task-h1.js`
|
|
- Read Before Modify: `task-h1-pdf-generation-stabilization.md`, `0009-approved-document-storage-lifecycle.md`, `task-i-storage-artifact-lifecycle.md`
|
|
|
|
### Task H.2
|
|
|
|
- Task ID: `Task H.2`
|
|
- Task Name: `PDFME Dynamic Topic Engine + Mapping Hotfix`
|
|
- Status: `Completed`
|
|
- Objective: Replace brittle static topic mappings with a dynamic runtime topic engine and fix PDF data transforms.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `Dynamic topic engine within PDF Foundation`
|
|
- Foundations Modified: `PDF Foundation`, `Document Template Foundation`
|
|
- Major Deliverables: runtime topic engine, PDF transforms, product-topic mapping, mapping cleanup, preview payload hardening.
|
|
- Key Files: `docs/implementation/task-h2-pdfme-mapping-transform-hotfix.md`, `src/features/crm/quotations/document/server/pdf-topic-engine.ts`, `src/features/crm/quotations/document/server/pdfme-transforms.ts`
|
|
- Read Before Modify: `task-h2-pdfme-mapping-transform-hotfix.md`, `task-h5-pdf-mapping-audit-visual-parity.md`, `pdf-mapping-registry.md`, `pdf-placeholder-registry.md`
|
|
|
|
### Task H.3
|
|
|
|
- Task ID: `Task H.3`
|
|
- Task Name: `Approval Signature Strategy`
|
|
- Status: `Completed`
|
|
- Objective: Resolve prepared-by, approved-by, and authorized-by signatures from live approval and membership data.
|
|
- Related ADRs: `ADR-0012`
|
|
- Foundations Created: `Signature strategy within PDF Foundation`
|
|
- Foundations Modified: `PDF Foundation`, `Approval Foundation`, `Master Data Foundation`
|
|
- Major Deliverables: signature resolver, position lookup, mapping updates for `app1/app2/app3`, snapshot signature persistence, preview signature section.
|
|
- Key Files: `docs/implementation/task-h3-approval-signature-strategy.md`, `docs/adr/0012-approval-signature-strategy.md`, `src/features/crm/quotations/document/server/signature-resolver.ts`
|
|
- Read Before Modify: `0012-approval-signature-strategy.md`, `task-h3-approval-signature-strategy.md`, `pdf-mapping-registry.md`
|
|
|
|
### Task H.5
|
|
|
|
- Task ID: `Task H.5`
|
|
- Task Name: `PDF Mapping Audit & Visual Parity`
|
|
- Status: `Completed`
|
|
- Objective: Establish an auditable PDF mapping and parity review process for runtime payloads and templates.
|
|
- Related ADRs: `ADR-0013`
|
|
- Foundations Created: `PDF audit layer within PDF Foundation`
|
|
- Foundations Modified: `PDF Foundation`, `Document Template Foundation`
|
|
- Major Deliverables: audit scripts, fixture strategy, parity checklist, mapping registry, visual parity ADR.
|
|
- Key Files: `docs/implementation/task-h5-pdf-mapping-audit-visual-parity.md`, `docs/adr/0013-pdf-visual-parity-strategy.md`, `docs/implementation/pdf-parity-checklist.md`
|
|
- Read Before Modify: `0013-pdf-visual-parity-strategy.md`, `task-h5-pdf-mapping-audit-visual-parity.md`, `pdf-mapping-registry.md`, `pdf-placeholder-registry.md`
|
|
|
|
### Task H.5.1
|
|
|
|
- Task ID: `Task H.5.1`
|
|
- Task Name: `PDF Integrity Audit & Payload Parity`
|
|
- Status: `Completed`
|
|
- Objective: Extend H.5 into integrity checks for active versions, placeholders, payload hashes, and approved snapshot parity.
|
|
- Related ADRs: `ADR-0013`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `PDF Foundation`, `Document Template Foundation`
|
|
- Major Deliverables: integrity audit scripts, placeholder registry, parity hash checks, audit artifact generation, stricter integrity gating.
|
|
- Key Files: `docs/implementation/task-h51-pdf-integrity-audit.md`, `docs/business/pdf-placeholder-registry.md`, `scripts/audit-approved-snapshot-parity.ts`
|
|
- Read Before Modify: `task-h51-pdf-integrity-audit.md`, `task-h5-pdf-mapping-audit-visual-parity.md`, `task-h53-pdf-template-version-remap.md`
|
|
|
|
### Task H.5.2
|
|
|
|
- Task ID: `Task H.5.2`
|
|
- Task Name: `Historical Record Missing`
|
|
- Status: `Missing historical record`
|
|
- Objective: No dedicated completed implementation document was found for `Task H.5.2` in `docs/implementation/**`.
|
|
- Related ADRs: `Not confirmed`
|
|
- Foundations Created: `Unknown`
|
|
- Foundations Modified: `Unknown`
|
|
- Major Deliverables: no task note found; review adjacent H.5, H.5.1, H.5.3, `pdf-audit-report.md`, and `pdf-audit-report.json` for continuity.
|
|
- Key Files: `docs/implementation/task-h5-pdf-mapping-audit-visual-parity.md`, `docs/implementation/task-h51-pdf-integrity-audit.md`, `docs/implementation/task-h53-pdf-template-version-remap.md`, `docs/implementation/pdf-audit-report.md`
|
|
- Read Before Modify: `task-h5-pdf-mapping-audit-visual-parity.md`, `task-h51-pdf-integrity-audit.md`, `task-h53-pdf-template-version-remap.md`
|
|
|
|
### Task H.5.3
|
|
|
|
- Task ID: `Task H.5.3`
|
|
- Task Name: `PDF Template Version Remap + Static Labels`
|
|
- Status: `Completed`
|
|
- Objective: Move active templates to remapped versioned records and restore runtime-managed static labels.
|
|
- Related ADRs: `ADR-0013`
|
|
- Foundations Created: `Template remap workflow within Document Template Foundation`
|
|
- Foundations Modified: `Document Template Foundation`, `PDF Foundation`
|
|
- Major Deliverables: active `1.1` template versions, remap workflow, retained inactive historical versions, restored static labels, passing audit suite.
|
|
- Key Files: `docs/implementation/task-h53-pdf-template-version-remap.md`, `src/pdfme_template/*.json`, `docs/business/pdf-mapping-registry.md`
|
|
- Read Before Modify: `task-h53-pdf-template-version-remap.md`, `task-h51-pdf-integrity-audit.md`, `pdf-mapping-registry.md`, `pdf-placeholder-registry.md`
|
|
|
|
### Task I
|
|
|
|
- Task ID: `Task I`
|
|
- Task Name: `Storage Abstraction and Approved Artifact Lifecycle`
|
|
- Status: `Completed`
|
|
- Objective: Replace raw public-file assumptions with a storage provider and artifact lifecycle foundation.
|
|
- Related ADRs: `ADR-0008`, `ADR-0009`
|
|
- Foundations Created: `Storage Foundation`, `Document Artifact Foundation`
|
|
- Foundations Modified: `PDF Foundation`, `Approval Foundation`
|
|
- Major Deliverables: storage provider abstraction, artifact schema, secure download route, checksum support, approved-artifact locking, compatibility migration path.
|
|
- Key Files: `docs/implementation/task-i-storage-artifact-lifecycle.md`, `src/features/foundation/storage/**`, `src/features/foundation/document-artifact/**`
|
|
- Read Before Modify: `task-i-storage-artifact-lifecycle.md`, `0009-approved-document-storage-lifecycle.md`, `task-l3-full-crm-scope-enforcement.md`
|
|
|
|
### Task J.0
|
|
|
|
- Task ID: `Task J.0`
|
|
- Task Name: `KPI Definition Freeze`
|
|
- Status: `Completed`
|
|
- Objective: Freeze KPI semantics, party terminology, and revenue rules before dashboard implementation.
|
|
- Related ADRs: `Pre-ADR governance freeze; later intersected by ADR-0010, ADR-0011, ADR-0016`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Dashboard Foundation` lineage, `Revenue Attribution Foundation` lineage
|
|
- Major Deliverables: KPI definitions, pipeline semantics, party terminology freeze, governance rule that later KPI changes require an ADR.
|
|
- Key Files: `docs/implementation/task-j0-kpi-definition-freeze.md`
|
|
- Read Before Modify: `task-j0-kpi-definition-freeze.md`, `task-j-crm-dashboard-kpi.md`, `0010-revenue-attribution-governance.md`, `0011-lead-enquiry-ownership-model.md`
|
|
|
|
### Task J
|
|
|
|
- Task ID: `Task J`
|
|
- Task Name: `CRM Dashboard KPI and Sales Analytics`
|
|
- Status: `Completed`
|
|
- Objective: Deliver the live CRM dashboard and operational KPI surfaces on top of frozen governance rules.
|
|
- Related ADRs: `ADR-0010`, `ADR-0011`, `ADR-0016`
|
|
- Foundations Created: `Dashboard Foundation`
|
|
- Foundations Modified: `Revenue Attribution Foundation`, `Follow-Up Foundation`, `Approval Foundation`
|
|
- Major Deliverables: dashboard APIs, summary/funnel/revenue/sales/follow-up/approval widgets, export support, dashboard permissions.
|
|
- Key Files: `docs/implementation/task-j-crm-dashboard-kpi.md`, `src/features/crm/dashboard/**`, `src/app/api/crm/dashboard/**`
|
|
- Read Before Modify: `task-j-crm-dashboard-kpi.md`, `task-j0-kpi-definition-freeze.md`, `task-d21-revenue-attribution-governance.md`, `task-d4-won-lost-lifecycle-governance.md`
|
|
|
|
### Task J.1
|
|
|
|
- Task ID: `Task J.1`
|
|
- Task Name: `CRM Admin Configuration Center`
|
|
- Status: `Completed`
|
|
- Objective: Expose settings foundations through organization-scoped admin routes and usable production UI.
|
|
- Related ADRs: `ADR-0006`, `ADR-0012`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Approval Foundation`, `Document Sequence Foundation`, `Document Template Foundation`, `Master Data Foundation`
|
|
- Major Deliverables: approval-workflow settings UI and APIs, document-sequence settings UI and APIs, template edit/version/mapping UI and APIs, settings navigation.
|
|
- Key Files: `docs/implementation/task-j1-crm-admin-configuration-center.md`, `src/app/api/crm/settings/**`, `src/app/dashboard/crm/settings/**`
|
|
- Read Before Modify: `task-j1-crm-admin-configuration-center.md`, `project-foundations.md`, `task-g-document-preview-foundation.md`, `task-f-approval-production.md`
|
|
|
|
### Task K.1
|
|
|
|
- Task ID: `Task K.1`
|
|
- Task Name: `Report Foundation`
|
|
- Status: `Completed`
|
|
- Objective: Establish the shared CRM report platform before business report execution pages are added.
|
|
- Related ADRs: `ADR-0017`
|
|
- Foundations Created: `Reporting Foundation`
|
|
- Foundations Modified: `Master Data Foundation`, `Authorization Foundation`, `Audit Foundation`
|
|
- Major Deliverables: report registry, report category seed, report discovery APIs, dataset/builder/filter/export layers, report landing page.
|
|
- Key Files: `docs/implementation/task-k1-report-foundation.md`, `docs/adr/0017-report-foundation.md`, `src/features/crm/reports/**`
|
|
- Read Before Modify: `0017-report-foundation.md`, `task-k1-report-foundation.md`, `task-k2-pipeline-reports.md`, `project-foundations.md`
|
|
|
|
### Task K.2
|
|
|
|
- Task ID: `Task K.2`
|
|
- Task Name: `Pipeline Reports`
|
|
- Status: `Completed`
|
|
- Objective: Deliver the first production report suite on top of the shared report foundation.
|
|
- Related ADRs: `ADR-0010`, `ADR-0011`, `ADR-0016`, `ADR-0017`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Reporting Foundation`, `Follow-Up Foundation`, `Authorization Foundation`
|
|
- Major Deliverables: pipeline, lead-aging, and enquiry-aging reports; export route; dataset layer; scoped security enforcement; report navigation.
|
|
- Key Files: `docs/implementation/task-k2-pipeline-reports.md`, `src/app/api/crm/reports/**`, `src/features/crm/reports/server/datasets/pipeline-report.dataset.ts`
|
|
- Read Before Modify: `task-k2-pipeline-reports.md`, `task-k1-report-foundation.md`, `0017-report-foundation.md`, `task-d3-lead-enquiry-ownership-refinement.md`, `task-d4-won-lost-lifecycle-governance.md`
|
|
|
|
### Task L
|
|
|
|
- Task ID: `Task L`
|
|
- Task Name: `CRM Permission & Role Management`
|
|
- Status: `Completed`
|
|
- Objective: Replace template-era authorization behavior with app-owned CRM role profiles, permissions, and scope-aware access resolution.
|
|
- Related ADRs: `ADR-0014`
|
|
- Foundations Created: `Role Management Foundation`, `Authorization Foundation`
|
|
- Foundations Modified: `Dashboard Foundation`, `Permission Foundation`
|
|
- Major Deliverables: role profiles, permissions for pricing and admin settings, resolved CRM access helper, roles page and APIs, early server-side scope enforcement.
|
|
- Key Files: `docs/implementation/task-l-crm-permission-role-management.md`, `src/features/foundation/role-management/**`, `src/lib/auth/crm-access.ts`
|
|
- Read Before Modify: `task-l-crm-permission-role-management.md`, `0014-crm-multi-role-user-assignment.md`, `crm-authorization-boundaries.md`, `crm-access-enforcement-inventory.md`
|
|
|
|
### Task L.1
|
|
|
|
- Task ID: `Task L.1`
|
|
- Task Name: `CRM Multi-Role User Assignment`
|
|
- Status: `Completed`
|
|
- Objective: Move CRM authorization from one business role per membership to multi-role assignment rows.
|
|
- Related ADRs: `ADR-0014`
|
|
- Foundations Created: `CRM Role Assignment Foundation`
|
|
- Foundations Modified: `Authorization Foundation`, `Role Management Foundation`
|
|
- Major Deliverables: `crm_user_role_assignments`, assignment permissions, assignment APIs, compatibility backfill, union-based resolved access.
|
|
- Key Files: `docs/implementation/task-l1-crm-multi-role-user-assignment.md`, `docs/adr/0014-crm-multi-role-user-assignment.md`, `src/features/foundation/crm-role-assignments/**`
|
|
- Read Before Modify: `0014-crm-multi-role-user-assignment.md`, `task-l1-crm-multi-role-user-assignment.md`, `task-l2-user-management-integration.md`
|
|
|
|
### Task L.2
|
|
|
|
- Task ID: `Task L.2`
|
|
- Task Name: `User Management Integration`
|
|
- Status: `Completed`
|
|
- Objective: Make user management the primary operational surface for CRM role assignments.
|
|
- Related ADRs: `ADR-0014`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `CRM Role Assignment Foundation`, `Authorization Foundation`, users feature integration
|
|
- Major Deliverables: user create/edit payload changes, CRM role assignment editing in user form, effective-access preview, reference endpoints, migration utility.
|
|
- Key Files: `docs/implementation/task-l2-user-management-integration.md`, `src/app/api/users/_lib.ts`, `src/app/api/users/[id]/effective-access-preview/route.ts`
|
|
- Read Before Modify: `task-l2-user-management-integration.md`, `task-l1-crm-multi-role-user-assignment.md`, `0014-crm-multi-role-user-assignment.md`
|
|
|
|
### Task L.3
|
|
|
|
- Task ID: `Task L.3`
|
|
- Task Name: `Full CRM Scope Enforcement`
|
|
- Status: `Completed`
|
|
- Objective: Harden scope and pricing visibility enforcement around resolved CRM access.
|
|
- Related ADRs: `ADR-0014`
|
|
- Foundations Created: `Security enforcement layer within Authorization Foundation`
|
|
- Foundations Modified: `Authorization Foundation`, `Document Artifact Foundation`, `Dashboard Foundation`, `Quotation Foundation`
|
|
- Major Deliverables: security helpers, pricing guards for quotation outputs, dashboard export restriction, quotation scope enforcement, security inventory docs, verification script.
|
|
- Key Files: `docs/implementation/task-l3-full-crm-scope-enforcement.md`, `src/features/crm/security/server/service.ts`, `docs/security/crm-authorization-boundaries.md`
|
|
- Read Before Modify: `task-l3-full-crm-scope-enforcement.md`, `crm-authorization-boundaries.md`, `crm-access-enforcement-inventory.md`, `team-scope-limitations.md`
|
|
|
|
### Task L.3.1
|
|
|
|
- Task ID: `Task L.3.1`
|
|
- Task Name: `Customer, Contact & Approval Visibility Hardening`
|
|
- Status: `Completed`
|
|
- Objective: Extend resolved-access enforcement to customer, contact, and approval visibility.
|
|
- Related ADRs: `ADR-0015`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Customer Ownership Foundation`, `Contact Sharing Foundation`, `Approval Foundation`, `Authorization Foundation`, `Dashboard Foundation`
|
|
- Major Deliverables: customer visibility filters, contact visibility inheritance, approval visibility narrowing, dashboard approval reuse, extra security audit actions.
|
|
- Key Files: `docs/implementation/task-l31-customer-contact-approval-visibility.md`, `src/features/crm/customers/server/service.ts`, `src/features/foundation/approval/server/service.ts`
|
|
- Read Before Modify: `task-l31-customer-contact-approval-visibility.md`, `0015-customer-ownership-contact-sharing.md`, `crm-authorization-boundaries.md`, `task-c1-customer-ownership-contact-sharing-governance.md`
|
|
|
|
### Task UX.1
|
|
|
|
- Task ID: `Task UX.1`
|
|
- Task Name: `Thai CRM Terminology Standardization`
|
|
- Status: `Completed`
|
|
- Objective: Freeze Thai business-facing CRM terminology while keeping internal codes stable.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `Terminology registry support for UI governance`
|
|
- Foundations Modified: `Dashboard Foundation`, `Lead / Enquiry Foundation`, `PDF Foundation`
|
|
- Major Deliverables: terminology registry, shared terminology helper, menu copy updates, dashboard/report/PDF copy updates.
|
|
- Key Files: `docs/implementation/task-ux1-thai-crm-terminology-standardization.md`, `docs/business/crm-terminology.md`, `src/features/crm/shared/terminology.ts`
|
|
- Read Before Modify: `task-ux1-thai-crm-terminology-standardization.md`, `crm-terminology.md`, `ui-ux-rules.md`
|
|
|
|
### Hotfix 1
|
|
|
|
- Task ID: `Hotfix 1`
|
|
- Task Name: `Customer Sub Group`
|
|
- Status: `Completed`
|
|
- Objective: Add customer subgroup hierarchy without creating a parallel category system.
|
|
- Related ADRs: `None dedicated`
|
|
- Foundations Created: `None`
|
|
- Foundations Modified: `Master Data Foundation`, `Customer module`
|
|
- Major Deliverables: `customerSubGroup` field, seeded `crm_customer_group` and `crm_customer_sub_group`, parent/child validation, filtered customer form behavior.
|
|
- Key Files: `docs/implementation/hotfix-1-customer-sub-group.md`, `src/db/seeds/foundation.seed.ts`, `src/features/crm/customers/server/service.ts`
|
|
- Read Before Modify: `hotfix-1-customer-sub-group.md`, `project-foundations.md`, `task-c-customer-contact.md`
|
|
|
|
## Supporting Historical Records
|
|
|
|
These are not primary task IDs, but they remain valuable historical review documents:
|
|
|
|
- `docs/implementation/pdfme-legacy-audit.md`
|
|
- `docs/implementation/pdfme-runtime-audit.md`
|
|
- `docs/implementation/pdf-parity-checklist.md`
|
|
- `docs/implementation/pdf-audit-report.md`
|
|
- `docs/implementation/pdf-audit-report.json`
|
|
- `docs/implementation/technical-debt.md`
|
|
|
|
## Missing Historical Records
|
|
|
|
- `Task H.5.2` has no dedicated implementation note in `docs/implementation/**`.
|
|
- No standalone ADR was found for the low-level early foundations created in Task B:
|
|
- `Auth Context Foundation`
|
|
- `Organization Context Foundation`
|
|
- `Permission Foundation`
|
|
- `Audit Foundation`
|
|
- `Document Sequence Foundation`
|
|
|
|
## Catalog Outcome
|
|
|
|
- ALLA OS Historical Knowledge Base = ESTABLISHED
|
|
- ALLA OS Task Discovery = READY
|
|
- ALLA OS AI Context Retention = IMPROVED
|