AI Hackathon · Đội ThinkX

Thấy trước tác động.
Thay đổi tự tin.

ChangeLens đọc một change request và vẽ ra bản đồ ảnh hưởng tới màn hình, API, database và test. Mỗi kết luận đều có bằng chứng tới từng dòng code.

Impact Map · CR-0427 · Phân tích chuyên sâu · Graph v7
Change request

Cho phép tạo đơn hàng với giá trị bằng 0.

- if (amount > 0) {
+ if (amount >= 0) {
LENS
Moduleorder/OrderService.java:42CONFIRMED
APIPOST /api/ordersCONFIRMED
DBorders.amount · CHECK
TesttestValidAmount()CONFIRMED
GaptestAmountZero() — chưa cóMISSING

Minh họa luồng kết quả. Màu nhãn cho biết độ chắc chắn; dòng đỏ là test còn thiếu mà QC cần bổ sung.

Bám sát 3 chủ đề trọng tâm

Một sản phẩm.
Ba bài toán của hackathon.

ChangeLens sinh ra từ chủ đề nâng cấp sản phẩm, nhưng giá trị của nó chạm cả khách hàng lẫn vận hành nội bộ.

01 · Client Solutions

Giải quyết bài toán của khách hàng

Change request của khách được phân tích có dẫn chứng trước khi báo giá.

  • Estimate có cơ sở, ít phát sinh
  • Báo cáo ảnh hưởng gửi kèm khách hàng
  • Câu hỏi làm rõ yêu cầu mơ hồ
02 · Product Enhancement

AI Agent cho sản phẩm hiện hữu

Chạy trên source thật của EXEX, AppRemo, giải pháp WA… dù là Java/Spring, JSP, Angular, React hay ASP.NET.

  • Project Map: màn hình → nút → API → DB
  • Q&A trên codebase có trích dẫn
  • Desktop + Web dùng chung kết quả
03 · Internal Productivity

Tối ưu vận hành nội bộ

Giảm thời gian PL, Dev, QC phải đi hỏi người lâu năm hoặc tự lần code.

  • Onboarding dev mới nhanh hơn
  • Regression scope đúng trọng tâm
  • Tri thức dự án không phụ thuộc một người
Hỏi nhanh · Đáp gọn

Giải đáp nhanh
những thắc mắc thường gặp.

ChangeLens là gì?
Nền tảng phân tích ảnh hưởng của change request. Bạn mô tả thay đổi bằng tiếng Việt hoặc tiếng Anh, ChangeLens trả về những module, API, bảng/cột dữ liệu và test bị ảnh hưởng, kèm đường dẫn file, dòng code và mức độ chắc chắn.
ChangeLens dùng cho ai?
PL/BA để đánh giá phạm vi và estimate. Developer để biết sửa ở đâu, gọi qua những lớp nào. QC để biết màn hình có nút nào, gọi API nào, lưu vào bảng nào và cần regression gì. PM và Tech Lead dùng báo cáo để ra quyết định.
ChangeLens khác gì Codex, Copilot hay ChatGPT?
Codex và Copilot giỏi viết code khi bạn đã biết cần sửa gì. ChangeLens trả lời câu hỏi đứng trước đó: sửa cái này thì vỡ cái gì. Quan hệ màn hình → API → DB được dựng bằng parser và AST, không phải do AI đoán. AI chỉ giải thích trên bằng chứng đã xác minh và không được tạo ra tên file hay bảng không có thật. ChangeLens còn dùng Codex làm một provider, nên hai công cụ bổ sung cho nhau.
Tại sao cần ChangeLens?
Ở dự án lâu năm, tri thức nằm rải rác trong code, DB, tài liệu và đầu của vài người. Một thay đổi “nhỏ” có thể làm hỏng luồng không ai nhắc tới, và thường chỉ lộ ra khi đã lên môi trường test. ChangeLens đưa việc phát hiện đó lên trước khi estimate và trước khi code.
Nhanh như thế nào, hiệu quả ra sao?
Chỉ có một chế độ: phân tích chuyên sâu đầy đủ, không cần chọn Quick hay Deep. Codebase được phân tích một lần thành Project Map có version; mọi change request sau đó dùng lại map đã lưu thay vì quét lại. Cả team xem chung một kết quả. Phân tích dài có thể dừng và tiếp tục mà không mất tiến độ.
Phân tích dở dang, hết quota hay tắt máy thì sao?
Mỗi phần việc hoàn tất được lưu thành checkpoint. Nếu bị dừng (hết quota Codex, mất kết nối, đóng máy), lần sau bấm “Tiếp tục phân tích” để chạy tiếp đúng run đó, chỉ làm phần còn lại. Kết quả dở dang không bao giờ được công bố như một bản map hoàn chỉnh.
Kết quả có đáng tin không? AI có “bịa” không?
Mỗi kết luận có nhãn CONFIRMED / LIKELY / POSSIBLE / UNKNOWN và trỏ tới file, hash, dòng code. Kết luận do AI đề xuất tối đa chỉ là LIKELY nếu không có bằng chứng tĩnh. ChangeLens không bao giờ nói “không ảnh hưởng”, chỉ nói “chưa tìm thấy bằng chứng trong phạm vi đã lập chỉ mục”.
Source code của khách có bị gửi ra ngoài không?
Phân tích tĩnh chạy trên máy qua Electron Desktop hoặc Private Runner trong mạng của khách. Analyzer chỉ đọc, không build, không chạy, không sửa source. Secret được che trước khi gửi cho AI, và chính sách data-egress được đặt theo từng project. Xem phần Bảo mật.
Có lưu lịch sử và xem lại các lần phân tích không?
Có. Mỗi lần phân tích lại tạo một version graph mới và giữ nguyên các version cũ. Bạn chọn xem version bất kỳ trong thanh công cụ Project Map, rồi bấm “Về version hiện tại” để quay lại. Mỗi change request được ghim vào đúng version tại thời điểm phân tích nên kết quả cũ không bị đổi.
Hỗ trợ ngôn ngữ, framework nào?
Hiện có adapter cho Java/Spring, JSP, Doma, ASP.NET/Razor, C#, Angular, React/React Router, Next.js, NestJS, Express, FastAPI, SQL/DDL và metadata PostgreSQL. Phần chưa hỗ trợ được đánh dấu là blind spot, không bị đoán bừa.
Mỗi vai trò, một câu trả lời

Cùng một bản đồ.
Ba cách nhìn.

Phán đoán ảnh hưởng mà không cần đọc code.

Khách gửi change request, bạn phải trả lời “mất bao lâu, đụng những gì” trong khi không nắm hết kỹ thuật, hoặc không có dev lâu năm bên cạnh.

Đổi quy tắc giảm giá thì những màn hình nào bị ảnh hưởng?
Yêu cầu này còn thiếu điều kiện gì cần hỏi lại khách?
Thay đổi này rủi ro cao hay thấp?
1
Scope dễ hiểuTóm tắt, các gói việc và tác động bằng ngôn ngữ nghiệp vụ, tự lưu sau mỗi lần phân tích.
?
Điểm mơ hồ của yêu cầuDanh sách câu hỏi nên xác nhận với khách trước khi báo giá.
%
Độ chắc chắn rõ ràngBiết phần nào chắc chắn, phần nào cần dev xác minh.
↗
Bảng kế hoạch để estimateMỗi dòng gồm Màn hình, Chức năng, Function, Trạng thái (Thêm mới, Sửa, Xóa) và ghi chú thay đổi.
Tất cả chức năng

Mọi thứ nhóm cần,
trong một nơi.

Từ lập chỉ mục source đến trả lời câu hỏi của khách, dùng chung trên Web và Desktop.

Project MapBản đồ theo màn hìnhXem toàn bộ graph hoặc chọn một, nhiều màn hình để làm sáng đường đi: nút, API, service, query, bảng. Có tìm kiếm và Inspector hiện bằng chứng.
VersionGraph có versionMỗi lần phân tích tạo version mới và giữ version cũ. Xem lại lịch sử, biết bản map nào đang là Current và có bị stale so với source hay không.
Tiếp tụcDừng và chạy tiếpCheckpoint được lưu theo từng phần việc. Dừng giữa chừng, hết quota hay tắt máy vẫn tiếp tục đúng run cũ, không phân tích lại từ đầu.
Change requestPhân tích thay đổiTạo, sửa, xóa change request. Sửa nội dung sẽ đánh dấu stale và giữ kết quả cũ. Map ảnh hưởng gắn đúng version graph lúc phân tích.
EstimateBảng kế hoạch thay đổiBảng 5 cột Màn hình, Chức năng, Function, Trạng thái, Ghi chú. Mỗi dòng là một thay đổi có thể estimate riêng, kèm Scope tự sinh.
Q&AHỏi projectHỏi bằng ngôn ngữ tự nhiên, câu trả lời kèm trích dẫn file. Câu hỏi tiếp theo nhớ ngữ cảnh, lịch sử lưu theo project.
OverviewTổng quan projectĐếm màn hình, test file, manual case và Gherkin scenario đã xác minh, công nghệ theo từng khu vực và danh sách blind spot.
SourcesNhiều loại nguồnCodebase (FE và BE trong một folder), SQL/DB, Design, Test case, Documentation. Dùng folder trên máy hoặc clone từ GitHub.
GapCông khai điểm thiếuFile SQL thiếu hay API không tìm thấy hiện thành gap có lý do cụ thể. Phân tích một phần được ghi rõ là một phần.
TeamPhân quyền theo projectOwner, Project Lead, Editor, Viewer. Đăng ký có xác minh email, mời bằng email, đổi hoặc gỡ quyền có hiệu lực ngay.
AIChọn model CodexDanh sách model và mức reasoning lấy trực tiếp từ Codex trên máy. Giao diện báo rõ Codex đang online hay chưa.
Đồng bộWeb và DesktopCùng giao diện, cùng dữ liệu. Desktop thêm khả năng đọc source, Git và database trên máy.
Tổng quan hệ thống

Từ yêu cầu đến báo cáo,
trong bốn bước.

Công cụ xác định tìm sự thật. AI hiểu ngôn ngữ và giải thích. Con người quyết định cuối cùng.

01

Hiểu yêu cầu

Tách mục tiêu, actor, dữ liệu, điều kiện. Map thuật ngữ khách hàng sang tên trong hệ thống. Tìm điểm mơ hồ.

AI
02

Truy vết quan hệ

Parser và AST dựng graph màn hình, route, API, symbol, SQL, ORM, test từ snapshot source bất biến.

Deterministic
03

Mở rộng blast radius

Đi theo graph có giới hạn độ sâu, gắn evidence và nhãn độ tin cậy cho từng node.

Deterministic + AI
04

Scope và kế hoạch

Tự sinh Scope, bảng kế hoạch thay đổi để estimate và map ảnh hưởng. Mọi dòng truy ngược được về bằng chứng.

Con người

Kiến trúc hybrid desktop + cloud

Client

Desktop & Web, một giao diện

Electron làm local agent truy cập source, Git, DB trên máy. Web cho cả team xem cùng một analysis.

ElectronNext.jsReactReact Flow
Backend

Quản lý, lưu trữ, điều phối

User, workspace, phân quyền, job, lịch sử, graph có version và audit log.

FastAPIPostgreSQLpgvectorRedis
Analyzer

Phân tích tĩnh và AI

Python analyzer chạy dạng sidecar hoặc Private Runner. AI đi qua provider adapter.

Tree-sitterSQLGlotSCIPCodex
Electron Desktop / Web ──▶ ChangeLens API ──▶ PostgreSQL + pgvector · Object storage · Redis queue │ │ └── Local Agent: source · Git · DB metadata └──▶ Worker / Private Runner (Docker, VPC) Tree-sitter · SQLGlot · Codex · redaction
Phân tích xác định

Sự thật đến từ code.
Không đến từ AI đoán.

Mọi cạnh trong graph được tạo bởi adapter có kiểm chứng, gắn với snapshot, hash nội dung và vị trí dòng. AI không tự xác nhận một quan hệ.

AdapterTìm raMức tin cậy
Tree-sitter + frameworkRoute, màn hình, action, handlerSTATIC
SQLGlotQuery, bảng, cột, lineageSTATIC
SCIP readerDefinition, reference cross-fileSTATIC
PostgreSQL catalogMetadata bảng, cột
Git read-onlyFile hay thay đổi cùng nhauSUPPORT
Codex / LLMGiải thích, đề xuất gap≤ LIKELY
CONFIRMEDCó quan hệ kỹ thuật trực tiếp và bằng chứng rõ ràng.
Nhiều tín hiệu phù hợp, chưa đủ chứng minh trực tiếp.
POSSIBLEGiả thuyết cần người có chuyên môn kiểm tra.
UNKNOWNDữ liệu hoặc phạm vi lập chỉ mục chưa đủ để kết luận.
Quy tắc ngôn ngữ bắt buộc“Chưa tìm thấy bằng chứng ảnh hưởng trong phạm vi dữ liệu đã được lập chỉ mục.”
Một chế độ duy nhất

Phân tích chuyên sâu đầy đủ

Không còn Quick, Standard hay Deep để chọn. Bấm Phân tích và ChangeLens chạy toàn bộ quy trình trên một codebase gồm cả frontend, backend và các ngôn ngữ phát hiện được.

  • Màn hình, route, action, nút
  • FE client → API → controller
  • Service, repository, ORM, SQL
  • Bảng, cột, metadata DB
  • Test case, manual case, Gherkin
  • Phụ thuộc ngược, lịch sử Git
  • Gap và blind spot có lý do
Version và tiếp tục phân tích

Không mất gì.
Làm tiếp từ chỗ đã dừng.

Phân tích một codebase lớn có thể mất nhiều giờ. ChangeLens cho phép dừng, tiếp tục và quay lại bản cũ bất cứ lúc nào.

Chia version graph

Mỗi lần chạy lại tạo một version mới. Version cũ được giữ nguyên.

v7CurrentFull · 14/10 16:20
v6Lịch sửFull · 11/10 09:05
v5Lịch sửFull · 02/10 17:42
  • Chọn version ngay trên thanh công cụ Project Map
  • Banner “Đang xem version lịch sử” và nút Về version hiện tại
  • Hiển thị freshness: source đã đổi thì báo stale nhưng vẫn giữ map cũ
  • Publish lỗi thì map hiện tại không bị mất
  • Change request ghim đúng version lúc phân tích

Tạm dừng và tiếp tục

Tiến độ lưu theo từng phần việc, lấy từ hàng đợi thật của server.

  • Nút chính tự đổi thành Tiếp tục phân tích khi đã có checkpoint
  • Hết quota hoặc hết ngân sách một lượt thì tạm dừng rõ ràng, không tự thử lại
  • Tiếp tục đúng run cũ, chỉ chạy phần chưa xong hoặc đã lỗi
  • Chỉ công bố graph khi phủ đủ; kết quả dở dang không bị coi là hoàn chỉnh
  • Vẫn có thể bắt đầu phân tích mới riêng, lịch sử được giữ

Chế độ “chỉ cập nhật phần code thay đổi” (incremental) đang được phát triển. Hiện ChangeLens luôn chạy lại toàn bộ để bảo đảm đúng.

Bảo mật và quyền riêng tư

Source của khách
ở lại nơi nó thuộc về.

Thiết kế cho công ty outsourcing làm việc với mã nguồn và dữ liệu nhạy cảm của khách hàng.

Phân tích tại chỗSource được đọc trên máy dev hoặc Private Runner trong VPC của khách. Web không đọc file trực tiếp.
Chỉ đọc, không chạyAnalyzer không build, không chạy, không sửa source, không tải dependency lúc runtime.
Che secret trước khi gửi AISecret scanner và redaction. SQL literal bị loại khỏi chi tiết evidence.
Phân quyền theo projectMọi dữ liệu đi qua API có kiểm tra workspace và membership. Có audit log.
Credential không vào UIGitHub, DB và AI key lưu trong Windows Credential Manager, không đưa vào renderer.
Chính sách data-egressChọn theo từng project: chỉ metadata, hay kèm snippet đã redact. Electron bật sandbox và contextIsolation.
Hướng dẫn sử dụng

Bắt đầu trong
sáu bước.

Cài đặt và đăng nhập

Cài ChangeLens Desktop trên Windows, hoặc mở bản Web nếu bạn chỉ cần xem kết quả. Đăng nhập bằng tài khoản được mời vào workspace.

Mẹo: PL và QC có thể dùng Web. Dev nên dùng Desktop để mở thẳng file trên máy.

Tạo project và thêm source

Chọn thư mục source trên máy hoặc repository Git. Có thể thêm file SQL/DDL và kết nối PostgreSQL ở chế độ chỉ đọc.

  • Codebase là một folder gồm cả FE và BE, không cần tách hai nguồn
  • Thêm tùy chọn SQL/DB, Design, Test case, Documentation
  • Mời thành viên bằng email, gán Viewer, Editor hoặc PL

Chạy phân tích chuyên sâu

Chọn model Codex rồi bấm Phân tích. ChangeLens tạo snapshot, chạy adapter xác định, rồi AI duyệt từng phần việc. Theo dõi tiến độ theo số checkpoint đã hoàn tất.

  • Cần dừng? Đóng lại, tiến độ vẫn được lưu
  • Lần sau nút đổi thành Tiếp tục phân tích
  • Hoàn tất đủ mới tạo version graph mới
Mẹo: Chạy một lần làm baseline, cả team dùng chung. Chỉ chạy lại khi source đổi nhiều (Project Map báo stale).

Khám phá Project Map

Chọn một màn hình để xem các nút, form, API được gọi, controller, service, query và bảng dữ liệu. Bấm vào node để xem bằng chứng: file, dòng, hash.

  • Chọn một hoặc nhiều màn hình để làm sáng đường đi
  • Chọn version ở thanh công cụ để xem bản cũ
  • Node thiếu được đánh dấu gap kèm lý do

Phân tích change request

Dán nội dung change request. Xem Scope, bảng kế hoạch thay đổi để estimate và map ảnh hưởng ghim theo version graph hiện tại. Bấm vào node để đọc lý do, rủi ro và bằng chứng.

Mẹo: Sửa nội dung change request sẽ đánh dấu stale. Kết quả cũ vẫn xem được cho tới khi phân tích lại xong.

Hỏi project và xem lịch sử

Mở Hỏi project để đặt câu hỏi bằng ngôn ngữ tự nhiên. Câu trả lời kèm trích dẫn file và được lưu trong Q&A history.

Mẹo: Câu hỏi tiếp theo tự mang theo ngữ cảnh của các lượt gần nhất, như “nếu thêm cột discount_rate thì sao?”.
Kịch bản demo · 5 phút

Một thay đổi nhỏ.
Một bản đồ đầy đủ.

00:00Vấn đềKhách yêu cầu “cho phép tạo đơn hàng giá trị 0”. Trông như sửa một dòng.
00:45Nhập change requestChangeLens chỉ ra điểm mơ hồ: áp dụng cho mọi loại đơn hay chỉ đơn khuyến mãi?
01:30Bản đồ ảnh hưởngOrderService, POST /api/orders, ràng buộc CHECK trên orders.amount, màn hình xác nhận thanh toán.
03:00Bằng chứng và gapBấm vào node để thấy dòng code. Test cho trường hợp amount = 0 chưa tồn tại.
04:00Kế hoạch để estimateBảng Màn hình, Chức năng, Function, Trạng thái cho PL, kèm phạm vi regression cho QC.
ChangeLens: từ change request qua lens tới module, API, database và test

Change request đi qua ChangeLens thành bản đồ Module · API · Database · Test.

Đội ThinkX

Những thay đổi nhỏ
tạo nên hành trình lớn.

BV
Bá VươngThinkX
TT
Trọng TríThinkX
TH
Tề HoằngThinkX
AI Hackathon