本文へ移動
cccskills
無料GitHub で公開

oss-learn-stack

Learn unfamiliar technologies used in a repo by studying how the repo actually uses them. Finds patterns, explains concepts in context, and points to examples in the codebase. Use when a repo uses frameworks, languages, or patterns you haven't worked with before. Not for mapping a repo's architecture or domain language. Use oss-explore-repo for that.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md9.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Learn Stack

Don't learn a framework from docs alone. learn it from how THIS repo uses it. This skill finds the patterns, explains the concepts, and points to real examples in the codebase you're about to contribute to.

Purpose

oss-prep-to-contribute does a knowledge check for one issue. This skill is broader: when a repo uses tech you don't know (unfamiliar language, framework, testing tool, build system, architecture pattern), this skill teaches those concepts using the repo itself as the textbook. Faster than reading generic docs because every example is from the actual codebase you'll contribute to.

Prerequisites

  • A repo cloned locally
  • At least a basic understanding of the project (from oss-explore-repo or your own exploration)
  • An honest assessment of what you don't know

Process

1. Identify the stack

Inventory the technologies used:

# Dependencies
cat package.json 2>/dev/null | jq '.dependencies, .devDependencies' 2>/dev/null
(cat requirements.txt 2>/dev/null || cat pyproject.toml 2>/dev/null) | head -40
cat go.mod 2>/dev/null | head -20
cat Cargo.toml 2>/dev/null | head -30

# Build and CI tools
ls .github/workflows/ 2>/dev/null
cat Makefile 2>/dev/null | head -20

# Testing
ls test/ tests/ __tests__/ spec/ 2>/dev/null
grep -l "jest\|pytest\|mocha\|vitest\|cargo test\|go test" * .* 2>/dev/null

# Linting and formatting
cat .eslintrc* .prettierrc* pyproject.toml tox.ini setup.cfg 2>/dev/null | head -30

Present the full stack categorized:

## Stack: {repo}

| Category | Technology |
|----------|-----------|
| Language | {e.g., TypeScript 5.x} |
| Framework | {e.g., Express.js} |
| Testing | {e.g., Vitest + Testing Library} |
| Build | {e.g., Vite} |
| CI | {e.g., GitHub Actions} |
| Linting | {e.g., ESLint + Prettier} |
| Database | {e.g., PostgreSQL via Prisma} |
| Other | {anything else notable} |

2. Find the user's gaps

Ask targeted questions:

"Here's the stack this repo uses. For each technology, tell me your comfort level:

  • Comfortable: used it in a project
  • Familiar: read about it, haven't used it
  • Unknown: never used it or only vaguely know what it is

Be honest. I'll focus teaching on the gaps. No judgment."

Process one gap at a time, starting with the most critical for the contribution they plan to make.

3. Teach from the codebase

For each identified gap, find real examples in this repo. Do NOT teach from generic docs.

# Find usage of the technology in the codebase
grep -rn "{framework_import_or_pattern}" src/ lib/ \
  --include="*.ts" --include="*.py" --include="*.go" --include="*.rs" | head -20

# Find the simplest, clearest example
# (pick files that are short, well-named, and demonstrate the concept cleanly)

For each concept, present:

## {Technology}: {Concept Name}

**What it is**: {2-3 sentence explanation. just enough to read the code}

**How this repo uses it**:
- `src/handlers/auth.ts:15-30`: {what this example demonstrates}
- `src/middleware/validate.ts:8-22`: {what this example demonstrates}

**Walk-through** of `src/handlers/auth.ts:15-30`:
{line-by-line explanation of the key lines. not every line, just the ones that matter}

**Learn more**: {one link to official docs for this specific concept. not the homepage, the specific page}

Rules:

  • Every example comes from THIS repo, not generic tutorials
  • Explain in 2-3 sentences, not paragraphs
  • One external link per concept (the specific doc page, not the homepage)
  • Walk through the clearest example, skip the complex ones

4. Thinking gate: user reads the code

After explaining a concept:

"Now find one MORE example of {concept} in the codebase that I didn't show you. Read it and tell me what it does.

(This checks whether you can recognize the pattern on your own, not just understand my explanation. Hint: search for {relevant import or keyword} in the codebase.)"

If the user can find and explain an example, they understand the concept. Move to the next gap.

If the user can't find one or explains it wrong:

  • Show one more example with a different angle
  • Repeat the thinking gate

Don't move on until the user can recognize the pattern independently.

5. Connect to the contribution

Once gaps are filled, tie the learning to what the user needs to do:

"The issue you're working on touches {area} which uses {concept you just learned}. Specifically, look at {file}:{line}: that's where your change will interact with {concept}. Based on what you just learned, what do you think needs to change there?"

If the user doesn't have a specific issue yet, point to areas where the newly learned technology is most visible and suggest they explore those files on their own.

6. Build a reference sheet

The user creates their own quick-reference for while they code.

Thinking gate:

"Write a cheat sheet for yourself. 3-5 bullet points covering the key concepts you just learned, with file references for each. This is your reference while you code. Write it in YOUR words, not mine.

Example format:

  • {Concept}: {what it does}. See {file}:{line} for an example"

Review their cheat sheet. Flag anything incorrect but don't rewrite it.

7. Verify readiness

Quick comprehension check:

"Without looking at your notes:

  1. What does {key concept} do in this repo?
  2. If you saw {pattern} in a file you haven't read yet, what would you expect it to do?
  3. Where would you look in the codebase for more examples of {concept}?"

