agent-dx-cli-scale

Một thang điểm để đánh giá mức độ thiết kế CLI phù hợp cho các tác nhân AI, dựa trên các nguyên tắc "Viết lại CLI của bạn cho các tác nhân AI".

npx skills add https://github.com/google-labs-code/design.md --skill agent-dx-cli-scale

Agent DX CLI Scale

Use this skill to evaluate any CLI against the principles of agent-first design. Score each axis from 0–3, then sum for a total between 0–21.

Human DX optimizes for discoverability and forgiveness. Agent DX optimizes for predictability and defense-in-depth. — You Need to Rewrite Your CLI for AI Agents


Scoring Axes

1. Machine-Readable Output

Can an agent parse the CLI's output without heuristics?

ScoreCriteria
0Human-only output (tables, color codes, prose). No structured format available.
1--output json or equivalent exists but is incomplete or inconsistent across commands.
2Consistent JSON output across all commands. Errors also return structured JSON.
3NDJSON streaming for paginated results. Structured output is the default in non-TTY (piped) contexts.

2. Raw Payload Input

Can an agent send the full API payload without translation through bespoke flags?

ScoreCriteria
0Only bespoke flags. No way to pass structured input.
1Accepts --json or stdin JSON for some commands, but most require flags.
2All mutating commands accept a raw JSON payload that maps directly to the underlying API schema.
3Raw payload is first-class alongside convenience flags. The agent can use the API schema as documentation with zero translation loss.

3. Schema Introspection

Can an agent discover what the CLI accepts at runtime without pre-stuffed documentation?

ScoreCriteria
0Only --help text. No machine-readable schema.
1--help --json or a describe command for some surfaces, but incomplete.
2Full schema introspection for all commands — params, types, required fields — as JSON.
3Live, runtime-resolved schemas (e.g., from a discovery document) that always reflect the current API version. Includes scopes, enums, and nested types.

4. Context Window Discipline

Does the CLI help agents control response size to protect their context window?

ScoreCriteria
0Returns full API responses with no way to limit fields or paginate.
1Supports --fields or field masks on some commands.
2Field masks on all read commands. Pagination with --page-all or equivalent.
3Streaming pagination (NDJSON per page). Explicit guidance in context/skill files on field mask usage. The CLI actively protects the agent from token waste.

5. Input Hardening

Does the CLI defend against the specific ways agents fail (hallucinations, not typos)?

ScoreCriteria
0No input validation beyond basic type checks.
1Validates some inputs, but does not cover agent-specific hallucination patterns (path traversals, embedded query params, double encoding).
2Rejects control characters, path traversals (../), percent-encoded segments (%2e), and embedded query params (?, #) in resource IDs.
3Comprehensive hardening: all of the above, plus output path sandboxing to CWD, HTTP-layer percent-encoding, and an explicit security posture — "The agent is not a trusted operator."

6. Safety Rails

Can agents validate before acting, and are responses sanitized against prompt injection?

ScoreCriteria
0No dry-run mode. No response sanitization.
1--dry-run exists for some mutating commands.
2--dry-run for all mutating commands. Agent can validate requests without side effects.
3Dry-run plus response sanitization (e.g., via Model Armor) to defend against prompt injection embedded in API data. The full request→response loop is defended.

7. Agent Knowledge Packaging

Does the CLI ship knowledge in formats agents can consume at conversation start?

ScoreCriteria
0Only --help and a docs site. No agent-specific context files.
1A CONTEXT.md or AGENTS.md with basic usage guidance.
2Structured skill files (YAML frontmatter + Markdown) covering per-command or per-API-surface workflows and invariants.
3Comprehensive skill library encoding agent-specific guardrails ("always use --dry-run", "always use --fields"). Skills are versioned, discoverable, and follow a standard like OpenClaw.

Interpreting the Total

RangeRatingDescription
0–5Human-onlyBuilt for humans. Agents will struggle with parsing, hallucinate inputs, and lack safety rails.
6–10Agent-tolerantAgents can use it, but they'll waste tokens, make avoidable errors, and require heavy prompt engineering to compensate.
11–15Agent-readySolid agent support. Structured I/O, input validation, and some introspection. A few gaps remain.
16–21Agent-firstPurpose-built for agents. Full schema introspection, comprehensive input hardening, safety rails, and packaged agent knowledge.

Bonus: Multi-Surface Readiness

Not scored, but note whether the CLI exposes multiple agent surfaces from the same binary:

  • MCP (stdio JSON-RPC) — typed tool invocation, no shell escaping
  • Extension / plugin install — agent treats the CLI as a native capability
  • Headless auth — env vars for tokens/credentials, no browser redirect required

Thêm skills từ google-labs-code

typed-service-contracts
google-labs-code
Tiêu chuẩn kiến trúc để xây dựng các dịch vụ TypeScript mạnh mẽ, an toàn kiểu dữ liệu bằng mẫu "Spec and Handler". Dùng khi xây dựng CLI, thư viện hoặc các hệ thống phức tạp…
stitch::code-to-design
google-labs-code
Chuyển đổi mã frontend (Vite, React, v.v.) thành một Stitch Design bằng cách kết nối trích xuất HTML tĩnh, trích xuất hệ thống thiết kế và tải tệp lên. **LUÔN** sử dụng điều này…
react-vite-dashboard
google-labs-code
Chuyển đổi thiết kế Stitch thành dashboard React + Vite cho production với TanStack Query, token truy cập từ DESIGN.md, và các pattern sẵn sàng cho Web3 (ethers/viem).
stitch::extract-design-md
google-labs-code
Trích xuất hệ thống thiết kế toàn diện (DESIGN.md) trực tiếp từ mã nguồn frontend — React, Vue, Svelte, Angular, HTML/CSS thuần, hoặc bất kỳ framework web nào.…
remotion
google-labs-code
Tạo video hướng dẫn chuyên nghiệp từ thiết kế ứng dụng Stitch bằng Remotion với hiệu ứng chuyển cảnh mượt mà và lớp phủ văn bản. Lấy màn hình từ các dự án Stitch và sắp xếp chúng thành các tổng hợp video Remotion với hiệu ứng thu phóng, chuyển tiếp mờ dần và lớp phủ văn bản theo ngữ cảnh. Hỗ trợ kiến trúc thành phần mô-đun với các thành phần ScreenSlide và WalkthroughComposition, cùng các tính năng nâng cao như điểm tương tác nóng và tích hợp lồng tiếng. Tạo bản kê khai màn hình, tải xuống...
ink
google-labs-code
Trình kết xuất terminal Ink cho json-render, chuyển đổi các đặc tả JSON thành giao diện terminal tương tác. Sử dụng khi làm việc với @json-render/ink, xây dựng giao diện terminal từ…
tdd-red-green-refactor
google-labs-code
Kỹ năng này triển khai một khung cấu trúc cho lập trình có hỗ trợ AI nhằm đảm bảo mọi dòng mã đều có thể kiểm chứng, được định kiểu và có mục đích.
automate-github-issues
google-labs-code
Thiết lập phân loại và giải quyết vấn đề GitHub tự động bằng cách sử dụng các tác nhân mã hóa Jules song song