Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jianchen08/Agent-os-open --skill code-frontendgit clone --depth 1 https://github.com/jianchen08/Agent-os-openWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jianchen08/agent-os-open/code-frontend)<a href="https://agentmods.dev/skills/jianchen08/agent-os-open/code-frontend"><img src="https://agentmods.dev/badge/skills/jianchen08/agent-os-open/code-frontend/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jianchen08/agent-os-open/code-frontend"><img src="https://agentmods.dev/badge/skills/jianchen08/agent-os-open/code-frontend.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00058 | $0.02207 |
| Opus 5.5 | $0.00023 | $0.00883 |
| Sonnet 5.5 | $0.00012 | $0.00441 |
| Haiku 4.5 | $0.00006 | $0.00221 |
Grade A, and why
前端编码 scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 19d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 217 lines — stays where its author put it; the contents beside it link to each section on GitHub.
前端编码
本技能是流程指引,不是逐条打勾清单:按场景判断使用,遇不适用情况保持裁量,不机械执行。
组件规范
组件命名
| 类型 | 规范 | 示例 |
|---|---|---|
| 组件文件 | PascalCase | UserProfile.vue, LoginForm.tsx |
| 组件名 | PascalCase | UserProfile, OrderList |
| 组件文件夹 | kebab-case | user-profile/, order-list/ |
| Props | camelCase | userName, isLoading |
| 事件名 | camelCase(以 on 开头) | onClick, onChange |
| 方法名 | camelCase | handleSubmit, fetchData |
组件设计原则
| 原则 | 说明 | 优先级 |
|---|---|---|
| 受控组件 | 表单值受 state 控制 | 高 |
| Props 校验 | 使用 TypeScript 或 PropTypes | 高 |
| 组件拆分阈值 | >150 行评估拆分;>500 行必须拆分(见禁止行为) | 中 |
React 组件结构
// 1. 类型定义 → 2. 组件定义 → 3. Hooks → 4. 业务逻辑 → 5. 渲染 → 6. 导出
interface UserCardProps {
userId: number;
userName: string;
avatar?: string;
}
function UserCard({ userId, userName, avatar }: UserCardProps) {
const [isEditing, setIsEditing] = useState(false);
const handleEdit = () => setIsEditing(true);
return (
<div className={styles.card}>
<img src={avatar} alt={userName} />
<span>{userName}</span>
<button onClick={handleEdit}>编辑</button>
</div>
);
}
export default UserCard;
Vue 组件结构
<template>
<div class="user-card">
<img :src="avatar" :alt="userName" />
<span>{{ userName }}</span>
<button @click="handleEdit">编辑</button>
</div>
</template>
<script setup lang="ts">
interface Props { userId: number; userName: string; avatar?: string; }
const props = defineProps<Props>();
const emit = defineEmits<{ (e: 'edit', userId: number): void; }>();
const handleEdit = () => emit('edit', props.userId);
</script>
<style scoped>
.user-card { display: flex; align-items: center; }
</style>
设计系统一致性(编码前必做)
编写前端代码前必须先执行发现步骤,不能跳过:
- 识别设计系统来源:查 package.json 的组件库依赖、设计令牌文件(theme.css/tokens.json/tailwind.config)、全局样式文件、已有同类组件实现
- 提取设计规范:间距梯度、颜色语义变量、字体梯度、可复用组件、布局断点
- 以此为锚点:所有样式决策必须以提取到的规范为基准
间距
- 先从项目的设计令牌/全局样式找到间距梯度
- 所有间距值必须从项目定义的梯度中选取
- 项目未定义时,使用项目中最常见的间距倍数作为基准
颜色
- 先找到项目的语义色变量(主色、成功色、警告色、错误色)
- 所有颜色通过项目的变量/token 引用
- 需新颜色时在设计令牌中新增变量后引用,禁止硬编码
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 19d ago Changed 0b7a203c208c
- 1mo ago Changed 6f75b2b2023d
- 1mo ago Changed · +94 lines b7f598711875
- 1mo ago First seen · 123 lines · 58 tokens per session scan A e082ece21169
前端编码 is a skill published in the GitHub repository jianchen08/Agent-os-open (7 stars, last pushed 12d ago), licensed Apache-2.0. It adds 58 tokens to every session and 2,207 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
ardot_design_to_code
"Use this skill for Ardot canvas tasks that convert a design into frontend code, or extract a design system / style guide from a website. Covers: design-to-code, design → HTML/CSS/JS, export as webpage, pixel-perfect reproduction, generate an Application from a design, slide transitions, responsive scaling; and…
background-task
Add or modify work that runs outside the request/response cycle — emails, document ingestion, webhooks, cleanups, scheduled jobs. Use when something is slow or fire-and-forget, or when adding a periodic/cron task. This project's queue is {{ cookiecutter.backgroundtasks }}.
agent-tool
Add a new tool/function the AI agent can call (e.g. look something up, hit an external API, perform an action). Use when extending the assistant's capabilities, wiring a new function into the agent, or when the model needs a new action. This project uses {{ cookiecutter.aiframework }}.
frontend-feature
Build a new page, view, or data-driven feature in the Next.js frontend. Use when adding a route under the dashboard/marketing area, wiring UI to a backend endpoint, adding client state, or creating a localized page. Covers App Router, data fetching, Zustand stores, and i18n.
pytest-suite
Write or extend the backend test suite following this project's conventions. Use when adding tests for a new service/route/repository, when coverage is missing, or when asked to test a feature. Knows the mocked-session + httpx AsyncClient setup so tests run with no database.
rag-knowledge
Work with the RAG knowledge base — ingest documents, run semantic search, manage collections, or add a sync source/connector (Google Drive, S3). Use when populating or debugging the knowledge base, tuning retrieval, or adding a new document source. This project uses {{ cookiecutter.vectorstore }} + {{…