If the user can answer all three, they're ready to contribute. If not, revisit the relevant concept.

Related Skills

  • Triggered from: ← oss-prep-to-contribute: when knowledge check reveals unfamiliar technology
  • Triggered from: ← oss-explore-repo: when exploration reveals the user doesn't understand the stack
  • Next step: → oss-contribute: ready to work on the issue
  • Pairs with: oss-explore-repo (architecture understanding) + this skill (technology understanding) = full preparation

Common Rationalizations

ShortcutWhy It Fails
"I'll read the official docs instead"Docs teach the framework's happy path. This repo uses a subset of it, with local conventions layered on top. Code that is idiomatic for the docs and wrong for the repo is worse than code that is merely wrong, because it looks deliberate.
"I already know this framework"Knowing the framework is not knowing how this repo uses it. The gap that costs you a review round is always the local convention, never the language.
"I'll learn it when I hit it"You hit it halfway through the implementation, and the patch that comes out reads like it was written by someone guessing. Reviewers can tell.
"I found one example, that is the pattern"One example might be the outlier nobody has cleaned up yet. Find a second before copying it.
"I'll just ask the LLM to explain the concept"A general explanation is what the docs already gave you. The point of this skill is the explanation grounded in this codebase's own files.

Red Flags

  • User cannot find a second example of a concept unaided. the first one was not understood, only read
  • The stack list has run past ten items. that is a repo tour, not a gap list, and none of it will stick
  • User is reading framework tutorials in another tab instead of the repo's code
  • The cheat sheet is copied from documentation rather than written from the repo's usage
  • Every explanation ends with the user saying "makes sense" and asking nothing

Verification Checklist

  • Stack identified from the repo's own manifests and configs, not assumed (step 1)
  • Gaps named by the user, not guessed at on their behalf (step 2)
  • Every concept taught points at a real file:line in this repo (step 3)
  • User found an additional example of the concept without help (step 4 gate)
  • Concepts connected to the area the user's issue actually touches (step 5)
  • Cheat sheet written by the user, in their words, from this repo's code (step 6)
  • User can say what they still do not know (step 7)

Anti-patterns

  • DO NOT teach from generic docs. every example must come from THIS repo's codebase
  • DO NOT dump all concepts at once. teach one gap at a time, verify understanding, then move on
  • DO NOT skip the "find another example" gate. recognition matters more than explanation
  • DO NOT teach more than what's needed for the contribution. the goal is sufficiency, not mastery
  • DO NOT replace official documentation. point to it for depth, don't reproduce it
  • DO NOT assume the user knows prerequisite concepts. if they're unknown on React, don't assume they know JSX

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Research an issue deeply and present all context to the user. but the user writes the code. The LLM investigates code paths, finds relevant files, explains patterns, and identifies constraints. The user thinks through the approach and implements it. Use when ready to start working on an issue after oss-prep-to-contribute. Not for writing tests or documentation as a standalone contribution. Use oss-write-tests or oss-write-docs for those.

日本語の概要は準備中です。原文の説明を表示しています。

chiruu12/OSS-Skills612026年8月24日 更新

Debug CI failures in unfamiliar repo pipelines. Reads CI configs, fetches failure logs, classifies the failure type, and guides the user through diagnosing and fixing the issue. Use when CI fails on your PR in an OSS repo, when you don't understand a CI error, or when debugging GitHub Actions/CircleCI/other CI systems. Not for setting up CI from scratch — this is for debugging existing pipelines.

日本語の概要は準備中です。原文の説明を表示しています。

chiruu12/OSS-Skills612026年8月24日 更新

Evaluate whether an OSS repo is worth long-term investment before committing time. Assesses project health, governance, community, bus factor, and trajectory. Use when deciding whether to contribute to a specific repo, choosing between multiple repos, or evaluating a project's sustainability. Not for checking if a repo accepts contributions — use oss-find-issue for that.

日本語の概要は準備中です。原文の説明を表示しています。

chiruu12/OSS-Skills612026年8月24日 更新

Guided codebase exploration for understanding a repo's architecture, patterns, and domain language before contributing. Not issue-specific. builds general understanding. Use when exploring a new repo, wanting to understand how a project works, or preparing to become a regular contributor. Not for learning a framework or language you have never used. Use oss-learn-stack for that.

日本語の概要は準備中です。原文の説明を表示しています。

chiruu12/OSS-Skills612026年8月24日 更新

Find unclaimed open source issues that match the user's skills and experience level. Searches for issues created by maintainers/org admins, checks contribution eligibility, and ranks by learning value. Use when looking for an issue to contribute to, starting OSS contributions, or finding GSoC-friendly issues. Not for finding problems that nobody has filed an issue for yet. Use oss-find-real-issues for that.

日本語の概要は準備中です。原文の説明を表示しています。

chiruu12/OSS-Skills612026年8月24日 更新

Find actual code issues in a repo that aren't listed in GitHub issues. missing tests, inconsistent patterns, outdated dependencies, documentation gaps. Presents findings to the user for evaluation. Use when you want to make proactive contributions beyond existing issues, or when no good issues are available. Not for browsing the existing issue tracker. Use oss-find-issue for that.

日本語の概要は準備中です。原文の説明を表示しています。

chiruu12/OSS-Skills612026年8月24日 更新

chiruu12 のスキルをすべて見る

このスキルの問題を報告する