Edit mode — click any text to edit · Ctrl+S to save
硯台

Teaching Taste
to an Agent

Ink Painting Prompts from Classical Verse

Augustin Chan · HKOSCon 2026 · 6 June

INKSTONE 硯台
Hillcrest Day Camp group photo, New York

Queens, New York

early 1980s

Augustin Chan

Augustin Chan

CTO & Founder, Digital Rain Technologies

sixlines.online — the app behind this talk

Co-host, hongkongaipodcast.com

Writing at augustinchan.dev

LinkedIn QR

LinkedIn

The I-Ching · 易經

64 hexagrams. Six lines — solid or broken.
Every possible pattern of change.

艮 Mountain
坎 Water

蒙 · Youthful Folly

Six Lines app — verse with ink painting

The Challenge

Generate 4,096 unique ink paintings — one for every verse in the Jiaoshi Yilin 焦氏易林

4,096
verses
64×64
hexagram pairs
~40 BCE
Jiaoshi Yilin

Built for SixLines.online — I-Ching reference & Chinese almanac

Thesis

What Is Taste?

Taste is pattern recognition earned through iteration against good references. You can't define it upfront. It emerges through cycles of judgment.

The challenge: how do you teach something you can only recognize — never fully articulate — to a machine?

The Iterative Loop

Human Judges Output
"Like this, not that"
→
AI Extracts & Encodes Rules
Figures out why, updates the skill

Re-run. Judge again. Repeat.

The pipeline is a black box. You can't reason about the model — you can only judge its output.

Not All Verses Paint Pictures

18.6%
Rich imagery

霜降閉戶,熟出隱處
不見日月,與死爲伍

Frost falls, doors seal shut. Hidden from sun and moon, dwelling with death.

溫山松柏,常茂不落
鸞鳳所庇,得其歡樂

Warm mountain pines, ever verdant. Sheltered by phoenix, finding joy.

50.0%
Needs expansion

明月照夜,使暗為晝

Bright moon lights the night, turning dark to day.

跛躓未起,失利後市
不得鹿子

Stumbling, not yet risen. Missed the market — the fawn escapes.

31.4%
Abstract / no imagery

元吉无咎,安寧不殆

Great fortune, no blame. Peace without peril.

初憂不安,後得笑懽
雖懼無患

First worry, then laughter. Though fearful, no harm.

賀喜從福,日利蕃息

Celebrations follow fortune. Blessings multiply daily.

Round 1: Style as Suffix

"…overflowing well, water branching… Ink wash with soft watercolor tints."

Round 1 — flat, lifeless ink wash well

Flat. Lifeless. The model treated "ink wash" as a filter, not a language.

Round 2: Try a Different Style?

"…overflowing well… Wabi-sabi aesthetic, muted tones."

Round 2 wabi-sabi — a photograph, not ink painting

Not even an ink painting. It's a photograph. The style suffix changed the medium entirely.

Core Discovery

Style Is Not a Suffix

The prompt must read like the caption under an ink painting — painterly metaphors woven throughout, not appended at the end.

# Bad — style as suffix "A tree on a hill. Chinese ink painting style." # Good — painterly language embedded in the scene "A gnarled pine leans from a cliff face like a brushstroke frozen mid-sweep, roots gripping stone above a gorge filled with morning mist. Chinese ink painting."

The Breakthrough Prompt

Write it like the caption under the painting — not a scene plus a style suffix.

Same verse. Three layers, painterly language throughout:

All 7 composition rules — woven in, not listed at the end.

Same verse. All 7 rules.

Production result — 48-59 overflowing well, ink-landscape

key 48-59 · 井 → 渙 · ink-landscape · fal-ai/z-image/turbo

An overflowing well sends water spilling in four branching streams across barren hillside, carving shallow channels in the earth. Foreground, the well mouth brims over, water sheeting across worn stone. Midground, the streams diverge eastward, spreading thin over sun-baked ground, nourishing sparse grasses. Beyond, desolate brown hills roll to a hazy horizon, the water lost among them. Amber reflections glint where the shallow streams catch the last daylight. Chinese ink painting.

