Skip to content

Commit 9bb5f7f

Browse files
committed
docs: Replace blockquotes with semantic containers
Blockquotes were overloaded — same visual for user prompts and agent reasoning. Split into two distinct admonition types: - .prompt — purple-tinted left bar for copy-paste LLM prompts - .agent-thought — gray italic for agent chain-of-thought Quickstart prompts → {admonition} with :class: prompt Recipe reasoning blocks → {admonition} with :class: agent-thought why: Blockquotes imply passive commentary, but the content is either actionable prompts or structured reasoning. The semantic mismatch creates subtle DX friction under reading load.
1 parent e6a5a44 commit 9bb5f7f

File tree

3 files changed

+153
-35
lines changed

3 files changed

+153
-35
lines changed

docs/_static/css/custom.css

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,60 @@ article {
192192
line-height: 1.6;
193193
}
194194

195+
/* ── Prompt blocks (user → LLM) ───────────────────────────
196+
* Styled admonition for copy-paste prompts. Purple-tinted
197+
* left bar ties to the interactive/link color. Visually says
198+
* "type this into your LLM client."
199+
* ────────────────────────────────────────────────────────── */
200+
div.admonition.prompt {
201+
border: none;
202+
border-left: 3px solid var(--color-link);
203+
background: color-mix(in srgb, var(--color-link) 6%, var(--color-background-primary));
204+
padding: 0.6rem 1rem;
205+
margin: 1rem 0;
206+
box-shadow: none;
207+
}
208+
209+
div.admonition.prompt > .admonition-title {
210+
display: none;
211+
}
212+
213+
div.admonition.prompt > p {
214+
font-size: 0.95rem;
215+
}
216+
217+
div.admonition.prompt > p:last-child {
218+
margin-bottom: 0;
219+
}
220+
221+
/* ── Agent reasoning blocks ──────────────────────────────
222+
* Styled admonition for agent chain-of-thought. Neutral
223+
* gray bar + italic + muted opacity = "internal narration,
224+
* not something you do."
225+
* ────────────────────────────────────────────────────────── */
226+
div.admonition.agent-thought {
227+
border: none;
228+
border-left: 3px solid var(--color-foreground-border);
229+
background: transparent;
230+
padding: 0.6rem 1rem;
231+
margin: 1rem 0;
232+
box-shadow: none;
233+
}
234+
235+
div.admonition.agent-thought > .admonition-title {
236+
display: none;
237+
}
238+
239+
div.admonition.agent-thought > p {
240+
font-style: italic;
241+
color: var(--color-foreground-secondary);
242+
font-size: 0.9rem;
243+
}
244+
245+
div.admonition.agent-thought > p:last-child {
246+
margin-bottom: 0;
247+
}
248+
195249
/* ── Image layout shift prevention ────────────────────────
196250
* Reserve space for images before they load. Furo already
197251
* sets max-width: 100%; height: auto on img. We add

docs/quickstart.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,35 @@ Using a different client? See {ref}`installation` and {ref}`clients`.
1616

1717
Ask your LLM:
1818

19-
> List all my tmux sessions and show me what's running in each pane.
19+
```{admonition} Prompt
20+
:class: prompt
21+
22+
List all my tmux sessions and show me what's running in each pane.
23+
```
2024

2125
The agent will call `list_sessions`, then `list_panes` and `capture_pane` to inspect your workspace. You should see your tmux sessions, windows, and pane contents in the response.
2226

2327
## 3. Try it
2428

2529
Here are a few things to try:
2630

27-
> Create a new tmux session called "workspace" with a window named "build".
31+
```{admonition} Prompt
32+
:class: prompt
33+
34+
Create a new tmux session called "workspace" with a window named "build".
35+
```
36+
37+
```{admonition} Prompt
38+
:class: prompt
39+
40+
Send `make test` to the pane in my build window, then wait for it to finish and capture the output.
41+
```
2842

29-
> Send `make test` to the pane in my build window, then wait for it to finish and capture the output.
43+
```{admonition} Prompt
44+
:class: prompt
3045
31-
> Search all my panes for the word "error".
46+
Search all my panes for the word "error".
47+
```
3248

3349
## How it works
3450

docs/recipes.md

Lines changed: 79 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,26 @@ or what port it chose.
2929

3030
### Discover
3131

32-
> {toolref}`list-panes` will not help here -- it shows metadata like current
33-
> command and working directory, not terminal content. The dev server printed
34-
> its URL to the terminal minutes ago, so I need to search terminal content.
32+
```{admonition} Agent reasoning
33+
:class: agent-thought
34+
35+
{toolref}`list-panes` will not help here -- it shows metadata like current
36+
command and working directory, not terminal content. The dev server printed
37+
its URL to the terminal minutes ago, so I need to search terminal content.
38+
```
3539

3640
The agent calls {tooliconl}`search-panes` with `pattern: "Local:"` and
3741
`session_name: "myapp"`. The response comes back with pane `%5` in the `react`
3842
window, matched line: `Local: http://localhost:5173/`.
3943

4044
### Decide
4145

42-
> The server is alive and its URL is known. I do not need to start anything.
43-
> I just need an idle pane for running tests.
46+
```{admonition} Agent reasoning
47+
:class: agent-thought
48+
49+
The server is alive and its URL is known. I do not need to start anything.
50+
I just need an idle pane for running tests.
51+
```
4452

4553
The agent calls {tooliconl}`list-panes` on the `myapp` session. Several panes show
4654
`pane_current_command: zsh` -- idle shells. It picks `%4` in the same window.
@@ -82,17 +90,25 @@ suite needs a live API server.
8290

8391
### Discover
8492

85-
> First I need to know what exists in the `backend` session. If a server is
86-
> already running, I should reuse it instead of starting a duplicate.
93+
```{admonition} Agent reasoning
94+
:class: agent-thought
95+
96+
First I need to know what exists in the `backend` session. If a server is
97+
already running, I should reuse it instead of starting a duplicate.
98+
```
8799

88100
The agent calls {tooliconl}`list-panes` for the `backend` session. No pane is
89101
running a server process. A {tooliconl}`search-panes` call for `"listening"`
90102
returns no matches.
91103

92104
### Decide
93105

94-
> Nothing to reuse. I need a dedicated pane for the server so its output
95-
> stays separate from the test output.
106+
```{admonition} Agent reasoning
107+
:class: agent-thought
108+
109+
Nothing to reuse. I need a dedicated pane for the server so its output
110+
stays separate from the test output.
111+
```
96112

97113
### Act
98114

@@ -135,18 +151,26 @@ them failed, but they stepped away and do not remember which pane.
135151

136152
### Discover
137153

138-
> I should not capture every pane and read them all -- that is expensive and
139-
> slow. Instead I will search for common failure indicators across all panes
140-
> at once.
154+
```{admonition} Agent reasoning
155+
:class: agent-thought
156+
157+
I should not capture every pane and read them all -- that is expensive and
158+
slow. Instead I will search for common failure indicators across all panes
159+
at once.
160+
```
141161

142162
The agent calls {tooliconl}`search-panes` with
143163
`pattern: "FAIL|ERROR|error:|Traceback"`, `regex: true`, scoped to
144164
`session_name: "ci"`.
145165

146166
### Decide
147167

148-
> Two panes matched: `%3` has `FAIL: test_upload` and `%6` has
149-
> `error: Type 'string' is not assignable`. I will capture context from each.
168+
```{admonition} Agent reasoning
169+
:class: agent-thought
170+
171+
Two panes matched: `%3` has `FAIL: test_upload` and `%6` has
172+
`error: Type 'string' is not assignable`. I will capture context from each.
173+
```
150174

151175
### Act
152176

@@ -179,25 +203,37 @@ interrupt it, verify the pane is responsive, and re-run the command.
179203

180204
### Discover
181205

182-
> I need to send Ctrl-C. This is a tmux key name, not text -- so I must use
183-
> `enter: false` or tmux will send Ctrl-C followed by Enter, which could
184-
> confirm a prompt I did not intend to answer.
206+
```{admonition} Agent reasoning
207+
:class: agent-thought
208+
209+
I need to send Ctrl-C. This is a tmux key name, not text -- so I must use
210+
`enter: false` or tmux will send Ctrl-C followed by Enter, which could
211+
confirm a prompt I did not intend to answer.
212+
```
185213

186214
The agent calls {tooliconl}`send-keys` with `keys: "C-c"` and `enter: false` on
187215
the target pane.
188216

189217
### Decide
190218

191-
> Did the interrupt work? Some processes ignore {term}`SIGINT`. I will wait briefly
192-
> for a shell prompt to reappear. Developers use custom prompts, so I cannot
193-
> just look for `$`.
219+
```{admonition} Agent reasoning
220+
:class: agent-thought
221+
222+
Did the interrupt work? Some processes ignore {term}`SIGINT`. I will wait briefly
223+
for a shell prompt to reappear. Developers use custom prompts, so I cannot
224+
just look for `$`.
225+
```
194226

195227
The agent calls {tooliconl}`wait-for-text` with `pattern: "[$#>%] *$"`,
196228
`regex: true`, and `timeout: 5`.
197229

198-
> If the wait resolves, the shell is back. If it times out, the process
199-
> ignored Ctrl-C. I will escalate: try {term}`SIGQUIT` (`C-\` with `enter: false`),
200-
> then destroy and replace the pane only as a last resort.
230+
```{admonition} Agent reasoning
231+
:class: agent-thought
232+
233+
If the wait resolves, the shell is back. If it times out, the process
234+
ignored Ctrl-C. I will escalate: try {term}`SIGQUIT` (`C-\` with `enter: false`),
235+
then destroy and replace the pane only as a last resort.
236+
```
201237

202238
### Act
203239

@@ -239,9 +275,13 @@ current command. If more than one pane is plausible, it uses
239275

240276
### Decide
241277

242-
> The pane is a shell. I should clear it before running so the capture
243-
> afterwards contains only fresh output. If it were running a watcher or
244-
> long-lived process, I would not hijack it -- I would use a different pane.
278+
```{admonition} Agent reasoning
279+
:class: agent-thought
280+
281+
The pane is a shell. I should clear it before running so the capture
282+
afterwards contains only fresh output. If it were running a watcher or
283+
long-lived process, I would not hijack it -- I would use a different pane.
284+
```
245285

246286
### Act
247287

@@ -272,16 +312,24 @@ server pane", "the test pane").
272312

273313
### Discover
274314

275-
> Before creating anything, I need to check whether a session with this name
276-
> already exists. Creating a duplicate will fail.
315+
```{admonition} Agent reasoning
316+
:class: agent-thought
317+
318+
Before creating anything, I need to check whether a session with this name
319+
already exists. Creating a duplicate will fail.
320+
```
277321

278322
The agent calls {tooliconl}`list-sessions`. No session named `myproject` exists.
279323

280324
### Decide
281325

282-
> Safe to create. I need three panes: editor, server, tests. I will create
283-
> the session, split twice, then apply a layout so tmux handles the geometry
284-
> instead of me calculating sizes.
326+
```{admonition} Agent reasoning
327+
:class: agent-thought
328+
329+
Safe to create. I need three panes: editor, server, tests. I will create
330+
the session, split twice, then apply a layout so tmux handles the geometry
331+
instead of me calculating sizes.
332+
```
285333

286334
### Act
287335

0 commit comments

Comments
 (0)