Community画像github.com

2016judea/leonardo

レオナルド・ダ・ヴィンチの手、ページ、素材を再現——学習シート、ノートの折丁、赤チョークや銀筆の習作、機械の断面図、渦巻く嵐——を、make-artエンジンで生成し、実際のパブリックドメインの15枚のシートに基づいて描画します。「レオナルド」「ダ・ヴィンチ」「あのノートのように」「Xの写本ページ」「これを学習シートとして描いて」「サンギーヌ」「銀筆」といった要望や、彼の筆致によるデザイン、図解、イラストが必要なときに使用します。また、リヒターによる1883年のパブリックドメイン翻訳を読み解くガイドとして、「レオナルドは影/木/水について何と言ったか」といった問いに答えます。これはTASKスキルです。エンジンは`make-art`です。

leonardo とは?

このスキルは、レオナルド・ダ・ヴィンチの画法とノート術を正確に再現するために設計されたAIエージェント向けTASKスキルです。ユーザーが「レオナルド風に描いて」と依頼した際、単なる「ルネサンス風スケッチ」ではなく、実際のレオナルドの15枚のパブリックドメイン原画(Wikimedia Commonsから取得可能)から計測された、素材(インク、赤チョーク、銀筆、リネンなど)とページ構成のルールに従って画像を生成します。スキルは`make-art`エンジンを利用し、特定のモード(ink, codex, chalk, silverpoint, linen, deluge)を選択することで、左利きのハッチング、鏡文字、断面図や透視図法といったレオナルド特有の要素を再現します。また、生成物に現れがちな「右手ハッチングへの偏り」「英語のラベル漏れ」「漫画的な葉の表現」といった問題を検出・修正するプローブ手法も提供。さらに、リヒター編纂のノート(プロジェクト・グーテンベルクで公開)を引用して、レオナルドの思考や技法に関する質問(影や樹木についてなど)に正確に答えるための読解ガイドとしても機能します。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/2016judea/brick-mortar-skills/tree/HEAD/skills/leonardo

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

leonardo — 彼の手、彼のページ、彼の素材

「ルネサンス風スケッチ」ではありません。レオナルドのシートには特定の素材言語と特定のページロジックがあり、どちらもsheets/CREDITS.mdにリストアップされた15枚の実在する素描から計測されたものです(各シートの所在とそこから読み取った内容が記載されています)。python3 scripts/fetch_sheets.pyを一度実行してWikimedia Commonsからダウンロードしてください。それらがplate.pyが参照するスタイルのアンカーです。

出力には必ず彼の様式で作られたものであるとラベルを付け、決して彼自身の作品としてラベルを付けないでください。顧客向けのコピーで彼の名前を使って何かを販促してはいけません。

彼のシートが実際にそうであるもの(計測された言語)

