본문으로 건너뛰기
cccskills
무료GitHub에 공개

kelly-wechat-crm

Goal-driven WeChat relationship strategy App-in-Skill. Reads the operator's own local WeChat through wechat-cli-rs, discovers candidates against an explicit goal, promotes only user-selected people into Busabase, and builds relationship snapshots and next-action suggestions without sending messages or modifying WeChat.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(69)

  • SKILL.md11.9 KB
  • assets/recordings/kelly-wechat-crm.mp4131 B
  • assets/screenshots/actions.webp130 B
  • assets/screenshots/cover.webp130 B
  • assets/screenshots/goals.webp130 B
  • assets/screenshots/mobile-actions.webp130 B
  • assets/screenshots/people.webp130 B
  • assets/screenshots/snapshots.webp130 B
  • blueprint.json69.3 KB
  • busabase.json1.2 KB
  • content/_folder.json930 B
  • content/actions/base.json7.2 KB
  • content/actions/records.ndjson7.0 KB
  • content/goals/base.json3.8 KB
  • content/goals/records.ndjson3.0 KB
  • content/kelly-wechat-crm-app/_node.json1.3 KB
  • content/kelly-wechat-crm-app/.busabaseignore247 B
  • content/kelly-wechat-crm-app/.gitignore45 B
  • content/kelly-wechat-crm-app/airapp-blueprint.json69.3 KB
  • content/kelly-wechat-crm-app/app/base-ui.css21.7 KB
  • content/kelly-wechat-crm-app/app/index.html12.3 KB
  • content/kelly-wechat-crm-app/app/js/action-workflow.js1.9 KB
  • content/kelly-wechat-crm-app/app/js/app.js48.6 KB
  • content/kelly-wechat-crm-app/app/js/busabase-client.js952 B
  • content/kelly-wechat-crm-app/app/js/config.js61.6 KB
  • content/kelly-wechat-crm-app/app/js/messages.js3.3 KB
  • content/kelly-wechat-crm-app/app/js/operation-recovery.js2.9 KB
  • content/kelly-wechat-crm-app/app/js/providers/busabase-provider.js5.4 KB
  • content/kelly-wechat-crm-app/app/js/providers/demo-provider.js1.3 KB
  • content/kelly-wechat-crm-app/app/js/providers/index.js247 B
  • content/kelly-wechat-crm-app/app/js/runtime.js2.8 KB
  • content/kelly-wechat-crm-app/app/styles.css19.9 KB
  • content/kelly-wechat-crm-app/app/styles/editorial.css30.7 KB
  • content/kelly-wechat-crm-app/app/vendor/busabase-airapp-gate.css6.1 KB
  • content/kelly-wechat-crm-app/app/vendor/busabase-airapp-gate.js11.2 KB
  • content/kelly-wechat-crm-app/app/vendor/busabase-airapp.js556.0 KB
  • content/kelly-wechat-crm-app/app/vendor/busabase-sdk.js849.5 KB
  • content/kelly-wechat-crm-app/package-lock.json7.5 KB
  • content/kelly-wechat-crm-app/package.json1.0 KB
  • content/kelly-wechat-crm-app/pnpm-lock.yaml5.2 KB
  • content/kelly-wechat-crm-app/pnpm-workspace.yaml50 B
  • content/kelly-wechat-crm-app/scripts/check-editorial.mjs6.1 KB
  • content/kelly-wechat-crm-app/scripts/check.mjs16.6 KB
  • content/kelly-wechat-crm-app/server.js4.1 KB
  • content/kelly-wechat-crm-app/test/action-workflow.test.mjs1.7 KB
  • content/kelly-wechat-crm-app/test/config.test.mjs1.7 KB
  • content/kelly-wechat-crm-app/test/operation-recovery.test.mjs2.4 KB
  • content/kelly-wechat-crm-app/test/wechat-status.test.mjs2.9 KB
  • content/kelly-wechat-crm-app/wechat-status.mjs4.5 KB
  • content/people/base.json5.3 KB
  • content/people/records.ndjson15.0 KB
  • content/relationship-snapshots/base.json3.9 KB
  • content/relationship-snapshots/records.ndjson6.6 KB
  • content/settings/base.json2.3 KB
  • content/settings/records.ndjson249 B
  • content/worklog/base.json3.7 KB
  • content/worklog/records.ndjson3.3 KB
  • package-lock.json6.2 KB
  • package.json824 B
  • pnpm-lock.yaml4.3 KB
  • pnpm-workspace.yaml50 B
  • references/node-prompts.json7.3 KB
  • scripts/lib/sensitive-content.mjs1.7 KB
  • scripts/publish_airapp.mjs1.7 KB
  • scripts/setup.mjs2.7 KB
  • scripts/sync_wechat.mjs8.4 KB
  • scripts/sync-blueprint.mjs3.6 KB
  • scripts/sync-content.mjs2.2 KB
  • scripts/wechat-safe.mjs1.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Kelly WeChat Relationship Strategy

