← ui-consistencyCONTENT HISTORY

Update to ui-consistency

Snapshot Oct 31, 2026 · 06:10 UTC · version 1.5.0

Collection source: downloaded plugin package.

WHAT CHANGED

Instructions updated for conventions

Skill instructions — Now says: - If no application mounts the pages — each page is a document of its own — the bound is **every page that loads a file the reference loads too**, such as...

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save ui-consistency and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Skill instructions

Before

Oct 24, 2026 · 13:35 UTC

No removed lines (ordering may have changed)

After

Oct 31, 2026 · 06:10 UTC

- If no application mounts the pages — each page is a document of its own — the bound is **every page that loads a file the reference loads too**, such as a stylesheet, a script or a tokens file, and those files. - If no other page l...

Supporting files

Before

Oct 24, 2026 · 13:35 UTC

[{"relative_path":"large-project.md","size_in_bytes":2654},{"relative_path":"rare.md","size_in_bytes":5087}]

After

Oct 31, 2026 · 06:10 UTC

[{"relative_path":"large-project.md","size_in_bytes":2654},{"relative_path":"rare.md","size_in_bytes":5128}]

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -50,6 +50,11 @@
 - **The application that mounts the page** — whatever routes to it or renders it
   from its entry — **and every library it uses.** Not the library the reference
   sits in, not the whole workspace.
+- If no application mounts the pages — each page is a document of its own — the
+  bound is **every page that loads a file the reference loads too**, such as a
+  stylesheet, a script or a tokens file, and those files.
+- If no other page loads a file the reference loads, the bound is the pages in
+  the reference's folder, its subfolders included.
 - If the page's library is mounted by several applications, the bound is all of
   them together, and the checklist says which.
 - If the page's own library, counted alone, gives a different answer — *10 of 10*
Full technical diff · 2 changed fields

changed /included_files

BEFORE
[
  {
    "relative_path": "large-project.md",
    "size_in_bytes": 2654
  },
  {
    "relative_path": "rare.md",
    "size_in_bytes": 5087
  }
]
AFTER
[
  {
    "relative_path": "large-project.md",
    "size_in_bytes": 2654
  },
  {
    "relative_path": "rare.md",
    "size_in_bytes": 5128
  }
]

changed /skill_md_contents