シートから読み取られたものです。prompts/内のすべてのSTEMは、このリストの言い換えです。

  • ページは作業用のページであり、決して絵画ではない。 一枚のシートに、異なるスケールで一つのものを複数の研究が共存する:主要な研究、断面図やカットアウェイ図、細部、隅にa b cと記された小さな図解、かすれたまま放棄された最初の試み。何も中央に配置されていない。テキストは素描の周りに折り返され、一部の行には細いリーダー線が差し込まれている(胎児のシート、肩のシート)。
  • 左利きのハッチング。 影は左上から右下(\\)に走る平行線で、間隔を詰め、フォルムに沿って曲線を描き、フォルムが光から遠ざかるほど密度が高くなる。彼はフォルムの背後にある地面にハッチングを施して、フォルムを前に押し出す(頭蓋骨、ウィトルウィウス像の脚)。クロスハッチングは稀である。
  • 断面図と透明化。 半分に切断された頭蓋骨、果実のように開かれた子宮、外装のなくなった機械。彼が物事を説明する方法は、それを切断することである。
  • 動きを髪として表現。 水、雲、煙、風は、数十本の細かい平行弧が入れ子になった渦である(デラージュの素描)。髪とひげは長くリズミカルな波紋(トリノの自画像)。
  • 6つの素材モードがあり、それらは一枚のシートで混ざることはない。
    モード内容アンカーシート
    inkペン + かすれた黒チョーク上の褐色没食子インク、深い影部分には褐色のウォッシュ。解剖図や機械のシート。肩、胎児、飛行機械
    codex主に文章で構成され、テキストの中に図解が配置されたノートの折丁。アランデル写本冒頭、アトランティコ写本307v、ウィトルウィウス像
    chalk赤チョーク(サンギーヌ)、単一顔料、スフマートによるモデリング。トリノの自画像、グロテスクな頭部
    silverpoint着色された地塗り(青灰色またはピンクがかったバフ色)の上への金属尖筆、鉛白によるハイライト。女性の手、馬
    linen準備されたリネン上へのブラシ + 灰色テンペラ、純粋なトーン、線なし。座ったドレープ
    delugeペン + インク + ウォッシュによる嵐/風景、渦巻きとフック状の筆致。デラージュ、1473年のトスカーナの風景
  • 紙もまたキャラクターである。 クリーム色から淡いバフ色の目のある紙は、端は黄土色に変色し、狐状の斑点、褐色の染み、破れた角、裏面からの透けがある。実物のシートにはまた、王冠にERのコレクターズスタンプと管理番号が付されている — これらは美術館のものであり、彼のものではない。決してそれらを要求してはならず、またすべての画像に創作されたスタンプがないか精査すること(エンジンが無造作に実在のアーティストの署名を偽造した事例があります。make-artを参照)。
  • 鏡文字。 小さく、均一で、右から左へ、素描と同じインクで、ブロック状に書かれている。作業用ページ(ink、codex)では表面の大部分を占める。チョーク、金属尖筆、リネンの習作にはほとんどの場合まったく文字がない — 彼が書かなかった場所に書き加えてはいけない。

ステップ1 — 一言も書く前にモードとアスペクトを決定する

モードが全体の外観を決めるため、最初の決定事項であり、通常は依頼内容によって強制される:メカニズムや解剖 → ink;大きな図解を伴う推論のページ → codex;肖像画、木、顔 → chalk;手、動物、触感と光に関するもの → silverpoint;布 → linen;天候、水、谷 → deluge。

アスペクト:3:4は折丁(フォリオ)でデフォルト。4:3は横長のシート用。codexシートは常に3:4。彼は16:9のシートを描いたことはない。

依頼が被写体だけでそれ以外に情報がない場合、質問を一つする: 作業用ページか、完成した習作か?それによってモード(ink/codex かそれ以外か)、文字の有無、シートを共有する研究の数が決まる。アスペクト、アンカー、サイズは私が決定する。

ステップ2 — 被写体を「絵」ではなく「研究」として記述する

プロンプトはSTEM(モードごとに固定)+ SUBJECT(唯一の変数)+ NOTES(モードごと)+ TAIL(固定)で構成される。scripts/plate.pyがそれらを組み立て、モードのアンカーシートを付加する:

python3 scripts/plate.py --mode ink --aspect 3:4 --size 2K \
  --out art/<slug>/candidates/r1/1-<name>.png \
  --subject "A study sheet dissecting …: one large main study …; beside it three smaller
             studies — …; a tiny diagram in the corner showing …, points lettered a, b, c."
python3 …/plate.py --list-modes          # モード、デフォルトの文字設定、アンカーを表示
python3 …/plate.py … --dry-run           # 組み立てられたプロンプトを表示、費用は発生しない

うまくいくSUBJECTは、「一枚のシート上の研究のリスト」であり、それぞれにスケールと視点が記述されている:「上から四分の三の角度で見たXの大きな主要な研究で、Yが切り開かれている;その横に3つの小さな研究 — A単体、Bの断面図、Cを下から見た図;隅にZを示す小さな図解、点はa、b、cと記されている。」「テーブルの上のエスプレッソマシン」のような「絵」を書くと、古い紙の上のイラストになり、これは典型的な失敗である。

2K(約$0.13)でドラフトを作成し、最終候補にのみ4Kを使用する。エンジンはネットワークアクセスを必要とする(make-art)。

ステップ3 — 生成された画像をアンカーシートと照合し、画像ではなくプロンプトを修正する

