Skip to content
Back to skills

Agentj Reply Components

ASecurity

Stable inline reply components, diagrams and draft-only forms. 回复内嵌组件、流程图与草稿表单。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
developmentjavascriptjavanode

Works with

  • terminal
  • cli

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add preangelleo/agentj --skill agentj-reply-components --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agentj Reply Components?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Agentj Reply Components
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/preangelleo-agentj-reply-components/badge)](https://www.skillsdirectory.com/skills/preangelleo-agentj-reply-components)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: agentj-reply-components
description: Stable inline reply components, diagrams and draft-only forms. 回复内嵌组件、流程图与草稿表单。
---

# Reply components / 回复内嵌组件

Generated from web/reply-components.json. Use ordinary Markdown first. Do not use HTML, JavaScript, external scripts or tool callbacks. A malformed or incomplete component stays source text; never rely on it for approvals.

优先用普通 Markdown。不要输出 HTML、JS、外部脚本或工具回调。组件写错或未写完只显示原文,不能拿它代替权限审批。

For structured components use one complete JSON object per fenced `agentj` block. No secrets in forms. Form buttons only append a draft; confirm choices and existing reply: links send ordinary owner replies on one tap. Hold a confirm choice to put it into the draft for editing. Confirm never grants tool permission. Persistent to-dos remain the owner's official card, not a form.

结构化组件每个 `agentj` 围栏只放一个完整 JSON 对象。表单不收密码、密钥或其他秘密。表单按钮只填草稿;确认卡选项和 reply: 选项单击发送普通回复,长按确认卡选项则填草稿编辑。确认卡不能批准工具权限。持久待办继续用官方待办卡。

Local files / 本地文件:Write a complete Markdown link or image reference; absolute paths and ~/ both work. For a deterministic current-page attachment, run `agentj file show PATH --label LABEL --json` in the admitted owner phone turn. It reuses host path/type/secret checks and cannot select a device, group or friend. No live owner turn returns failure (including standalone desktop turns). `queued` is pending; wait for FILE_SHOW_RESULT with `attached_to_page` or `failure`. All carry client_downloaded:false: never claim the owner saw it. Do not use owner-only notify/send as a fallback. `PATH` accepts absolute paths and `~/`; it still must stay within the admitted working root. Failure reasons: `broker_unavailable` means the local attachment service cannot be reached; `no_owner_session` means the current owner turn or its context could not be confirmed; `native_admission_missing` means this exact request has not been admitted by the AI tool; `native_admission_expired` means its admission is no longer valid; `native_admission_ambiguous` means more than one valid admission matches. These failures do not attach a file. Keep the current owner turn and report the reason; do not change the target page or bypass the checks.

写完整的 Markdown 本地链接或图片引用,绝对路径和 ~/ 都支持。需要明确附到当前页时,在获准的主人手机回合运行 `agentj file show PATH --label 说明 --json`;沿用主机路径、类型和秘密检查,不能指定设备、群或好友。无有效主人回合(包括独立桌面回合)即失败。queued 只是排队,等 FILE_SHOW_RESULT 返回 attached_to_page 或 failure;client_downloaded 始终为 false,不能声称主人已看到。不要借主人专用 notify/send 绕过。`PATH` 支持绝对路径和 `~/`,文件仍须位于本轮获准的工作目录内。失败说明:`broker_unavailable` 表示无法连接本机附图服务;`no_owner_session` 表示无法确认当前主人回合或其上下文;`native_admission_missing` 表示 AI 工具尚未准入这条具体请求;`native_admission_expired` 表示准入已失效;`native_admission_ambiguous` 表示匹配到多条有效准入。这些失败都没有附上文件。保留当前主人回合并说明原因,不换目标页、不绕过检查。

Terminal commands / 终端命令:Run what you can yourself; never hand the owner a command you could run. Put a command in a reply only when you cannot run it: you are disconnected, it needs the owner in person (a sudo password, an interactive login, a QR scan) or it must run on another computer. Write it as a one-line ```sh fence with no `!` prefix; the phone shows Run left of Copy (sudo or interactive: Open in terminal), and the host still classifies it and asks for approval as usual.

能自己跑的命令自己跑,不把命令甩给主人。只有你跑不了时才写进回复:你断线了、需要主人本人在场(sudo 密码、交互式登录、扫码),或要在另一台电脑上跑。写成单行 ```sh 围栏,不加 `!`;手机在拷贝左边显示「执行」(sudo 或交互式显示「在终端里打开」),主机照常判定和审批。

Limits: 16000 characters per block, 20 components per reply. Unknown properties/types, oversized data, dangling flowchart edges and duplicate IDs fall back to text. Numbers must be finite. Links keep the existing URL filter and host-authorized local media path.

## link

External URL / 外部网址

Renderer: safeHref / shownTarget.

Parameters / 参数: {"label":"Visible text","href":"http:, https:, mailto: only; shows real host"}

Example / 示例:

```text
[label](https://example.com)
```

## internal-link

Internal navigation / 内部导航

Renderer: five-pages.linkify.

Parameters / 参数: {"address":"Known card/<id>[#anchor], /installed-skill, workflow mentions; no invented URL scheme"}

Example / 示例:

```text
card/cards
```

## quote

Quotation / 引用

Renderer: md blockquote.

Parameters / 参数: {"text":"Markdown > block; actions stay inert"}

Example / 示例:

```text
> quoted words
```

## file

Host-authorized Markdown, PDF, audio, video / 主机授权文件

Renderer: media / localRef.

Parameters / 参数: {"ref":"Host-authorized local path","mid":"Host media id","mime":"Markdown / PDF / audio / video; metadata comes from host"}

Example / 示例:

```text
[report.pdf](out/report.pdf)
```

## table

Markdown table / 表格

Renderer: md table.

Parameters / 参数: {"columns":"≤32","rows":"≤300","cells":"≤4000"}

Example / 示例:

```text
| Item | Count |
|---|---|
| Mug | 60 |
```

## reply

Existing one-tap reply / 原有单击发送选项

Renderer: replybtn / replyRef.

Parameters / 参数: {"label":"Visible choice","say":"One-line bounded reply: text; existing one-tap send"}

Example / 示例:

```text
[A](reply:A)
```

## todo

Owner-managed persistent checklist / 持久待办卡

Renderer: jcards.

Parameters / 参数: {"card":"Owner official To-do card; not an inline permission card"}

Example / 示例:

```text
Ask Agent J to update the To-do card / 请 Agent J 更新待办卡
```

## mermaid

Local strict Mermaid / 本地严格流程图

Renderer: render.diagram.

Parameters / 参数: {"source":"≤10000 chars; local strict rendering; text fallback"}

Example / 示例:

```text
```mermaid
flowchart LR
 A[Start] --> B[Done]
```
```

## flowchart

Named nodes and directed edges / 节点与有向连线

Renderer: flowchart.

Parameters / 参数:

{"type":"object","properties":{"component":{"enum":["flowchart"]},"title":{"type":"string","maxLength":200},"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":24},"label":{"type":"string","maxLength":120}},"required":["id","label"],"additionalProperties":false},"maxItems":24,"minItems":1},"edges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","maxLength":24},"to":{"type":"string","maxLength":24}},"required":["from","to"],"additionalProperties":false},"maxItems":40,"minItems":1}},"required":["component","title","nodes","edges"],"additionalProperties":false}

