README.md
Language Markdown5.2 KB91 lines
# Meridian SkillsTwenty Claude skills for the jobs that come round every week at a print anddisplay shop: routing and triaging the CRM, enriching and loading outreachcohorts, pulling production speeds and product specs off the storefront,rebuilding vendor artwork templates, prepping low-resolution artwork forupscaling, writing SOPs, and answering customers in one person's voice.**The company is fictional.** These skills were built for, and used every dayat, a real print and display shop. Here they serve **Meridian Display Co.**,the invented company behind[meridian-ops-board](https://github.com/mattrguerra/meridian-ops-board),[meridian-crm-mcp](https://github.com/mattrguerra/meridian-crm-mcp) and[meridian-orders-mcp](https://github.com/mattrguerra/meridian-orders-mcp).Its staff, clients, products, storefront, prices and examples are all invented;the skills and what they teach are the real ones. The one real person is MattGuerra, who built them: `matt-guerra-email` is his own voice with customers.## The skills| Skill | What it does | Works with ||---|---|---|| **CRM and outreach** | | || `bitrix-pipeline-board` | An interactive board of the open lead pipeline by owner and stage, each lead linked | Bitrix24 || `bitrix-task-router` | Assigns open tasks by a routing rule, previews every change, writes only on `--commit` | Bitrix24 || `bitrix-tracker` | A read-only digest: overdue, unassigned, stale, changed since yesterday | Bitrix24 || `matt-easy-win-bitrix-triage` | Finds leads that should close as junk or out of scope, and produces a reviewed worklist first | Bitrix24 || `client-enrich` | Enriches outreach client records with company and contact research, written back per contract | Apollo, Apify || `partner-pipeline-push` | Pushes an enriched cohort into a deal funnel and posts each profile on its deal | Bitrix24 || **Catalog and storefront** | | || `product-lookup` | Product sizes, materials and options for the catalog | || `site-safe-fetch` | Crawls the storefront without tripping its WAF or saturating the origin | || `production-speed-csv` | A CSV of turnaround options for every product in a category, with an offline test fixture | || `category-page-filter` | Designs a category page's filter sidebar and renders a working prototype | || `thanksio-postcard-formatter` | Turns an order export into clean, ready-to-send postcard mailing CSVs | Thanks.io || **Artwork and images** | | || `artwork-template-rebuilder` | Rebuilds an off-standard vendor artwork template to the house standard, layers and all | PDF || `topaz-prepress` | Preps low-resolution images for an upscale and recommends the Topaz model and settings per image | Topaz Gigapixel || `lowres-logo-rescue` | Denoises, upscales, sharpens and flattens a blurry logo until it is readable and traceable | Python || `kittl-ai-edit` | Drives Kittl's AI image tools to fix a mockup while keeping its artwork, text and colours | Kittl, Claude in Chrome || **Writing and documents** | | || `matt-guerra-email` | Drafts and replies to customer email in Matt Guerra's voice | || `sop-author` | Writes an SOP in the company's .docx format, from a structured spec | Word (.docx) || **Team and general** | | || `preferences-setup` | Interviews a staff member and writes their Claude personal-preferences block | Claude Teams || `cowork-project-architect` | Scaffolds a complete Claude project as an Obsidian vault, through intake and sign-off | Claude, Obsidian || `plan-build-loop` | Plans every item in a list against one goal, gets one sign-off, then builds them all | Claude |Each skill is a folder under `skills/`: its `SKILL.md` (the instructionsClaude follows, with the frontmatter that decides when it triggers), plus any`scripts/`, `references/`, `templates/` or `assets/` it uses.## Build and install```bashpython3 scripts/pack_skill.py # every skill -> dist/<name>.skillpython3 scripts/pack_skill.py sop-author # just one```A `.skill` file is the skill's folder as a zip, the format Claude installsskills from. The pack script refuses a folder whosefrontmatter `name` does not match its folder, because that name is how aninstalled skill is identified. It leaves out a local `.env` or `config.json`,which hold live webhook URLs.Some skills run Python scripts. They need Python 3.10+, and a few needpackages: `python-docx` (sop-author), `pillow`, `numpy`, `opencv-python`,`scikit-learn` and `scipy` (the image skills), `reportlab`, `pdfplumber` and`pikepdf` (artwork-template-rebuilder). The Bitrix scripts run offline againsttheir bundled samples with `--mock`.## ChecksEverything here runs offline, with no credentials and no packages beyond`pytest`:```bashpython3 scripts/pack_skill.py # all twenty skills packpython3 -m pytest tests # the fixture diff and both --mock runs```The tests wrap three commands that can also be run by hand:```bash(cd skills/production-speed-csv/scripts && python3 build_speed_csv.py fixtures/category-10x10-booths.html /tmp/speeds.csv && diff /tmp/speeds.csv fixtures/expected.csv)python3 skills/bitrix-task-router/scripts/bitrix_router.py --mockpython3 skills/bitrix-tracker/scripts/bitrix_tracker.py --mock```CI (`.github/workflows/checks.yml`) runs the pack, the tests and an em dashscan on every push.