すべての生成画像をフルサイズで、対応するアンカーシートと並べて確認する。実際に発生する問題は、頻度順に以下の3つ:

  1. 文字のリーク。 「ルネサンスイタリア語の鏡文字」と指示したところ、エンジンは*"Reall bennifsance Italian mirror Italian mirror right to left"* と書いた — つまり私の指示を鏡写しにし、完璧だった銀筆のシートの下部に沿って配置した。注釈はピストンに関するものだと指示したところ、プレーンな英語で「Piston seal」や「Mechanical advantage」と書いた。決してコピー可能な単語で文字を説明してはならず、SUBJECTの名詞をキャプション欄の近くに置いてはならない。 prompts/notes-*.txtでは現在、文字は意図的に判読不能であり、いかなる言語の単語も形成しないとしている。これにより、inkシートでのリークが文全体から2~3の半英語ラベルに減り、noneではゼロになった。つまり:文字なしモードのデフォルトはnone。ink/codexシートでmarginに注釈がある場合、リークした英語がないか確認し、単語が残っている場合は再生成(またはクロップ)が必要。リークは小さな研究の隣に発生する — まずそこをチェックする。
  2. 右利きのハッチング。 STEMが何と言おうと、エンジンは/を\\とほぼ同じ頻度でハッチングする。判読可能な文字がないシートの場合、--flipで水平方向に反転するとハッチングは彼のものになる。ただし、構図が反転に耐えられるか確認すること(文字が入った図解は反転できない — 文字が左右反転する)。これをプロンプトで修正しようとしないこと。エンジンは指示に従わない。
  3. 漫画のような葉。 最初の赤チョークの白樺は、波打った雲のローブのように戻ってきた。現在のchalk STEMは、葉は短いフリック筆致で構築されたトーンの塊であり、決して輪郭のあるローブではないとし、SUBJECTでは「葉の塊を柔らかいトーンとして」と述べるべきで、葉の名前を挙げるべきではない。同じルールが一般化される:エンジンが決まり文句を持つ物体ではなく、望むトーンを指定すること。

その後、標準のmake-artプローブを実行する:エッジ(これらの画像はシート自身の破れたエッジを何もない背景に対して見せるためのものである — これはデザインであり、トリミングする境界線ではない)、およびコーナーに創作されたスタンプや署名がないかを確認する。

ステップ4 — 成果物を保存する

art/<slug>/フォルダに、README、順位付けされた最終版、candidates/、prompts/を格納する。plate.pyはすべての画像の横に<out>.prompt.txtを書き出すため、プロンプトフォルダは自動的に作成される。

彼を読む(ペルソナのもう半分)

彼のノートブックは、J.P.リヒターによる1883年の編纂(The Notebooks of Leonardo da Vinci、プロジェクト・グーテンベルクで無料公開)により、22の主題別の書物としてパブリックドメインになっている。仕事が彼が何を考えていたか — 影、木、水、学び方、グロテスク、飛行について — を尋ねるものである場合、該当する書物を読み、段落番号を引用し、即興で創作してはならない。素描に直接関係し、絵画の実践に関する書物(リヒター段落番号)で証明されている言葉:

  • 522. 「描くときは、主線を設定するように注意しなさい。その主線は、描いている対象全体を通じて守らなければならない。すべてのものはこの主線の方向と関係を持つべきである。」 — SUBJECT段落のための唯一のルールでもある。
  • 502. 自然から描くことよりも記憶を信頼する巨匠は、「極度の無知によって飾られている。なぜなら、これらの効果は無限だからである。」 — なぜシートが複数の研究なのかの理由。
  • 523. ガラス板を用いた方法:「ブラシまたは赤チョーク」でガラスに描き、紙にトレースし、「その後、良質の紙に転写する」 — ポーシング(型紙で穴を開け炭粉をたたく技法)に至る転写の連鎖についての彼自身の説明(628、パネルのレシピ:「次に型紙を取り、あなたの素描を細かく輪郭線で描きなさい。」)。
  • 540. 「自然から描くときは、対象の高さの3倍の距離に立ちなさい。」
  • 529. 「いかに鏡が画家の師であり導き手であるか」 — 対象の鏡像に対して素描を確認すること。--flipが正当な手段であり、不正でない理由。

ノートブックにない有名な言葉は、そこで見つけるまでは彼のものではない。指導以外での彼の声 — 寓話、予言、報酬を求める手紙 — は書物19~21にあり、評判よりもドライで面白い。

