agentleFS
yasikvladyasikvlad/claude-skill-module-design/SKILL.md

module-design

Skill1 starsChanged 6 months agoMITView on GitHub

Engineering design methodology that turns any task into a Module → Stage → Operation blueprint with explicit ЦКП at each level, necessary conditions, kill criteria, and Config/Client/Storage triad placement. Use when designing a new module/pipeline/system or AI-agent, refactoring architecture, deciding "is this a module or stage", "should the stage expand into a folder", "where does the triad live"; running a premortem; identifying bottlenecks; defining kill criteria; or when the user mentions ЦКП, модуль/этап/операция, SRP, инверсия, необходимое условие, ограничение, премортем, шаблон модуля, триада Config/Client/Storage, декомпозиция пайплайна. Do NOT use for plain bug fixes without architectural decisions, UI/UX design, marketing copy, or content writing.

8 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions8 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 8

    1. jscott3201/yet-more-skills★ 4same name
    2. AlvaroVFon/skills★ 2same name
    3. hmj1026/dhpk★ 2same name
    4. miinhho/skills★ 2same name
    5. cystema/skills★ 1same name
    6. heartnetkung/claude-skills★ 1same name
    7. jasoncrawford/claude-skills★ 1same name
    8. mcabreradev/hermes-sdd-agency★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

The file

Files
SKILL.md

Module Design Method

Overview

Единая методология проектирования: архитектурные принципы (SRP / Unix / Атомарность / Изоляция / Composability / Фрактальность / DRY) + инверсионная навигация (необходимые условия / вычитание / ограничение / kill criteria) + инфраструктурная триада (Config / Client / Storage) + шаблон модуля (свёрнутая или развёрнутая форма).

Центральный вопрос: «Без чего не получится?» Декомпозиция идёт от ЦКП к необходимым условиям, не от плана к шагам.

Базовая иерархия

Концептуальная (всегда трёхуровневая): Система → Модуль → Этап → Операция. Физическая (разворачивается по нагрузке): свёрнутая форма (этапы — файлы) или развёрнутая (этапы — папки).

Каждый уровень имеет собственный ЦКП — конкретный продукт, нужный следующему звену.

Workflow

Применяй по шагам. Не пропускай Step 2 — инверсия идёт до декомпозиции, не после.

Step 1 — Определи ЦКП системы

Одно предложение. Конкретный продукт, не процесс. «Ценный» здесь технический термин: ценность определяется потребностью следующего звена, не оценочно.

Тест: если убрать любое слово из формулировки — становится неоднозначно? Если нет, ЦКП размыт.

Step 2 — Инверсия (до декомпозиции)

Применяй три формы:

  1. Целевая: «как гарантированно НЕ-получить ЦКП?»
  2. Премортем: «проект провалился катастрофически. почему?» — записать причины как если уже случилось
  3. Атрибутная: перевернуть ключевое свойство — что если поменять местами поток / роль / последовательность? (TRIZ 13)

Из инверсии выведи:

  • Необходимые условия — то, без чего система мертва. Формат: метрика + порог + срок. Без метрики = пожелание, не условие
  • Ограничение (bottleneck) — слабое звено, определяющее пропускную способность. Идентификация — гипотеза, верифицируй измерением (70-80% ошибаются с bottleneck)
  • Kill criteria — «если [метрика] к [дата], то стоп». Формулируются ДО старта работы, пока мышление не искажено вложенными ресурсами

Полная модель — references/inversion.md.

Step 3 — Декомпозиция в модули

Для каждого модуля ответь:

  1. Перед каким одним заказчиком он отвечает? Заказчик определяет границу
  2. Контракт — формат входа, формат выхода, формат ошибки. Контракт — единственное, что связывает модули
  3. ЦКП — что отдаёт следующему модулю или ЦКП системы

Если модуль меняется по двум причинам — это два модуля. Похожий код в разных модулях ≠ нарушение DRY, если представляет разные знания.

Step 4 — Декомпозиция модуля в этапы

Этап = ровно одна смена семантической природы данных. Этапы НЕ вкладываются — иерархия строго трёхуровневая.

Тест существительного (первичная эвристика):

  • Назови вход одним существительным БЕЗ прилагательных
  • Назови выход тем же способом
  • Разные существительные → граница этапа (URL → HTML, HTML → структура, байты → image)
  • То же существительное с прилагательным → НЕ граница (текст → чистый текст, массив → сортированный массив)
  • Агрегация (одиночка → коллекция или наоборот) → граница (меняется кардинальность)

Расширение для пограничных случаев — если тест существительного дал «не граница», проверь ещё два:

  1. Качественная трансформация: получает ли следующий потребитель новые возможности? (image (низкое разрешение) → image (высокое) — да, новые возможности для печати/AI-анализа → граница). Контрпример: text → text (с обрезанными пробелами) — никаких новых возможностей, НЕ граница
  2. Stateful композиция: добавляется ли сопутствующее состояние с собственным lifecycle? (image → image + chat-session — композитная сущность → граница)

Если хотя бы один срабатывает — это граница этапа, даже если тест существительного сказал «не граница».

Step 5 — Декомпозиция этапа в операции

Операция = один семантический шаг с точки зрения этапа. Не «одна функция в коде».

Тест: могу ли я назвать вспомогательный вызов как самостоятельное действие, нужное этапу?

  • Можно (parse_html нужен этапу как отдельный шаг) → отдельная операция
  • Нельзя (clean_whitespace нужен только внутри extract_phone) → внутренняя реализация одной операции

Операция неделима — дальнейшее дробление сделает фрагменты неработоспособными.

