本文へ移動
cccskills
無料GitHub で公開

kelly-picks

Product-research (选品) desk (Busabase App-in-Skill) for a cross-border e-commerce seller. The agent sweeps trend sources — Amazon BSR movers, TikTok viral product videos, Temu/AliExpress rising items, Google Trends terms, competitor new launches — and files product candidates with margin cards (landed cost, fees, breakeven ACOS) and competition reads; Kelly verdicts them develop / watch / drop, and develop items become sourcing and listing briefs handed to kelly-listing. Use when the user invokes $kelly-picks or /kelly-picks, or asks for 选品, product research, a product sourcing radar, BSR movers, TikTok viral products, a margin calculator, breakeven ACOS, competition reads, or product candidate triage.

インストール方法を見る

含まれるファイル(74)

  • SKILL.md15.1 KB
  • agents/openai.yaml221 B
  • assets/screenshots/candidates-zh-CN.webp131 B
  • assets/screenshots/candidates.webp131 B
  • assets/screenshots/decisions-zh-CN.webp130 B
  • assets/screenshots/decisions.webp130 B
  • assets/screenshots/detail-zh-CN.webp130 B
  • assets/screenshots/detail.webp130 B
  • assets/screenshots/overview-zh-CN.webp130 B
  • assets/screenshots/overview.webp130 B
  • assets/screenshots/thumbs/candidates-zh-CN.webp130 B
  • assets/screenshots/thumbs/candidates.webp130 B
  • assets/screenshots/thumbs/decisions-zh-CN.webp130 B
  • assets/screenshots/thumbs/decisions.webp130 B
  • assets/screenshots/thumbs/detail-zh-CN.webp130 B
  • assets/screenshots/thumbs/detail.webp130 B
  • assets/screenshots/thumbs/overview-zh-CN.webp130 B
  • assets/screenshots/thumbs/overview.webp130 B
  • busabase.json934 B
  • content/_folder.json165 B
  • content/candidates/base.json3.3 KB
  • content/candidates/records.ndjson3.5 KB
  • content/kelly-picks-app/_node.json185 B
  • content/kelly-picks-app/.busabaseignore194 B
  • content/kelly-picks-app/app/accent-theme.css8.0 KB
  • content/kelly-picks-app/app/accent-theme.js7.3 KB
  • content/kelly-picks-app/app/app.js19.4 KB
  • content/kelly-picks-app/app/demo-visuals.css1.5 KB
  • content/kelly-picks-app/app/demo-visuals.js3.3 KB
  • content/kelly-picks-app/app/i18n/messages.js9.5 KB
  • content/kelly-picks-app/app/index.html4.6 KB
  • content/kelly-picks-app/app/js/busabase-client.js226 B
  • content/kelly-picks-app/app/js/config.js7.5 KB
  • content/kelly-picks-app/app/js/connect-gate.js1.6 KB
  • content/kelly-picks-app/app/js/demo-visuals-data.js9.1 KB
  • content/kelly-picks-app/app/js/pagination.js4.6 KB
  • content/kelly-picks-app/app/js/picks-model.js13.0 KB
  • content/kelly-picks-app/app/js/providers/busabase-provider.js10.5 KB
  • content/kelly-picks-app/app/js/providers/demo-provider.js49.6 KB
  • content/kelly-picks-app/app/js/providers/index.js270 B
  • content/kelly-picks-app/app/js/runtime.js3.4 KB
  • content/kelly-picks-app/app/js/selection-views.js22.6 KB
  • content/kelly-picks-app/app/styles/base-ui.css13.0 KB
  • content/kelly-picks-app/app/styles/editorial.css30.7 KB
  • content/kelly-picks-app/app/styles/layers.css33 B
  • content/kelly-picks-app/app/styles/shell.css9.2 KB
  • content/kelly-picks-app/app/styles/workflow.css18.5 KB
  • content/kelly-picks-app/app/vendor/busabase-airapp-gate.css6.1 KB
  • content/kelly-picks-app/app/vendor/busabase-airapp-gate.js11.2 KB
  • content/kelly-picks-app/app/vendor/busabase-airapp.js556.0 KB
  • content/kelly-picks-app/app/vendor/busabase-sdk.js849.5 KB
  • content/kelly-picks-app/package.json1.0 KB
  • content/kelly-picks-app/pnpm-lock.yaml5.2 KB
  • content/kelly-picks-app/pnpm-workspace.yaml50 B
  • content/kelly-picks-app/scripts/check-editorial.mjs6.1 KB
  • content/kelly-picks-app/scripts/check.mjs4.2 KB
  • content/kelly-picks-app/server.js3.1 KB
  • content/kelly-picks-app/test/picks-model.test.mjs7.6 KB
  • content/proposals/base.json1.7 KB
  • content/settings/base.json1.3 KB
  • content/sources/base.json1.2 KB
  • content/sync-log/base.json884 B
  • content/trend-items/base.json2.7 KB
  • package.json565 B
  • pnpm-lock.yaml4.3 KB
  • pnpm-workspace.yaml50 B
  • README.md7.5 KB
  • references/picks-schema.md9.9 KB
  • scripts/compute_margins.mjs6.1 KB
  • scripts/execute_decisions.mjs7.4 KB
  • scripts/ingest_trends.mjs15.2 KB
  • scripts/publish_airapp.mjs3.1 KB
  • scripts/setup.mjs6.4 KB
  • scripts/sync-content.mjs2.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Kelly Picks

