Skip to content

Commit 9fc4578

Browse files
committed
Refine site navigation and page wayfinding
1 parent 9c210d7 commit 9fc4578

39 files changed

Lines changed: 1516 additions & 664 deletions

File tree

docs/ai-tool-sprawl-q1-2026/index.html

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</div>
2424
<nav class="global-nav" aria-label="Primary">
2525
<a class="nav-link" href="/">Home</a>
26-
<a class="nav-link current" href="/ai-tool-sprawl-q1-2026/">Research</a>
26+
<a class="nav-link current" href="/research/">Research</a>
2727
<a class="nav-link" href="/blog/">Blog</a>
2828
<a class="nav-link" href="/#about-heading">About</a>
2929
<a class="nav-link" href="/#contact-heading">Contact</a>
@@ -58,6 +58,22 @@ <h1>The State of AI Tool Sprawl</h1>
5858
</p>
5959
</section>
6060

61+
<section class="section page-nav" aria-labelledby="page-nav-heading">
62+
<h2 id="page-nav-heading">On this page</h2>
63+
<div class="page-nav-list">
64+
<a href="#status">Current status</a>
65+
<a href="#what-will-publish">What will publish</a>
66+
<a href="#available-now">Available now</a>
67+
<a href="#blog-bridge">Related blog posts</a>
68+
<a href="#note">Notes on scope</a>
69+
</div>
70+
<div class="link-row">
71+
<a href="/research/">All research</a>
72+
<span class="divider">|</span>
73+
<a href="/ai-tool-sprawl-v2-2026/">Published sprawl report</a>
74+
</div>
75+
</section>
76+
6177
<section class="section" aria-labelledby="status">
6278
<h2 id="status">Current status</h2>
6379
<div class="research-grid">
@@ -187,6 +203,8 @@ <h2 id="note">Notes on scope</h2>
187203
<div class="footer-links">
188204
<a href="/">Home</a>
189205
<span class="divider">|</span>
206+
<a href="/research/">All research</a>
207+
<span class="divider">|</span>
190208
<a href="/blog/">Blog</a>
191209
<span class="divider">|</span>
192210
<a href="/openclaw-2026/">OpenClaw</a>

docs/ai-tool-sprawl-v2-2026/index.html

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</div>
2424
<nav class="global-nav" aria-label="Primary">
2525
<a class="nav-link" href="/">Home</a>
26-
<a class="nav-link current" href="/ai-tool-sprawl-v2-2026/">Research</a>
26+
<a class="nav-link current" href="/research/">Research</a>
2727
<a class="nav-link" href="/blog/">Blog</a>
2828
<a class="nav-link" href="/#about-heading">About</a>
2929
<a class="nav-link" href="/#contact-heading">Contact</a>
@@ -58,6 +58,23 @@ <h1>Public AI Adoption Is Easy to See. Governed Use Is Much Harder to Prove.</h1
5858
</p>
5959
</section>
6060

61+
<section class="section page-nav" aria-labelledby="page-nav-heading">
62+
<h2 id="page-nav-heading">On this page</h2>
63+
<div class="page-nav-list">
64+
<a href="#headline-numbers">Headline numbers</a>
65+
<a href="#what-found">What we found</a>
66+
<a href="#for-leaders">For leaders</a>
67+
<a href="#scope">Scope</a>
68+
<a href="#methodology">Methodology</a>
69+
<a href="#for-media">For media</a>
70+
</div>
71+
<div class="link-row">
72+
<a href="/research/">All research</a>
73+
<span class="divider">|</span>
74+
<a href="/blog/sprawl-2026/">Related series</a>
75+
</div>
76+
</section>
77+
6178
<section class="section" aria-labelledby="headline-numbers">
6279
<h2 id="headline-numbers">Four headline numbers</h2>
6380
<div class="research-grid">
@@ -276,6 +293,8 @@ <h2 id="for-media">For media</h2>
276293
<div class="footer-links">
277294
<a href="/">Home</a>
278295
<span class="divider">|</span>
296+
<a href="/research/">All research</a>
297+
<span class="divider">|</span>
279298
<a href="/blog/">Blog</a>
280299
<span class="divider">|</span>
281300
<a href="/blog/sprawl-2026/">Sprawl series</a>

