529 lines
5.7 KiB
Markdown
529 lines
5.7 KiB
Markdown
# Task D.7.3 – CSV Template Generator Static Template Pack
|
||
|
||
## Objective
|
||
|
||
Generate a complete static CSV template pack for ALLA OS Initial Setup.
|
||
|
||
The templates will become the official data contract for future CSV Preview (D.7.4) and CSV Import (D.7.5).
|
||
|
||
This task only creates template files and supporting metadata.
|
||
|
||
Do NOT implement CSV parsing, validation, import logic, seed execution, reset logic, or setup persistence.
|
||
|
||
---
|
||
|
||
## Review Before Implementation
|
||
|
||
Read and follow:
|
||
|
||
- AGENTS.md
|
||
- plans/task-d.7.md
|
||
- plans/task-d.7.1.md
|
||
- plans/task-d.7.2.md
|
||
- docs/setup/seed-matrix.md
|
||
- docs/setup/csv-template-spec.md
|
||
- docs/setup/import-mapping.md
|
||
- docs/setup/setup-wizard-blueprint.md
|
||
|
||
Do not invent new columns.
|
||
|
||
CSV headers must exactly match csv-template-spec.md.
|
||
|
||
---
|
||
|
||
## Scope
|
||
|
||
Create folder
|
||
|
||
setup/templates/
|
||
|
||
Generate the following files
|
||
|
||
organizations.csv
|
||
|
||
users.csv
|
||
|
||
memberships.csv
|
||
|
||
crm-role-assignments.csv
|
||
|
||
master-options.csv
|
||
|
||
branches.csv
|
||
|
||
product-types.csv
|
||
|
||
document-sequences.csv
|
||
|
||
approval-workflows.csv
|
||
|
||
approval-steps.csv
|
||
|
||
approval-matrix.csv
|
||
|
||
customers.csv
|
||
|
||
contacts.csv
|
||
|
||
contact-shares.csv
|
||
|
||
leads.csv
|
||
|
||
opportunities.csv
|
||
|
||
opportunity-parties.csv
|
||
|
||
quotations.csv
|
||
|
||
quotation-items.csv
|
||
|
||
quotation-parties.csv
|
||
|
||
quotation-topics.csv
|
||
|
||
quotation-topic-items.csv
|
||
|
||
---
|
||
|
||
## CSV Rules
|
||
|
||
Every CSV must contain
|
||
|
||
1 Header row
|
||
|
||
1 Safe sample row
|
||
|
||
UTF-8 encoding
|
||
|
||
Comma delimiter
|
||
|
||
LF line ending
|
||
|
||
No BOM if current repository standard already avoids BOM
|
||
|
||
No blank columns
|
||
|
||
No undocumented columns
|
||
|
||
No formulas
|
||
|
||
No secrets
|
||
|
||
No production data
|
||
|
||
No binary references
|
||
|
||
---
|
||
|
||
## Sample Data Convention
|
||
|
||
Use one consistent sample dataset.
|
||
|
||
Organization
|
||
|
||
ALLA
|
||
|
||
Branch
|
||
|
||
head_office
|
||
|
||
Product Type
|
||
|
||
crane
|
||
|
||
Currency
|
||
|
||
THB
|
||
|
||
Administrator
|
||
|
||
admin@example.com
|
||
|
||
Marketing
|
||
|
||
mk.uat@example.com
|
||
|
||
Sales
|
||
|
||
sales.uat@example.com
|
||
|
||
Manager
|
||
|
||
manager.uat@example.com
|
||
|
||
CEO
|
||
|
||
ceo.uat@example.com
|
||
|
||
Customer
|
||
|
||
CUS-001
|
||
|
||
Lead
|
||
|
||
LD-001
|
||
|
||
Opportunity
|
||
|
||
OP-001
|
||
|
||
Quotation
|
||
|
||
QT-HO-CR-2607-001
|
||
|
||
---
|
||
|
||
## Header Rules
|
||
|
||
Headers must exactly match
|
||
|
||
docs/setup/csv-template-spec.md
|
||
|
||
Do not
|
||
|
||
rename
|
||
|
||
reorder
|
||
|
||
remove
|
||
|
||
or add columns.
|
||
|
||
---
|
||
|
||
## CSV Safety
|
||
|
||
Passwords
|
||
|
||
Use placeholder only.
|
||
|
||
Example
|
||
|
||
ChangeMe123!
|
||
|
||
Never include
|
||
|
||
real password
|
||
|
||
API key
|
||
|
||
secret
|
||
|
||
JWT
|
||
|
||
SMTP credential
|
||
|
||
storage credential
|
||
|
||
real customer
|
||
|
||
real phone
|
||
|
||
real tax id
|
||
|
||
---
|
||
|
||
## Unsupported Templates
|
||
|
||
Do NOT create
|
||
|
||
departments.csv
|
||
|
||
teams.csv
|
||
|
||
warehouses.csv
|
||
|
||
sites.csv
|
||
|
||
services.csv
|
||
|
||
price-books.csv
|
||
|
||
tax-rates.csv
|
||
|
||
attachments.csv
|
||
|
||
email-settings.csv
|
||
|
||
Keep these documented only.
|
||
|
||
---
|
||
|
||
## README
|
||
|
||
Create
|
||
|
||
setup/templates/README.md
|
||
|
||
Document
|
||
|
||
Purpose
|
||
|
||
Supported Templates
|
||
|
||
Unsupported Templates
|
||
|
||
Import Order
|
||
|
||
Relationship Rules
|
||
|
||
Sample Dataset
|
||
|
||
Placeholder Rules
|
||
|
||
Future D.7.4 Preview Flow
|
||
|
||
---
|
||
|
||
## Import Order
|
||
|
||
Document import order.
|
||
|
||
Example
|
||
|
||
01 users.csv
|
||
|
||
02 organizations.csv
|
||
|
||
03 memberships.csv
|
||
|
||
04 crm-role-assignments.csv
|
||
|
||
05 master-options.csv
|
||
|
||
06 branches.csv
|
||
|
||
07 product-types.csv
|
||
|
||
08 document-sequences.csv
|
||
|
||
09 approval-workflows.csv
|
||
|
||
10 approval-steps.csv
|
||
|
||
11 approval-matrix.csv
|
||
|
||
12 customers.csv
|
||
|
||
13 contacts.csv
|
||
|
||
14 contact-shares.csv
|
||
|
||
15 leads.csv
|
||
|
||
16 opportunities.csv
|
||
|
||
17 opportunity-parties.csv
|
||
|
||
18 quotations.csv
|
||
|
||
19 quotation-items.csv
|
||
|
||
20 quotation-parties.csv
|
||
|
||
21 quotation-topics.csv
|
||
|
||
22 quotation-topic-items.csv
|
||
|
||
Import order must match
|
||
|
||
docs/setup/seed-matrix.md
|
||
|
||
---
|
||
|
||
## Optional Metadata
|
||
|
||
Create
|
||
|
||
setup/templates/templates.json
|
||
|
||
Structure
|
||
|
||
{
|
||
"version": "1.0.0",
|
||
"generatedFrom": "docs/setup/csv-template-spec.md",
|
||
"templates": [
|
||
{
|
||
"file": "customers.csv",
|
||
"seedType": "business",
|
||
"importOrder": 12,
|
||
"supported": true
|
||
}
|
||
]
|
||
}
|
||
|
||
This metadata will be reused by D.7.6 Setup Wizard.
|
||
|
||
---
|
||
|
||
## Optional API
|
||
|
||
If simple and reusable
|
||
|
||
Create
|
||
|
||
GET /api/setup/templates
|
||
|
||
Return
|
||
|
||
Template Name
|
||
|
||
Seed Type
|
||
|
||
Import Order
|
||
|
||
Supported
|
||
|
||
Required Columns
|
||
|
||
Description
|
||
|
||
This API must be read-only.
|
||
|
||
Do NOT implement download or ZIP generation.
|
||
|
||
---
|
||
|
||
## Out Of Scope
|
||
|
||
CSV Parser
|
||
|
||
CSV Validation
|
||
|
||
CSV Preview
|
||
|
||
CSV Commit
|
||
|
||
Seed Execution
|
||
|
||
Reset
|
||
|
||
Setup Wizard
|
||
|
||
Manifest
|
||
|
||
State Machine
|
||
|
||
Migrations
|
||
|
||
Business Logic Changes
|
||
|
||
---
|
||
|
||
## Deliverables
|
||
|
||
setup/templates/
|
||
|
||
organizations.csv
|
||
|
||
users.csv
|
||
|
||
memberships.csv
|
||
|
||
crm-role-assignments.csv
|
||
|
||
master-options.csv
|
||
|
||
branches.csv
|
||
|
||
product-types.csv
|
||
|
||
document-sequences.csv
|
||
|
||
approval-workflows.csv
|
||
|
||
approval-steps.csv
|
||
|
||
approval-matrix.csv
|
||
|
||
customers.csv
|
||
|
||
contacts.csv
|
||
|
||
contact-shares.csv
|
||
|
||
leads.csv
|
||
|
||
opportunities.csv
|
||
|
||
opportunity-parties.csv
|
||
|
||
quotations.csv
|
||
|
||
quotation-items.csv
|
||
|
||
quotation-parties.csv
|
||
|
||
quotation-topics.csv
|
||
|
||
quotation-topic-items.csv
|
||
|
||
README.md
|
||
|
||
Optional
|
||
|
||
templates.json
|
||
|
||
Optional
|
||
|
||
GET /api/setup/templates
|
||
|
||
---
|
||
|
||
## Acceptance Criteria
|
||
|
||
✓ Every supported CSV exists.
|
||
|
||
✓ Every CSV contains exactly
|
||
|
||
- one header row
|
||
- one sample row
|
||
|
||
✓ Header names exactly match
|
||
|
||
docs/setup/csv-template-spec.md
|
||
|
||
✓ Sample data follows one consistent demo dataset.
|
||
|
||
✓ No unsupported CSV files are generated.
|
||
|
||
✓ No secrets or production data exist.
|
||
|
||
✓ README documents
|
||
|
||
- import order
|
||
- relationship rules
|
||
- placeholders
|
||
- supported templates
|
||
- unsupported templates
|
||
|
||
✓ templates.json (if implemented) matches generated CSV files.
|
||
|
||
✓ Optional API (if implemented) is read-only.
|
||
|
||
✓ No import logic or seed logic is implemented.
|
||
|
||
✓ Typecheck passes or unrelated failures are documented.
|
||
|
||
---
|
||
|
||
## Future Tasks
|
||
|
||
D.7.4
|
||
|
||
CSV Preview Validation Engine
|
||
|
||
D.7.5
|
||
|
||
CSV Commit Import Engine
|
||
|
||
D.7.6
|
||
|
||
Setup Wizard UI
|
||
|
||
The generated CSV files become the official template pack for all future setup and onboarding workflows.
|
||
> Implementation log 2026-07-02: Static CSV template pack completed under
|
||
> `setup/templates/`, optional metadata API added at `GET /api/setup/templates`,
|
||
> and implementation note saved to
|
||
> `docs/implementation/task-d73-csv-template-static-pack.md`.
|