From gropulse-skills
Set up a complete Linear project structure for a new Shopify app and keep issues updated in real-time throughout the build. Use this skill at the very start of any new Shopify app session — it creates the Linear project, 4 milestones (Setup, Core Features, QA & Testing, Launch), parent phase issues, and child issues tailored to the app. Also governs real-time issue tracking during development — mark issues In Progress before starting any task, mark Done immediately on completion, never batch updates at the end of a session. Trigger whenever the user says "build a new app", "start a new Shopify app", "let's build [app name]", "create a new app", "set up Linear for [app]", or when resuming an existing app build session.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gropulse-skills:shopify-linear-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill covers two phases that work together. **Phase 1** runs once at the start of every new app. **Phase 2** runs continuously throughout the entire build.
This skill covers two phases that work together. Phase 1 runs once at the start of every new app. Phase 2 runs continuously throughout the entire build.
Run this phase exactly once, before any code is written.
Ask the user to confirm (or infer from context):
| Field | Example |
|---|---|
| App name | RewardFlow - Loyalty App |
| App purpose | One sentence — what problem it solves |
| Key features | 4–8 main capabilities |
| App category | Marketing / Orders / Store design / etc. |
| Custom Prisma models needed | e.g. LoyaltyProgram, PointTransaction |
| Shopify API scopes needed | e.g. read_orders, write_customers |
Use this info to tailor issue descriptions in Steps 4–5. Generic descriptions are less useful than ones that name the actual models and routes.
Tool: save_project
name: [App name] e.g. "RewardFlow - Loyalty App"
addTeams: ["GroPulse"]
icon: :rocket:
Note the returned project id — you'll need it when creating milestones.
Create all four in a single message using four simultaneous save_milestone calls:
| Name | Description |
|---|---|
1 — Setup | Boilerplate copy, TOML config, pricing tiers, Prisma schema, and project scaffolding. |
2 — Core Features | All backend models, services, admin routes, theme extension, and storefront proxy. |
3 — QA & Testing | E2E test scripts, security audit, and performance audit. All checks must pass before submission. |
4 — Launch | App Store listing copy, icon, feature media, screenshots, and final submission. |
Pass project: "[App name]" on every milestone call.
These are epics — one per phase. Child issues nest under them.
Create in parallel across all milestones:
Milestone: 1 — Setup
Phase 1 — Research & Planning (priority: Urgent) — competitor analysis, feature spec, Linear issue creationPhase 2 — Boilerplate Scaffold & Project Setup (priority: Urgent) — copy boilerplate, update identifiers, configure scopes
Milestone: 2 — Core FeaturesPhase 3 — Database Schema & Backend (priority: Urgent) — Prisma schema, models, services, proxy, webhooksPhase 4 — Admin Frontend (priority: High) — all admin UI pagesPhase 5 — Storefront Theme Extension (priority: High) — client-side JS, liquid blocksPhase 6 — Billing & Plan Gates (priority: High) — Shopify billing wiring, plan enforcement
Milestone: 3 — QA & TestingPhase 7 — QA, Security Audit & Launch Prep (priority: Medium) — E2E tests, security/perf audits
Milestone: 4 — Launchmilestone and project on every call.Create child issues under each parent. Tailor descriptions using the app details from Step 1 — name the actual models, routes, and features rather than using placeholders.
[appname] app folderpackage.json, shopify.app.toml & scopes (list the actual scopes)app/config/pricing.ts[AppName] models (list the actual model names)[entity].server.ts model files (one issue per major model group)[core domain] service (e.g. loyalty.server.ts, rewards.server.ts)orders/paid, app/uninstalled)app.tsxapp._index.tsx)[primary entity] List page[primary entity] Create wizard[primary entity] Detail pageapp.analytics.tsx)app.settings.tsx)app.help.tsx)[appname]-ab.js (or equivalent asset)liftoff-render.js equivalent (DOM manipulation)liftoff-track.js equivalent (conversion tracking)requirePlan / meetsMinimumPlan helpers to app/services/plan.server.tsbilling.request() pattern[primary user flow] full flow (e.g. price test, loyalty enrolment)[secondary user flow] full flowparentId, milestone, project, and priority. Create child issues in parallel within each group, but wait for parent issues to be created first so you have their IDs.Once everything is created:
In ProgressThis is the most important change from the old approach. Follow these rules in every session.
Mark an issue In Progress before writing the first line of code for it.
Mark it Done the moment that piece of work is complete.
Never batch — always update immediately.
The reason this matters: if a session ends unexpectedly, Linear reflects exactly where things stand. The next session can resume from the right place without re-reading the whole codebase.
save_issue with state: "In Progress" on the matching issuesave_issue with state: "Done"In Progresslist_issues filtered to the project to see current stateIn Progress or most recently completed Done issueIn Progress before startingWhen marking Done, update the description with:
All calls use the mcp__2fe173a9-52f9-4062-bd39-ab36a2c936ca__* prefix:
| Task | Tool |
|---|---|
| Create/update project | save_project |
| Create/update milestone | save_milestone |
| Create/update issue | save_issue |
| List issues | list_issues |
| List milestones | list_milestones |
| Get issue detail | get_issue |
Always use team: "GroPulse" or project: "[App name]" on every call — never leave these unset.
Project setup is complete when all of these are true:
In Progress before any code is writtenCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub fuad-hastechit/gropulse-skills --plugin gropulse-skills