From project-orchestrator
Agent-native architecture design methodology — parity mapping (UI action to agent tool), atomic tool definitions, prompt-defined features, shared workspace patterns, and dynamic context injection. Use when designing agent-native capabilities for a target application during Phase 2 of the pipeline.
How this skill is triggered — by the user, by Claude, or both
Slash command
/project-orchestrator:agent-native-designThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- During Phase 2 when designing agent-native capabilities for a target application
Whatever the user can do through the UI, the agent must be able to achieve through tools.
The discipline: When adding any UI capability, ask: can the agent achieve this outcome? If not, add the necessary tools or primitives.
The test: Pick any action a user can take in the UI. Describe it to the agent. Can it accomplish the outcome?
Prefer atomic primitives. Features are outcomes achieved by an agent operating in a loop.
A tool is a primitive capability: read, write, create, update, delete. A feature is an outcome described in a prompt, achieved by an agent that has tools and operates in a loop.
The test: To change how a feature behaves, do you edit prose or refactor code? If prose, you have granularity right.
With atomic tools and parity, new features are just new prompts.
The agent uses primitives and its judgment to accomplish outcomes. You ship new features by adding prompts, not code.
The test: Can you add a new feature by writing a new prompt section, without adding new code?
The agent can accomplish things you did not explicitly design for.
When tools are atomic and parity is maintained, users ask agents for things you never anticipated — and the agent figures it out by composing available tools.
The test: Give the agent an open-ended request within your domain. Can it figure out a reasonable approach?
Agent-native applications get better through accumulated context and prompt refinement.
For each entity and UI screen in the application:
Parity Map Template:
| UI Action | Agent Tool | Type | Entity | Implementation |
|-----------|-----------|------|--------|----------------|
| Create task | create_task(title, desc, priority) | Primitive | Task | POST /api/v1/tasks (in api-spec.md) |
| Drag to column | move_task(id, column) | Primitive | Task | PATCH /api/v1/tasks/:id/move (NEW) |
| Bulk archive | (compose: list_tasks + update_task) | Composed | Task | N/A — agent composes |
Include a quantitative parity metric:
## Parity Coverage
- Entities with full CRUD: X/Y (Z%)
- UI actions with agent tools: M/N (Z%)
- Missing: [list missing actions]
list_capabilities meta-toolz.string() when the API validates, not z.enum() (keeps tools open for unexpected agent use)Tool Definition Template:
### [Entity] Tools
| Tool | Params | Returns | Service |
|------|--------|---------|---------|
| create_[entity] | field1: type, field2: type | Entity | service-name |
| read_[entity] | id: UUID | Entity | service-name |
| update_[entity] | id: UUID, changes: object | Entity | service-name |
| delete_[entity] | id: UUID | void | service-name |
| list_[entities] | filter: object, sort: string, cursor: string | Entity[] | service-name |
Features are outcomes achieved by agents, not functions you write.
### Agent: [name]
- **Outcome:** [What the agent achieves when triggered]
- **Tools used:** [list of primitive tools from the Tool Definitions]
- **System prompt snippet:** "[Core instruction for the agent's behavior]"
- **Trigger:** [When this agent activates — user request, event, schedule]
- **Runtime artifact:** [.claude/agents/[name].md | database prompt config | client-side config]
- **Context injection:** [What runtime data goes into the system prompt]
Runtime artifact format must be specified. Options:
.md file in target project's .claude/agents/Agents and users must work in the same data space. No shadow tables, no separate agent directories, no sandbox isolation.
Specify for each application:
## Shared Workspace
- Database: agents use same tables (no shadow/agent-specific tables)
- Observation: [WebSocket events | TanStack Query invalidation | Riverpod refresh]
- Cache: [invalidation strategy when agent changes state]
System prompts must include runtime state so agents know what resources exist.
## Dynamic Context Injection
| Context Data | Source | Refresh |
|-------------|--------|---------|
| Available resources | DB query | On session start |
| Recent activity | DB query: last N actions | Every 5 minutes |
| Domain vocabulary | Static config | On deploy |
| User preferences | User settings table | On session start |
analyze_and_organize bundles judgment into the tool. Break into primitives.discover + access pattern works.complete_task tool.# Agent-Native Design: [Feature Name]
## Parity Map
[Parity map table with Implementation column]
## Parity Coverage
- Entities with full CRUD: X/Y (Z%)
- UI actions with agent tools: M/N (Z%)
- Missing: [list]
## Tool Definitions
[Per-entity tool tables with Params, Returns, Service columns]
## Agent-Native Features
[Per-agent feature definitions with outcome, tools, system prompt, trigger, runtime artifact, context injection]
## Shared Workspace
[Database, observation mechanism, cache invalidation]
## Dynamic Context Injection
[Context data table with source and refresh strategy]
Before completing agent-spec.md, verify:
npx claudepluginhub vivekmano27/agent-orchestrator --plugin project-orchestratorProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.