Подъём операции:

  • Нужна нескольким этапам одного модуля → на уровень модуля
  • Нужна другим модулям → перерастает в отдельный модуль
  • Только если знание одно и то же для разных заказчиков; разные знания → дублирование оправдано

Step 6 — Размещение триады Config / Client / Storage

Триада существует для границы модуля и внешнего мира. Один владелец на каждый Config/Client/Storage — не дублируется между уровнями.

  • Все этапы используют общий внешний сервис → триада на уровне модуля
  • Этап работает со своим внешним сервисом → триада на уровне этапа
  • Нет внешних сервисов → триады нет
  • Комбинации допустимы (модульная для общего + этапная для специфичного)

Триада НЕ привязывается к операции. Если операции нужна своя триада — это этап с одной операцией, разворачивай в этап.

Инициализация: Config → валидация (fail-fast) → инжекция в Client и Storage через конструктор.

Полная модель — references/conventions.md.

Step 7 — Развернуть или свернуть этап

Этап существует концептуально всегда. Физическое развёртывание — по семантической нагрузке.

Этап разворачивается в собственную папку, если выполнено хотя бы одно:

  • собственная координационная логика (orchestrator с условиями, циклами, ветвлениями)
  • собственная триада, отличная от модульной
  • реализация делает модуль трудночитаемым в одном файле
  • смысл этапа достаточно самостоятелен, чтобы иметь имя в навигации (harvesting/, refinement/)

Иначе — свёрнутая форма, этапы как файлы на уровне модуля.

Обе формы — references/template.md.

Step 8 — Валидация чек-листами

Прогоняй каждый уровень через свой чек-лист. Любой «нет» — единица собрана неверно, перепроектируй.

  • Чек-лист модуля
  • Чек-лист этапа
  • Чек-лист операции

Все три — references/checklists.md.

Step 9 — Инверсионная отчётка перед финализацией

  1. Каждый режим провала из Step 2 закрыт конкретной мерой (ресурс, ограничение, мониторинг, решение «не делать»)?
  2. Необходимые условия мониторятся непрерывно, не только на старте?
  3. Ограничение верифицировано измерением, а не мнением?
  4. Kill criteria записаны до старта и привязаны к метрике + дате?
  5. Решение прошло через прямое И обратное мышление?

Инверсия без действия = трата времени. Каждая выявленная угроза → конкретная мера в дизайне.

Ключевые правила

Развёртывание по нагрузке. Иерархия концептуальна; материализуй ровно столько, сколько требует семантика. Тривиальный модуль — один файл. Сложный — развёрнутый шаблон.

Контракт — единственная связь. Модули соединены контрактом, не кодом и не импортами. Внутренний контракт (внутри модуля) может меняться свободно; публичный контракт (между модулями) требует координации.

Вычитание раньше добавления. Прежде чем добавить, спроси: «можно решить, убрав что-то существующее?» Каждое добавление — источник хрупкости. НО перед удалением — Chesterton's Fence (зачем оно существует), замена, обратимость.

Фокус на ограничении. Улучшение НЕ-ограничения не улучшает систему. Найди bottleneck → используй на 100% → подчини всё его ритму → расширь → найди следующее (Goldratt, 5 Focusing Steps).

Negative knowledge устойчивее. Список «как провалится» конкретнее списка «как преуспеть». Режимов провала структурно меньше — обозримее (Taleb, Munger).

Фрактальность. Все принципы работают на любом уровне: операция, модуль, продукт, бизнес. Масштаб меняется — правила нет.

Common Mistakes

ОшибкаСигналФикс
Этап с подэтапами«внутри этапа есть фазы»разделить на этапы — иерархия строго трёхуровневая
Триада на операции«этой операции нужен свой Config»развернуть операцию в этап
Дублированная триада«Config есть и в модуле, и в этапе»один владелец, граница проведена неверно
ЦКП = процесс«парсит данные», «обрабатывает запросы»ЦКП = продукт, не действие. «распарсенная структура продуктов»
Необходимое = пожелание«нужен рынок», «нужна команда»метрика + порог + срок: «1000 платящих к 1 сентября»
Оптимизация не-ограничения«улучшили X — throughput не вырос»70-80% ошибаются с bottleneck; верифицируй измерением
Инверсия без действия«провели премортем — и забыли»каждый failure mode → конкретная мера в дизайне
Слепое вычитание«удалили — стало хуже»Chesterton's Fence + замена + обратимость
Инверсия неверной цели«инвертировали — получили чушь»сначала проверь ЦКП. Ошибка в цели → ложные условия

Output: design blueprint

Финальный артефакт — design blueprint в формате assets/blueprint.md. Заполняй по шагам workflow, не пропускай разделы. Пустой раздел = нерешённое архитектурное решение, не косметическая дыра.

References

ФайлЧто внутри
references/principles.mdАрхитектурные принципы (SRP/Unix/Атомарность/Иерархия/Изоляция/Composability/Фрактальность/DRY) + определения (Система/Модуль/Этап/Операция/Контракт/ЦКП)
references/inversion.mdПринципы навигации (Инверсия/Асимметрия/Необходимые условия/Вычитание/Ограничение/Противоречие/Наихудший контекст/Предел) + ограничения метода
references/conventions.mdИнфраструктурная триада Config/Client/Storage
references/template.mdШаблон модуля: свёрнутая и развёрнутая форма + правила привязки триады к уровню
references/checklists.mdЧек-листы модуля / этапа / операции с примерами прохождения и провала
assets/blueprint.mdШаблон финального design blueprint

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.