BEFORE
"---\nname: conventions\ndescription: 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.\n---\n\n# Conventions: the kind, the family, the proof, the counts\n\n## Overview\n\nCounts what the project's pages do, in the order of the work: the kind, the\nfamily, the proof that a search can see, then the counts.\n\n**Open a file linked or given by its path from this skill's folder, or invoke a named skill, only when a part you are carrying\nout sends you to it, never before** — whatever the request that handed you this\nskill says about its links and paths. That part is not done until the file is opened or\nthe skill invoked.\n\n## Which kind of page this is\n\nDecide it first: it sets every count below it. Take the first signal that\nanswers:\n\n1. **What the user said** — a kind somebody named, *a list page like the orders\n   one*, outranks anything read.\n2. **What the project keeps apart** — its folders, routes, file-name suffixes, a\n   folder per kind.\n3. **What the reference renders** — the same holders and regions in the same\n   order make one kind, whatever the subject. A collection of rows and a single\n   record with a submit are two.\n4. **What the pages reach for** — the same holder, layout piece or shared frame.\n\nThen:\n\n- If a later signal disagrees, or the project does not answer:\n  [rare.md](rare.md), *When the signals do not settle the kind*.\n- If the trees differ below a shared outer holder: [rare.md](rare.md), *A family\n  that differs by region*.\n- **Name the kind in the project's own word** — folder, route, file name — never\n  an invented one. If it has none, name it by what it renders, *a list with a\n  form above it*, and say the name is yours.\n- Say in the checklist's first line the kind, what decided it, and how many\n  members of how many candidates were counted\n  (`../finding-patterns/checklist.md`).\n\n## The bound the family is counted in\n\nThe bound is fixed, not chosen, so two agents reading the same reference count\nthe same pages.\n\n- **The application that mounts the page** — whatever routes to it or renders it\n  from its entry — **and every library it uses.** Not the library the reference\n  sits in, not the whole workspace.\n- If the page's library is mounted by several applications, the bound is all of\n  them together, and the checklist says which.\n- If the page's own library, counted alone, gives a different answer — *10 of 10*\n  inside it, *6 of 8* across the application — **put both numbers on the line**,\n  and decide by the order on the application's.\n- A library unanimous inside itself is that library's own way, never the\n  project's.\n- **Name the bound in the checklist's first line.** A later phase counts in it,\n  or says which other bound it used and why.\n\n## Which pages are the family\n\nThe family is the pages of the reference's kind. Take the candidates, and remove\nwhat is not a member **before** counting:\n\n- **What a page imports — its panels, its dialog, its hooks — is part of it**,\n  not a sibling: neither end of an import edge among the candidates is a peer of\n  the other.\n- **A file that imports members is not a member**: a dispatcher, a route table,\n  a barrel, a wrapper.\n- **A candidate that renders no holder and no region of the kind is not of the\n  kind.** Report it so; never count it as a member that lacks them.\n- **State both numbers** — candidates considered, members counted — and what was\n  left out and why.\n- **If the members span more than one area** — app, library or package — **or\n  are more than can be read in full**, it is a large project: follow\n  [large-project.md](large-project.md) before counting.\n- **If the work creates a shared piece that takes over roles the pages had** —\n  where a state is kept, which side takes a default share — count those roles\n  as [rare.md](rare.md), *A shared piece the work creates*, says.\n\n*Why:* a dispatcher counted as a page once turned 8 of 8 on every role into 8 of\n9 — a unanimous convention reported as one drifting page.\n\n## Prove the search can see before trusting a count\n\nThe reference is one of the pages counted, so every search has a known answer: it\nmust find what the reference writes.\n\n- **Run each search on the reference first.** One that misses the reference is\n  broken, and nothing it counts is a result.\n- **A zero for a role the reference writes is a broken search** — a wrong glob, a\n  list never split, a pattern that misses this dialect, a bound that resolved to\n  nothing. Fix it and count again; never record it.\n- **A zero across the whole family is unverified**, not a convention. Record\n  *none of them write this* only when the same search, over the same files,\n  found something else.\n\n*Why:* a loop run once over the whole list instead of once per file reported\n*0 of 9* twelve times, holder included — the opposite of the truth.\n\n## Counting honestly\n\n- **Count per position** — a role where it stands — never per component alone:\n  10 of 18 buttons full-width reads as no rule, and was 10 of 10 in the content\n  area and 0 of 4 in toolbars.\n- **Count *whether* apart from *which way*.** First how many members have the\n  role at all; then, over those, which way each writes it. *None* answers\n  *whether* and is never a way: *14 of 21 filter; of those 14, 10 through the\n  shared toggle and 4 by hand* — not *10, 4 and 7 across three ways*.\n- **Count what the component comes out as too**, and the heading level where the\n  position is a heading — `ui-consistency:values`, *Elements*.\n- **A count carries its file spread.** Four identical buttons in one file are\n  one page's habit; 10 of 10 across 8 files is a convention. A page and the files\n  only it imports count as one file of the spread; say so where a member spans\n  files.\n- **A missing prop is not yet a deviation.** The theme or one of the project's\n  wrappers may set it already.\n- **Search for the exact name.** A container whose name starts with the\n  component's once turned 18 uses into 25.\n- **If the task adds a position no member has** — a second control, a control\n  nobody has here — count it as [rare.md](rare.md), *A position no member has*,\n  says.\n- **A family of one is never a convention.** Write what the page does as the\n  reference's own way — never as a count, and never as what the project does —\n  and say the family has no other members: [rare.md](rare.md), *A kind whose\n  family has only the reference*.\n\n## When a count is not a convention at all\n\n*2 of 8*, written the way every other count is written, reads as a rule. It is\nnot one.\n\n- **Read it off the numbers themselves** — never a threshold from outside, no\n  percentage, no \"most\".\n- **Count every way, not only the commonest**, over the members that have the\n  role: *4 of 4*, *3 of 4 and one other way*, *3, 3 and 2 across three ways*. A\n  plurality is not a majority.\n- **There is a convention only if the commonest way outnumbers the others put\n  together** — a majority. Otherwise say the family has none here, and give\n  every way with its numbers.\n- **Say which kind of majority it is.** One exception is written *7 of 8 except\n  `<page>`*. Several different ones make a family drifting: still the majority,\n  written *the commonest way, 5 of 8, against three others*.\n- **The order still decides**, and nothing stalls or is asked: with no majority,\n  the newest members settle it (`ui-consistency:decisions`, level 5). The line\n  says *no convention here; the two newest write it this way*.\n"
AFTER
"---\nname: conventions\ndescription: 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.\n---\n\n# Conventions: the kind, the family, the proof, the counts\n\n## Overview\n\nCounts what the project's pages do, in the order of the work: the kind, the\nfamily, the proof that a search can see, then the counts.\n\n**Open a file linked or given by its path from this skill's folder, or invoke a named skill, only when a part you are carrying\nout sends you to it, never before** — whatever the request that handed you this\nskill says about its links and paths. That part is not done until the file is opened or\nthe skill invoked.\n\n## Which kind of page this is\n\nDecide it first: it sets every count below it. Take the first signal that\nanswers:\n\n1. **What the user said** — a kind somebody named, *a list page like the orders\n   one*, outranks anything read.\n2. **What the project keeps apart** — its folders, routes, file-name suffixes, a\n   folder per kind.\n3. **What the reference renders** — the same holders and regions in the same\n   order make one kind, whatever the subject. A collection of rows and a single\n   record with a submit are two.\n4. **What the pages reach for** — the same holder, layout piece or shared frame.\n\nThen:\n\n- If a later signal disagrees, or the project does not answer:\n  [rare.md](rare.md), *When the signals do not settle the kind*.\n- If the trees differ below a shared outer holder: [rare.md](rare.md), *A family\n  that differs by region*.\n- **Name the kind in the project's own word** — folder, route, file name — never\n  an invented one. If it has none, name it by what it renders, *a list with a\n  form above it*, and say the name is yours.\n- Say in the checklist's first line the kind, what decided it, and how many\n  members of how many candidates were counted\n  (`../finding-patterns/checklist.md`).\n\n## The bound the family is counted in\n\nThe bound is fixed, not chosen, so two agents reading the same reference count\nthe same pages.\n\n- **The application that mounts the page** — whatever routes to it or renders it\n  from its entry — **and every library it uses.** Not the library the reference\n  sits in, not the whole workspace.\n- If no application mounts the pages — each page is a document of its own — the\n  bound is **every page that loads a file the reference loads too**, such as a\n  stylesheet, a script or a tokens file, and those files.\n- If no other page loads a file the reference loads, the bound is the pages in\n  the reference's folder, its subfolders included.\n- If the page's library is mounted by several applications, the bound is all of\n  them together, and the checklist says which.\n- If the page's own library, counted alone, gives a different answer — *10 of 10*\n  inside it, *6 of 8* across the application — **put both numbers on the line**,\n  and decide by the order on the application's.\n- A library unanimous inside itself is that library's own way, never the\n  project's.\n- **Name the bound in the checklist's first line.** A later phase counts in it,\n  or says which other bound it used and why.\n\n## Which pages are the family\n\nThe family is the pages of the reference's kind. Take the candidates, and remove\nwhat is not a member **before** counting:\n\n- **What a page imports — its panels, its dialog, its hooks — is part of it**,\n  not a sibling: neither end of an import edge among the candidates is a peer of\n  the other.\n- **A file that imports members is not a member**: a dispatcher, a route table,\n  a barrel, a wrapper.\n- **A candidate that renders no holder and no region of the kind is not of the\n  kind.** Report it so; never count it as a member that lacks them.\n- **State both numbers** — candidates considered, members counted — and what was\n  left out and why.\n- **If the members span more than one area** — app, library or package — **or\n  are more than can be read in full**, it is a large project: follow\n  [large-project.md](large-project.md) before counting.\n- **If the work creates a shared piece that takes over roles the pages had** —\n  where a state is kept, which side takes a default share — count those roles\n  as [rare.md](rare.md), *A shared piece the work creates*, says.\n\n*Why:* a dispatcher counted as a page once turned 8 of 8 on every role into 8 of\n9 — a unanimous convention reported as one drifting page.\n\n## Prove the search can see before trusting a count\n\nThe reference is one of the pages counted, so every search has a known answer: it\nmust find what the reference writes.\n\n- **Run each search on the reference first.** One that misses the reference is\n  broken, and nothing it counts is a result.\n- **A zero for a role the reference writes is a broken search** — a wrong glob, a\n  list never split, a pattern that misses this dialect, a bound that resolved to\n  nothing. Fix it and count again; never record it.\n- **A zero across the whole family is unverified**, not a convention. Record\n  *none of them write this* only when the same search, over the same files,\n  found something else.\n\n*Why:* a loop run once over the whole list instead of once per file reported\n*0 of 9* twelve times, holder included — the opposite of the truth.\n\n## Counting honestly\n\n- **Count per position** — a role where it stands — never per component alone:\n  10 of 18 buttons full-width reads as no rule, and was 10 of 10 in the content\n  area and 0 of 4 in toolbars.\n- **Count *whether* apart from *which way*.** First how many members have the\n  role at all; then, over those, which way each writes it. *None* answers\n  *whether* and is never a way: *14 of 21 filter; of those 14, 10 through the\n  shared toggle and 4 by hand* — not *10, 4 and 7 across three ways*.\n- **Count what the component comes out as too**, and the heading level where the\n  position is a heading — `ui-consistency:values`, *Elements*.\n- **A count carries its file spread.** Four identical buttons in one file are\n  one page's habit; 10 of 10 across 8 files is a convention. A page and the files\n  only it imports count as one file of the spread; say so where a member spans\n  files.\n- **A missing prop is not yet a deviation.** The theme or one of the project's\n  wrappers may set it already.\n- **Search for the exact name.** A container whose name starts with the\n  component's once turned 18 uses into 25.\n- **If the task adds a position no member has** — a second control, a control\n  nobody has here — count it as [rare.md](rare.md), *A position no member has*,\n  says.\n- **A family of one is never a convention.** Write what the page does as the\n  reference's own way — never as a count, and never as what the project does —\n  and say the family has no other members: [rare.md](rare.md), *A kind whose\n  family has only the reference*.\n\n## When a count is not a convention at all\n\n*2 of 8*, written the way every other count is written, reads as a rule. It is\nnot one.\n\n- **Read it off the numbers themselves** — never a threshold from outside, no\n  percentage, no \"most\".\n- **Count every way, not only the commonest**, over the members that have the\n  role: *4 of 4*, *3 of 4 and one other way*, *3, 3 and 2 across three ways*. A\n  plurality is not a majority.\n- **There is a convention only if the commonest way outnumbers the others put\n  together** — a majority. Otherwise say the family has none here, and give\n  every way with its numbers.\n- **Say which kind of majority it is.** One exception is written *7 of 8 except\n  `<page>`*. Several different ones make a family drifting: still the majority,\n  written *the commonest way, 5 of 8, against three others*.\n- **The order still decides**, and nothing stalls or is asked: with no majority,\n  the newest members settle it (`ui-consistency:decisions`, level 5). The line\n  says *no convention here; the two newest write it this way*.\n"
Full snapshot data
{
  "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.",
  "included_files": [
    {
      "relative_path": "large-project.md",
      "size_in_bytes": 2654
    },
    {
      "relative_path": "rare.md",
      "size_in_bytes": 5128
    }
  ],
  "name": "conventions",
  "skill_md_contents": "---\nname: conventions\ndescription: 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.\n---\n\n# Conventions: the kind, the family, the proof, the counts\n\n## Overview\n\nCounts what the project's pages do, in the order of the work: the kind, the\nfamily, the proof that a search can see, then the counts.\n\n**Open a file linked or given by its path from this skill's folder, or invoke a named skill, only when a part you are carrying\nout sends you to it, never before** — whatever the request that handed you this\nskill says about its links and paths. That part is not done until the file is opened or\nthe skill invoked.\n\n## Which kind of page this is\n\nDecide it first: it sets every count below it. Take the first signal that\nanswers:\n\n1. **What the user said** — a kind somebody named, *a list page like the orders\n   one*, outranks anything read.\n2. **What the project keeps apart** — its folders, routes, file-name suffixes, a\n   folder per kind.\n3. **What the reference renders** — the same holders and regions in the same\n   order make one kind, whatever the subject. A collection of rows and a single\n   record with a submit are two.\n4. **What the pages reach for** — the same holder, layout piece or shared frame.\n\nThen:\n\n- If a later signal disagrees, or the project does not answer:\n  [rare.md](rare.md), *When the signals do not settle the kind*.\n- If the trees differ below a shared outer holder: [rare.md](rare.md), *A family\n  that differs by region*.\n- **Name the kind in the project's own word** — folder, route, file name — never\n  an invented one. If it has none, name it by what it renders, *a list with a\n  form above it*, and say the name is yours.\n- Say in the checklist's first line the kind, what decided it, and how many\n  members of how many candidates were counted\n  (`../finding-patterns/checklist.md`).\n\n## The bound the family is counted in\n\nThe bound is fixed, not chosen, so two agents reading the same reference count\nthe same pages.\n\n- **The application that mounts the page** — whatever routes to it or renders it\n  from its entry — **and every library it uses.** Not the library the reference\n  sits in, not the whole workspace.\n- If no application mounts the pages — each page is a document of its own — the\n  bound is **every page that loads a file the reference loads too**, such as a\n  stylesheet, a script or a tokens file, and those files.\n- If no other page loads a file the reference loads, the bound is the pages in\n  the reference's folder, its subfolders included.\n- If the page's library is mounted by several applications, the bound is all of\n  them together, and the checklist says which.\n- If the page's own library, counted alone, gives a different answer — *10 of 10*\n  inside it, *6 of 8* across the application — **put both numbers on the line**,\n  and decide by the order on the application's.\n- A library unanimous inside itself is that library's own way, never the\n  project's.\n- **Name the bound in the checklist's first line.** A later phase counts in it,\n  or says which other bound it used and why.\n\n## Which pages are the family\n\nThe family is the pages of the reference's kind. Take the candidates, and remove\nwhat is not a member **before** counting:\n\n- **What a page imports — its panels, its dialog, its hooks — is part of it**,\n  not a sibling: neither end of an import edge among the candidates is a peer of\n  the other.\n- **A file that imports members is not a member**: a dispatcher, a route table,\n  a barrel, a wrapper.\n- **A candidate that renders no holder and no region of the kind is not of the\n  kind.** Report it so; never count it as a member that lacks them.\n- **State both numbers** — candidates considered, members counted — and what was\n  left out and why.\n- **If the members span more than one area** — app, library or package — **or\n  are more than can be read in full**, it is a large project: follow\n  [large-project.md](large-project.md) before counting.\n- **If the work creates a shared piece that takes over roles the pages had** —\n  where a state is kept, which side takes a default share — count those roles\n  as [rare.md](rare.md), *A shared piece the work creates*, says.\n\n*Why:* a dispatcher counted as a page once turned 8 of 8 on every role into 8 of\n9 — a unanimous convention reported as one drifting page.\n\n## Prove the search can see before trusting a count\n\nThe reference is one of the pages counted, so every search has a known answer: it\nmust find what the reference writes.\n\n- **Run each search on the reference first.** One that misses the reference is\n  broken, and nothing it counts is a result.\n- **A zero for a role the reference writes is a broken search** — a wrong glob, a\n  list never split, a pattern that misses this dialect, a bound that resolved to\n  nothing. Fix it and count again; never record it.\n- **A zero across the whole family is unverified**, not a convention. Record\n  *none of them write this* only when the same search, over the same files,\n  found something else.\n\n*Why:* a loop run once over the whole list instead of once per file reported\n*0 of 9* twelve times, holder included — the opposite of the truth.\n\n## Counting honestly\n\n- **Count per position** — a role where it stands — never per component alone:\n  10 of 18 buttons full-width reads as no rule, and was 10 of 10 in the content\n  area and 0 of 4 in toolbars.\n- **Count *whether* apart from *which way*.** First how many members have the\n  role at all; then, over those, which way each writes it. *None* answers\n  *whether* and is never a way: *14 of 21 filter; of those 14, 10 through the\n  shared toggle and 4 by hand* — not *10, 4 and 7 across three ways*.\n- **Count what the component comes out as too**, and the heading level where the\n  position is a heading — `ui-consistency:values`, *Elements*.\n- **A count carries its file spread.** Four identical buttons in one file are\n  one page's habit; 10 of 10 across 8 files is a convention. A page and the files\n  only it imports count as one file of the spread; say so where a member spans\n  files.\n- **A missing prop is not yet a deviation.** The theme or one of the project's\n  wrappers may set it already.\n- **Search for the exact name.** A container whose name starts with the\n  component's once turned 18 uses into 25.\n- **If the task adds a position no member has** — a second control, a control\n  nobody has here — count it as [rare.md](rare.md), *A position no member has*,\n  says.\n- **A family of one is never a convention.** Write what the page does as the\n  reference's own way — never as a count, and never as what the project does —\n  and say the family has no other members: [rare.md](rare.md), *A kind whose\n  family has only the reference*.\n\n## When a count is not a convention at all\n\n*2 of 8*, written the way every other count is written, reads as a rule. It is\nnot one.\n\n- **Read it off the numbers themselves** — never a threshold from outside, no\n  percentage, no \"most\".\n- **Count every way, not only the commonest**, over the members that have the\n  role: *4 of 4*, *3 of 4 and one other way*, *3, 3 and 2 across three ways*. A\n  plurality is not a majority.\n- **There is a convention only if the commonest way outnumbers the others put\n  together** — a majority. Otherwise say the family has none here, and give\n  every way with its numbers.\n- **Say which kind of majority it is.** One exception is written *7 of 8 except\n  `<page>`*. Several different ones make a family drifting: still the majority,\n  written *the commonest way, 5 of 8, against three others*.\n- **The order still decides**, and nothing stalls or is asked: with no majority,\n  the newest members settle it (`ui-consistency:decisions`, level 5). The line\n  says *no convention here; the two newest write it this way*.\n"
}

SHA-256 of public snapshot: a3bf3c3a4396b5a8dd37d0fb25775bf5781a8ed71a4aaeadddaef74897a32576