ai-tooling

  • A skill that was too long to be read carefully

    A two-thousand-word document describing this application’s architecture, which produced worse output than no document. A long document produces confident output that follows some of it, which is worse…

  • Splitting by task rather than by subject

    Four skill documents organised by subject, replaced by six organised by task, which is the whole finding. A document loaded because a task started is read; a document…

  • An agent with a scope and a list of what it may not touch

    An agent definition, which is mostly a list of prohibitions. The last instruction is the one that matters and it is the one a general-purpose assistant gets wrong…

  • Reusable skills and agent definitions, and what they are actually for

    turkerdev/ai-skills and turkerdev/ai-agents, and eighteen months of retyping the same instructions. Context is per-session and knowledge is not.

  • Two years in, and the measurement problem is unchanged

    Eighteen months of trying to say something specific about assisted coding, and the same conclusion as the first attempt. Two years and the honest position is that the…

  • Schema as a resource rather than as a tool

    The protocol distinguishes things that are read from things that are called, and a schema is the first. Exposing the schema as a resource rather than as a…

  • MCP: a tool that refuses more than it accepts

    A protocol server for a database, and the constraints that make it safe rather than the capabilities that make it useful. A read-only credential is the floor rather…

  • Building an MCP server for a database

    turkerdev/mysql-mcp, and what a protocol for tool access actually requires. The authorisation model is the host’s problem, which means it is all yours.

  • A conventions file, versioned with the code

    A document describing this codebase’s conventions, read by a tool and by people, kept in the repository. The file is the single most effective thing we have done…

  • Reviewing code I did not write

    Review as the skill that matters, and a volume of code that needs it. A change that looks right, passes, and is subtly wrong.