App UI Screenshots

<table> <tr> <td width="50%"><img src="assets/screenshots/overview.webp" alt="Kelly Picks overview"></td> <td width="50%"><img src="assets/screenshots/candidates.webp" alt="Kelly Picks candidates"></td> </tr> <tr> <td><strong>Overview</strong><br>Product-research desk with weekly candidates by source, top movers, and per-source sweep freshness.</td> <td><strong>Candidates</strong><br>Candidate table with momentum, estimated margin, competition grade, and develop/watch/drop stages.</td> </tr> <tr> <td width="50%"><img src="assets/screenshots/decisions.webp" alt="Kelly Picks decision queue"></td> <td width="50%"><img src="assets/screenshots/detail.webp" alt="Kelly Picks margin card"></td> </tr> <tr> <td><strong>Decision queue</strong><br>Agent-proposed develop/watch/drop verdicts with sourcing and listing briefs for approval.</td> <td><strong>Margin card</strong><br>Live-editable margin math — price, landed cost, freight, fees, ad cost → margin % and breakeven ACOS — plus a top-10 review-count competition read.</td> </tr> </table>

Overview

Use this skill as Kelly's product-research (选品) desk. The agent sweeps configured trend sources and files everything into Busabase, which the AirApp renders live:

  1. Trend feed: raw source-tagged signals — a viral TikTok with view velocity, a BSR jump, a Temu/AliExpress riser, a rising search query, a competitor launch — each linkable to a candidate.
  2. Candidates: products under research, each with a margin card (estimated price − landed cost − freight − platform fees − est. ad cost → gross margin %, breakeven ACOS) and a competition read (top-10 review-count distribution, head-seller dominance, new-entrant velocity).
  3. Decisions: the review queue — the agent proposes a verdict per candidate (develop with sourcing + listing brief draft, drop with reason, keep watching with re-check criteria); Kelly approves, edits the brief, requests changes, or blocks. Approved develop items become concrete handoffs: a sourcing brief export and a listing brief for kelly-listing.

Real network sweeps (browsing TikTok/Amazon/Temu/AliExpress/Google Trends, reading competitor listings) are genuine external operations the AirApp browser cannot perform: scripts/ingest_trends.mjs is the single write path for sweep payloads, scripts/compute_margins.mjs deterministically recomputes every margin card from the fee tables, and scripts/execute_decisions.mjs prints the plan for approved proposals (and, after the agent performs the real handoff, marks it done). The AirApp itself only reads Busabase and writes review decisions.

Default behavior is AirApp-first. Unless the user explicitly asks only for explanation, sweep the configured sources, ingest the payload, recompute margins, and give the user the clickable AirApp URL (or the local preview URL when local preview is explicitly requested). Use chat-only mode only when the user says "纯聊天", "chat only", "不要打开 UI", or similar; then present numbered candidates/proposals and take verdicts in chat.

