Skip to content

Yeachan-Heo/My-Jogyo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

103 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ Gyoshu & Jogyo

English | δΈ­ζ–‡ | ν•œκ΅­μ–΄ | ζ—₯本θͺž

"Every great professor needs a great teaching assistant."

Gyoshu (ꡐ수, Professor) orchestrates. Jogyo (쑰ꡐ, Teaching Assistant) executes.

Together, they form an end-to-end research automation system for OpenCode that turns your research goals into reproducible Jupyter notebooksβ€”complete with hypotheses, experiments, findings, and publication-ready reports.


🎭 The Cast

Agent Role Korean What They Do
Gyoshu 🎩 Professor ꡐ수 Plans research, orchestrates workflow, manages sessions
Jogyo πŸ“š Teaching Assistant 쑰ꡐ Executes Python code, runs experiments, generates outputs
Baksa πŸ” PhD Reviewer 박사 Adversarial verifier β€” challenges claims, calculates trust scores
Jogyo Paper Writer ✍️ Grad Student 쑰ꡐ Transforms raw findings into narrative research reports

Think of it like a research lab:

  • The Professor (Gyoshu) sets the research direction and reviews progress
  • The TA (Jogyo) does the actual experiments and analysis
  • The PhD Reviewer (Baksa) plays devil's advocate, questioning every claim
  • When it's time to publish, a Grad Student writes up the findings beautifully

✨ Features

🎬 Demo coming soon! Try the Quick Tutorial to see Gyoshu in action.

  • πŸ”¬ Hypothesis-Driven Research β€” Structure your work with [OBJECTIVE], [HYPOTHESIS], [FINDING] markers
  • 🐍 Persistent Python REPL β€” Variables survive across sessions, just like a real Jupyter kernel
  • πŸ““ Auto-Generated Notebooks β€” Every experiment is captured as a reproducible .ipynb
  • πŸ€– Autonomous Mode β€” Set a goal, walk away, come back to results
  • πŸ” Adversarial Verification β€” PhD reviewer challenges every claim before acceptance
  • 🎯 Two-Gate Completion β€” SUCCESS requires both evidence quality (Trust Gate) AND goal achievement (Goal Gate)
  • πŸ“ AI-Powered Reports β€” Turn messy outputs into polished research narratives
  • πŸ”„ Session Management β€” Continue, replay, or branch your research anytime

πŸš€ Installation

Option 1: Claude Code (MCP Server)

Gyoshu works with Claude Code via the Model Context Protocol (MCP). Install in one command:

# Clone and build the MCP server
git clone https://github.com/Yeachan-Heo/My-Jogyo.git
cd My-Jogyo/src/mcp
npm install && npm run build

# Register with Claude Code
claude mcp add gyoshu-mcp "$(pwd)/build/index.cjs"

Verify installation:

claude mcp list
# Should show: gyoshu-mcp: βœ“ Connected

Available MCP Tools:

Tool Purpose
python_repl Execute Python code with marker detection
research_manager Create/manage research sessions
gyoshu_snapshot Capture research state snapshots
checkpoint_manager Save/restore research checkpoints
notebook_writer Jupyter notebook operations
notebook_search Search across notebooks

Note: The MCP server exposes 12 research tools. See src/mcp/ for details.

Option 2: OpenCode Plugin

Add Gyoshu to your opencode.json:

{
  "plugin": ["gyoshu"]
}

That's it! OpenCode will auto-install Gyoshu from npm on next startup.

Option 3: CLI Installer

# Using bunx (no global install needed)
bunx gyoshu install

# Or install globally first
npm install -g gyoshu
gyoshu install

The CLI automatically adds Gyoshu to your opencode.json.

πŸ“¦ Development installation (for contributors)

Clone & link locally:

git clone https://github.com/Yeachan-Heo/My-Jogyo.git
cd My-Jogyo && bun install

Then in your opencode.json:

{
  "plugin": ["file:///path/to/My-Jogyo"]
}

Verify installation:

# Check status via CLI
bunx gyoshu check

