Skip to content

docs(acceptance): lật sổ 14 làn đã ký sang signed-off — nửa bước bị sót của Cổng 2 - #53

Merged
phanlemanh merged 2 commits into
mainfrom
chore/dong-so-14-lan-da-ky
Sep 4, 2026
Merged

docs(acceptance): lật sổ 14 làn đã ký sang signed-off — nửa bước bị sót của Cổng 2#53
phanlemanh merged 2 commits into
mainfrom
chore/dong-so-14-lan-da-ky

Conversation

@phanlemanh

@phanlemanh phanlemanh commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Hai commit: lật sổ, rồi ghim lại bằng chứng mà việc lật làm lộ ra.

1. Lật sổ 14 làn sang signed-off

Cả 14 hồ sơ đã có chữ ký người trong evidence-report.md — cổng in signed off by manh cho đủ 14 làn — nhưng contract.md vẫn dừng ở status: verified. Nghi thức đòi hai thứ ghi cùng một lượt (human_signoff + status: signed-off, feature-loop SKILL.md:252); ba đợt ký 14/08 · 18/08 · 19/08 đều chỉ làm nửa đầu.

Hệ quả đã gỡ: resume /feature-loop <slug> trước đây rơi về Gate 2 trên hồ sơ đã ký (SKILL.md:30) — signed-off đi thẳng S5 SHIP (SKILL.md:26). Thẻ Cổng 2 không đổi: gate-card.js:327 xếp verifiedsigned-off cùng về gate = '2'.

Ghi bằng đường Edit chứ không sed, để hook acceptance-evidence-gate.js chạy thật trên từng lượt (hook đòi approved_by + approved_at; cả 14 làn đều đủ).

2. Ghim lại 14 hợp đồng — repin-20260904-480e40d

Lật sổ chạm _acceptance/<slug>/contract.md, nên cả 14 làn vào diff PR và luật hết-hạn thức dậy (STALE-DIFF-SCOPE-GUARD, pre-merge-check.sh:1042): hồ sơ ngoài diff là «sử liệu», không bị soi verified_commit. Bằng chứng đã cũ từ trước — chỉ là chưa ai chạm nên cổng chưa nhìn.

Trôi làm hết hạn: đúng hai tệp, cả hai là testmcp-server/src/recipes.test.ts + src/components/MapView.test.tsx (+16/−10, từ ab0a1f5/ebb0676, sửa chữ ký mock cho typecheck). Không chạm hành vi sản phẩm → chữ ký người giữ nguyên ở cả 14 làn, theo đúng tiền lệ bốn lượt ghim lại trước của kho.

Đo tại 480e40d:

suite exit kết quả
npm test 0 629 đạt
npm run test:e2e 0 18 đạt
npm run test:mcp 0 22 đạt

Chiều đỏ

Cùng cây checkout này: trước khi ghim lại, cổng cho exit 1 với 14 VIOLATION evidence-stale; sau khi ghim lại, exit 0. Xanh này đã chạy chiều đỏ, không phải xanh rỗng.

pre-merge-check.sh --base origin/main --recheck-allclean, exit 0.

Lưu ý runtime

Lượt này đo trên Node v24.19.0. Lượt ghim trước (repin-20260819-fcb64d7) ghi «lần đầu đo trên Node 26.7» — máy dev đã lùi lại 24.19. Mốc ghim không mang runtime nên ghi ra để lần sau khỏi đoán.

Không thuộc PR này

scripts/pre-merge-check.sh:918 có luật «ký thì status phải sang signed-off» nhưng chỉ phủ machine-cleared, bỏ verified — đúng lớp trôi mà PR này dọn lại đi qua cổng im lặng. Thuộc về kit, không phải kho này.

🤖 Generated with Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

phanlemanh and others added 2 commits September 4, 2026 10:43
…ót của Cổng 2

Cả 14 hồ sơ đã có chữ ký người trong evidence-report.md — cổng in
"signed off by manh" cho đủ 14 làn, exit 0 — nhưng contract.md vẫn dừng ở
`status: verified`. Nghi thức đòi hai thứ ghi CÙNG một lượt (feature-loop
SKILL.md:252); lượt ghi trước chỉ làm nửa đầu.

Hệ quả đã gỡ: resume `/feature-loop <slug>` trên các làn này trước đây rơi
về Gate 2 trên hồ sơ đã ký (staleness guard, SKILL.md:30) — `signed-off`
đi thẳng S5 SHIP (SKILL.md:26). Thẻ Cổng 2 KHÔNG đổi: gate-card.js:327
xếp verified và signed-off cùng về gate 2.

Ghi bằng đường Edit chứ không sed, để hook acceptance-evidence-gate chạy
thật trên từng lượt — hook đòi approved_by + approved_at cho chuyển sang
signed-off, cả 14 làn đều đủ, không lượt nào bị chặn.

Diff đúng 14 dòng: -status: verified / +status: signed-off, không chạm
trường nào khác. Cổng chạy lại sau khi lật: pre-merge-check --recheck-all
clean, exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…260904-480e40d)

Lật `status: verified` → `signed-off` chạm `_acceptance/<slug>/contract.md` của
cả 14 làn, nên cả 14 vào diff PR và luật hết-hạn thức dậy
(STALE-DIFF-SCOPE-GUARD, pre-merge-check.sh:1042 — hồ sơ ngoài diff là "sử liệu"
và không bị soi `verified_commit`). Bằng chứng đã cũ từ trước, chỉ là chưa ai
chạm nên cổng chưa nhìn.

Trôi làm hết hạn: đúng hai tệp, cả hai là test — `mcp-server/src/recipes.test.ts`
và `src/components/MapView.test.tsx` (+16/−10, từ ab0a1f5ebb0676, sửa chữ ký
mock cho typecheck). Không chạm hành vi sản phẩm, nên chữ ký người giữ nguyên ở
cả 14 làn.

Đo tại 480e40d: `npm test` exit 0 (629 đạt) · `npm run test:e2e` exit 0 (18 đạt)
· `npm run test:mcp` exit 0 (22 đạt).

LƯU Ý RUNTIME: lượt này đo trên Node v24.19.0. Lượt ghim trước (2026-08-19,
repin-20260819-fcb64d7) ghi "lần đầu đo trên Node 26.7" — máy dev đã lùi lại
24.19. Mốc ghim không mang runtime, nên ghi ra đây để lần sau không phải đoán.

Chiều đỏ: cùng cây checkout này, trước khi ghim lại cổng cho exit 1 với 14
VIOLATION evidence-stale; sau khi ghim lại cho exit 0. Không phải xanh rỗng.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@phanlemanh
phanlemanh force-pushed the chore/dong-so-14-lan-da-ky branch from c0699bb to 7fe45be Compare September 4, 2026 03:48
@phanlemanh
phanlemanh merged commit 4640204 into main Sep 4, 2026
2 checks passed
@phanlemanh
phanlemanh deleted the chore/dong-so-14-lan-da-ky branch September 4, 2026 05:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant