From a164f32bfb5a5d80f1fddaa902b13060becc786a Mon Sep 17 00:00:00 2001 From: Nam Pham Dinh Thanh Date: Fri, 21 Aug 2026 21:25:20 +0900 Subject: [PATCH] =?UTF-8?q?docs(refactor):=20th=C3=AAm=20m=E1=BB=A5c=20inp?= =?UTF-8?q?ut/output=20cho=20t=E1=BB=ABng=20ng=C6=B0=E1=BB=9Di?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ba khối, mỗi người một khối: cột trái là thứ phải có trong tay mới làm được kèm nguồn, cột phải là thứ bắt buộc giao ra kèm người nhận. Nhãn 'có rồi' đánh dấu những gì mục chung đã giao xong hôm nay (SecretStore, ConfigRepository, fake, script CASAN). Kèm bảng output bắt buộc với cả ba mỗi PR, mỗi dòng có lệnh tự kiểm. Co-Authored-By: Claude Opus 5 (1M context) --- docs/refactor/GammaTeam_TaskSplit.html | 141 +++++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/docs/refactor/GammaTeam_TaskSplit.html b/docs/refactor/GammaTeam_TaskSplit.html index 628b674..513eb87 100644 --- a/docs/refactor/GammaTeam_TaskSplit.html +++ b/docs/refactor/GammaTeam_TaskSplit.html @@ -178,6 +178,36 @@ .must li:last-child { margin-bottom: 0; } .must b { color: var(--ink); } + /* input / output từng người */ + .io { display: grid; gap: 18px; } + .iorow { background: var(--surface); border: 1px solid var(--line); + border-left: 3px solid var(--c); border-radius: 3px; overflow: hidden; } + .iorow.n1 { --c: var(--lead); --w: var(--lead-wash); } + .iorow.n2 { --c: var(--m1); --w: var(--m1-wash); } + .iorow.n3 { --c: var(--m2); --w: var(--m2-wash); } + .iohead { padding: 14px 20px; background: var(--w); display: flex; + align-items: baseline; gap: 12px; flex-wrap: wrap; } + .iohead b { color: var(--c); font-size: 15px; } + .iohead span { color: var(--muted); font-size: 13px; } + .iogrid { display: grid; grid-template-columns: 1fr 1fr; } + @media (max-width: 860px) { .iogrid { grid-template-columns: 1fr; } } + .iogrid > div { padding: 16px 20px; } + .iogrid > div + div { border-left: 1px solid var(--line); } + @media (max-width: 860px) { + .iogrid > div + div { border-left: none; border-top: 1px solid var(--line); } + } + .iocap { font-size: 11px; letter-spacing: .13em; text-transform: uppercase; + color: var(--muted); font-weight: 700; margin: 0 0 10px; } + .iolist { list-style: none; margin: 0; padding: 0; font-size: 13.5px; } + .iolist li { padding: 5px 0; border-bottom: 1px dotted var(--line); } + .iolist li:last-child { border-bottom: none; } + .iolist code { font-size: 12.5px; } + .frm { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 6px; + border-radius: 2px; background: var(--surface-2); color: var(--muted); + margin-right: 6px; font-family: Consolas, ui-monospace, monospace; } + .frm.done { background: var(--m1-wash); color: var(--m1); } + .frm.risk { background: var(--m2-wash); color: var(--m2); } + footer { margin-top: 64px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); } @@ -488,6 +518,117 @@ + +

Mỗi người nhận gì, giao gì

+

+ Cột trái là thứ phải có trong tay mới làm được, kèm nguồn. Cột phải là thứ bắt + buộc giao ra, kèm người nhận. Nhãn có rồi nghĩa là + mục chung đã làm xong. +

+ +
+ +
+
N1 · Cấu hình, Bí mật & Vỏnhóm trưởng
+
+
+

Input — cần có

+
    +
  • mã cũconfig.py 616 dòng
  • +
  • mã cũui/settings_dialog.py 727 dòng
  • +
  • mã cũapp.py 1.352 dòng
  • +
  • tự chốtQuyết định api_key — trước 26/08
  • +
  • từ N2Chữ ký build_monitoring_tab() — trước 28/08
  • +
  • từ N3Chữ ký build_co4e_tab() — trước 28/08
  • +
+
+
+

Output — phải giao

+
    +
  • có rồiSecretStore · ConfigRepository + fake → cho N2 và N3
  • +
  • có rồiscripts/audit_security.py → cho CI
  • +
  • infrastructure/persistence/json/atomic_json_file.py
  • +
  • infrastructure/config/ — cài đặt thật + settings facade
  • +
  • infrastructure/secrets/keyring_adapter.py
  • +
  • presentation/settings/ — 4 widget
  • +
  • bootstrap.py + presentation/shell/ — 3 file
  • +
  • docs/architecture/security-policy.md
  • +
+
+
+
+ +
+
N2 · Giám sátthành viên 1
+
+
+

Input — cần có

+
    +
  • mã cũui/monitoring_tab.py 1.545 dòng
  • +
  • mã cũcore/usage_tracker.py 524 · sandbox_manager.py 335
  • +
  • mã cũcore/model_pricing.py 284 · agent_security.py 272 · audit_log.py 115
  • +
  • từ N1FakeConfigRepository — dùng được ngay
  • +
  • tự chốtGiữ nguyên 9 trường log, báo Duy và Hoa
  • +
+
+
+

Output — phải giao

+
    +
  • build_monitoring_tab() → cho N1, trước 28/08
  • +
  • FakeAuditLogger · FakeMonitoringQueryService → cho cả team
  • +
  • presentation/monitoring/ — 7 tab + shell
  • +
  • application/monitoring/monitoring_query_service.py
  • +
  • infrastructure/telemetry/audit_logger.py
  • +
  • infrastructure/sandbox/sandbox_capabilities.py
  • +
  • 0 circular import ở pricing ↔ usage và security ↔ alert
  • +
+
+
+
+ +
+
N3 · Co4E Studiothành viên 2
+
+
+

Input — cần có

+
    +
  • mã cũui/co4e_tab.py 2.089 dòng
  • +
  • mã cũui/co4e_canvas.py 791 · co4e_config_panel.py
  • +
  • mã cũcore/co4e_run_manager.py 331
  • +
  • có sẵncore/co4e.py — dataclass Workflow/Node/Edge đã có
  • +
  • từ N1FakeConfigRepository
  • +
  • từ Team HoaDTO ToolPolicyGateway — rủi ro liên team cao nhất, lấy trong hôm nay
  • +
+
+
+

Output — phải giao

+
    +
  • build_co4e_tab() → cho N1, trước 28/08
  • +
  • FakeCo4EWorkflowService → cho cả team
  • +
  • domain/workflows/ — DTO chốt ngày đầu
  • +
  • application/workflows/co4e_workflow_service.py
  • +
  • presentation/co4e/ — 5 phần
  • +
+
+
+
+ +
+ +

Output bắt buộc với cả ba, mỗi PR

+
+ + + + + + + + + +
Điều kiệnNgưỡngTự kiểm bằng
File mới sau khi tách≤ 400 dòngwc -l
domain/ và application/ import PySide60grep -r PySide6
Test hiện có96 xanhpytest tests -q
Credential lộ0python scripts/audit_security.py
Checker UI trong phạm vi mình dờiđã cập nhậtpython tools/check_<tên>.py
+
+

Lịch từng ngày

Ba hàng chạy độc lập. Hàng tô nền là lúc cả ba phải gặp nhau.