| name | oss-study |
| description | Study an open-source codebase using a four-mode (Diรกtaxis-based) question structure that keeps each question to a single learning intent. Use when the user wants to study an unfamiliar repo or library for learning (e.g. "์ด ์คํ์์ค๋ก ์คํฐ๋ํ์", "์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ป๊ฒ ๋์ํ๋์ง ๊ณต๋ถํ์"), or to understand a dependency's internals before adopting it. Not for shipping a fix. |
OSS Study
Guide structured study of an open-source codebase by asking one kind of question at a time โ each question stays in a single mode.
The Four Modes
Every question about the code fits one of four modes.
| Mode | Intent | Question shape |
|---|
| Explanation | ์ ์ด๋ฐ๊ฐ (์ค๊ณ ์ดํด) | "์ด ๋ชจ๋์ด ์ ์ด๋ ๊ฒ ๋๋์ด ์์ด? ์ด๋ค ๋์์ด ์์๊ณ ์ ์ด๊ฑธ ๊ณจ๋์๊น?" |
| Tutorial | ๋ฐ๋ผํ๋ฉฐ ๊ฐ ์ก๊ธฐ | "๊ฐ์ฅ ๋จ์ํ ๋์ ํ๋๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ๋๋ฆฌ๋ ์ต์ ์์ ๋ฅผ ๋ง๋ค์ด์ค. ๊ฐ ์ค์ด ๋ญ ํ๋์ง ์ฃผ์์ผ๋ก." |
| Reference | ์ ํํ ์ฌ์ค | "์ด ํจ์์ ์๊ทธ๋์ฒยท์
์ถ๋ ฅยท์์ธ ์กฐ๊ฑด์ ์ฝ๋ ๊ทผ๊ฑฐ๋ก ์ ํํ ์ ๋ฆฌํด์ค." |
| How-to | ์์ฉ/๋ณ๊ฒฝ | "X๋ฅผ ์ปค์คํฐ๋ง์ด์ฆํ๋ ค๋ฉด ์ด๋ ํ์ผ ์ด๋ ๋ถ๋ถ์ ๊ฑด๋๋ ค์ผ ํด? ์ค์ ํ์ฅ ํฌ์ธํธ๋ฅผ ์ง์ด์ค." |
Procedure
- Confirm the target. Identify the specific repo/library and whether it is available locally. If given only a URL, clone it with full history (not shallow). This step is complete when a local path exists. Do not proceed on a guessed target.
- Explanation first โ the big picture. Explain why the whole is structured the way it is: entry points, top-level module boundaries, how the core modules interact. "The whole" is the smallest unit containing the learner's stated interest โ for a single function, its module. If several equal subsystems could be the target, list them and ask rather than choosing silently. Use a read-only exploration agent or codebase-summary skill if the host runtime provides one, to ground the answer in the actual tree, not assumptions.
- Tutorial โ one representative flow. Pick the single most representative use case โ if none stands out, propose 2โ3 candidates and let the learner pick. Walk one minimal end-to-end example, annotating each step: runnable if the project supports a trivial local run, otherwise an annotated code-path trace.
- Reference โ the facts on that flow. For the functions/types touched in step 3, state exact signatures, inputs/outputs, and error conditions.
- How-to โ apply it. Answer a concrete "how would I change/extend X here?" using the real extension points found above. If the learner has not named a change, propose one representative modification and answer it.
After each mode produces a concrete, evidence-backed answer, stop and take the learner's follow-ups; advance only when the learner is ready. The learner's own questions may target any mode at any time.
Rules
- One mode per question. If a request bundles modes, split it and answer them separately, naming the mode each time.
- Cite the code. Reference and How-to answers must point to
file:line; never present an unverified claim as fact.
- Prefer history when it teaches. For Explanation, use
git log/git blame on the relevant lines to recover why it changed, not just its current state.
Completion Criteria
The study of a chosen flow is complete when all of the following hold:
- The overall architecture (entry point + core module interactions) has been stated.
- One end-to-end flow has been walked with an annotated minimal example.
- Every function or type named in the step-3 walkthrough has a
file:line-cited signature/definition and behavior note.
- At least one concrete "how to change X" answer points to a real extension point.
- The learner has confirmed the flow is understood, or named the next flow to study.