Skip to content

Releases: nickture/skills

0.8.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 15:32

Two sources went into the interface skill. One is Ilya Birman's reference on interface terms, the other is the advices of Bureau Gorbunov that the reference links to. Both were read in full and compared with every rule, and a separate pass checked each draft against the existing rules before it went in. Most new rules are about controls: how a choice is made, how a field, a menu and a switch behave, and what a state looks like. New rules and renamed headings bump the minor digit.

Breaking

Four headings were renamed, because the old ones could not be understood without the rule body.

Interface

  • Space: an element takes as much of the screen as it has information (Площадь экрана по объёму информации → Элемент занимает столько экрана, сколько в нём информации).
  • Icons
    • A familiar icon keeps one action (Зарезервированные действия у своих иконок → За знакомой иконкой закреплено одно действие).
    • An outline at rest and a fill for the selected item (Обводка в покое, заливка в активном состоянии → Обводка в покое, заливка у выбранного). The word «активное» meant available, pressed and selected at once.
  • Accessibility: hover effects only on devices with a mouse (Наведение только там, где оно есть → Эффекты наведения только на устройствах с мышью).

Added

Interface

  • Sources: new key birman-reference, the reference on interface terms edited by Ilya Birman, Alexandra Ozkan and Nastasya Tulaeva. The birman key cites seven more posts, bureau cites the advices on controls, feedback and habits, and classics cites Jef Raskin's «The Humane Interface».
  • Principles
    • Work that a machine can do is done by the machine. It counts sums, remembers input and converts units, sizes and currency (Работу, которую может сделать машина, делает машина).
    • Controls are placed the same way as what they control (Контролы расположены так же, как то, чем они управляют).
    • Within one task a press, a key or a gesture has one meaning, and a mode is visible where the person looks (В пределах одной задачи у нажатия одно значение).
  • Space: a rounded element does not touch the edge of its area with a rounded corner (Скруглённый элемент не касается края).
  • Forms
    • An update from the server does not overwrite the field a person is typing in (Обновление не переписывает поле, в котором человек печатает).
    • A placeholder and a disabled field look different, so an example is not taken for a value (Плейсхолдер не похож на неактивное поле).
    • An input differs from the button next to it in at least two of three signs: border, fill, text alignment (Поле ввода отличается от кнопки).
    • A multiline field shows how much text is expected and grows with it (Многострочное поле растёт вместе с текстом).
    • In a form with a submit button a checkbox only changes a value. A setting that applies at once is a toggle (Настройка, которая действует сразу, оформлена тумблером).
    • A checkbox fits when the unchecked state is clear. A pair of «Да» and «Нет» radio buttons becomes one checkbox (Чекбокс ставится, когда понятно, что значит выключенный).
    • Several values of a list are chosen with checkboxes, without Ctrl or Shift (Несколько значений из списка выбираются чекбоксами).
    • Choice cards carry a radio circle or a checkbox, so it is clear whether one or several can be chosen (По карточкам выбора видно, один вариант можно выбрать или несколько).
    • A dropdown, a radio group and a checkbox do not open another page (Выбор значения не открывает другую страницу).
    • A slider is grabbed at any point of its track, and its number changes while it moves (Ползунок берётся за любую точку шкалы).
    • A calculator opens with a typical case already counted and recounts on every change (Калькулятор считает сразу).
    • A control returns to its initial state by the same control (Контрол можно вернуть в исходное состояние).
    • An item moves from the cart to a wish list in one press (Из корзины товар можно отложить в вишлист).
    • Sign-in is remembered by default. The checkbox for someone else's computer appears only where people sign in from shared computers (Вход запоминается по умолчанию).
  • States
    • States that occur together have different visual means, so focus is visible on a selected row (Каждое состояние показано своим приёмом).
    • While a person drags an object, the area that accepts it stands out (При перетаскивании видно, куда объект можно отпустить).
    • A single press acts at once, and a double press adds the next step to it (Двойное нажатие продолжает одиночное).
    • A button that turns into another one by itself does not change under the cursor (Кнопка не меняет действие под курсором).
    • Navigation, the heading and the buttons that do not depend on data are shown before the data arrives (Каркас экрана виден сразу).
    • While a person drags, zooms or scrolls fast, the interface shows an approximate result from what it already has (Пока человек тянет или масштабирует, виден приближённый результат).
    • A long process asks all its questions before it starts (Долгий процесс задаёт все вопросы до запуска).
  • Navigation
    • Breadcrumbs list the levels above the current page without gaps, and the current page is not among them (Хлебные крошки показывают уровни выше текущего).
    • The «Назад» arrow has one meaning. It leads to the parent screen and carries its name (У кнопки «Назад» одно значение).
  • Onboarding: slides about the product and a window with what is new do not cover the interface (Слайды о продукте не закрывают интерфейс).
  • Components
    • A modal stays for a decision that blocks work. A form, settings and details open on the page (Модалка остаётся для решения, которое блокирует работу).
    • A window does not open by itself on a timer or when the cursor leaves the page (Окно не открывается само).
    • The tail of a popover points at the element it came from (Хвостик поповера указывает на источник).
    • The items of an open menu do not move (Пункты открытого меню не сдвигаются).
    • Selection and state do not reorder menu items, tabs, chips and segments (Выбор и состояние не переставляют пункты).
    • A keyboard shortcut is written next to its command in a muted color (Сочетание клавиш написано рядом с командой).
    • In a switch of two segments one is filled and the other matches the background (В переключателе из двух сегментов видно, какой выбран).
    • Table rows are separated by spacing or a light line, without a grid and without stripes (Строки таблицы разделяет отступ или светлая линия).
    • A tree shows the level by indent, and controls in a row do not shift it (Дерево показывает уровень отступом).
    • A properties panel shows what the selected objects have in common (Панель свойств показывает общее для выделенных).
    • An action that changes data is a button, because a person expects another page from underlined text (Команда не выглядит ссылкой).
  • Mobile: dragging starts after the pointer moves past a threshold, about 4px for a mouse and 8–10px for a finger (Перетаскивание начинается после сдвига на несколько пикселей).
  • Charts
    • A dashboard fits into one screen (Дашборд помещается в экран).
    • A map pin does not cover the point it marks (Метка на карте не закрывает свою точку).
  • Documents: a section of a long document has an anchor and a visible way to copy the link (На раздел длинного документа можно сослаться).
  • Accessibility: a menu row and a checkbox label are pressed as a whole (Строка меню и подпись чекбокса нажимаются целиком).
  • Performance: deferred code loads in the background before the first use (Отложенный код загружается до обращения).
  • Code search: seven patterns for the new rules, among them <select multiple>, <textarea>, a slider and breadcrumbs.

