From shopify-blog-writer
Complete first-time setup for the shopify-blog-writer plugin. Walks the user through configuring everything: company info, brand voice, product catalog, Shopify credentials, OpenRouter API key, blog tracker spreadsheet, and product dossier locations. Use this skill when the user says "set up my brand", "configure my store", "set up the blog writer", "configure the plugin", "initialize the plugin", or when the company-info skill still contains [TODO] markers. Also trigger if the user tries to run the blog pipeline or draft a blog post and the plugin has not been configured yet — prompt them to run setup first.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shopify-blog-writer:brand-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Walk the user through the complete first-time configuration of the shopify-blog-writer plugin. By the end, every component of the plugin should be ready to use — the user should be able to run `/blog-pipeline` immediately after setup finishes.
Walk the user through the complete first-time configuration of the shopify-blog-writer plugin. By the end, every component of the plugin should be ready to use — the user should be able to run /blog-pipeline immediately after setup finishes.
company-info/SKILL.md file still contains [TODO] markers.env file is missing when the pipeline or upload runsThe setup covers five areas, handled in phases. Use AskUserQuestion to keep the conversation structured. Don't dump everything at once — move through the phases naturally, and let the user skip phases they've already handled.
| Phase | What It Configures | Output |
|---|---|---|
| 1. Company & Products | Brand identity, product catalog | company-info/SKILL.md |
| 2. Brand Voice & Tone | Writing personality, audience, differentiators | company-info/SKILL.md |
| 3. Credentials | Shopify API keys, OpenRouter API key | .env file |
| 4. Blog Tracker | Excel spreadsheet with the right columns | blog-tracker.xlsx |
| 5. Product Documents | Location and type of dossiers/reference files | company-info/SKILL.md |
Check the current state so you know what's already done:
${CLAUDE_PLUGIN_ROOT}/skills/company-info/SKILL.md — does it still contain [TODO] markers?.env file exists in the user's workspace folder — does it have Shopify and OpenRouter credentials?blog-tracker.xlsx exists in the workspace folder — does it have the expected columns?Tell the user what's already configured and what still needs to be set up. If everything is done, show the current settings and ask if they want to update anything.
Collect:
https://yourstore.com)Ask the user to describe their products. For each product, collect:
Also ask:
Shortcut: Offer to save the user time by fetching their website directly with WebFetch to discover products, descriptions, and prices. Also offer to read any product documents in their workspace. If the user says yes, do the research and present what you found for confirmation rather than making them type everything.
Collect the brand personality:
Shortcut: If you fetched their website in Phase 1, you can propose brand voice suggestions based on the tone of their existing website copy and product descriptions. Present these as suggestions for the user to confirm or adjust.
Once Phases 1 and 2 are complete, generate and write the company-info file. The file is at:
${CLAUDE_PLUGIN_ROOT}/skills/company-info/SKILL.md
Use the template in the "Company Info Template" section below. Replace all {placeholders} with the user's data. Make sure there are zero [TODO] markers left in the final file.
The plugin needs two sets of API credentials to function. Ask the user for each one. Never store credentials anywhere except the .env file. Never echo secrets back to the user in full.
Ask the user:
write_content scope?yourstore.myshopify.com)If they don't have an app yet, explain:
write_content scopeAsk the user:
If they don't have one, explain:
sk-or-v1-)Create a .env file in the user's workspace folder (the same folder where blog-tracker.xlsx lives or will live). The file should contain:
# Shopify credentials (for uploading blog posts)
SHOPIFY_STORE_URL={store_url}
SHOPIFY_CLIENT_ID={client_id}
SHOPIFY_CLIENT_SECRET={client_secret}
# OpenRouter API key (for AI image generation)
OPENROUTER_API_KEY={api_key}
If the user doesn't have credentials ready, write the .env file with placeholder values and tell them which lines to fill in later. Mark those as your-key-here so it's obvious they're placeholders.
If a .env file already exists, read it first and only update the missing values — don't overwrite credentials the user already has.
Security: After writing the file, remind the user that .env files contain secrets and should never be committed to git. The plugin's .gitignore already excludes .env files.
The pipeline reads from an Excel tracker file. Check if one already exists.
Look for blog-tracker.xlsx in the user's workspace. If found:
Create one using openpyxl with all 18 columns:
Core columns: #, Title, Author, Length, Status, Shopify ID, Shopify URL, Completed Date
Content brief columns: Format, Target Keyword, Gap Type, Strategic Rationale, Hidden Intent, Key Arguments, Product Tie-In, Recommended Word Count, Recommended Structure, Publishing Priority
Format the header row with bold text and a colored background. Set reasonable column widths. Save it to the user's workspace folder as blog-tracker.xlsx.
After the tracker is ready, ask:
Ask the user about reference materials:
If the user has documents, list the files in their workspace to confirm which ones are relevant. Then update the Product Research section of company-info/SKILL.md with:
*Dossier*, *Product*, *Spec*)If the user doesn't have documents, that's fine — the blog-drafting skill will rely on the website and the product catalog in company-info instead. Update the Product Research section to reflect this.
When writing ${CLAUDE_PLUGIN_ROOT}/skills/company-info/SKILL.md, use this exact structure:
---
name: company-info
description: >
This skill provides company context, product catalog details, and brand information
used by other skills in this plugin. It should be loaded automatically by blog-drafting,
the image-generator agent, and the shopify-uploader agent when they need company-specific
context. It can also be triggered directly when the user asks "what products do we have",
"show me company info", "list our product catalog", or needs a refresher on brand details.
---
# Company Information & Product Research
This skill is the central source of truth for company-specific context within the shopify-blog-writer plugin. Other skills and agents should load this skill first to gather the information they need about the company, its products, and its brand.
## Website
The company website is the primary source for up-to-date product information, pricing, and URLs.
- **Company Name:** {company_name}
- **Website URL:** {website_url}
- Use `WebFetch` on the website homepage to discover the current product catalog, pricing, and any active promotions or bundles.
- Every product mention in blog content **must** be hyperlinked to its product page on the website. Fetch the website to get the correct product URLs — do not guess or hardcode them.
## Product Research
### Product Dossiers (Local Files)
{product_documents_section}
### Website Product Pages
After reading local documents, also fetch the relevant product pages from the website to get:
- Current pricing
- Product availability (in stock vs. sold out)
- Exact product page URLs for hyperlinking
- Any updated product descriptions or claims
### Cross-Referencing
Always cross-reference local document information with the live website to ensure:
- Prices are current
- Products mentioned are still available
- URLs are correct and active
- No discontinued products are featured prominently
## Product Catalog
{product_catalog_table}
{bundles_description}
## Brand Voice
{brand_voice_section}
## How Other Skills Should Use This
### blog-drafting
Before writing any blog post, load this skill to:
1. Identify which products are relevant to the blog topic
2. Read the corresponding product documents for details and claims
3. Fetch the website for current product URLs and pricing
4. Hyperlink every product mention to its product page
### image-generator agent
Reference the brand voice and product positioning when crafting image prompts to ensure visual consistency with the brand.
### shopify-uploader agent
Use the brand context for author name, tags, and summary generation.
Present a summary:
Then tell the user:
/blog-pipeline to process your first blog post."If the user runs setup again and everything is already configured (no TODO markers, .env exists, tracker exists), show the current state and ask what they want to update. Support:
npx claudepluginhub jithinbathula/shopify-blog-writer-marketplace --plugin shopify-blog-writerManages full-lifecycle blog content with 30 sub-skills for writing, rewriting, analysis, SEO, schema, images, repurposing, and multilingual publishing. Optimized for Google rankings and AI citations.
One-time business onboarding — scrapes your website, builds business profile, finds 3 competitors via SERP
Generates SEO-optimized affiliate blog articles in four formats: product review, comparison, listicle, and how-to guide. Includes keyword strategy, structured headings, comparison tables, CTAs, FAQ schema, and FTC-compliant disclosure.