AI 资讯
How we made our niche-industry SaaS MCP-ready (and watched ChatGPT call our dispatch tools)
Note: This is an English digest of the original Zenn post (Japanese) . Read there for the full timeline and commit-level trace. TL;DR We ship tasteck , a B2B SaaS for the Japanese night-leisure industry (dispatch + cast shift management). 8 years of operational data, ~100 venues live. Two days after the MCP design post , ChatGPT Plus can call our tools live: "Who's available tonight?" → MCP list_available_drivers → JSON → natural-language reply. Estimated B2 OAuth sprint = 2 weeks (6/16–7/1). Actual = 1 day , by reading the spec carefully before touching code. We hit 12 distinct traps between "OAuth issuance works" and "ChatGPT actually invokes the tool." The QA logs caught every one. What we shipped 3 read tools (B1): list_available_drivers — drivers free tonight list_cast_shifts — today's cast shift roster list_assignable_casts — joined resolution: roster ∧ stage-name set ∧ shop match Natural-language date helper: resolveBusinessDate(naturalText, company) — handles "today / tomorrow / day-after-tomorrow" and the per-tenant business-day boundary (e.g. day flips at 04:00 or 05:00, configured per Company.changeDateTime ). MCP SDK Server + SSE transport: @modelcontextprotocol/sdk wired into a NestJS controller. One SSE connection = one McpServer instance, company-scoped, with a session_id Map routing POST /messages . OAuth flow (B2, finished in one day across 7 steps) Step What Commit 1 Protected Resource Metadata endpoint (RFC 9728) d6f05ff6 2 /authorize + consent screen + PKCE start 107edbcb 3 /token + PKCE verify + JWT issue + resource (RFC 8707) ffd0468c 4 OAuthAccessTokenGuard (RS256 + HS256 fallback, extracts companyId / staffId ) f2c9bed4 5 Streamable HTTP transport (SSE → POST /sse/:companyId for JSON-RPC) 3a28d92f 6 resolveBusinessDate undefined fallback (`(naturalText 7 QA redeploy + ChatGPT live demo — The 12 traps (compressed) The full timeline is in the Japanese post; the abridged list: Discovery path mismatch. ChatGPT expected {% raw %} .well-known/oauth
AI 资讯
Claude Fable 5 for Developers: API Changes, Pricing, Migration Notes
Anthropic shipped Claude Fable 5 on June 9, 2026 — its first generally available Mythos-class model, priced at $10 per million input tokens and $50 per million output. That is exactly double Claude Opus 4.8, and the benchmark deltas are real: SWE-Bench Pro 80.3% vs 69.2%, FrontierCode 29.3% vs 13.4%. But the price is not the migration story. The API behavior is. Fable 5 ships three breaking changes that will silently misbehave in any integration that assumes Opus-era semantics. This post covers what actually changes in your code, what the bill looks like, and where the traps are. I run model intelligence at TokenMix , where we track pricing and API behavior across 300+ models. Everything below is sourced from Anthropic's launch docs, migration guide, and pricing page — verified June 10, 2026. The 60-second version Price: $10/$50 per MTok. Every rate is exactly 2× Opus 4.8 — cache reads $1, 5-min cache writes $12.50, 1-hour writes $20, batch $5/$25. Specs: 1M context, 128K max output, no long-context surcharge. Model ID: claude-fable-5 on the Claude API; anthropic.claude-fable-5 on Bedrock; anthropic/claude-fable-5 on OpenRouter. Breaking change 1: Adaptive thinking is always on. thinking: {"type": "disabled"} returns an error. Breaking change 2: Refusals are HTTP 200 responses with stop_reason: "refusal" — not error codes. Breaking change 3: Safety classifiers reroute flagged requests to Opus 4.8 (under 5% of sessions), and rerouted requests bill at Opus rates. No ZDR: 30-day data retention is mandatory. Zero-data-retention accounts don't see the model at all. Breaking change 1: thinking is no longer optional On Opus 4.8 you could disable thinking to trade quality for latency. On Fable 5 you cannot — adaptive thinking is permanently on, and the model decides how much to think per request. Your replacement lever is the effort parameter: { "model" : "claude-fable-5" , "max_tokens" : 16000 , "effort" : "high" , "messages" : [ ... ] } Five levels: low , medium , high ,
AI 资讯
Stop sending every AI coding request to the expensive model
AI coding tools are powerful. But they’re also wasteful. A tiny helper-function question does not need Claude Sonnet. A huge architecture review probably does. That gap costs money. So I built Badgr Auto. It’s a local OpenAI-compatible proxy that routes each AI coding request to the cheapest model that can handle it. Point your coding tool at: http://localhost:8787/v1 Badgr Auto can route between: local models cheaper OSS cloud models premium models So instead of paying premium prices for every request, you can use: local for small tasks OSS cloud for normal coding work premium only when it actually matters It also tracks: actual cloud spend which route was used fallback events tokens safely removed estimated savings vs premium models The goal is simple: stop wasting premium tokens on cheap tasks. First launch is small: small task → local normal task → cheaper cloud hard task → premium provider fails → fallback duplicate code → safely removed receipts → clear spend trail AI coding is only going to get more expensive if every agent step goes to the top model. Badgr Auto is my attempt to make AI coding cheaper without making it worse.
AI 资讯
From Notion to MCP Server: I Rebuilt 4 Workflows in a Weekend
Migrated 4 of 7 Notion automations to an MCP server in one weekend Two workflows stayed in Notion because the database UI beat any tool call MCP scope rule: one tool does one verb, never a Swiss Army function Result: 12 manual steps collapsed into 3 Claude prompts per publish I spent a weekend pulling four automations out of Notion and rebuilding them as MCP tools. Three of them got faster and one got worse before it got better. The biggest lesson was not about code. It was about deciding which jobs should never leave Notion in the first place. Why I Moved Off Notion In The First Place My Notion setup was not broken. It was just slow in a specific way. I had seven automations stitched together with Notion buttons, formula properties, and two third-party connectors. Every blog publish meant clicking through four pages, copying a title here, pasting a tag list there, and triggering a sync that took 90 seconds to confirm. Multiply that by the 18 articles I push in a normal month and the clicking adds up. The breaking point was a Tuesday where I lost 40 minutes to a connector that silently stopped firing. No error, no log, just a row that never updated. I checked the connector dashboard and it told me everything was healthy. It was not healthy. That kind of invisible failure is the worst kind because you trust it until you do not. MCP changed the math for me. An MCP server lets Claude call my own functions directly. Instead of Claude writing text and me ferrying that text into Notion by hand, Claude can call a tool that does the writing into my systems. The model becomes the operator, not just the writer. If you want the deeper context on what MCP actually is and why it matters at scale, MCP: The 97 Million Agentic Foundation goes through the bigger picture. So I made a list. Seven automations, sorted by how much human judgment each one needed. The ones at the top were pure mechanical steps: format this, push that, fetch a status. The ones at the bottom needed me to loo
AI 资讯
Claude Fable 5 Is Two Models Wearing One Name
On June 9, 2026, Anthropic shipped the most capable model it has ever released to the public. The most interesting thing about it is the part that sometimes refuses to talk to you. Claude Fable 5 is the first model from what Anthropic calls its Mythos class, a tier that now sits above Opus. It launched as a pair. Fable 5 is the public version. Claude Mythos 5 is the same underlying model with its guardrails loosened, and it is not for sale to most of us. It goes only to vetted cyberdefenders and infrastructure providers through a program called Project Glasswing, in collaboration with the US government. Two names, one brain. The thing that separates them is a set of classifiers. That detail is the whole story, and almost every launch-day write-up buried it under the benchmark chart. So let me start there instead. One Model, Two Names, One Classifier in Between Fable 5 ships with three classifiers running alongside it. They watch for requests about offensive cybersecurity, about biology and chemistry that edge toward weapons, and about distillation, which is using the model to train a competitor. When a classifier fires, Fable 5 does not answer. The request gets handed to Claude Opus 4.8, the model that was the top of the public stack until that morning, and Opus answers in Fable's place. For anyone building on the API, this is not an abstract safety story. It is a response shape you have to handle. A refused request comes back as stop_reason: "refusal" with a normal HTTP 200, not an error, and it tells you which classifier tripped. You can have the API retry on another model with a fallbacks parameter, or do it client side with the SDK middleware. You are not billed for a request that is refused before it generates output. { "stop_reason" : "refusal" , "stop_sequence" : null , "content" : [] } Anthropic says this is rare. Its early numbers put at least 95 percent of Fable sessions running entirely on Fable's own answers. I believe that for general work. But "rare on
AI 资讯
Claude Fable 5 me permitiu criar GTA em apenas um prompt.
Claude Fable 5 me permitiu criar um "GTA" em apenas um prompt. Prompt: "Crie um jogo, Tiny GTA 3D." A própria Anthropic afirma que o Fable 5 é seu modelo mais poderoso já lançado ao público, com avanços significativos em engenharia de software, pesquisa científica, visão computacional e execução autônoma de tarefas complexas. Em testes iniciais, empresas relataram que o modelo foi capaz de comprimir meses de trabalho de engenharia em poucos dias. Cidade 3D aberta com 64 quarteirões, prédios, parques e oceano Dirija, roube carros e fuja da polícia Sistema de procurado com 5 estrelas, viaturas e helicóptero te perseguem 42 pedestres vivos que fogem, voam e morrem 16 missões de entrega com histórias de corrupção brasileira Áudio sintetizado: motor, sirene, buzina e cantada de pneu Recorde salvo no navegador Jogue aqui: https://andredarcie.github.io/tiny-gta/
AI 资讯
Anthropic’s Fable 5 can make weirdly fun video games with the click of a button
Anthropic's Claude Fable 5 is going to be a big hit with the web's vibe coders.
AI 资讯
Claude Fable 5 is Now Generally Available on Google Cloud! 🚀
Good news for Claude devs deploying on Google Cloud. Claude Fable 5 is now in General Availability (GA) on Google Cloud. You can now access Fable 5 , as well as other Anthropic models - including Claude Opus 4.8 and Claude Sonnet 4.6 - on Agent Platform . Read more here -> [ blog ] Happy building!
AI 资讯
Anthropic’s Claude Fable 5 is a version of Mythos the public can access today
Anthropic is releasing Claude Fable 5, its first Mythos-class model available to the public. The model comes with guardrails that block responses in high-risk areas like cybersecurity and biology.
AI 资讯
Anthropic’s Claude Fable 5 is a version of Mythos the public can access today
Anthropic is releasing Claude Fable 5, its first Mythos-class model available to the public. The model comes with guardrails that block responses in high-risk areas like cybersecurity and biology.
AI 资讯
Terminal themes optimize for syntax. This one optimizes for prose.
Spend a few hours in Claude Code and the screen is mostly English — tool output, reasoning traces, permission prompts asking you to read and decide. Syntax highlighting is almost irrelevant. What matters is whether body-size prose stays comfortable after six hours of sessions. Most terminal themes weren't built for that. They're tuned for token-colored code, where the eye jumps between short fragments. Prose reading is different: you need higher contrast on body text, tolerably soft contrast on secondary text that doesn't compete, and accent colors that don't burn. I built klein-blue around Yves Klein's IKB pigment as the anchor color — a specific blue I wanted to look at all day. There are four variations, each making a different tradeoff. Klein Void Prot is the strict one: every color role passes APCA Lc gates (body >= 90, subtle >= 75, muted >= 45, accent >= 60). The others trade some strictness for aesthetics. One thing APCA exposed immediately: pure IKB (hex 002FA7) is effectively invisible as text on a dark ground — Lc -12. So IKB lives only in the decorative slot (ansi:blue, borders and highlights). The readable blue — permission-prompt text and similar — is a lifted Klein-family color (hex A8BEF0) in ansi:blueBright, which actually passes. The other differentiating choice is what to do with Claude Code's claude-sand brand color, which lands in ansi:redBright. Two of the four variations neutralize it so nothing competes with IKB. Two accept it as a second hero. That's the meaningful split between variations in daily use. Ships as macOS Terminal.app .terminal profile files with CommitMono or IBM Plex Mono depending on variation. One prerequisite worth knowing: Claude Code's /theme picker has to be set to dark-ansi, otherwise Claude Code uses its hardcoded RGB palette and ignores your ANSI theme entirely. https://github.com/robertnowell/klein-void
AI 资讯
Claude Opus 4.8 shipped today. Here's the upgrade decision tree the announcement skipped — and three workloads that should stay on 4.7.
The 30-second version Anthropic shipped Claude Opus 4.8 a few hours ago. Every benchmark on the announcement page is up: SWE-bench Verified, GPQA, MATH-500, the agentic tool-use evals. The marketing copy reads as it always does — "our most capable model", "strongest coding performance", "better instruction following". If you have been around since 4.5, you know the shape of this announcement by heart now. The announcement skipped the only question that matters for teams running Claude in production: should you upgrade today, next week, or next month, and which of your workloads should stay on Opus 4.7 indefinitely? Anthropic does not write that part. They cannot — it is workload-dependent, and the answer for a code-review agent is different from the answer for a customer-facing chat product. This post is the decision tree I am applying to my own stack today. It is opinionated. Three of the workloads I run are staying on 4.7 until at least mid-July, and I will explain exactly why. Your mileage will vary, but the reasoning shape should transfer. What actually shipped in Opus 4.8 Let me anchor on the facts before the opinion. Opus 4.8 is the third release in the Opus 4.x family this year. The pattern across 4.6 (March), 4.7 (April), and 4.8 (today) has been roughly monthly. Each release has shipped a 2-4 point bump on SWE-bench Verified and a similar bump on the agentic evals. 4.8 follows the pattern: roughly 3 points on SWE-bench, about 2 points on the multi-step tool-use benchmark, and a more visible jump on the long-context retrieval evals — the 'needle in a haystack at 200K tokens' style tests. Three changes are worth pulling out of the announcement: Better long-context coherence . The 4.8 release notes specifically call out improved behavior on tasks that span more than 100K tokens of context. Concretely: less mid-context summarization, fewer instances of the model 'forgetting' early-context instructions, better citation of source material when retrieved chunks sp
AI 资讯
5 Claude API Errors That Cost Me Money (And How I Trapped Them)
Retry storms turned 1 timeout into 340 duplicate calls billed in 90 seconds Infinite tool loop ran 1,200 iterations before I noticed at 2am Partial stream cleanup stopped half-written DB writes corrupting records Trap every error class with a circuit breaker and a hard iteration cap Five Claude API errors quietly drained my account before I built guards around them. None of them threw a loud crash. They just kept billing while I slept. Here is exactly what broke, what it cost, and the traps I now run on every project. The Retry Storm That Billed 340 Times in 90 Seconds The most expensive mistake I made was naive retry logic. A single request timed out. My code caught the timeout and retried. The retry also timed out, so it retried again. Within 90 seconds I had fired 340 requests for one piece of work. The problem was that the Claude API had actually received and processed several of those requests. The timeout happened on my side waiting for the response, not on Anthropic's side. So I was paying for completed work I never saw, then paying again for the retry. My first version of the retry looked harmless. A while loop, a counter set to 5, a sleep of one second between attempts. The flaw was that the sleep was constant and the counter reset on every new job. Under load, jobs stacked, and each one spawned its own retry chain. That is how 1 timeout became 340 calls. The fix was exponential backoff with a hard ceiling and a request ID. I now generate a unique idempotency-style key per logical job and refuse to issue a second call for the same key until the first fully resolves or hard-fails. Backoff starts at 2 seconds and doubles up to 32 seconds, then gives up after 5 total attempts. attempt = 0 delay = 2 while attempt < 5 : try : return call_claude ( job_key ) except Timeout : attempt += 1 sleep ( delay + random_jitter ()) delay = min ( delay * 2 , 32 ) raise GiveUp ( job_key ) The jitter matters more than it looks. Without it, ten failed jobs all retry at the exact
AI 资讯
Microsoft’s open source tools were hacked to steal passwords of AI developers
Microsoft shut down dozens of GitHub code repositories for Azure and AI coding tools after a reported hack.
AI 资讯
I wanted to query Instagram data inside my AI coding assistant, so I wired up an MCP server for it
Been doing a lot of competitive research for clients lately — checking hashtag volumes, tracking top posts in a niche, that kind of thing. Kept switching between Claude Code and browser tabs to cross-reference stuff manually. Got annoying fast. Found hikerapi-mcp, a Model Context Protocol server that exposes 100+ Instagram endpoints as tools directly inside Claude Code. Figured I'd try it. Setup was straightforward. The one thing I did differently was keeping the API key out of config files entirely — passed it as an environment variable instead. Smaller attack surface if I accidentally commit something. Also filtered down the tool groups with HIKERAPI_TAGS because 100+ tools showing up in context is chaos. I only need hashtag search and competitor profile data, so I scoped it to just those. "env": { "HIKERAPI_KEY": "${HIKERAPI_KEY}", "HIKERAPI_TAGS": "User Profile,Post Details,Search,Hashtags,Stories" } One thing that tripped me up for a solid 20 minutes: HikerAPI runs on a prepaid model (credits in rubles). If your balance is zero, you get HTTP 402, not 401. I kept thinking my key was invalid and regenerated it twice before I figured out I just needed to top up. Once that was sorted, it actually works well. Now I can ask things like "what are the top 10 posts for #socialmediamarketing this week" or pull a competitor's recent content directly in the same session where I'm building the campaign strategy. Cuts out a lot of context switching. Repo if you want to check it out: github.com/subzeroid/hikerapi-mcp Wrote up the full setup with config details here if useful: https://dev.to/simrp360/querying-instagram-from-claude-code-wiring-up-hikerapis-mcp-server-57jf Anyone else using MCP servers for social data research? Curious what other setups people are running.
AI 资讯
Why You Underestimate Haiku
Most people pick a model the wrong way around. They look at the leaderboard, see Opus on top, and reach for it by default. Sonnet if they want to save money. Haiku almost never, because the name says "small." That habit costs you. For a lot of what you actually build, Haiku is the right call, and you're paying three to five times more for capability the task never uses. This post is about how to choose, and why Haiku should be your default more often than it is. The short version: don't start from "what's the best model." Start from "what does this task need." Most tasks don't need much. Comparison Here is the current lineup, with the numbers that matter when you're choosing. Haiku 4.5 Sonnet 4.6 Opus 4.8 Model ID claude-haiku-4-5 claude-sonnet-4-6 claude-opus-4-8 Input price (per 1M tokens) $1 $3 $5 Output price (per 1M tokens) $5 $15 $25 Context window 200K 1M 1M Max output 64K 64K 128K Best at speed, volume balance hardest reasoning Two things jump out. First, price . Haiku input is a fifth of Opus and a third of Sonnet. Output is the same ratio. If you send a million tokens through Opus for $25 and the same work would have been fine on Haiku, you spent $20 for nothing. And that gap is per request, so it compounds. A feature that runs ten thousand times a day on Opus instead of Haiku is not a rounding error. It is the difference between a feature that ships and one that gets cut for cost. Second, the context window . This is where Haiku gives something up: 200K tokens instead of 1M. That is the real tradeoff, and it points straight at when to use it. We'll come back to that. The mental model Stop ranking models. Rank tasks . Ask three questions about the task in front of you: Does it need real reasoning, or is it bounded? A task is bounded when a competent junior could do it from a clear spec without much judgment: pull these fields out, sort this into one of five buckets, rewrite this in a different tone, answer this from the text I gave you. A task needs reason
AI 资讯
Why AI Keeps Generating the Wrong Design Tokens and How I Fixed It with Figma's API
AI design system output is approximate by default. Wrong border radii, raw hex values, inconsistent tokens across 60 components. The fix isn't better prompts. Here's the structural change that made it exact using Figma's REST API. The fourth time I manually corrected the same border radius mistake in an AI-generated component, I stopped and asked why this kept happening. Not "what prompt would fix this?" The deeper question: why does every AI tool I tried get the structure right and the values wrong? The button was correct. The variants were there. The layout matched the Figma spec. But borderRadius: 8 when it should be borderRadius: '8px' . A spacing gap of 8 when the spec said 6 . The color #3B82F6 sitting in the file where semantic.button.primary should be. None of it wrong in a way that breaks the build. All of it wrong in a way that breaks the design system. After hitting this wall enough times, I realized the problem wasn't the AI. It was the question I was asking it. Why AI keeps generating the wrong Figma design tokens When you give an AI tool a Figma screenshot and ask it to produce a component, it does something reasonable: it interprets what it sees. The structure, the layout, the hierarchy - it gets most of that right. What it cannot get right is the token mapping. The AI doesn't know your semantic token file. It doesn't know that #3B82F6 maps to semantic.button.primary in your codebase. It doesn't know that your MUI setup multiplies numeric border radii by 4, which means borderRadius: 8 renders at 32px instead of 8px . So it approximates. Here's what that looks like in practice: What AI produces What the spec requires Why it's wrong borderRadius: 8 borderRadius: '8px' MUI multiplies numeric values by 4 gap: 8 gap: 6 Spacing value not extracted from Figma color: '#3B82F6' semantic.button.primary Raw hex instead of semantic token fontSize: 14 variant="MD_Medium" Typography token not resolved Across one component, these deviations are small. Across 60 comp
AI 资讯
Anthropic: Claude Now Writes 80% of Its Own Code in 2026
80%. That is the share of code currently being merged into Anthropic's production systems that was written by Claude. Not code-reviewed. Not pair-programmed. Written. In February 2025, when Claude Code launched, that number was in the low single digits. Sixteen months later, the company decided that data point — and the trajectory behind it — was worth a public warning. On June 4, 2026, Anthropic published "When AI Builds Itself," a research paper co-authored by Marina Favaro, head of the Anthropic Institute, and Jack Clark, one of the company's co-founders. It was the first major publication from the Anthropic Institute since its founding in March 2026. The paper did two things simultaneously: disclosed internal productivity data that most AI companies keep private, and called for a global mechanism to slow or pause frontier AI development before the process becomes self-sustaining without meaningful human direction. The data came first. The policy recommendation followed from it. Here is what the numbers actually show and why every developer building on AI infrastructure today should read this carefully. The Productivity Curve Nobody Predicted Anthropic published a chart of engineering output per engineer, indexed to a baseline from 2021–2024. The curve is flat for four years. Then Claude Code shipped in February 2025. The multiplier progression from that point: 1.2x, 1.5x, 1.9x, 2.5x. By Q1 2026: 5.8x. By Q2 2026: 8x. The typical Anthropic engineer is now merging eight times as much code per day as they were in 2024. Not 8% more. Eight times more. That is not a productivity improvement — it is a different category of output from the same headcount. To understand what drives the number, you need to understand what Claude Code actually does inside Anthropic's engineering workflows. The tool was built for and by engineers working on frontier AI systems — which means the tasks it handles are not boilerplate CRUD endpoints. Claude is writing test harnesses for novel m
AI 资讯
I Wrote 50 Claude Code Prompts and Used Them for a Week -- Here's What Actually Works
Last week I did something dumb: I sat down and wrote 50 Claude Code prompts in one sitting. Halfway through I was sure most of them would never get used. But I finished, pushed them to GitHub, and made myself use them for an entire week -- no ad-hoc prompting allowed. The result surprised me. Some skills were life-changing. Others were useless. Here is the honest breakdown. The Methodology I categorized the 50 skills into 5 types: Analysis (12), Generation (14), Debugging (8), Planning (10), Maintenance (6). Rule: every time I hit a task, I must use a skill file or admit I did not have one. The 7 That Actually Saved Me Hours 1. Code Review Assistant (saved ~3h) This was the biggest surprise. I usually review PRs by gut feel -- scan the diff, look for obvious bugs, approve. The Code Review skill forced me to be systematic: On a 400-line PR it caught 2 security issues I would have missed. That alone justified the experiment. 2. Bug Investigator (saved ~2h) Instead of pasting errors and asking "why?", this skill forces you to provide: error message, file context, hypothesis. 3. Dependency Audit (saved ~1h) Scanned a 3-year old Node project. Found 2 CVEs, 8 unused devDependencies (21 MB). 4. Auto Commit Messages (saved ~30m) Saves 2 minutes per commit. Over 15 commits in a week that is 30 minutes. 5. Test Generator (saved ~2h) Generates 5-8 test cases per function in seconds. 6. Refactoring Planner (saved ~1h) Reads the function, identifies extraction candidates, outputs a dependency-ordered plan. 7. Performance Audit (saved ~30m) Found an unoptimized 3 MB hero image and a render-blocking script. The Ones I Never Touched About 8 out of 50 were "not this week" -- Database Migrations, API Documentation, CI/CD Pipeline. What I Learned The ROI is in the analysis skills. Code review, bug investigation, dependency audit -- these are high-judgment tasks where Claude thoroughness beats speed. Skills are habit, not technology. The hardest part was not writing the prompts -- it w
AI 资讯
Two agent skills hit GitHub trending the same week. Skills are becoming the new packages, and the dependency graph nobody is managing will bite by Q4.
The signal hidden in this week's GitHub trending Two agent-shaped repositories cracked the daily GitHub trending board this week. The first is mvanhorn/last30days-skill , a Claude-style skill that researches a topic across Reddit, X, YouTube, Hacker News, and Polymarket, then synthesizes a grounded summary. The second is NousResearch/hermes-agent , billed as "the agent that grows with you" — a persistent agent runtime that compounds context across sessions. Both ranked the same week. Both are skill-shaped: a manifest, a trigger, a set of instructions, and a runtime expectation. This is the first time I have seen two skill repos chart simultaneously on GitHub trending. Most observers will treat them as cool side projects, fork them, star them, and move on. They are cool side projects. They are also a phase transition that the agent ecosystem has been edging toward for nine months. By Q4 you are going to wish you had read this signal in early June, because the dependency-graph problem about to land in production agents is the same one the npm ecosystem ran into between 2011 and 2018 — except faster, less tooled, and with a much larger blast radius. This post is about that phase transition. The benchmark coverage of skills is everywhere; what you cannot easily find is a working operational model for managing them at fleet scale. I am going to give you one. What actually shipped this week Let me anchor on the facts before I extrapolate. last30days-skill (mvanhorn) is a single skill bundle. Its SKILL.md tells the host agent: when the user asks for recent news, controversy, or sentiment on a topic, run a structured multi-source fetch — eight queries minimum, across five platforms, with a freshness window of 30 days — then synthesize. The skill ships with prompt scaffolding, query templates, and a synthesis rubric. It is roughly 600 lines including instructions and helper scripts. Installation is a git clone into your skill directory, no package manager, no version negotia