Example / 示例:

```agentj
{"component":"flowchart","title":"Flowchart","nodes":[{"id":"a","label":"Review"},{"id":"b","label":"Done"}],"edges":[{"from":"a","to":"b"}]}
```

## chart

Finite numeric bar or line chart / 有限数值柱图或折线图

Renderer: chart.

Parameters / 参数:

{"type":"object","properties":{"component":{"enum":["chart"]},"title":{"type":"string","maxLength":200},"kind":{"enum":["bar","line"]},"items":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":60},"value":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"required":["label","value"],"additionalProperties":false},"maxItems":30,"minItems":1}},"required":["component","title","kind","items"],"additionalProperties":false}

Example / 示例:

```agentj
{"component":"chart","title":"Chart","kind":"bar","items":[{"label":"Mug","value":60},{"label":"Cap","value":40}]}
```

## steps

Read-only progress / 只读步骤条

Renderer: steps.

Parameters / 参数:

{"type":"object","properties":{"component":{"enum":["steps"]},"title":{"type":"string","maxLength":200},"items":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":120},"status":{"enum":["pending","active","done"]}},"required":["label","status"],"additionalProperties":false},"maxItems":12,"minItems":1}},"required":["component","title","items"],"additionalProperties":false}

Example / 示例:

```agentj
{"component":"steps","title":"Steps","items":[{"label":"Review","status":"active"},{"label":"Deliver","status":"pending"}]}
```

## confirm

Tap sends an ordinary reply; hold drafts for editing, never a permission approval / 单击发送普通回复,长按编辑草稿,不是权限批准

Renderer: confirm.

Parameters / 参数:

{"type":"object","properties":{"component":{"enum":["confirm"]},"title":{"type":"string","maxLength":200},"message":{"type":"string","maxLength":1000},"choices":{"type":"array","items":{"type":"string","maxLength":100},"maxItems":4,"minItems":1}},"required":["component","title","message","choices"],"additionalProperties":false}

Example / 示例:

```agentj
{"component":"confirm","title":"Confirm","message":"Review the proposed restock order.","choices":["Prepare order","Keep draft"]}
```

## form

Non-secret inputs → draft / 非秘密表单只生成草稿

Renderer: form.

Parameters / 参数:

{"type":"object","properties":{"component":{"enum":["form"]},"title":{"type":"string","maxLength":200},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":24},"label":{"type":"string","maxLength":100},"type":{"enum":["text","select","checkbox","date"]},"options":{"type":"array","items":{"type":"string","maxLength":100},"maxItems":12,"minItems":1}},"required":["id","label","type"],"additionalProperties":false},"maxItems":8,"minItems":1}},"required":["component","title","fields"],"additionalProperties":false}

Example / 示例:

```agentj
{"component":"form","title":"Form","fields":[{"id":"note","label":"Notes","type":"text"}]}
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.