What the AI Analyzed

The human said “this works.” The AI figured out why.

Language register controls medium

Painterly words produce paintings. Descriptive words produce photographs.

Spatial structure creates depth

Foreground/midground/background forces the model to compose, not just fill.

Warm accents anchor attention

A single point of color in monochrome gives the eye a destination.

Framing prevents floating subjects

Gates, tree canopies, gorge walls — context creates composition.

Dragon Gate — all principles applied

All four principles visible

What the Human Kept

The AI distilled these from human preferences:

7 Composition Rules

  1. 1. Frame the scene
  2. 2. Force depth
  3. 3. Demand contrast
  4. 4. Warm accent
  5. 5. Favor diagonals
  6. 6. Discoverable detail
  7. 7. Painterly language

5 Style Categories

atmospheric-night

atmospheric-night

ink-landscape

ink-landscape

figures-in-mist

figures-in-mist

bold-action

bold-action

cosmic-night

cosmic-night

AI reads verse tone → selects palette

atmospheric-night — 21-27
atmospheric-night

明滅光息,不能復食
精魄既喪,以夜為室

Light dims, radiance dies. Night becomes one's dwelling.

噬嗑 → 頤 · hexagram 21 → 27
ink-landscape — 1-16
ink-landscape

禹鑿龍門,通利水源
東注滄海,民得安存

Yu carved Dragon Gate and opened the water's source.
Flowing east to the vast sea, the people found safe dwelling.

乾 → 豫 · hexagram 1 → 16
figures-in-mist — 41-42
figures-in-mist

雨師娶婦,黃岩季子
成禮既婚,相呼面南

The Rain Master takes a bride. Rites completed, they face south.
Timely rain; a bountiful year, great rejoicing.

損 → 益 · hexagram 41 → 42
bold-action — 42-8
bold-action

白龍黑虎,起伏俱怒
蚩尤敗走,死於魯首

White dragon and black tiger rise in shared fury.
Chi You flees in defeat, slain at Lu Shou.

益 → 比 · hexagram 42 → 8
cosmic-night — 64-54
cosmic-night

龍生馬淵,壽考且神
飛騰上天,舍宿軒轅

The dragon born in the deep pool, long-lived and divine.
Flying upward to heaven, dwelling among the stars of Xuanyuan.

未濟 → 歸妹 · hexagram 64 → 54

Four Rounds to a Skill

Each round encoded more taste:

Round 1
Style as suffix
Failed — flat, lifeless
Round 2
Try different styles
Failed — wrong medium
Round 3
Language as style
Breakthrough!
Round 4
Encode & scale
4,096 images

52 of 4,096 hit content safety filters — the skill encodes substitution patterns: atmosphere and aftermath, never the act. The constraint forced better art.

5
style categories
7
composition rules
8
reference prompts
7
safety patterns

Abstract Verses? The Skill Handles It.

31% of verses have no concrete imagery. Here's how the skill turns abstract fortune into a painting:

Verse (input)

元吉无咎,安寧不殆

比 → 明夷 · "Great fortune, no blame. Peace without peril."

8-36: Mountain temple — golden-hour

key 8-36 · ink-landscape · 52 words

What the skill tells the agent

# Style table fallback for abstract verses: If abstract, choose by tone: ominous → atmospheric-night auspicious → ink-landscape mixed → bold-action # Composition rules still apply: 1. Frame the scene — gates, gorges, walls 2. Force depth — foreground/mid/background 4. Warm accent — amber, vermilion, gold

Agent output

Tone: serene, auspicious → ink-landscape
Frame: valley at sunset, stone steps through a temple gate
Depth: worn steps (fg) → wanderer on path (mid) → hazy peaks (bg)
Accent: golden-hour light on the gate

The rules forced the agent to invent concrete visual elements — even when the verse gave it nothing to paint.

What Is a Skill?

A SKILL.md file with YAML frontmatter + instructions. No runtime code — pure prompt engineering that encodes domain expertise.

