Yida Openyida Publish Guard logo

Yida Openyida Publish Guard

Organization
openyida
yida-openyida-publish-guard

Prevent stale local OpenYida custom page source from overwriting live designer edits. Use before modifying, compiling, or publishing an existing Yida custom page, display page, pageDesigner URL, or formUuid with openyida publish, especially when users may have edited the page in the designer after local source was last copied.

Overview

Publisheropenyida
Repositoryopenyida
Skill nameyida-openyida-publish-guard
Stars
228
Forks
50
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by openyida on GitHub. Read the source before you install it.

Installation

Install the Yida Openyida Publish Guard AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-openyida-publish-guard
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/openyida/openyida.git /tmp/openyida
mkdir -p .claude/skills
cp -r /tmp/openyida/yida-skills/skills/yida-openyida-publish-guard .claude/skills/yida-openyida-publish-guard
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Yida Openyida Publish Guard in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Yida Openyida Publish Guard on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Yida Openyida Publish Guard is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

OpenYida Publish Guard

Purpose

Use this skill whenever an existing OpenYida custom page is about to be edited or published from local source.

The Yida designer is also a source of truth. Users can make small live edits in the designer, such as deleting a query button, while the local .oyd.jsx file still contains older code. Publishing that stale local file will silently restore the deleted UI or roll back other live changes.

This skill adds a mandatory online-state check before publishing so agents merge requested changes onto the current live page instead of overwriting it.

When To Use

Use this skill for:

  • Any openyida publish to an existing custom page.
  • Any request that mentions a pageDesigner URL, display page, custom page JSX, or formUuid.
  • Any targeted page edit where the user says "only change X" or "do not touch other code".
  • Any situation where the user or another editor may have changed the page in the Yida designer after the local source was created.

Do not use this skill for creating a brand-new page that has no existing live schema.

Required Workflow

  1. Confirm the target appType, formUuid, and local source path.
  2. Check the OpenYida environment and login state:
bash
openyida env --json
openyida login --check-only --json
  1. Fetch the live schema before editing or publishing:
bash
openyida get-schema <appType> <formUuid> --json

If the schema needs to be inspected from a file, save stdout with the agent's structured file write tool to <projectRoot>/.cache/openyida/publish-guard/live-<formUuid>.json. From the workspace root that path is typically project/.cache/openyida/publish-guard/live-<formUuid>.json. Do not use shell redirection and do not commit fetched live schema files.

  1. Inspect the fetched live page for current code and configuration. For custom display pages, check at least:
  • pages[].componentsTree[].methods.__initMethods__.source
  • pages[].componentsTree[].methods.__initMethods__.compiled
  • JSX render source under componentsTree when present
  • dataSource.online and existing connector or page-level data source definitions
  • Any visible component tree change that could represent a designer edit
  1. Compare the live source with the local source before publishing.
  • If the local source is older or missing a user-visible live change, merge the requested change into the live/current behavior.
  • If the user explicitly says "only change X", verify the final diff only touches X and strictly required helper or style code.
  • If live and local differ in unrelated user-visible areas, pause and ask whether to preserve the live changes unless the preservation is obvious.
  • Exception: only when the user explicitly says "use local source" may you skip live-source merging. You must still run env check -> check-page -> compile -> publish --health-check. Skipping live-source merging does not mean skipping safety checks.
  1. Only after the merge is scoped and reviewed, run:
bash
openyida check-page <source>
openyida compile <source>
openyida publish <source> <appType> <formUuid> --health-check

Minimal Diff Discipline

  • Do not reformat the file.
  • Do not regenerate the entire page unless explicitly requested.
  • Do not replace a page with an older local copy.
  • Keep deleted live UI deleted unless the user asks to restore it.
  • Preserve existing page data sources; confirm publish output reports retained data sources.
  • Search the final local source for accidentally restored labels or controls from the bug report, such as 查询, queryButton, or other recently removed UI.

Incident That Motivated This Skill

While editing a Junjie Yida ranking page, a user had deleted the query button directly in the Yida designer. A later targeted change was published from an older local .oyd.jsx file without first checking the live designer schema. The stale publish restored the deleted query button and overwrote the user's immediate designer edit.

The fix was to restore the deleted UI state and add this guardrail: before future OpenYida page edits or publishes, fetch the live schema, compare the current live source with local source, and merge the requested change onto the latest live behavior.

Recovery If An Overwrite Happens

  1. Acknowledge the overwrite plainly.
  2. Restore the overwritten live change immediately, without broad refactors.
  3. Re-run openyida check-page, openyida compile, and openyida publish --health-check.
  4. Update this skill if the failure mode is not already covered.

Frequently asked questions

What does the Yida Openyida Publish Guard AI skill do?

Prevent stale local OpenYida custom page source from overwriting live designer edits. Use before modifying, compiling, or publishing an existing Yida custom page, display page, pageDesigner URL, or formUuid with openyida publish, especially when users may have edited the page in the designer after local source was last copied.

Why use Yida Openyida Publish Guard on TypingMind?

Because you install it once and use it with any model. Yida Openyida Publish Guard is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Yida Openyida Publish Guard in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/openyida/openyida/tree/main/yida-skills/skills/yida-openyida-publish-guard. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Yida Openyida Publish Guard?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Yida Openyida Publish Guard?

As many as you like. As long as a model supports skills, you can use Yida Openyida Publish Guard with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Yida Openyida Publish Guard AI skill free?

Yes. It is published on GitHub by openyida under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