# Or in OpenCode
opencode
/gyoshu doctor

πŸ€– Installation for LLMs

Using Claude Code, OpenCode, or another AI coding assistant? This section is for you.

For Claude Code: Install the MCP server (Option 1 above). The tools are automatically available.

For OpenCode: Run bunx gyoshu install or add "gyoshu" to your plugin array. Then give your LLM the context it needs:

  1. Point your LLM to the guide:

    "Read AGENTS.md in the Gyoshu directory for full context on how to use the research tools."

  2. Or paste this quick start prompt:

    I've installed Gyoshu. Read AGENTS.md and help me run /gyoshu to analyze my data.
    

Key commands your LLM should know:

Command What It Does
/gyoshu Start interactive research
/gyoshu-auto <goal> Autonomous research (hands-off)
/gyoshu doctor Check system health and diagnose issues

Tip: AGENTS.md contains everything an LLM needs β€” agents, commands, markers, troubleshooting, and more.


πŸƒ Quick Start

# Start OpenCode
opencode

# πŸ‘‹ Say hi to the Professor
/gyoshu

# 🎯 Start a new research project
/gyoshu analyze customer churn patterns in the telecom dataset

# πŸ€– Or let it run autonomously (hands-off!)
/gyoshu-auto classify iris species using random forest

# πŸ“Š Generate a report
/gyoshu report

# πŸ”„ Continue where you left off
/gyoshu continue

πŸ“š Examples

Binance Futures Comprehensive EDA

Real-world example: Comprehensive exploratory data analysis of Binance USD-M futures data with multi-dimensional visualizations.

Binance Futures EDA Dashboard

What it shows:

  • 3D volume-price-time analysis
  • Correlation heatmaps with dendrograms
  • Rolling statistics and volatility surfaces
  • Cross-pair scatter density plots
  • Performance radar charts and candlestick analysis

Try It Yourself

# Binance futures analysis (API or local data)
/gyoshu-auto perform comprehensive EDA on binance futures data

# Titanic classification (classic ML workflow)
/gyoshu-auto analyze Titanic survival data and build classification model

# Iris clustering (no download needed - sklearn built-in)
/gyoshu-auto cluster iris dataset and visualize results

πŸ“– Commands

The Professor's Commands (/gyoshu)

Command What It Does
/gyoshu Show status and what to do next
/gyoshu <goal> Start interactive research
/gyoshu-auto <goal> Autonomous mode (set it and forget it!)
/gyoshu plan <goal> Just create a plan, don't execute
/gyoshu continue Pick up where you left off
/gyoshu report Generate research report
/gyoshu list See all your research projects
/gyoshu search <query> Find stuff across all notebooks
/gyoshu doctor Check system health and diagnose issues

Research Modes

Mode Best For Command
πŸŽ“ Interactive Learning, exploring, iterating /gyoshu <goal>
πŸ€– Autonomous Clear goals, hands-off execution /gyoshu-auto <goal>
πŸ”§ REPL Quick exploration, debugging /gyoshu repl <query>

πŸ”¬ How Research Works

1. You Set a Goal

/gyoshu analyze wine quality factors and build a predictive model

2. The Professor Plans

Gyoshu creates a structured research plan with clear objectives and hypotheses.

3. The TA Executes

Jogyo runs Python code, using structured markers to organize output:

print("[OBJECTIVE] Predict wine quality from physicochemical properties")
print("[HYPOTHESIS] Alcohol content is the strongest predictor")

# ... analysis code ...

print(f"[METRIC:accuracy] {accuracy:.3f}")
print("[FINDING] Alcohol shows r=0.47 correlation with quality")
print("[CONCLUSION] Hypothesis supported - alcohol is key predictor")

4. Auto-Generated Notebook

Everything is captured in notebooks/wine-quality.ipynb with full reproducibility.

5. AI-Written Report

The Paper Writer agent transforms markers into a narrative report:

"Our analysis of 1,599 wine samples revealed that alcohol content emerges as the dominant predictor of quality ratings (r = 0.47). The final Random Forest model achieved 87% accuracy..."