--- name: verse-to-prompt description: Convert classical Chinese verse into image prompts user-invocable: true argument-hint: [paste your verse here] --- # Verse → Image Prompt Given a verse, produce: 1. A style classification with rationale 2. A 50-60 word English prompt ending "Chinese ink painting." 3. A faithful English translation ## The 7 Composition Rules (MANDATORY) ...

A skill carries pre-tested expertise. The agent doesn't rediscover — it inherits.

Plugins vs Skills

Plugin = Package

  • ■ A Git repository with a manifest
  • ■ Contains 1+ skills, agents, hooks
  • ■ Installed via /plugin install
  • ■ Versioned, shareable, discoverable
.claude-plugin/ plugin.json # manifest skills/ verse-to-prompt/SKILL.md blakean-scene/SKILL.md ...

Skill = Behavior

  • ■ A single SKILL.md file
  • ■ Defines one specific capability
  • ■ Invoked via /skill-name
  • ■ No code — instructions only
# Usage: /verse-to-prompt 白駒食場,一躍而去。 Style: ink-landscape Prompt: A white colt grazes in a walled courtyard...

The Inkstone Plugin · 硯台

Skills spanning creative, design, and productivity workflows

verse-to-prompt

Classical verse → ink painting prompts (7 rules, 5 styles)

image-to-scene

Ink paintings → video motion prompts (Seedance 2.0)

create-explanation

Bilingual scholarly explanations of oracular verse

blakean-scene

Abstract concepts → 240-word Blakean embodied scenes

ui-ux-architect

Design audit · 13 dimensions · Jobs/Ive philosophy

media-kit

Speaker bio writing, photo processing, page generation

Claude Code: /plugin marketplace add augchan42/inkstone

GitHub: github.com/augchan42/inkstone

Cursor: Same skills in Agent chat — ask naturally (e.g. "use verse-to-prompt on …") or copy to .cursor/skills/. No /plugin commands.

opencode: spec-packaged — worth trying npx skills add augchan42/inkstone (opencode ran this on its own to pull the skills).

Takeaways

Taste is iterative, not declarative

You can't define good output upfront. It emerges through cycles of human judgment and AI analysis.

Show, don't tell

Examples teach more than abstract rules.

Humans have taste; AI extracts patterns

You judge output. The AI figures out why it works and encodes the rules.

Skills encode the loop's output

A skill is distilled taste — the final artifact of an iterative collaboration between human and AI.

Beyond Claude Code

The idea is spreading. Several tools already support structured agent instructions:

GitHub Copilot

Agent mode reads SKILL.md from .github/skills/ or .agents/skills/

VS Code · CLI · cloud agent

OpenCode

Auto-discovers skills by scanning the skills/ folder against the Agent Skills spec; reads AGENTS.md for project context

Open source · see Jules' talk today!

Cursor

Copy SKILL.md into .cursor/skills/ — or just ask naturally in chat

No /plugin commands needed

Encode domain expertise into structured documents that agents consume at runtime.

Support HKOSCON

This conference runs on the open-source community. If today's talks brought you value, become a patron — every contribution keeps HKOSCON free, independent, and volunteer-run.

Become a Patron

Sponsor speakers, venues, and travel grants. Keep the open-source movement in Hong Kong thriving.

hkoscon.org/2026/patron

HKOSCON Patron QR

Donate · hkoscon.org/2026/patron

Hong Kong AI Podcast artwork

Hong Kong
AI Podcast

Real conversations with Hong Kong's AI practitioners — research, fintech, robotics, culture.

hongkongaipodcast.com

Podcast QR

Listen now

硯台

多謝 · Thank You

The kid who wouldn't learn Chinese taught a machine to paint 4,096 verses of an ancient classic.

Questions?

Slides QR

These slides

App: sixlines.online

Plugin: github.com/augchan42/inkstone

Blog: augustinchan.dev

X: @aug_digitalrain

aug@digitalrain.studio

LinkedIn QR

LinkedIn