Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Working repository for the Brant Business Interiors (BBI) Shopify cleanup. BBI is the furniture division of Brant Basics, owned by Office Central (founded 1964). B2B institutional Canadian buyers — school boards, hospitals, municipalities, OECM-eligible.
| Need | File |
|---|---|
| The live task list — what's done, in progress, blocked | docs/plan/shopify-fix-plan.md |
| Most recent status snapshot | docs/plan/status-snapshot-2026-04-20.md |
Interactive HTML checklist (the update-checklist skill writes here) | previews/website-fix-checklist.html |
| Parking lot of ideas (not active work) | docs/plan/ideas-backlog.md |
| Brand voice + ICP + messaging | docs/strategy/icp.md |
| Approved product-description samples | docs/strategy/voice-samples.md |
| Script reference — what each script does + how to run | scripts/README.md |
.
├── docs/ Plans, strategy, workflows, review artifacts
│ ├── plan/ Active fix plan + status snapshots + idea backlog
│ ├── strategy/ Brand voice, ICP, segment analysis, competitor research
│ ├── workflows/ How-to runbooks (shipping tiers, taxonomy, design)
│ └── reviews/ Auto-generated review artifacts (for Steve's approval)
├── scripts/ 50 Python/Node helpers — read/write Shopify, clean data
├── data/ Everything scripts read/write (CSVs, JSON, logs, backups)
│ ├── specs/ Per-product spec JSON from lookup-specs.py (Hero 100)
│ ├── reports/ Proposal CSVs (tags, industry) — source of truth for pushes
│ ├── redirects/ URL redirect CSVs for Shopify Admin upload
│ ├── exports/ Full Shopify product/order exports (reference snapshots)
│ ├── backups/ Pre-change snapshots (menus, products, collections)
│ ├── logs/ Push audit trails (timestamped JSON)
│ └── oci-photos/ 48 real project photos scraped from officecentral.com
├── previews/ Browser-viewable HTML — the checklist, review pages, before/afters
├── theme/ Shopify theme code (layouts/sections/snippets/templates)
└── .claude/ Launch configs + agent tooling — ignore unless changing harness
Most scripts follow the same pattern:
python3 scripts/<name>.py # dry run (default — shows what would change)
python3 scripts/<name>.py --live # actually writes to Shopify
python3 scripts/<name>.py --limit=10 # smoke-test on first 10
.env (SHOPIFY_TOKEN=...). Never commit .env.push-* script backs up to data/backups/ and logs to data/logs/ before writing.python3 scripts/serve-previews.py # serves previews/ at http://localhost:8080/
The website-fix-checklist opens at http://localhost:8080/website-fix-checklist.html.
The theme only reads metafields (never writes them — set via Admin API / scripts). Canonical registry of the custom namespaces + keys the live theme depends on:
| Namespace.key | Type | Read by | Purpose |
|---|---|---|---|
collection.metafields.faq.items | list.single_line_text_field | ds-cs-base.liquid (FAQ band) → bbi-faq-jsonld.liquid | Collection FAQ source of truth. One "Question||Answer" string per list entry; entries missing the || delimiter are skipped. Drives the visible accordion and the FAQPage JSON-LD (the two are byte/decode-equal). Added in Step 2.1; populated per category page in Step 2.2. |
article.metafields.faq.items | list.single_line_text_field | ds-article.liquid (FAQ section + FAQPage JSON-LD) | Same "Question||Answer" convention for blog articles. Populate only where the post has real, visible on-page Q&A (Google requires markup to mirror the visible section). |
collection.metafields.bbi.parent_hub_handle | single_line_text_field | ds-cs-base.liquid (breadcrumb + parent-hub derivation) | Handle of the parent category hub for a sub-collection (e.g. seating). Set on bariatric-seating in Step 2.0 when it moved to templateSuffix=base. Section-setting fallback applies when the metafield is blank. |
collection.metafields.bbi.parent_hub_title | single_line_text_field | ds-cs-base.liquid (breadcrumb label) | Display title of the parent hub (e.g. Seating). Pairs with parent_hub_handle. |
product.metafields.specs.* | mixed | bbi-product-jsonld.liquid (additionalProperty[]) + PDP spec table | Per-product spec fields from the enrichment pipeline (Hero 100). See docs/strategy/brand-canonical-map.md for the specs.manufacturer canonical vocabulary. |
*.metafields.global.title_tag / global.description_tag | single_line_text_field | Shopify SEO meta (<title> / <meta name="description">) | Native SEO title/meta; always apply regardless of template. |
JSON-LD emitter inventory (which snippet emits what schema, per surface) lives in docs/audits/schema-audit-2026-05-27.md.