Mock Context schema v1.0
Pipeline ngữ cảnh có bằng chứng từ source dành cho AI

Tạo ngữ cảnh cho AI tạo mock và unit test

Trích xuất dữ liệu từ mã nguồn, TypeORM metadata và AST của các phụ thuộc nhằm tạo ngữ cảnh cho AI sinh unit test và mock data (JSON).

50 file Giới hạn thu thập
5 MiB Ngân sách source tối đa
5 ngôn ngữ TS, Rust, Py, C#, Dart
user.service.ts → generationContext
status: ready
// Xem trước Generation Context Package
{
  "schemaVersion": "mock-context.v1",
  "completeness": { "status": "ready", "blockingIssues": [] },
  "requestedArtifacts": [
    { "role": "test-data", "suggestedPath": "src/modules/user/__fixtures__/create_user.json" },
    { "role": "unit-test", "suggestedPath": "src/modules/user/user.service.spec.ts" }
  ],
  "artifactContracts": {
    "fixtureTarget": "CreateUserRequestDto",
    "requiredVariants": ["validCreateUserRequestDto", "invalidCreateUserRequestDtoEmployeeId"]
  },
  "testFramework": { "name": "jest", "runner": "ts-jest" }
}
Mô phỏng trạng thái backend:
Kiến trúc Backend

Luồng xử lý của Backend Mock Context Pipeline

Từ file đầu vào đến tạo prompt hoàn chỉnh, có bằng chứng từ source làm căn cứ.

Điều phối Prompt ở Frontend

Sao Chép Prompt Kèm Project File Tree

Source Context sở hữu Project File Tree. Frontend hợp nhất
{{PROJECT_FILE_TREE}}
{{GENERATION_CONTEXT_JSON}}
trước khi sao chép vào clipboard.

Project File Tree từ Source Context

chủ sở hữu: Source Context
fileTreeMarkdown (kết quả đã chuẩn hóa):
Điều kiện sao chép vào clipboard Đủ điều kiện
  • Trạng thái response là ready hoặc readyWithWarnings.
  • Project File Tree không được rỗng.
  • Placeholder {{PROJECT_FILE_TREE}} & {{GENERATION_CONTEXT_JSON}} được thay thế hoàn toàn.
Xem trước Prompt hoàn chỉnh

                        
Bộ máy Fixture ưu tiên High Recall

Quy ước tạo Fixture JSON và trường hợp biên

Thiết kế theo nguyên tắc High Recall: giữ lại các target dạng dữ liệu có khả năng hữu ích cho AI. Tự động sinh biến thể hợp lệ cơ sở, phân tách create/update và các trường hợp biên validation.

valid<X>

Fixture hợp lệ cơ sở

Tất cả field bắt buộc phải hợp lệ theo runtime validator, type annotation và constraint.

{ "employee_id": "1002", "name": "Minh Tran" }
update<X>

Biến thể dạng update

Nếu field `id` optional có trong model create/update, biến thể update yêu cầu `id` phải truthy.

{ "id": 841, "employee_id": "1002", "name": "Minh Tran" }
missingRequired

Biến thể thiếu field bắt buộc

Cố ý lược bỏ một hoặc nhiều field bắt buộc dựa trên bằng chứng từ source để kiểm thử lỗi validation.

{ "employee_id": "1002" } // thiếu name
invalid<X><Prop>

Vi phạm runtime ở property

Giữ tất cả field khác hợp lệ, chỉ để đúng một field vi phạm decorator (@IsNumberString, @IsEmail,...).

{ "employee_id": 1002, "name": "Minh" }

Xử lý Runtime Decorator (@IsNumberString so với kiểu tĩnh)

Mock Context giữ contract của runtime validation độc lập với kiểu TypeScript tĩnh. Khi field có decorator @IsNumberString() với type TS là number, fixture runtime sẽ tạo giá trị JSON dạng string ("1") để thỏa mãn validator DTO.

Làm giàu TypeORM Metadata

Trích xuất các dữ kiện từ TypeORM column: type, nullable, default, comment, insert, update. Các cờ này làm giàu generation context cho AI, không dùng để loại bỏ dữ liệu quá sớm.

Xử lý lỗi của AI downstream

Báo Cáo Thiếu Context (Missing Context Report)

Khi AI nhận prompt hoàn chỉnh và xác định context chưa đủ để sinh test, AI phải xuất Báo Cáo Thiếu Context với đường dẫn file chính xác tra từ Project File Tree.

Thử kịch bản thiếu Context

Quy tắc bắt buộc đối với AI downstream:

1. Phải tra cứu Project File Tree để lấy đường dẫn chính xác đang tồn tại.

2. Không được tự bịa đường dẫn file không tồn tại trong cây file.

3. Không hỏi chung chung ("Hãy cung cấp file test"); phải chỉ định rõ file cần cung cấp.

Kết quả Markdown: # Missing Context Report Kết quả AI có thể hành động

                        
Hỗ trợ đa ngôn ngữ và cơ chế bảo vệ

Ma trận hỗ trợ ngôn ngữ và giới hạn an toàn file

TypeScript/JS đóng vai trò chuẩn tham chiếu. Rust, Python, C#, Dart đạt đủ chức năng tương đương tối thiểu cho generation context.

Ngôn Ngữ Định Dạng File Mức tương đương Đường dẫn Unit Test gợi ý
TypeScript / TSX .ts, .tsx, .mts, .cts Triển khai tham chiếu src/a.spec.ts, src/a.spec.tsx
JavaScript / JSX .js, .jsx, .mjs, .cjs Tham chiếu động src/a.spec.js, src/a.spec.jsx
Rust .rs Đủ chức năng tương đương tests/user_test.rs
Python .py Đủ chức năng tương đương tests/test_user.py
C# .cs Đủ chức năng tương đương tests/UserTests.cs
Dart .dart Đủ chức năng tương đương test/user_test.dart
Số file tối đa mỗi lần thu thập
50 file
Tránh làm bùng nổ đồ thị dependency.
Dung lượng tối đa mỗi file
512 KiB
Bỏ qua các file source quá lớn.
Tổng ngân sách source
5 MiB
Tổng dung lượng source được thu thập.
Kiểm tra nhận diện binary
8 KiB đầu file
Ngăn đọc nhầm tài nguyên binary.