docs/assets/site.css

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ code {
100100
.button-link {
101101
display: inline-flex;
102102
align-items: center;
103-
min-height: auto;
104-
padding: 0;
103+
min-height: 32px;
104+
padding: 4px 0;
105105
border: 0;
106106
border-radius: 0;
107107
background: none;
@@ -130,6 +130,11 @@ code {
130130
font-weight: 600;
131131
}
132132

133+
.button-link.secondary {
134+
color: var(--muted);
135+
font-weight: 500;
136+
}
137+
133138
.section {
134139
padding: 36px 0;
135140
border-top: 1px solid var(--line);
@@ -251,7 +256,9 @@ h3 {
251256
.artifact-flow,
252257
.research-grid,
253258
.team-grid,
254-
.series-grid {
259+
.series-grid,
260+
.quick-grid,
261+
.route-grid {
255262
display: grid;
256263
gap: 16px;
257264
}
@@ -268,7 +275,9 @@ h3 {
268275
.blog-grid,
269276
.team-grid,
270277
.series-grid,
271-
.artifact-flow {
278+
.artifact-flow,
279+
.quick-grid,
280+
.route-grid {
272281
grid-template-columns: 1fr;
273282
}
274283

@@ -446,15 +455,50 @@ h3 {
446455
gap: 14px;
447456
}
448457

458+
.page-nav {
459+
display: grid;
460+
gap: 12px;
461+
}
462+
463+
.page-nav h2 {
464+
margin-bottom: 0;
465+
font-size: 1rem;
466+
}
467+
468+
.page-nav-list {
469+
display: flex;
470+
flex-wrap: wrap;
471+
gap: 10px 14px;
472+
align-items: center;
473+
}
474+
475+
.page-nav-list a {
476+
color: var(--muted);
477+
text-decoration: none;
478+
}
479+
480+
.page-nav-list a:hover {
481+
color: var(--accent-dark);
482+
text-decoration: underline;
483+
text-underline-offset: 3px;
484+
}
485+
449486
.spacious {
450487
display: grid;
451488
gap: 18px;
452489
}
453490

454491
@media (min-width: 820px) {
492+
.hero-grid {
493+
grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr);
494+
align-items: start;
495+
}
496+
455497
.research-grid,
456498
.blog-grid,
457-
.summary-grid {
499+
.summary-grid,
500+
.quick-grid,
501+
.route-grid {
458502
grid-template-columns: repeat(2, minmax(0, 1fr));
459503
}
460504
}

docs/blog/ai-engineering-control-problem/index.html

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</div>
2424
<nav class="global-nav" aria-label="Primary">
2525
<a class="nav-link" href="/">Home</a>
26-
<a class="nav-link" href="/#research-heading">Research</a>
26+
<a class="nav-link" href="/research/">Research</a>
2727
<a class="nav-link current" href="/blog/">Blog</a>
2828
<a class="nav-link" href="/#about-heading">About</a>
2929
<a class="nav-link" href="/#contact-heading">Contact</a>
@@ -36,9 +36,11 @@
3636
<span class="divider">/</span>
3737
<a href="/blog/">Blog</a>
3838
<span class="divider">/</span>
39-
<span>Post 1</span>
39+
<a href="/blog/operating-notes/">Operating Notes</a>
40+
<span class="divider">/</span>
41+
<span>AI Engineering Is a Control Problem, Not a Prompt Problem</span>
4042
</p>
41-
<p class="eyebrow">CAISI Blog / Post 1 of 10</p>
43+
<p class="eyebrow">AI Engineering Operating Notes / Post 1 of 10</p>
4244
<div class="post-author">
4345
<img class="author-avatar" src="/assets/david-ahmann-headshot.png" alt="David Ahmann" />
4446
<p class="author-byline">
@@ -56,8 +58,27 @@ <h1>AI Engineering Is a Control Problem, Not a Prompt Problem</h1>
5658
</p>
5759
</section>
5860

61+
<section class="section page-nav" aria-labelledby="page-nav-heading">
62+
<h2 id="page-nav-heading">In this piece</h2>
63+
<div class="page-nav-list">
64+
<a href="#the-operational-reality">The operational reality</a>
65+
<a href="#the-anti-pattern">The anti-pattern</a>
66+
<a href="#the-better-system-pattern">The better system pattern</a>
67+
<a href="#what-leaders-should-optimize-for-instead">What leaders should optimize for instead</a>
68+
<a href="#why-security-cares">Why security cares</a>
69+
<a href="#why-platform-and-engineering-care">Why platform and engineering care</a>
70+
<a href="#concrete-example-manual-steering-vs-governed-issue-to-pr-flow">Concrete example: manual steering vs governed issue-to-PR flow</a>
71+
<a href="#practical-next-step">Practical next step</a>
72+
</div>
73+
<div class="link-row">
74+
<a href="/blog/operating-notes/">Series home</a>
75+
<span class="divider">|</span>
76+
<a href="/blog/">All blog collections</a>
77+
</div>
78+
</section>
79+
5980
<section class="section article-section">
60-
<h2>The operational reality</h2>
81+
<h2 id="the-operational-reality">The operational reality</h2>
6182
<p>
6283
A prompt is cheap to improve. A production incident is not. That is
6384
why the "better prompting" conversation starts to feel thin the moment
@@ -83,7 +104,7 @@ <h2>The operational reality</h2>
83104
</section>
84105

85106
<section class="section article-section">
86-
<h2>The anti-pattern</h2>
107+
<h2 id="the-anti-pattern">The anti-pattern</h2>
87108
<p>
88109
The anti-pattern is prompt-centrism: treating the quality of the
89110
instructions as if it were the same thing as control. It is not. A
@@ -107,7 +128,7 @@ <h2>The anti-pattern</h2>
107128
</section>
108129

109130
<section class="section article-section">
110-
<h2>The better system pattern</h2>
131+
<h2 id="the-better-system-pattern">The better system pattern</h2>
111132
<p>
112133
The better pattern is to treat AI engineering as a governed software
113134
delivery system. The model still matters, but it sits inside a larger
@@ -134,7 +155,7 @@ <h2>The better system pattern</h2>
134155
</section>
135156

136157
<section class="section article-section">
137-
<h2>What leaders should optimize for instead</h2>
158+
<h2 id="what-leaders-should-optimize-for-instead">What leaders should optimize for instead</h2>
138159
<p>
139160
Once autonomy becomes part of software delivery, the right metrics
140161
change. Demo quality matters less than bounded throughput. A strong
@@ -154,7 +175,7 @@ <h2>What leaders should optimize for instead</h2>
154175
</section>
155176

156177
<section class="section article-section">
157-
<h2>Why security cares</h2>
178+
<h2 id="why-security-cares">Why security cares</h2>
158179
<p>
159180
Unmanaged agents create three security problems at once. First, they
160181
expand the change surface. The system is no longer just generating
@@ -176,7 +197,7 @@ <h2>Why security cares</h2>
176197
</section>
177198

178199
<section class="section article-section">
179-
<h2>Why platform and engineering care</h2>
200+
<h2 id="why-platform-and-engineering-care">Why platform and engineering care</h2>
180201
<p>
181202
The internal ally sees a different pain first: ad hoc prompting does
182203
not scale across teams or repositories. One strong engineer can drive
@@ -196,7 +217,7 @@ <h2>Why platform and engineering care</h2>
196217

197218
<section class="section">
198219
<div class="artifact">
199-
<h2>Concrete example: manual steering vs governed issue-to-PR flow</h2>
220+
<h2 id="concrete-example-manual-steering-vs-governed-issue-to-pr-flow">Concrete example: manual steering vs governed issue-to-PR flow</h2>
200221
<p class="body">
201222
The contrast below is the shift that matters. One path depends on a
202223
single operator carrying the workflow in their head. The other turns
@@ -229,7 +250,7 @@ <h3>3. Controlled promotion</h3>
229250
</section>
230251

231252
<section class="section article-section">
232-
<h2>Practical next step</h2>
253+
<h2 id="practical-next-step">Practical next step</h2>
233254
<p>
234255
Pick one agent workflow your team already uses. Ignore the prompt for
235256
a moment and map the control surface instead.
@@ -256,7 +277,7 @@ <h2>Practical next step</h2>
256277

257278
<footer class="section article-footer" aria-label="Post footer">
258279
<div class="series-nav">
259-
<a class="nav-link" href="/blog/">Back to blog</a>
280+
<a class="nav-link" href="/blog/operating-notes/">Back to series</a>
260281
<a class="nav-link" href="/blog/repository-runtime-contract/">Next post</a>
261282
</div>
262283
<p class="footer-note repo-note">

0 commit comments

Comments
 (0)