<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Posts tagged: daily</title>
  <id>https://waylonwalker.com/tags/daily/atom.xml</id>
  <updated>2026-08-11T18:03:22Z</updated>
  <subtitle>All posts with the tag &#34;daily&#34;</subtitle>
  <link href="https://waylonwalker.com/tags/daily/" rel="alternate" type="text/html"></link>
  <link href="https://waylonwalker.com/tags/daily/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Waylon Walker</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>Untitled 2026-08-11</title>
    <id>https://waylonwalker.com/2026-08-11/</id>
    <updated>2026-08-11T18:03:22Z</updated>
    <published>2026-08-11T18:03:22Z</published>
    <link href="https://waylonwalker.com/2026-08-11/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/e1snsuY4lTI</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/e1snsuY4lTI&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtu.be/e1snsuY4lTI&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;great video on setting up skills and agents.md need to take some notes on it.&lt;/p&gt;&#xA;&lt;h3 id=&#34;many-small-skills&#34;&gt;Many Small Skills &lt;a href=&#34;#many-small-skills&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Something I noticed here was that theo has many small skills.  Prime example he talked about his pr skill, he split out &lt;code&gt;file-pr&lt;/code&gt; and &lt;code&gt;babysit-pr&lt;/code&gt; into separate skills.&lt;/p&gt;&#xA;&lt;h3 id=&#34;&lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;html&lt;/a&gt;&#34;&gt;HTML &lt;a href=&#34;#html&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I like how he set up his html reporting skill so that  he can one line &lt;code&gt;HTML&lt;/code&gt; at the end and get the agent to start responding in html.&lt;/p&gt;&#xA;&lt;h2 id=&#34;waylonwalkercom-on-new-builder&#34;&gt;waylonwalker.com on new builder &lt;a href=&#34;#waylonwalkercom-on-new-builder&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34; alt=&#34;4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34;/ data-glightbox=&#34;description: 4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;new builder watcher, kicks off immediately on commit through websocket connection back to the repo.&lt;/p&gt;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;plaindown-performance&#34;&gt;&lt;mark&gt;plain&lt;/mark&gt;down↓ performance &lt;a href=&#34;#plaindown-performance&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Working on md.waylonwalker.com performance, and I think we are seeing really&#xA;good reponses. Things are moving much quicker with less noticable lag spikes than before, they are not completely gone, but we are really getting there. 󱨛.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;@clanker&lt;/p&gt;&#xA;&lt;h2 id=&#34;performance&#34;&gt;Performance &lt;a href=&#34;#performance&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Moved Markdown parsing to a Web Worker.&lt;/li&gt;&#xA;&lt;li&gt;Delayed preview updates until the editor is idle.&lt;/li&gt;&#xA;&lt;li&gt;Reduced work during typing.&lt;/li&gt;&#xA;&lt;li&gt;Typing now stays responsive while the preview updates.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;baseline-numbers&#34;&gt;baseline numbers &lt;a href=&#34;#baseline-numbers&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Preview render: 289 ms average&lt;/li&gt;&#xA;&lt;li&gt;Preview render P95: 671 ms&lt;/li&gt;&#xA;&lt;li&gt;Preview render maximum: 769 ms&lt;/li&gt;&#xA;&lt;li&gt;Typing latency P95: 22.6 ms&lt;/li&gt;&#xA;&lt;li&gt;Worst recorded character input: 52 ms&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Preview performance&lt;/p&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;xychart-beta&#xA;    title &#34;Preview render time — lower is better&#34;&#xA;    x-axis [&#34;Average&#34;, &#34;P95&#34;]&#xA;    y-axis &#34;Milliseconds&#34; 0 --&gt; 700&#xA;    bar [289, 671]&#xA;    bar [122, 184]&#xA;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;typing-performance&#34;&gt;Typing performance &lt;a href=&#34;#typing-performance&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;xychart-beta&#xA;    title &#34;Typing latency&#34;&#xA;    x-axis [&#34;P50&#34;, &#34;P95&#34;]&#xA;    y-axis &#34;Milliseconds&#34; 0 --&gt; 25&#xA;    bar [8.2, 22.6]&#xA;    bar [6.7, 20.4]&#xA;&lt;/pre&gt;&#xA;&lt;p&gt;rendering in the latest version is quite slow, it really waits until I am done&#xA;before it renders a preview.  I think we are going to have to change this.&lt;/p&gt;&#xA;&#xA;&lt;script type=&#34;module&#34;&gt;&#xA;  import mermaid from &#39;/assets/vendor/mermaid/mermaid.esm.min.mjs&#39;;&#xA;  const rootStyle = getComputedStyle(document.documentElement);&#xA;  const css = (name, fallback) =&gt; (rootStyle.getPropertyValue(name) || fallback).trim();&#xA;  const isDark = window.matchMedia(&#39;(prefers-color-scheme: dark)&#39;).matches ||&#xA;    document.documentElement.dataset.theme === &#39;dark&#39;;&#xA;  const accent = css(&#39;--color-primary&#39;, &#39;#ffcd11&#39;);&#xA;  const flowchart = {&#xA;    nodeSpacing: 60,&#xA;    rankSpacing: 90,&#xA;    padding: 12,&#xA;  };&#xA;  const themeCSS = `&#xA;    .label foreignObject &gt; div { padding: 14px 14px 10px; line-height: 1.2; }&#xA;    .nodeLabel { padding: 14px 14px 10px; line-height: 1.2; }&#xA;    * { cursor: pointer; }&#xA;  `;&#xA;  const themeVariables = {&#xA;    background: css(&#39;--color-background&#39;, &#39;#ffffff&#39;),&#xA;    primaryColor: css(&#39;--color-code-bg&#39;, &#39;#0a0a0a&#39;),&#xA;    primaryTextColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    primaryBorderColor: accent,&#xA;    lineColor: accent,&#xA;    textColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    nodeBkg: css(&#39;--color-code-bg&#39;, &#39;#0a0a0a&#39;),&#xA;    nodeBorder: accent,&#xA;    nodeTextColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    fontSize: &#39;16px&#39;,&#xA;    nodePadding: 20,&#xA;    nodeTextMargin: 14,&#xA;    clusterBkg: isDark ? css(&#39;--color-background&#39;, &#39;#0f0f0f&#39;) : css(&#39;--color-surface&#39;, &#39;#f9fafb&#39;),&#xA;    clusterBorder: accent,&#xA;    clusterTextColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    titleColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    edgeLabelBackground: css(&#39;--color-code-bg&#39;, &#39;#0a0a0a&#39;),&#xA;  };&#xA;&#xA;  const SVG_PAN_ZOOM_CDN = &#39;https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.2/dist/svg-pan-zoom.min.js&#39;;&#xA;  let mermaidLightbox = null;&#xA;  let activePanZoom = null;&#xA;&#xA;  // Inject lightbox styles once&#xA;  const injectLightboxStyles = () =&gt; {&#xA;    if (document.getElementById(&#39;mermaid-lightbox-css&#39;)) return;&#xA;    const style = document.createElement(&#39;style&#39;);&#xA;    style.id = &#39;mermaid-lightbox-css&#39;;&#xA;    style.textContent = `&#xA;      /* Container fills the GLightbox slide */&#xA;      .mermaid-lightbox-wrap {&#xA;        width: 100%;&#xA;        height: 100%;&#xA;        display: flex;&#xA;        align-items: center;&#xA;        justify-content: center;&#xA;        background: transparent;&#xA;        position: relative;&#xA;      }&#xA;      .mermaid-lightbox-wrap svg {&#xA;        width: 100% !important;&#xA;        height: 100% !important;&#xA;        max-width: 100%;&#xA;        max-height: 100%;&#xA;      }&#xA;      /* Hide GLightbox prev/next arrows (single-slide lightbox) */&#xA;      .glightbox-container .gprev,&#xA;      .glightbox-container .gnext {&#xA;        display: none !important;&#xA;      }&#xA;      /* Hide description area that renders as a white box */&#xA;      .glightbox-container .gslide-description,&#xA;      .glightbox-container .gslide-title,&#xA;      .glightbox-container .gdesc-inner,&#xA;      .glightbox-container .gslide-desc {&#xA;        display: none !important;&#xA;      }&#xA;      /* Remove white background from inline slide content */&#xA;      .glightbox-container .gslide-inline {&#xA;        background: transparent !important;&#xA;      }&#xA;      /* Make the inline content area fill the slide */&#xA;      .glightbox-container .ginlined-content {&#xA;        max-width: none !important;&#xA;        max-height: none !important;&#xA;        width: 100%;&#xA;        height: 100%;&#xA;        padding: 0 !important;&#xA;      }&#xA;      /* Remove box-shadow from the media container */&#xA;      .glightbox-container .gslide-media {&#xA;        box-shadow: none !important;&#xA;      }&#xA;      /* Toolbar styling */&#xA;      .mermaid-lightbox-toolbar {&#xA;        position: absolute;&#xA;        top: 8px;&#xA;        right: 8px;&#xA;        z-index: 10;&#xA;        display: flex;&#xA;        gap: 4px;&#xA;      }&#xA;      .mermaid-pz-btn {&#xA;        background: rgba(0,0,0,0.6);&#xA;        color: #fff;&#xA;        border: 1px solid rgba(255,255,255,0.3);&#xA;        border-radius: 4px;&#xA;        padding: 4px 10px;&#xA;        cursor: pointer;&#xA;        font-size: 14px;&#xA;        line-height: 1;&#xA;      }&#xA;      .mermaid-pz-btn:hover {&#xA;        background: rgba(0,0,0,0.8);&#xA;        border-color: rgba(255,255,255,0.6);&#xA;      }&#xA;    `;&#xA;    document.head.appendChild(style);&#xA;  };&#xA;&#xA;  // Lazy-load svg-pan-zoom from CDN, returns a promise&#xA;  const loadSvgPanZoom = () =&gt; {&#xA;    if (typeof svgPanZoom !== &#39;undefined&#39;) return Promise.resolve();&#xA;    return new Promise((resolve, reject) =&gt; {&#xA;      const s = document.createElement(&#39;script&#39;);&#xA;      s.src = SVG_PAN_ZOOM_CDN;&#xA;      s.onload = resolve;&#xA;      s.onerror = reject;&#xA;      document.head.appendChild(s);&#xA;    });&#xA;  };&#xA;&#xA;  // Initialize svg-pan-zoom on the SVG inside the lightbox.&#xA;  // Retries until the lightbox container has settled dimensions.&#xA;  let _pzRetries = 0;&#xA;  const initPanZoom = () =&gt; {&#xA;    if (activePanZoom) return;&#xA;    const container = document.querySelector(&#39;.glightbox-container .gslide.current .mermaid-lightbox-wrap&#39;);&#xA;    if (!container) return;&#xA;    const svgEl = container.querySelector(&#39;svg&#39;);&#xA;    if (!svgEl) return;&#xA;&#xA;    // Ensure the container has layout dimensions before initializing.&#xA;    const cRect = container.getBoundingClientRect();&#xA;    if (cRect.width &lt; 10 || cRect.height &lt; 10) {&#xA;      if (_pzRetries &lt; 20) { _pzRetries++; setTimeout(initPanZoom, 50); }&#xA;      return;&#xA;    }&#xA;&#xA;    // svg-pan-zoom needs a viewBox. Pre-rendered SVGs from mermaid&#xA;    // usually have one; browser-rendered ones may not.&#xA;    if (!svgEl.getAttribute(&#39;viewBox&#39;)) {&#xA;      let w = parseFloat(svgEl.getAttribute(&#39;width&#39;));&#xA;      let h = parseFloat(svgEl.getAttribute(&#39;height&#39;));&#xA;      if (!w &amp;&amp; svgEl.style.maxWidth) w = parseFloat(svgEl.style.maxWidth);&#xA;      if (!w || !h) {&#xA;        const r = svgEl.getBoundingClientRect();&#xA;        if (!w) w = r.width;&#xA;        if (!h) h = r.height;&#xA;      }&#xA;      if (w &gt; 0 &amp;&amp; h &gt; 0) {&#xA;        svgEl.setAttribute(&#39;viewBox&#39;, &#39;0 0 &#39; + w + &#39; &#39; + h);&#xA;      } else if (_pzRetries &lt; 20) {&#xA;        _pzRetries++; setTimeout(initPanZoom, 50); return;&#xA;      }&#xA;    }&#xA;    _pzRetries = 0;&#xA;&#xA;    // Clear inline dimensions so SVG can be sized by the container&#xA;    // and svg-pan-zoom can manage transforms.&#xA;    svgEl.removeAttribute(&#39;width&#39;);&#xA;    svgEl.removeAttribute(&#39;height&#39;);&#xA;    svgEl.style.cssText = &#39;width:100%;height:100%;&#39;;&#xA;&#xA;    try {&#xA;      activePanZoom = svgPanZoom(svgEl, {&#xA;        zoomEnabled: true,&#xA;        panEnabled: true,&#xA;        controlIconsEnabled: false,&#xA;        fit: true,&#xA;        center: true,&#xA;        contain: false,&#xA;        minZoom: 0.3,&#xA;        maxZoom: 10,&#xA;        zoomScaleSensitivity: 0.3,&#xA;        mouseWheelZoomEnabled: true,&#xA;        preventMouseEventsDefault: true,&#xA;      });&#xA;      // Double-check fit after a frame in case dimensions shifted&#xA;      requestAnimationFrame(() =&gt; {&#xA;        if (!activePanZoom) return;&#xA;        activePanZoom.resize();&#xA;        activePanZoom.fit();&#xA;        activePanZoom.center();&#xA;      });&#xA;    } catch (_) {&#xA;      activePanZoom = null;&#xA;    }&#xA;&#xA;    // Add reset/fit buttons&#xA;    let toolbar = container.querySelector(&#39;.mermaid-lightbox-toolbar&#39;);&#xA;    if (!toolbar) {&#xA;      toolbar = document.createElement(&#39;div&#39;);&#xA;      toolbar.className = &#39;mermaid-lightbox-toolbar&#39;;&#xA;      toolbar.innerHTML =&#xA;        &#39;&lt;button class=&#34;mermaid-pz-btn&#34; data-action=&#34;fit&#34; title=&#34;Fit to view&#34;&gt;Fit&lt;/button&gt;&#39; +&#xA;        &#39;&lt;button class=&#34;mermaid-pz-btn&#34; data-action=&#34;zoomin&#34; title=&#34;Zoom in&#34;&gt;+&lt;/button&gt;&#39; +&#xA;        &#39;&lt;button class=&#34;mermaid-pz-btn&#34; data-action=&#34;zoomout&#34; title=&#34;Zoom out&#34;&gt;&amp;minus;&lt;/button&gt;&#39;;&#xA;      toolbar.addEventListener(&#39;click&#39;, (ev) =&gt; {&#xA;        const btn = ev.target.closest(&#39;[data-action]&#39;);&#xA;        if (!btn || !activePanZoom) return;&#xA;        ev.preventDefault();&#xA;        ev.stopPropagation();&#xA;        const action = btn.dataset.action;&#xA;        if (action === &#39;fit&#39;) { activePanZoom.resize(); activePanZoom.fit(); activePanZoom.center(); }&#xA;        else if (action === &#39;zoomin&#39;) { activePanZoom.zoomIn(); }&#xA;        else if (action === &#39;zoomout&#39;) { activePanZoom.zoomOut(); }&#xA;      });&#xA;      container.prepend(toolbar);&#xA;    }&#xA;  };&#xA;&#xA;  // Destroy pan-zoom on lightbox close&#xA;  const destroyPanZoom = () =&gt; {&#xA;    if (activePanZoom) {&#xA;      try { activePanZoom.destroy(); } catch (_) { /* no-op */ }&#xA;      activePanZoom = null;&#xA;    }&#xA;  };&#xA;&#xA;  let _lbRetries = 0;&#xA;  const ensureMermaidLightbox = () =&gt; {&#xA;    const diagrams = document.querySelectorAll(&#39;.mermaid svg&#39;);&#xA;    if (!diagrams.length) {&#xA;      // Mermaid ESM may still be rendering -- retry up to 2s&#xA;      if (_lbRetries &lt; 20) { _lbRetries++; setTimeout(ensureMermaidLightbox, 100); }&#xA;      return;&#xA;    }&#xA;    _lbRetries = 0;&#xA;    injectLightboxStyles();&#xA;    diagrams.forEach((svg) =&gt; {&#xA;      if (svg.dataset.lightboxBound) return;&#xA;      svg.dataset.lightboxBound = &#39;true&#39;;&#xA;      svg.style.cursor = &#39;pointer&#39;;&#xA;      svg.addEventListener(&#39;click&#39;, (e) =&gt; {&#xA;        e.preventDefault();&#xA;        e.stopPropagation();&#xA;        const svgHtml = svg.outerHTML;&#xA;        const openLightbox = () =&gt; {&#xA;          if (!mermaidLightbox) {&#xA;            mermaidLightbox = GLightbox({&#xA;              selector: false,&#xA;              openEffect: &#39;fade&#39;,&#xA;              closeEffect: &#39;fade&#39;,&#xA;              zoomable: false,&#xA;              draggable: false,&#xA;              skin: &#39;clean&#39;,&#xA;            });&#xA;            mermaidLightbox.on(&#39;slide_after_load&#39;, () =&gt; {&#xA;              destroyPanZoom();&#xA;              _pzRetries = 0;&#xA;              loadSvgPanZoom().then(() =&gt; initPanZoom());&#xA;            });&#xA;            mermaidLightbox.on(&#39;close&#39;, destroyPanZoom);&#xA;          }&#xA;          mermaidLightbox.setElements([{&#xA;            content: &#39;&lt;div class=&#34;mermaid-lightbox-wrap&#34;&gt;&#39; + svgHtml + &#39;&lt;/div&gt;&#39;,&#xA;            width: &#39;90vw&#39;,&#xA;            height: &#39;90vh&#39;&#xA;          }]);&#xA;          mermaidLightbox.open();&#xA;          loadSvgPanZoom();&#xA;        };&#xA;        if (typeof GLightbox !== &#39;undefined&#39;) {&#xA;          openLightbox();&#xA;        } else if (window.initGLightbox) {&#xA;          window.initGLightbox();&#xA;          openLightbox();&#xA;        } else {&#xA;          window.addEventListener(&#39;glightbox-ready&#39;, () =&gt; { openLightbox(); }, { once: true });&#xA;        }&#xA;      });&#xA;    });&#xA;  };&#xA;&#xA;  mermaid.initialize({ startOnLoad: false, theme: &#39;base&#39;, themeVariables, flowchart, themeCSS });&#xA;  window.initMermaid = async () =&gt; {&#xA;    try {&#xA;      await mermaid.run();&#xA;    } catch (e) {&#xA;      console.error(&#39;mermaid.run failed:&#39;, e);&#xA;    }&#xA;    ensureMermaidLightbox();&#xA;  };&#xA;  if (document.readyState === &#39;loading&#39;) {&#xA;    document.addEventListener(&#39;DOMContentLoaded&#39;, () =&gt; window.initMermaid());&#xA;  } else {&#xA;    window.initMermaid();&#xA;  }&#xA;&lt;/script&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
</feed>