Author: Richard Seroter

  • Daily Reading List – September 11, 2026 (#865)

    A shorter list as I jet back home after a short trip to the mothership. While a good day of work, this date always hits different for me. Probably always will.

    [site] Cyber Model Arena. Fight! How do various agents and harnesses stack up on cybersecurity tasks? The results may (or may not) surprise you.

    [article] Is Your Strategic Plan Too Ambitious? Or Not Ambitious Enough? Some very useful advice here. Have you defined the problem before setting the target? Are you getting the necessary investment? Reflecting the right time horizon? We need to answer those questions before setting a plan.

    [blog] What comes after git. This company is keeping the git protocol (to make it less disruptive to switch) but evolving the storage engine.

    [blog] Genkit Go 1.13: Resumable generate and agent loops, async subagents, and A2UI. A lot to like here if you’re building or upgrading apps that need agentic capabilities. The Python version got a rev too.

    [blog] What 1,000 small business owners taught us about AI. Anthropic shares what they’ve been learning. Now’s the time to be out there listening to a new set of users, as well as existing users facing new work styles.

    [blog] Using OKF to provide long term context to your agent. You’ll solve this problem one way or another. Maybe OKF becomes a standard way for agents to store knowledge over time.

    [blog] Three ways to save a billion tokens with Firebase AI Logic and on-device AI for Chrome. I built something with on-device AI this week, and definitely see the power and usefulness of it. And cost savings.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 10, 2026 (#864)

    You might find that a couple of items below change how you’ve been thinking about something. That happened to me.

    [blog] The Anatomy of Harness Engineering: How to Evaluate, Iterate, and Guard AI Coding Agents. Very cool. If you’re just looking at end to end benchmarks to evaluate a harness (or agent) you might be missing something. Read this to learn about behavioral evaluations.

    [article] The five important tools for controlling AI costs. Seems fair to me. I wonder if models are now training on data like this, and if the recommendations will be different by the time a model actually reaches the market.

    [blog] Introducing the Google Cloud Developer Plugin for AI Coding Agents. This is a smart way to build a gateway/starter experience that dynamically inflates as you need more from the target platform.

    [article] AI accelerates output, not innovation. Makes sense. I can do more, which may (MAY) translate into faster learning. But AI also doesn’t replace the human brain’s ability to do recombination and identify real innovation.

    [blog] Skills CLI 1.0: Bundle and distribute AI agent skills for your packages. Great idea! Ship skills with your package. And devs aren’t stuck trying to independently load the right skill for your latest version.

    [blog] Migrating Shop app from React Native to native. Super interesting. Is “native” the future of mobile instead of multi-platform frameworks? Yes and no, probably. Depends on your use case, engineering prowess, and business need.

    [article] Suddenly I’m a Go developer. It’s weird that any of us can be any type of developer. Even if temporarily, and with virtually no depth. I think it’s a good thing overall, and maybe encourages professional developers to expand their horizons.

    [blog] Debugging Serverless Apache Spark using Gemini with MCP. Yes, you can just paste errors into an AI chat tool and hope for the best. But context matters, and we should give your tools access to the information that encourages more than guessing.

    [article] Anthropic promised 20x more usage. Then developers hit a weekly ceiling. Not necessarily unique to Anthropic. It’s hard to offer fixed subscriptions for such fluid consumption.

    [article] OpenClaw Power, MacBook Simplicity: Five Days With Grok Bot. Terrific look at Grok Bot, which has many fans. I’m going to use it more myself (on my non-work machine).

    [blog] Taking Advantage of Cloud Run Sandboxes with Google Apps Script for Google Workspace. Get ready to see “sandbox” everywhere. Whether you’re running Codex, executing some custom code, or serving an agent, secure isolation matters.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 9, 2026 (#863)

    It was a good day, and tomorrow I’m jetting up to Sunnyvale for some fun meetings at Cloud HQ. It’s easy to get caught up in everything changing all around us, but I remind myself to enjoy the present moment, learn new things, and not worry about tomorrow.

    [blog] We Let AI Agents Rewrite a 92M-Message-a-Day Service in Go. Zero Incidents. Go proved to be a good choice (migrating from JavaScript) and this team took a reasonable approach to ensuring the new system satisfied the requirements.

    [blog] I trust my coding agents with production secrets now. Stored in a vault, but still notable. I like that he still isolates the agents in containers and uses a least privilege approach.

    [blog] 5 things you shouldn’t vibe code (and what to use instead). Don’t build your own authentication system. It’s a solved problem. As are the other four things Karl calls out in this post.

    [blog] Introducing Muse: The World’s First Personal AI Agent Built for Everyone. Looks very good. Personal AI agents are about to be everywhere, and can make a legitimate difference in how you work.

    [article] Do you even need a presentation? This proposes that a document should be used most often, with live presentations a last resort.

    [blog] Safely Running Untrusted Code: A Hands-On Guide to Google Cloud Run Sandboxes. Tons of details here, which might inspire you to think of ways you’d isolate your agents or code runners.

    [blog] .gitignore everything by default. I think I love this. I’m always scrambling to remove unnecessary files from my git commits. What if you start by denying everything and only selectively allowing what you want?

    [blog] Agentic analytics with the Data Agent Kit. This set of MCP servers and agent skills let you do some serious data workflows all from your IDE.

    [blog] Astra for Coding: Why Are We Doing This Again? This pokes at one model, but honestly could apply to any. Armin wonders if the software factory is really a good idea.

    [blog] Building a Real-Time Pickleball Agent with Spanner Omni: On-Device GraphRAG. Abi offers up an educational look at an edge-style deployment with this downloadable version of our premier Cloud Spanner databases.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 8, 2026 (#862)

    I’m back after the holiday weekend and some shenanigans at the San Diego Padres baseball game yesterday. Today, in between real work and building a Chrome plugin to test out an idea, I also read a number of fascinating items.

    [blog] Coding Agents vs. Workflows vs. Orchestration vs. Platforms: How to Architect the AI Dev Stack. You might not need them all in every situation, but each of these components in the stack has a useful role.

    [article] Inside a Software Factory. I’m not sure if the whole “software factory” as currently described will survive. We’ll see. This post does a fine job outlining where humans play a role in these factories, along with design considerations.

    [article] What is the future of Software Engineering when nobody needs to write code? If you want to read one article that sums up much of the current discussion about AI and software engineering, read this one.

    [blog] I Replaced 15 Go Packages With Nothing But the Standard Library — Here’s What It Actually Took. It’s hard to do this with most languages. External packages have a place, of course, but when you don’t HAVE to use them to get something done, you’re at an advantage.

    [blog] What happens when AI burns down the backlog? Will the backlog run out? That was a silly question to ask even 6 months ago. But now? Are you identifying useful things to work on at a fast enough rate? Maybe not.

    [blog] AlphaGenome Atlas: A predictive map of every possible DNA letter change in the human genome. There aren’t many frontier labs consistently doing work like this. Special stuff!

    [article] The quality paradox of AI-generated code. Why are code maintainability and change confidence moving in opposite directions all of a sudden? Interesting analysis here.

    [article] Google Cloud races to catch up in the AI deployment wars with Accenture deal. If you’re looking to significantly change how and what you build, there’s a lot of value in getting outside help. More here.

    [article] “Twenty years of brand building simply froze in time”: How coding agents select their tools of choice. This article is about this research. My team has been doing similar research. It’s fascinating to see what LLMs suggest, and what they don’t. A model’s bias for jumping to web search (over relying on what’s frozen into the weights) has a big impact too.

    [blog] Not All LLM Workloads Are Equal: Benchmarking TPU Performance on Classification vs. Generation. Different categories of actions scale in different ways. This is useful info as you set up AI infrastructure.

    [blog] How to write a definition of done for an AI feature. Good point that we shouldn’t mistake evals for a requirements spec. PMs need to keep understanding user need AND definition of what “done” looks like.

    [article] What it took to triple our software engineering output in 18 months. Here’s a solid playbook. Do these things, and you’ll be in good shape.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 4, 2026 (#861)

    That’s a wrap on this week. I’m ready for a long weekend here in the States, and will be back with a reading list next Tuesday.

    [blog] The Incumbents Are Coming. I’m probably in the minority, but I like when staggering leaders roar back into a primary position against the feisty challenger.

    [blog] Your Agent Doesn’t Know How to Wait. Huh. I don’t think I’ve come across this idea before. If your agent needs to wait for an operation to finish, make sure you design it correctly. Otherwise, your costs can quickly balloon.

    [blog] How to Handle Errors in Go. Whether you’re writing it yourself or asking an AI agent to do it, make sure your code has robust error handling.

    [article] Research: How Curveball Questions Can Surface the Insight You’re Looking For. I’ve spent a fair amount of time this year working on asking better questions. I liked this perspective.

    [article] How does developer experience shape the way teams use coding agents? From this data, it looks like those with more experience in a project apply more careful use of AI, and with more rigor.

    [blog] Stop rebuilding from scratch: cache Docker layers on Cloud Build. These numbers can have a big impact at scale. Great deep dive here.

    [blog] Portal by Spotify cut my Claude Code token usage by 90%. Wasting a ton of tokens just having your LLM read files and do I/O tasks? Save the LLM for real reasoning work.

    [blog] How to Think About Open Weight Models. Excellent analysis from Steve here. If you’ve only kept a casual eye on the open model space, or even if you’ve paid close attention, you can learn something here.

    [article] Twenty Years of jQuery: How a Little Library Rewired Web Development. This was a big deal twenty years ago. My how everything has gotten more complicated since then.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 3, 2026 (#860)

    You’ll find a wide mix of topics in today’s list. There’s some helpful advice, geeky deep dives, and some hard truth.

    [article] PRs NOT Welcome: How Top AI Open Source Projects Are Managing Thousands of Contributors. Steer community members to create issues, and deploy a software factory of agents to assess it, do any related work, and create the PRs? Not a bad pattern.

    [blog] Taking Advantage of Gemini Managed Agents with Google Apps Script. People do some wild automations in Apps Script, but there are limits. That’s why a callout to the Gemini Managed Agents is a powerful pattern.

    [article] Seven critical vibe coding mistakes — and how to avoid them. Are these the worst mistakes? I don’t know. It depends on what you’re coding. Six of these don’t apply for demo apps.

    [blog] Human, Machine, Agent: The Three Identity Kinds on Google Cloud. Why do I need all these different identities? What’s the role of each? This looks like it’ll be a good series of posts.

    [blog] Introducing WeatherNext 3, our most advanced and accurate global weather AI model. Amazing stuff. If we can save just one person from getting rained on after a confident “clear skies” message from a meteorologist, it’ll be worth it.

    [blog] Software Is Fast Fashion. Too cynical? Maybe not. There’s a lot more that we should be treating as disposable versus durable.

    [blog] Defying Gravity: The System of Record in the Age of AI. People don’t swap big systems of records (CRMs, ERP, etc) often, so the TAM looks small. But with AI, people are revisiting their systems of record. It’s a new ballgame.

    [article] Fewer than 25% of enterprises have scaled AI successfully. If you don’t know what you’re aiming for, it’s hard to call something a success.

    [blog] Becoming an AI Team. How did the Pinterest Engineering team evolve to an AI-enabled team? This post has a lot of breadth, and good visuals.

    [blog] Google named a Leader in 2026 Gartner® Magic Quadrant™ for Strategic Cloud Platform Services. Another good showing for us, and a new entrant into the “leaders” quadrant for the first time in years.

    [blog] Path to Astra: critical capabilities and frontier safeguards. Big quasi-release today from OpenAI. It’s not readily available until next week, but Astra looks like a monster. Great job.

    [blog] Goroutine Leak Profiles. This is for a very specific audience—Go devs who build concurrent systems—but I like the technical detail and explanation.

    [blog] Take your AI Harness with you with Antigravity Remote Control. So many smart tips here. Prashanth can now control this coding bot from anywhere.

    [article] Middle Managers Will Make or Break AI Adoption. Is your AI transformation work focused on the wrong internal population? Possibly. Either get your middle managers to champion your new way of working, or watch your dreams go up in smoke.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 2, 2026 (#859)

    What a week (already) for new LLMs. Claude Fable 5.1, Meta’s Muse Spark 1.3, and Gemini 3.8 Flash. And it’s only Wednesday.

    [blog] Introducing Gemini 3.8 Flash and 3.8 Flash Cyber. Can’t stop, won’t stop. This is the third new Flash model in six weeks, and it’s another leap forward. Not only is it up there with frontier models on coding and agentic tasks, it’s a fraction of the price. And on most every Google surface, like Antigravity.

    [blog] From trajectories to lineage: building better agent telemetry. One session log is interesting, but fades in usefulness if you’ve got multi-agent systems or teams of people working towards a goal with AI. Now you need agent linage to figure out how you arrived at a destination.

    [blog] Audit your Agent files. Your configurations rot over time. Skills endlessly compound in your AI coding tool. Addy encourages us to audit regularly and test what happens when we prune.

    [blog] A2A Is the Task. This is one of the better deep-dives I’ve seen into A2A use cases. And how it compares to MCP for those use cases.

    [blog] 7 AI Agent Skill Patterns Every Programmer Should Know. I like the categories call out here. You’re probably building or using skills across one or many of these.

    [article] Maybe We Shouldn’t Be Reviewing All This Code. And maybe we’ve asked too much of the humble code review. Shift judgement left?

    [blog] 4 engineering patterns behind the strongest AI Agents Challenge submissions. It’s a good time to be studying patterns. We pulled these four common patterns from thousands of agents built by developers.

    [blog] Agent memory as a file format. Are we over-processing agent memory? This writer proposes agent memory as portable data consisting of Markdown files and optional SQLite vector index.

    [blog] Running Code OSS on Cloud Run instances: What Works, What Breaks, and What I Learned. Very creative. Run a personal cloud IDE for a few bucks a month within a Cloud Run instance.

    [blog] Why my AI agents needed a rivalry. You might want more than one model in the mix so you don’t end with a homogenous team with the same quirks.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 1, 2026 (#858)

    I learned a lot today. How about you? My education usually comes from a mix of reading, talking to people, and trying things myself. It’s a good day when all three of those happen.

    [article] The Job Doesn’t Change. The Agent Does. Consumers still want the right product at the right price with the least friction. Who is the consumer? That’s changing.

    [blog] Try Google Pics: Easy image creation and editing in Google Workspace. I just tried this on an image in my Google Drive. It’s so simple to make targeted improvements to existing visuals.

    [article] OpenClaw 2.0 is here, ushering in the era of ‘multiplayer’ AI coding: What it means for enterprises. Big release, and we’ve made it easy to use with Gemini, or even host in Cloud Run instances. More here.

    [blog] Teamwork: When AI Becomes a Research Partner. If you have a problem worthy of the token spend, the “teamwork” feature is worth it. Check out what real problems it solved.

    [blog] Antigravity Teamwork for long-running tasks. Prashanth does a great job explaining /teamwork in depth and how to use it.

    [blog] Agency and Agents. Instead of dark factories where operate on their own (see /teamwork above), do we need “twilight factories” where humans are brought in at the right moments?

    [article] How to turn your AI into a world-class designer. This should make existing designers better, while giving a big assist to those without access to designers.

    [blog] Coding a database proxy for fun. Do you know how to intercept and process TCP packets in code? Alex shows an example.

    [blog] TimesFM-3: A zero-shot foundation model for multivariate forecasting. Powerful, open time series foundation model. It’s high performing, and now capable of multivariate forecasting.

    [article] Your agent context needs a development lifecycle. We need to see more exploration in areas like this. What about short term context (skills or rules)? Is there different rigor for shared versus local context? Is it the same cycle for all types of context?

    [blog] How to Slash Token Costs with Context Caching in Agent Harnesses. Get good at concepts like this. Some models/platforms make it easier to turn on features like context caching.

    [article] Anthropic’s new Fable release is cheaper, less restrictive. Looks great! Still seems to be expensive, but excellent results.

    [blog] Introducing agentic video understanding with Gemini. This cuts token consumption by a massive amount, which in turn reduces costs a ton.

    [article] Meet the Google Exec Trying to Convince a Skeptical Gaming Industry to Love AI. I get the wariness. It’s also clear that AI can help in how we build games, and how players get better in-game experiences.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – August 31, 2026 (#857)

    It’s unusually hot and humid in San Diego, but that didn’t deter us from being outside this weekend. But, during some air-conditioned indoor time, I wrote up a blog post. You can count on it being outdated in like three weeks as the next new thing comes along.

    [article] Our Favorite Management Tips on Learning from Failure. Solid tips. If you’re experiencing any failure, you might not be pushing hard enough.

    [blog] Beyond Vibe-Coding. Your prototype might actually turn into something. Here are some lessons from one such case.

    [blog] Top AI Trends Every Developer Should Know in 2026. None of these are earth-shattering (if you’ve been paying close attention to the industry), but I liked this roundup and it’s a good look at what matters right now.

    [blog] The Code-Generation Percentage Your Org Shouldn’t Be Measuring. The “percent of code that’s AI-generated” is a lousy metric. It doesn’t tell you anything particularly meaningful. Casey gives us four alternative metrics.

    [article] Enterprises bet on agents to build in-house software, boost productivity. It’s interesting that some big companies are moving faster than the small ones. It’s also not surprising that employees have the confidence to build more of the software themselves.

    [article] How To Be Strategic: 5 Secrets From History’s Greatest General. Absolutely fantastic post. Does your manager say “think more strategically” and you have no idea what that means? Read this to start training yourself.

    [blog] Understanding the Linux Kernel: Network Subsystem. I joke in customer meetings that this is exactly the sort of knowledge I’m now happy to forget. Higher abstractions have let me ignore it. But, it’s pretty cool to dip back down again and re-engage with it.

    [blog] You have to beat the models at something. Right now, you’re better at LLMs in your familiarity of the tech details in the system in which you work, and at clear communication regarding that system.

    [article] Effective Patterns for Advanced MCP Usage. This is promoting the idea of composing solutions out of multiple MCPs, using remote versus local, and more.

    [blog] Who Taught the Models to Do That? Models are designed, not born. Good reminder. Models are designed for behaviors like persistence, note taking, and coordination.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • You can just find and use agent skills mid-session

    I’m not proud of it, but I’ve been drunk on agent skills. It’s time to reset. It’s easy to fall into skills bloat as you accrue different ones for every possible scenario. Doing software engineering? Coding in Go? Performing security analysis? Add a skill! Nowadays, any of us can do basically anything. Maybe not well, but with agent skills, we get just enough confidence to try it. But we’re blowing tokens and confusing our agents with all this extra context. Plus, you only really need skills when there’s a specific (temporary?) gap in the LLM’s knowledge. Let’s be smarter. Can we do just-in-time discovery and lazy-loading of skills for our coding sessions?

    Case 1: Preload skills globally or in your project

    As a baseline, many of us default to installing skills ahead of time. It’s easy to grab skill files manually, or use something like the skills CLI to install into global or project directories.

    For instance, before starting my coding session, I could find and install a skill for working with Google Cloud Storage.

    If I choose to install into my local project directory (instead of globally), I end up with these new files on disk.

    I’m using Google Antigravity here, but you’d expect to see this skill show up in whatever agentic tool you have. Both my Antigravity desktop app and CLI show this pre-existing skill.

    To be sure, this is a perfectly valid way to work. But the front matter of EVERY skill comes into play in all your agentic coding turns. That gets hefty over time. You could choose to just pre-load or copy the “right” skills into your project before each session. But that assumes you know where you’re heading before every session. I sure don’t! Let’s look at more dynamic scenarios.

    Case 2: Find known skills during a session and use them

    Let’s consider a case where I know where the desired skills live on the internet, but I only want to grab them if I really need them.

    For example, maybe I use all sorts of clouds and pick the right one for the problem at hand. In my current coding session, I’m thinking through web app ideas, and landed on a fun concept for a fast-turnaround marketplace. Its bursty use and global footprint are great for Google Cloud. I need good guidance for picking the right architecture, so I asked Google Antigravity to find the right Google Skill to help out, and store it locally.

    When this finished a few moments later, I had another skill in my local project directory.

    Most importantly, this skill is automatically active in this coding session. I can see that in Antigravity’s list of active skills.

    My current session got better as I discovered and loaded agents on-the-fly. And these skills stay with this project and aren’t just part of the LLM (or coding session’s) temporary memory.

    Case 3: Search for skills during a session and use them

    The above case assumed that I knew the location of the skill I wanted. You need to be careful about loading random skills, but what if you wanted to search without knowing ahead of time where the most suitable skill was at?

    I continued my coding session by asking for the best skills for Go developers.

    I know Steve (the creator of the 2nd of the 3 provided options) so I told Antigravity to load Steve’s skills. Sure enough, I got a handful of terrific Go skills installed into my project.

    You don’t have to know skills or sources you want ahead of time. You can search for them during a session and keep going without ever breaking flow.

    Case 4: Use a seed skill that grabs the “right” skill for the scenario

    I’ve seen more of this pattern lately. You know you will need a set of related skills, but don’t know which ones, or when. A seed skill is your entry point that pulls the right skill at the right time. Addy’s Osmani’s agent skills do something like this. The “meta skill” routes you to the right skill for your situation. But it does require you to install all the skills (I believe).

    Could you create a seed skill that acts as a lightweight entrypoint, and then just-in-time downloads the “right” skill from a pre-defined list? Sure you can.

    Specifically, I want a skill that knows about all of the Google Cloud databases, but only retrieves the corresponding skill if our session demands it.

    I used Antigravity to build it (in a different session) and here’s the gist (minus the scripts and references it also created).

    ---
    name: gcp-database-seed-skill
    description: >-
      Dynamic seed skill for Google Cloud database solutions. Use this skill when the user is designing,
      choosing, provisioning, migrating, or optimizing databases on Google Cloud (Cloud SQL for MySQL/PostgreSQL/SQL Server,
      AlloyDB for PostgreSQL, Cloud Spanner, Firestore, or Bigtable), or when well-architected cloud database guidance is needed.
      Automatically routes, downloads, and installs specialized skills from google/skills on demand.
    ---
    
    # Google Cloud Database & Architecture Advisor (Seed Skill)
    
    This seed skill provides a lightweight, progressive entrypoint for all database workloads on Google Cloud. Instead of loading bulky documentation upfront, it assesses workload requirements, recommends the optimal database solution, and dynamically downloads and installs specialized skills from the official [google/skills](https://github.com/google/skills) repository into your local workspace.
    
    ---
    
    ## Workflow & Step-by-Step Procedure
    
    When invoked on a database-related prompt, follow this 4-step workflow:
    
    ```mermaid
    flowchart LR
        Step1[1. Assess Workload] --> Step2[2. Determine Database & WAF Needs]
        Step2 --> Step3[3. Download & Install Skill]
        Step3 --> Step4[4. Execute Guided Solution]
    ```
    
    ### Step 1: Assess Workload Requirements
    Evaluate the user's requirements against key architectural dimensions:
    1. **Engine Compatibility**: Does the workload require MySQL, PostgreSQL, SQL Server, or open-standard ANSI SQL?
    2. **Scalability & Scale**: Single-instance vertical scaling vs. distributed multi-node horizontal sharding?
    3. **Availability & DR**: Regional HA (99.95% - 99.99%) vs. Global Multi-Region zero downtime (99.999%)?
    4. **Workload Characteristics**: Standard OLTP vs. High-throughput HTAP with columnar queries vs. Vector/AI search vs. NoSQL?
    5. **Migration vs. New Build**: Existing application lift-and-shift vs. greenfield cloud-native design?
    
    > 📖 Consult the detailed [Database Decision Matrix](./references/database_decision_matrix.md) for complete comparison tables.
    
    ---
    
    ### Step 2: Select the Target Skills
    
    Map the workload to the primary database skill and check for relevant **Well-Architected Framework** pillars:
    
    #### A. Database Engine Selection
    *   **Cloud SQL (`cloud-sql-basics` / `cloud-sql-mysql` / `cloud-sql-postgresql` / `cloud-sql-sqlserver`)**:
        *   *Select when:* Straightforward relational databases (MySQL, PostgreSQL, SQL Server), standard web apps, migration-friendly lift-and-shift via Database Migration Service (DMS).
    *   **AlloyDB for PostgreSQL (`alloydb-basics` / `alloydb`)**:
        *   *Select when:* Demanding enterprise PostgreSQL workloads, up to 4x transactional performance, up to 100x faster analytical/HTAP queries with columnar engine, or in-database vector search (Vertex AI / ScaNN integration).
    *   **Cloud Spanner (`spanner`)**:
        *   *Select when:* Mission-critical global databases, massive scale exceeding single-instance limits, synchronous multi-region replication, horizontal scaling, and 99.999% availability with zero downtime.
    *   **Discovery / Undecided (`cloud-databases-onboarding`)**:
        *   *Select when:* User is unsure or needs interactive discovery across relational, NoSQL (Firestore, Bigtable), and analytical stores.
    
    #### B. Well-Architected Framework Triggers
    Check if cross-cutting architectural pillars should be retrieved:
    *   **Reliability & HA:** Mentions of 99.999% SLA, DR, RTO/RPO, regional failover → Fetch `well-architected-reliability`.
    *   **Security & IAM:** Questions about Private IP, PSA, CMEK encryption, or IAM DB auth → Fetch `google-cloud-recipe-auth`.
    *   **Performance & Tuning:** Connection pooling, read replicas, latency optimization → Fetch `google-cloud-solution-architecture`.
    *   **Cost Optimization:** Committed Use Discounts (CUDs), rightsizing, auto-pause → Fetch `google-cloud-solution-architecture`.
    
    > 📖 Consult [Well-Architected Triggers](./references/well_architected_triggers.md) for full trigger criteria.
    
    ---
    
    ### Step 3: Download and Install the Specialized Skill
    
    Execute the bundled installer helper to fetch the required skill(s) directly from `google/skills` into the workspace's `.agents/skills/` directory:
    
    ```bash
    # Example: Install Cloud SQL basics
    python3 scripts/install_gcp_skill.py --skill cloud-sql-basics
    
    # Example: Install AlloyDB basics
    python3 scripts/install_gcp_skill.py --skill alloydb-basics
    
    # Example: Install Cloud Spanner
    python3 scripts/install_gcp_skill.py --skill spanner
    
    # Example: Install Well-Architected Reliability
    python3 scripts/install_gcp_skill.py --skill well-architected-reliability
    
    # Example: Install all core database skills
    python3 scripts/install_gcp_skill.py --all-databases
    ```
    
    *Alternative using npm/npx:*
    ```bash
    npx skills add google/skills
    ```
    
    ---
    
    ### Step 4: Proceed with Implementation
    
    Once the skill is installed into `.agents/skills/`, it is immediately available for subsequent operations.
    1. Reference the newly installed `SKILL.md` in `.agents/skills/<skill-name>/`.
    2. Provide concrete `gcloud` commands, Terraform/IaC snippets, or client library examples tailored to the user's selected database.
    3. Verify connectivity (e.g. Cloud SQL Auth Proxy, IAM authentication, VPC Private Service Access).
    
    ---
    
    ## Reference Guides
    
    *   [Database Decision Matrix](./references/database_decision_matrix.md): Deep-dive comparison between Cloud SQL, AlloyDB, Spanner, Firestore, and Bigtable.
    *   [Well-Architected Framework Triggers](./references/well_architected_triggers.md): Detailed rules for triggering security, reliability, performance, cost, and operational pillars.
    *   [Known Skills Catalog](./references/known_skills_catalog.md): Complete list of remote paths and metadata in `google/skills`.
    *   [Prompt Routing Scenarios & Examples](./examples/prompt_routing_scenarios.md): Real-world examples of user requests and the exact skills retrieved.
    
    

    After adding this seed skill to my current coding session, I started up a database conversation regarding my app idea. We landed on Firestore as the best choice, so I asked the seed skill to retrieve only the Firestore skill.

    Here, I didn’t need to download or pre-load all the possible Google Cloud database skills. There’s a lot of them. I only got the one I needed for this particular coding session. Seems cleaner?

    A word about MCPs

    If your skills make use of remote or local MCP servers, circumstances are different. While MCP now supports a stateless interaction pattern, most existing MCP servers don’t. When your coding session starts, there’s a handshake that happens. This means that if you introduce a new MCP during a session (in your mcp_config.json), you likely have to fork your current session, or start a new one. My tests showed this to be the case most of the time, but your mileage may vary.

    I mention this because you could see skills that make heavy use of managed MCPs. That’s cool, but downloading those skills on the fly might mean they only partially work because your coding harness can’t “see” the referenced MCP server. Just be cautious!

    We’re seeing an emerging “open knowledge layer” consisting of MCPs, skills, and plugins. I’d imagine we will see patterns evolve for how and when to use each component. What do you think of this lazy loading pattern I demonstrated here?