Harden /review_prs Stage-2 sketch against `args` arriving as a JSON string

Đang mở Phù hợp với người mới
#670 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
1/5
Thời gian dự kiến
Dưới một giờ
Mức phù hợp với người mới
92/100
Loại issue
Tài liệu
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
javascript
Lĩnh vực
documentation

Hướng nghiên cứu

Mở .abca/commands/review_prs.md và đọc bản phác thảo Stage-2 quanh các dòng 142–164 cùng với phần văn xuôi trong Notes. Cập nhật bản phác thảo và phần giải thích để Workflow args được chuẩn hóa, bất kể chúng đến dưới dạng JSON string hay array, trước khi sử dụng .map. Hoàn thành khi hai tiêu chí chấp nhận được phản ánh trong tệp này mà không thay đổi hành vi có thể thích ứng của bản phác thảo.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement P2

Problem

The /review_prs command (.abca/commands/review_prs.md) documents Stage 2 with an illustrative Workflow sketch (lines ~142–164) that the operator regenerates per invocation. That sketch iterates the PR descriptors with args.map(...) directly.

In practice the Workflow harness may deliver args to the script as a JSON-encoded string rather than a parsed array — even when the caller passes a genuine JSON array in the Workflow tool call. When that happens the script throws immediately:

Error: args.map is not a function ('args.map' is undefined)

before any review agent spawns. Because the skill is (correctly) a sketch that gets regenerated each run, every regeneration risks re-hitting this footgun. Observed live during the carve S1–S8 stacked-PR review train (2026-07-28): the first Workflow launch died in ~7ms with agent_count: 0; a one-line defensive unpack fixed it and the resumed run proceeded normally.

Why not freeze the whole script into the skill

The sketch is intentionally adaptable — N==1 skips the Workflow, arg modes differ (explicit list vs. review-requested:@me vs. NL filter), and diff baselining differs for a stack (each PR vs its parent branch) vs. a flat batch (each vs main). Freezing a full script would bake away that variance and pull orchestration mechanics back into a skill that deliberately stays a thin orchestrator. So the fix is a doc hardening, not a canned script.

Proposed fix (small, docs-only)

In the Stage-2 sketch, unpack defensively before iterating and add a half-sentence caveat:

// Workflow may deliver `args` as a JSON string; tolerate either form.
const prs = typeof args === 'string' ? JSON.parse(args) : args
const results = await parallel(prs.map((pr) => () => agent(...)))

Add one line to the Notes / Stage-2 prose noting that Workflow args can arrive JSON-encoded, so generated scripts should normalize before .map.

Scope

  • Docs only: .abca/commands/review_prs.md.
  • No code, no CDK, no agent-runtime change.
  • Self-sufficiency bar for the skill is preserved: a competent agent regenerating the script from the prose will no longer trip on the string/array ambiguity.

Acceptance criteria

  • Stage-2 sketch normalizes args (string-or-array) before .map.
  • A one-line caveat in the prose explains why.
  • No other behavior change; the sketch remains a sketch (not a frozen script).
Ngôn ngữ chính
TypeScript
Star
170
Fork
52
Merge trung bình
2 ngày 21 giờ
Pull request đã merge (30 ngày)
11

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của aws-samples/sample-autonomous-cloud-coding-agents

Tất cả issue của aws-samples/sample-autonomous-cloud-coding-agents

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.