mcpField
W
writing

writing

github.com/iskron-aiエージェントワークフロー2127 回インストール今日更新
リポジトリ

writing について

writing は、後続の作業に活用される Iskron グラフのノードを追加・変更するエージェント向けスキルです。重複や孤立した記録を避けるため、新規性、ノード型、関係、モードを確認してから書き込みます。

主な機能

  1. 01書き込み前の新規性確認
  2. 02意味に応じたノード型の選択
  3. 03現象の与えられ方の分類
  4. 04役割の現れ方の選択
  5. 05ノードの三つのモードの設定

活用シーン

  1. 01作業の進め方を変える決定の記録
  2. 02記録済みの実践や関係の修正
  3. 03関連ノードへのリスクや問いの紐付け
  4. 04未実現の設計意図の表現

MCP 対応

`iskron_*` ツールでグラフノードの検索、読み取り、作成、更新を行います。すべての呼び出しで `realm` の指定が必要です。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/iskron-ai/skills --skill writing

インストール後、Claude Code で/writingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
batch.md
given_as.md
modes.md

詳細

Запись в Искрон

Ты пишешь узел в граф, по которому пойдут будущие агенты. Пять решений (2b — для роли), по порядку, не перескакивая.

Прежде всего

Граф. Каждый вызов требует realm=; подтверди граф до первого вызова. Кросс-графовых стрелок нет: source/target резолвятся в текущем графе, стрелка на «тот же номер» другого графа — неверная стрелка. Ссылка в другой граф — текстом в описании.

Гейт новизны. Перед каждым созданием назови три ответа: (1) кто это прочтёт — поздняя роль, сессия, класс запроса; (2) какое решение, ответ, проверку или передачу это чтение изменит; (3) что здесь ново относительно репозитория, эстафеты и графа. Не назвал — не пишешь. Третий ответ узнаётся поиском, не памятью: iskron_search словами и iskron_semantic_search мыслью по месту записи, кандидатов открой (iskron_look); нашлось то же — правь или сошлись, второго не заводи. Транскрипцию (то, что артефакты уже кодируют: требования, логи, алгоритм кода, состояние репо) пропусти и сошлись на источник; структуру (композиция, радиус поражения, граница владения, соответствие или дрейф между артефактами, устойчивая дельта решения) пиши, даже когда содержание восстановимо чтением. Гейт не блокирует обязательство метода: у метода и принципа называется применяющая крия, фазы — её contains-дети. Перечень в теле — тоже укрытие: принцип или договор, несущий строкой тела элементы, которые тянет разное (разные крии, ручки, потребители), прячет их от вопроса «кто тянет» (Решение 2). Такие элементы — contains-дети, каждый со своим тянущим; выносят элементы с самостоятельным предметом и продолжением, не каждый пункт основания — цельное основание со значимым швом не режь.

Гейт считается по знаку снаружи: перед батчем, фабрикой (iskron_add_*) и правкой, дописывающей тело (iskron_update), — три ответа по каждому узлу.

Решение 1: какой тип узла?

Сначала род вопроса — по «Граф — место общей работы» двери iskron: граф или дело, вимарша posed_to или разовое в деле. Выбор, которого работа ждёт от человека сейчас, — карточкой (справка двери cases.md, «Вопрос человеку»), решение из его ответа — в граф правкой задетого (ниже). Не выбирай тип узла по исходу доставки: отказ тула и ожидание ответа рода не меняют (standing, «Обмен»).

Поправка и решение меняют деяние, а не свод правил. Поправка человека, его решение, договорённость, ответ на риск ложатся в граф там, где это делается в мире. Сперва найди задетое: крию, где решение принимается в момент хода; её носитель — текст скилла, который делатель читает в этот момент, отказ записи, пробу; феномены, которые она ест, производит и применяет; вопрошания на них. Затем правь их — тела, стрелки, модусы; при нужде несколько новых узлов вместе, не «одно слово — один узел». Задетых узлов много — поиск и правку можно отдать субагенту, сверка итога — твоя (дверь iskron, «Ремесло графа»). Новый принцип (grundsatz) — крайний случай: только когда нет крии, которую поправить, и только вместе с применяющей крией (upadhi) и носителем, чьё действие замерено. Правило, которого никто не встречает в момент хода, поведения не меняет: запрет словом в деле и принцип без крии — запись, не правка. Подсказка в ответе тула носителем не считается.