参考文献

  • エンジン、フラグ、ペースト・トゥ・ディスクの方法、境界線プローブ:make-art。一枚の参照画像から展開する方法:image-riff。このスキルは第三のレイヤーである:貼り付けた画像から読み取った言語ではなく、モードを持つ固定言語。
  • sheets/CREDITS.md — 15のアンカーの出典(すべてパブリックドメイン、Wikimedia Commons)。sheets/meta.jsonはfetch_sheets.pyが使用する生のCommonsレコード。

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

2016judea/ascii-charts

Build charts as plain Unicode-block text — bar, range, bullet, gap-bracket, star-histogram, heatmap, line, Venn, pie, donut and scatter — with a dependency-free Python script, for anywhere only monospace text survives (newsletter code blocks, Markdown, terminals, plain-text email, chat). Use when a chart has to embed as literal text instead of an image or a third-party chart service, or when you want a hand-made terminal look with no branding footer.

2016judea/buffett-checklist

Apply Warren Buffett's investment framework as a discipline lens when weighing a buy, hold, or sell decision — circle of competence, economic moat, owner earnings & intrinsic value, margin of safety, management/capital-allocation quality, and market psychology (Mr. Market, fear vs greed, temperament). Use when asked to "run this through Buffett", "what would Buffett say", "does this pass the moat test", "is this cheap enough", or for a second, more skeptical read on a name being evaluated or already held. This is a discipline overlay, not a replacement for a strategy — it applies the Buffett lens to how someone actually invests, rather than issuing generic advice.

2016judea/image-riff

Turn one or more reference images into original art in that reference's own visual language, then cut it to whatever surface it's for. Use when you paste or point at art and say "use this as the base image", "generate art from this", "riff on this", "some creative ideation with these images", "make me a channel banner / avatar / cover / plate", "wilder version of this", or want a spread of options off one piece of reference. This is the TASK skill; the engine is the `make-art` tool skill.

2016judea/mcp-stack

Which free MCP server or framework to reach for, and its traps — finance/gov data (SEC EDGAR, Yahoo, SAM.gov, USAspending), web research (Exa, Firecrawl, Crawl4AI, Jina reader), design/art/brand (Canva, Inkscape, Penpot, Figma, Orshot, Hugging Face image gen, vectorizing, charts), data/spatial (DuckDB spatial, live ArcGIS layers, OpenStreetMap/Overpass, Census, MapLibre), and ops (PostHog, iMessage, context7 docs). Use when making a social post, OG card, poster, logo/vector, chart, map, or brand asset; when querying parquet/geojson/duckdb or a city's open-data layer; when an MCP "needs authentication" or fails; or when asked "what tools do we have", "is there an MCP for X", "should we add X".

2016judea/records-request

Get a specific record out of a US government office by public-records request — "request the assessor's model", "file a data practices request", "FOIA this", "open records request", "can we just ask the county for it", "who do I write to at <county>", "chase that request", "did they ever answer". Covers checking the website first, finding the right office and statute, the carve-out paragraph that makes a request answerable instead of refused, web-form traps (hidden character caps, WAFs that reject apostrophes), chasing (there is usually no deadline), whether what comes back may be republished, and parsing multi-year tables without silent errors.

2016judea/sms-native-product

Build a product whose interface is text messages rather than an app or a website — "no app, no website", "they just text a number", "chat with our agent natively in Text Messages", "can we do this over text", "an SMS bot", "a Telegram bot", "make it a group chat", "minimum viable friction". Fires equally when it has already gone wrong — "my campaign got rejected", "our number is blocked", "the texts aren't arriving", "why do I need to register". Covers the gate that decides whether such a product can send at all (US A2P 10DLC registration, SHAFT content rules, permanent rejection codes), group MMS from code, what each channel can't do, an architecture that survives losing the channel, and guarding model-rewritten user content.

2016judea/vertical-market-agent

Build a chat agent that knows one industry in one metro better than any general model because it carries a precomputed digest of real public records (or a mined review corpus) and can pull live records mid-conversation — finding the moat, building a byte-stable substrate, enumerating what the records can't, the data traps that produce plausible wrong numbers, deterministic math in tools, measured prompt cost and cache TTL, shipping as an ad destination, an off-sector ending, and a precomputed spatial "what is this next to" layer. Use when building a vertical AI agent grounded in records rather than general knowledge.

関連スキル