Skip to content
myvibe-publish logo

MyVibe Publish

myvibe-publish

Publish static HTML, ZIP archive, or directory to MyVibe. Use this skill when user wants to publish/deploy web content to MyVibe.

NeverSight/skills_feed0installs215stars

SKILL.md

Full skill instructions

MyVibe Publish

Publish web content (HTML file, ZIP archive, or directory) to MyVibe.

Usage

# Publish a ZIP file
/​myvibe:myvibe-publish --file ./​dist.zip

# Publish a single HTML file
/​myvibe:myvibe-publish --file ./​index.html

# Publish a directory (auto-zip)
/​myvibe:myvibe-publish --dir ./​dist

# Import and publish from URL
/​myvibe:myvibe-publish --url https://example.com/​my-app

# Publish to specific myvibe instance
/​myvibe:myvibe-publish --file ./​dist.zip --hub https://custom-hub.com

Options

OptionAliasDescription
--file <path>-fPath to HTML file or ZIP archive
--dir <path>-dDirectory to compress and publish
--url <url>-uURL to import and publish
--hub <url>-hMyVibe URL (default: https://staging.myvibe.so/)
--title <title>-tProject title
--desc <desc>Project description
--visibility <vis>-vVisibility: public or private (default: public)

Workflow

CRITICAL: You MUST read reference files before starting analysis

Before starting any analysis, you MUST use the Read tool to read:

  • references/​metadata-analysis.md - Detailed metadata extraction and tags matching workflow

Workflow Overview

  1. Detect Project Type → determine if build is needed
  2. Build (if needed) → compile the project
  3. Metadata Analysis → extract title, description, tags, screenshot
  4. Confirm Publish → show metadata, get user confirmation
  5. Execute Publish → upload to MyVibe

IMPORTANT: Step 3 (Metadata Analysis) is ALWAYS required, including after build.

1. Detect Project Type

Determine what type of project this is and what the publish target will be.

Target directory: --dir if specified, otherwise current working directory.

Project Type Detection
CheckProject TypeNext Step
--file with HTML fileSingle HTML→ Step 3 (analyze the HTML file)
--file with ZIP fileZIP Archive→ Step 3 (extract and analyze)
Has dist/​index.html, build/​index.html, or out/​index.htmlPre-built→ Step 2 (confirm rebuild or use existing)
Has package.json with build script, no output folderBuildable→ Step 2 (build first)
Has multiple package.json files or workspace configMonorepo→ Step 2 (select app, then build)
Has index.html at root, no package.jsonStatic→ Step 3 (analyze root directory)
Cannot determineUnknown→ Step 3 (analyze as-is)

Output format:

Project Type Detection:
- Type: [type]
- Reason: [why this type was detected]
- Publish target: [directory or file path]
- Next step: [Step 2: Build / Step 3: Metadata Analysis]

2. Build Decision (for Pre-built/​Buildable/​Monorepo projects)

Detect Build Configuration

Package Manager (from lock files):

Lock FilePackage Manager
pnpm-lock.yamlpnpm
yarn.lockyarn
bun.lockb or bun.lockbun
package-lock.jsonnpm
Nonenpm (default)

Build Command (from package.json scripts):

  • Priority: build:prod > build:production > build

Output Directory (from config files):

Config FileExpected Output
vite.config.*dist
next.config.*.next or out
webpack.config.*dist
astro.config.*dist
nuxt.config.*.output
None recognizedCheck dist, build, out in order
Show Analysis & Confirm Build

Present the analysis to user:

Project Analysis:
- Type: [framework] project
- Package Manager: [pm]
- Build Command: [pm] run build
- Output Directory: [dir]

Warnings (if any):
- Missing .env file (.env.example exists)
- Large files detected (> 10MB)

For Pre-built projects (existing build output found), use AskUserQuestion:

Question: "Found existing build output in [dir]/​. Rebuild to ensure latest?"
Header: "Build"
Options:
  - Label: "Rebuild & Publish"
    Description: "Run build again, then publish [dir]/"
  - Label: "Use Existing"
    Description: "Publish existing [dir]/ without rebuilding"
  - Label: "Publish Source"
    Description: "Skip output folder, publish source as-is"

For Buildable projects (no build output), use AskUserQuestion:

Question: "Proceed with build before publishing?"
Header: "Build"
Options:
  - Label: "Build & Publish"
    Description: "Run build, then publish [output_dir]/"
  - Label: "Publish Source"
    Description: "Skip build, publish source as-is"
Execute Build (if confirmed)
cd [project_dir] && [pm] install && [pm] run build

On build failure:

  • Analyze error output
  • Offer to help fix common issues (missing dependencies, config errors)
  • User can choose to fix and retry, or publish source as-is

After build completes: Proceed to Step 3: Metadata Analysis with the build output directory as the publish target.

Monorepo Handling

When multiple package.json files detected, use AskUserQuestion:

Question: "Monorepo detected. Which app would you like to publish?"
Header: "App"
Options:
  - Label: "[apps/​web]"
    Description: "[framework] detected in apps/​web"
  - Label: "[apps/​admin]"
    Description: "[framework] detected in apps/​admin"
  - Label: "Other"
    Description: "Specify a different path"

After selecting and building the app, proceed to Step 3: Metadata Analysis.

3. Metadata Analysis

CRITICAL: This step is MANDATORY for ALL project types, including after build.

Follow references/​metadata-analysis.md completely. Each step MUST output results:

  1. Extract metadata (title, description, githubRepo)
  2. Fetch and match tags
  3. Generate screenshot

If screenshot fails, skip coverImage and let server auto-generate.

4. Confirm Publish

Present all extracted metadata to the user:

Publishing to MyVibe:
──────────────────────
Title: [extracted title]

Description:
[generated story, 50-150 words]

Visibility: public
Source: [directory path]

GitHub: [repo URL or "Not detected"]
Cover Image: [screenshot URL or "Will be auto-generated"]

Tags (auto-detected):
- Tech Stack: [matched tag names, e.g., "React, TypeScript, Vite"]
- Platform: [matched tag names or "None"]
- Category: [suggested category or "None"]
- Model: [detected AI models or "None"]

Use AskUserQuestion to confirm:

Question: "Confirm publish with these details?"
Header: "Publish"
Options:
  - Label: "Publish"
    Description: "Publish with the metadata shown above"
  - Label: "Edit details"
    Description: "Modify title, description, tags, or other fields"

If user selects "Edit details", collect corrections via follow-up questions.

5. Execute Publish

Only after user confirmation in Step 4, execute the publish script.

Dependency Check Strategy:

  1. Check if skills/​myvibe-publish/​scripts/​node_modules directory exists
  2. If not exists: run npm install first
  3. If publish fails with module errors: run npm install and retry

Method 1: Using Config File (Recommended for full metadata)

Write a YAML config file with all metadata, then publish:

# Write config file in current directory
# File: ./​publish-config.yaml
source:
  type: dir
  path: ./​dist
hub: https://staging.myvibe.so
metadata:
  title: My App
  description: A cool web application
  visibility: public
  coverImage: https://...
  githubRepo: https://github.com/​user/​repo
  platformTags: [1, 2]
  techStackTags: [3, 4, 5]
  categoryTags: [6]
  modelTags: [7]
# Publish using config file
node skills/​myvibe-publish/​scripts/​publish.mjs --config ./​publish-config.yaml

The config file is automatically deleted after successful publish.

Method 2: Command Line Arguments (Simple cases)

# Publish a directory
node skills/​myvibe-publish/​scripts/​publish.mjs \
  --dir ./​dist \
  --hub https://staging.myvibe.so \
  --title "My App" \
  --desc "A cool app" \
  --visibility public

# Publish a file
node skills/​myvibe-publish/​scripts/​publish.mjs \
  --file ./​dist.zip \
  --hub https://staging.myvibe.so \
  --title "My App"

# Import from URL
node skills/​myvibe-publish/​scripts/​publish.mjs \
  --url https://example.com/​my-app \
  --hub https://staging.myvibe.so

Script Output:

On success:

Published successfully!
URL: https://staging.myvibe.so/​{userDid}/​{vibeDid}

6. Return Result

  • On success: Show the published URL to the user
  • On failure: Show the error message and suggest solutions

Error Handling

ErrorHandling
Dependencies not installedRun npm install in scripts directory
401/​403 Authorization errorToken will be cleared automatically, re-run to authorize again
Upload failedShow error message, suggest checking file format
Conversion failedShow conversion error from API
Network errorSuggest retry
Build failedAnalyze error, offer to help fix, or publish source as-is
Missing dependenciesRun [pm] install first
Config errorCheck framework config files
Screenshot failedSkip coverImage, proceed without it
agent-browser not installedRun npm install -g agent-browser && agent-browser install
agent-browser Chromium missingRun agent-browser install (or --with-deps on Linux)
Tags fetch failedUse expired cache if available, or skip tag matching
Image upload failedSkip coverImage, proceed without it

Authorization

The script handles authorization automatically:

  • First run opens browser for user to authorize
  • Token is saved for future use
  • On 401/​403 errors, token is cleared and user needs to re-authorize on next run

Notes

  • Always analyze content before publishing to generate meaningful title/​description
  • Never use directory names as title - they are often meaningless
  • Confirm with user before executing publish
  • Default hub is https://staging.myvibe.so/
  • Local build detection is preprocessing only; server has its own build pipeline
  • Be conservative: if project type is uncertain, publish as-is and let server handle
  • --dir specifies target directory and requires full metadata analysis
  • --file specifies single file and also requires metadata analysis and screenshot generation
  • Build detection should not block publishing
  • Tags are cached locally for 7 days to avoid repeated API calls
  • All auto-detected metadata should be shown as "suggestions" - user can modify
  • If screenshot fails, skip coverImage and let server auto-generate
  • Use config file method when publishing with extended metadata (tags, coverImage, etc.)

More skills from NeverSight

devops-deployer logo
NeverSight/skills_feed

devops-deployer

Comprehensive DevOps and deployment workflow that orchestrates infrastructure automation, CI/CD pipelines, container orchestration, and cloud deployment. Handles everything from infrastructure as code and pipeline setup to monitoring, scaling, and disaster recovery.

215 1
View
avnu logo
NeverSight/skills_feed

avnu

Integrate avnu SDK for Starknet DeFi: token swaps with best-price routing, DCA recurring buys, native staking, gasless transactions via paymaster, and market data. Use when building Starknet trading, DEX aggregation, or DeFi automation features.

215 0
View
post-to-x logo
NeverSight/skills_feed

post-to-x

发布内容和文章到 X (Twitter)。支持带图片的普通推文和 X Articles(长文)。使用真实的 Chrome 和 CDP 来绕过自动化检测。

215 0
View
ralph-prompt-builder logo
NeverSight/skills_feed

ralph-prompt-builder

Master orchestrator for generating Ralph Wiggum-compatible prompts. Analyzes task requirements and routes to appropriate generator (single-task, multi-task, project, or research). Use when you need to create any Ralph loop prompt and want automatic selection of the right generator.

215 0
View
branch-comparison logo
NeverSight/skills_feed

branch-comparison

Use when the user asks to compare branches, analyze git diffs, review changes between branches, update specifications based on code changes, or analyze what changed. Triggers on keywords like "compare branches", "git diff", "what changed", "branch comparison", "code changes", "spec update".

215 0
View
fastapi-development logo
NeverSight/skills_feed

fastapi-development

Build high-performance FastAPI applications with async routes, validation, dependency injection, security, and automatic API documentation. Use when developing modern Python APIs with async support, automatic OpenAPI documentation, and high performance requirements.

215 0
View
zendesk-chat logo
NeverSight/skills_feed

zendesk-chat

Enables Claude to manage Zendesk Chat conversations, support tickets, and customer service operations

215 0
View
forge logo
NeverSight/skills_feed

forge

Mine transcripts for knowledge - decisions, learnings, failures, patterns. Triggers: "forge insights", "mine transcripts", "extract knowledge".

215 0
View
mixpanel logo
NeverSight/skills_feed

mixpanel

Track product analytics and user behavior with Mixpanel's event-based platform.

215 0
View
ocpp logo
NeverSight/skills_feed

ocpp

OCPP protocol reference for EV charging infrastructure development. Covers OCPP 2.0.1 and OCPP 1.6J. Use when working with OCPP messages, charging station code, CSMS/Central System backends, smart charging, transaction handling, or EV charging protocols. Activates on keywords: OCPP, charging stat...

215 0
View
bee-collect logo
NeverSight/skills_feed

bee-collect

Gather scattered ideas into organized GitHub issues. The bee collects pollen from every flower, checks if the hive already has it, and carefully deposits new work in the comb for later. Never edits code—only organizes the work ahead. Use when creating issues from TODOs or planning work.

215 0
View
vercel-react-native-skills logo
NeverSight/skills_feed

vercel-react-native-skills

Comprehensive best practices for React Native and Expo applications. Contains rules across multiple categories covering performance, animations, UI patterns, and platform-specific optimizations.

215 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View