Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.