OpenClaw custom skills silently disappear without quoted YAML descriptions and openclaw metadata

If a custom OpenClaw skill doesn’t show up in openclaw skills list and the agent can’t see it either, the SKILL.md frontmatter is likely the culprit. OpenClaw fails silently, so the debugging feedback is minimal. Two things must be right. First, any name or description containing a colon must be wrapped in double quotes, otherwise YAML interprets the colon as a key-value separator and the parse fails. Second, the frontmatter must include an openclaw metadata block declaring the emoji icon and any required binaries or environment variables. Without it, OpenClaw won’t register the skill at all. ...

Google DeepMind's Lyria 3 generates full songs from a photo or a sentence

Lyria 3 takes a text prompt or an image and produces a complete track: instrumentation, vocals, lyrics. Not a loop, not a mood board. A song. The image input is what makes it interesting. Most generative audio models take text. Lyria 3 can look at a picture and decide what it sounds like. That’s a different kind of creative interpretation, closer to how a composer might respond to visual art than to a spec. ...

HTTPie needs --ignore-stdin in non-TTY environments like Claude Code

HTTPie detects whether it’s running in a TTY. When there’s no TTY, like when Claude Code invokes it as a subprocess, HTTPie assumes stdin might have data coming and interprets the request as a POST, even if you meant a GET. The fix is --ignore-stdin: http --ignore-stdin GET localhost:3000/things The catch: once you tell Claude Code to always use --ignore-stdin, it will also use it when piping data, which breaks that use case entirely: ...

Claude Code runs natively as a GitHub Action

Anthropic ships an official claude-code-action that runs Claude Code inside a GitHub Actions workflow. It can read your repo, write files, run commands, and commit, all triggered by a PR comment or a schedule. The interesting part: it uses the same Claude Code you run locally, so your CLAUDE.md instructions carry over. The action respects the same permission model. Immediate use cases I’m thinking about: Auto-generate TIL posts from GitHub Issues with a specific label Run a nightly review pass on open PRs Summarize recent commits and update a changelog The main constraint is the Actions runner environment: you need to install any tools Claude Code will call (glow, rsync, etc.) as workflow steps before handing off to the action. ...

Kimi's agent swarm runs up to 100 parallel sub-agents to escape context window limits

The interesting part isn’t the parallelism itself, it’s the reason for it. A single agent on a long-horizon task eventually hits its context window and starts compressing earlier context, degrading output quality. Kimi’s solution: spawn up to 100 sub-agents, each with their own fresh context, coordinating as a swarm. The system is self-organizing: it determines how many agents to deploy and how to split the work based on the task. In benchmarks they cite 4.5x faster results and over 1,500 tool calls per task. ...

Zvec is an embedded vector database aiming to be the SQLite of vector search

Zvec is an open-source embedded vector database from Alibaba, built on their Proxima engine. The pitch is simple: vector search that runs in-process, no server required, with the same frictionless setup as SQLite. The gap it fills is real. Faiss gives you indexes but no CRUD or crash recovery. DuckDB-VSS has limited vector features. Milvus needs its own process and network hop. Zvec aims to be the option that just works when you’re building a local RAG pipeline, a CLI tool, or anything on-device where you need semantic search without infrastructure. ...

LLMs struggle with Asana's strict non-standard rich text format

Asana’s rich text API doesn’t use standard HTML. It accepts a strict subset with specific rules: only certain tags are allowed, nesting rules differ from what browsers tolerate, and the format is closer to XML than HTML, meaning unclosed tags, loose attributes, or anything outside the allowed set will be rejected or silently mangled. LLMs tend to produce plausible-looking but subtly wrong output here. They’ll use tags Asana doesn’t support, nest things incorrectly, or generate valid HTML that Asana’s parser rejects. ...

MCP servers support prompts as a first-class concept, separate from tools

When I shipped mcp-server-asana 1.1.0, the headline addition wasn’t the six new Asana tools (task dependencies, stories, subtasks, project sections). It was prompts. In the MCP protocol, prompts and tools are distinct concepts. Tools are individual actions an LLM can invoke: create a task, add a dependency, fetch a comment. Prompts are predefined conversation templates: parameterized, reusable starting points that an MCP host can surface directly to users. The task-summary prompt added in 1.1.0 illustrates the difference. Instead of leaving the LLM to figure out what to fetch and how to present it, the prompt defines a scaffold: current status, key updates, blockers, next steps. The LLM gets structure, not a blank page. ...