Если это…ТипТул
делает — преобразует, производит, потребляетkriyaiskron_add_kriya
предстаёт деянию — вещь, состояние, понятие, зачин, метод, правилоphenomenoniskron_add_phenomenon
спрашивает — сомнение, риск, контртезисvimarshaiskron_add_vimarsha
проводит границу — внутреннее от внешнегоholoniskron_add_holon
именует роль с мотивациейkartaiskron_add_karta
качественно преобразует систему — становление с телосомbianhuaiskron_add_bianhua

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

bianhua — тип уровня сборки (скилл assembly), не рутинная запись. Тест: «система станет X, чем ещё не является» не выговаривается → не bianhua; никогда ради одной вимарши. Сначала найди существующее: lens="bianhua", iskron_semantic_search(node_type="bianhua").

Имя и телос. Новое превращение агент создаёт сам как допущение — kalpita или anumita · anagata · chanda — и предлагает имя и телос владельцу. Chanda — предложение агента, не принятая воля; adhimoksha даёт только принятие владельца, создание записи его не подменяет.

Ловушки. Феномен в маске крии: «Создание токена» — акт, «Токен доступа» — его продукт; имя несёт до/после → крия, именует стоящее сквозь до/после → феномен. Крия в маске феномена: «Поток аутентификации» преобразует состояние — крия. Роль или феномен: можно ли адресовать вимаршу и ждать ответа? Нет → не роль (Решение 2b). Контур или смысл: не отвечается, что внутри и что снаружи, → sinn, не холон; контур-папка — антипаттерн. Задача в маске узла: разовая работа и одноразовый вопрос — не крия и не вимарша, их ведут в деле; в граф идут переходы, которые задача меняет, в модусах замысла, и решение по ней. Операционная поверхность в тени: цель логов, имя метрики, переменная окружения, конфиг, от которых зависит другой контур, — феномен со своими потребителями, не строка в коде, иначе её перемену обход (integrity) не увидит.

Решение 2: given_as (только феномен)

Спроси себяgiven_as
Могу показать вне графа? (файл, контейнер, документ)ding 物
Положение дел — «до» или «после» крии?sachverhalt 勢
Поименованный смысл — «что это»?sinn 名
Зачин — складывается, ещё не форма?bildung 理
Метод — «так можно»?vollzug 行
Принцип — «так должно»?grundsatz 法

Дерево решения и ожидаемые рёбра каждого гнезда — references/given_as.md. Метод и принцип не бывают ahara или utpatti (отказ API): их применяют — только upadhi. Принцип не пишется ответом на поправку или риск, пока есть крия, которую поправить (Решение 1).

Sinn — самая дешёвая клетка и потому укрытие. То, ЧЕРЕЗ что идёт крия, — ding или sachverhalt с её upadhi; то, что она ест или производит, — её ahara/utpatti; sinn — понятию, которое ничего не делает и через которое ничего не делают. Финишная черта любой записи: узел не записан, пока не назван тянущий его — какая крия сломается, если он исчезнет? Ни одна — ты укрываешь вещь в понятии. Одинокая стрелка context глушит детектор, но на вопрос не отвечает.

Решение 2b: manifested_as (только роль)

Обязательное поле роли — как делатель присутствует началом действия. Гейт: можно ли адресовать ему вимаршу и ждать ответа?

  • Нет, действует, но не ответит (cron, воркер, CI, процесс) → не роль: ding-феномен, к крие как upadhi.
  • Нет, не действует, а стоит как теория, метод, принцип → не роль: sinn / vollzug / grundsatz (входит через intake).
  • Да → роль. Какого рода:
Делатель…manifested_asПример
отвечает и сам решает, действовать лиsvatantra 主владелец продукта; стюард корневых контуров
отвечает, импульс берёт от другого, различает и действует самadhikarin 能разработчик контура, агент при контуре; стюард конкретных контуров
не ответит — его путь моделируется, не проживаетсяpratibimba 象персона CJM, «человек в становлении»
отвечает на своём времени, из-за границыagantuka 客регулятор, контрагент, поставщик, рынок

