Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ This document is optimized for first-time contributors. If you are looking for a

Prerequisites:

- macOS
- macOS only (current Swift parser build/runtime path is macOS-dependent)
- Rust toolchain
- Swift toolchain / Xcode command line tools
- Node.js 20+
Expand All @@ -30,6 +30,18 @@ cd parsers/swift-ast && swift build -c release && cd ../..
cd editor/vscode && npm ci && npm run compile && cd ../..
```

## Contribution Rights (Public Beta)

FlowMap is currently public beta and all rights are reserved by the author for the beta period.

By submitting a pull request, patch, or issue attachment with code/content, you confirm:

- You have the legal right to submit that contribution.
- You grant the maintainer a non-exclusive, worldwide, royalty-free license to use, modify, and redistribute your contribution as part of this repository during public beta.
- You do not submit third-party code/assets with incompatible terms.

Final outbound licensing terms for the project will be announced after the public beta period.

## Required Checks Before PR

Run these in repo root:
Expand Down Expand Up @@ -87,4 +99,3 @@ Bundled validation reports live under `reports/`. If you update benchmark/replay
- what dataset/repo was used
- command used
- summary metrics (TP/TN/FP/FN, detection rate)

30 changes: 27 additions & 3 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

> Swift コードの構造と呼び出し関係をグラフ分析するツールです。AI が生成したコード変更の検証に特に役立ちます。

[![CI](https://github.com/adgk2349/FlowMap/actions/workflows/ci.yml/badge.svg)](https://github.com/adgk2349/FlowMap/actions/workflows/ci.yml)
[![CI](https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift/actions/workflows/ci.yml/badge.svg)](https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift/actions/workflows/ci.yml)

[English](README.md) · [한국어](README.ko.md)

Expand All @@ -21,6 +21,16 @@ FlowMap は Swift コードを解析し、ファイル・型・関数・呼び

FlowMap はコンパイラの代替ではありません。実際のコード構造をワークスペースレベルで見える化し、関係を直接確認できる実用的な解析ツールです。

## なぜ JavaScript 比率が最も高いのか

GitHub の言語比率は「解析対象言語」ではなく「実装レイヤー構成」を示します。

- JavaScript/TypeScript: VS Code 拡張ホスト + グラフ Webview UI
- Rust: コアのグラフエンジンと diff/impact 処理
- Swift: SwiftSyntax ベースの AST パーサ

FlowMap の対象は Swift コードですが、エディタ統合/UI 実装があるため JS 比率が高く見えます。

## こんな方に

- AI 支援コーディングツールを使っていて、何が実際に変わったかを確認したい開発者
Expand All @@ -40,6 +50,18 @@ FlowMap はコンパイラの代替ではありません。実際のコード構
- **Calls** — 呼び出しクラスタ探索
- 保存時の自動再解析

## Cross-file 呼び出しリンクの現在の境界(beta)

FlowMap は誤リンクを抑えるため、cross-file 呼び出し解決を保守的に行います。そのため、動的/間接的なパターンでは具象実装ではなくインターフェース境界として表示される場合があります。

- プロトコル型変数の呼び出しは、プロトコル requirement 側のエッジに留まることがあります。
- 例: `let svc: NetworkServiceProtocol = LiveService(); svc.fetchData()`
- 別ファイルの extension メソッドは受け手型コンテキストが明確ならリンクされますが、`where` 制約付き extension dispatch は部分リンクになることがあります。
- ジェネリクス制約呼び出しは、単一の具象型ではなくジェネリクス/プロトコル境界に解決されることがあります。
- 例: `func run<T: Worker>(_ t: T) { t.work() }`

これは現行 Public Beta における意図的な保守挙動で、段階的に拡張中です。

## スクリーンショット

### Overview モード
Expand All @@ -58,18 +80,20 @@ FlowMap はコンパイラの代替ではありません。実際のコード構

### 前提条件

- macOS(Swift パーサの実行に必要
- macOS 専用(Swift パーサ実行に必須
- Rust toolchain([rustup.rs](https://rustup.rs))
- Swift toolchain / Xcode command line tools
- Node.js v20 以上
- VS Code

> プラットフォーム注記: 現在の Swift パーサのビルド/実行経路は macOS の Swift toolchain 前提に依存しているため、Linux/Windows は未対応です。

### ビルド

**1. リポジトリをクローン**

```bash
git clone https://github.com/adgk2349/FlowMap.git
git clone https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift.git FlowMap
cd FlowMap
```

Expand Down
30 changes: 27 additions & 3 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

> Swift 코드의 구조와 호출 관계를 그래프로 분석하는 도구입니다. AI가 생성한 코드 변경을 검증할 때 특히 유용합니다.

[![CI](https://github.com/adgk2349/FlowMap/actions/workflows/ci.yml/badge.svg)](https://github.com/adgk2349/FlowMap/actions/workflows/ci.yml)
[![CI](https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift/actions/workflows/ci.yml/badge.svg)](https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift/actions/workflows/ci.yml)

[English](README.md) · [日本語](README.ja.md)

Expand All @@ -21,6 +21,16 @@ FlowMap은 Swift 코드를 파싱해 파일, 타입, 함수, 호출 관계를

FlowMap은 컴파일러 대체제가 아닙니다. 실제 코드 관계를 눈으로 볼 수 있게 해주는 실용적인 워크스페이스 수준 분석 도구입니다.

## 왜 JavaScript 비중이 가장 큰가요?

GitHub 언어 비율은 "분석 대상 언어"가 아니라 "구현 계층 비율"을 반영합니다.

- JavaScript/TypeScript: VS Code 확장 호스트 + 그래프 웹뷰 UI
- Rust: 핵심 그래프 엔진, diff/impact 처리
- Swift: SwiftSyntax 기반 AST 파서

즉 FlowMap의 분석 대상은 Swift가 맞고, JS 비중이 큰 이유는 에디터/UI 통합 코드가 포함되기 때문입니다.

## 이런 분께 유용합니다

- AI 보조 코딩 도구를 활용하면서 실제로 무엇이 바뀌었는지 검증하고 싶은 개발자
Expand All @@ -40,6 +50,18 @@ FlowMap은 컴파일러 대체제가 아닙니다. 실제 코드 관계를 눈
- **Calls** — 호출 군집 탐색
- 저장 시 자동 재분석

## Cross-file 호출 연결 한계 (현재 베타)

FlowMap은 false link를 줄이기 위해 cross-file 호출을 보수적으로 연결합니다. 그래서 일부 동적/간접 패턴은 구체 구현 대신 인터페이스 경계 수준으로 표시될 수 있습니다.

- 프로토콜 타입 변수 호출은 프로토콜 requirement 엣지로 남을 수 있습니다.
- 예: `let svc: NetworkServiceProtocol = LiveService(); svc.fetchData()`
- 파일이 다른 extension 메서드는 수신 타입 문맥이 명확하면 연결되지만, `where` 제약이 있는 extension dispatch는 부분 연결이 남을 수 있습니다.
- 제네릭 제약 호출은 단일 concrete 타입 대신 제네릭/프로토콜 경계로 해석될 수 있습니다.
- 예: `func run<T: Worker>(_ t: T) { t.work() }`

이 동작은 현재 퍼블릭 베타에서 의도된 보수적 동작이며, 점진적으로 확장 중입니다.

## 스크린샷

### Overview 모드
Expand All @@ -58,18 +80,20 @@ FlowMap은 컴파일러 대체제가 아닙니다. 실제 코드 관계를 눈

### 준비물

- macOS (Swift 파서 실행에 필요)
- macOS 전용 (Swift 파서 실행에 필요)
- Rust toolchain ([rustup.rs](https://rustup.rs))
- Swift toolchain / Xcode command line tools
- Node.js v20 이상
- VS Code

> 플랫폼 안내: 현재 Swift 파서 빌드/실행 경로가 macOS Swift toolchain 가정에 의존하므로 Linux/Windows는 아직 지원하지 않습니다.

### 빌드

**1. 레포 클론**

```bash
git clone https://github.com/adgk2349/FlowMap.git
git clone https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift.git FlowMap
cd FlowMap
```

Expand Down
31 changes: 28 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

> Swift code graph and impact analysis tool — understand and verify code structure, especially when reviewing AI-generated changes.

[![CI](https://github.com/adgk2349/FlowMap/actions/workflows/ci.yml/badge.svg)](https://github.com/adgk2349/FlowMap/actions/workflows/ci.yml)
[![CI](https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift/actions/workflows/ci.yml/badge.svg)](https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift/actions/workflows/ci.yml)

[한국어](README.ko.md) · [日本語](README.ja.md)

Expand All @@ -21,6 +21,16 @@ It answers questions like:

FlowMap is not a compiler replacement. It makes real code structure visible at the workspace level so you can verify relationships directly rather than inferring them.

## Why JavaScript is the largest language share

GitHub language percentages reflect implementation layers, not analysis target language.

- JavaScript/TypeScript: VS Code extension host + graph webview UI
- Rust: core graph engine and diff/impact processing
- Swift: SwiftSyntax-based AST parser used as the frontend parser

FlowMap still targets Swift codebases; the JS-heavy ratio comes from editor/runtime integration.

## Who it is for

- Developers using AI-assisted coding tools who want to verify what actually changed
Expand All @@ -40,6 +50,19 @@ FlowMap is not a compiler replacement. It makes real code structure visible at t
- **Calls** — call-cluster exploration across the workspace
- Auto-analyze on save

## Cross-file call-linking boundaries (current beta)

FlowMap intentionally resolves cross-file calls conservatively to reduce false links. This means some dynamic/indirect patterns are represented at interface level rather than concrete implementation level.

- Protocol-typed call sites may stay on protocol requirement edges.
- Example: `let svc: NetworkServiceProtocol = LiveService(); svc.fetchData()`
- Extension methods across files are linked when receiver/type context is explicit, but constrained extension dispatch can remain partial.
- Example: extension methods with additional `where` constraints.
- Generic constraint calls may resolve to the generic/protocol boundary instead of a single concrete type.
- Example: `func run<T: Worker>(_ t: T) { t.work() }`

This behavior is expected in current public beta and is being expanded incrementally.

## Screenshots

### Overview mode
Expand All @@ -58,18 +81,20 @@ FlowMap is not a compiler replacement. It makes real code structure visible at t

### Prerequisites

- macOS (required for the Swift parser)
- macOS only (required for the Swift parser)
- Rust toolchain ([rustup.rs](https://rustup.rs))
- Swift toolchain / Xcode command line tools
- Node.js v20 or later
- VS Code

> Platform note: Linux/Windows are not supported yet because the current Swift parser build/runtime path depends on macOS Swift toolchain assumptions.

### Build

**1. Clone the repository**

```bash
git clone https://github.com/adgk2349/FlowMap.git
git clone https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift.git FlowMap
cd FlowMap
```

Expand Down
46 changes: 46 additions & 0 deletions docs/releases/v0.1.0-beta.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# FlowMap v0.1.0-beta.1 — Public Beta

FlowMap Public Beta release.

## Highlights

- Workspace-level Swift graph analysis (file/type/function/call edges)
- Graph diff + impact visualization in VS Code
- Auto-analyze on save
- Updated screenshots and docs (EN/KR/JP)
- Contributor onboarding docs/templates added

## Validation Summary

- Replay total pairs: **209**
- TP / TN / FP / FN: **106 / 97 / 0 / 6**
- Non-Swift FP Rate: **0%**
- Swift Detection Rate: **94.64%**
- Overall Match Rate: **97.13%**
- Sample scenarios: **60/60 PASS** (FP 0, FN 0)
- Public Beta Gate: **PASS**

Validation artifacts:

- `reports/replay-validation-bundle.md`
- `reports/replay-validation-bundle.json`
- `reports/sample-scenarios-report.json`
- `reports/public-beta-validation-detail.md`
- `reports/public-beta-validation-detail.json`

## Known Limitations

- License enforcement is currently local/dev-preview level (production server-side enforcement is not implemented yet).
- Some Swift call-resolution edge cases remain and are being improved.

## Release Process Note

GitHub Actions minutes were exhausted during this cycle.
This release was validated with local reproducible checks and pushed directly without full PR checks.

## License (Beta)

Final licensing terms will be announced after the beta period.
Until then, all rights are reserved by the author, except evaluation use for public beta.

Commercial use or redistribution: adgk2349b@gmail.com
2 changes: 1 addition & 1 deletion editor/vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"version": "0.1.0",
"repository": {
"type": "git",
"url": "https://github.com/adgk2349/FlowMap.git"
"url": "https://github.com/adgk2349/FlowMap-AI_Code_Hallucination_Guard_for_Swift.git"
},
"engines": {
"vscode": "^1.85.0"
Expand Down
Loading