Build applications where agents are first-class citizens. Use this skill when designing autonomous agents, creating MCP tools, implementing self-modifying systems, or building apps where features are outcomes achieved by agents operating in a loop.
View on GitHubEveryInc/compound-engineering-plugin
compound-engineering
plugins/compound-engineering/skills/agent-native-architecture/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/EveryInc/compound-engineering-plugin/blob/main/plugins/compound-engineering/skills/agent-native-architecture/SKILL.md -a claude-code --skill agent-native-architectureInstallation paths:
.claude/skills/agent-native-architecture/<why_now> ## Why Now Software agents work reliably now. Claude Code demonstrated that an LLM with access to bash and file tools, operating in a loop until an objective is achieved, can accomplish complex multi-step tasks autonomously. The surprising discovery: **a really good coding agent is actually a really good general-purpose agent.** The same architecture that lets Claude Code refactor a codebase can let an agent organize your files, manage your reading list, or automate your workflows. The Claude Code SDK makes this accessible. You can build applications where features aren't code you write—they're outcomes you describe, achieved by an agent with tools, operating in a loop until the outcome is reached. This opens up a new field: software that works the way Claude Code works, applied to categories far beyond coding. </why_now> <core_principles> ## Core Principles ### 1. Parity **Whatever the user can do through the UI, the agent should be able to achieve through tools.** This is the foundational principle. Without it, nothing else matters. Imagine you build a notes app with a beautiful interface for creating, organizing, and tagging notes. A user asks the agent: "Create a note summarizing my meeting and tag it as urgent." If you built UI for creating notes but no agent capability to do the same, the agent is stuck. It might apologize or ask clarifying questions, but it can't help—even though the action is trivial for a human using the interface. **The fix:** Ensure the agent has tools (or combinations of tools) that can accomplish anything the UI can do. This isn't about creating a 1:1 mapping of UI buttons to tools. It's about ensuring the agent can **achieve the same outcomes**. Sometimes that's a single tool (`create_note`). Sometimes it's composing primitives (`write_file` to a notes directory with proper formatting). **The discipline:** When adding any UI capability, ask: can the agent achieve this outcome? If not, add the necessary tools or p