Адресация: 主 — стратегическое («берём ли?»), задач ему не назначают; 能 — рабочие вопросы, адресат — по steward от контура вопроса, вне его мандата — к 主; 象 — никогда posed_to; 客 — можно, быстрого ответа не жди. Адресата бери из действительного множества (iskron_search(q="", node_type="karta") или по steward), не из строки корневых ролей ориентации: имя с твоим ключевым словом — ещё не та роль.

Ловушки: имя человека — не роль («Владелец продукта», не «Дмитрий»); внешняя сущность — часто два узла (API как ding, менеджер как 客); режим работы (Сборщик, Ткач) — суб-роль через group, род наследуется; стюард контура — только 主 или 能.

Решение 3: модусы

Вопрос берёт онтику предмета. Вимарша о проектируемом — anagata, не vartamana потому, что задаётся сейчас; при записи назови, как существует то, о чём спрашиваешь.

Три оси, каждая обязательна; фабрика печатает значения, вопрос оси и стартовую тройку рода — читай, не штампуй расходящуюся. Каждый модус — вопрос, на который ты отвечаешь, а не галочка. О состоянии узла говори словом клетки несущей оси — «ищем ответ», «держим вопрос», «принято», «предстоит», «практикуется», «в силе», — не «открыто», «закрыто», «живое». Самопроверка, образцы, словарь клеток, движения — references/modes.md: открой до первой записи модусов в сессии и прочти целиком.

Эпистемика — откуда знаем: предположили (kalpita), вывели (anumita), видели (pratyakshita), подтверждено независимыми основаниями (pramanita), опровергнуто и держим как опровержение (badhita); относится к выделенному суждению и средству. Чтение кода или графа видит содержание, не исполнение: заключение о поведении — не выше anumita, пока исполнение не наблюдалось. Фокусный тест с нулевым кодом — pratyakshita своей заявки, не канонического продукта. pramanita поведенческой заявки — относящиеся независимые основания и исполненный фальсификатор на каноническом носителе (reality-audit), не число пересказов; перечтение записи ничего не поднимает.

Онтика — как существует: действует (vartamana), предстоит (anagata), прошло (atita — прошедшее бытие; несбывшееся — anagata + visarjana), конструкт (vikalpa — не было никогда; ход в vikalpa — только вместе с badhita; badhita сам по себе может вести и в atita), утрачено (nashta — было, и следа нет; atita след оставляет). Nashta у идеального — понятия, семени, принципа, превращения, вопрошаний, несомых волей, — ошибка рода: идеальное опровергают или отпускают. Проектируемое рождается anagata — никогда «готовой» тройкой pramanita/vartamana/upeksha.

Воля — отношение держателей графа к записанному. Upeksha — не дефолт: anagata + upeksha — «будет, и нам всё равно», для проектируемого почти всегда ложь. Между chanda и upeksha решает вопрос: держится это намерением или устройством? Состоянию — возникает ли само?, деянию — продолжалось бы без настояния? Да — upeksha честна, нет — chanda; механизм стал требовать сам — ставь upeksha. Решился — adhimoksha, отпустил — visarjana.

Воля человека читается из его слова, не выводится: «надо», «хочу», «давай» — chanda; «решено», «берём», «держим» — adhimoksha; «нет», «не хочу», «убрать» — virodha в полярности рода (ниже); «отпускаем», «неважно» — visarjana; «ок, пусть так», «так и есть» — upeksha. Без слова человека пишешь свою стойку — chanda на предлагаемое; adhimoksha, virodha-отказ, принятие телоса и нежелательного (upeksha на риске, дефекте, инциденте) за владельца не ставятся — агент готовит материал и ждёт. В чужой воле различай: предложение; непринятие, записанное актом (снимает только новый акт, не время); неустановленное тобой основание — оно ограничивает лишь твою заявку, не модус и не мандат. Акт — в iskron_history, слово клетки называет модус; санкция — акт и законная политика рода, включая заранее данное полномочие. Риск с virodha — стережение, не отказ за принципала. Владельца делает место, не ключ: агент на его ключах под стоянием 能 — не владелец. Решение владельца словом ты вправе записать: кто, когда и само слово — в reasoning, содержание — в задетые узлы, стойка — в модусы (Решение 1). posed_by вимарши — короткий адрес (роль, стояние, человек), не проза.

