{
  "$schema": "https://pi-tui.ratstack.sh/schema/pattern.schema.json",
  "aka": [
    "Prompt history"
  ],
  "animated": false,
  "apis": [
    {
      "name": "Editor",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/coding-agent/docs/tui.md#compose-built-in-components"
    },
    {
      "name": "Editor.addToHistory",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/coding-agent/docs/keybindings.md#cursor-movement"
    },
    {
      "name": "Focusable",
      "url": null
    }
  ],
  "applicability": [
    "Use this when previous prompts should be reusable inside the editor."
  ],
  "category": "editors",
  "categoryLabel": "Editors and drafts",
  "consequences": [
    "Earlier submissions remain reachable inside the editor.",
    "Arrow history depends on cursor boundaries unless dedicated actions are used."
  ],
  "family": "behavioral",
  "familyLabel": "Behavioral",
  "id": "prompt-trail",
  "implementation": [
    "Boundary arrow navigation differs from interior cursor movement.",
    "Dedicated history actions do not require a cursor boundary."
  ],
  "intent": "Browse submitted prompts while retaining the current editor draft.",
  "jsonUrl": "https://pi-tui.ratstack.sh/patterns/prompt-trail.json",
  "kind": "component",
  "knownUses": [
    {
      "example": "nico-prompt-history",
      "moreRefs": 0,
      "refs": [
        {
          "file": "packages/tui/src/components/editor.ts",
          "lines": "51-116",
          "sha": "c550ed2b",
          "url": "https://github.com/earendil-works/pi/blob/c550ed2bcab8db29fd70e2096a390cf80d69cd91/packages/tui/src/components/editor.ts#L51-L116"
        },
        {
          "file": "packages/tui/src/components/editor.ts",
          "lines": "451-465",
          "sha": "c550ed2b",
          "url": "https://github.com/earendil-works/pi/blob/c550ed2bcab8db29fd70e2096a390cf80d69cd91/packages/tui/src/components/editor.ts#L451-L465"
        }
      ],
      "repo": "earendil-works/pi",
      "repoUrl": "https://github.com/earendil-works/pi",
      "title": "Navigate submitted prompts from the editor"
    }
  ],
  "linkedFrom": [],
  "links": {
    "agentGuide": "https://pi-tui.ratstack.sh/llms.txt",
    "index": "https://pi-tui.ratstack.sh/patterns.md",
    "skill": "https://pi-tui.ratstack.sh/skills/build-pi-tui-component.md"
  },
  "mdUrl": "https://pi-tui.ratstack.sh/patterns/prompt-trail.md",
  "motivation": "Nico's editor history lets users revisit prompts without losing the current draft.",
  "name": "Prompt Trail",
  "participants": [
    {
      "name": "Editor",
      "role": "Owns multi-line editing, autocomplete and history.",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/coding-agent/docs/tui.md#compose-built-in-components"
    },
    {
      "name": "Editor.addToHistory",
      "role": "Adds submitted text to editor history.",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/coding-agent/docs/keybindings.md#cursor-movement"
    },
    {
      "name": "Current draft",
      "role": "Returns when forward history browsing ends.",
      "url": null
    }
  ],
  "pi": "1.0.3",
  "related": [
    {
      "how": "preserves the base editor history",
      "id": "editor-steward",
      "jsonUrl": "https://pi-tui.ratstack.sh/patterns/editor-steward.json",
      "mdUrl": "https://pi-tui.ratstack.sh/patterns/editor-steward.md",
      "name": "Editor Steward",
      "url": "https://pi-tui.ratstack.sh/patterns/editor-steward/"
    }
  ],
  "sampleCode": {
    "code": "// Prompt Trail: browse real Editor history without overwriting the current draft.\nimport { Editor, truncateToWidth, type Component, type Focusable } from \"@earendil-works/pi-tui\";\nimport { getSelectListTheme } from \"@earendil-works/pi-coding-agent\";\nimport type { PatternStory } from \"../../../src/pattern.ts\";\n\nexport const story: PatternStory = {\n  id: \"prompt-trail\",\n  title: \"Prompt Trail\",\n  kind: \"component\",\n  apis: [\"Editor\", \"Editor.addToHistory\", \"Focusable\"],\n  rows: 10,\n  states: [\n    { id: \"draft\", label: \"Current draft\" },\n    { id: \"previous\", label: \"Previous prompt\", steps: [\n      { type: \"keys\", data: \"\\x1b[A\" }, { type: \"keys\", data: \"\\x1b[A\" },\n    ] },\n    { id: \"returned\", label: \"Draft retained\", steps: [\n      { type: \"keys\", data: \"\\x1b[B\" }, { type: \"keys\", data: \"\\x1b[B\" },\n    ] },\n  ],\n  setup({ theme, tui }) {\n    const currentDraft = \"Check the parser edge cases\";\n    const prompts = [\"Map the parser entry points\", \"Write the token boundary tests\"];\n    const editor = new Editor(tui, {\n      borderColor: text => theme.fg(\"border\", text),\n      selectList: getSelectListTheme(),\n    }, { paddingX: 1 });\n    for (const prompt of prompts) editor.addToHistory(prompt);\n    editor.setText(currentDraft);\n    class HistoryView implements Component, Focusable {\n      get focused() { return editor.focused; }\n      set focused(value: boolean) { editor.focused = value; }\n      invalidate() { editor.invalidate(); }\n      handleInput(data: string) { editor.handleInput(data); tui.requestRender(); }\n      render(width: number) {\n        return [\n          theme.fg(\"accent\", \"Prompt Trail · two saved prompts\"),\n          theme.fg(\"muted\", truncateToWidth(\"1 · \" + prompts[0], width)),\n          theme.fg(\"muted\", truncateToWidth(\"2 · \" + prompts[1], width)),\n          theme.fg(editor.getText() === currentDraft ? \"success\" : \"accent\",\n            editor.getText() === currentDraft ? \"Current draft · retained\" : \"Browsing saved history\"),\n          ...editor.render(width),\n          theme.fg(\"muted\", truncateToWidth(\"↑ older at top · ↓ newer at bottom\", width)),\n        ];\n      }\n    }\n    return new HistoryView();\n  },\n};\n",
    "lang": "ts",
    "path": "stories/patterns/behavioral/prompt-trail.ts"
  },
  "states": [
    {
      "dont": false,
      "expectFail": [],
      "frames": [
        {
          "alt": "Prompt Trail, Current draft state, 40 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-40-dark.a43a0222b960.webp",
          "theme": "dark",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Prompt Trail, Current draft state, 40 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-40-light.1daf84287d06.webp",
          "theme": "light",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Prompt Trail, Current draft state, 60 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-60-dark.d4b30985b790.webp",
          "theme": "dark",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Prompt Trail, Current draft state, 60 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-60-light.3cdfe13862c3.webp",
          "theme": "light",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Prompt Trail, Current draft state, 80 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-80-dark.a526e2a748b9.webp",
          "theme": "dark",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Prompt Trail, Current draft state, 80 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-80-light.720a057bf217.webp",
          "theme": "light",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Prompt Trail, Current draft state, 120 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-120-dark.3ace6ccee306.webp",
          "theme": "dark",
          "w": 2400,
          "width": 120
        },
        {
          "alt": "Prompt Trail, Current draft state, 120 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/draft-120-light.8a86da5d90a3.webp",
          "theme": "light",
          "w": 2400,
          "width": 120
        }
      ],
      "how": "Show a synthetic draft with two saved prompts.",
      "id": "draft",
      "label": "Current draft",
      "problems": []
    },
    {
      "dont": false,
      "expectFail": [],
      "frames": [
        {
          "alt": "Prompt Trail, Previous prompt state, 40 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-40-dark.25686fc7a7c8.webp",
          "theme": "dark",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Prompt Trail, Previous prompt state, 40 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-40-light.58d214f5ac8d.webp",
          "theme": "light",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Prompt Trail, Previous prompt state, 60 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-60-dark.70d792f933e4.webp",
          "theme": "dark",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Prompt Trail, Previous prompt state, 60 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-60-light.99125ff0ae8b.webp",
          "theme": "light",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Prompt Trail, Previous prompt state, 80 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-80-dark.9f6b015902a7.webp",
          "theme": "dark",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Prompt Trail, Previous prompt state, 80 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-80-light.3c41c3dc9fdc.webp",
          "theme": "light",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Prompt Trail, Previous prompt state, 120 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-120-dark.0049a6fc2b94.webp",
          "theme": "dark",
          "w": 2400,
          "width": 120
        },
        {
          "alt": "Prompt Trail, Previous prompt state, 120 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/previous-120-light.1c95b88c89f6.webp",
          "theme": "light",
          "w": 2400,
          "width": 120
        }
      ],
      "how": "Navigate history at an editor boundary.",
      "id": "previous",
      "label": "Previous prompt",
      "problems": []
    },
    {
      "dont": false,
      "expectFail": [],
      "frames": [
        {
          "alt": "Prompt Trail, Draft retained state, 40 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-40-dark.a43a0222b960.webp",
          "theme": "dark",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Prompt Trail, Draft retained state, 40 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-40-light.1daf84287d06.webp",
          "theme": "light",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Prompt Trail, Draft retained state, 60 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-60-dark.d4b30985b790.webp",
          "theme": "dark",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Prompt Trail, Draft retained state, 60 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-60-light.3cdfe13862c3.webp",
          "theme": "light",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Prompt Trail, Draft retained state, 80 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-80-dark.a526e2a748b9.webp",
          "theme": "dark",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Prompt Trail, Draft retained state, 80 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-80-light.720a057bf217.webp",
          "theme": "light",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Prompt Trail, Draft retained state, 120 columns, dark theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-120-dark.3ace6ccee306.webp",
          "theme": "dark",
          "w": 2400,
          "width": 120
        },
        {
          "alt": "Prompt Trail, Draft retained state, 120 columns, light theme, 8 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 352,
          "rows": 8,
          "still": "https://pi-tui.ratstack.sh/frames/prompt-trail/returned-120-light.8a86da5d90a3.webp",
          "theme": "light",
          "w": 2400,
          "width": 120
        }
      ],
      "how": "Browse forward until the current draft returns.",
      "id": "returned",
      "label": "Draft retained",
      "problems": []
    }
  ],
  "structure": "draft -> previous prompts\nnext through history -> draft",
  "thumbnails": {
    "dark": {
      "animation": null,
      "src": "https://pi-tui.ratstack.sh/thumbs/prompt-trail/dark.da506450dcd3.webp"
    },
    "light": {
      "animation": null,
      "src": "https://pi-tui.ratstack.sh/thumbs/prompt-trail/light.51ebb457fd8d.webp"
    }
  },
  "url": "https://pi-tui.ratstack.sh/patterns/prompt-trail/",
  "widths": [
    40,
    60,
    80,
    120
  ]
}