πŸ“ Project Structure

your-project/
β”œβ”€β”€ notebooks/                    # πŸ““ Research notebooks
β”‚   β”œβ”€β”€ wine-quality.ipynb
β”‚   └── customer-churn.ipynb
β”œβ”€β”€ reports/                      # πŸ“ Generated reports
β”‚   └── wine-quality/
β”‚       β”œβ”€β”€ report.md             # AI-written narrative report
β”‚       β”œβ”€β”€ figures/              # Saved plots
β”‚       └── models/               # Saved models
β”œβ”€β”€ data/                         # πŸ“Š Your datasets
└── .venv/                        # 🐍 Python environment

Runtime files (sockets, locks) go to OS temp directoriesβ€”not your project! 🧹

What Gyoshu Creates

When you run research, Gyoshu creates these artifacts in your project:

your-project/
β”œβ”€β”€ notebooks/
β”‚   └── your-research.ipynb    ← Research notebook (source of truth)
β”œβ”€β”€ reports/
β”‚   └── your-research/
β”‚       β”œβ”€β”€ figures/           ← Saved plots (.png, .svg)
β”‚       β”œβ”€β”€ models/            ← Trained models (.pkl, .joblib)
β”‚       └── report.md          ← Generated research report
└── (your existing files untouched!)

Note: Gyoshu never modifies your .venv/, data/, or other existing project files.


🎯 Output Markers

The TA uses structured markers to organize research output:

Core Markers

Marker Purpose Example
[OBJECTIVE] Research goal [OBJECTIVE] Classify iris species
[HYPOTHESIS] What you're testing [HYPOTHESIS] H0: no difference; H1: petal length predicts species
[DATA] Dataset info [DATA] Loaded 150 samples
[FINDING] Key discovery [FINDING] Setosa is linearly separable (d=2.1, p<0.001)
[CONCLUSION] Final verdict [CONCLUSION] Hypothesis confirmed with large effect

Statistical Evidence Markers (Required for Verified Findings)

Marker Purpose Example
[STAT:ci] Confidence interval [STAT:ci] 95% CI [0.82, 0.94]
[STAT:effect_size] Effect magnitude [STAT:effect_size] Cohen's d = 0.75 (medium)
[STAT:p_value] Statistical significance [STAT:p_value] p = 0.003
[SO_WHAT] Practical significance [SO_WHAT] This means 15% cost reduction
[LIMITATION] Threats to validity [LIMITATION] Small sample size (n=50)

ML Pipeline Markers

Marker Purpose Example
[METRIC:baseline_*] Dummy model benchmark [METRIC:baseline_accuracy] 0.33
[METRIC:cv_*] Cross-validation scores [METRIC:cv_accuracy_mean] 0.95

Quality Gate: Findings without [STAT:ci] and [STAT:effect_size] are marked as "Exploratory" in reports.


πŸ”¬ Research Quality

Gyoshu enforces senior data scientist level quality through automated quality gates. Every claim requires statistical evidence.

The Finding Gating Rule

⚠️ No [FINDING] is accepted without:

  • [STAT:ci] β€” Confidence interval (within 10 lines before)
  • [STAT:effect_size] β€” Effect magnitude (within 10 lines before)

Findings that fail these checks are downgraded to "Exploratory Observations" in reports.

Quality Standards

Requirement Penalty if Missing Why It Matters
CI for findings -30 trust Point estimates without uncertainty are misleading
Effect size for findings -30 trust Statistical significance β‰  practical significance
Baseline for ML -20 trust Can't claim improvement without a reference point
Cross-validation for ML -25 trust Single train/test split can be lucky

Trust Score Thresholds

Score Status What Happens
β‰₯ 80 βœ… Verified Finding accepted as key result
60-79 ⚠️ Partial Accepted with caveats
< 60 ❌ Rejected Marked as exploratory, requires rework

Learn more: See AGENTS.md for complete marker reference and statistical requirements.


