design-harness

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

design-harness

release agent format license MIT

Turn scattered reading and half-formed ideas into a design you can defend — a skill, a system, a video script, even the structure of an article. The human adjudicates, the agent runs the errands.

An Agent Skill (Claude Code plugin, works with any SKILL.md-compatible agent): feed it sources and rough ideas as you go — it files and links them, records how your thinking evolves, and assembles the evidence into a system design.

Markdown keeps the record; the canvas makes it readable — every source and idea you add lands on the board, one glance away from any decision's why.

The canvas — sources, ideas, and output as three worlds on one board

▶ Click the board to open the live canvas — this repo's own design workspace, dogfooded — Pages serves the committed docs/canvas.html as-is. It's also our answer to "why is the design like this?" — send the link.

What This Does

  • Sources file themselves — drop papers, repos, blog posts; the agent files one card per source, grades it, and anchors every claim to where it came from.
  • Ideas are yours alone — only a human creates an idea card; the agent links it to evidence, clusters neighbors, and surfaces conflicts instead of picking a side.
  • Output assembles on your word — one command turns surviving ideas into the deliverable, and every later sync runs on your word too; edit output directly and it flows back into ideas.
  • Everything is traceable — every design element links back through ideas to the sources that earned it, with an append-only log on every card.
  • Plain Markdown, no lock-in — three folders in your repo; versionable, greppable, renders on GitHub. The agent is just the runtime.
  • One visual canvas — a self-contained HTML projection of the whole board: no server, no dependencies, rebuilt from the markdown on demand. Commit it, and whoever gets the repo gets the board.

Installation

Claude Code:

/plugin marketplace add tigerless-labs/design-harness
/plugin install design-harness@design-harness

Codex (CLI and the ChatGPT desktop app share one plugin system):

codex plugin marketplace add tigerless-labs/design-harness

then install from /plugins in the CLI or the desktop app's plugin directory.

For other SKILL.md-compatible agents, copy the skill folder into your agent's skill directory:

git clone https://github.com/tigerless-labs/design-harness
cp -r design-harness/plugins/design-harness/skills/design-harness \
  ~/.claude/skills/

Updating

Claude Code — refresh the marketplace, then update the plugin:

/plugin marketplace update design-harness
/plugin update design-harness@design-harness

(Or enable auto-update for this marketplace under /plugin → Marketplaces.)

Codex — refresh the marketplace snapshot, then update from /plugins:

codex plugin marketplace upgrade

Manual copy — git pull the clone and re-run the cp -r above.

Usage

Talk to your agent in plain language:

> file these papers onto the board
> assemble the design
  1. Drop material — the agent files and grades each source as a card.
  2. Think out loud — your judgments land as idea cards, linked to their evidence.
  3. Say go — the ideas assemble into the output your target.md declares.
  4. Ask for the canvas — the agent builds the board and hands you a clickable link.

Render your own workspace in ten seconds — the demo board is the same projection run on a real workspace:

python3 plugins/design-harness/skills/design-harness/scripts/build_canvas.py \
  path/to/your-workspace -o /tmp/canvas
open /tmp/canvas/canvas.html

Share the Why

The board is not just where you think — it's how you show someone else why the design is what it is. The canvas is one self-contained HTML file, so commit it beside your workspace:

python3 plugins/design-harness/skills/design-harness/scripts/build_canvas.py \
  path/to/your-workspace -o docs
git add docs/canvas.html

Whoever gets the repo opens one file and gets the whole board — every card one click from the evidence that earned it. Want a URL instead? Serve the same file with hosted pages, the way this repo does.

Canvas Styles

Five skins ship with the canvas; switch live from the toolbar, Pin & Paper is the default. Screenshots below are this repo's own workspace, unretouched — the board view and a close-up for each style.

Pin & Paper (default)

Pin & Paper — board Pin & Paper — close-up

A handmade pinboard: yellow paper ground, ink-blue hand script, pinned notes, taped slips, and dashed hand-drawn threads between them.

Notebook Tabs

Notebook Tabs — board Notebook Tabs — close-up

Warm ivory stationery: serif italic headings, index cards with colored tab tongues, sticky-note ideas, stitched dashed connections.

Swiss Modern

Swiss Modern — board Swiss Modern — close-up

White, ink, and one red accent: hairline grid, giant grotesk world titles with red ordinals, ruler-straight edges.

BlockFrame

BlockFrame — board BlockFrame — close-up

Neo-brutalist pastel decks: thick borders, hard offset shadows, cyan / pink / yellow card blocks that tilt just enough to feel alive.

8-Bit Orbit

8-Bit Orbit — board 8-Bit Orbit — close-up

A CRT arcade in deep navy — scanlines, neon cyan / yellow / magenta frames, and orthogonal circuit-trace edges. Dark in both color schemes; a CRT has no daylight mode.

Philosophy

  1. The human adjudicates, the agent runs the errands — agents execute well and judge poorly, and a wrong design costs the whole branch of code built on it.
  2. Markdown is the only source of truth — every other surface, the canvas included, is a projection: rebuilt wholesale from the markdown, committed and shared or thrown away, never the place facts live.
  3. Rejected ideas are archived with their reasons, never deleted — six months later, "why didn't we do X?" has an answer.
  4. Every element of the output must answer "why?" with a link.

This repo is dogfooded on itself: its own design was produced by running the method on ~80 sources about decision-making methods.

License

MIT — vendored renderers (marked, DOMPurify) keep their original headers.