Implementation guidance for creating individual agents in the Arcanea system with proper structure, capabilities, and integration.
npx skills add https://github.com/majiayu000/claude-skill-registry --skill agent-implementer
Create individual agents for the Arcanea ecosystem with proper structure, capabilities, and integration points.
interface Agent {
// Identity
id: string; // Unique kebab-case ID
name: string; // Display name
command: string; // Invocation command (/id)
// Classification
court: string; // Guardian court name
element: string; // Fire/Water/Earth/Air/Void
frequency: string; // Operating frequency
// Capabilities
specialty: string; // One-line description
capabilities: string[]; // What they can do
skills: string[]; // Available skills
triggers: string[]; // Activation keywords
// Configuration
promptTemplate: string; // System prompt template
examples: string[]; // Example outputs
parameters: ParamSchema; // Input parameters
// Metadata
version: string; // Agent version
author: string; // Creator
tier: 'free' | 'premium'; // Access level
}
Questions to answer:
Example:
const ignitionAgent = {
id: "ignition",
name: "Ignition",
command: "/ignition",
court: "Draconia",
element: "fire",
frequency: "528Hz",
specialty: "Spark rapid creative ideas"
};
List what the agent can do:
Map to skills:
/fire ignite/fire intensify/foundation beginTemplate structure:
You are {name} from the {court} Court.
Frequency: {frequency} | Element: {element}
Specialty: {specialty}
Your approach:
- {Characteristic 1}
- {Characteristic 2}
- {Characteristic 3}
Task: {{task}}
Context: {{context}}
Provide your contribution as {name}:
Example for Ignition:
You are Ignition from the Draconia Court.
Frequency: 528Hz | Element: Fire
Specialty: Spark rapid creative ideas
Your approach:
- High-energy, passionate
- Fast generation over perfection
- Bold, unconventional ideas
- Fearless creativity
Task: {{task}}
Context: {{context}}
Ignite creative fire. Generate 10 bold, energetic ideas rapidly.
Don't self-censor. Embrace wild possibilities.
Keywords that activate this agent:
triggers: [
"stuck",
"blocked",
"can't start",
"ignite",
"spark",
"rapid",
"brainstorm",
"ideas"
]
What inputs does the agent need?
parameters: {
task: {
type: "string",
required: true,
description: "What to generate ideas for"
},
count: {
type: "number",
required: false,
default: 10,
description: "Number of ideas to generate"
},
temperature: {
type: "number",
required: false,
default: 0.9,
description: "Creativity level (0.1-1.0)"
}
}
Add to registry:
// In arcanea-agents/registry.js
const AGENT_REGISTRY = {
courts: {
elemental: {
fire: {
guardian: "Draconia",
agents: [
// ... other agents
{
id: "ignition",
name: "Ignition",
// ... all properties
}
]
}
}
}
};
Create test cases:
// Test ignition agent
describe('Ignition Agent', () => {
test('generates ideas for character', async () => {
const result = await invokeAgent('ignition', {
task: 'Create a cyberpunk character'
});
expect(result.output).toContain('character');
expect(result.output.split('\n').length).toBeGreaterThan(5);
});
});
{
id: "{kebab-name}",
name: "{TitleCaseName}",
command: "/{kebab-name}",
court: "Draconia",
element: "fire",
frequency: "{396|528|639|741|852|963}Hz",
specialty: "{One-line specialty}",
personality: "{Fiery, passionate, transformative}",
capabilities: ["{capability1}", "{capability2}"],
skills: ["/fire {skill1}", "/fire {skill2}"],
triggers: ["{keyword1}", "{keyword2}"],
promptTemplate: `You are {name} from the Draconia Court...
Task: {{task}}
Approach with fire: intense, passionate, transformative.
{specific_instructions}`,
examples: ["{example1}", "{example2}"]
}
{
id: "{kebab-name}",
name: "{TitleCaseName}",
command: "/{kebab-name}",
court: "Leyla",
element: "water",
frequency: "{396|528|639|741|852}Hz",
specialty: "{One-line specialty}",
personality: "{Fluid, emotional, nurturing}",
capabilities: ["{capability1}", "{capability2}"],
skills: ["/flow {skill1}", "/flow {skill2}"],
triggers: ["{keyword1}", "{keyword2}"],
promptTemplate: `You are {name} from the Leyla Court...
Task: {{task}}
Approach with water: flowing, emotional, adaptive.
{specific_instructions}`,
examples: ["{example1}", "{example2}"]
}
For complex agents that need specialized modes:
{
id: "structure",
name: "Structure",
subModes: [
{ id: "structure-architect", name: "Architect Mode" },
{ id: "structure-foundation", name: "Foundation Mode" },
{ id: "structure-refinement", name: "Refinement Mode" }
]
}
For agents that need configuration:
{
id: "depth",
name: "Depth",
parameters: {
depth: {
type: "enum",
options: ["surface", "shallow", "deep", "abyssal"],
default: "deep"
}
}
}
For agents that remember previous interactions:
{
id: "relationship",
name: "Relationship",
contextWindow: 5, // Remember last 5 interactions
memory: {
type: "conversation",
persistence: "session"
}
}
✅ Give each agent a clear, single purpose
✅ Use consistent naming conventions
✅ Document all parameters
✅ Provide example outputs
✅ Test with real tasks
✅ Version your agents
❌ Create agents that overlap too much
❌ Give agents vague or broad purposes
❌ Forget to add to registry
❌ Skip testing
❌ Hardcode without configuration options
Before an agent is complete:
test('agent responds correctly', async () => {
const agent = getAgent('ignition');
const result = await agent.invoke('Brainstorm ideas');
expect(result).toBeDefined();
expect(result.output).toBeTruthy();
});
test('agent integrates with conductor', async () => {
const result = await conductor.orchestrate({
agent: 'ignition',
task: 'test'
});
expect(result.success).toBe(true);
});
Implementing agents requires:
Each agent is a specialized creative partner. Build them well.
*Use this skill when implementing or modifying agents in the Arcanea ecosystem.*
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take majiayu000/agent-implementer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.