← ui-consistencyCONTENT HISTORY

Update to ui-consistency

Snapshot Oct 27, 2026 · 00:48 UTC · version 1.4.0

WHAT CHANGED

Package or technical metadata updated

Package or technical metadata updated

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Save ui-consistency and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Is v2 template

Before

Oct 24, 2026 · 13:35 UTC

Not present

After

Oct 27, 2026 · 00:48 UTC

false

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

added /is_v2_template

BEFORE
Field was absent
AFTER
false
Full snapshot data
{
  "canonical_app_id": null,
  "connector_id": null,
  "created_at": "2026-10-03T08:48:09.213844Z",
  "discoverability": "LISTED",
  "id": "plugins_6ac0bf67b4a48191bf31b40c1b3c28e8",
  "is_template": false,
  "is_template_instance": false,
  "is_v2_template": false,
  "name": "ui-consistency",
  "release": {
    "app_ids": [],
    "app_manifest": null,
    "app_templates": [],
    "description": "Keeps new UI consistent with a project's existing pages. Your coding agent reads how they are built and writes new ones the same way.",
    "display_name": "ui-consistency",
    "id": "pluginrel_44d38077334c819195e69e3815b3d783",
    "interface": {
      "brand_color": "#1F2A44",
      "capabilities": [
        "Reads how your existing pages are built",
        "Plans a new page from your own components and theme",
        "Checks a written page against the page it follows"
      ],
      "category": "Developer Tools",
      "composer_icon_dark_url": null,
      "composer_icon_url": "https://files.openai.com/content?id=file_000000002d3c8243bb5918c06824c7dc",
      "default_prompt": "Add a returns page like the orders page",
      "default_prompts": [
        "Add a returns page like the orders page",
        "Check whether our settings pages match each other",
        "Build the signup form the way our other forms are built"
      ],
      "developer_name": "Kamen Kurtev",
      "logo_url": "https://files.openai.com/content?id=file_00000000dbec82439c78021fbbdd4336",
      "logo_url_dark": null,
      "long_description": "ui-consistency makes your project's own design system something the coding agent reads before it writes UI. Ask for a page, a form or a change to one, and the agent first reads how the pages you already have are built: which shared components they use and how, the theme and its tokens, how they validate input and show errors. Then it writes the new page the same way, from a checklist, and has a separate agent compare the result with the page it follows. It works with any UI technology, including plain HTML and CSS, in a single app or a monorepo, and needs no configuration. It reads only your project; it has no server, no network access and no telemetry, and writes nothing into your repository besides the pages you asked for. It needs a project with code to read: in a conversation without one there is nothing for it to follow.",
      "plugin_category_id": "developer tools",
      "privacy_policy_url": "https://github.com/kamenkurtev/ui-consistency/blob/main/PRIVACY.md",
      "screenshot_urls": [],
      "short_description": "Pages built like your others",
      "terms_of_service_url": "https://github.com/kamenkurtev/ui-consistency/blob/main/LICENSE",
      "website_url": "https://github.com/kamenkurtev/ui-consistency"
    },
    "keywords": [
      "design-system",
      "design",
      "ui",
      "ux",
      "frontend",
      "components",
      "theme",
      "design-tokens",
      "css",
      "ui-design",
      "accessibility",
      "code-quality",
      "consistency",
      "react",
      "vue",
      "angular"
    ],
    "mcp_servers": [],
    "onboarding_skill_name": null,
    "requires_local_executor": false,
    "skills": [
      {
        "description": "For what the end user sees — checks whether it can be read and used without a mouse (contrast, focus, keyboard reach, labels, text alternatives, target size, structure) against a standard. Use when asked whether a page meets an accessibility standard, or when the project states an accessibility requirement.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "accessibility",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "radar",
          "short_description": "For what the end user sees — checks whether it can be read and used without a mouse (contrast, focus, keyboard reach, labels, text alternatives, target size, structure) against a standard. Use when asked whether a page meets an accessibility standard, or when the project states an accessibility requirement."
        },
        "name": "accessibility",
        "plugin_release_skill_id": "pluginrsk_6adc4114eb6881918afefd5042318f55"
      },
      {
        "description": "For what the end user sees — prepares a change to one region of one existing page, so it comes out the way the project's other pages write that position. Use when changing a label, a value, a field, a button or what a control does on one page, when no new page and no change across pages is asked for.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "adjusting",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "cursor",
          "short_description": "For what the end user sees — prepares a change to one region of one existing page, so it comes out the way the project's other pages write that position. Use when changing a label, a value, a field, a button or what a control does on one page, when no new page and no change across pages is asked for."
        },
        "name": "adjusting",
        "plugin_release_skill_id": "pluginrsk_6adc411501f48191823668e8f8346bca"
      },
      {
        "description": "For what the end user sees — counts what a project's pages do, so a convention is told apart from one page's habit. Use when a count of how the other pages write something is about to be recorded, or when a checker recounts a line of a checklist.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "conventions",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "chart",
          "short_description": "For what the end user sees — counts what a project's pages do, so a convention is told apart from one page's habit. Use when a count of how the other pages write something is about to be recorded, or when a checker recounts a line of a checklist."
        },
        "name": "conventions",
        "plugin_release_skill_id": "pluginrsk_6adc411737a88191bb16bc6e56d2a7d9"
      },
      {
        "description": "For what the end user sees — the order that settles how a page is written when the project disagrees with itself, and what waits on a person. Use when the request, a named page, a shared piece and the other pages do not all agree on how a page is written, or before anything is put to a person.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "decisions",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "hierarchy",
          "short_description": "For what the end user sees — the order that settles how a page is written when the project disagrees with itself, and what waits on a person. Use when the request, a named page, a shared piece and the other pages do not all agree on how a page is written, or before anything is put to a person."
        },
        "name": "decisions",
        "plugin_release_skill_id": "pluginrsk_6adc411619f081918b1273f9e0ca4289"
      },
      {
        "description": "For what the end user sees — reads the design for a page where there is one, and where there is none agrees the page's shape with the person, as a tree of the project's own pieces, before any code; draws it only when asked. Use when a request comes with a design, a picture or a described screen, when a new page has no page near enough to follow, or when somebody wants to see how a page will look before it is built.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "design",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "For what the end user sees — reads the design for a page where there is one, and where there is none agrees the page's shape with the person, as a tree of the project's own pieces, before any code; draws it only when asked. Use when a request comes with a design, a picture or a described screen, when a new page has no page near enough to follow, or when somebody wants to see how a page will look before it is built."
        },
        "name": "design",
        "plugin_release_skill_id": "pluginrsk_6adc41164b7481919b72de6f48bf3a96"
      },
      {
        "description": "For what the end user sees — finds how this project already builds that kind of page (the components its pages reuse, theme values, validation, error handling) and writes it as a checklist before any UI code. Use when anything the end user sees is built or changed — a page, screen, form or component — whether or not the request names a page to follow, and before a plan's first task that changes what the user sees is handed to anyone, whichever process wrote the plan.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "finding-patterns",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "search",
          "short_description": "For what the end user sees — finds how this project already builds that kind of page (the components its pages reuse, theme values, validation, error handling) and writes it as a checklist before any UI code. Use when anything the end user sees is built or changed — a page, screen, form or component — whether or not the request names a page to follow, and before a plan's first task that changes what the user sees is handed to anyone, whichever process wrote the plan."
        },
        "name": "finding-patterns",
        "plugin_release_skill_id": "pluginrsk_6adc411662688191904f460b1bb37c4d"
      },
      {
        "description": "For what the end user sees — builds each page from its checklist, one page per task. Use when writing or changing UI and a checklist or UI plan exists, whether executing that plan page by page, refactoring a set of pages, or making a small change to one page.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "implementing",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "code",
          "short_description": "For what the end user sees — builds each page from its checklist, one page per task. Use when writing or changing UI and a checklist or UI plan exists, whether executing that plan page by page, refactoring a set of pages, or making a small change to one page."
        },
        "name": "implementing",
        "plugin_release_skill_id": "pluginrsk_6adc4114f6108191a84d1b3870762552"
      },
      {
        "description": "For what the end user sees — turns each page's checklist into a plan of one checkable task per page. Use when UI work spans several steps or pages (a new feature, a refactor of many pages, one change applied to every page), including when another planning skill is about to write that plan.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "planning",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "hierarchy",
          "short_description": "For what the end user sees — turns each page's checklist into a plan of one checkable task per page. Use when UI work spans several steps or pages (a new feature, a refactor of many pages, one change applied to every page), including when another planning skill is about to write that plan."
        },
        "name": "planning",
        "plugin_release_skill_id": "pluginrsk_6adc4114e960819199456e56160215fa"
      },
      {
        "description": "For what the end user sees — how this project sets its values and elements — its theme, spacing, typography, and the element each role comes out as. Use when a phase needs a value or an element recorded, written or checked, or when somebody asks what the project's theme or scale is.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "values",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "For what the end user sees — how this project sets its values and elements — its theme, spacing, typography, and the element each role comes out as. Use when a phase needs a value or an element recorded, written or checked, or when somebody asks what the project's theme or scale is."
        },
        "name": "values",
        "plugin_release_skill_id": "pluginrsk_6adc41170bd48191b5c1700d4c6bb83d"
      },
      {
        "description": "For what the end user sees — a separate agent checks written pages against their checklist and the rest of the project, and reports what differs. Use when UI has been written, before calling it done or opening a PR, or when asked whether pages match (\"does this match\", \"did I miss a page\", a page that looks or behaves unlike its neighbours).",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "verifying",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "search",
          "short_description": "For what the end user sees — a separate agent checks written pages against their checklist and the rest of the project, and reports what differs. Use when UI has been written, before calling it done or opening a PR, or when asked whether pages match (\"does this match\", \"did I miss a page\", a page that looks or behaves unlike its neighbours)."
        },
        "name": "verifying",
        "plugin_release_skill_id": "pluginrsk_6adc411670348191ac0e50ddf4069e02"
      }
    ],
    "version": "1.4.0"
  },
  "scope": "GLOBAL",
  "share_url": "https://chatgpt.com/plugins/plugins_6ac0bf67b4a48191bf31b40c1b3c28e8?open_in_app",
  "status": "ENABLED"
}

SHA-256 of public snapshot: 949053c1e0f681fab513505967e5728ef11eca15a39c905650918913d8da215e