Virodha поляризован родом, закрытие — по носителю рода. Поверхность несёт этот канон не весь: где она молчит, правило всё равно твоё.

РодvirodhaЧем закрывается
рискживой модус (стережём)visarjana; upeksha — принят: закрыт как работа, жив как запись. addressed_by к мере информативен и риск не закрывает; отпускание — акт держателей (inquiry)
контрпример, дефект основания, дрейфконститутивен, пока vartamanaatita (устранён), vikalpa (не было — только через badhita), nashta, visarjana
крия, роль, методдепрекация, живое напряжение—
сомнение, контртезис, подсказка, семяотказон сам и есть закрытие
превращениеставит человекvisarjana — тоже человек

疑念、反論、ヒントに対する upeksha は「そのまま受け入れられた」状態です。キューからは外れますが、回答済みとはならず、変容にも数えられません。原則は chanda(提案済み)、adhimoksha(保持によって有効となり、所有者が導入する)、upeksha(与えられたことで有効となる)です。根拠は derived_from/arose_from で、これがないと無理なこじつけになります。記録を閉じる前(atita、vikalpa、nashta、visarjana、望ましくないものに対する upeksha)に、references/modes.md の「virodha の極性とクローズ」を開き、節全体を読んでください。極性の長形式、望ましくないものに対する意志の三つの応答、「そうだったか?」という反証、原則の三つの状態、誤ったクローズが説明されています。ジャンルによるクローズは inquiry、§3 です。

決定 4:名前と説明

名前はノードの本質についての主張(正名)であり、ここを見るよう促すものです。エージェントは名前から、そのノードが自分にとって何なのかを認識します。基準は手がかりであり、網羅性ではありません。誰が、どのような意図でそのノードに立ち止まるべきかを名前に込め、残りは本文に記します。64 文字を超えたら名前を短くし、128 文字を超えたら名前ではありません。アンチパターン:段落になった名前、本文の言い換え、フィールド名の繰り返し(ジャンルが prati-paksha なのに「原則への反論……」とするなど)、状態や履歴、ダッシュの後の補足説明です。気づいた人は衝動を見過ごしませんが、改名は意志による行為であり、読んだことの副作用ではありません。自分のものは同じ手順で修正し、他人のものは同意を得て修正します(entry)。変容の telos と包括的な kriya は、所有者の言葉でのみ表します(assembly)。

タイプ文法✓✗
kriya動詞由来の名詞🔄 認証「API を作る」
phenomenon名詞⚙️ アクセストークン「トークンの作成」
holon境界の名前📦 認可の輪郭「📦 auth フォルダー」
karta役割の名前👤 設計者「ドミトリー」
vimarsha問いかけ — 必ずしも質問とは限らず、詩的なものもあります🕮 CXDB — 輪郭か実体か? · 🪶 命名の詩学について「問題」 · 「原則 X への反論:…」

絵文字はタイプではなく意味に合わせます。🔥 はインシデントを表します。

本文には、タイプごとに決まった名前を一つだけ付けます。telos(bianhua)、essence(kriya)、motivation(karta)、description(その他)です。本文には、kriya ならパリナーマ「前:X。後:Y。」(タスクリストとして読めるなら書き直してください)、現象ならそれが何であり、どの kriya がそれを扱うか(ひとつもなければ、何を書いているのか分かっていません)、vimarsha なら問いと何を回答とみなすか、holon なら境界の原則と工場に関する四つの問い、役割なら何に突き動かされているか、変容なら「システムが……になる」を記します。

**時間に依存しないことは原則です。本文に来歴を書いてはいけません。**名前と本文が語るのは、そのノードが何であり、どう使うかです。誰が、いつ、誰の手によって発言したのか、以前は何だったのかではありません。来歴を記す場所は、iskron_history(作成者と時刻を含むバージョン)、記録の reasoning(誰が、誰の言葉に基づいたか)、案件(会話履歴。SHA、ブランチ、PR は自由に記載できます)、arose_from エッジ(由来)です。ノードは、作成者と日付を記す節を加えるのではなく、現在の知識に合わせて本文を書き直すことで更新します。要注意の兆候:「今は」「このセッションでは」「X 側が観測」、日付、署名、末尾の「✅」、プロトコル調の説明です。例外:sachverhalt インシデントは attrs に時刻を持ち、shabda はその性質上日付を持ち、クローズ済みの vimarsha はアーカイブです。

