Community logo

Community

Community
ericrisco
community

Use when building or running a persistent two-way community space — Discord, Telegram, Circle: platform choice, structure, onboarding, native→bot→human moderation, rituals, growth loops, health metrics. NOT churn of paying product customers (that is `retention`), NOT broadcast email (that is `newsletter`), NOT one live event (that is `webinar`).

Overview

Publisherericrisco
Repositoryrsc-harness
Skill namecommunity
Stars
239
Forks
24
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by ericrisco on GitHub. Read the source before you install it.

Installation

Install the Community AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/ericrisco/rsc-harness/tree/main/skills/community
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/ericrisco/rsc-harness.git /tmp/rsc-harness
mkdir -p .claude/skills
cp -r /tmp/rsc-harness/skills/community .claude/skills/community
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Community in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Community on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Community is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

community

Run the community like a product with a job, not a vanity chat room. The space — a Discord server, a Telegram group+channel, a Circle — is the product. Onboarding is activation, rituals are the feature, moderation is reliability, and one north-star metric tied to your purpose is the only number that matters. A room with 5,000 silent members is a failed product, not a big one. Design the system around the conversation, not the conversation itself.

When NOT to use — route instead

The askRoute to
Stop paying customers of a product/SaaS from churning (win-back, lifecycle, NPS)retention
Write the one-to-many broadcast email that nurtures the list../newsletter/SKILL.md
Schedule / cross-post public posts across X, LinkedIn, Instagram../social-publisher/SKILL.md
Run a single timed live event end-to-end (registration, speakers, replay)webinar
Build an automated support desk / ticket triagecustomer-support
Actually code or host the Discord/Telegram bot (gateway, slash handlers)whatsapp-telegram, automation-flows
Define the voice/name/tone the community speaks in../brand-voice/SKILL.md

You own the persistent, two-way space and its ongoing operating rhythm. The boundary that bites most: retention keeps buyers of a product from churning; you keep members of a shared space active and contributing. They rhyme (cohorts, re-activation) but the subject differs — a SaaS seat vs a Discord membership.

Step 0 — Purpose & north-star gate

Do not design a single channel until you have (a) a one-line purpose and (b) one business metric tied to it. Why: a community without a job becomes a dead chat — there is no signal to design toward, so you sprawl channels and beg for activity. This is the most common cause of graveyards.

If either is missing, STOP and ask one focused batch, then proceed:

  1. In one sentence, what is this community for — and for whom?
  2. What single business outcome does it move? (support deflection, retention uplift, expansion revenue, qualified referrals — pick ONE)

Bad → Good:

text
Bad:  "Set up a Discord for our users." → 14 channels, no purpose, silent in 3 weeks.
Good: Purpose = "where indie game-devs trade WIP feedback so free players become paying supporters."
      North-star = monthly free→supporter conversions sourced from the server.

Everything below is derived from those two lines. If a channel, ritual, or metric does not serve the purpose or move the north-star, cut it.

Pick the platform — decision table

PlatformBest forReal-time chatBroadcastMonetizationModeration maturityCost
DiscordActive, real-time builder/gamer/dev communitiesStrongWeak (announcement channels only)Indirect (roles/Patreon links)High — native AutoMod + bot ecosystemFree
Telegram (group + channel hybrid)Mobile-first, fast-growing, announce-heavy audiencesGoodStrong (channel = one-way broadcast)Weak nativeMedium — native ML anti-spam >200 members + botsFree
CirclePaid memberships bundling courses/eventsWeakGoodStrong (built-in payments + tiered Spaces)MediumProfessional ~$89–129/mo → Business ~$199–219 → Circle Plus ~$419+ + 0.5–2% Circle fee on top of Stripe's 2.9%+$0.30

Decision rules (pick the purpose, not the logo):

  • Need persistent real-time conversation and free? → Discord. It is the deepest moderation toolset and the strongest two-way default.
  • Audience lives on mobile and you broadcast a lot? → Telegram, run the hybrid: a channel for announcements + a linked group for discussion. This is the 2026 standard; a bare group has no broadcast lane and a bare channel has no conversation.
  • You are charging for membership and bundling courses/events? → Circle. But see the anti-pattern: do not monetize before activation works.

Per-platform setup depth (AutoMod filters, verification levels, anti-spam tiers, plan ladder) is in references/platform-playbooks.md.

Structure & onboarding = activation