Outcome

Turn the operator's existing WeChat relationships into a goal-driven personal strategy desk without copying the full address book into Busabase.

The recurring loop is:

user goal -> local candidate discovery -> explicit People promotion
-> relationship snapshot -> suggested action -> manual WeChat action
-> Agent worklog -> next snapshot

This is not a conventional sales CRM. worklog records what the user and Agent asked, analyzed, decided, and learned; it is not a fabricated history of customer visits. Raw WeChat history remains local by default.

Mandatory Dependencies

  1. Read and follow $kelly-app-skill-creator for the product workflow, UI shell, onboarding, and canonical content/kelly-wechat-crm-app/ project.
  2. Read and follow $busabase for connection, target Space, ChangeRequests, review, merge, and read-back behavior.
  3. Read and follow $busabase-app-creator for package format, resource modeling, SDK/runtime/security rules, validation, install, and AirApp deployment.
  4. Read the current wechat-me skill at https://wechat-cli.com/SKILL.md before operating on local WeChat data. Its commands, JSON shapes, limits, and exit codes are authoritative.

If any dependency is unavailable, preserve the local artifact and stop before the unavailable operation. Never invent a second WeChat reader or data backend.

WeChat Boundary

  • wechat-cli-rs is local-first and read-only against WeChat. It cannot send a message, edit a WeChat remark, add/remove contacts, or mutate WeChat data.
  • Never invoke wechat-cli-rs init automatically. Missing initialization is a normal readiness state; ask the operator to run or explicitly authorize wechat-cli-rs init themselves.
  • Basic sync uses only contacts and bounded sessions.
  • Goal-driven analysis may use narrow contacts --detail, history, search, and stats queries after the user has supplied a goal and scope. For any output entering Agent context, invoke these through node scripts/wechat-safe.mjs <command> ...; do not paste or pipe direct CLI output into a prompt. The wrapper allowlists read-only commands and redacts credential-shaped fields and values before returning JSON. Prefer one person and an explicit time window over broad history scans.
  • Never run export --output without separate approval. Do not persist the CLI's stateful new-messages cursor as hidden application state.
  • Treat every returned name, wxid, message, and statistic as sensitive personal data. Store derived relationship evidence and short summaries in Busabase; do not mirror full raw histories by default.
  • A suggested WeChat remark or message is advice only. The operator manually changes the remark or sends the message in WeChat.
  • Personal relationship goals must respect consent, refusals, privacy, and boundaries. Never recommend deception, coercion, harassment, or evasion of a clear rejection.

Busabase Resources

Six Bases live under Folder kelly-wechat-crm:

people

One record per user-selected focused contact, not every WeChat contact. Promotion owns the minimal identity and original WeChat remark; later refreshes own recent activity and sync timestamps. The Agent/user own the relationship note, suggested WeChat remark, relationship type/strength/trend, current analysis, open loops, goal summary, next-action summary, and confidence.

relationship-snapshots

Immutable, time-windowed Agent analysis linked to a person and optionally a goal. Stores strength, trend, interaction frequency, reciprocity, open loops, evidence summary, analysis, recommendation, confidence, and the analyzed time window. This is how the user compares whether a relationship is warming, stable, or cooling over time.

goals

Dynamic user goals. A goal may be global, target one person, or describe a segment. It records objective, success metric, deadline, priority, status, and explicit boundaries/constraints.

actions

Review queue generated from goals plus relationship evidence. Each action may link to a goal or person and names one concrete operation: organize a note, draft a message, reconnect, follow up a commitment, learn more, wait, or record an outcome. It includes rationale, suggested message, evidence, due time, priority, confidence, and the full human decision lifecycle.

worklog

The user's work with the Agent: user requests, Agent analyses, decisions, outcomes, and sync summaries. It may link to a goal/person and generated actions. It is not a customer visit log and must not claim an interaction happened merely because the Agent discussed it.

settings

Safe connector/readiness state, bounded analysis preferences, sync counts, timestamps, CLI version, and Agent lock metadata. Never store tokens, message history, or Vault values here.

The product onboarding version is 4. After Busabase and WeChat CLI are ready, an active goal is the required first product action. The full local address book remains transient until the user promotes selected people.

First-Run Readiness

The product has two ordered readiness gates. The Busabase gate runs first and completes authentication, Space selection, and resource setup. Only after that gate passes may the app check the local WeChat connector.