attrs はデータであり、散文ではありません:seq、handle、日付、フラグ、リスト内の語です。条件を一行で記すのは、その条件がキーである場合(breaks_if)に限ります。観察は vimarsha で、決定は影響を受けた項目の修正で(決定 1)、結果はモードで示します。attrs 内の散文は、走査時に見えません。

決定 5:矢印

矢印のないノードは孤立しています。**関係はエッジに、その説明は sense に記します。**本文で利用者や条件に言及したら、同じ手順でエッジを張ります。複数ある場合はすべて張ります。upadhi は手間がかかりません。本文はノードが何であるか、エッジは何を結び付けるか、sense はなぜそうなのかを示します。 Веер различают ступенями: грубая связь прежде тонких. Много связей одного рода на узле — не долг, если они различены поэтапно; долг — неразличённая стена. Грубая связь стоит на зонте — он применяет, ест или даёт то же средство, что дети, либо вмещающий его феномен (целое для части, род для вида); тонкие связи листьев её уточняют, каждый лист называет своё самое действенное. Рёбра, названные телом, проводятся все — ступень решает, на каком узле каждое стоит. Пример: зонтичная крия ручек применяет семью адресов (upadhi), семья вмещает адрес (contains), ручка ест свой (ahara) — сто ручек суть веер шириной один. У настоящего среднего своя связь и своё «до и после» или «что это», ребёнок отвечает на его «как именно?»; зонт без своей связи — папка. Отношение рода: деяние и контур — вложение; феномен — вложение и «частный случай»; роль — специализация старшей; превращение — часть; у вопрошания ступени — превращение и якорь. Ширина считается по грубейшим связям; их одного рода больше, чем вмещает экран внимания, — зов «назови среднее» со своей связью, не «раздели», даже когда поверхность печатает счёт как долг.

Kriya — четыре вопроса (фабрика отказывает крие без ahara и без utpatti):

  1. Потребляет? → ahara — предмет действия; чтение сохраняемой опоры — upadhi (weaving, операция 5).
  2. Производит? → utpatti. Не можешь назвать — стой, ты не понял крию.
  3. Кто действует? → actor к роли. no-actor или исполнитель неизвестен — вимарша на крие, posed_to стюарду холона (через феномены крии): «Кто исполняет этот переход? Отвечено, когда названа роль и её мандат». До ответа actor не ставь: угаданная роль хуже натяжения. Машина без мотивации — upadhi, не актор.
  4. В каком контексте? → upadhi; attrs.mutable=true, если изменяет.

Пятый фабрика не спрашивает: частью чего? Перед записью на верхний уровень ищи родителя (iskron_semantic_search(q=<частью чего это является>)), при честном попадании — parent_id; неверный родитель хуже отсутствующего. next — нить, смысл на нём — прашна; contains — под-шаги.

Крии края (utpatti без ahara на входе, ahara без utpatti на выходе) — не недописанность: weaving, «Граница».

Phenomenon: context → контур (только феномен → холон; крия принадлежит контуру через свои феномены). derived_from, specifies — родословная феномен-к-феномену; contains феномен→феномен — целое и часть (ступень веера); supersedes на феномен не ведёт (только вимарша→вимарша) — преемственность вещи видна по потребителям.

Karta: steward → контур (только 主/能; 能 стюардит сам или под старшей ролью своей цепи group — предупреждение «отвечающий ни за что не отвечает» встаёт, только когда стюарда нет по всей цепи); group → старшая роль; actor — входящее от крий.