The AirApp itself never browses a trend source, scrapes a listing, or performs a handoff. It reads and writes Busabase records only. All external collection and execution is genuinely trusted-process-only: scripts/ingest_trends.mjs is the only place trend/candidate data enters the system, and scripts/execute_decisions.mjs never performs the sourcing-brief export or the kelly-listing handoff itself — it only prints the plan.

Mandatory Dependencies

  1. Read and follow $kelly-app-skill-creator for product behavior, visual quality, responsive layout, and the complete canonical content/kelly-picks-app/ artifact.
  2. Read and follow $busabase for connection, target Space, node discovery, ChangeRequests, review, and merge behavior.
  3. Read and follow $busabase-app-creator for resource modeling, AirApp runtime limits, security, validation, and deployment.

If a dependency is unavailable, preserve this skill's local artifact and product contracts, stop before the unavailable Busabase operation, and report the exact missing dependency. Do not invent a second data backend.

Boundary

  • Collection is read-only over public data (rankings, public videos, public listings, public trends). Respect robots.txt and each platform's terms of service, throttle politely, and never scrape private, gated, or personal data.
  • The AirApp reads and writes Busabase records only. It must not fetch remote trend pages, place orders, message suppliers, export files, or mutate remote systems.
  • Handoffs (listing brief → kelly-listing, sourcing brief exports) are approval-required: Kelly approves the proposal in the app, then scripts/execute_decisions.mjs prints the concrete operation for the agent to carry out; only after that does --apply mark the proposal done.
  • Margin data, supplier quotes, and fee tables are Kelly's business data. Never commit payload JSON files fed to scripts/ingest_trends.mjs, env files, or raw export files.

Busabase Resources