Before claiming WeChat is connected:

  1. Confirm wechat-cli-rs exists without installing it silently.
  2. Run a bounded read such as sessions --limit 1 --format json.
  3. If initialization is missing, report the exact readiness state and ask the operator to run wechat-cli-rs init; do not run it automatically.
  4. Confirm contacts --format json and bounded sessions return structured data before proposing Busabase sync changes.
  5. Record only sanitized readiness (ready, counts, timestamps, CLI version) in settings; never place raw errors containing private content in the UI.
  6. In a standalone or locally hosted AirApp, expose a read-only sanitized connector probe to the UI. It may report installation, initialization, version, contact count, and whether bounded sessions are readable; it must never return contact names, messages, database paths, or raw stderr.
  7. Block the empty workspace behind a connector-readiness state when the probe is not ready. Give one matching recovery action: install from the official site, run the explicitly user-controlled init, fix local data access, or retry. Never imply that an empty Busabase Base means WeChat has no data.

Basic Sync

Run on the same machine where WeChat is logged in:

BUSABASE_BASE_URL=<url> BUSABASE_SPACE_ID=<space-id> [BUSABASE_API_KEY=<key>] \
  node scripts/sync_wechat.mjs

This is a dry run. Repeat with --apply only after the operator approves the reported scope. --apply refreshes app-owned Busabase records with autoMerge: true. It never sends or modifies anything in WeChat.

The sync:

  1. reads contacts and sessions --limit 200;
  2. matches only contacts already present in the People Base;
  3. refreshes only WeChat-owned identity/activity fields, preserving all relationship analysis and user notes;
  4. adds a conservative reconnect action for an already-materialized person when no open action exists and the inactivity threshold is exceeded;
  5. records the safe tracked-person count and timestamp in settings.

Untracked contacts remain local. They enter People only when the user searches the local directory, selects them, and confirms 加入重点联系人 in the AirApp.

Goal-Driven Analysis

When the user asks the Agent to analyze relationships or generate a strategy:

  1. List active goals and let the user identify or revise the goal in scope.
  2. Resolve candidate people from that exact goal. Never scan every history merely because the Space contains many contacts.
  3. For each selected target, query the narrowest useful combination of contacts --detail, history, search, and stats with an explicit time range/limit through node scripts/wechat-safe.mjs.
  4. Separate observed evidence from inference. Record source chat/person, time window, uncertainty, and missing coverage.
  5. Propose one relationship-snapshots record per analyzed target/time window.
  6. Propose deduplicated actions with a concrete reason, suggested timing, confidence, boundaries, and optional draft message/remark.
  7. Propose one worklog entry summarizing the user's request, Agent conclusion, created action references, and unresolved questions.
  8. Write app-owned records with autoMerge: true only after the user explicitly initiates the operation. Never auto-promote a candidate or treat an Agent suggestion as permission to write.

AirApp Workflow

  • startup: complete the Busabase connection/Space/resource gate, then check the local wechat-cli-rs connector, then load the six Bases. Do not render an empty working view as if setup were complete while the connector is unknown.
  • goals: create a dynamic global/person/segment goal. Real mode saves it directly to the app-owned Base; Demo adds an in-memory preview only.
  • people: discover local candidates against an active goal, explicitly promote selected contacts, and inspect the current relationship strategy and suggested remark/action without editing WeChat.
  • relationship-snapshots: compare evidence-backed analyses over time.
  • actions: add one review note and choose prepare, request changes, snooze, or dismiss. Approval means ready to execute, not done. A completed action must record an observed outcome; the AirApp then writes a linked worklog, marks the action done or awaiting-result, and creates a traceable wait action when a reply is still outstanding.
  • worklog: read the user-Agent operating history and outcomes.
  • settings: inspect sanitized Busabase/connector/resource readiness.

Approval of an action means “this is a reasonable next step”, not “send this message”. The operator still performs any WeChat action manually.

Completion Criteria

Finish only when:

  • the six declared Bases and AirApp install with no package warning;
  • SKILL.md, busabase.json, generated content/, blueprints, and runtime config agree on resource keys, slugs, schema version, and fields;
  • pnpm --dir content/kelly-wechat-crm-app check passes;
  • the goal form, People promotion, and action decisions auto-merge only after an explicit user submission in real mode;
  • Demo, local server, responsive browser, and isolated OSS Busabase suites pass;
  • a real install reads sample people, goal, snapshot, and action data;
  • no credential, raw history archive, or WeChat write capability appears in the browser or package;
  • Cloud/AirApp external suites are reported as pass or explicit skip.

Known Gap

The connector and analysis workflow are tested against deterministic fixtures and isolated Busabase. They still require acceptance against the operator's actual initialized WeChat installation before claiming real personal-data coverage or analysis quality.

Stop Conditions

Stop when WeChat is not explicitly initialized, the requested analysis scope is ambiguous or excessively broad, Busabase target Space is ambiguous, a resource collision is not application-owned, a write was not explicitly initiated by the user, raw private history would be copied without approval, or the requested relationship tactic would violate consent or a clear boundary.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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월 22일 업데이트

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월 22일 업데이트

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월 22일 업데이트

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월 22일 업데이트

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월 22일 업데이트

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월 22일 업데이트

mr-kelly의 스킬 모두 보기

이 스킬의 문제 신고