🐍 Python Environment

Gyoshu uses your project's .venv/ virtual environment:

Priority Type How It's Detected
1️⃣ venv .venv/bin/python exists

Quick setup:

python3 -m venv .venv
.venv/bin/pip install pandas numpy scikit-learn matplotlib seaborn

Note: Gyoshu uses your project's virtual environment. It never modifies system Python.


πŸ› οΈ Requirements

  • Claude Code or OpenCode v0.1.0+
  • Python 3.10+
  • Node.js 18+ (for MCP server)
  • Optional: psutil (for memory tracking)

Supported Platforms

Platform Status Notes
Linux βœ… Primary Tested on Ubuntu 22.04+
macOS βœ… Supported Intel & Apple Silicon
Windows ⚠️ WSL2 Only Native Windows not supported

πŸ”„ Updating

Gyoshu is distributed via npm. OpenCode automatically handles plugin updates.

Force update:

# Clear OpenCode's cache
rm -rf ~/.cache/opencode/node_modules/gyoshu

# Or reinstall with latest version
bunx gyoshu@latest install

Then restart OpenCode.

Verify: opencode then /gyoshu doctor

Uninstall:

bunx gyoshu uninstall

See CHANGELOG.md for what's new.


πŸŽ“ Why "Gyoshu" and "Jogyo"?

In Korean academia:

  • ꡐ수 (Gyoshu/Kyosu) = Professor β€” the one who guides, plans, and oversees
  • 쑰ꡐ (Jogyo) = Teaching Assistant β€” the one who executes, experiments, and does the heavy lifting

This reflects the architecture: Gyoshu is the orchestrator agent that plans and manages research flow, while Jogyo is the executor agent that actually runs Python code and produces results.

It's a partnership. The Professor has the vision. The TA makes it happen. Together, they publish papers. πŸ“š


🀝 Optional Companion: Oh-My-OpenCode

Gyoshu works completely standalone. It has its own agent stack and requires no other OpenCode extensions (like oh-my-opencode).

For data-driven product development workflows, you can optionally combine Gyoshu with Oh-My-OpenCode:

Tool Focus Independent?
Gyoshu (this project) πŸ“Š Research & Analysis βœ… Fully standalone
Oh-My-OpenCode πŸ—οΈ Product Development βœ… Fully standalone

Gyoshu's Own Agent Stack

Gyoshu includes everything it needs for research:

Agent Role What They Do
@gyoshu Professor Plans research, orchestrates workflow
@jogyo TA Executes Python code, runs experiments
@baksa PhD Reviewer Challenges claims, verifies evidence
@jogyo-insight Evidence Gatherer Searches docs, finds examples
@jogyo-feedback Learning Explorer Reviews past sessions for patterns
@jogyo-paper-writer Report Writer Transforms findings into narrative reports

Optional Workflow (When Combined)

If you choose to use both tools together:

  1. Research with Gyoshu:

    /gyoshu-auto analyze user behavior and identify churn predictors
    

    β†’ Produces insights: "Users who don't use feature X within 7 days have 3x churn rate"

  2. Build with Oh-My-OpenCode:

    /planner implement onboarding flow that guides users to feature X
    

    β†’ Ships the feature that addresses the insight

Data informs decisions. Code ships solutions. πŸš€

Note: You do NOT need Oh-My-OpenCode to use Gyoshu. Each tool works independently.


πŸ”§ Troubleshooting

Issue Solution
"No .venv found" Create a virtual environment: python3 -m venv .venv && .venv/bin/pip install pandas numpy
"Bridge failed to start" Check Python version (need 3.10+): python3 --version. Check socket path permissions.
"Session locked" Use /gyoshu unlock <sessionId> after verifying no process is running
OpenCode not in PATH Install from opencode-ai/opencode

Still stuck? Run /gyoshu doctor to diagnose issues.


πŸ“„ License

MIT β€” Use it, fork it, teach with it!


Made with πŸŽ“ for researchers who'd rather think than type

Report Bug Β· Request Feature Β· Documentation