Text

Sources: new key bureau, the advices of Bureau Gorbunov on the wording of labels.

Changed

Interface

  • Intro: the sections table names the new topics, so an edit finds its section.
  • Principles
    • An element without a job distracts, and the person has to filter it out (У каждого элемента есть работа).
    • The gain from the size of a target falls off (Большая и близкая цель быстрее).
    • Settings such as a list view and panel width are kept too. The interface does not ask whether to continue from the last place (Введённое пользователем не теряется).
    • What looks the same works the same (Согласованность по умолчанию, ясность важнее).
  • Space
    • Radio buttons and checkboxes of one group stand in a column. A row was allowed before (Подпись ближе к своему элементу, чем к соседнему).
    • A work screen of several groups uses the width of a wide screen (Элемент занимает столько экрана, сколько в нём информации).
  • Hierarchy: few people open a number hidden behind a press, and a person decides without it (Число для решения видно сразу).
  • Icons
    • An abstract notion has no object to draw, so its icon can only be learned (Иконка ставится там, где помогает).
    • A check mark means «выбрано», «готово» and «подтвердить», so it gets a label where the meaning is unclear (Где смысл критичен, символ дублируется текстом).
    • A detail shared by all icons of a row is removed (Иконка, одинаковая у всех строк, убирается).
  • Forms
    • An empty required field is not marked when a person leaves it. The form reports it on submit (Проверка по уходу из поля, не на каждый символ).
    • Options that form a sequence keep their order, and «Не указано» is the default where an answer must not be suggested (Значение по умолчанию разумное и зависит от истории).
    • A mask is the last resort. It accepts paste, deletion and undo and explains a rejected character (Ввод принимается в любом формате).
    • A decimal keyboard, a one-time code from a message and the attributes for a password manager (Поле вызывает нужную клавиатуру и автозаполнение).
    • Short values go into a segmented switch, and a combobox with a value opens the unfiltered list (До пяти вариантов радиокнопками, у длинного списка поиск).
    • Search takes any word form and ...
Read more

0.7.3

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:35

The text for the search now covers the whole page, including the sections a browser draws only when they scroll into view. The rules check the same things, so the patch digit goes up. No heading was renamed or removed.

Changed

Text

  • How to check: before the text is taken from the browser, the page gets the style * { content-visibility: visible !important }. Without it innerText leaves out sections with content-visibility: auto that are off screen, and all of them in a background tab (Сначала механически, потом глазами).

0.7.2

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:30

A page given by address is checked in a browser first. A downloaded copy lacks the text that scripts, animations and clicks bring in, so it serves the search only when no browser is at hand. The rules check the same things, so the patch digit goes up. No heading was renamed or removed.

