From cf855b679d61c2043a263c77b2c4cfb074de48ae Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 26 Jan 2026 03:19:10 +0900 Subject: [PATCH 01/97] chore: initial project setup with Gradle - Initialize Gradle project structure - Configure build.gradle.kts with Java plugin - Add settings.gradle.kts with project name 'j-focus' - Add Gradle wrapper and .gitignore --- .gitignore | 42 ++++ .idea/.gitignore | 8 + .idea/aws.xml | 17 ++ .idea/gradle.xml | 16 ++ .idea/misc.xml | 10 + .idea/vcs.xml | 6 + build.gradle.kts | 21 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 234 +++++++++++++++++++++++ gradlew.bat | 89 +++++++++ settings.gradle.kts | 1 + 12 files changed, 450 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/aws.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 build.gradle.kts create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b63da45 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/aws.xml b/.idea/aws.xml new file mode 100644 index 0000000..99de319 --- /dev/null +++ b/.idea/aws.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..14746e7 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f16dea7 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..1e82e4b --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,21 @@ +plugins { + id("java") +} + +group = "com.jher235" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} + +dependencies { + + testImplementation(platform("org.junit:junit-bom:5.10.0")) + testImplementation("org.junit.jupiter:junit-jupiter") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") +} + +tasks.test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..cbc5b76 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "j-focus" \ No newline at end of file From dc594e6820d8debafda434760d6f874e16920a46 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 26 Jan 2026 03:23:08 +0900 Subject: [PATCH 02/97] =?UTF-8?q?chore:=20setup=20build=20configuration=20?= =?UTF-8?q?with=20Shadow=20plugin=20and=20essential=20dependencies=20-=20c?= =?UTF-8?q?om.github.johnrengelman.shadow:=20=EC=BB=B4=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EC=8B=9C=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=EB=9F=AC=EB=A6=AC?= =?UTF-8?q?=EB=93=A4=EA=B9=8C=EC=A7=80=20=EB=AA=A8=EB=91=90=20=EC=8B=A4?= =?UTF-8?q?=ED=96=89=20=ED=8C=8C=EC=9D=BC=EB=A1=9C=20=EB=A7=8C=EB=93=A4?= =?UTF-8?q?=EA=B8=B0=20=EC=9C=84=ED=95=A8=20-=20AST=20=EB=B6=84=EC=84=9D?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=B4=20JavaParser=20=EC=9D=98?= =?UTF-8?q?=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80=20-=20cli=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=EC=9D=84=20=EC=9C=84=ED=95=B4=20Picocli=20=EC=9D=98?= =?UTF-8?q?=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80=20-=20=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=ED=95=A8=EC=88=98=EB=8A=94=20com.jher235.jfocus.JF?= =?UTF-8?q?ocusCli=20=EB=A1=9C=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 1e82e4b..ce85264 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("java") + id("com.github.johnrengelman.shadow") version "8.1.1" } group = "com.jher235" @@ -11,11 +12,24 @@ repositories { dependencies { + implementation("com.github.javaparser:javaparser-symbol-solver-core:3.25.10") + + implementation("info.picocli:picocli:4.7.5") + annotationProcessor("info.picocli:picocli-codegen:4.7.5") + + testImplementation(platform("org.junit:junit-bom:5.10.0")) testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } +tasks.jar { + manifest { + attributes["Main-Class"] = "com.jher235.jfocus.JFocusCli" + } +} + + tasks.test { useJUnitPlatform() } \ No newline at end of file From a05c4325e6816fe1b829e7e5b401112831728c54 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 26 Jan 2026 16:24:53 +0900 Subject: [PATCH 03/97] chore: config codeRabbit yaml --- coderabbit.yaml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 coderabbit.yaml diff --git a/coderabbit.yaml b/coderabbit.yaml new file mode 100644 index 0000000..21727b0 --- /dev/null +++ b/coderabbit.yaml @@ -0,0 +1,37 @@ +# CodeRabbit config file +# docs: https://docs.coderabbit.ai/guides/configure-coderabbit + +early_access: true + +reviews: + profile: assertive + high_level_summary: true + incremental_review: true + review_status: true + collapse_walkthrough: true + + poem: false + request_changes_workflow: false + + auto_review: + enabled: true + drafts: true + base_branches: + - develop + - main + + # excluded files + path_filters: + - "!*.md" + - "!.github/**" + - "!gradle/**" + - "!build/**" + - "!.idea/**" + - "!*.iml" + +chat: + auto_reply: true + +issue_enrichment: + auto_enrich: + enabled: false \ No newline at end of file From 01445f4477a12b2b775c9a078be2a85f340210e2 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 26 Jan 2026 16:30:24 +0900 Subject: [PATCH 04/97] chore: config agent.md --- .idea/gradle.xml | 1 + agent.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 agent.md diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 14746e7..2a65317 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ +

+📂 수동 설치 (Manual Installation) + +자동 스크립트 없이 직접 설치하려면: + +1. **JAR 다운로드:** + - [Releases 페이지](https://github.com/jher235/j-focus/releases)에서 `j-focus-1.0.0-all.jar` 다운로드 + +2. **설치:** + ```bash + mkdir -p ~/.jfocus + mv j-focus-1.0.0-all.jar ~/.jfocus/j-focus.jar + ``` + +3. **Alias 설정 (Linux/macOS):** + ```bash + echo "alias jfocus='java -jar ~/.jfocus/j-focus.jar'" >> ~/.zshrc + source ~/.zshrc + ``` + +4. **Windows:** + - `C:\Users\사용자명\.jfocus\` 폴더 생성 + - JAR 파일 이동 + - `jfocus.bat` 파일 생성: + ```bat + @echo off + java -jar "%USERPROFILE%\.jfocus\j-focus.jar" %* + ``` + - PATH에 `%USERPROFILE%\.jfocus` 추가를 권장합니다. +
+ +--- + +### 문제 해결 + +#### "java: command not found" +→ Java가 설치되지 않았거나 PATH에 없습니다. +```bash +# macOS (Homebrew) +brew install openjdk@21 + +# Ubuntu/Debian +sudo apt install openjdk-21-jdk + +# Windows +# Oracle JDK 또는 OpenJDK 설치 후 환경 변수 설정 +``` + +#### "jfocus: command not found" (설치 후) +→ Alias가 등록되지 않았습니다. 위의 "설치 후 alias 추가" 단계를 다시 실행하세요. + +#### Windows에서 "보안 경고" 발생 +→ PowerShell 실행 정책 문제입니다. +```powershell +Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser +``` + + + + +--- + +## 🛠️ 개발자용 (소스에서 빌드) + +프로젝트에 기여하거나 최신 개발 버전을 테스트하려면: + +```bash +# 1. 저장소 클론 +git clone https://github.com/jher235/j-focus.git +cd j-focus + +# 2. 빌드 (Gradle Wrapper 사용 - Gradle 설치 불필요) +./gradlew clean shadowJar + +# 3. 실행 +java -jar build/libs/j-focus-*-all.jar --version +``` + +**로컬 개발 환경:** +```bash +# Alias로 등록 (개발 중인 JAR 직접 실행) +alias jfocus-dev='java -jar ~/projects/j-focus/build/libs/j-focus-*-all.jar' +``` + +--- + +## 🎮 사용 방법 (Usage) + +### 기본 실행 +설치가 완료되면 `jfocus` 명령어로 어디서든 실행할 수 있습니다. 파일명이나 메서드명을 인자로 주지 않으면 **대화형 모드**가 시작됩니다. + +```bash +jfocus +``` + +### CLI 옵션 (Options) + +```bash +Usage: jfocus [-cvhV] [fileName] [methodName] +``` + +| 옵션 | 설명 | 예시 | +|------|------|------| +| `[fileName]` | 분석할 자바 파일명 (확장자 생략 가능) | `UserController` | +| `[methodName]` | 분석할 메서드명 | `login` | +| `-c`, `--copy` | 결과를 터미널에 출력하는 대신 **클립보드에 복사**합니다. | `jfocus -c` | +| `-v`, `--verbose` | **직접 참조된** 다른 메서드의 소스 코드를 포함합니다. (깊은 재귀 탐색 제외) | `jfocus -v` | +| `-h`, `--help` | 도움말 메시지를 표시합니다. | | +| `-V`, `--version` | 버전 정보를 표시합니다. | | + +### 사용 예시 (Scenario) + + **시나리오**: `ContextExtractor.java` 파일의 `extractContext` 메서드를 분석하여 LLM에게 질문하고 싶을 때 + + 1. **명령어 실행**: + ```bash + jfocus conte + ``` + 2. **메서드 선택 (대화형)**: + ```text + Searching for: conte... + Source Root configured: C:\open_source\j-focus\src\main\java + Ambiguous file name. Found 3 matches: + [1] ContextResult.java (src/main/java/com/jher235/jfocus/model) + [2] ContextExtractor.java (src/main/java/com/jher235/jfocus/core) + [3] ContextExtractorTest.java (src/test/java/com/jher235/jfocus/core) + Select (1-3): 2 + Found File: ...\src\main\java\com\jher235\jfocus\core\ContextExtractor.java + + Available Methods: + [1] extractContext(MethodDeclaration targetMethod) + [2] extractRecursive(MethodDeclaration rootTarget, ... ) + + Select method number: 1 + ``` + 3. **결과 확인**: "-c" 옵션을 썼다면 클립보드에, 아니면 화면에 결과가 출력됩니다. + + ### 📄 출력 결과 예시 (Output Example) + +> 생성된 마크다운은 **ChatGPT나 Claude에 그대로 붙여넣어도 안전합니다.** (Safe to paste) + + `jfocus`가 생성하는 실제 마크다운 결과입니다. (펼쳐서 확인) + +
+ 🔎 ContextExtractor.extractContext() 분석 결과 보기 + + ```markdown + # Target Method + The main logic to analyze. + + ```java + /** + * Extracts the full context for the given target method recursively. + * ... + */ + public ContextResult extractContext(MethodDeclaration targetMethod) { + ContextResult result = new ContextResult(targetMethod); + // Fields + result.setUsedFields(dependencyResolver.resolveFields(targetMethod)); + // Track visited methods to prevent infinite loops during recursion + Set visited = new HashSet<>(); + visited.add(AstUtils.createMethodId(targetMethod)); + // Start recursive analysis + extractRecursive(targetMethod, targetMethod, result, visited); + return result; + } + ``` + + + ## Internal Context (Same Class) + Methods called by the target, defined within the same class. + + ```java + /** + * Recursively traverses method calls to find all related user code. + * External libraries are automatically excluded as they lack source code definitions. + */ + private void extractRecursive(MethodDeclaration rootTarget, MethodDeclaration currentMethod, ContextResult result, Set visited) { + List dependencies = dependencyResolver.resolveMethods(currentMethod); + // ... (생략: 재귀적 탐색 로직) ... + } + ``` + + ## Related Fields + Class fields accessed by the target method. + + ```java + private final DependencyResolver dependencyResolver; + ``` + + + +
+ +--- + +## 🤖 For AI Agents (Cursor, Windsurf) + +**JFocus**는 AI 에이전트(Cursor, Windsurf)와 결합했을 때 가장 강력합니다. 매번 프롬프트를 입력할 필요 없이, 프로젝트 설정 파일에 규칙을 추가하여 **에이전트가 스스로 도구를 사용하도록** 만드세요. + + +### 1. `.cursorrules` 설정 + +프로젝트 루트의 `.cursorrules` 파일에 [docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) 파일의 내용을 복사해 붙여넣으세요. + +(별도 파일을 다운로드할 필요 없이, 아래 내용을 그대로 복사하셔도 됩니다.) + +```markdown +# JFocus Integration Rules + +You have a tool called `jfocus` installed in system PATH. +When user asks for Java code analysis, refactoring, or explanation: + +1. **Analysis Strategy**: + - DO NOT read the entire file content blindly. + - ALWAYS use `jfocus ` to extract the context. + - Use `-v` flag ONLY when you need to see dependency implementation details. + +2. **Command Usage**: + - `jfocus ` : Lists available methods in the file. + - ... + +3. **Trust Model**: + - Treat JFocus output as the **ONLY source of truth**. + - Do **NOT** assume missing methods or fields exist. + - If context seems incomplete, explicitly use `jfocus -v` to check dependencies. + - `jfocus ` : Extracts context for the method. + +4. **Execution**: Run the command, assume the output is the ground truth context, and answer based on it. +``` + +### 2. 사용 예시 + +이제 에이전트에게 자연스럽게 질문하세요: + +> "이 프로젝트의 `PaymentService.process()` 메서드를 분석해서 리팩토링 제안해줘." + +에이전트는 자동으로 `jfocus`를 실행하여 문맥을 파악한 뒤, 정확한 답변을 제공할 것입니다. + +--- + +## 🤝 기여하기 (Contributing) + +이 프로젝트는 오픈 소스이며, 여러분의 기여를 환영합니다! 🎉 + +1. 이 저장소를 **Fork** 하세요. +2. 새로운 기능 브랜치를 생성하세요 (`git checkout -b feature/amazing-feature`). +3. 변경 사항을 커밋하세요 (`git commit -m 'Add some amazing feature'`). +4. 브랜치에 푸시하세요 (`git push origin feature/amazing-feature`). +5. **Pull Request**를 열어주세요. + +버그 제보나 기능 제안은 [Issues](https://github.com/jher235/jfocus/issues) 탭을 이용해 주세요. + +--- + +## 📜 라이선스 (License) + +이 프로젝트는 **MIT License**에 따라 배포됩니다. 자세한 내용은 `LICENSE` 파일을 참고하세요. \ No newline at end of file diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..d82b132 --- /dev/null +++ b/src/README.md @@ -0,0 +1,416 @@ +# JFocus 🔍 + +[![Java 21](https://img.shields.io/badge/Java-21-orange?logo=java)](https://openjdk.org/projects/jdk/21/) +[![Gradle](https://img.shields.io/badge/Gradle-8.x-02303A?logo=gradle)](https://gradle.org/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +[🇺🇸 **English**](README.md) | [🇰🇷 **Korean(한국어)**](README.ko.md) + +> **"Stop pasting entire files into AI. All you need is context."** +> +> JFocus is a CLI tool that **intelligently extracts only the necessary code** from massive Java projects, providing **optimal prompts** for LLMs like ChatGPT or Claude. + +--- + +## 📝 Table of Contents + +- [Introduction](#-introduction) +- [Benchmarks](#-benchmarks) +- [Features](#-features) +- [Installation](#-installation) +- [Usage](#-usage) +- [For AI Agents](#-for-ai-agents-cursor-windsurf) +- [Contributing](#-contributing) +- [License](#-license) + +--- + +## 💡 Introduction +![JFocus CLI Demo](docs/images/demo.png) + +When developing or analyzing large-scale Java projects, copy-pasting entire files to help LLMs understand code is inefficient. It hits token limits and degrades response quality with unnecessary noise. + +**JFocus** solves this problem. When you select a specific method to analyze, it extracts only the **essential context (variables, called methods, class structures, etc.)** that the method depends on, formatted in Markdown. + +### 🎯 Use Cases + +- **Focused Analysis**: When an entire file is too large, but a single method provides insufficient context. +- **Legacy Code Navigation**: When you need to extract logic related to your changes from a 500+ line God Class. +- **Complex Dependencies**: When you need to visualize internal/external call relationships like `this.validate()` or `service.process()` at a glance. +- **LLM-Assisted Refactoring**: When you want to tell AI, "Focus only on things related to this method and advise me." + +### 🚫 Non-Goals + +- **No Runtime Analysis**: Does not track runtime data flow, reflection, or AOP. +- **No External Library Analysis**: Analyzes only source code (.java) within the project. Does not inspect Spring Bean graphs or JAR internals. +- **Not an IDE Replacement**: IDEs are far superior for full project navigation. JFocus focuses solely on **"Prompt Generation"**. + +### 🛡️ Why AST instead of Regex? + +"Can't I just use `grep`?" + +Text-based searches fail to distinguish method overloading, inner classes, or methods with identical names, risking the injection of **Hallucinated Context** into the LLM. + +**JFocus** uses JavaParser to convert code into an **Abstract Syntax Tree (AST)** for analysis. +- **Precise Reference Tracking**: Uses **Symbol Resolution** to track the exact target a symbol points to, rather than just matching strings. +- **Noise Reduction**: excludes comments, imports, and other unnecessary tokens to focus purely on logic. + +--- + +## 📊 Benchmarks + +`jfocus` drastically optimizes context usage for LLM agents. By extracting only the target method's logic and the signatures of referenced dependencies, it minimizes token consumption while maintaining sufficient context for code understanding. + +**Test Environment:** +- **Target:** Production-level Java Spring Boot Project +- **Metric:** Character count comparison (Raw File vs. `jfocus` Output) + +| Component Type | File Name | Raw Size (Chars) | jfocus Output (Chars) | **Reduction Rate** | +| :--- | :--- | :--- | :--- | :--- | +| **Controller** | `Controller.java` | 11,705 | ~2,400 | **🔻 79.5%** | +| **Logic (Mid)** | `Service.java` | 4,913 | ~2,400 | **🔻 51.1%** | +| **Logic (Small)** | `SimpleService.java` | 2,304 | ~2,014 | **🔻 12.6%** | +| **Entity** | `Entity.java` | 1,728 | ~225 | **🔻 87.0%** | + +> **Key Findings:** +> - **Massive Reduction in Large Files:** Reduces size by **up to 80%** in complex controllers or service classes, allowing you to process 5x more files within the same context window. +> - **Rich Context for Small Files:** Even for small files with lower reduction rates (12%), it provides **Dependency Signatures** that are absent in the raw file, offering richer information to the agent. +> +> *Measurement: GPT-4o Tokenizer (approximate). Actual token count may vary depending on the model and tokenizer.* +> +> **💡 Qualitative Result:** +> In practical usage, LLM responses became much more **Focused**, and **Hallucinations** referencing unrelated methods were significantly reduced. + +### 🚀 Scalability + +> "Does it work on monorepos with thousands of classes?" + +Yes, it is supported, but it is optimized for **Single Module** or **Monolithic** structures. + +- **✅ Single Module**: Fully supports symbol tracking and dependency analysis. +- **⚠️ Multi-Module**: Supports multi-module projects, but ensures **optimal accuracy when class names are unique** across modules. (It uses fuzzy file matching for cross-module classes.) + + +--- + +## ✨ Features + +- **🎯 Precise Context Extraction**: + - Determines **direct relevance** and provides core information without recursively analyzing methods called within methods, field variables, or inheritance structures. + - (Deep Dive option for in-depth analysis is planned.) + +- **🖥️ Interactive CLI**: + - No need to type complex paths; just enter the filename to list and select methods within that file. + +- **📋 Auto-Clipboard**: + - Use `-c` or `--copy` option to save the extracted result immediately to the clipboard for instant pasting into LLM chat. + +- **🧩 Reference Code Inclusion**: + - Use `-v` or `--verbose` option to include the implementation code of methods **Directly Referenced** by the method being analyzed. + - (Limited to project source code; does not unconditionally expand deep dependency chains.) + +--- + +## 📦 Installation + +### Prerequisites + +To run JFocus, **Java 21 or higher** is required. + +```bash +java -version # Check if Java 21+ +``` + +> If Java is not installed: Download [Oracle JDK](https://www.oracle.com/java/technologies/downloads/) or [OpenJDK](https://openjdk.org/). + +--- + +### Automatic Installation (Recommended) + +The installation script handles the following automatically: +1. ✅ Download latest built JAR from GitHub Releases +2. ✅ Verify file integrity with SHA256 checksum +3. ✅ Install to `~/.jfocus/` directory +4. ✅ Create execution script + +#### macOS / Linux (One-Line Install) + +Automatically registers Alias for `jfocus` command along with installation. + +```bash +# ⚠️ Review the install script before piping to bash if you have security concerns. +curl -sL https://raw.githubusercontent.com/jher235/j-focus/main/scripts/install.sh | bash +``` + +#### Windows (PowerShell) + +Can be executed without administrator privileges. Automatically sets environment variables (PATH) after installation. + +```powershell +iwr -useb https://raw.githubusercontent.com/jher235/j-focus/main/scripts/install.ps1 | iex +``` + +--- + +### Verification + +```bash +jfocus --version +# Output: JFocus v1.0.0 +``` + +--- + +
+📂 Manual Installation + +If you cannot use the auto-script or prefer to install manually: + +1. **Download JAR:** + - Download `jfocus-1.0.0-all.jar` from [Releases Page](https://github.com/jher235/j-focus/releases) + +2. **Install:** + ```bash + mkdir -p ~/.jfocus + mv j-focus-1.0.0-all.jar ~/.jfocus/j-focus.jar + ``` + +3. **Set Alias (Linux/macOS):** + ```bash + echo "alias jfocus='java -jar ~/.jfocus/j-focus.jar'" >> ~/.zshrc + source ~/.zshrc + ``` + +4. **Windows:** + - Create `C:\Users\Username\.jfocus\` folder + - Move JAR file + - Create `jfocus.bat` file: + ```bat + @echo off + java -jar "%USERPROFILE%\.jfocus\j-focus.jar" %* + ``` + - Recommend adding `%USERPROFILE%\.jfocus` to PATH. +
+ +--- + +### Troubleshooting + +#### "java: command not found" +→ Java is not installed or not in PATH. +```bash +# macOS (Homebrew) +brew install openjdk@21 + +# Ubuntu/Debian +sudo apt install openjdk-21-jdk + +# Windows +# Install Oracle JDK or OpenJDK and set environment variables +``` + +#### "jfocus: command not found" (After Install) +→ Alias is not registered. Re-run the "Set Alias" step above. + +#### "Security Warning" on Windows +→ PowerShell execution policy issue. +```powershell +Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser +``` + +--- + +## 🛠️ For Developers (Build from Source) + +To contribute to the project or test the latest development version: + +```bash +# 1. Clone Repository +git clone https://github.com/jher235/j-focus.git +cd j-focus + +# 2. Build (Use Gradle Wrapper - No Gradle install needed) +./gradlew clean shadowJar + +# 3. Run +java -jar build/libs/j-focus-*-all.jar --version +``` + +**Local Development Environment:** +```bash +# Register Alias (Run development JAR directly) +alias jfocus-dev='java -jar ~/projects/j-focus/build/libs/j-focus-*-all.jar' +``` + +--- + +## 🎮 Usage + +### Basic Execution +Once installed, you can run `jfocus` from anywhere. If no filename or method name is provided, **Interactive Mode** starts. + +```bash +jfocus +``` + +### CLI Options + +```bash +Usage: jfocus [-cvhV] [fileName] [methodName] +``` + +| Option | Description | Example | +|------|------|------| +| `[fileName]` | Java filename to analyze (extension optional) | `UserController` | +| `[methodName]` | Method name to analyze | `login` | +| `-c`, `--copy` | **Copies result to clipboard** instead of printing to terminal. | `jfocus -c` | +| `-v`, `--verbose` | Includes source code of **Directly Referenced** methods. (Excludes deep recursive search) | `jfocus -v` | +| `-h`, `--help` | Show help message. | | +| `-V`, `--version` | Show version information. | | + +### Scenario + + **Scenario**: You want to analyze the `extractContext` method in `ContextExtractor.java` to ask an LLM about it. + + 1. **Run Command**: + ```bash + jfocus conte + ``` + 2. **Select Method (Interactive)**: + ```text + Searching for: conte... + Source Root configured: C:\open_source\j-focus\src\main\java + Ambiguous file name. Found 3 matches: + [1] ContextResult.java (src/main/java/com/jher235/jfocus/model) + [2] ContextExtractor.java (src/main/java/com/jher235/jfocus/core) + [3] ContextExtractorTest.java (src/test/java/com/jher235/jfocus/core) + Select (1-3): 2 + Found File: ...\src\main\java\com\jher235\jfocus\core\ContextExtractor.java + + Available Methods: + [1] extractContext(MethodDeclaration targetMethod) + [2] extractRecursive(MethodDeclaration rootTarget, ... ) + + Select method number: 1 + ``` + 3. **Check Result**: Extracted to clipboard if "-c" is used, otherwise printed to screen. + + ### 📄 Output Example + + > The generated markdown is **Safe to paste** directly into ChatGPT or Claude. + + Actual extracted result from `jfocus`. (Expand to view) + +
+ 🔎 View ContextExtractor.extractContext() Analysis Result + + ```markdown + # Target Method + The main logic to analyze. + + ```java + /** + * Extracts the full context for the given target method recursively. + * ... + */ + public ContextResult extractContext(MethodDeclaration targetMethod) { + ContextResult result = new ContextResult(targetMethod); + // Fields + result.setUsedFields(dependencyResolver.resolveFields(targetMethod)); + // Track visited methods to prevent infinite loops during recursion + Set visited = new HashSet<>(); + visited.add(AstUtils.createMethodId(targetMethod)); + // Start recursive analysis + extractRecursive(targetMethod, targetMethod, result, visited); + return result; + } + ``` + + + ## Internal Context (Same Class) + Methods called by the target, defined within the same class. + + ```java + /** + * Recursively traverses method calls to find all related user code. + * External libraries are automatically excluded as they lack source code definitions. + */ + private void extractRecursive(MethodDeclaration rootTarget, MethodDeclaration currentMethod, ContextResult result, Set visited) { + List dependencies = dependencyResolver.resolveMethods(currentMethod); + // ... (omitted: recursive traversal logic) ... + } + ``` + + ## Related Fields + Class fields accessed by the target method. + + ```java + private final DependencyResolver dependencyResolver; + ``` + +
+ +--- + +## 🤖 For AI Agents (Cursor, Windsurf) + +**JFocus** is most powerful when combined with AI Agents (Cursor, Windsurf). Instead of typing prompts every time, add rules to your project configuration to make the **Agent use the tool autonomously**. + + +### 1. `.cursorrules` Configuration + +Copy and paste the content of [docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) into the `.cursorrules` file at your project root. + +(No need to download a separate file, you can copy the content below directly.) + +```markdown +# JFocus Integration Rules + +You have a tool called `jfocus` installed in system PATH. +When user asks for Java code analysis, refactoring, or explanation: + +1. **Analysis Strategy**: + - DO NOT read the entire file content blindly. + - ALWAYS use `jfocus ` to extract the context. + - Use `-v` flag ONLY when you need to see dependency implementation details. + +2. **Command Usage**: + - `jfocus ` : Lists available methods in the file. + - ... + +3. **Trust Model**: + - Treat JFocus output as the **ONLY source of truth**. + - Do **NOT** assume missing methods or fields exist. + - If context seems incomplete, explicitly use `jfocus -v` to check dependencies. + - `jfocus ` : Extracts context for the method. + +4. **Execution**: Run the command, assume the output is the ground truth context, and answer based on it. +``` + +### 2. Usage + +Now ask the agent naturally: + +> "Analyze `PaymentService.process()` method in this project and suggest refactoring." + +The agent will automatically run `jfocus`, grasp the context, and provide an accurate response. + +--- + +## 🤝 Contributing + +This project is open source and contributions are welcome! 🎉 + +1. **Fork** this repository. +2. Create a new feature branch (`git checkout -b feature/amazing-feature`). +3. Commit your changes (`git commit -m 'Add some amazing feature'`). +4. Push to the branch (`git push origin feature/amazing-feature`). +5. Open a **Pull Request**. + +Please use the [Issues](https://github.com/jher235/jfocus/issues) tab for bug reports or feature suggestions. + +--- + +## 📜 License + +This project is distributed under the **MIT License**. See `LICENSE` file for details. diff --git a/src/docs/images/demo.png b/src/docs/images/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..b9eda52bf435d29dae16fd76d90fa6793f8e2b3e GIT binary patch literal 150342 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 Date: Mon, 16 Feb 2026 01:44:17 +0900 Subject: [PATCH 88/97] docs: consolidate AI rules into rules.md as single source of truth - Update `rules.md` to include the 'Trust Model' section as requested by code review. - Remove duplicate rules content from `README.md` and link to `rules.md` instead. - Ensure consistency between documentation and actual agent instructions. --- src/README.ko.md | 30 ++----------------- src/README.md | 30 ++----------------- .../java/com/jher235/jfocus/docs/rules.md | 7 ++++- 3 files changed, 10 insertions(+), 57 deletions(-) diff --git a/src/README.ko.md b/src/README.ko.md index 2e64c58..afa2077 100644 --- a/src/README.ko.md +++ b/src/README.ko.md @@ -362,35 +362,9 @@ Usage: jfocus [-cvhV] [fileName] [methodName] **JFocus**는 AI 에이전트(Cursor, Windsurf)와 결합했을 때 가장 강력합니다. 매번 프롬프트를 입력할 필요 없이, 프로젝트 설정 파일에 규칙을 추가하여 **에이전트가 스스로 도구를 사용하도록** 만드세요. -### 1. `.cursorrules` 설정 +### 1. 에이전트 규칙 설정 (Configure Agent Rules) -프로젝트 루트의 `.cursorrules` 파일에 [docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) 파일의 내용을 복사해 붙여넣으세요. - -(별도 파일을 다운로드할 필요 없이, 아래 내용을 그대로 복사하셔도 됩니다.) - -```markdown -# JFocus Integration Rules - -You have a tool called `jfocus` installed in system PATH. -When user asks for Java code analysis, refactoring, or explanation: - -1. **Analysis Strategy**: - - DO NOT read the entire file content blindly. - - ALWAYS use `jfocus ` to extract the context. - - Use `-v` flag ONLY when you need to see dependency implementation details. - -2. **Command Usage**: - - `jfocus ` : Lists available methods in the file. - - ... - -3. **Trust Model**: - - Treat JFocus output as the **ONLY source of truth**. - - Do **NOT** assume missing methods or fields exist. - - If context seems incomplete, explicitly use `jfocus -v` to check dependencies. - - `jfocus ` : Extracts context for the method. - -4. **Execution**: Run the command, assume the output is the ground truth context, and answer based on it. -``` +프로젝트 루트의 에이전트 설정 파일(예: `.cursorrules`, `.windsurfrules` 등)에 [docs/rules.md](main/java/com/jher235/jfocus/docs/rules.md) 파일의 내용을 복사해 붙여넣으세요. ### 2. 사용 예시 diff --git a/src/README.md b/src/README.md index d82b132..935d93d 100644 --- a/src/README.md +++ b/src/README.md @@ -357,35 +357,9 @@ Usage: jfocus [-cvhV] [fileName] [methodName] **JFocus** is most powerful when combined with AI Agents (Cursor, Windsurf). Instead of typing prompts every time, add rules to your project configuration to make the **Agent use the tool autonomously**. -### 1. `.cursorrules` Configuration +### 1. Configure Agent Rules -Copy and paste the content of [docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) into the `.cursorrules` file at your project root. - -(No need to download a separate file, you can copy the content below directly.) - -```markdown -# JFocus Integration Rules - -You have a tool called `jfocus` installed in system PATH. -When user asks for Java code analysis, refactoring, or explanation: - -1. **Analysis Strategy**: - - DO NOT read the entire file content blindly. - - ALWAYS use `jfocus ` to extract the context. - - Use `-v` flag ONLY when you need to see dependency implementation details. - -2. **Command Usage**: - - `jfocus ` : Lists available methods in the file. - - ... - -3. **Trust Model**: - - Treat JFocus output as the **ONLY source of truth**. - - Do **NOT** assume missing methods or fields exist. - - If context seems incomplete, explicitly use `jfocus -v` to check dependencies. - - `jfocus ` : Extracts context for the method. - -4. **Execution**: Run the command, assume the output is the ground truth context, and answer based on it. -``` +Copy and paste the content of [docs/rules.md](main/java/com/jher235/jfocus/docs/rules.md) into your agent's configuration file (e.g., `.cursorrules`, `.windsurfrules`, or `.instructions`) at your project root. ### 2. Usage diff --git a/src/main/java/com/jher235/jfocus/docs/rules.md b/src/main/java/com/jher235/jfocus/docs/rules.md index dc96e8d..8f4eaa1 100644 --- a/src/main/java/com/jher235/jfocus/docs/rules.md +++ b/src/main/java/com/jher235/jfocus/docs/rules.md @@ -12,4 +12,9 @@ When user asks for Java code analysis, refactoring, or explanation: - `jfocus ` : Lists available methods in the file. - `jfocus ` : Extracts context for the method. -3. **Execution**: Run the command, assume the output is the ground truth context, and answer based on it. +3. **Trust Model**: + - Treat JFocus output as the **ONLY source of truth**. + - Do **NOT** assume missing methods or fields exist. + - If context seems incomplete, explicitly use `jfocus -v` to check dependencies. + +4. **Execution**: Run the command, assume the output is the ground truth context, and answer based on it. From 377327e41892d6e6c512be492e9801b993c25bd3 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 01:47:05 +0900 Subject: [PATCH 89/97] docs: add markdown backtic --- src/README.ko.md | 4 +++- src/README.md | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/README.ko.md b/src/README.ko.md index afa2077..588ce2c 100644 --- a/src/README.ko.md +++ b/src/README.ko.md @@ -307,7 +307,7 @@ Usage: jfocus [-cvhV] [fileName] [methodName]
🔎 ContextExtractor.extractContext() 분석 결과 보기 - ```markdown + ````markdown # Target Method The main logic to analyze. @@ -353,6 +353,8 @@ Usage: jfocus [-cvhV] [fileName] [methodName] +```` +
--- diff --git a/src/README.md b/src/README.md index 935d93d..417c6bf 100644 --- a/src/README.md +++ b/src/README.md @@ -304,7 +304,7 @@ Usage: jfocus [-cvhV] [fileName] [methodName]
🔎 View ContextExtractor.extractContext() Analysis Result - ```markdown + ````markdown # Target Method The main logic to analyze. @@ -348,7 +348,9 @@ Usage: jfocus [-cvhV] [fileName] [methodName] private final DependencyResolver dependencyResolver; ``` -
+ ```` + + --- From a7b31bc7d3c4c90f38691980bd63b1dd736f9c28 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 01:56:54 +0900 Subject: [PATCH 90/97] docs: Fix Table of Contents link fragments --- src/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/README.md b/src/README.md index 417c6bf..15fc61c 100644 --- a/src/README.md +++ b/src/README.md @@ -14,14 +14,14 @@ ## 📝 Table of Contents -- [Introduction](#-introduction) -- [Benchmarks](#-benchmarks) -- [Features](#-features) -- [Installation](#-installation) -- [Usage](#-usage) -- [For AI Agents](#-for-ai-agents-cursor-windsurf) -- [Contributing](#-contributing) -- [License](#-license) +- [Introduction](#introduction) +- [Benchmarks](#benchmarks) +- [Features](#features) +- [Installation](#installation) +- [Usage](#usage) +- [For AI Agents](#for-ai-agents-cursor-windsurf) +- [Contributing](#contributing) +- [License](#license) --- From 33aef761d1358aaf32c107cbfa1ba567356b51e6 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 01:59:30 +0900 Subject: [PATCH 91/97] feat: Fix Installation Script Shell Detection Refactored - This ensures that users running the one-liner via curl | bash will have the jfocus alias correctly appended to their actual login shell's config file (e.g., .zshrc) instead of being incorrectly defaulted to .bashrc. --- src/scripts/install.sh | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/scripts/install.sh b/src/scripts/install.sh index df1d9dc..8017013 100644 --- a/src/scripts/install.sh +++ b/src/scripts/install.sh @@ -68,16 +68,19 @@ chmod +x "$INSTALL_DIR/j-focus.jar" echo "⚙️ Configuring alias..." RC_FILE="" -if [ -n "$ZSH_VERSION" ]; then - RC_FILE="$HOME/.zshrc" -elif [ -n "$BASH_VERSION" ]; then - RC_FILE="$HOME/.bashrc" -else - # Fallback detection - case "$SHELL" in - */zsh) RC_FILE="$HOME/.zshrc" ;; - */bash) RC_FILE="$HOME/.bashrc" ;; - esac +# Prioritize $SHELL environment variable for login shell detection +case "$SHELL" in + */zsh) RC_FILE="$HOME/.zshrc" ;; + */bash) RC_FILE="$HOME/.bashrc" ;; +esac + +# Fallback detection based on shell version if $SHELL is not conclusive +if [ -z "$RC_FILE" ]; then + if [ -n "$ZSH_VERSION" ]; then + RC_FILE="$HOME/.zshrc" + elif [ -n "$BASH_VERSION" ]; then + RC_FILE="$HOME/.bashrc" + fi fi if [ -n "$RC_FILE" ]; then From b380af86b0002d0577d7a06f14bd5b31ccb58866 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 02:14:49 +0900 Subject: [PATCH 92/97] docs: remove unnecessary blank --- src/README.ko.md | 2 +- src/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/README.ko.md b/src/README.ko.md index 588ce2c..a0cd2ac 100644 --- a/src/README.ko.md +++ b/src/README.ko.md @@ -298,7 +298,7 @@ Usage: jfocus [-cvhV] [fileName] [methodName] ``` 3. **결과 확인**: "-c" 옵션을 썼다면 클립보드에, 아니면 화면에 결과가 출력됩니다. - ### 📄 출력 결과 예시 (Output Example) +### 📄 출력 결과 예시 (Output Example) > 생성된 마크다운은 **ChatGPT나 Claude에 그대로 붙여넣어도 안전합니다.** (Safe to paste) diff --git a/src/README.md b/src/README.md index 15fc61c..f6fc955 100644 --- a/src/README.md +++ b/src/README.md @@ -295,7 +295,7 @@ Usage: jfocus [-cvhV] [fileName] [methodName] ``` 3. **Check Result**: Extracted to clipboard if "-c" is used, otherwise printed to screen. - ### 📄 Output Example +### 📄 Output Example > The generated markdown is **Safe to paste** directly into ChatGPT or Claude. From fcaaa36169e4767ed81b9519ab84ed5b79fd69ff Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 02:25:19 +0900 Subject: [PATCH 93/97] docs: fix table of contents links in README --- src/README.ko.md | 16 ++++++++-------- src/README.md | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/README.ko.md b/src/README.ko.md index a0cd2ac..0e475ac 100644 --- a/src/README.ko.md +++ b/src/README.ko.md @@ -14,14 +14,14 @@ ## 📝 목차 -- [소개](#-소개) -- [효과 (Benchmarks)](#-효과-benchmarks) -- [주요 기능](#-주요-기능) -- [설치 방법](#-설치-방법) -- [사용 방법](#-사용-방법) -- [For AI Agents](#-for-ai-agents-cursor-windsurf) -- [기여하기](#-기여하기) -- [라이선스](#-라이선스) +- [소개](#소개-introduction) +- [효과 (Benchmarks)](#효과-benchmarks) +- [주요 기능](#주요-기능-features) +- [설치 방법](#설치-방법-installation) +- [사용 방법](#사용-방법-usage) +- [For AI Agents](#for-ai-agents-cursor-windsurf) +- [기여하기](#기여하기-contributing) +- [라이선스](#라이선스-license) --- diff --git a/src/README.md b/src/README.md index f6fc955..2ad6cd8 100644 --- a/src/README.md +++ b/src/README.md @@ -144,7 +144,7 @@ curl -sL https://raw.githubusercontent.com/jher235/j-focus/main/scripts/install. #### Windows (PowerShell) -Can be executed without administrator privileges. Automatically sets environment variables (PATH) after installation. +This script can be executed without administrator privileges. Automatically sets environment variables (PATH) after installation. ```powershell iwr -useb https://raw.githubusercontent.com/jher235/j-focus/main/scripts/install.ps1 | iex From 81d711b04fdd48961930e9d2bd4537316ff0b7a1 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 02:27:25 +0900 Subject: [PATCH 94/97] feat: update SHA256 checksums and improve shell detection - Update SHA256 checksums in `install.sh` and `install.ps1` for the latest build. - Fix logic in `install.sh` to correctly detect user shell (zsh/bash) when piped via curl. --- src/scripts/install.ps1 | 2 +- src/scripts/install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/install.ps1 b/src/scripts/install.ps1 index 7e373da..b4ac667 100644 --- a/src/scripts/install.ps1 +++ b/src/scripts/install.ps1 @@ -10,7 +10,7 @@ $Version = "1.0.0" # Release version $JarName = "j-focus-$Version-all.jar" $InstallDir = "$HOME\.jfocus" # Checksum for security (SHA256) - Paste the hash from Step 1 here! -$ExpectedSha256 = "5bddf71bbcc693fec4be8d4085475b68df93c42926002cb973e591ffb229340d" +$ExpectedSha256 = "16d7f858f541a9de3e76824e5fec420f767344c08c15dfb6690804153caaaa98" $DownloadUrl = "https://github.com/$Repo/releases/download/v$Version/$JarName" $DestPath = "$InstallDir\j-focus.jar" diff --git a/src/scripts/install.sh b/src/scripts/install.sh index 8017013..e6a06bf 100644 --- a/src/scripts/install.sh +++ b/src/scripts/install.sh @@ -11,7 +11,7 @@ VERSION="1.0.0" # Release version JAR_NAME="j-focus-${VERSION}-all.jar" INSTALL_DIR="$HOME/.jfocus" # Checksum for security (SHA256) - Paste the hash here! -EXPECTED_SHA256="5bddf71bbcc693fec4be8d4085475b68df93c42926002cb973e591ffb229340d" +EXPECTED_SHA256="16d7f858f541a9de3e76824e5fec420f767344c08c15dfb6690804153caaaa98" DOWNLOAD_URL="https://github.com/$REPO/releases/download/v$VERSION/$JAR_NAME" From 46623cd17edebc8594296d71442c7ebec9c6674d Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 02:34:19 +0900 Subject: [PATCH 95/97] docs: move README files to project root and update relative links --- src/README.ko.md => README.ko.md | 4 ++-- src/README.md => README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename src/README.ko.md => README.ko.md (98%) rename src/README.md => README.md (97%) diff --git a/src/README.ko.md b/README.ko.md similarity index 98% rename from src/README.ko.md rename to README.ko.md index 0e475ac..c91f946 100644 --- a/src/README.ko.md +++ b/README.ko.md @@ -26,7 +26,7 @@ --- ## 💡 소개 (Introduction) -![JFocus CLI Demo](docs/images/demo.png) +![JFocus CLI Demo](src/docs/images/demo.png) 대규모 자바 프로젝트를 개발하거나 분석할 때, LLM에게 코드를 이해시키기 위해 전체 파일을 복사해 붙여넣는 것은 비효율적입니다. 토큰 제한에 걸리거나, 불필요한 정보로 인해 LLM의 답변 품질이 떨어질 수 있습니다. @@ -366,7 +366,7 @@ Usage: jfocus [-cvhV] [fileName] [methodName] ### 1. 에이전트 규칙 설정 (Configure Agent Rules) -프로젝트 루트의 에이전트 설정 파일(예: `.cursorrules`, `.windsurfrules` 등)에 [docs/rules.md](main/java/com/jher235/jfocus/docs/rules.md) 파일의 내용을 복사해 붙여넣으세요. +프로젝트 루트의 에이전트 설정 파일(예: `.cursorrules`, `.windsurfrules` 등)에 [src/main/java/com/jher235/jfocus/docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) 파일의 내용을 복사해 붙여넣으세요. ### 2. 사용 예시 diff --git a/src/README.md b/README.md similarity index 97% rename from src/README.md rename to README.md index 2ad6cd8..59b2221 100644 --- a/src/README.md +++ b/README.md @@ -26,7 +26,7 @@ --- ## 💡 Introduction -![JFocus CLI Demo](docs/images/demo.png) +![JFocus CLI Demo](src/docs/images/demo.png) When developing or analyzing large-scale Java projects, copy-pasting entire files to help LLMs understand code is inefficient. It hits token limits and degrades response quality with unnecessary noise. @@ -361,7 +361,7 @@ Usage: jfocus [-cvhV] [fileName] [methodName] ### 1. Configure Agent Rules -Copy and paste the content of [docs/rules.md](main/java/com/jher235/jfocus/docs/rules.md) into your agent's configuration file (e.g., `.cursorrules`, `.windsurfrules`, or `.instructions`) at your project root. +Copy and paste the content of [src/main/java/com/jher235/jfocus/docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) into your agent's configuration file (e.g., `.cursorrules`, `.windsurfrules`, or `.instructions`) at your project root. ### 2. Usage From cd4e8e5f4d663e91c570fa62b77f8677a39a1539 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 02:43:57 +0900 Subject: [PATCH 96/97] docs: overhaul README structure, fix anchors and consolidate agent rules - Fix Broken Links: Resolve Table of Contents navigation issues caused by emojis using explicit HTML anchors. - Fix Paths: Update incorrect relative paths for documentation and repository URLs. --- README.ko.md | 36 +++++++++--------- README.md | 23 ++++++----- {src/docs => docs}/images/demo.png | Bin .../com/jher235/jfocus/docs => docs}/rules.md | 0 4 files changed, 29 insertions(+), 30 deletions(-) rename {src/docs => docs}/images/demo.png (100%) rename {src/main/java/com/jher235/jfocus/docs => docs}/rules.md (100%) diff --git a/README.ko.md b/README.ko.md index c91f946..8d2e82a 100644 --- a/README.ko.md +++ b/README.ko.md @@ -14,19 +14,19 @@ ## 📝 목차 -- [소개](#소개-introduction) -- [효과 (Benchmarks)](#효과-benchmarks) -- [주요 기능](#주요-기능-features) -- [설치 방법](#설치-방법-installation) -- [사용 방법](#사용-방법-usage) +- [소개](#introduction) +- [효과 (Benchmarks)](#benchmarks) +- [주요 기능](#features) +- [설치 방법](#installation) +- [사용 방법](#usage) - [For AI Agents](#for-ai-agents-cursor-windsurf) -- [기여하기](#기여하기-contributing) -- [라이선스](#라이선스-license) +- [기여하기](#contributing) +- [라이선스](#license) --- -## 💡 소개 (Introduction) -![JFocus CLI Demo](src/docs/images/demo.png) +## 💡 소개 (Introduction) +![JFocus CLI Demo](docs/images/demo.png) 대규모 자바 프로젝트를 개발하거나 분석할 때, LLM에게 코드를 이해시키기 위해 전체 파일을 복사해 붙여넣는 것은 비효율적입니다. 토큰 제한에 걸리거나, 불필요한 정보로 인해 LLM의 답변 품질이 떨어질 수 있습니다. @@ -57,7 +57,7 @@ --- -## 📊 효과 (Benchmarks) +## 📊 효과 (Benchmarks) `jfocus`는 LLM 에이전트의 컨텍스트 사용량을 획기적으로 최적화합니다. 타겟 메서드의 로직과 참조된 의존성의 서명(Signature)만 추출하여, 토큰 소비를 최소화하면서도 코드 이해에 필요한 충분한 문맥을 유지합니다. @@ -93,7 +93,7 @@ --- -## ✨ 주요 기능 (Features) +## ✨ 주요 기능 (Features) - **🎯 정밀한 문맥 추출**: - 메서드 내부에서 호출되는 다른 메서드, 필드 변수, 상속 구조 등을 재귀적으로 분석하지 않고, **직접적인 연관성**을 파악하여 핵심 정보만 제공합니다. @@ -111,7 +111,7 @@ --- -## 📦 설치 방법 (Installation) +## 📦 설치 방법 (Installation) ### 사전 준비 @@ -247,7 +247,7 @@ alias jfocus-dev='java -jar ~/projects/j-focus/build/libs/j-focus-*-all.jar' --- -## 🎮 사용 방법 (Usage) +## 🎮 사용 방법 (Usage) ### 기본 실행 설치가 완료되면 `jfocus` 명령어로 어디서든 실행할 수 있습니다. 파일명이나 메서드명을 인자로 주지 않으면 **대화형 모드**가 시작됩니다. @@ -359,14 +359,14 @@ Usage: jfocus [-cvhV] [fileName] [methodName] --- -## 🤖 For AI Agents (Cursor, Windsurf) +## 🤖 For AI Agents (Cursor, Windsurf) **JFocus**는 AI 에이전트(Cursor, Windsurf)와 결합했을 때 가장 강력합니다. 매번 프롬프트를 입력할 필요 없이, 프로젝트 설정 파일에 규칙을 추가하여 **에이전트가 스스로 도구를 사용하도록** 만드세요. ### 1. 에이전트 규칙 설정 (Configure Agent Rules) -프로젝트 루트의 에이전트 설정 파일(예: `.cursorrules`, `.windsurfrules` 등)에 [src/main/java/com/jher235/jfocus/docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) 파일의 내용을 복사해 붙여넣으세요. +프로젝트 루트의 에이전트 설정 파일(예: `.cursorrules`, `.windsurfrules` 등)에 [docs/rules.md](docs/rules.md) 파일의 내용을 복사해 붙여넣으세요. ### 2. 사용 예시 @@ -378,7 +378,7 @@ Usage: jfocus [-cvhV] [fileName] [methodName] --- -## 🤝 기여하기 (Contributing) +## 🤝 기여하기 (Contributing) 이 프로젝트는 오픈 소스이며, 여러분의 기여를 환영합니다! 🎉 @@ -388,10 +388,10 @@ Usage: jfocus [-cvhV] [fileName] [methodName] 4. 브랜치에 푸시하세요 (`git push origin feature/amazing-feature`). 5. **Pull Request**를 열어주세요. -버그 제보나 기능 제안은 [Issues](https://github.com/jher235/jfocus/issues) 탭을 이용해 주세요. +버그 제보나 기능 제안은 [Issues](https://github.com/jher235/j-focus/issues) 탭을 이용해 주세요. --- -## 📜 라이선스 (License) +## 📜 라이선스 (License) 이 프로젝트는 **MIT License**에 따라 배포됩니다. 자세한 내용은 `LICENSE` 파일을 참고하세요. \ No newline at end of file diff --git a/README.md b/README.md index 59b2221..adfc072 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,8 @@ --- -## 💡 Introduction -![JFocus CLI Demo](src/docs/images/demo.png) +## 💡 Introduction +![JFocus CLI Demo](docs/images/demo.png) When developing or analyzing large-scale Java projects, copy-pasting entire files to help LLMs understand code is inefficient. It hits token limits and degrades response quality with unnecessary noise. @@ -57,7 +57,7 @@ Text-based searches fail to distinguish method overloading, inner classes, or me --- -## 📊 Benchmarks +## 📊 Benchmarks `jfocus` drastically optimizes context usage for LLM agents. By extracting only the target method's logic and the signatures of referenced dependencies, it minimizes token consumption while maintaining sufficient context for code understanding. @@ -93,7 +93,7 @@ Yes, it is supported, but it is optimized for **Single Module** or **Monolithic* --- -## ✨ Features +## ✨ Features - **🎯 Precise Context Extraction**: - Determines **direct relevance** and provides core information without recursively analyzing methods called within methods, field variables, or inheritance structures. @@ -111,7 +111,7 @@ Yes, it is supported, but it is optimized for **Single Module** or **Monolithic* --- -## 📦 Installation +## 📦 Installation ### Prerequisites @@ -244,7 +244,7 @@ alias jfocus-dev='java -jar ~/projects/j-focus/build/libs/j-focus-*-all.jar' --- -## 🎮 Usage +## 🎮 Usage ### Basic Execution Once installed, you can run `jfocus` from anywhere. If no filename or method name is provided, **Interactive Mode** starts. @@ -354,14 +354,13 @@ Usage: jfocus [-cvhV] [fileName] [methodName] --- -## 🤖 For AI Agents (Cursor, Windsurf) +## 🤖 For AI Agents (Cursor, Windsurf) **JFocus** is most powerful when combined with AI Agents (Cursor, Windsurf). Instead of typing prompts every time, add rules to your project configuration to make the **Agent use the tool autonomously**. - ### 1. Configure Agent Rules -Copy and paste the content of [src/main/java/com/jher235/jfocus/docs/rules.md](src/main/java/com/jher235/jfocus/docs/rules.md) into your agent's configuration file (e.g., `.cursorrules`, `.windsurfrules`, or `.instructions`) at your project root. +Copy and paste the content of [docs/rules.md](docs/rules.md) into your agent's configuration file (e.g., `.cursorrules`, `.windsurfrules`, or `.instructions`) at your project root. ### 2. Usage @@ -373,7 +372,7 @@ The agent will automatically run `jfocus`, grasp the context, and provide an acc --- -## 🤝 Contributing +## 🤝 Contributing This project is open source and contributions are welcome! 🎉 @@ -383,10 +382,10 @@ This project is open source and contributions are welcome! 🎉 4. Push to the branch (`git push origin feature/amazing-feature`). 5. Open a **Pull Request**. -Please use the [Issues](https://github.com/jher235/jfocus/issues) tab for bug reports or feature suggestions. +Please use the [Issues](https://github.com/jher235/j-focus/issues) tab for bug reports or feature suggestions. --- -## 📜 License +## 📜 License This project is distributed under the **MIT License**. See `LICENSE` file for details. diff --git a/src/docs/images/demo.png b/docs/images/demo.png similarity index 100% rename from src/docs/images/demo.png rename to docs/images/demo.png diff --git a/src/main/java/com/jher235/jfocus/docs/rules.md b/docs/rules.md similarity index 100% rename from src/main/java/com/jher235/jfocus/docs/rules.md rename to docs/rules.md From cea210609a188a1030718f28e4b8417e1a255208 Mon Sep 17 00:00:00 2001 From: jher235 Date: Mon, 16 Feb 2026 02:49:51 +0900 Subject: [PATCH 97/97] refactor: move scripts to root directory --- {src/scripts => scripts}/install.ps1 | 0 {src/scripts => scripts}/install.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {src/scripts => scripts}/install.ps1 (100%) rename {src/scripts => scripts}/install.sh (100%) diff --git a/src/scripts/install.ps1 b/scripts/install.ps1 similarity index 100% rename from src/scripts/install.ps1 rename to scripts/install.ps1 diff --git a/src/scripts/install.sh b/scripts/install.sh similarity index 100% rename from src/scripts/install.sh rename to scripts/install.sh