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.