Changed

Interface

  • Intro: a page given by address opens in a browser, and its code is downloaded for the search. A browser counts as missing only when none of the agent's tools can open a page, even one it has to load first.

Text

  • Intro: a page given by address opens in a browser before the search, and the text for the search comes from there.
  • How to check
    • The page is downloaded with curl only when none of the agent's tools can open it in a browser. The search runs first, and then the whole text is read on the live page (Сначала механически, потом глазами).
    • Downloaded code, images and screenshots do not replace the browser. The agent scrolls to the end, watches the animations, switches tabs and slides, opens answers and tooltips, and repeats the pass at phone width (Глазами, на живой странице).

0.7.1

Choose a tag to compare

@github-actions github-actions released this 07 Oct 09:53

Both skills already asked for a rendered screen or a live page. This release says how the agent gets one. The rules check the same things, so the patch digit goes up. No heading was renamed or removed.

Changed

Interface

  • Intro: the agent checks layout on the running dev server. If none is running, it works out how to start one from the project files, runs it in the background and stops it afterwards. A browser is not added to the project's dependencies without asking. A report that covers the code only states the reason, such as a missing browser.

Text

  • How to check: an unpublished page is read on the project's dev server. If the server is not running, the agent works out how to start it and stops it after the check. A browser is not added to the project's dependencies without asking. A report that checks the text without the layout states the reason (Глазами, на живой странице).

0.7.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 09:39

The interface skill covers work screens in more detail, from long tables to icon buttons and the borders of blocks. Reading the skills costs fewer tokens. An edit reads only the sections it touches, and a review reads every file in two separate runs, one per skill. The search patterns of both skills now run as scripts, so an agent no longer copies them by hand. New rules bump the minor digit. No heading was renamed or removed.

Added

Interface

  • Hierarchy: blocks of a work screen show their borders when you squint and carry headings. The rules against cards, lines and extra text levels remove neither (Блоки рабочего экрана видны и подписаны).
  • Icons: an action repeated in every row and a toolbar command are icon buttons with a tooltip and aria-label. The main action keeps its label, and an icon goes without one only when its meaning is unambiguous (Действие в строке и на панели — иконкой).
  • Components
    • A long table loads rows as you scroll, shows how many there are, and renders only the visible ones when there are thousands (Длинная таблица подгружается порциями).
    • A column aligns by its content: text left, numbers right, the header with its values (Колонка выровнена по своему содержимому).

Changed

Interface

  • Intro
    • An edit reads SKILL.md, the principles, the slop section and the sections it touches. Layout built during an edit is checked against what was read, and only a review of a finished project reads every file.
    • A component the agent added or changed is also checked on a temporary page or in the project's Storybook. Stub data shows its states side by side, along with long text, one row and a thousand rows.
    • A finished project is reviewed in two separate runs, text first and then layout, each skill in its own agent or session.
  • Code search: the patterns moved into scripts/search.sh. Each line of its output names the rule to check the match against.
  • Icons: the cross closes or hides, and only the trash icon deletes data (Зарезервированные действия у своих иконок).
  • Scrolling: loading on scroll covers table rows too (Длинная выдача подгружается сама).
  • Slop: a period at the end of a heading moved from decorative numbering to the template visual tricks (Шаблонные визуальные приёмы).

Text

  • Intro: an edit reads SKILL.md, the slop sections and the sections it touches. A review of a finished project still reads every file, and text and layout are reviewed in separate runs.
  • How to check: the patterns moved into scripts/check.sh, which names the rule next to every match. It also skips HTML tags and the legitimate cases listed after «законно» on good-example lines (Сначала механически, потом глазами).
  • Headings: the period rule points to the template visual tricks of the interface skill (В конце заголовка точки нет, после номера (в нумерованных заголовках) есть).

Fixed

Interface

  • Space: «где токена нет вовсе» loses its intensifier (Значения только из шкалы).

Text

  • How to check: the rule promised three searches that the patterns never had. Guillemets inside a link, markup in text and colons in neighboring sentences are gone from its list (Сначала механически, потом глазами).

0.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 08:48

Ideas from the ru-style skill by Andy Bezukladnikov. Most of what ru-style covers was already in the text skill, so this release adds markers to existing rules and one typography norm. The norm widens what a rule checks, so the minor digit goes up. No heading was renamed or removed.

Added

Text

Sources: new key bezukladnikov, the ru-style skill by Andy Bezukladnikov.

Changed

