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
This commit is contained in:
1 parent
7acc0c5451
commit
e45b68bb8b
1089 files changed
+260614
No files matched your search
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Zara Zhang
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
name: html-ppt-zhangzara-8-bit-orbit
|
||||
description: 8-Bit Orbit — 像素艺术霓虹街机 × 深海军蓝。任何应该感觉像凌晨 2 点 CRT 屏幕的 deck:cyberpunk / gaming / web3 / indie dev tools / hackathon demo。
|
||||
visibility: public
|
||||
mode: template
|
||||
carrier: deck
|
||||
scenario: marketing
|
||||
pattern_source: pattern.html
|
||||
source_priority: skill-first
|
||||
triggers:
|
||||
- "做个像素风 PPT"
|
||||
- "做个赛博朋克 deck"
|
||||
- "8-bit-orbit"
|
||||
- "zhangzara-8-bit-orbit"
|
||||
- "8-Bit Orbit"
|
||||
- "retro-tech"
|
||||
- "霓虹街机"
|
||||
- "gaming pitch"
|
||||
- "hackathon demo"
|
||||
- "html deck"
|
||||
- "html slides"
|
||||
- "zhangzara"
|
||||
od:
|
||||
upstream: "https://github.com/zarazhangrui/beautiful-html-templates/tree/main/templates/8-bit-orbit"
|
||||
upstream_license: MIT
|
||||
preview:
|
||||
type: html
|
||||
entry: pattern.html
|
||||
design_system:
|
||||
requires: false
|
||||
speaker_notes: false
|
||||
animations: false
|
||||
---
|
||||
|
||||
# 8-Bit Orbit
|
||||
|
||||
> Pixel-art neon arcade aesthetic on a deep navy void.
|
||||
|
||||
A single self-contained HTML deck — typography, palette, decorative system,
|
||||
and slide vocabulary are all tuned together. Mixing layouts across templates
|
||||
breaks the system; stay inside this one.
|
||||
|
||||
## At a glance
|
||||
|
||||
- **Scheme:** dark
|
||||
- **Formality:** low
|
||||
- **Density:** medium
|
||||
- **Slides in demo:** 10
|
||||
|
||||
## Best for
|
||||
|
||||
Anything that should feel like a CRT screen at 2am: cyberpunk, gaming, web3, indie dev tools, hackathon demos. Just as good for a tech talk that wants to lean into nostalgic-digital craft, a synthwave brand deck, or a creative review that wants to feel like a console.
|
||||
|
||||
## Avoid for
|
||||
|
||||
Contexts where the dark neon palette would actively work against the message — quiet institutional finance disclosures, healthcare patient-facing materials, traditional luxury.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Use `pattern.html` only as a secondary pattern reference.** Do not clone it wholesale; extract section rhythm, layout pattern, and interaction behavior, then rebuild for the current brief.
|
||||
2. **Replace placeholder content** with the user's real headlines, body copy,
|
||||
numbers, names, dates, and section labels. Match existing dimensions when
|
||||
swapping image placeholders.
|
||||
3. **Preserve the design system.** Never substitute fonts, recolor the palette,
|
||||
restructure the layout grid, or strip decorative elements (corner brackets,
|
||||
paper grain, geometric shapes, illustrated SVGs). They are part of the
|
||||
identity.
|
||||
4. **Adjust deck length by duplicating layouts.** If the user has more content
|
||||
than the demo holds, duplicate an existing slide of the most appropriate
|
||||
layout. If less, drop slides from the bottom. Update page-number labels.
|
||||
5. **Designing missing layouts:** if a slide needs a layout the template
|
||||
doesn't have, design it from scratch using the same fonts, palette,
|
||||
decorative vocabulary, spacing rhythm, and component grammar — never bail
|
||||
to a different template.
|
||||
6. **Keep the navigation runtime as shipped.** If the deck ships an
|
||||
`assets/deck-stage.js` or inline keyboard handler, leave it intact.
|
||||
|
||||
## Output contract
|
||||
|
||||
Emit between `<artifact>` tags:
|
||||
|
||||
```
|
||||
<artifact identifier="zhangzara-8-bit-orbit" type="text/html" title="Deck Title">
|
||||
<!doctype html>
|
||||
<html>...</html>
|
||||
</artifact>
|
||||
```
|
||||
|
||||
## Source & license
|
||||
|
||||
Vendored from upstream MIT-licensed
|
||||
[`zarazhangrui/beautiful-html-templates`](https://github.com/zarazhangrui/beautiful-html-templates/tree/main/templates/8-bit-orbit).
|
||||
|
||||
The full upstream MIT license text — including the original copyright notice — ships in this skill at
|
||||
[`LICENSE`](./LICENSE) and must be redistributed alongside any copy of `pattern.html`,
|
||||
`template.json`, or any vendored `assets/` runtime. See `template.json` for the upstream metadata snapshot.
|
||||
+1640
File diff suppressed because it is too large.
Load diff
+48
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"slug": "zhangzara-8-bit-orbit",
|
||||
"name": "8-Bit Orbit",
|
||||
"tagline": "Pixel-art neon arcade aesthetic on a deep navy void.",
|
||||
"mood": [
|
||||
"retro-tech",
|
||||
"playful",
|
||||
"cyberpunk",
|
||||
"energetic"
|
||||
],
|
||||
"occasion": [
|
||||
"gaming pitch",
|
||||
"hackathon demo",
|
||||
"web3 / crypto deck",
|
||||
"indie product launch",
|
||||
"developer tools",
|
||||
"synthwave brand"
|
||||
],
|
||||
"tone": [
|
||||
"geeky",
|
||||
"neon",
|
||||
"rebellious",
|
||||
"sci-fi"
|
||||
],
|
||||
"formality": "low",
|
||||
"density": "medium",
|
||||
"palette": {
|
||||
"neon_pink": "#F0A6CA",
|
||||
"neon_cyan": "#5EDCF4",
|
||||
"neon_yellow": "#F4D03F",
|
||||
"deep_navy": "#0F1B3D",
|
||||
"void": "#0A0E27",
|
||||
"lavender": "#E2D5F2",
|
||||
"description": "deep navy/black void with neon pink, cyan, and yellow pops; pixel art accents and CRT-monitor energy"
|
||||
},
|
||||
"typography": {
|
||||
"display": "Tektur",
|
||||
"body": "Chakra Petch",
|
||||
"mono": "Space Mono",
|
||||
"style": "boxy display sans paired with technical mono, all unmistakably digital and pixel-flavored"
|
||||
},
|
||||
"scheme": "dark",
|
||||
"best_for": "Anything that should feel like a CRT screen at 2am: cyberpunk, gaming, web3, indie dev tools, hackathon demos. Just as good for a tech talk that wants to lean into nostalgic-digital craft, a synthwave brand deck, or a creative review that wants to feel like a console.",
|
||||
"avoid_for": "Contexts where the dark neon palette would actively work against the message — quiet institutional finance disclosures, healthcare patient-facing materials, traditional luxury.",
|
||||
"slide_count": 10,
|
||||
"navigation": "inline keyboard handler with on-page nav dots and slide counter",
|
||||
"source": "https://github.com/zarazhangrui/beautiful-html-templates/tree/main/templates/8-bit-orbit"
|
||||
}
|
||||
Reference in new issue
Block a user