Analyze OSS — What/Why-focused open source analyzer
SkillDev toolsAnalyze an open-source project from What/Why perspective (not how-it's-implemented). Use when the user says "/analyze-oss", "분석해줘 이 오픈소스", "이 레포 뭐하는거야", "analyze this repo", "what does X do", "이거 왜 쓰는거야", "이 라이브러리 분석", provides a GitHub URL and wants understanding, or asks to deeply understand an OSS project's purpose, value, target users, and usage flow. Clones the repo to ~/opensource-analysis/<repo-name>/ (git pull if already exists), dispatches parallel subagents per analysis lens, then synthesizes a What/Why-focused report in chat. Supports optional user-specific follow-up questions.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Analyze OSS — What/Why-focused open source analyzer skill
What this skill tells your AI
The instructions your AI receives, as published by team-attention/hoyeon in skills/analyze-oss/SKILL.md and read by ahel’s review.
Clone an open-source repo locally, analyze it through multiple lenses in parallel via subagents, and deliver a What/Why-focused report in chat.
The goal is not to produce an implementation deep-dive. The goal is to help the user quickly decide "is this what I need, and why would I use it?" and then answer any custom questions they have about the repo.
When to use
- User gives a GitHub URL and wants to understand what it is / why it exists
- User asks "what does this repo do?", "이거 뭐하는거야?", "이거 왜 쓰는거야?"
- User is evaluating whether to adopt a library
- User wants a quick intellectual onboarding to an OSS project
Input
Accept any of:
- GitHub URL:
https://github.com/owner/repo(orgit@github.com:...) owner/reposhorthand- Optional custom questions appended:
analyze-oss owner/repo "X 대비 어떤지, Y 유스케이스 맞는지"
If the URL is ambiguous, ask the user to confirm before cloning.
Execution
Phase 1 — Fetch repo
Target directory: ~/opensource-analysis/<repo-name>/
BASE=~/opensource-analysis
REPO_NAME=<derived from URL>
TARGET=$BASE/$REPO_NAME
mkdir -p $BASE
if [ -d "$TARGET/.git" ]; then
cd "$TARGET" && git pull --ff-only
else
git clone --depth 50 <repo-url> "$TARGET"
fi
Notes:
--depth 50keeps clone fast; enough for recent commit signals.- If
git pullfails (local changes, diverged), warn the user — don't force. - Capture the absolute path of
$TARGET; all subagents must use this absolute path.
Phase 2 — Quick recon (main agent, before dispatch)
Read these in parallel to build dispatch context (don't deep-read, just skim):
README*(pick the most prominent)package.json/pyproject.toml/Cargo.toml/go.mod(whichever exist)- Top-level directory listing
docs/top-level listing if present- Recent 10 commits:
git log --oneline -10
Extract: repo name, elevator pitch (if README has one), primary language, rough size.
This recon is only to brief subagents well — do not write the report yet.
Phase 3 — Parallel subagent dispatch
Spawn the following subagents in one message, in parallel. Each gets:
- Absolute path to the cloned repo
- The recon summary from Phase 2
- Instructions to read only what they need (not the whole repo)
- Instruction to return a structured markdown block
Subagents (4 default lenses):
-
what-lens — "What is this?"
- Read: README, top-level docs, package descriptions
- Produce: one-line definition (≤25 words), 3–5 core capabilities (one sentence each), the repo's own self-description verbatim if useful
- Avoid implementation detail. Stay at the "capabilities the user gets" layer.
-
why-lens — "Why does this exist?"
- Read: README motivation/intro sections, CHANGELOG for origin context, any
MOTIVATION.md/docs/why* - Produce: the problem it solves (in plain language), what you'd have to do without it, 2–3 named alternatives and how this differs, the distinct value proposition
- If motivation is not explicit, infer from the examples and features — but mark inferences as "[inferred]".
- Read: README motivation/intro sections, CHANGELOG for origin context, any
-
who-when-lens — "Who uses this, and when?"
- Read: README use-cases/examples,
examples/, showcase/users sections, issues labeled "question" or similar for real-world usage signals - Produce: target user personas (2–4), concrete use cases (with short scenarios), situations where you'd not use this / known limitations
- Read: README use-cases/examples,
-
how-used-lens — "How does a user actually use this?" (user-perspective, not implementation)
- Read: Quickstart in README,
examples/, minimal usage snippets - Produce: install step, minimal "hello world", typical usage flow from zero → first success (as a narrative, not code walkthrough), main interaction touchpoints (CLI? API? config file? SDK?)
- Explicitly exclude internal architecture, source-level design, class diagrams.
- Read: Quickstart in README,
If the user provided custom questions, spawn one more subagent per distinct question:
- custom-Q{n}-lens — answer one specific user question
- Brief it with the full question verbatim and the recon summary
- Tell it to read whatever files it needs (grep liberally) to answer, and to cite file paths in its answer
- If it cannot answer from the repo alone, say so — don't fabricate
Phase 4 — Synthesize
Main agent takes all subagent outputs and composes the final report in chat.
Output template (strict):
## Analyze OSS: <repo-name>
**Repo:** <url> · **Language:** <lang> · **Cloned at:** <abs path>
### What
<one-line definition>
**Core capabilities:**
- …
- …
### Why
**Problem:** <plain language>
**Without it:** <what you'd do otherwise>
**Alternatives & differentiator:** <named alternatives, 1 line each, then what makes this different>
### Who / When
**Target users:** …
**Use cases:** …
**Not a good fit when:** …
### How it's used (user perspective)
**Install:** `…`
**Minimal example:** <short snippet or description — keep brief>
**Typical flow:** <zero-to-first-success narrative, 3–6 steps>
**Interaction surface:** <CLI / HTTP API / SDK / config / etc.>
### Custom Q&A ← only if user provided questions
**Q: <question>**
A: <answer with file path citations>
### Notes
- [inferred] markers if any
- Anything surprising / red flags / caveats worth surfacing
Phase 5 — Offer follow-ups
After delivering the report, ask:
"Anything you want me to dig into further? (e.g. compare with X, how auth works, licensing details, etc.)"
For follow-ups, dispatch additional subagents with the same pattern — one question, one subagent — and extend the Custom Q&A section.
Principles
- What/Why over How. The user does not want an architecture lecture. Unless they explicitly ask "how is X implemented", stay at the user-facing layer.
- Parallel by default. All independent lenses go in one message. Sequential dispatch wastes wall-clock time.
- Cite file paths when claiming something about the repo. "README says X" is better than just "X".
- Mark inferences. If something isn't stated in the repo, say
[inferred]. - Don't overclaim popularity or quality. You have shallow clone + local info; avoid "this is widely used" unless README/shields show it.
- Chat output only. Do not write a report file unless the user explicitly asks.
Edge cases
- Private or 404 repo: git clone will fail — surface the error and ask the user.
- Huge repo (>500MB):
--depth 50already helps; if still slow, warn the user and proceed. - Monorepo: if the repo contains multiple packages, ask the user which sub-package to focus on before dispatching subagents (or offer an overview of all packages).
- Non-code repos (awesome-lists, docs): adapt — the "how it's used" lens becomes "how do you navigate/consume this".
- Stale clone with local changes: don't overwrite. Report to user, ask whether to re-clone fresh into a sibling directory.
Signals
- GitHub stars
- 174
- Forks
- 24
- Last commit
- May 2026
Advanced
- Catalog kind
- skill
- Gateway key
analyze-oss- Source
- github.com/team-attention/hoyeon