{
  "lastUpdated": "2026-08-15T18:00:00.000Z",
  "taxonomyVersion": 1,
  "thesis": "Vendors are not copying MCP or Plan Mode as brand names. They are copying machinery that already proved it can change a behavior that matters for agent products: trust enough to delegate, lower the cost of letting the agent cook, make work pick-up-able, and extend the product without rewriting the core.",
  "behaviors": [
    {
      "id": "delegate-with-trust",
      "name": "Delegate with trust",
      "thesis": "People hand an agent more important work when they can inspect, constrain, and undo it."
    },
    {
      "id": "reduce-commit-anxiety",
      "name": "Reduce commit anxiety",
      "thesis": "Unfinished or agent-proposed work is cheap to share and cheap to revert, so people actually let the agent run."
    },
    {
      "id": "make-work-multiplayer",
      "name": "Make work multiplayer",
      "thesis": "Work becomes visible, reviewable, and pick-up-able by a human or another agent without a meeting."
    },
    {
      "id": "extend-without-rewriting",
      "name": "Extend without rewriting",
      "thesis": "Third parties add capability so the product compounds instead of waiting on the vendor's roadmap."
    },
    {
      "id": "keep-context-alive",
      "name": "Keep context alive",
      "thesis": "The next session does not start from zero — the project, the web, and the user's intent survive."
    },
    {
      "id": "meet-user-in-habitat",
      "name": "Meet the user in habitat",
      "thesis": "The agent shows up where work already happens: the editor, git, CI, and the login people already pay for."
    }
  ],
  "mechanics": [
    {
      "id": "propose-then-approve",
      "name": "Propose, then approve",
      "behaviorIds": ["delegate-with-trust", "reduce-commit-anxiety"],
      "featureIds": ["planning-mode", "todo-tasklist"],
      "whyItTravels": "The interesting part is not a Plan button. Someone proposes a piece of work, the work becomes visible before it becomes a change, feedback attaches to the proposal, and approval is what moves state. That is the pull-request mechanic wearing an agent costume. It lowers the cost of letting an agent cook because the human is reviewing a plan, not an already-mutated repo. Every tool that copied planning mode was copying that sequence, not a menu label."
    },
    {
      "id": "undo-as-verb",
      "name": "Undo as a first-class verb",
      "behaviorIds": ["reduce-commit-anxiety", "delegate-with-trust"],
      "featureIds": ["checkpoints"],
      "whyItTravels": "Stories did not win because photos disappeared. They won because they lowered the pressure to create. Checkpoints do the same job for agents. If you can rewind the session, you do not have to be sure before you delegate. The mechanic is a cheap undo that makes ambitious runs feel reversible. Tools that shipped rewind were not adding a setting — they were buying the user permission to take a bigger risk."
    },
    {
      "id": "permission-envelopes",
      "name": "Permission envelopes",
      "behaviorIds": ["delegate-with-trust"],
      "featureIds": ["sandbox-permissions"],
      "whyItTravels": "Delegation dies when the only options are 'trust everything' or 'approve every call'. An envelope — sandbox, allow-list, read-only, ask-once — lets people hand over more work without raising the blast radius. The mechanic is a fence you can see, not a terms-of-service paragraph. Once one vendor proved users would grant broader autonomy inside a fence, the rest of the category had to ship a fence too."
    },
    {
      "id": "show-the-thinking",
      "name": "Show the thinking",
      "behaviorIds": ["delegate-with-trust"],
      "featureIds": ["extended-thinking"],
      "whyItTravels": "Verification gets more likely when the reasoning is inspectable. Visible thinking is not a party trick — it is a way to check the agent's work without standing up a second reviewer. People trust a long, consequential run more when they can watch the argument form. That is why extended-thinking toggles traveled: they turn a black box into something you can audit while it is still running."
    },
    {
      "id": "spawn-a-worker",
      "name": "Spawn a worker",
      "behaviorIds": ["make-work-multiplayer"],
      "featureIds": ["subagents", "background-tasks"],
      "whyItTravels": "A pull request makes work visible to other people. Subagents and background tasks make work visible to other workers. The human stays on one thread; the extra labor happens off to the side, with its own state, and reports back. The mechanic is fan-out without forcing the user to become a process manager. Once Cursor and Claude Code showed that parallel agents felt like more throughput rather than more chaos, every rival had to answer it."
    },
    {
      "id": "protocol-not-plugin",
      "name": "Protocol, not plugin",
      "behaviorIds": ["extend-without-rewriting"],
      "featureIds": ["mcp-support"],
      "whyItTravels": "A plugin marketplace is a vendor's garden. A protocol is a pipe anyone can attach to. MCP traveled because it let tools inherit the rest of the internet's connectors instead of rebuilding each one. The mechanic is interoperability as the product: once users could plug the same server into two agents, staying on a tool that could not speak the protocol started to feel like a tax. That is network-density machinery, which is why it copied faster than most features on this list."
    },
    {
      "id": "packaged-recipes",
      "name": "Packaged recipes",
      "behaviorIds": ["extend-without-rewriting"],
      "featureIds": ["skills-plugins", "slash-commands", "hooks"],
      "whyItTravels": "Custom slash commands, skills, and lifecycle hooks are not power-user chrome. They let a behavior get written once and reused without opening the agent's internals. Contribution happens as a byproduct of solving your own problem, then sharing the recipe. The mechanic increases contribution without a giant reward — the same reason Stories and sticker packs spread. Tools that shipped a skill, command, or hook format were copying a way to let the crowd extend the product."
    },
    {
      "id": "persistent-instructions",
      "name": "Persistent instructions",
      "behaviorIds": ["keep-context-alive"],
      "featureIds": ["memory-files"],
      "whyItTravels": "AGENTS.md and CLAUDE.md are not documentation features. They are a way for work to leave enough context behind that the next session — or the next person — can pick it up without another meeting. The mechanic is memory that lives in the repo, not in a chat transcript that dies when you close the tab. Once one tool taught users to keep a file the agent always reads, every other tool had to honor the same file or lose the project's accumulated taste."
    },
    {
      "id": "live-world-input",
      "name": "Live world input",
      "behaviorIds": ["keep-context-alive"],
      "featureIds": ["web-search", "image-input", "voice-input"],
      "whyItTravels": "An agent trapped in the repo is guessing. Web fetch, screenshots, and voice are the same mechanic in different costumes: let the model see the world the user is already looking at. That collapses the 'paste more context' ritual and makes the next turn cheaper. Vision and search copied quickly because users felt the absence immediately — a coding agent that cannot look at the error screenshot or the live docs is doing half a job."
    },
    {
      "id": "native-habitat",
      "name": "Native habitat",
      "behaviorIds": ["meet-user-in-habitat"],
      "featureIds": ["vscode-extension", "jetbrains", "git-pr-integration", "headless-mode", "subscription-plan-auth"],
      "whyItTravels": "The mechanic is not 'we built an IDE plugin'. It is showing up in the habitat where the work already lives so using the agent does not feel like switching products. Editor extensions, git/PR actions, CI headless mode, and 'log in with the plan you already pay for' are all the same move: remove a context switch. Consumer apps learned this with sharing sheets and camera rolls. Agent tools learned it by embedding in VS Code, JetBrains, GitHub, and the subscription people already have."
    }
  ]
}
