Files
Z User e45b68bb8b feat: IMAP mail sync with thread-to-contact matching (PRD §6.1)
Real IMAP connection via imapflow library:
- Connects to IMAP server (IMAPFlow, TLS on port 993)
- Fetches recent messages (configurable limit, default 20)
- Extracts: from, fromEmail, subject, date, snippet (200 chars)
- Thread-to-contact matching (PRD §6.1):
  1. Match sender email against persons table
  2. If no person match, extract domain and match against company.website
  3. Returns matchedCompany + matchedPerson for each email
- Audit-logged (action: crm.mailsync:imap)
- Zod validated (host, port, user, password, folder, limit)
- 502 on IMAP connection failure with detail
- 400 on validation failure

Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
2026-10-27 22:50:50 +00:00

3.2 KiB
Executable File

name, description, mode, platform, scenario, preview, default_for, fidelity
name description mode platform scenario preview default_for fidelity
data-integrity Data marker, chart, table, metric, and demo-data integrity rules for editable design artifacts. reference web horizontal-craft
type
none
data markers
charts
metrics
tables
dashboard data
demo data
editable artifact
system

Data Integrity

Use this file when an artifact contains data, metrics, charts, tables, proof-like numbers, or needs future editing.

Core rule:

A design artifact may use demo data, but it must never disguise demo data as real evidence.

Data markers

Data markers preserve editability and later comment targeting.

Use the artifact scaffold:

portfolio        → data-portfolio / data-section / data-project / data-component
deck             → data-deck / data-slide / data-component
prototype        → data-prototype / data-screen / data-section / data-component / data-state
content-page     → data-content-page / data-mode / data-section / data-component
landing-page     → data-landing-page / data-section / data-component
web-tool         → data-web-tool / data-tool-type / data-screen / data-component / data-state

If a marker would be excessive for a tiny edit, preserve existing markers and add the minimum missing markers around edited regions.


Metrics and demo data

Specific numbers must be one of:

user-provided
sourced
demo-labeled
placeholder

Do not invent impressive proof to improve a design.

Never invent:

  • revenue
  • market size
  • user counts
  • growth rates
  • conversion rates
  • retention / churn
  • satisfaction scores
  • rankings
  • uptime
  • benchmark wins
  • customer counts

If the number is illustrative, label it as demo.

Example:

<span data-proof="demo">92% demo</span>
<p class="data-note">Demo data — replace with verified figures before publishing.</p>

Charts

Charts must communicate a claim, not decorate a card.

Required:

  • title or conclusion
  • axes or labels when quantitative
  • units
  • source / demo label when data is not user-provided
  • readable values
  • contrast that survives small screens

Avoid:

  • fake trend lines with no data meaning
  • unlabeled sparkline decoration
  • impossible precision
  • random upward growth lines
  • chart colors with no legend or state meaning

Tables

Tables must optimize scanning.

Rules:

  • numeric columns align consistently
  • status labels use consistent vocabulary
  • filters/search/sort appear when the table implies operations
  • long text has wrap or truncation strategy
  • empty and error states exist
  • row actions are close to rows
  • units appear in header or values, not randomly

Data copy

Prefer honest labels:

  • Demo data
  • 示例数据
  • 待填写
  • Replace with verified figures
  • Source pending

Avoid pretending:

  • trusted by 10,000+ teams
  • 99.9% uptime
  • #1 platform
  • industry-leading
  • verified by experts

Quality checks

[ ] Required data markers are present.
[ ] Proof-like numbers have provenance.
[ ] Demo data is visibly labeled.
[ ] Charts have labels, units, and a conclusion.
[ ] Tables are aligned, scannable, and have states.
[ ] No invented impressive metric exists.
[ ] Fake customer logos, quotes, awards, and press claims are absent.