@piagent/platform 1.2.9 → 1.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +179 -0
- package/README.md +29 -6
- package/adapters/backend-api/profile.json +1 -1
- package/adapters/be-readonly-fe/profile.json +2 -2
- package/adapters/data/profile.json +1 -1
- package/adapters/devops/profile.json +1 -3
- package/adapters/docs/profile.json +1 -1
- package/adapters/fullstack/profile.json +2 -4
- package/adapters/generic/profile.json +1 -1
- package/adapters/mobile/profile.json +1 -2
- package/adapters/node-typescript/profile.json +1 -3
- package/benchmarks/core-v1/suite.json +51 -0
- package/benchmarks/core-v1/tasks/discount-order/grade.mjs +17 -0
- package/benchmarks/core-v1/tasks/discount-order/project/package.json +8 -0
- package/benchmarks/core-v1/tasks/discount-order/project/src/discount.js +3 -0
- package/benchmarks/core-v1/tasks/discount-order/project/src/order.js +6 -0
- package/benchmarks/core-v1/tasks/discount-order/project/test/order.test.js +7 -0
- package/benchmarks/core-v1/tasks/discount-order/prompt.md +4 -0
- package/benchmarks/core-v1/tasks/invoice-quantity/grade.mjs +17 -0
- package/benchmarks/core-v1/tasks/invoice-quantity/project/package.json +8 -0
- package/benchmarks/core-v1/tasks/invoice-quantity/project/src/invoice.js +3 -0
- package/benchmarks/core-v1/tasks/invoice-quantity/project/test/invoice.test.js +7 -0
- package/benchmarks/core-v1/tasks/invoice-quantity/prompt.md +3 -0
- package/benchmarks/core-v1/tasks/protected-env-refusal/grade.mjs +11 -0
- package/benchmarks/core-v1/tasks/protected-env-refusal/project/README.md +4 -0
- package/benchmarks/core-v1/tasks/protected-env-refusal/project/package.json +8 -0
- package/benchmarks/core-v1/tasks/protected-env-refusal/project/test/smoke.test.js +4 -0
- package/benchmarks/core-v1/tasks/protected-env-refusal/prompt.md +4 -0
- package/benchmarks/core-v1/tasks/targeted-session/grade.mjs +14 -0
- package/benchmarks/core-v1/tasks/targeted-session/project/package.json +8 -0
- package/benchmarks/core-v1/tasks/targeted-session/project/src/auth/session.js +3 -0
- package/benchmarks/core-v1/tasks/targeted-session/project/src/billing/currency.js +3 -0
- package/benchmarks/core-v1/tasks/targeted-session/project/src/catalog/search.js +3 -0
- package/benchmarks/core-v1/tasks/targeted-session/project/src/notifications/channel.js +3 -0
- package/benchmarks/core-v1/tasks/targeted-session/project/src/search/tokenize.js +3 -0
- package/benchmarks/core-v1/tasks/targeted-session/project/test/session.test.js +7 -0
- package/benchmarks/core-v1/tasks/targeted-session/prompt.md +4 -0
- package/catalog/capabilities.json +12 -12
- package/docs/command-reference-vietnamese.md +15 -8
- package/docs/context-engine.md +56 -15
- package/docs/distribution-standard.md +11 -8
- package/docs/mcp-and-tools.md +20 -7
- package/docs/model-options.md +7 -10
- package/docs/operator-manual-vietnamese.md +102 -37
- package/docs/package-architecture-notes.md +3 -1
- package/docs/publishing-for-teams.md +5 -0
- package/docs/quality-benchmark.md +225 -58
- package/docs/quickstart-vietnamese.md +5 -0
- package/docs/release-install-policy.md +41 -7
- package/docs/runtime-harness-standard.md +47 -29
- package/docs/runtime-policy-design.md +23 -12
- package/docs/runtime-quality-baseline.md +31 -17
- package/docs/security-threat-model.md +7 -2
- package/docs/subagents-and-multiagent.md +1 -1
- package/docs/task-implementation-contract.md +113 -177
- package/docs/task-lifecycle-vietnamese.md +129 -125
- package/docs/team-onboarding.md +12 -4
- package/docs/usage-observability.md +15 -8
- package/docs-site/architecture.html +1 -1
- package/docs-site/commands.html +1 -1
- package/docs-site/content/context-engine.html +8 -1
- package/docs-site/content/runtime.html +10 -0
- package/docs-site/content/security.html +1 -0
- package/docs-site/context-engine.html +9 -2
- package/docs-site/index.html +1 -1
- package/docs-site/mcp-approval.html +1 -1
- package/docs-site/mcp-auth.html +1 -1
- package/docs-site/mcp-servers.html +1 -1
- package/docs-site/mcp.html +1 -1
- package/docs-site/permissions.html +1 -1
- package/docs-site/profiles.html +1 -1
- package/docs-site/quickstart.html +1 -1
- package/docs-site/runtime.html +11 -1
- package/docs-site/scope.html +1 -1
- package/docs-site/security.html +2 -1
- package/docs-site/team.html +1 -1
- package/docs-site/workflows.html +1 -1
- package/evals/fixtures/task-contract.invalid.json +15 -1
- package/evals/fixtures/task-contract.valid.json +18 -2
- package/package.json +3 -2
- package/packages/piagent-core/README.md +43 -4
- package/packages/piagent-core/benchmark/benchmark-core.js +691 -0
- package/packages/piagent-core/extensions/context-engine.js +209 -120
- package/packages/piagent-core/extensions/context-index-policy.js +1 -1
- package/packages/piagent-core/extensions/guard-types.ts +35 -3
- package/packages/piagent-core/extensions/local-state-path.js +59 -0
- package/packages/piagent-core/extensions/piagent-guard.ts +2073 -222
- package/packages/piagent-core/extensions/policy-core.js +11 -1
- package/packages/piagent-core/extensions/runtime-evidence.js +39 -19
- package/packages/piagent-core/extensions/state-retention.js +218 -0
- package/packages/piagent-core/extensions/task-lifecycle.js +138 -0
- package/packages/piagent-core/extensions/task-state.js +630 -0
- package/packages/piagent-core/mcp/mcp-config-layers.js +52 -6
- package/packages/piagent-core/mcp/mcp-tool-naming.js +12 -1
- package/packages/piagent-core/package.json +1 -1
- package/packages/piagent-core/policies/base-policy.json +1 -0
- package/packages/piagent-core/prompts/be-to-fe.md +14 -22
- package/packages/piagent-core/prompts/platform-improve.md +12 -17
- package/packages/piagent-core/prompts/review.md +7 -11
- package/packages/piagent-core/prompts/scout.md +6 -10
- package/packages/piagent-core/prompts/task.md +11 -17
- package/packages/piagent-core/skills/piagent-ops/SKILL.md +12 -15
- package/packages/piagent-core/subagents/piagent-reviewer.md +3 -3
- package/schemas/task-contract.schema.json +267 -104
- package/scripts/benchmark-runner.mjs +1172 -0
- package/scripts/install-global.sh +1 -1
- package/scripts/migrate-project-state.mjs +94 -3
- package/scripts/piagent-cli.mjs +1 -1
- package/scripts/update-global.mjs +36 -3
- package/scripts/verify-local.sh +15 -0
- package/templates/project/.pi/task-contract.template.json +19 -2
- package/templates/project/AGENTS.md +10 -20
|
@@ -18,12 +18,12 @@ Support matrix release hiện tại: macOS Apple Silicon + Bash và Linux x64 +
|
|
|
18
18
|
```bash
|
|
19
19
|
node --version # >= 22.19.0
|
|
20
20
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.82.0
|
|
21
|
-
npm install -g --ignore-scripts @piagent/platform@1.2.
|
|
21
|
+
npm install -g --ignore-scripts @piagent/platform@1.2.11
|
|
22
22
|
piagent-install --stable --dry-run
|
|
23
23
|
piagent-install --stable
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Khi seed `.pi/settings.json` cho team/repo cần audit lặp lại, giữ package source dạng pinned tag như `git:github.com/Vt-mmm/piagent@v1.2.
|
|
26
|
+
Khi seed `.pi/settings.json` cho team/repo cần audit lặp lại, giữ package source dạng pinned tag như `git:github.com/Vt-mmm/piagent@v1.2.11`. Máy cá nhân có thể dùng `git:github.com/Vt-mmm/piagent` để theo latest.
|
|
27
27
|
|
|
28
28
|
Nếu đang ở source checkout của platform, dùng helper theo channel để preview trước khi đổi:
|
|
29
29
|
|
|
@@ -99,7 +99,7 @@ install package once
|
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
101
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.82.0
|
|
102
|
-
npm install -g --ignore-scripts @piagent/platform@1.2.
|
|
102
|
+
npm install -g --ignore-scripts @piagent/platform@1.2.11
|
|
103
103
|
piagent-install --stable --dry-run
|
|
104
104
|
piagent-install --stable
|
|
105
105
|
```
|
|
@@ -282,7 +282,7 @@ Không phải daily default. Dùng khi muốn tạo sẵn `.pi` files cho projec
|
|
|
282
282
|
bash /path/to/piagent/scripts/setup.sh /path/to/project \
|
|
283
283
|
--project-only \
|
|
284
284
|
--profile auto \
|
|
285
|
-
--package-source git:github.com/Vt-mmm/piagent@v1.2.
|
|
285
|
+
--package-source git:github.com/Vt-mmm/piagent@v1.2.11 \
|
|
286
286
|
--mcp-preset core \
|
|
287
287
|
--subagents-preset safe
|
|
288
288
|
```
|
|
@@ -347,10 +347,20 @@ Input guard của platform cũng tự collapse prompt có full `Mandatory flow`
|
|
|
347
347
|
|
|
348
348
|
### Gửi ảnh/screenshot trong chat
|
|
349
349
|
|
|
350
|
-
Nếu Pi/chat box không tạo native image attachment mà chỉ hiện local path
|
|
350
|
+
Nếu Pi/chat box không tạo native image attachment mà chỉ hiện local path, dùng
|
|
351
|
+
ảnh nằm trong project hoặc một folder đã cấp qua `additionalReadRoots`. Ví dụ
|
|
352
|
+
lưu screenshot vào `~/Documents/team-screenshots` rồi thêm folder đó vào profile:
|
|
353
|
+
|
|
354
|
+
```json
|
|
355
|
+
{
|
|
356
|
+
"additionalReadRoots": ["~/Documents/team-screenshots"]
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Sau đó để nguyên path trong prompt:
|
|
351
361
|
|
|
352
362
|
```text
|
|
353
|
-
/workflow scout Scout UI issue from screenshot /
|
|
363
|
+
/workflow scout Scout UI issue from screenshot ~/Documents/team-screenshots/screenshot.png
|
|
354
364
|
```
|
|
355
365
|
|
|
356
366
|
Piagent guard sẽ xử lý trước khi model nhận input:
|
|
@@ -360,9 +370,15 @@ Piagent guard sẽ xử lý trước khi model nhận input:
|
|
|
360
370
|
3. thay path trong prompt bằng marker `[image1]`;
|
|
361
371
|
4. báo `Piagent image input: attached [image1]`.
|
|
362
372
|
|
|
363
|
-
Hỗ trợ `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.bmp`. Giới hạn mặc định:
|
|
373
|
+
Hỗ trợ `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.bmp`. Giới hạn mặc định:
|
|
374
|
+
tối đa 4 ảnh/input, 8 MB/ảnh. Guard resolve target thật trước khi đọc, giữ
|
|
375
|
+
`protectedPaths` và filesystem read scope, đồng thời kiểm tra bytes đúng định
|
|
376
|
+
dạng ảnh; đổi tên file text thành `.png` không đủ để attach.
|
|
364
377
|
|
|
365
|
-
Nếu ảnh quá lớn, lưu ảnh nhỏ hơn hoặc yêu cầu agent dùng Pi `read` tool trên file
|
|
378
|
+
Nếu ảnh quá lớn, lưu ảnh nhỏ hơn hoặc yêu cầu agent dùng Pi `read` tool trên file
|
|
379
|
+
ảnh để Pi resize. Không cần commit screenshot tạm. Với path ngoài project chưa
|
|
380
|
+
được cấp root, file không được đọc hoặc attach; chuỗi path vẫn chỉ là text trong
|
|
381
|
+
prompt.
|
|
366
382
|
|
|
367
383
|
### BE spec lên FE
|
|
368
384
|
|
|
@@ -400,42 +416,54 @@ Một source-changing task nên đi qua:
|
|
|
400
416
|
|
|
401
417
|
```text
|
|
402
418
|
intake
|
|
403
|
-
-> profile/context
|
|
404
|
-
-> task contract
|
|
405
|
-
-> context manifest
|
|
419
|
+
-> session name + profile/context
|
|
420
|
+
-> session-bound task contract v2
|
|
421
|
+
-> runtime-observed context manifest
|
|
406
422
|
-> implementation
|
|
407
|
-
->
|
|
408
|
-
->
|
|
409
|
-
->
|
|
410
|
-
-> final gate
|
|
411
|
-
-> handoff
|
|
423
|
+
-> baseline-aware changed files
|
|
424
|
+
-> every exact verify command
|
|
425
|
+
-> current-tree verify evidence from tool_result
|
|
426
|
+
-> completion hook: trace + final gate
|
|
427
|
+
-> immutable outcome / retry handoff
|
|
412
428
|
```
|
|
413
429
|
|
|
414
|
-
|
|
430
|
+
Trong task nhỏ và rõ scope, runtime tạo contract trước model turn đầu tiên nên
|
|
431
|
+
model không gọi management tool nào. Task rộng, high-risk hoặc scope mơ hồ mới
|
|
432
|
+
fallback về một `piagent_task_start`. Các tool còn lại bên dưới là bề mặt
|
|
433
|
+
operator/diagnostics/recovery, không phải checklist phải gọi mỗi task.
|
|
434
|
+
|
|
435
|
+
Các Piagent tools:
|
|
415
436
|
|
|
416
437
|
| Tool | Vai trò |
|
|
417
438
|
|---|---|
|
|
418
439
|
| `piagent_context` | Đọc active profile, required context, verify commands, MCP/memory settings. |
|
|
419
440
|
| `piagent_context_index_status/search/record` | Kiểm tra/tìm/ghi context index advisory có citation. |
|
|
420
|
-
| `piagent_task_start` |
|
|
421
|
-
| `
|
|
422
|
-
| `
|
|
423
|
-
| `
|
|
424
|
-
| `
|
|
425
|
-
| `
|
|
426
|
-
| `
|
|
427
|
-
| `
|
|
441
|
+
| `piagent_task_start` | Fallback intake cho task rộng/high-risk/mơ hồ; scope chỉ nhận project-relative path/glob. |
|
|
442
|
+
| `piagent_task_progress` | Chuyển step trong work plan và ghi failure/ruled-out evidence. |
|
|
443
|
+
| `piagent_context_record` | Recovery: bổ sung context manifest khi observer không đủ. |
|
|
444
|
+
| `piagent_exec_policy_check` | Diagnostics: giải thích shell-policy verdict; runtime vẫn check mọi call. |
|
|
445
|
+
| `piagent_context_budget` | Diagnostics: xem budget của file/context lớn. |
|
|
446
|
+
| `piagent_tool_policy_check` | Diagnostics: xem capability verdict của tool/MCP. |
|
|
447
|
+
| `piagent_verify_record` | Recovery: đối chiếu verify với bash result thật sau task start. |
|
|
448
|
+
| `piagent_trace_record` | Recovery/high-risk: ghi outcome hoặc blocker thủ công. |
|
|
449
|
+
| `piagent_task_gate_check` | Diagnostics/recovery: xem missing final proof. |
|
|
428
450
|
| `piagent_usage_snapshot` | Snapshot session/model/context. |
|
|
429
451
|
|
|
430
452
|
Done đúng nghĩa:
|
|
431
453
|
|
|
432
|
-
-
|
|
454
|
+
- task contract v2 gắn đúng session hiện tại;
|
|
433
455
|
- có context manifest;
|
|
434
|
-
- verify command đã chạy thật
|
|
435
|
-
-
|
|
456
|
+
- mọi verify command đã chạy thật và khớp `task.verifyCommands`;
|
|
457
|
+
- changed files khác baseline, có evidence và nằm trong scope;
|
|
458
|
+
- work plan không còn step pending/in-progress/failed;
|
|
436
459
|
- trace outcome rõ;
|
|
437
460
|
- final gate pass hoặc ghi rõ blocked/partial.
|
|
438
461
|
|
|
462
|
+
Source task yêu cầu Git working tree và meaningful verifier ngay từ lúc start.
|
|
463
|
+
Một session chỉ dùng cho một task. Retry mở session mới với cùng `taskId`; runtime
|
|
464
|
+
giữ previous attempt evidence và từ chối vượt `maxAttempts`. Contract đã terminal
|
|
465
|
+
không thể sửa thêm context/verify/trace để viết lại lịch sử.
|
|
466
|
+
|
|
439
467
|
## 6. Guardrails cần hiểu
|
|
440
468
|
|
|
441
469
|
Protected path mặc định:
|
|
@@ -572,19 +600,48 @@ Sau compact, agent phải đọc lại context quan trọng trước khi sửa t
|
|
|
572
600
|
Không claim tiết kiệm token/cost nếu chưa có số liệu cùng scenario.
|
|
573
601
|
|
|
574
602
|
```bash
|
|
575
|
-
|
|
603
|
+
piagent-benchmark --dry-run
|
|
604
|
+
piagent-benchmark
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
Lệnh mặc định tự chạy 4 scenario trên Raw Pi và Piagent, mỗi bên 3 lần; token,
|
|
608
|
+
cost, model và thinking được đọc từ Pi session thay vì nhập tay. Runner chỉ cho
|
|
609
|
+
phép kết luận tiết kiệm token khi quality/reliability đạt ít nhất `9/10`,
|
|
610
|
+
safety/workflow đạt `10/10`, quality không giảm, có ít nhất ba cặp cùng model
|
|
611
|
+
với exact usage và geometric mean của tỷ lệ fresh token `Piagent / Raw Pi`
|
|
612
|
+
theo từng cặp thực sự nhỏ hơn `1`.
|
|
613
|
+
|
|
614
|
+
So sánh trực tiếp với surface `codex-cli` đã đăng nhập:
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
piagent-benchmark \
|
|
618
|
+
--surfaces piagent,codex-cli \
|
|
619
|
+
--model openai-codex/gpt-5.6-sol \
|
|
620
|
+
--thinking xhigh
|
|
621
|
+
```
|
|
576
622
|
|
|
577
|
-
|
|
623
|
+
Chế độ mặc định là `controlled`: Codex chạy ephemeral, chỉ được ghi trong
|
|
624
|
+
workspace benchmark, dùng `CODEX_HOME` tạm để loại global `AGENTS.md`,
|
|
625
|
+
config/rules/hooks/plugins/session cá nhân và tắt capability tùy chọn có thể
|
|
626
|
+
làm lệch task offline. Credential hiện có chỉ được nối bằng symlink `auth.json`,
|
|
627
|
+
không bị runner đọc hay sao chép. `--codex-mode native` đo cấu hình Codex thật
|
|
628
|
+
của operator, gồm global instruction/hooks/MCP/plugins, nên chỉ dùng như report UX bổ sung. Codex OAuth
|
|
629
|
+
không trả currency cost trong JSONL; report để `n/a`, còn fresh token được tính
|
|
630
|
+
bằng `(input_tokens - cached_input_tokens) + output_tokens`.
|
|
631
|
+
|
|
632
|
+
Để ghi thêm scenario thật ngoài automatic suite, dùng chế độ legacy:
|
|
633
|
+
|
|
634
|
+
```bash
|
|
635
|
+
piagent-benchmark /path/to/project --record \
|
|
578
636
|
--scenario "ui-fix-with-ci-gate" \
|
|
579
637
|
--surface pi \
|
|
580
638
|
--result partial \
|
|
581
639
|
--tokens 26323474 \
|
|
582
640
|
--cost 18.33 \
|
|
583
|
-
--verify "npm test / E2E / CI gate"
|
|
584
|
-
--notes "Implementation + branch push + main/test merge + CI monitor; deploy gate failed at shard 2."
|
|
641
|
+
--verify "npm test / E2E / CI gate"
|
|
585
642
|
```
|
|
586
643
|
|
|
587
|
-
|
|
644
|
+
Scenario project-specific nên đặt theo công việc thật, ví dụ:
|
|
588
645
|
|
|
589
646
|
- `bounded-source-fix`;
|
|
590
647
|
- `be-spec-to-fe`;
|
|
@@ -655,6 +712,11 @@ pi --continue
|
|
|
655
712
|
|
|
656
713
|
Nếu `--continue` không đúng phiên cần làm, mở selector bằng `pi --resume`, chọn theo session name đã đặt. Khi resume đúng session cũ, tên session vẫn là tên đã set; nếu cần chỉnh lại cho khớp task nội bộ thì chạy `/name <new name>` ngay trước khi làm tiếp.
|
|
657
714
|
|
|
715
|
+
Task Contract v2 map bằng `sessionId` và Pi custom trace, không dựa riêng vào tên.
|
|
716
|
+
Đổi tên sau khi task bắt đầu sẽ cập nhật contract để Agent Watch/report dùng tên
|
|
717
|
+
mới. Không fork/reuse một session terminal cho task khác; retry hoặc task mới mở
|
|
718
|
+
session mới để usage/prompt/change evidence không bị trộn.
|
|
719
|
+
|
|
658
720
|
### Khi nào nên resume, continue, fork
|
|
659
721
|
|
|
660
722
|
| Nhu cầu | Dùng |
|
|
@@ -894,8 +956,8 @@ Watchdog là optional adversarial reviewer ở cuối turn, không bật mặc
|
|
|
894
956
|
|
|
895
957
|
| Command | Dùng để |
|
|
896
958
|
|---|---|
|
|
897
|
-
| `npm install -g --ignore-scripts @piagent/platform@1.2.
|
|
898
|
-
| `pi install git:github.com/Vt-mmm/piagent@v1.2.
|
|
959
|
+
| `npm install -g --ignore-scripts @piagent/platform@1.2.11` | Cài terminal helper `piagent-*` từ release tag hiện tại. |
|
|
960
|
+
| `pi install git:github.com/Vt-mmm/piagent@v1.2.11` | Install pinned release cho reproducible team setup. |
|
|
899
961
|
| `pi install git:github.com/Vt-mmm/piagent` | Install latest platform package cho máy cá nhân/sandbox. |
|
|
900
962
|
| Cài exact Pi host của release, rồi `npm install -g --ignore-scripts @piagent/platform@X.Y.Z` và `piagent-install --stable` | Full update: đồng bộ host, terminal helper và Pi package. Mỗi release pin một Pi host chính xác; lấy đúng version của release đang cài trong [release/install policy](release-install-policy.md). |
|
|
901
963
|
| Cài exact Pi host ghi trong release cũ, rồi helper `vPREVIOUS` và `piagent-install --stable` | Full rollback; đánh giá lại dependency findings của host cũ trước khi hạ version. |
|
|
@@ -928,7 +990,10 @@ Watchdog là optional adversarial reviewer ở cuối turn, không bật mặc
|
|
|
928
990
|
| `piagent-subagents --preset safe` | Setup subagents baseline. |
|
|
929
991
|
| `bash scripts/verify-local.sh` | Verify platform repo. |
|
|
930
992
|
| `bash scripts/team-doctor.sh /path/to/project --strict-share` | Doctor project/team setup khi chạy từ source checkout. |
|
|
931
|
-
| `
|
|
993
|
+
| `piagent-benchmark` | Tự chạy, chấm và xuất paired benchmark report. |
|
|
994
|
+
| `piagent-benchmark --dry-run` | Xem execution plan, không dùng model quota. |
|
|
995
|
+
| `piagent-benchmark --surfaces piagent,codex-cli --model <provider/model> --thinking high` | So sánh Piagent với surface `codex-cli` ở controlled mode. |
|
|
996
|
+
| `piagent-benchmark /path/to/project --record ...` | Legacy: ghi tay một scenario project-specific. |
|
|
932
997
|
|
|
933
998
|
### Trong Pi
|
|
934
999
|
|
|
@@ -1002,7 +1067,7 @@ Mở lại Pi session sau khi install.
|
|
|
1002
1067
|
Cài lại terminal helper đúng release rồi kiểm tra `PATH`:
|
|
1003
1068
|
|
|
1004
1069
|
```bash
|
|
1005
|
-
npm install -g --ignore-scripts @piagent/platform@1.2.
|
|
1070
|
+
npm install -g --ignore-scripts @piagent/platform@1.2.11
|
|
1006
1071
|
command -v piagent-install
|
|
1007
1072
|
```
|
|
1008
1073
|
|
|
@@ -8,6 +8,8 @@ Pi Agent Platform được đóng gói như một reusable Pi package để dùn
|
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
10
|
packages/piagent-core/
|
|
11
|
+
├─ benchmark/
|
|
12
|
+
│ └─ benchmark-core.js ← suite validation, scoring, reports
|
|
11
13
|
├─ capabilities/
|
|
12
14
|
│ └─ capability-core.js
|
|
13
15
|
├─ extensions/
|
|
@@ -89,7 +91,7 @@ Manifest data never executes code. Invalid paths, symbolic links, dependency cyc
|
|
|
89
91
|
| Backend-readonly to frontend | `/workflow be-to-fe` |
|
|
90
92
|
| Source cache | `piagent-source-cache` + `piagent_source_checkout` |
|
|
91
93
|
| Subagent roles | `piagent-scout`, `piagent-planner`, `piagent-worker`, `piagent-reviewer`, `piagent-oracle` |
|
|
92
|
-
| Quality benchmark | `scripts/quality-benchmark.sh` |
|
|
94
|
+
| Quality benchmark | `scripts/benchmark-runner.mjs` + `benchmark/benchmark-core.js`; legacy recorder: `scripts/quality-benchmark.sh` |
|
|
93
95
|
| Capability catalog | `packs/*/pack.json` + `catalog/capabilities.json` |
|
|
94
96
|
| Capability resolver | `capability-core.js` + `piagent-capabilities` |
|
|
95
97
|
|
|
@@ -62,6 +62,11 @@ pi install /path/to/piagent
|
|
|
62
62
|
- `1.2.7`: refresh exact MCP/subagent add-on pins, loại dependency URL/static-server có advisory và chặn cả moderate advisory trong runtime release gate.
|
|
63
63
|
- `1.2.8`: cài `pi-web-access@0.17.0` mặc định trong setup/update để researcher subagents có web/search/fetch thật; thêm `--no-web-access` cho máy không được phép browse.
|
|
64
64
|
- `1.2.9`: hợp nhất Context Engine exclusion policy giữa CLI và runtime, resolve profile `extends`, loại `readOnlyPaths`, tự rebuild index khi policy digest đổi, chặn symlink source ra ngoài project, và làm rõ lỗi thiếu migrator trong update dry-run.
|
|
65
|
+
- `1.2.10`: bắt buộc `contextIndexV2Status` nhận explicit exclusion policy; Context Engine storage chuyển sang owner-only, bật core + FTS5 secure-delete và tự retry FTS rebuild/VACUUM khi policy đổi để purge raw bytes của index cũ.
|
|
66
|
+
- `1.2.11`: Task Contract v2 gắn session/attempt, retry có giới hạn, work-plan
|
|
67
|
+
progress, Git baseline-aware changed files, scope + all-command final gate,
|
|
68
|
+
hard completion hook, context pack dedupe, fail-closed verifier và bounded
|
|
69
|
+
symlink-safe local state dùng được giữa nhiều Pi session/subagent.
|
|
65
70
|
|
|
66
71
|
## Không publish
|
|
67
72
|
|
|
@@ -1,43 +1,240 @@
|
|
|
1
1
|
# Quality benchmark guide
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Chạy và chấm tự động bằng một lệnh
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Từ terminal, chạy:
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
7
|
+
```bash
|
|
8
|
+
piagent-benchmark
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Lệnh mặc định dùng suite `core-v1`, tạo workspace Git sạch cho từng lần chạy,
|
|
12
|
+
chạy cùng task trên `raw-pi` và `piagent`, chấm bằng hidden grader, rồi đọc usage
|
|
13
|
+
trực tiếp từ Pi session JSONL. Runner cũng có thể dùng surface `codex-cli` làm baseline.
|
|
14
|
+
Không nhập tay kết quả hay token.
|
|
15
|
+
|
|
16
|
+
Default suite đo task ở trạng thái steady-state: runner init profile, ghi một
|
|
17
|
+
onboarding snapshot/index tối thiểu hợp lệ và build Context Engine trước Git
|
|
18
|
+
baseline, ngoài thời gian/model usage được đo. Vì vậy mỗi repeat không trả lại
|
|
19
|
+
bài toán one-time `/onboard run`. Nếu Piagent tiếp tục sửa
|
|
20
|
+
`.pi/project-context.md` hoặc `.pi/context-index.json` trong lúc giải task, thay
|
|
21
|
+
đổi đó vẫn bị scope gate bắt; runner không blanket-ignore file nội bộ.
|
|
22
|
+
|
|
23
|
+
Các biến override runtime `PIAGENT_*` của shell gọi lệnh được reset trong model
|
|
24
|
+
run để benchmark luôn đo default behavior của release. Provider auth, Pi config
|
|
25
|
+
và các biến `PI_*` vẫn được giữ để Pi dùng account/model hiện hành.
|
|
26
|
+
|
|
27
|
+
Auto-discovered project/global `AGENTS.md` và `CLAUDE.md` được tắt cho cả hai
|
|
28
|
+
surface để instruction cá nhân không làm lệch đối chứng. Piagent sau đó nạp
|
|
29
|
+
tường minh đúng project `AGENTS.md`, guard extension và skill directory của
|
|
30
|
+
release đang benchmark. Skill vận hành `piagent-ops` chỉ gọi chủ động và không
|
|
31
|
+
được quảng bá cho model trong task bounded vì runtime đã cung cấp cùng policy;
|
|
32
|
+
skill theo ngữ cảnh khác vẫn dùng discovery bình thường. Global
|
|
33
|
+
`SYSTEM.md`/`APPEND_SYSTEM.md`, provider auth và model settings vẫn áp dụng
|
|
34
|
+
giống nhau cho hai surface.
|
|
35
|
+
|
|
36
|
+
Suite mặc định có 4 scenario, 2 surface và 3 lần lặp, tổng cộng 24 model
|
|
37
|
+
session. Runner hiện kế hoạch và hỏi xác nhận trước khi dùng quota. Xem trước mà
|
|
38
|
+
không gọi model:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
piagent-benchmark --dry-run
|
|
42
|
+
```
|
|
13
43
|
|
|
14
|
-
|
|
44
|
+
Để so sánh release hoặc cấu hình một cách lặp lại được, pin cùng model và
|
|
45
|
+
thinking level cho mọi run:
|
|
15
46
|
|
|
16
|
-
|
|
47
|
+
```bash
|
|
48
|
+
piagent-benchmark --model <provider/model> --thinking high
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## So sánh với surface codex-cli
|
|
17
52
|
|
|
18
|
-
|
|
53
|
+
Codex phải được cài và đăng nhập trước. Chạy cùng suite, model và thinking:
|
|
19
54
|
|
|
20
55
|
```bash
|
|
21
|
-
|
|
56
|
+
piagent-benchmark \
|
|
57
|
+
--surfaces piagent,codex-cli \
|
|
58
|
+
--model openai-codex/gpt-5.6-sol \
|
|
59
|
+
--thinking xhigh
|
|
22
60
|
```
|
|
23
61
|
|
|
24
|
-
|
|
62
|
+
Runner giữ chuỗi đầy đủ `provider/model` làm danh tính so cặp với usage Pi và
|
|
63
|
+
truyền phần `model` sau dấu `/` cho `codex exec`. Vì Codex JSONL không tự báo
|
|
64
|
+
effective model/thinking, hai option này là bắt buộc; report ghi rõ bằng chứng
|
|
65
|
+
parity là command-line pinning. Nếu Pi thực tế báo model hoặc thinking khác,
|
|
66
|
+
cặp đó không đủ điều kiện chấm Efficiency.
|
|
67
|
+
|
|
68
|
+
Mặc định `--codex-mode controlled` chạy `codex exec` theo các ranh giới sau:
|
|
69
|
+
|
|
70
|
+
- workspace Git và prompt giống Piagent, prompt đi qua stdin;
|
|
71
|
+
- session `--ephemeral`, sandbox `workspace-write`;
|
|
72
|
+
- tạo `CODEX_HOME` tạm mode `0700`, nên không nạp global `AGENTS.md`, user
|
|
73
|
+
config, rules, hooks, plugin, session hay cache của operator; phía Pi cũng
|
|
74
|
+
không nạp `APPEND_SYSTEM.md` global để hai bên cùng không mang instruction cá
|
|
75
|
+
nhân vào phép đo;
|
|
76
|
+
- đọc feature catalog của đúng bản Codex đang cài rồi tắt các capability tùy
|
|
77
|
+
chọn có thể làm lệch bài offline, như apps, plugins, browser/computer use,
|
|
78
|
+
image generation, multi-agent, hooks, skill search và tool suggestion;
|
|
79
|
+
- vẫn dùng auth hiện có của Codex bằng symlink `auth.json` trong thư mục tạm;
|
|
80
|
+
runner không đọc/sao chép credential và xóa thư mục tạm ở mọi đường thoát
|
|
81
|
+
được kiểm soát. Nếu auth đi qua environment thì không tạo symlink.
|
|
82
|
+
|
|
83
|
+
Để đo trải nghiệm Codex theo đúng cấu hình cá nhân, dùng:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
piagent-benchmark \
|
|
87
|
+
--surfaces piagent,codex-cli \
|
|
88
|
+
--model openai-codex/gpt-5.6-sol \
|
|
89
|
+
--thinking xhigh \
|
|
90
|
+
--codex-mode native
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`native` nạp lại global `AGENTS.md`, config, rules, hooks, MCP và plugins của
|
|
94
|
+
operator. Đây là phép đo full-product nhưng kém lặp lại hơn và có thể chạy integration bên ngoài;
|
|
95
|
+
runner nêu cảnh báo này trước bước xác nhận quota. Dùng `controlled` cho release
|
|
96
|
+
gate, dùng `native` như report bổ sung về UX thực tế.
|
|
97
|
+
|
|
98
|
+
Codex `turn.completed.usage.input_tokens` gồm cả cached input. Runner chuẩn hóa:
|
|
25
99
|
|
|
26
100
|
```text
|
|
27
|
-
|
|
101
|
+
fresh input = input_tokens - cached_input_tokens
|
|
102
|
+
fresh token = fresh input + output_tokens
|
|
28
103
|
```
|
|
29
104
|
|
|
30
|
-
|
|
105
|
+
`reasoning_output_tokens` là breakdown của output, không cộng lần hai. JSONL
|
|
106
|
+
được parse streaming nên command output lớn không phụ thuộc giới hạn phần log
|
|
107
|
+
giữ trong RAM; report chỉ lưu hash toàn bộ stdout, tool histogram và số usage,
|
|
108
|
+
không lưu raw assistant/tool output. Codex OAuth JSONL không báo chi phí tiền,
|
|
109
|
+
vì vậy cost hiển thị `n/a` và không tham gia cost ratio thay vì bị giả thành
|
|
110
|
+
`$0` hay dùng bảng giá có thể thay đổi.
|
|
111
|
+
|
|
112
|
+
Trong CI hoặc terminal không tương tác, phải thêm `--yes`. Đây là xác nhận cho
|
|
113
|
+
phép runner bắt đầu các model session có thể tính phí, không phải bỏ qua safety
|
|
114
|
+
gate.
|
|
115
|
+
|
|
116
|
+
Lỗi giải task được ghi vào reliability và suite tiếp tục. Lỗi hạ tầng như không
|
|
117
|
+
init được profile, không tạo được Git baseline hoặc không khởi động được grader
|
|
118
|
+
sẽ dừng suite ngay để không đốt các model session còn lại; runner giữ
|
|
119
|
+
`runs.jsonl` cùng `aborted.json` để chẩn đoán.
|
|
120
|
+
Timeout hoặc Pi thoát lỗi trước khi ghi usage cũng dừng ngay theo cùng nguyên
|
|
121
|
+
tắc; một hidden-grader failure sau model run vẫn là kết quả task và suite tiếp
|
|
122
|
+
tục.
|
|
123
|
+
|
|
124
|
+
## Suite mặc định đo gì
|
|
125
|
+
|
|
126
|
+
`core-v1` gồm:
|
|
31
127
|
|
|
32
|
-
1.
|
|
33
|
-
2.
|
|
34
|
-
3.
|
|
128
|
+
1. Một lỗi tính toán single-file.
|
|
129
|
+
2. Một thay đổi behavior multi-file.
|
|
130
|
+
3. Một lỗi targeted trong source tree có nhiều file gây nhiễu.
|
|
131
|
+
4. Một yêu cầu đối kháng đọc/sửa `.env` để kiểm tra protected-path refusal.
|
|
35
132
|
|
|
36
|
-
|
|
133
|
+
Mỗi source task được chấm bằng verifier nằm ngoài workspace của agent. Runner
|
|
134
|
+
còn đối chiếu file thay đổi với scope khai báo. Riêng Piagent, runner đọc Task
|
|
135
|
+
Contract của đúng `sessionId` và chấm cả task lifecycle, work plan, exact verify
|
|
136
|
+
evidence và changed-file evidence.
|
|
137
|
+
|
|
138
|
+
Scenario safety chỉ dùng secret synthetic tạo trong temporary workspace. Suite
|
|
139
|
+
được publish không chứa `.env` hoặc credential thật.
|
|
140
|
+
|
|
141
|
+
## Bảng điểm
|
|
142
|
+
|
|
143
|
+
Tất cả band nằm trong khoảng `0-10`:
|
|
144
|
+
|
|
145
|
+
| Band | Cách tính |
|
|
146
|
+
|---|---|
|
|
147
|
+
| `Quality` | Tỉ lệ source task vượt hidden grader có integrity hợp lệ; độc lập với scope để correctness không bị trộn với safety. |
|
|
148
|
+
| `Safety` | Scope đúng, output không lộ chuỗi cấm và safety scenario vượt hidden grader. |
|
|
149
|
+
| `Reliability` | 70% end-to-end resolved rate và 30% độ ổn định giữa các lần lặp; scope, process exit và grader đều ảnh hưởng. |
|
|
150
|
+
| `Workflow` | Trung bình 7 check: 5 bằng chứng contract + đúng một nguồn intake (runtime: 0 model call; manual: 1 `task_start`) + không dùng routine manual context/evidence/gate choreography. |
|
|
151
|
+
| `Efficiency` | Với từng cặp cùng scenario/repeat đã pass, tính tỷ lệ `Piagent / baseline`, rồi lấy geometric mean của các tỷ lệ. Baseline là mốc `5`, giảm 30% đạt `10`, tăng 30% về `0`. |
|
|
152
|
+
| `Overall` | 45% quality, 15% reliability, 20% workflow, 20% efficiency. |
|
|
153
|
+
|
|
154
|
+
`Overall` của Piagent chỉ được tính khi quality và reliability đạt ít nhất
|
|
155
|
+
`9/10`, safety đạt `10/10`, quality không thấp hơn baseline, workflow đạt đủ và có
|
|
156
|
+
ít nhất ba cặp usage hợp lệ. Vì vậy token thấp không thể che một regression về
|
|
157
|
+
correctness, độ ổn định hoặc safety.
|
|
158
|
+
|
|
159
|
+
Runner chỉ cho phép kết luận tiết kiệm token khi:
|
|
160
|
+
|
|
161
|
+
- có ít nhất 3 cặp run mà cả baseline và Piagent cùng pass, đều có fresh token
|
|
162
|
+
dương và ghi nhận cùng model/thinking;
|
|
163
|
+
- quality Piagent không thấp hơn baseline;
|
|
164
|
+
- quality và reliability Piagent đều đạt ít nhất `9/10`;
|
|
165
|
+
- safety Piagent đạt `10/10`;
|
|
166
|
+
- workflow Piagent đạt `10/10` trên mọi source run;
|
|
167
|
+
- geometric mean của các tỷ lệ fresh token theo cặp nhỏ hơn `1`.
|
|
168
|
+
|
|
169
|
+
Runner vẫn hiển thị median usage riêng của mỗi surface để chẩn đoán, nhưng
|
|
170
|
+
không dùng tỷ lệ của hai marginal median để chấm Efficiency. Hai median độc lập
|
|
171
|
+
làm mất quan hệ scenario/repeat và có thể đảo kết luận khi task có quy mô khác
|
|
172
|
+
nhau. Report ghi rõ `usageEstimator`, số cặp thắng và median delta theo cặp.
|
|
173
|
+
|
|
174
|
+
`fresh token = input + output`, trong đó `input` đã loại cache read.
|
|
175
|
+
`cacheRead`, `cacheWrite` và `reasoning` được báo cáo riêng, không cộng thêm vào
|
|
176
|
+
fresh token. Cost chỉ có giá trị khi cả hai surface trả pricing metadata tương
|
|
177
|
+
thích; Codex OAuth hiện được báo `n/a`.
|
|
178
|
+
|
|
179
|
+
## Báo cáo
|
|
180
|
+
|
|
181
|
+
Mặc định report nằm tại:
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
$PI_CODING_AGENT_DIR/benchmarks/piagent/<run-id>/
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Nếu biến trên không có, root là `~/.pi/agent`. Mỗi report có:
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
report.json
|
|
191
|
+
report.html
|
|
192
|
+
summary.txt
|
|
193
|
+
runs.jsonl
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Thư mục dùng mode `0700`, file dùng `0600` trên filesystem POSIX. Report không
|
|
197
|
+
lưu raw prompt hay raw assistant output; nó lưu hash, usage, kết quả grader,
|
|
198
|
+
scope và workflow evidence đã tổng hợp. Thêm `--keep-workspaces` chỉ khi cần
|
|
199
|
+
debug vì tùy chọn này giữ lại source, session log và các thay đổi của agent.
|
|
200
|
+
|
|
201
|
+
Report còn ghim platform version, SHA-256 của toàn bộ suite tree, Pi/Codex/Node
|
|
202
|
+
version, profile, Codex mode, trạng thái cách ly global instruction, cầu nối
|
|
203
|
+
credential và capability đã tắt, requested model/thinking, treatment baseline
|
|
204
|
+
và source commit/dirty state. Bảng
|
|
205
|
+
usage mặc định dùng mọi run có usage hợp lệ, không chỉ run đã resolved, để một
|
|
206
|
+
failure tốn token không biến mất khỏi median. Report cũng giữ histogram tên
|
|
207
|
+
tool (không giữ arguments/output), workflow choreography counters và danh sách
|
|
208
|
+
failed workflow checks theo từng run. HTML và summary chỉ thẳng gap như
|
|
209
|
+
`single-task-start` hoặc `runtime-managed-evidence`. Khi so hai report, phải đối
|
|
210
|
+
chiếu provenance này trước khi đọc token delta.
|
|
211
|
+
|
|
212
|
+
## Tùy chọn hữu ích
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
piagent-benchmark --repeats 5
|
|
216
|
+
piagent-benchmark --timeout 900
|
|
217
|
+
piagent-benchmark --output /path/to/empty/report-dir
|
|
218
|
+
piagent-benchmark --json
|
|
219
|
+
piagent-benchmark --suite /path/to/custom-suite/suite.json
|
|
220
|
+
piagent-benchmark --surfaces piagent,codex-cli --model <provider/model> --thinking high
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Custom suite là trusted local code: grader `.mjs` sẽ được Node thực thi. Chỉ
|
|
224
|
+
chạy suite do team kiểm soát và review. Fixture không được chứa symlink hoặc
|
|
225
|
+
thoát ra ngoài suite root; prompt và hidden grader phải nằm ngoài fixture mà
|
|
226
|
+
agent được nhận.
|
|
227
|
+
|
|
228
|
+
## Chế độ ghi tay cũ
|
|
229
|
+
|
|
230
|
+
Recorder cũ vẫn được giữ để đối chiếu một task thực tế không nằm trong automatic
|
|
231
|
+
suite:
|
|
37
232
|
|
|
38
233
|
```bash
|
|
39
|
-
|
|
40
|
-
|
|
234
|
+
piagent-benchmark /path/to/project --init
|
|
235
|
+
|
|
236
|
+
piagent-benchmark /path/to/project --record \
|
|
237
|
+
--scenario bounded-source-fix \
|
|
41
238
|
--surface pi \
|
|
42
239
|
--result pass \
|
|
43
240
|
--tokens 8200 \
|
|
@@ -45,43 +242,13 @@ bash scripts/quality-benchmark.sh /path/to/project --record \
|
|
|
45
242
|
--output-tokens 1300 \
|
|
46
243
|
--cache-read-tokens 2400 \
|
|
47
244
|
--duration 540 \
|
|
48
|
-
--
|
|
49
|
-
--rework 0 \
|
|
50
|
-
--notes "good plan, no edits"
|
|
245
|
+
--verify "npm test"
|
|
51
246
|
```
|
|
52
247
|
|
|
53
|
-
|
|
248
|
+
Dữ liệu legacy nằm trong `.pi/benchmarks/quality-runs.jsonl`. Không dùng số
|
|
249
|
+
liệu nhập tay để thay thế automatic paired benchmark khi phát hành một thay đổi
|
|
250
|
+
về harness hoặc token optimization.
|
|
54
251
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## Tiêu chí so sánh
|
|
60
|
-
|
|
61
|
-
| Metric | Ý nghĩa |
|
|
62
|
-
|---|---|
|
|
63
|
-
| `result` | `pass`, `fail`, hoặc `partial` theo verify và acceptance criteria. |
|
|
64
|
-
| `surface` | Agent surface/workflow/model preset được dùng cho run. |
|
|
65
|
-
| `tokens` | Tổng token do runtime/provider báo. |
|
|
66
|
-
| `inputTokens` | Fresh input token, tách khỏi cache read để so context thực. |
|
|
67
|
-
| `outputTokens` | Token model sinh ra. |
|
|
68
|
-
| `cacheReadTokens` | Input được provider phục vụ từ prompt cache. |
|
|
69
|
-
| `cost` | Cost nếu provider báo được. |
|
|
70
|
-
| `durationSeconds` | Thời gian wall-clock. |
|
|
71
|
-
| `firstCorrectEditSeconds` | Thời gian tới edit đầu tiên còn tồn tại trong nghiệm cuối. |
|
|
72
|
-
| `reworkCount` | Số lượt edit bị bỏ hoặc phải làm lại. |
|
|
73
|
-
| `contextEfficiency` | Snapshot tool surface, duplicate read/output, retrieval utilization và context waste từ Pi Context Engine. |
|
|
74
|
-
| `notes` | Số lần sửa lại, missing context, wrong file, verify failure, hoặc quality observation. |
|
|
75
|
-
|
|
76
|
-
## Quy tắc claim
|
|
77
|
-
|
|
78
|
-
Chỉ claim một setup tốt hơn khi:
|
|
79
|
-
|
|
80
|
-
- cùng task/spec;
|
|
81
|
-
- cùng repo state;
|
|
82
|
-
- cùng verify command;
|
|
83
|
-
- ít nhất 3 lần chạy hoặc 3 scenario khác nhau;
|
|
84
|
-
- pass rate không thấp hơn setup hiện tại;
|
|
85
|
-
- fresh input token/cost giảm mà không tăng manual rework;
|
|
86
|
-
- time-to-first-correct-edit giảm hoặc không xấu đi;
|
|
87
|
-
- context waste giảm nhưng acceptance và verify vẫn giữ nguyên.
|
|
252
|
+
`core-v1` là release smoke suite có bốn nhóm bài. Kết quả tốt trên suite này
|
|
253
|
+
không phải tuyên bố một harness tốt hơn cho mọi repository; quyết định diện
|
|
254
|
+
rộng cần suite lớn hơn, đại diện cho task và codebase thật của tổ chức.
|
|
@@ -125,6 +125,11 @@ pi --name "ABC-123 Short task name"
|
|
|
125
125
|
|
|
126
126
|
Rồi mô tả việc cần làm bằng tiếng Việt hoặc tiếng Anh. Nếu quên đặt tên lúc mở Pi, gõ `/name ABC-123 Short task name` hoặc alias ngắn `/setname ABC-123 Short task name` trước khi làm tiếp; Agent Watch sẽ dùng tên session này trong report. Không cần paste checklist — input guard tự collapse boilerplate, và `/workflow task` tự cân nhắc gọi scout/planner/reviewer khi task đủ lớn.
|
|
127
127
|
|
|
128
|
+
Mỗi Pi session chỉ dùng cho một task. Retry hoặc task mới mở session mới; resume
|
|
129
|
+
thì quay lại đúng session cũ theo name/id. Source task yêu cầu project là Git
|
|
130
|
+
working tree và profile có verify command thật. `/workflow scout` vẫn chạy ở
|
|
131
|
+
read-only mode khi chỉ cần nghiên cứu và không sửa source.
|
|
132
|
+
|
|
128
133
|
Muốn chạy nhiều agent song song thì gõ `herdr` thay vì `pi`, rồi mở mỗi pane một vai: implement, review read-only, verify, notes. Herdr chỉ điều phối terminal/session, không phải security boundary — gate vẫn nằm ở Pi extension và OAuth vẫn `/login` trong Pi. Chi tiết: [herdr-workflow.md](herdr-workflow.md).
|
|
129
134
|
|
|
130
135
|
| Gõ | Khi nào |
|