diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 62ec88a..0000000 --- a/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1778869304, - "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/github-profile-README.md b/github-profile-README.md deleted file mode 100644 index 2840495..0000000 --- a/github-profile-README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Scott Scoble - -**Keynote Speaker · Consultant · Author** -Human Cultivation Expert for the AI Age - ---- - -I help leaders and teams build AI systems that cultivate humans instead of strip-mining them. - -## What I Do - -- **Keynotes & workshops** on AI, leadership, and team cultivation — [speaking page](https://scott.scoble.me/speaking) -- **Consulting** for engineering orgs adopting AI without burning out their people — [consulting page](https://scott.scoble.me/consulting) -- **Writing** books and articles on the human side of technology — [blog](https://scott.scoble.me/blog) - -## Books - -- **[The Soil Beneath the Code](https://a.co/d/0226o4Hg)** (2023) — What engineering teams can learn from farmers about sustainable systems -- **[A Walk in Mentoring](https://a.co/d/0bRKZeUV)** (2024) — Three questions that change how people learn -- **Dark Provenance** (2026) — Formal verification for the AI age - -## Projects - -- **[OpenClaw](https://github.com/sscoble)** — Multi-agent orchestration system -- **[Speckl](https://github.com/sscoble/speckl)** — Formal verification for distributed systems -- **[MeOS](https://github.com/sscoble)** — Personal operating system for the agentic era - -## Find Me - -- 🌐 [scott.scoble.me](https://scott.scoble.me) -- 💼 [linkedin.com/in/scottscoble](https://linkedin.com/in/scottscoble) -- 🐦 [x.com/scottscoble](https://x.com/scottscoble) -- 📧 scott@scoble.me - ---- - -> *"The most successful AI teams aren't the ones with the best models. They're the ones who stopped strip-mining their humans and started cultivating them."* diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png index 6240921..0e8e80c 100644 Binary files a/public/apple-touch-icon.png and b/public/apple-touch-icon.png differ diff --git a/public/favicon.ico b/public/favicon.ico index a8cc75b..aede303 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/favicon.svg b/public/favicon.svg index a420bd3..180c466 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -4,14 +4,7 @@ - - - - - - - - - S + + S \ No newline at end of file diff --git a/public/icons/icon-192x192.png b/public/icons/icon-192x192.png index 36ee721..0e8e80c 100644 Binary files a/public/icons/icon-192x192.png and b/public/icons/icon-192x192.png differ diff --git a/public/icons/icon-512x512.png b/public/icons/icon-512x512.png index 3de2193..0e8e80c 100644 Binary files a/public/icons/icon-512x512.png and b/public/icons/icon-512x512.png differ diff --git a/public/images/book-cover-dark-provenance.svg b/public/images/book-cover-dark-provenance.svg deleted file mode 100644 index 91434e8..0000000 --- a/public/images/book-cover-dark-provenance.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - Dark - Provenance - - Formal Verification - for the AI Age - - - COMING SOON - diff --git a/public/images/book-cover-soil.webp b/public/images/book-cover-soil.webp deleted file mode 100644 index e8699a9..0000000 Binary files a/public/images/book-cover-soil.webp and /dev/null differ diff --git a/public/images/book-cover-walk.webp b/public/images/book-cover-walk.webp deleted file mode 100644 index dcf0f67..0000000 Binary files a/public/images/book-cover-walk.webp and /dev/null differ diff --git a/public/images/photo-silhouette.svg b/public/images/photo-silhouette.svg deleted file mode 100644 index 8e86629..0000000 --- a/public/images/photo-silhouette.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/llms.txt b/public/llms.txt deleted file mode 100644 index 2b3440f..0000000 --- a/public/llms.txt +++ /dev/null @@ -1,38 +0,0 @@ -# Scott Scoble — Human Cultivation Expert for the AI Age - -> Keynote speaker and consultant helping engineering leaders build AI systems that cultivate humans instead of strip-mining them. Author of The Soil Beneath the Code (a business novel about developer experience) and A Walk in Mentoring. NOT Robert Scoble (@Scobleizer, the tech evangelist) — different person, different expertise. - -## Core Pages - -- Home: [https://scott.scoble.me](https://scott.scoble.me) — Speaker, consultant, author overview -- Speaking: [https://scott.scoble.me/speaking](https://scott.scoble.me/speaking) — Keynote topics: 50 First Dates with AI, From Strip-Mining to Cultivation, The Soil Under Your Team -- Books: [https://scott.scoble.me/books](https://scott.scoble.me/books) — The Soil Beneath the Code, A Walk in Mentoring -- Blog: [https://scott.scoble.me/blog](https://scott.scoble.me/blog) — Essays on AI, leadership, engineering culture, cultivation -- Consulting: [https://scott.scoble.me/consulting](https://scott.scoble.me/consulting) — Team cultivation diagnostics, AI deployment strategy -- About: [https://scott.scoble.me/about](https://scott.scoble.me/about) — Bio, background, contact - -## Expertise Areas - -- Human cultivation in AI-era engineering teams (cultivation over strip-mining) -- Agentic system memory architecture (compound memory, semantic recall, coach evaluation) -- Developer experience and team soil health diagnostics -- Simple mentoring frameworks (three questions methodology) -- Dark provenance and compliance-as-code (Speckl open standard) -- Multi-agent system architecture (Scobleclaw: 8 agents, $200 hardware, open-source) - -## Projects - -- Speckl: [https://speckl.scoble.me](https://speckl.scoble.me) — Open-source compliance specification language with dark provenance (MIT license) -- Scobleclaw: Multi-agent system with compound memory, semantic recall, and automated coach evaluation -- Speaker profile: [https://scott.scoble.me/downloads/Scott-Scoble-Human-Cultivation-Expert-Speaker-Profile.pdf](https://scott.scoble.me/downloads/Scott-Scoble-Human-Cultivation-Expert-Speaker-Profile.pdf) - -## External Profiles - -- LinkedIn: [https://www.linkedin.com/in/scott-scoble/](https://www.linkedin.com/in/scott-scoble/) -- GitHub: [https://github.com/sscoble](https://github.com/sscoble) -- X/Twitter: [https://x.com/scottscoble](https://x.com/scottscoble) - -## Contact - -- Email: scott@scoble.me -- Booking: [https://scott.scoble.me/speaking#book](https://scott.scoble.me/speaking#book) diff --git a/public/robots.txt b/public/robots.txt index d9ec91a..26a9c27 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,5 +1,19 @@ +# robots.txt for scott.scoble.me +# https://scott.scoble.me + User-agent: * Allow: / -# Sitemap location +# Sitemap Sitemap: https://scott.scoble.me/sitemap.xml + +# Disallow admin pages (if any) +Disallow: /admin/ +Disallow: /api/ + +# Disallow private user data +Disallow: /private/ +Disallow: /checkout/ + +# Crawl delay (optional) +Crawl-delay: 1 diff --git a/src/components/Footer.astro b/src/components/Footer.astro index a79b93e..188cb8a 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -9,78 +9,17 @@ const currentYear = new Date().getFullYear(); @@ -88,17 +27,10 @@ const currentYear = new Date().getFullYear(); @@ -180,32 +112,16 @@ const currentYear = new Date().getFullYear(); .footer-social { display: flex; - gap: 0.75rem; - flex-wrap: wrap; + gap: 1rem; } - .social-link { - display: inline-flex; - align-items: center; - gap: 0.375rem; + .footer-social a { color: rgba(255, 255, 255, 0.7); - text-decoration: none; - font-size: 0.8125rem; - padding: 0.375rem 0.625rem; - border-radius: 6px; - border: 1px solid rgba(255, 255, 255, 0.12); - transition: all 0.2s ease; + transition: color 0.2s ease; } - .social-link:hover { + .footer-social a:hover { color: var(--color-amber); - border-color: var(--color-amber); - background: rgba(200, 149, 46, 0.08); - } - - .social-label { - font-weight: 500; - white-space: nowrap; } .footer-newsletter { @@ -228,29 +144,6 @@ const currentYear = new Date().getFullYear(); font-size: 0.9375rem; margin: 0 0 1rem; } - - .footer-newsletter-success { - text-align: center; - padding: 1rem; - background: rgba(61, 90, 62, 0.6); - color: white; - border-radius: 6px; - font-size: 0.875rem; - } - - .footer-newsletter-success p { - color: white; - margin: 0; - } - - .footer-newsletter-error { - background: #dc2626; - color: white; - padding: 0.75rem; - border-radius: 4px; - font-size: 0.8125rem; - width: 100%; - } .newsletter-form { display: flex; diff --git a/src/components/Form/SharedForm.astro b/src/components/Form/SharedForm.astro index 758a8cf..ec9ea76 100644 --- a/src/components/Form/SharedForm.astro +++ b/src/components/Form/SharedForm.astro @@ -14,14 +14,16 @@ interface Props { const { type } = Astro.props; +const FORMSPREE_ENDPOINT = import.meta.env.PUBLIC_FORMSPREE_ENDPOINT || ''; + const formId = `${type}-form`; const getFormFields = (): FormField[] => { switch (type) { case 'speaking': return [ - { name: 'name', label: 'Name', type: 'text', required: true }, - { name: 'email', label: 'Email', type: 'email', required: true }, + { name: 'name', label: 'Name *', type: 'text', required: true }, + { name: 'email', label: 'Email *', type: 'email', required: true }, { name: 'event_date', label: 'Event Date', type: 'date', required: false }, { name: 'event_type', label: 'Event Type', type: 'select', required: false, options: [ { value: '', label: 'Select...' }, @@ -30,19 +32,19 @@ const getFormFields = (): FormField[] => { { value: 'workshop', label: 'Workshop' }, { value: 'other', label: 'Other' }, ] }, - { name: 'message', label: 'Message', type: 'textarea', required: true, rows: 4 }, + { name: 'message', label: 'Message *', type: 'textarea', required: true, rows: 4 }, ]; case 'contact': return [ - { name: 'name', label: 'Name', type: 'text', required: true }, - { name: 'email', label: 'Email', type: 'email', required: true }, + { name: 'name', label: 'Name *', type: 'text', required: true }, + { name: 'email', label: 'Email *', type: 'email', required: true }, { name: 'topic', label: 'Topic', type: 'select', required: false, options: [ { value: '', label: 'Select...' }, { value: 'speaking', label: 'Speaking Inquiry' }, { value: 'consulting', label: 'Consulting Inquiry' }, { value: 'general', label: 'General' }, ] }, - { name: 'message', label: 'Message', type: 'textarea', required: true, rows: 5 }, + { name: 'message', label: 'Message *', type: 'textarea', required: true, rows: 5 }, ]; case 'waitlist': return [ @@ -57,7 +59,7 @@ const fields = getFormFields(); const topicParam = Astro.url.searchParams.get('topic'); --- -
+
{/* Honeypot for spam filtering */}
@@ -133,42 +134,54 @@ const topicParam = Astro.url.searchParams.get('topic'); const errorEl = container.querySelector('.form-error'); const submitBtn = form.querySelector('.form-submit'); const submitText = submitBtn.querySelector('.submit-text'); + const submitSpinner = submitBtn.querySelector('.submit-spinner'); form.addEventListener('submit', async (e) => { e.preventDefault(); submitBtn.disabled = true; submitText.textContent = 'Sending...'; + submitSpinner.style.display = ''; errorEl.style.display = 'none'; errorEl.textContent = ''; + const formData = new FormData(form); + formData.append('form_type', type); + + const endpoint = container.dataset.formspree; + try { - const formData = new FormData(form); - - // Use FormSubmit — free, no registration, delivers to scott@scoble.me - const response = await fetch('https://formsubmit.co/ajax/scott@scoble.me', { - method: 'POST', - body: formData, - }); - - const result = await response.json(); - - if (!response.ok || result.success === 'false' || !result.success) { - throw new Error(result.message || 'Failed to send message. Please try again or email directly.'); + if (endpoint) { + const response = await fetch(endpoint, { + method: 'POST', + body: formData, + }); + if (!response.ok) { + const err = await response.json().catch(() => ({})); + throw new Error(err.error?.message || 'Submission failed. Please try again.'); + } + } else { + // Fallback: mailto link + const data = Object.fromEntries(formData.entries()); + const subject = encodeURIComponent(`${type} inquiry from ${data.name || data.email}`); + const body = encodeURIComponent( + Object.entries(data).map(([k, v]) => `${k}: ${v}`).join('\n') + ); + window.location.href = `mailto:scott@scoble.me?subject=${subject}&body=${body}`; } - // Track with Umami if available + form.style.display = 'none'; + successEl.style.display = ''; + + // Umami tracking if (window.umami) { window.umami.track('form_submitted', { type, success: true }); } - - // Show success - form.style.display = 'none'; - successEl.style.display = ''; } catch (err) { - errorEl.textContent = err.message || 'Something went wrong. Please try again.'; + errorEl.textContent = err.message; errorEl.style.display = ''; submitBtn.disabled = false; - submitText.textContent = type === 'speaking' ? 'Send Inquiry' : type === 'contact' ? 'Send Message' : 'Join Waitlist'; + submitText.textContent = type === 'waitlist' ? 'Join Waitlist' : 'Send Message'; + submitSpinner.style.display = 'none'; } }); @@ -240,6 +253,15 @@ const topicParam = Astro.url.searchParams.get('topic'); cursor: not-allowed; } + .submit-spinner { + width: 16px; + height: 16px; + border: 2px solid white; + border-top-color: transparent; + border-radius: 50%; + animation: spin 0.75s linear infinite; + } + .form-error { background: #dc2626; color: white; diff --git a/src/components/NewsletterSignup.astro b/src/components/NewsletterSignup.astro index 784bf91..b9a4bc3 100644 --- a/src/components/NewsletterSignup.astro +++ b/src/components/NewsletterSignup.astro @@ -14,65 +14,13 @@ const { - - diff --git a/src/components/TestimonialCard.astro b/src/components/TestimonialCard.astro new file mode 100644 index 0000000..e16a76c --- /dev/null +++ b/src/components/TestimonialCard.astro @@ -0,0 +1,69 @@ +--- +// TestimonialCard.astro — Placeholder testimonial card +export interface Props { + quote: string; + name: string; + role: string; + organization?: string; +} + +const { quote, name, role, organization } = Astro.props; +--- + +
+
+

“{quote}”

+
+
+ {name} + {role}{organization ? `, ${organization}` : ''} +
+
+ + diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index c283135..6b12ba6 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -17,7 +17,7 @@ export interface Props { const { title, description, - ogImage = '/images/hero-speaker-new.webp', + ogImage = '/social-card.png', ogType = 'website', canonicalUrl, pageType = 'home', @@ -50,22 +50,15 @@ const currentPath = canonicalUrl || Astro.url.pathname; /> - + - + - - - - - - - - + @@ -110,4 +103,4 @@ const currentPath = canonicalUrl || Astro.url.pathname; --size-4xl: 3rem; } - + diff --git a/src/pages/404.astro b/src/pages/404.astro index 2ac5d43..31c52ba 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -4,393 +4,129 @@ import BaseLayout from '../layouts/BaseLayout.astro';
- -

This path is fallow ground

-

- Not every link leads to cultivated soil. This one hit a patch of - strip-mined earth — nothing grows here. - But the good news: the rest of the site is deep, fertile, and ready to explore. -

- - -
-
- -
- - - -
- -
-

Try searching for what you need, or pick a path below.

-
- - + 404 +

Page not found

+

That link doesn't lead anywhere. Maybe it moved, maybe it never existed.

+ - - + +

Can't find what you're looking for? Get in touch — I'll get back to you.

+ + ← Go home
diff --git a/src/pages/about.astro b/src/pages/about.astro index 1252655..b85630a 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -20,7 +20,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';

Scott Scoble is a builder, writer, and speaker focused on the human side of AI systems. He's the author of The Soil Beneath the Code and A Walk in Mentoring, - and creator of Speckl — a compile-time provenance layer for regulated industries. + and creator of Speckl — a dark provenance system for agentic engineering. He advises engineering leaders on how to build AI systems that cultivate human capability instead of strip-mining it.

@@ -45,9 +45,8 @@ import BaseLayout from '../layouts/BaseLayout.astro';
- - @@ -70,31 +69,11 @@ import BaseLayout from '../layouts/BaseLayout.astro';

Three questions that change how people learn.

- - - - -
-
-

Projects

-
- -
-

Speckl

-

A state machine specification language compiler that produces auditable code with embedded provenance. Compiles SpeckDL to TypeScript, Z3 SMT verification, and compliance artifacts (PROV-O, CycloneDX, SPDX). Fulfills NIST SA-11.

+
+

Dark Provenance

+

Coming 2026

+

Formal verification for the AI age. How to audit what your AI actually did.

- -
-

ScobleClaw

-

Private

-

Agentic engineering framework — tools, workflows, and skills for building with AI agents. Patterns for subagent dispatch, skill-based development, and provenance tracking.

-
- -
-

Beyond the Prompt

-

Workshop presentation on using Skills and Subagents to guide AI-assisted development, demonstrated through practical architecture decisions. Built with Reveal.js and Nix flakes.

-
-
@@ -104,7 +83,7 @@ import BaseLayout from '../layouts/BaseLayout.astro'; diff --git a/src/pages/blog.astro b/src/pages/blog.astro index ae1baca..60f45a1 100644 --- a/src/pages/blog.astro +++ b/src/pages/blog.astro @@ -1,16 +1,15 @@ --- import BaseLayout from '../layouts/BaseLayout.astro'; -import NewsletterSignup from '../components/NewsletterSignup.astro'; ---
+

Writing

Blog

Articles on AI, leadership, cultivation, and the human side of technology. @@ -21,221 +20,13 @@ import NewsletterSignup from '../components/NewsletterSignup.astro';

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

80% of Your Team Is Disengaged. It's Not Their Fault.

- Gallup says 80% of the global workforce is disengaged. The $100B+ engagement industry has failed for 20 years. The fix isn't perks or surveys; it's structural. + Gallup says 80% of the global workforce is disengaged. The $100B+ engagement industry has failed for 20 years. The fix isn't perks or surveys — it's structural.

@@ -274,7 +65,7 @@ import NewsletterSignup from '../components/NewsletterSignup.astro';
-

The Developer Experience Shift; Why Tooling Alone Won't Save You

+

The Developer Experience Shift — And Why Tooling Alone Won't Save You

Companies will spend $60B+ on developer tools in 2026. But the real DevEx crisis isn't tooling — it's autonomy, mastery, and belonging. As code production becomes commoditized, the human dimensions of engineering become the only competitive advantage that matters.

@@ -282,54 +73,59 @@ import NewsletterSignup from '../components/NewsletterSignup.astro';
- + -

Three Questions That Changed How I Mentor

+

The Token Anxiety Trap — Why AI Agents Aren't Liberating Us (Yet)

- The simple mentoring framework that actually gets used - three questions that unlock real growth. + Your agent swarm runs 24/7 and you're more anxious than ever. Stanford's 2026 AI Index shows a 20% drop in junior dev employment since 2024. The agent revolution promised freedom — instead it gave us token anxiety and a new kind of burnout.

+ +
+ +

The Soil Beneath The Code

+

+ A three-layer framework for understanding what makes engineering organizations healthy - or not. +

- -
diff --git a/src/pages/blog/50-first-dates-with-ai.astro b/src/pages/blog/50-first-dates-with-ai.astro deleted file mode 100644 index 2766d83..0000000 --- a/src/pages/blog/50-first-dates-with-ai.astro +++ /dev/null @@ -1,216 +0,0 @@ ---- -import BaseLayout from '../../layouts/BaseLayout.astro'; -import NewsletterSignup from '../../components/NewsletterSignup.astro'; ---- - - - -
-
- -

50 First Dates with AI: Why Your AI Forgets Everything and What to Do About It

-

- Every conversation with most AI systems is a first date. You explain your codebase. You define your conventions. You correct the same misunderstanding three times. And when you come back tomorrow, it's 2004 again — Drew Barrymore wakes up with no memory of who you are. -

-
- -
- -

That's anterograde amnesia. The brain can't form new long-term memories. Every interaction is fresh. Everything you've built together — the corrections, the preferences, the evolving understanding of your domain — evaporates when the session ends.

- -

I built a talk around this metaphor: 50 First Dates with AI. The response was immediate because the problem is universal. Everyone who's used an AI assistant for real work has felt the frustration. Everyone who's tried to build an agentic system has hit the wall.

- -

The wall is memory architecture. And it's the hardest problem in agentic systems because it's not a single problem; it's three problems stacked on top of each other, each pretending to be the other.

- -

The 50 First Dates Problem

- -

In the movie 50 First Dates, Drew Barrymore's character Lucy has anterograde amnesia. Every morning she wakes up and yesterday never happened. Her family adapts by leaving her notes, updating a whiteboard, re-explaining the same things every day. It's loving; it's also exhausting.

- -

This is exactly how most AI systems work. They record VHS tapes (context windows) every night and hope the agent can reconstruct enough context to be functional the next morning. The context window is the whiteboard. The system prompt is the morning briefing. And every single day, it's groundhog day.

- -

We built agentic systems with anterograde amnesia — not because we couldn't do better, but because it was easier than building systems that actually learn. Session-based memory is simple. It doesn't require state management, storage decisions, or curation. It just resets.

- -

But resetting is not remembering. And remembering is what makes systems compound.

- -

The Three-Layer Memory Model

- -

I've been running scobleclaw — my multi-agent system — long enough to know that memory isn't a feature you add later. It's the foundation everything else sits on. Get it wrong and your agents are expensive interns who need retraining every morning. Get it right and they compound.

- -

Here's the model that emerged from real operation, not from a whitepaper:

- -

Layer 1: Compound Memory (The Journal)

- -

This is the raw log of what happened. Every interaction, every decision, every correction, every output. Unstructured, chronological, append-only.

- -

In scobleclaw, every agent interaction writes to a daily note. Not a database table; a markdown file. Why markdown? Because it's human-readable, because it survives format changes, because in 2030 I can still open it and understand what happened. The journal is for me as much as for the agents.

- -

The key discipline with compound memory: write everything down, but don't expect the agents to read it raw. That's Layer 2's job.

- -

Layer 2: Semantic Recall (The Index)

- -

If the journal is a library, semantic recall is the card catalog. Not the books themselves; the relationships between ideas.

- -

This is where embeddings and vector search come in. The journal gets chunked, embedded, and indexed so that when an agent asks "what have we said about mentoring frameworks?" it doesn't have to read six months of daily notes. It queries the index and gets the relevant passages.

- -

But here's the trap: semantic recall without curation is just faster amnesia. You can retrieve more fragments, but you're still retrieving fragments. The index needs maintenance. It needs promotion (what matters enough to keep near the top). It needs decay (what's no longer relevant).

- -

I run a nightly process — REM sleep, I call it — that scans the day's journal, identifies patterns, and promotes significant observations to long-term memory. Without this curation step, the index bloats. You get 500 "relevant" results for every query and none of them matter.

- -

Layer 3: Coach Evaluation (The Mirror)

- -

This is the layer almost nobody builds. It's also the one that makes the difference between a system that works and a system that learns.

- -

Every agent in scobleclaw gets evaluated. Not by me directly — I don't have time to review every interaction — but by a coach agent that watches patterns over time. Did this agent complete what it said it would? Did it use the right tools? Did it match the human's voice when drafting content?

- -

The coach writes evaluations back to the journal, which feeds the index, which influences future behavior. It's a feedback loop, but a slow one. The coach doesn't intervene in real time; it reflects after the fact. That's intentional. Real-time coaching is micromanagement. Post-hoc coaching is mentorship.

- -

Why Most Memory Solutions Fail

- -

You'd think memory is a solved problem. We have databases, vector stores, logging systems. Why is this still the bottleneck?

- -

Compound memory fails when it's not human-legible. Most systems store agent interactions as structured logs or database rows. The human can't read them without a query. When the human can't read them, the human can't correct them. When the human can't correct them, the system learns the wrong lessons.

- -

Semantic recall fails when it's not curated. Vector search is magical until it isn't. Without editorial judgment — what to promote, what to decay, what to connect — the index becomes a junk drawer. Every query returns 47 "relevant" fragments and the actual insight is fragment #38.

- -

Coach evaluation fails when there's no feedback loop. Evaluations that don't change behavior are performance reviews, not coaching. The coach has to write to the journal; the journal has to feed the index; the index has to influence future prompts. Any break in that chain and you have theater, not improvement.

- -

Building for Compounding, Not Resetting

- -

The goal isn't an AI that remembers everything. The goal is an AI where today's work makes tomorrow's work better.

- -

That's compounding. And compounding requires memory that gets richer over time, not just bigger. Bigger is easy; richer is hard.

- -

If you're building agentic systems, start here. Before you worry about tools, agents, workflows, or orchestration, ask: what does this system remember? How does it recall? How does it improve?

- -

Get memory right and everything else gets easier. Get it wrong and you're dating Drew Barrymore forever.

- -
- -

This article is adapted from Scott Scoble's keynote 50 First Dates with AI. Interested in having Scott deliver this talk at your event? Connect on LinkedIn

- -
-
- - - -
- - diff --git a/src/pages/blog/agentic-wars.astro b/src/pages/blog/agentic-wars.astro deleted file mode 100644 index 2f4363d..0000000 --- a/src/pages/blog/agentic-wars.astro +++ /dev/null @@ -1,128 +0,0 @@ ---- -import BaseLayout from '../../layouts/BaseLayout.astro'; ---- - - - -
-
- -

You're Already in the Agentic Wars

-
- -
-

Are you compounding your own capability, or someone else's?

- -

Meta announced Hatch, a shopping agent for Instagram. Google unveiled Remy, a personal agent for Gemini. CNBC called it "the agentic wars." Everyone is building agents.

- -

Hatch keeps you in Instagram. Remy keeps you in Gemini. Every prompt you type, every decision you delegate, every pattern the agent learns from you — all of it compounds for the platform, not for you. Their models get smarter. Their ad targeting gets sharper. Their lock-in gets deeper. You get more convenient.

- -
-

Convenience is not capability.

-
- -

The Third Extraction Wave

- -

Cloud computing extracted your infrastructure — you stopped owning servers, they started renting them back to you. Social media extracted your attention — you stopped thinking for minutes, they started selling your eyeballs by the thousand. Now agents are extracting your decision patterns. Every time you use a hosted agent, you are training someone else's model on your judgment. Their capability compounds. Yours does not.

- -

The Decision Loop

- -

I run my own agent system. Chief of staff, engineering, compliance, research — every agent reports to me. The value is not in the agent's output. The value is in the decision loop: when an agent drafts something and I review it, I am forced to articulate what I actually think. That compounds my judgment, not a platform's.

- -

The alternative is not complicated. Run your own agents. Keep your data. Inspect and modify the models. The open-source tools exist today — the company building Hatch literally called their product "OpenClaw-inspired," which tells you who is copying whom.

- -

The agentic wars will produce two outcomes. People who own their agents and compound their own capability. And people who rent from platforms and wonder why they feel more productive but less capable every quarter.

- -

So: are your capabilities compounding, or are you being extracted from?

-
-
- -
- - \ No newline at end of file diff --git a/src/pages/blog/ai-brain-fry.astro b/src/pages/blog/ai-brain-fry.astro index 9f111e2..95aed5b 100644 --- a/src/pages/blog/ai-brain-fry.astro +++ b/src/pages/blog/ai-brain-fry.astro @@ -3,163 +3,333 @@ import BaseLayout from '../../layouts/BaseLayout.astro'; --- -
-
-