Vimarsha: vimarsha_of → точный узел вопроса, не его контур: якорь на границе раздувает её стрелки, якорь не на той высоте невидим тому, кто придёт на правильную. posed_to → роль-адресат: ребро-инбокс, не поле; к 象 запрещено; слова-адреса me (человек твоих ключей), agent (стояние сессии), steward (стюард контура якоря), realm-owner разрешает поверхность. Два зеркальных провала: posed_to без vimarsha_of — вопрос ни в чьём контуре; vimarsha_of без posed_to на вопросе, ждущем другого делателя, — записка в пустоту. Без штампов срочности: очередь ранжирует её владелец. vimarsha_of (о чём) и anga (куда двигает) не схлопывай: одна вимарша законно несёт оба. arose_from → наблюдение-исток. addressed_by → чем отвечено: крия, роль, вимарша или феномен по данности (различение, принцип, положение дел, вещь, метод; семя — нет); ответ-решение — стрелкой к поправленному или заведённому узлу, не абзацем в теле вопрошания; «вырос из» и «отвечает» — разные стрелки; стрелка ничего не завершает — закрывает модус по носителю рода. hint — семя превращения, не журнал: одно на превращение, со стрелкой anga к нему; в теле — только существенное условие продолжения, не восстановимое чтением графа и дел (смысл, инварианты, суть решений, ещё не легших в задетые узлы, что дальше), без атрибуции — она в reasoning. Живые дела не перечисляй — указатель: iskron_case(action="at", realm=<граф>, node=<узел предмета>), затем read; точечный №N с условием продолжения — только когда существенный выбор дела иначе не восстановить. Ход и состояние в семя не копируются; нет остатка — семя не нужно.

Bianhua: anga от носителя (вимарша, суб-превращение, крия) — параметром anga= фабрики (поверхность принимает и в arrows); крия-носитель читается из своей тройки модусов: возведение (anagata→vartamana, chanda/adhimoksha) или депрекация (vartamana→atita, virodha); завершённая остаётся частью. anantara_after= — что должно завершиться раньше, ациклично. Ни given_as, ни context, ни потоковых стрелок у превращения.

Смысл на стрелках: next → прашна — вопрос да/нет, на который следующий отвечает из своей ситуации («Путь построен — где он может сломаться?», не «перейти дальше»); upadhi → почему этот феномен важен именно здесь; ahara → что потреблено и почему.

Жанры вимарши

Хочешь сказать…Жанр
«Что может пойти не так?»risk
«Верно ли это?»samshaya
«Случай, который правило не покрывает»vyabhichara
«Не согласен»prati-paksha
«Рассуждение дефектно»hetu-dosha
«Термин уплыл»semantic-drift
«Будущий агент: прочти»hint

Не выбирается один → спутаны два вопроса, разведи. Назовёшь место поломки — risk, нет — samshaya.

После записи

Ошибка или таймаут → сначала найди запись, потом повторяй. Неизвестный исход — не «не записано»: цель перечитай iskron_look, создание найди iskron_search и iskron_semantic_search, сверь содержание и стрелки. Нашлось — продолжай от него; создание повторяй только после проверки отсутствия, мутацию — по свежей версии.

  1. CHECKS: в ответе фабрики — работа этого же такта: чини или отклоняй словом, не пересказывай, прежде чем идти дальше. not_orphan на свежем феномене ожидаем, пока его не возьмёт крия; context его не снимает.
  2. Тело называет связь, а ребра нет — проведи тем же ходом, прозу в sense.
  3. Феномен с ahara/utpatti — iskron_orient(lens="trace", focus=…): цикл связан?
  4. Крия — actor, ahara, utpatti существуют?
  5. Заменил узел — отпусти предшественника: supersedes только вимарша→вимарша; для прочих перенеси якоря и потребителей, предшественника отставь модусом его носителя — иначе остаётся живой дубликат.
  6. CHECKS, связность трассы и легальные стрелки — целостность графа, не истина поведенческого утверждения (Решение 3, эпистемика).

Операционное

reasoning="…" — на каждом пишущем вызове: зачем, едет в историю. basis_version обязателен на update / delete / reconnect: прочитал → записал → при конфликте перечитал. Переписываешь тело — прочти iskron_look(raw=true): обычная печать сворачивает повторы и смешивает атрибуты с телом. Порядок батча, inline-стрелки и temp:N — references/batch.md: конститутивные ahara/utpatti крии — inline в её create-операции, феномены — раньше ссылающихся крий.

Адрес узла от другого делателя прощупывай в тот же ход. Номер из кадра или слова — не адрес, пока iskron_look не ответил; не прощупывается — в текст ставь не номер, а слова о том, где вопрос стоит; отказ чтения о прошлом узла не свидетельствует. Состояние одной машины (ключ, файл на диске) узлом не бывает — его спрашивают словом, и отсутствие номера там не дыра.

コメント