Keep the structure minimal. Why: empty channels signal a dead room; people pattern-match "nobody's here" and leave. Start with the fewest channels the purpose needs (often 4–6: welcome/rules, intros, one core topic, help, off-topic, announcements) and split a channel only when an existing one is demonstrably overflowing.

The onboarding path is an activation funnel. Drive every new member to a first meaningful action through a short, gated path:

  1. Role-on-join — pick a role/interest, which personalizes which channels they see. Why: a tailored, smaller room feels alive; the firehose feels dead.
  2. Rules/membership gate — on Discord, Rules Screening / Membership Screening blocks talking and DMs until rules are acknowledged. Why: it stops drive-by spam and forces a first deliberate click.
  3. Intro with a prompt — not "introduce yourself" (blank-page freeze) but a 3-field prompt. Why: prompted intros get answered; open ones get skipped.
  4. Point to where-to-ask — one obvious channel for "I need help." Why: time-to-first-response is a core health metric and it starts here.

Bad → Good intro channel:

text
Bad:  #introductions — "Say hi and introduce yourself!"  → blank-page paralysis, 4% post.
Good: #introductions — pinned prompt: "(1) what you're building, (2) what you're stuck on,
       (3) one thing you can help others with." → reply with the right role-ping. Activation jumps.

Moderation — the 3-layer stack

Moderation is reliability. The canonical stack is native → bot → human, and you scale layers by size, never skip the native layer.

  1. Native — Discord AutoMod (one Commonly-Flagged-Words preset rule + up to 6 custom keyword rules, each filter holding up to 1,000 terms, plus a mention-spam cap configurable up to 50 unique mentions/message) and an explicit verification level (Medium = verified email + 5-min-on-server before talking). Telegram: native ML anti-spam kicks in for groups >200 members (with an "Aggressive" auto-delete mode); for ≤30 messages/hour, slow-mode alone is the right zero-setup control; add a CAPTCHA-on-join gate (button/math/question, e.g. Shieldy) as the raid wall.
  2. Bot — a specialized moderation bot for raid detection, scam-link filtering, and audit logs.
  3. Human — named mods, an escalation path, and a written ban policy.