Six Bases under one application Folder (kelly-picks), declared in content/kelly-picks-app/app/js/config.js and the generated template sidecars under content/:

  • candidates: products under research — one row per candidate, with the margin card and competition read JSON-encoded on the row (they share the candidate's lifecycle, not a separate one).
  • trend-items: raw source-tagged trend signals from a sweep, optionally linked to a candidate; a genuinely distinct entity with its own promote-to-candidate lifecycle.
  • proposals: agent-proposed develop/watch/drop verdicts per candidate, with their own five-state review workflow (needs_review|changes_requested|approved|done|blocked).
  • sources: configured trend sources — kind, collection method, and sweep freshness.
  • sync-log: append-only history of ingest/compute/execute runs.
  • settings: one row (record-id: "config") with the seller profile, platform fee tables, freight rules, and ad-cost default.

Resources provision lazily through an idempotent Busabase ChangeRequest the first time the app runs in a Space; see references/picks-schema.md for exact field shapes. A candidate's develop/watch/drop verdict and a proposal's approve/request_changes/revise/block review are both written directly onto the item record — the human verdict IS the field write, merged immediately from a standalone local preview or as a pending ChangeRequest from a deployed AirApp.

First Run And Onboarding

On invocation, check the candidates and sources Bases. If both are empty, guide setup before any sweeping: ask, turn by turn, seller profile (store name, product categories, margin floor %, max COGS), target platforms with fee tables (referral fee % and any flat fulfillment fee), freight rules (default per-unit and per-category overrides), the ad-cost default % to assume when the agent has no better number, and which sources to sweep (amazon_bsr|tiktok|temu|aliexpress|trends|competitor, each with a method browser_agent or manual). Write the seller profile/platforms/freight/ad-cost-default into the settings Base's single row and each source into the sources Base.

Local App

Default behavior is AirApp-first — give the user the clickable AirApp URL. Start pnpm --dir content/kelly-picks-app dev only when local preview/debugging is explicitly requested.

Required app views (hash routes):

  • #/overview: product-research command desk — human-attention panel (candidates to review, develop-approved awaiting handoff, stale watches), KPI cards (candidates this week by source, in development, watching, average margin of approved), top movers this week with momentum arrows, and source freshness (last sweep per source).
  • #/candidates and #/candidates/<id>: the candidate table — product name, category, source badge, momentum, est. price, est. margin %, competition grade (A-D), stage (new|reviewing|develop|watch|dropped). Detail shows the full margin card (line-by-line, editable inputs recomputing live in-memory), the competition read (top-10 review counts as inline SVG bars, dominance note, new-entrant velocity), evidence links, the agent's why-it-matters note, and Develop / Watch / Drop verdict buttons with a Review note.
  • #/trends: the raw signal feed, filterable by source badges; items link to their candidate or offer "Promote to candidate" (writes a promotion decision the agent picks up).
  • #/decisions: the review queue with workflow states (needs_review|changes_requested|approved|done|blocked) — each item is a candidate verdict proposal with editable brief text, Approve / Request changes / Save brief edit / Block buttons, a Review note, and stable refs like Pick #1.
  • #/settings: sanitized config — seller profile, platform fee tables, freight rules, sources with per-source method, data provider, onboarding state. Never exposes secret values.

Demo mode:

  • ?demo=<scene> opens deterministic mock data: overview, candidates, trends, decisions, detail (a featured candidate with full margin card and competition bars; featured id cand-lunchbox).
  • lang=en or lang=zh forces UI chrome language for screenshots; with lang=zh the demo content itself (product names, reasons, briefs, summaries) is meaningfully localized while numbers stay USD.
  • Deep links like /?demo=detail&lang=zh#/candidates/cand-lunchbox must work.
  • Demo mode never reads or writes Busabase. Decision buttons still work but act on in-memory state only and show a demo notice.

UI language: English and Chinese chrome with Auto default (navigator.languages), an explicit selector persisted locally, and imported domain content kept in its original language outside demo mode.

Sweep Workflow

Sweeps run on demand — when Kelly asks for a sweep or invokes the skill for fresh research. There is no cron inside the skill; any recurring schedule lives outside it.

  1. Iterate the configured sources with method browser_agent using browser skills or web search in the agent session; manual sources are supplied by Kelly as pasted research or export files.
  2. For each finding, build a normalized trend item: source kind, one-line title, 1-3 sentence summary, evidence URL, a metric (metric_label + metric_value), delta_pct, and a short momentum series. Give it a stable external_id when the source has one.
  3. When a signal is strong enough, file a candidate in the same payload: name, category, target platform, est. price, best-known margin inputs, a competition read (top-10 review counts, head share, entrant velocity), evidence links, and a why_it_matters note that states demand, wedge, margin, and window.
  4. Write through the single write path: save the payload JSON, then run node scripts/ingest_trends.mjs <payload.json>. The script validates, dedupes trend items by source + external id (content hash fallback) and candidates by id or name+source, merges, refreshes source freshness, and appends a sync-log entry.
  5. Dedupe rules: a re-observed trend with unchanged numbers is skipped; changed numbers update the existing row. One row per signal, not per crawl.

Margin Workflow

  1. After ingest (or when fee tables change), run node scripts/compute_margins.mjs. It deterministically recomputes every candidate's margin card from the settings fee tables: platform referral fee % + flat fulfillment fee, freight rules by category (agent-quoted freight with freight_quoted: true is preserved), and the ad-cost default % when no estimate exists.
  2. The script flags candidates below seller_profile.margin_floor_pct (below_floor: true, surfaced in the UI) and is idempotent — re-running without input changes changes nothing.
  3. The margin card in #/candidates/<id> is a what-if surface: edits recompute live in the browser only. Busabase is only changed by scripts, so the app and the agent never fight over numbers.
  4. When Kelly gets a real freight quote or supplier price, ingest it as a candidate update (margin_card.freight + freight_quoted: true, or new cogs) and re-run compute_margins.mjs.

Decision Workflow

  1. The agent proposes verdicts as proposals in the proposals Base (via ingest_trends.mjs payloads, or seeded directly): develop with a drafted sourcing + listing brief, drop with the reason, watch with re-check criteria.
  2. Kelly reviews in #/decisions (or #/candidates/<id> for direct verdicts) — writes go straight to the proposal/candidate record through busabase-sdk.
  3. Before executing anything, run node scripts/execute_decisions.mjs (dry-run). It prints the concrete operation for each approved proposal: create_sourcing_brief → export path under exports/, handoff_listing_brief → kelly-listing, add_watch → candidate id with re-check criteria, drop_candidate → stage update. No external side effects.
  4. After Kelly confirms the dry-run, perform the handoffs (write the sourcing brief export, invoke kelly-listing with the listing brief), then run node scripts/execute_decisions.mjs --apply to mark the proposals done, update candidate stages, and log the run.

Safety Defaults

  • Treat handoffs, exports, config changes, and anything that could become an order or supplier contact as approval-required.
  • Keep sweeps polite: throttle, cache, and store only the minimal excerpt needed for the trend item and evidence links.
  • Never present a margin card as a guarantee — it is an estimate from configured fee tables; flag missing inputs instead of guessing silently.
  • Keep ingestion idempotent via stable ids and content hashes so repeated sweeps never duplicate rows.
  • If a source cannot be read reliably (geo-variants, A/B pricing), note the uncertainty in the trend item summary rather than inventing numbers.

Useful Commands

node skills/kelly-picks/scripts/ingest_trends.mjs payload.json
node skills/kelly-picks/scripts/compute_margins.mjs
node skills/kelly-picks/scripts/execute_decisions.mjs
node skills/kelly-picks/scripts/execute_decisions.mjs --apply
pnpm --dir skills/kelly-picks/content/kelly-picks-app dev

In normal use, invoke /kelly-picks, let the skill sweep and ingest what's due, and open the AirApp.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Align all AI coding agents to a single source of truth. AGENTS.md for rules, .agents/skills/ for skills, symlinks for everything else. Use when setting up a repo for multiple agents, or when links are missing, broken, or out of date.

日本語の概要は準備中です。原文の説明を表示しています。

mr-kelly/skills52026年10月2日 更新

Read, answer and post on the Buda community forum at community.buda.im through its /api/v1/community REST API. Lists categories and posts, reads a thread with its replies, searches, and publishes posts and replies behind an explicit confirmation. Use when the user invokes $buda-community or /buda-community, asks what is happening in the Buda community, wants an unanswered question triaged or answered, or wants something posted or announced there.

日本語の概要は準備中です。原文の説明を表示しています。

mr-kelly/skills52026年10月2日 更新

Read, answer and post on the Busabase community forum at community.busabase.com through its /api/v1/community REST API. Lists categories and posts, reads a thread with its replies, searches, and publishes posts and replies behind an explicit confirmation. Use when the user invokes $busabase-community or /busabase-community, asks what is happening in the Busabase community, wants an unanswered question triaged or answered, or wants something posted or announced there.

日本語の概要は準備中です。原文の説明を表示しています。

mr-kelly/skills52026年10月2日 更新

kelly-ads

無料

Ad-campaign command desk (投放指挥台, Busabase App-in-Skill) for a cross-border e-commerce seller running Amazon Ads, Meta (FB/IG), TikTok Ads, and Google Ads. Use when the user invokes $kelly-ads or /kelly-ads, or asks about 投放, ad campaigns, ad spend, ACOS, ROAS, Amazon Ads, TikTok ads, Meta ads, Google Ads, search terms, negative keywords, bid adjustment, budget pacing, CPC spikes, rejected ads, ad anomaly detection, 广告优化, or reviewing agent-proposed adjustment cards (negative keyword, bid down/up, pause target, budget shift, creative refresh).

日本語の概要は準備中です。原文の説明を表示しています。

mr-kelly/skills52026年10月2日 更新

Busabase-backed App-in-Skill low-code agent configuration and governance console for a platform team. Use when the user invokes $kelly-agent-builder or /kelly-agent-builder, wants to review or edit a catalog of mock LLM agent configs, check quota usage, find configs that need attention, move a draft to live, pause a live agent, or archive an agent. Mock config/governance console only — it never provisions or calls any real agent.

日本語の概要は準備中です。原文の説明を表示しています。

mr-kelly/skills52026年10月2日 更新

Review board (Busabase App-in-Skill) that runs a fixed suite of mock test cases against a baseline vs candidate agent version and surfaces rubric-scored regressions before a release. Use when the user invokes $kelly-agent-eval or /kelly-agent-eval, wants to review agent-version regressions, compare baseline vs candidate quality, triage a release, or record a release approve/block decision. Deterministic mock rubric scores only — not a real LLM-judge call, and it never deploys anything.

日本語の概要は準備中です。原文の説明を表示しています。

mr-kelly/skills52026年10月2日 更新

mr-kelly のスキルをすべて見る

このスキルの問題を報告する