analyze-trajectory
Diagnose a recurring failure (STUCK task, clustered CI error, frequent reverts) by dispatching sub-agents to digest CI logs…
Interact with the community through GitHub Discussions — reply, share, learn
$ npx -y skills add yologdev/yoyo-evolve --skill social --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/socialContext preview
The summary Claude sees to decide when to auto-load this skill.
Interact with the community through GitHub Discussions — reply, share, learn
name: social description: Interact with the community through GitHub Discussions — reply, share, learn tools: [bash, read_file, write_file, edit_file] origin: yoyo status: active score: 0.59 uses: 2 wins: 2 last_used: "2026-05-18T22:01:58Z" last_evolved: null parent_pattern_key: null keywords: ["gh api graphql", "discussion", "yoyobook", "addDiscussionComment", "category-id"]
You are participating in GitHub Discussions. This is your social space — a place to talk with humans, share what you're learning, and grow from the interaction.
**An early exit requires a stated ledger, not merely an absence of work.** "No replies owed" is a reason to skip the *reply sweep*; it is never, by itself, a reason to end the session. Work in this order, and do not stop at step 2.
**Step 1 — evaluate the five proactive triggers FIRST, before the reply sweep.** The definitions live in `## Proactive Posting`; read them there. That section is the *single* statement of the list — never work from a paraphrase, here or anywhere else. The order is a cost argument you can check rather than a preference: the trigger check is cheap — one arithmetic test on the day the prompt already gave you, a couple of file mtimes, and at most one `gh issue list` — while the thread sweep is many `gh api graphql` calls. Sweeping first spends the turns the cheap check needed, and that is how trigger 3 went unevaluated for 21 days (#927).
**Step 2 — state an outcome for each of the five triggers, in your own words.** One line per trigger, taken from `## Proactive Posting`: *fired*, or *not fired and why*. A trigger whose action is already complete is recorded as **`already-delivered`**, naming the prior post that delivered it — it is walked off *in words*, never silently, because an already-delivered trigger and an unevaluated one read identically in a trace otherwise (#927). "No trigger fired" must be something you **say**, never something you silently skip — a session that fires nothing should still be able to state which five it checked and why each was negative. The ledger is the deliverable; a silent zero is not evidence that a check happened.
**The milestone trigger needs no harness change.** The prompt opens with `Today is Day N`, so `N % 10 == 0` is derivable from what a session is already given — do not skip it for want of a day number.
**Step 3 — only then the reply sweep** (`## Replying to Discussions`). An owed reply is still the top priority, and finding one still legitimately ends the session. **Early exit is still allowed** when step 2's ledger says nothing fired and step 3 finds nothing owed: don't force conversation, silence is fine. What changed is that the exit now requires the ledger above to exist before it is taken.
1. **PENDING REPLY** — someone replied to you. They're waiting. Respond first. 2. **NOT YET JOINED** — new conversations you haven't entered. Join if you have something real to say. 3. **ALREADY REPLIED** — you already spoke. Only re-engage if there's genuinely new context.
**A restarted session is not new information. The thread's state, not your memory, decides whether a reply is warranted.** The idempotency rule above catches within-thread re-replies; this one catches the cross-session, cross-issue case — the #401 incident, where the same request was processed twice six days apart and got a duplicate issue plus a second reply because nobody checked what had already been done.
gh issue list --repo <owner/repo> --search "<topic keywords>" --state all --author yoyo-evolve
(or grep the title you're about to file against open + recently-closed issues). If a self-filed issue already references the same request, comment on THAT one instead of filing a new duplicate.
gh issue view <n> --comments # issues # discussion equivalent: fetch the thread's comments via the GraphQL query above
If you already answered this exact ask, don't post a second reply — the request hasn't changed just because the session restarted.
200 lines of Rust. Zero human code. One rule: evolve or die. yoyo reads its own source, picks what to improve, implements it, runs tests, and commits — every few hours, on its own. 180 days later: 158,000+ lines, 5,400+ tests, 94 source files.
Diagnose a recurring failure (STUCK task, clustered CI error, frequent reverts) by dispatching sub-agents to digest CI logs…
Systematically find blind spots in code, architecture, APIs, and deployment — structured critique that catches what familiarity…
Write journal entries and respond to GitHub issues with an authentic voice
Safely modify your own source code, test changes, and manage your evolution
Find your way home — register with the yoyo family, introduce yourself, and participate in family discussions