بنقرة واحدة
ln-910-community-engagement
// Community engagement coordinator: analyzes repo health, consults strategy, delegates to announcer/debater/triager
// Community engagement coordinator: analyzes repo health, consults strategy, delegates to announcer/debater/triager
[HINT] تحميل مجلد المهارة الكامل بما في ذلك SKILL.md وجميع الملفات المرتبطة
| name | ln-910-community-engagement |
| description | Community engagement coordinator: analyzes repo health, consults strategy, delegates to announcer/debater/triager |
| license | MIT |
| allowed-tools | Read, Grep, Glob, Bash, Skill |
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.
Type: L2 Coordinator (active) Category: 9XX Community Engagement
Analyzes current community health and repository state, consults the engagement strategy, and delegates to the appropriate worker. Each worker is also invocable standalone.
| Aspect | Details |
|---|---|
| Input | $ARGUMENTS (optional): topic, action keyword, or empty for auto-analysis |
| Output | Situation report + delegated action via worker skill |
| Workers | ln-911 (triager), ln-912 (announcer), ln-913 (debater) |
MANDATORY READ: Load references/github_discovery.md
Execute the discovery protocol. Extract:
{owner}/{repo} for all GitHub operationsrepo.id for GraphQL mutations (passed to workers)maintainer login (authenticated user)Gate checks: gh authenticated? Discussions enabled?
Load strategy: check docs/community_engagement_strategy.md in target project, fallback to references/community_strategy_template.md.
If $ARGUMENTS contains a direct action keyword (announce, debate, triage), skip analysis and jump to Phase 3 (Direct Delegation).
Otherwise, gather context from multiple sources in parallel:
Delegate to triager in summary mode (no interactive preview):
Skill(skill: "ln-911-github-triager", args: "summary")
Extract from triager output: red flags, priority counts (P0/P1/P2), health metrics.
# Last announcement date: most recent Announcements discussion
gh api graphql -f query='query($owner: String!, $name: String!) {
repository(owner: $owner, name: $name) {
discussions(first: 1, categoryId: "{categories.Announcements}", orderBy: {field: CREATED_AT, direction: DESC}) {
nodes { createdAt title }
}
}
}' -f owner="{owner}" -f name="{repo}"
Then check what changed since:
git log --oneline --since="{last_announcement_date}"
Read CHANGELOG.md — any entries newer than the last announcement?
From strategy Section 4:
Apply strategy Section 1 (Announcement vs Debate) to the gathered context:
| Condition | Priority | Action | Worker |
|---|---|---|---|
| Red flags: unanswered discussions >7d | P0 | List items needing response (no worker — direct action) | Recommendations only |
| Red flags: PRs needing review | P0 | List PRs needing review | Recommendations only |
| Unreleased changes in CHANGELOG | P1 | Announce: new features/fixes | → ln-912 |
$ARGUMENTS contains RFC/debate topic | P1 | Debate: launch RFC | → ln-913 |
| Monthly digest overdue (>30d) | P2 | Monthly digest announcement | → ln-912 |
| Design questions identified in Phase 1 | P2 | Debate: RFC for open decisions | → ln-913 |
| Community health OK, nothing unreleased | — | Report "all clear" | No delegation |
Present to user:
## Community Status — {YYYY-MM-DD}
**Repo:** {owner}/{repo}
**Last announcement:** {date} ({days} days ago)
**Open items:** {issues} issues, {prs} PRs, {discussions} discussions
### Red Flags
{list or "None"}
### Recommended Action
{One of: Announce / Debate / Respond to items / No action needed}
**Reason:** {brief explanation based on strategy criteria}
Wait for user approval before proceeding.
After user approves the recommended action:
$ARGUMENTS specifies action)| Argument | Delegation |
|---|---|
announce or announce {topic} | Skill(skill: "ln-912-community-announcer", args: "{topic}") |
debate or debate {topic} | Skill(skill: "ln-913-community-debater", args: "{topic}") |
triage or triage {scope} | Skill(skill: "ln-911-github-triager", args: "{scope}") |
| Recommended action | Delegation |
|---|---|
| Announce | Skill(skill: "ln-912-community-announcer") — worker gathers its own context |
| Debate | Skill(skill: "ln-913-community-debater", args: "{identified topic}") |
| Respond to items | No delegation — present the list of items needing response with GitHub URLs |
| No action needed | Report status, done |
| File | Purpose |
|---|---|
references/github_discovery.md | Phase 0: dynamic repo/category/user discovery |
references/community_strategy_template.md | Default engagement strategy (fallback) |
references/discussion_formatting.md | GitHub Discussion formatting rules |
Each target project can override the default strategy by creating docs/community_engagement_strategy.md. All skills check project-local first, then fall back to the template in references/.
MANDATORY READ: Load shared/references/meta_analysis_protocol.md
Skill type: planning-coordinator. Run after Phase 3 completes. Output to chat using the planning-coordinator format.
Version: 1.0.0 Last Updated: 2026-03-13