Analytics Strategy
rampstackco/claude-skills
Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.
自定义页面真实数据接入技能。用于在使用 YidaCodeCanvas 组件实现的页面中用 dataBinding + 发布层 yida/utils window 桥接入宜搭表单、流程 API、连接器代理或同源接口数据,处理返回体包裹解析、totalCount 保护、DataBridge 状态和静默刷新。触发词:dataBinding、DataBridge、数据桥、YidaCodeCanvas…
$ npx skills add openyida/openyida --skill yida-canvas-data-binding -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openyida/openyida yida-canvas-data-binding --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/openyida/openyida.git skills-src && mkdir -p .claude/skills && cp -r skills-src/yida-skills/skills/yida-canvas-data-binding .claude/skills/yida-canvas-data-binding && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "yida-canvas-data-binding" agent skill from https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-canvas-data-binding into .claude/skills/yida-canvas-data-binding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yida-canvas-data-binding", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-canvas-data-bindingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add openyida/openyida --skill yida-canvas-data-binding -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openyida/openyida yida-canvas-data-binding --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openyida/openyida.git skills-src && mkdir -p .agents/skills && cp -r skills-src/yida-skills/skills/yida-canvas-data-binding .agents/skills/yida-canvas-data-binding && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "yida-canvas-data-binding" agent skill from https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-canvas-data-binding into .agents/skills/yida-canvas-data-binding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yida-canvas-data-binding", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openyida/openyida --skill yida-canvas-data-binding -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openyida/openyida yida-canvas-data-binding --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openyida/openyida.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/yida-skills/skills/yida-canvas-data-binding .cursor/skills/yida-canvas-data-binding && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "yida-canvas-data-binding" agent skill from https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-canvas-data-binding into .cursor/skills/yida-canvas-data-binding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yida-canvas-data-binding", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/openyida/openyida.git --path yida-skills/skills/yida-canvas-data-binding--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add openyida/openyida --skill yida-canvas-data-binding -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openyida/openyida yida-canvas-data-binding --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openyida/openyida.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/yida-skills/skills/yida-canvas-data-binding .gemini/skills/yida-canvas-data-binding && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "yida-canvas-data-binding" agent skill from https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-canvas-data-binding into .gemini/skills/yida-canvas-data-binding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yida-canvas-data-binding", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install openyida/openyida yida-canvas-data-bindingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add openyida/openyida --skill yida-canvas-data-binding -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openyida/openyida.git skills-src && mkdir -p .github/skills && cp -r skills-src/yida-skills/skills/yida-canvas-data-binding .github/skills/yida-canvas-data-binding && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "yida-canvas-data-binding" agent skill from https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-canvas-data-binding into .github/skills/yida-canvas-data-binding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yida-canvas-data-binding", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openyida/openyida --skill yida-canvas-data-binding -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openyida/openyida yida-canvas-data-binding --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openyida/openyida.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/yida-skills/skills/yida-canvas-data-binding .opencode/skills/yida-canvas-data-binding && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "yida-canvas-data-binding" agent skill from https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-canvas-data-binding into .opencode/skills/yida-canvas-data-binding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yida-canvas-data-binding", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
yida-canvas-data-binding自定义页面真实数据接入技能。用于在使用 YidaCodeCanvas 组件实现的页面中用 dataBinding + 发布层 yida/utils window 桥接入宜搭表单、流程 API、连接器代理或同源接口数据,处理返回体包裹解析、totalCount 保护、DataBridge 状态和静默刷新。触发词:dataBinding、DataBridge、数据桥、YidaCodeCanvas…
Yida Canvas Data Binding is an agent skill from openyida/openyida. 自定义页面真实数据接入技能。用于在使用 YidaCodeCanvas 组件实现的页面中用 dataBinding + 发布层 yida/utils window 桥接入宜搭表单、流程 API、连接器代理或同源接口数据,处理返回体包裹解析、totalCount 保护、DataBridge 状态和静默刷新。触发词:dataBinding、DataBridge、数据桥、YidaCodeCanvas 真实数据、页面显示 0 条但数据管理有数据、表单数据接入、流程数据接入、轮询刷新列表或 KPI。
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/business-action-permissions.md` and `references/connector-binding.md`).
It sits in Business, Finance & HR, covering OKRs and executive reporting. The repository describes itself as: Your own personal YiDA AI assistant! The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3dd4693. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript, json and bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Yida Canvas Data Binding loads about 2.4k tokens when it runs, and up to ~3.7k if it reads all its reference files. Until then it costs about 68 tokens; SKILL.md has 364 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from openyida/openyida at commit 3dd4693, republished under its MIT licence (© openyida). 364 words, ~2,422 tokens.
.claude/skills/yida-canvas-data-binding/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.本技能只处理使用 YidaCodeCanvas 组件实现的页面里的真实数据接入:把页面所需数据先声明成 dataBinding 契约,再由页面生成器或业务组件生成统一的 DataBridge。读取宜搭表单数据时,默认消费外层普通自定义页面在 didMount 中注册到 window.__OPENYIDA_YIDA_API__ 的 yida JS-API 桥;根级工具消费同层注册的 window.__OPENYIDA_UTILS__,其中 .yida 指向同一个 yida API 桥;连接器代理或自定义同源接口仍按自身 endpoint 读取。
YidaCodeCanvas 组件运行时是标准 React 组件环境,组件没有普通宜搭自定义页实例对象。因此数据接入要显式写清来源、字段映射、刷新策略和异常处理,不能靠隐式页面实例补齐。连接器模式使用发布层注入的 window.__OPENYIDA_CONNECTOR_API__。
涉及确认、取消、签到、删除等写操作时,编码前先读业务动作授权,在当前实现计划中记录角色、真实资源、数据范围、可写字段、前置状态和服务端实现;无法满足约束的动作保持禁用并列为未完成。界面显隐和管理员正向测试不能替代服务端授权及普通用户越权用例验证。
YidaCodeCanvas 组件只透传 code / runtimeCode / importedModules / pageType。this 上下文,也没有 dataSourceMap。this.utils.yida.*、didMount()、_customState 等普通页面契约在 YidaComp 内不可直接使用;发布使用 YidaCodeCanvas 组件实现的页面时,外层普通页面的 didMount 必须自动把 this.utils.yida.* 封装到 window.__OPENYIDA_YIDA_API__,并把 this.utils.toast/dialog/router.push/openPage/isMobile 等根级工具封装到 window.__OPENYIDA_UTILS__,组件内部只能消费这些 window 桥。/o/... 中桥可能存在,但匿名用户调用其 saveFormData 仍会返回 LOGIN FAILED;写入前必须先按 pageConfig.FREELOGIN === 'true' 或 loginUser.userId === 'FREEUSER' 分流。window.__OPENYIDA_YIDA_API__.saveFormData;匿名态只能按公开访问(匿名态)提交走 window.pageConfig.RECEIPT_SAVE_FORM_DATA,不得在桥失败后盲目重试。YidaCodeCanvas 组件没有官方 useDataBinding hook,不得从任何包 import { useDataBinding };真实表单数据绑定用页面内本地 useYidaData(binding)、DataBridge 和 yida JS-API 桥实现。mode=form 读取宜搭表单数据时,默认调用 window.__OPENYIDA_YIDA_API__.searchFormDatas(params),它底层来自官方 this.utils.yida.searchFormDatas(params)。发布层同一个桥也同步 this.utils.yida 的表单、流程、表单设计与运行态方法,例如 saveFormData、updateFormData、startProcessInstance、getProcessInstances、request、searchUserList。参数至少包含 formUuid、currentPage、pageSize 和 searchFieldJson,pageSize 一般显式写 50,字段 ID 必须来自真实 schema。/dingtalk/web/<appType>/v1/form/searchFormDatas.json。直连请求必须带 credentials: 'include',并从 window.g_config、window.pageConfig、window.__YIDA__、meta 或同源 cookie 读取 CSRF,同时写入 _csrf_token query 和 global_csrf_token 请求头。/query/form/searchFormDatas.json 不是可用表单数据端点。page-spec.json 或生成命令中优先携带 dataBinding。没有真实数据时只能标记为 seed,不能声称已经接入线上数据。
{
"mode": "form",
"appType": "APP_xxx",
"formUuid": "FORM_xxx",
"sourceName": "经销商经营数据",
"fields": {
"name": "textField_storeName",
"amount": "numberField_gmv",
"status": "selectField_status"
},
"refresh": "manual"
}| mode | 用途 | 必填 | 运行方式 |
|---|---|---|---|
seed | 演示兜底 / 本地预览 | 无 | 只用本地演示数据 |
form | 读宜搭表单数据 | appType、formUuid、fields | 默认 window.__OPENYIDA_YIDA_API__.searchFormDatas(params);桥不存在时才降级同源直连 /dingtalk/web/<appType>/v1/form/searchFormDatas.json |
connector | 读平台连接器代理 | connectorName(Http_*)、operationId;鉴权连接器另需 connectionId | 调用 window.__OPENYIDA_CONNECTOR_API__.invoke(binding, inputs),鉴权留在平台侧 |
url | 读同源业务接口 | endpoint | 同源 fetch |
report | 读报表或聚合结果 | 报表 schema 参数 | 使用平台聚合结果,不在前端拉全量猜聚合 |
页面实现通过以下入口消费数据契约:
page-spec.json 中的 dataBinding 字段。OPENYIDA_DATA_BINDING_JSON。.canvas.jsx 页面里的 DATA_BINDING 常量。当前列表、看板和大屏页面结构可复用 DataBridge 状态模型;其他页面结构需要按本技能规则补齐数据桥后再交付真实数据页面。
DataBridge 必须有 loading、error、rows、totalCount、lastUpdatedAt 状态。data、result.data、content.data、content.result.data、list、records、values。totalCount > 0 && rows.length === 0 必须视为数据桥故障,页面显式报错,不能静默显示“暂无数据”。useEffect 内请求要用 AbortController 或等价 cleanup,避免页面切换后继续 setState。实现骨架:
function getCsrfToken() {
var yida = window.__YIDA__ || {};
var sources = [
window.g_config,
window.pageConfig,
window.YIDA_CONFIG,
yida,
yida.config,
yida.pageConfig,
yida.runtimeConfig
];
var keys = ['_csrf_token', 'csrfToken', 'csrf_token', 'global_csrf_token', '_tb_token_', 'csrf'];
for (var i = 0; i < sources.length; i += 1) {
var source = sources[i] || {};
for (var j = 0; j < keys.length; j += 1) {
if (source[keys[j]]) return source[keys[j]];
}
}
var cookie = typeof document !== 'undefined' && document.cookie ? document.cookie : '';
var match = cookie.match(/(?:^|;\s*)(tianshu_csrf_token|aliwork_csrf_token|XSRF-TOKEN|_csrf_token|csrfToken|_tb_token_)=([^;]+)/);
return match ? decodeURIComponent(match[2]) : '';
}
function unwrapRows(payload) {
var candidates = [
payload && payload.data,
payload && payload.result && payload.result.data,
payload && payload.content && payload.content.data,
payload && payload.content && payload.content.result && payload.content.result.data,
payload && payload.list,
payload && payload.records,
payload && payload.values
];
for (var i = 0; i < candidates.length; i += 1) {
if (Array.isArray(candidates[i])) return candidates[i];
}
return [];
}
function unwrapTotal(payload, rows) {
var candidates = [
payload && payload.totalCount,
payload && payload.total,
payload && payload.data && payload.data.totalCount,
payload && payload.result && payload.result.totalCount,
payload && payload.content && payload.content.totalCount
];
for (var i = 0; i < candidates.length; i += 1) {
var value = Number(candidates[i]);
if (!Number.isNaN(value)) return value;
}
return rows.length;
}发布使用 YidaCodeCanvas 组件实现的页面时,必须在外层页面 actions.module.source 中注入桥接脚本,并把根节点 componentDidMount 指向 didMount。桥接脚本把普通页面运行态可用的 this.utils.yida.* 封装到 window.__OPENYIDA_YIDA_API__ 和 window.openyidaYidaApi,并把根级 this.utils.* 方法封装到 window.__OPENYIDA_UTILS__ 和 window.openyidaUtils,供组件内部通过 window.parent / parentWindow 查找。
页面内固定使用下面的读取顺序:
function getYidaApiBridge() {
var candidates = [];
try { candidates.push(window.__OPENYIDA_YIDA_API__); } catch (err) {}
try { candidates.push(window.parent && window.parent.__OPENYIDA_YIDA_API__); } catch (err) {}
try {
if (typeof parentWindow !== 'undefined') {
candidates.push(parentWindow.__OPENYIDA_YIDA_API__);
}
} catch (err) {}
return candidates.find(function (item) {
return item && typeof item.searchFormDatas === 'function';
}) || null;
}
async function fetchFormRows(binding, signal) {
var bridge = getYidaApiBridge();
var payload;
if (bridge) {
payload = await bridge.searchFormDatas({
appType: binding.appType,
formUuid: binding.formUuid,
currentPage: binding.currentPage || 1,
pageSize: binding.pageSize || 50,
searchFieldJson: JSON.stringify(binding.query || {}),
dynamicOrder: binding.dynamicOrder || ''
});
} else {
payload = await fetchFormRowsBySameOriginFallback(binding, signal);
}
var rows = unwrapRows(payload);
var totalCount = unwrapTotal(payload, rows);
if (totalCount > 0 && rows.length === 0) {
throw new Error('表单返回 totalCount > 0,但页面没有解析到行数据,请检查返回体包裹层和字段映射。');
}
return { rows: rows, totalCount: totalCount, raw: payload };
}此处调用的是页面 JS-API 桥。简单字段筛选沿用普通自定义页的字段 ID 字典,不把 CLI 或其他查询接口的条件数组、conditionType/children 树混入这里:
var query = {};
if (keyword.trim()) query[fields.name] = keyword.trim();
var payload = await bridge.searchFormDatas({
formUuid: binding.formUuid,
currentPage: 1,
pageSize: 50,
searchFieldJson: JSON.stringify(query)
});清空搜索时传空字典,并把 currentPage 重置为 1。需要复杂条件时先核对所调用接口的具体契约;不要凭字段名相似套用其他格式。验收必须输入一条已知记录的筛选值,确认返回行数与内容,再清空确认全量恢复;页面显示数据不代表筛选有效。
实现前先确认 dataBinding.mode === 'form'、appType/formUuid 和 fields 都来自真实表单 Schema。表单查询必须优先走 yida JS-API 桥,桥缺失时才降级同源直连。连接器模式遵守 Canvas 连接器绑定,不得接收任意外部 endpoint。
生成真实数据页前必须确认:
appType 和 formUuid。fields 中每个字段 ID 来自 openyida get-schema 或缓存 schema,不靠猜。YidaCodeCanvas 组件的 runtimeCode 非空。isOpen === 'y',并确认目标表单 DEFAULT 权限包含 FREE_LOGIN。{ componentName, fieldId, fieldData: { value } },CSRF 优先来自 window.g_config._csrf_token。success、formInstId 或总数增长;必须按返回的实例 ID 回读代表性字段值。验收命令:
openyida publish project/pages/src/dashboard.canvas.jsx <appType> <formUuid>
openyida get-schema <appType> <formUuid> > .cache/openyida/dashboard-schema.json| 现象 | 处理 |
|---|---|
| 页面显示 0 条,但数据管理里有数据 | 先检查外层页面是否注入 window.__OPENYIDA_YIDA_API__,再检查返回体包裹层和字段映射;触发 totalCount 保护 |
| 首屏后每 5 秒闪白 | 轮询改成 silent refresh,保留旧数据直到新数据返回 |
| 登录态存在但接口 403 | 优先改回 yida JS-API 桥;只有降级直连时才检查同源路径、CSRF 参数和 global_csrf_token 头 |
公开页提交返回 LOGIN FAILED | 不以桥对象存在判断登录态;先识别 FREELOGIN / FREEUSER,匿名态改走 RECEIPT_SAVE_FORM_DATA |
| 匿名网关返回成功但字段为空 | 把每项改为 { componentName, fieldId, fieldData: { value } },再按 formInstId 回读字段值 |
| 接口失败后仍显示漂亮 demo 数据 | 改成错误态 + seed 标识,不能伪装真实成功 |
| 字段值全为空 | 回读 schema 校验字段 ID,确认字段映射没有使用 label |
© openyida, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in yida-skills/skills/yida-canvas-data-binding of openyida/openyida.
Open the folder on GitHubat commit 3dd4693
Yida Canvas Data Binding next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Yida Canvas Data Binding this skillopenyida/openyida | 220 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Analytics Strategyrampstackco/claude-skills | 940 | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Pine BacktesterTradersPost/pinescript-agents | 170 | 1 repos | ~3.9k | Automated safety check: Pass | None | |
| Onboarding Plannerbpinheiroms/dotfiles | 108 | — | ~5.4k | Automated safety check: Pass | None | |
| Replit Decksanqiufong/slides-from-anything | 132 | 1 repos | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Building Streamlit Dashboardsiusztinpaul/designing-real-world-ai-agents-workshop | 513 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
rampstackco/claude-skills
Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.
TradersPost/pinescript-agents
Implements comprehensive backtesting and performance metrics.
bpinheiroms/dotfiles
Plan high-conversion mobile app onboarding flows from scratch.
sanqiufong/slides-from-anything
Single-file horizontal-swipe HTML deck in the style of Replit Slides's landing-page template gallery.
iusztinpaul/designing-real-world-ai-agents-workshop
Building dashboards in Streamlit. An agent skill from iusztinpaul/designing-real-world-ai-agents-workshop.
ibuilder/massing
Drive a Massing BIM/AEC project from an AI agent over MCP — read a project's status, records, CDE, KPI and model-quality checks; run standards-compliance, schedule-risk, embodied-carbon, permit-…
openyida/openyida
宜搭自定义页面开发规范,使用 YidaCodeCanvas 组件实现现代 React18 自定义页面。用于官网、看板、工作台、列表、详情、门户壳、可视化、hooks 交互、表单入口,以及需要门户组件、数据管理视图、成员、部门或上传组件的场景;发布层自动注入 yida/utils window 桥。
openyida/openyida
快速发布 OpenYida npm 正式版或测试版。用户说“发布正式版”“发布测试版”“发 beta”或要求按当天日期生成版本 tag 时使用;不用于宜搭应用或自定义页面发布。
openyida/openyida
Plan 模式的视觉设计分支。基于需求选择视觉方向,再结合业务页面规划维护 build-plan.json 的 visualStyle,供 CLI 派生 design.md。
openyida/openyida
Prevent stale local OpenYida custom page source from overwriting live designer edits.
openyida/openyida
Generate, update, or drift-check agent-facing CodeMaps as progressive code terrain indexes for projects, features, capabilities, functions, modules, or bug chains.
openyida/openyida
面向 GPT-5.5 等强模型和熟练用户的轻量 AI Agent Harness / checkpoint-driven coding skill。默认用户已经把任务切到基本可执行的最小混沌单元;模型自行分解、探索与推进,人类通过最终目标、最小 spec、复述、checkpoint、证据验证与回写来低干扰控盘。
Categories
自定义页面真实数据接入技能。用于在使用 YidaCodeCanvas 组件实现的页面中用 dataBinding + 发布层 yida/utils window 桥接入宜搭表单、流程 API、连接器代理或同源接口数据,处理返回体包裹解析、totalCount 保护、DataBridge 状态和静默刷新。触发词:dataBinding、DataBridge、数据桥、YidaCodeCanvas…. Yida Canvas Data Binding is an agent skill from openyida/openyida.
Yida Canvas Data Binding fits situations like: tasks that involve OKRs and executive reporting.
Run `npx skills add openyida/openyida --skill yida-canvas-data-binding -a claude-code`. Or copy the skill folder (yida-skills/skills/yida-canvas-data-binding in openyida/openyida) into .claude/skills/yida-canvas-data-binding in your project. Claude Code loads it when a task matches its description.
Run `npx skills add openyida/openyida --skill yida-canvas-data-binding -a codex`. Or copy the skill folder (yida-skills/skills/yida-canvas-data-binding in openyida/openyida) into .agents/skills/yida-canvas-data-binding in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openyida/openyida --skill yida-canvas-data-binding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/yida-canvas-data-binding, .gemini/skills/yida-canvas-data-binding, .github/skills/yida-canvas-data-binding and .opencode/skills/yida-canvas-data-binding in your project.
SKILL.md names no scripts, command-line tools or credentials: Yida Canvas Data Binding is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Yida Canvas Data Binding is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Yida Canvas Data Binding: Analytics Strategy (rampstackco/claude-skills, 940 stars), Pine Backtester (TradersPost/pinescript-agents, 170 stars), Onboarding Planner (bpinheiroms/dotfiles, 108 stars) and Replit Deck (sanqiufong/slides-from-anything, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
openyida (a GitHub organization) maintains it in openyida/openyida, which has 220 GitHub stars. The repository holds 58 skills in this directory. The repository was last updated on September 30, 2026.
Source: openyida/openyida on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.