Size-tiered config (Discord, per Discord's own size guidance):

Server sizeNativeBot layerHuman
< 1,000AutoMod + Medium verificationoptional1–2 mods
> 1,000AutoMod + custom keyword rulesadd one specialized botrota of mods
> 10,000+ Commonly-Flagged filter onrobust multi-tool botsmod team + on-call
> 100,000full filters + raid modemultiple specialized botstiered mod org

Incident + ban policy (write these down before you need them):

  • Ban policy is a rubric, not a mood — define warn → mute → kick → ban thresholds and what triggers each. Why: inconsistent bans destroy trust faster than the spam did.
  • Raid runbook — who flips lockdown (slow-mode + raise verification + pause invites), who triages, where it is logged.
  • Scam-DM stance — pin a "we will never DM you first" notice; AutoMod-flag known scam phrases.

Filter specifics, verification levels, and bot picks by tier live in references/platform-playbooks.md.

Rituals — the operating rhythm

Predictable cadence beats sporadic heroics. Why: members learn when to show up only if there is something to show up for; rhythm is the feature that pulls lurkers back. Install a small set of recurring beats and run them on time, every time.

Sample weekly cadence:

DayRitualFriction
Mon"What are you working on this week?" threadLow — one reply
WedOffice hours / AMA in a voice or thread slotMedium — opt-in
Fri"Wins of the week" — share + reactLow — a reaction counts

Design for low-friction participation: polls, emoji reactions, and opt-in role pings. The over-pinging trap: blasting @everyone for non-urgent posts. Why it backfires — over-pinging trains members to mute the server, and a muted member is functionally gone. Use a dedicated opt-in "announcements" role and reserve @everyone for genuine all-hands moments.

A ritual template library and the full cadence rationale are in references/metrics-and-rituals.md.

Growth — loops, not buys

Build loops that compound, not headcount that decays:

  • Referral loop — make inviting a friend a one-tap, rewarded action tied to a role/perk.
  • Intro loop — every prompted intro is a hook other members reply to, pulling the newcomer into a thread on day one.
  • Partner cross-post — trade shout-outs with an adjacent community whose audience overlaps but does not compete.

90-9-1 is a range, not a ceiling. The old "1% rule" (90% lurk, 9% occasional, 1% drive activity) is a starting observation, not a law — healthier communities skew far more active (real profiles like 55-30-15 and 17-57-26). Design to move lurkers up a tier (prompts, easy reactions, direct asks), do not accept 90% lurkers as fixed.

text
Bad:  Buy 2,000 members from a growth service to "look big."  → DAU/MAU craters,
       signal drowns in silence, real members read the room as dead and leave.
Good: Run a referral ritual + prompted intros. 200 members who each reply
       in week one beats 2,000 who never speak.

Bought or inactive members are negative-value: they dilute every signal, wreck DAU/MAU, and make the room look dead to the people you actually want.

Metrics & health

Three clusters plus exactly one business metric. Steer on these, not on raw member count.

MetricWhat it tells youTarget
DAU/MAU stickinessHow often members come backFloor ≥ 20%; social/messaging band ~50–80%
30/60/90-day cohort retentionWhether onboarding actually activatesTrack each cohort vs the last
Returning-member ratioRhythm is workingTrending up
Time-to-first-response (TTFR)A newcomer's first experienceMinutes-to-low-hours, the lower the better
Answered rateQuestions don't die unanswered→ 100%
One business metric (purpose-tied)The only number that justifies the workSet in Step 0

The one business metric is a menu — pick exactly one that matches your purpose: support deflection, retention uplift, expansion revenue, or qualified referrals. Review the scorecard on a fixed cadence (weekly glance, monthly cohort read). Benchmark depth and metric definitions are in references/metrics-and-rituals.md.

The artifact you emit

Produce two files the user can apply directly: a community-plan.md (prose: purpose, platform rationale, structure, growth, metrics) and a machine-checkable moderation-config.yaml:

yaml
platform: discord            # discord | telegram | circle
purpose: "where indie game-devs trade WIP feedback so free players become paying supporters"
north_star_metric: "monthly free→supporter conversions sourced from the server"
onboarding_path:
  - role-on-join
  - rules-gate
  - prompted-intro
  - where-to-ask
moderation:
  layers:
    native: "AutoMod preset + custom keyword rules, Medium verification"
    bot: "specialized raid + scam-link bot"
    human: "2 named mods, written ban rubric"
rituals:
  - name: "WIP Mondays"
    cadence: "weekly"
  - name: "Wins Fridays"
    cadence: "weekly"

Then validate it:

bash
scripts/verify.sh path/to/moderation-config.yaml

verify.sh checks the required keys exist, that north_star_metric is non-empty, that all three moderation layers are declared, and that at least one ritual has a cadence — it catches the most common defect (a "plan" with no purpose, no mod layers, or no rhythm). Do not go live until it passes and the north-star plus at least one health metric (TTFR or DAU/MAU) are instrumented.

Anti-patterns

Anti-patternWhy it failsDo instead
Channel sprawl on day oneEmpty channels read as "dead"; people leaveStart 4–6; split only on demonstrated overflow
No purpose / no north-starNothing to design toward → graveyardRun Step 0 gate before any structure
@everyone for non-urgent postsTrains members to mute → functionally goneOpt-in announce role; reserve @everyone
Buying members to "look big"Negative-value: dilutes signal, wrecks DAU/MAUReferral + intro loops; activate the real ones
Ban-by-moodInconsistency destroys trustWritten warn→mute→kick→ban rubric
Treating 90% lurkers as permanentLeaves activation on the table90-9-1 is a range; move lurkers up a tier
Monetizing on Circle before activation worksCharging for a dead room churns instantlyProve rhythm + retention, then gate/monetize
Broadcasting in a two-way spaceWrong tool; kills conversationOne-to-many → ../newsletter/SKILL.md / ../social-publisher/SKILL.md

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Community AI skill do?

Use when building or running a persistent two-way community space — Discord, Telegram, Circle: platform choice, structure, onboarding, native→bot→human moderation, rituals, growth loops, health metrics. NOT churn of paying product customers (that is `retention`), NOT broadcast email (that is `newsletter`), NOT one live event (that is `webinar`).

Why use Community on TypingMind?

Because you install it once and use it with any model. Community is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Community in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/ericrisco/rsc-harness/tree/main/skills/community. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Community?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Community?

As many as you like. As long as a model supports skills, you can use Community with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Community AI skill free?

Yes. It is published on GitHub by ericrisco under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