Text

  • Description: translation into Russian is listed next to writing, editing and reviewing, so an agent loads the skill when it translates too.
  • Typography: a size is written with «×» and a space on each side, «30 × 40 см», and the letter «х» or «x» does not replace the sign (Знаки и единицы отбиваются по норме).
  • How to check: the search block finds the letter «х» or «x» between two digits (Сначала механически, потом глазами).
  • Slop
    • «Очевидно, что», «как известно» and «заставляет задуматься» tell the reader how to take a fact (Подсказка, что чувствовать).
    • «Исследует» and «переосмысливает» belong to a person, so a report or a redesign does not do them (Ложная агентность).
    • «И для новичков, и для профессионалов» pretends to write for everyone (Мнимая широта аудитории).
    • A question about the reader's trouble at the top of a page, such as «Устали от…?», counts as a rhetorical question (Риторический вопрос).
    • The stop-word table gets «бросает вызов» and «стирает границы» (Слово в переносном смысле).
  • Correspondence: «Уважаемый клиент» and «возникли технические сложности» are officialese. The letter says what broke and when it works again, and addresses the person by name or with «Здравствуйте» (Канцелярит переписки).

0.5.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 07:16

Anthropic's directory takes the plugin name from the published version, so a new name needs a release. The rules are unchanged.

Changed

  • The plugin is called «Nickture Skills for interface polish, Russian copy and AI deslop». It used to be «Nickture Skills», which said nothing about what the skills do.
  • The plugin icon has transparent rounded corners. The directory frames it in a white tile with padding, and the square corners looked unfinished there.

0.5.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 05:43

An agent given a link to this repository read a summary of the rules from a web fetch tool and applied the summary. It also had nothing to run on someone else's text, because the search patterns checked only the files of this repository. A generator could justify its own template with a concept it invented while building the page, and the slop rules accepted that as a reason. No heading was renamed or removed.

Added

Interface

  • Intro: the skill files are read from disk in full. Given a link, the agent clones the repository into a temporary folder outside the project or takes whole files from raw.githubusercontent.com, because a web fetch tool returns a summary without the wording and examples a rule is applied by. The report lists the rules/ files read and names any left unread. A page under review is checked from its downloaded code and the rendered screen. Layout the agent built itself is checked like anyone else's. When a check covers both text and layout, the text pass runs first, because a text edit changes the length of lines and blocks.
  • Code search (Поиск по коду): a new section of grep patterns for a removed focus ring, transition: all, a blocked zoom gesture, blocks hidden until they scroll into view, and monospaced type. A match is checked against the rule named above its pattern.

Text

  • Intro: the same paragraph on reading the skill files and on the order of the text and layout passes. The text under review is exact, taken from the project files or the live page, and the agent's own text is checked like anyone else's.
  • How to check: the rule on searching before reading by eye (Сначала механически, потом глазами) carries a grep block for any text. It covers «не X, а Y» against its limit, stop words, intensifiers, officialese, participles, chopped phrases and typography. Without a browser, a live page is downloaded with curl and stripped to text.

Changed

Interface

Slop:

  • The section intro: a technique has a reason only when the reason is recorded in the project Foundation. A concept the agent invents while working, to explain its own technique, is not a reason. The ready-made generator style uses the same test (Готовая стилистика генератора).
  • The three-column template covers the same row or grid without icons too, including tiles divided by hairlines or with an eyebrow over each title (Три колонки «иконка в цветном круге, жирный заголовок, две строки»).
  • A row of eyebrows over cards of one type stays a template even when each eyebrow adds something, and that addition moves into the card title (Шаблонные визуальные приёмы).

Text

  • Headings: the eyebrow rule points to the interface rule on a row of eyebrows over cards (Ярлык добавляет к заголовку новое).
  • Typography: a spaced en dash in place of a dash is wrong, as a hyphen is (Тире пишется «—» с пробелами, диапазон «–» без пробелов).
  • Words: «разом» in the sense of «одновременно» is a colloquial word that models often pick, and it becomes «одновременно» or «сразу». «Раз за разом» stays (Язык деловой, без разговорного).

0.4.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 19:50

The scope of one rule changed, so the minor digit goes up. No heading was renamed or removed.

Changed

Interface

Slop: key labels in <kbd> may use a monospaced font, as code, commands and strings checked character by character do (Моноширинный шрифт вне кода).

0.3.3

Choose a tag to compare

@github-actions github-actions released this 03 Oct 19:34

A request to apply the skills to a finished project named no check, so under 0.3.2 an agent could still read only the sections it picked. No heading was renamed or removed.

Fixed

Interface

Intro: only an edit of a place the task names, such as a screen, a component or an animation, reads the sections on its topic. Any other work on a finished project counts as a check and reads every rules/ file, including a request to see which rules apply.

Text

Intro: the same change, with a paragraph, a button or an email as the named place.