AI Hackathon nội bộ · Độ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 · Standard
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

Những câu giám khảo
thường hỏi đầu tiên.

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?
Có 3 chế độ: Quick lấy danh mục màn hình, action, API trực tiếp; Standard thêm symbol, SQL/ORM và test; Deep thêm phụ thuộc ngược và lịch sử Git. Source được lập chỉ mục một lần, lưu thành graph có version, nên các change request sau dùng lại kết quả thay vì quét lại. Cả team xem chung một bản phân tích, không ai phải chạy lại.
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.
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
Tóm tắt dễ hiểuBlast radius bằng ngôn ngữ nghiệp vụ, không cần biết tên class.
?
Đ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áo cáo để chia sẻChecklist rollout, rollback và rủi ro, lưu lại cho cả team.
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

Review và báo cáo

Người dùng xác nhận, loại bỏ, ghi chú. Sinh checklist regression, rollout, rollback.

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.”

Quick catalog

Màn hình, route, action, navigation và API gọi trực tiếp. Dùng khi cần ước lượng nhanh.

Standard + symbol, SQL

Thêm symbol, framework, SQL/ORM và test trực tiếp. Mỗi action được truy vết hoặc báo gap.

Deep + reverse, Git

Thêm phụ thuộc ngược, co-change từ lịch sử Git và ngữ cảnh kiểm chứ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
năm 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.

  • Phạm vi: Frontend, Backend hoặc All
  • Mời thành viên và gán quyền

Chạy phân tích Codebase

Chọn Quick, Standard hoặc Deep. ChangeLens tạo snapshot, chạy adapter và lưu graph có version. Lần sau chỉ cần cập nhật phần thay đổi.

Mẹo: Chạy Standard một lần làm baseline, cả team dùng chung.

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.

  • Lọc theo loại: Screen, API, DB, Test
  • Node xám là blind spot chưa hỗ trợ

Phân tích change request

Dán nội dung change request. Xem điểm mơ hồ, bản đồ ảnh hưởng, test còn thiếu. Xác nhận hoặc loại bỏ từng kết quả, rồi xuất báo cáo và checklist.

Mẹo: Hỏi tiếp trong ô Q&A, ví dụ “nếu thêm cột discount_rate thì sao?”, ngữ cảnh được giữ lại.
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:00Báo cáoXuất checklist regression, rollout, rollback cho PL, Dev và 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 nội bộ·Trình diễn tại User Conference 30/10