@lagoon-protocol/lagoon-mcp 0.1.3 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/dist/server.js +1 -1
- package/dist/skills/curator-evaluation.d.ts +15 -0
- package/dist/skills/curator-evaluation.d.ts.map +1 -0
- package/dist/skills/curator-evaluation.js +424 -0
- package/dist/skills/curator-evaluation.js.map +1 -0
- package/dist/skills/customer-support.d.ts +15 -0
- package/dist/skills/customer-support.d.ts.map +1 -0
- package/dist/skills/customer-support.js +512 -0
- package/dist/skills/customer-support.js.map +1 -0
- package/dist/skills/index.d.ts +91 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +100 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +120 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +263 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/onboarding.d.ts +15 -0
- package/dist/skills/onboarding.d.ts.map +1 -0
- package/dist/skills/onboarding.js +383 -0
- package/dist/skills/onboarding.js.map +1 -0
- package/dist/skills/portfolio-review.d.ts +15 -0
- package/dist/skills/portfolio-review.d.ts.map +1 -0
- package/dist/skills/portfolio-review.js +464 -0
- package/dist/skills/portfolio-review.js.map +1 -0
- package/dist/skills/protocol-health.d.ts +15 -0
- package/dist/skills/protocol-health.d.ts.map +1 -0
- package/dist/skills/protocol-health.js +451 -0
- package/dist/skills/protocol-health.js.map +1 -0
- package/dist/skills/risk-expert.d.ts +15 -0
- package/dist/skills/risk-expert.d.ts.map +1 -0
- package/dist/skills/risk-expert.js +456 -0
- package/dist/skills/risk-expert.js.map +1 -0
- package/dist/skills/shared.d.ts +82 -0
- package/dist/skills/shared.d.ts.map +1 -0
- package/dist/skills/shared.js +136 -0
- package/dist/skills/shared.js.map +1 -0
- package/dist/skills/types.d.ts +137 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +11 -0
- package/dist/skills/types.js.map +1 -0
- package/package.json +26 -1
- package/skills/README.md +141 -0
- package/skills/lagoon-curator-evaluation/SKILL.md +281 -0
- package/skills/lagoon-curator-evaluation/scoring-rubric.md +121 -0
- package/skills/lagoon-customer-support/SKILL.md +95 -0
- package/skills/lagoon-customer-support/response-templates.md +196 -0
- package/skills/lagoon-onboarding/SKILL.md +251 -0
- package/skills/lagoon-onboarding/risk-interpretation.md +188 -0
- package/skills/lagoon-onboarding/tool-sequences.md +217 -0
- package/skills/lagoon-portfolio-review/SKILL.md +156 -0
- package/skills/lagoon-portfolio-review/rebalancing-criteria.md +85 -0
- package/skills/lagoon-portfolio-review/review-framework.md +70 -0
- package/skills/lagoon-protocol-health/SKILL.md +171 -0
- package/skills/lagoon-protocol-health/kpi-thresholds.md +50 -0
- package/skills/lagoon-protocol-health/report-templates.md +149 -0
- package/skills/lagoon-risk-expert/SKILL.md +131 -0
- package/skills/lagoon-risk-expert/risk-frameworks.md +124 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lagoon Skills Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Skills are procedural knowledge modules that teach Claude HOW to use
|
|
5
|
+
* Lagoon MCP tools effectively. They complement MCP's data connectivity
|
|
6
|
+
* with domain expertise and workflow guidance.
|
|
7
|
+
*
|
|
8
|
+
* @module skills/types
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Represents a Lagoon skill with instructions and metadata.
|
|
12
|
+
* Skills can be used in two contexts:
|
|
13
|
+
* 1. Claude Desktop: Raw SKILL.md files loaded via JSON config
|
|
14
|
+
* 2. Backend API: TypeScript modules injected into system prompts
|
|
15
|
+
*/
|
|
16
|
+
export interface LagoonSkill {
|
|
17
|
+
/** Unique identifier (kebab-case) */
|
|
18
|
+
name: string;
|
|
19
|
+
/** Human-readable description for skill selection */
|
|
20
|
+
description: string;
|
|
21
|
+
/** Keywords/phrases that trigger this skill */
|
|
22
|
+
triggers: string[];
|
|
23
|
+
/** Target audience for this skill */
|
|
24
|
+
audience: SkillAudience;
|
|
25
|
+
/** Main skill instructions (content from SKILL.md) */
|
|
26
|
+
instructions: string;
|
|
27
|
+
/** Optional supporting resources */
|
|
28
|
+
resources?: SkillResources;
|
|
29
|
+
/** Skill metadata */
|
|
30
|
+
metadata: SkillMetadata;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Target audience categories for skills
|
|
34
|
+
*/
|
|
35
|
+
export type SkillAudience = 'customer-new' | 'customer-existing' | 'customer-advanced' | 'internal-ops' | 'internal-bd' | 'internal-support';
|
|
36
|
+
/**
|
|
37
|
+
* Supporting resources for a skill
|
|
38
|
+
*/
|
|
39
|
+
export interface SkillResources {
|
|
40
|
+
/** Tool usage patterns and parameters */
|
|
41
|
+
toolSequences?: string;
|
|
42
|
+
/** Domain-specific interpretation guides */
|
|
43
|
+
interpretation?: string;
|
|
44
|
+
/** Threshold definitions and criteria */
|
|
45
|
+
thresholds?: string;
|
|
46
|
+
/** Report templates */
|
|
47
|
+
templates?: string;
|
|
48
|
+
/** Additional named resources */
|
|
49
|
+
[key: string]: string | undefined;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Skill metadata for versioning and categorization
|
|
53
|
+
*/
|
|
54
|
+
export interface SkillMetadata {
|
|
55
|
+
/** Skill version (semver) */
|
|
56
|
+
version: string;
|
|
57
|
+
/** Category for grouping */
|
|
58
|
+
category: SkillCategory;
|
|
59
|
+
/** MCP tools this skill primarily uses */
|
|
60
|
+
primaryTools: string[];
|
|
61
|
+
/** Estimated context tokens when loaded */
|
|
62
|
+
estimatedTokens: number;
|
|
63
|
+
/** Last updated date */
|
|
64
|
+
lastUpdated: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Skill categories for organization
|
|
68
|
+
*/
|
|
69
|
+
export type SkillCategory = 'onboarding' | 'portfolio' | 'risk' | 'operations' | 'support' | 'strategy';
|
|
70
|
+
/**
|
|
71
|
+
* Result of skill detection
|
|
72
|
+
*/
|
|
73
|
+
export interface SkillDetectionResult {
|
|
74
|
+
/** The detected skill, if any */
|
|
75
|
+
skill: LagoonSkill | null;
|
|
76
|
+
/** Confidence score (0-1) */
|
|
77
|
+
confidence: number;
|
|
78
|
+
/** Matched triggers */
|
|
79
|
+
matchedTriggers: string[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Options for skill loading
|
|
83
|
+
*/
|
|
84
|
+
export interface SkillLoadOptions {
|
|
85
|
+
/** Include supporting resources */
|
|
86
|
+
includeResources?: boolean;
|
|
87
|
+
/** Maximum token budget (will truncate if exceeded) */
|
|
88
|
+
maxTokens?: number;
|
|
89
|
+
/** Filter by audience */
|
|
90
|
+
audience?: SkillAudience[];
|
|
91
|
+
/** Filter by category */
|
|
92
|
+
category?: SkillCategory[];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Skill registry for managing available skills
|
|
96
|
+
*/
|
|
97
|
+
export interface SkillRegistry {
|
|
98
|
+
/** All registered skills */
|
|
99
|
+
skills: LagoonSkill[];
|
|
100
|
+
/** Get skill by name */
|
|
101
|
+
getSkill(name: string): LagoonSkill | undefined;
|
|
102
|
+
/** Detect relevant skill for a message */
|
|
103
|
+
detectSkill(message: string): SkillDetectionResult;
|
|
104
|
+
/** Get skills filtered by options */
|
|
105
|
+
getSkills(options?: SkillLoadOptions): LagoonSkill[];
|
|
106
|
+
/** Get skill content formatted for system prompt */
|
|
107
|
+
getSkillPrompt(name: string, options?: SkillLoadOptions): string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Options for building a skill-aware system prompt
|
|
111
|
+
*/
|
|
112
|
+
export interface BuildPromptOptions {
|
|
113
|
+
/** Minimum confidence threshold (0-1) to include a skill. Default: 0.5 */
|
|
114
|
+
confidenceThreshold?: number;
|
|
115
|
+
/** Include skill resources in the prompt. Default: true */
|
|
116
|
+
includeResources?: boolean;
|
|
117
|
+
/** Maximum tokens for skill content. Default: no limit */
|
|
118
|
+
maxTokens?: number;
|
|
119
|
+
/** Custom separator between base prompt and skill. Default: '\n\n---\n\n' */
|
|
120
|
+
separator?: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Result of building a skill-aware prompt
|
|
124
|
+
*/
|
|
125
|
+
export interface BuildPromptResult {
|
|
126
|
+
/** The complete system prompt with skill injected (if matched) */
|
|
127
|
+
systemPrompt: string;
|
|
128
|
+
/** Name of the detected skill, or null if none matched */
|
|
129
|
+
detectedSkill: string | null;
|
|
130
|
+
/** Confidence score of the detection (0 if no skill) */
|
|
131
|
+
confidence: number;
|
|
132
|
+
/** Triggers that matched in the user message */
|
|
133
|
+
matchedTriggers: string[];
|
|
134
|
+
/** Estimated tokens added by the skill (0 if no skill) */
|
|
135
|
+
tokensAdded: number;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lagoon Skills Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Skills are procedural knowledge modules that teach Claude HOW to use
|
|
5
|
+
* Lagoon MCP tools effectively. They complement MCP's data connectivity
|
|
6
|
+
* with domain expertise and workflow guidance.
|
|
7
|
+
*
|
|
8
|
+
* @module skills/types
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lagoon-protocol/lagoon-mcp",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "MCP server for Lagoon DeFi vault analytics - FOR INFORMATIONAL USE ONLY, NOT FINANCIAL ADVICE. Natural language access to vault data, portfolios, and performance metrics",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./skills": {
|
|
14
|
+
"types": "./dist/skills/index.d.ts",
|
|
15
|
+
"import": "./dist/skills/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./tools": {
|
|
18
|
+
"types": "./dist/tools/registry.d.ts",
|
|
19
|
+
"import": "./dist/tools/registry.js"
|
|
20
|
+
},
|
|
21
|
+
"./core": {
|
|
22
|
+
"types": "./dist/core/container.d.ts",
|
|
23
|
+
"import": "./dist/core/container.js"
|
|
24
|
+
},
|
|
25
|
+
"./cache": {
|
|
26
|
+
"types": "./dist/core/cache-adapter.d.ts",
|
|
27
|
+
"import": "./dist/core/cache-adapter.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
8
30
|
"bin": {
|
|
9
31
|
"lagoon-mcp": "./dist/index.js"
|
|
10
32
|
},
|
|
11
33
|
"files": [
|
|
12
34
|
"dist",
|
|
35
|
+
"!dist/**/__tests__",
|
|
36
|
+
"!dist/**/*.test.*",
|
|
37
|
+
"skills",
|
|
13
38
|
"README.md",
|
|
14
39
|
"LICENSE"
|
|
15
40
|
],
|
package/skills/README.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Lagoon Skills
|
|
2
|
+
|
|
3
|
+
Claude Skills that enhance the Lagoon MCP with procedural knowledge and domain expertise.
|
|
4
|
+
|
|
5
|
+
## What are Skills?
|
|
6
|
+
|
|
7
|
+
Skills are specialized instruction sets that teach Claude HOW to use MCP tools effectively. While MCP provides data connectivity (tools to fetch vault data, analyze risk, etc.), Skills provide procedural knowledge (when to use which tool, how to interpret results for different audiences).
|
|
8
|
+
|
|
9
|
+
**MCP (Data Layer)** + **Skills (Knowledge Layer)** = **Domain Expert Experience**
|
|
10
|
+
|
|
11
|
+
## Available Skills
|
|
12
|
+
|
|
13
|
+
### Customer-Facing Skills
|
|
14
|
+
|
|
15
|
+
| Skill | Audience | Purpose | Status |
|
|
16
|
+
|-------|----------|---------|--------|
|
|
17
|
+
| `lagoon-onboarding` | New Users | Guide new users to first vault selection | Active |
|
|
18
|
+
| `lagoon-portfolio-review` | Existing Users | Quarterly portfolio health checks | Active |
|
|
19
|
+
| `lagoon-risk-expert` | Advanced Users | Comprehensive risk evaluation | Active |
|
|
20
|
+
|
|
21
|
+
### Internal Team Skills
|
|
22
|
+
|
|
23
|
+
| Skill | Audience | Purpose | Status |
|
|
24
|
+
|-------|----------|---------|--------|
|
|
25
|
+
| `lagoon-protocol-health` | Operations | Daily/weekly KPI monitoring | Active |
|
|
26
|
+
| `lagoon-curator-evaluation` | Business Development | Partnership assessment with scoring | Active |
|
|
27
|
+
| `lagoon-customer-support` | Support Team | Support response templates | Active |
|
|
28
|
+
|
|
29
|
+
## Skill Structure
|
|
30
|
+
|
|
31
|
+
Each skill follows the Claude Skills specification:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
skill-name/
|
|
35
|
+
├── SKILL.md # Required: Main instructions with YAML frontmatter
|
|
36
|
+
└── [optional files] # Supporting resources, examples, scripts
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### SKILL.md Format
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
---
|
|
43
|
+
name: skill-name
|
|
44
|
+
description: Clear description of purpose and activation triggers
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
# Skill Title
|
|
48
|
+
|
|
49
|
+
[Instructions that Claude follows when this skill is active]
|
|
50
|
+
|
|
51
|
+
## When This Skill Activates
|
|
52
|
+
[Trigger conditions]
|
|
53
|
+
|
|
54
|
+
## Workflow
|
|
55
|
+
[Step-by-step procedures]
|
|
56
|
+
|
|
57
|
+
## Communication Guidelines
|
|
58
|
+
[Tone, language, disclaimers]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Using Skills
|
|
62
|
+
|
|
63
|
+
### With Claude.ai
|
|
64
|
+
|
|
65
|
+
1. Navigate to Settings > Features > Skills
|
|
66
|
+
2. Upload the skill folder or individual SKILL.md
|
|
67
|
+
3. Skills activate automatically based on conversation context
|
|
68
|
+
|
|
69
|
+
### With Claude Code
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Install from marketplace (when available)
|
|
73
|
+
/plugin marketplace add lagoon/skills
|
|
74
|
+
|
|
75
|
+
# Or install locally
|
|
76
|
+
/plugin install ./skills/lagoon-onboarding
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### With Claude Desktop
|
|
80
|
+
|
|
81
|
+
Add to your Claude configuration:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"skills": [
|
|
86
|
+
{
|
|
87
|
+
"path": "/path/to/lagoon-mcp/skills/lagoon-onboarding"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Relationship to MCP Prompts
|
|
94
|
+
|
|
95
|
+
The Lagoon MCP includes 6 prompts that provide guidance frameworks. Skills extend this by:
|
|
96
|
+
|
|
97
|
+
1. **Adding procedural detail**: Exact tool sequences and parameters
|
|
98
|
+
2. **Adapting to audiences**: Different guidance for beginners vs experts
|
|
99
|
+
3. **Progressive loading**: Skills load only when relevant (~100 tokens initially)
|
|
100
|
+
4. **Supporting resources**: Additional files for complex workflows
|
|
101
|
+
|
|
102
|
+
### Migration Path
|
|
103
|
+
|
|
104
|
+
| MCP Prompt | Recommended Skill | Enhancement |
|
|
105
|
+
|------------|-------------------|-------------|
|
|
106
|
+
| `onboarding-first-vault` | `lagoon-onboarding` | Full workflow, profile assessment |
|
|
107
|
+
| `financial-analysis` | `lagoon-portfolio-review` | Structured review process |
|
|
108
|
+
| `curator-performance` | `lagoon-curator-evaluation` | Scoring rubric, deal-breakers |
|
|
109
|
+
| `protocol-overview` | `lagoon-protocol-health` | KPI thresholds, alerting |
|
|
110
|
+
| `portfolio-optimization` | `lagoon-portfolio-review` | MPT strategy guidance |
|
|
111
|
+
| `competitor-comparison` | (future) | Methodology, data sources |
|
|
112
|
+
|
|
113
|
+
## Creating New Skills
|
|
114
|
+
|
|
115
|
+
1. Create a folder: `skills/your-skill-name/`
|
|
116
|
+
2. Add `SKILL.md` with frontmatter and instructions
|
|
117
|
+
3. Add supporting resources as needed
|
|
118
|
+
4. Test with Claude to verify activation triggers
|
|
119
|
+
|
|
120
|
+
### Best Practices
|
|
121
|
+
|
|
122
|
+
- **Clear triggers**: Define specific activation conditions
|
|
123
|
+
- **Tool sequences**: Document exact tool workflows
|
|
124
|
+
- **User profiles**: Adapt guidance to different audience levels
|
|
125
|
+
- **Disclaimers**: Include appropriate legal/risk disclaimers
|
|
126
|
+
- **Examples**: Provide sample conversations and outputs
|
|
127
|
+
|
|
128
|
+
## Maintenance
|
|
129
|
+
|
|
130
|
+
Skills should be versioned alongside the MCP:
|
|
131
|
+
- Update tool references when MCP tools change
|
|
132
|
+
- Review and update risk thresholds periodically
|
|
133
|
+
- Add new skills based on user feedback and usage patterns
|
|
134
|
+
|
|
135
|
+
## Contributing
|
|
136
|
+
|
|
137
|
+
When creating new skills:
|
|
138
|
+
1. Follow the existing structure and naming conventions
|
|
139
|
+
2. Include comprehensive activation triggers
|
|
140
|
+
3. Test with real MCP tool outputs
|
|
141
|
+
4. Document any dependencies on specific MCP versions
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lagoon-curator-evaluation
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Systematically assess curators for partnership decisions using standardized scoring criteria
|
|
5
|
+
audience: internal-bd
|
|
6
|
+
category: operations
|
|
7
|
+
triggers:
|
|
8
|
+
- curator evaluation
|
|
9
|
+
- evaluate curator
|
|
10
|
+
- curator assessment
|
|
11
|
+
- curator performance
|
|
12
|
+
- curator due diligence
|
|
13
|
+
- curator review
|
|
14
|
+
- partnership assessment
|
|
15
|
+
- partnership evaluation
|
|
16
|
+
- curator track record
|
|
17
|
+
- curator analysis
|
|
18
|
+
- assess curator
|
|
19
|
+
- curator scoring
|
|
20
|
+
- curator comparison
|
|
21
|
+
- compare curators
|
|
22
|
+
tools:
|
|
23
|
+
- query_graphql
|
|
24
|
+
- search_vaults
|
|
25
|
+
- get_vault_performance
|
|
26
|
+
- analyze_risk
|
|
27
|
+
estimated_tokens: 2600
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# Lagoon Curator Evaluation: Partnership Assessment Guide
|
|
31
|
+
|
|
32
|
+
You are a business development analyst helping the Lagoon team evaluate curators for partnership decisions. Your goal is to provide systematic, data-driven assessments using standardized criteria.
|
|
33
|
+
|
|
34
|
+
## When This Skill Activates
|
|
35
|
+
|
|
36
|
+
This skill is relevant when internal users:
|
|
37
|
+
- Need to evaluate a new curator for partnership
|
|
38
|
+
- Want to assess an existing curator's performance
|
|
39
|
+
- Request due diligence on a strategy manager
|
|
40
|
+
- Need to compare curators for partnership priority
|
|
41
|
+
- Ask about curator track records or reliability
|
|
42
|
+
|
|
43
|
+
## Step 1: Curator Information Gathering
|
|
44
|
+
|
|
45
|
+
### Basic Curator Data
|
|
46
|
+
**Tool**: `query_graphql`
|
|
47
|
+
|
|
48
|
+
Query curator details:
|
|
49
|
+
```graphql
|
|
50
|
+
query GetCurator($curatorId: ID!) {
|
|
51
|
+
curator(id: $curatorId) {
|
|
52
|
+
id
|
|
53
|
+
name
|
|
54
|
+
description
|
|
55
|
+
vaults {
|
|
56
|
+
id
|
|
57
|
+
name
|
|
58
|
+
state {
|
|
59
|
+
totalAssetsUsd
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Curator's Vaults
|
|
67
|
+
**Tool**: `search_vaults`
|
|
68
|
+
|
|
69
|
+
Get all vaults managed by the curator:
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"filters": {
|
|
73
|
+
"curatorIds_contains": ["curator-id"]
|
|
74
|
+
},
|
|
75
|
+
"orderBy": "totalAssetsUsd",
|
|
76
|
+
"orderDirection": "desc",
|
|
77
|
+
"responseFormat": "summary"
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Step 2: Performance Analysis
|
|
82
|
+
|
|
83
|
+
### Per-Vault Performance
|
|
84
|
+
**Tool**: `get_vault_performance`
|
|
85
|
+
|
|
86
|
+
For each curator vault:
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"vaultAddress": "0x...",
|
|
90
|
+
"chainId": 1,
|
|
91
|
+
"timeRange": "90d",
|
|
92
|
+
"responseFormat": "detailed"
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Performance Metrics Summary
|
|
97
|
+
```
|
|
98
|
+
CURATOR PERFORMANCE OVERVIEW
|
|
99
|
+
============================
|
|
100
|
+
|
|
101
|
+
Total AUM: $[X]M across [N] vaults
|
|
102
|
+
Average APR: [X]%
|
|
103
|
+
APR Range: [X]% - [X]%
|
|
104
|
+
|
|
105
|
+
Vault Performance Distribution:
|
|
106
|
+
| Vault | TVL | APR | Risk | Performance |
|
|
107
|
+
|-------|-----|-----|------|-------------|
|
|
108
|
+
| [Name] | $[X]M | [X]% | [X] | [Rating] |
|
|
109
|
+
|
|
110
|
+
Performance vs Protocol Average:
|
|
111
|
+
- APR: [+/-X]% vs protocol average
|
|
112
|
+
- Risk: [+/-X] vs protocol average
|
|
113
|
+
- TVL Growth: [+/-X]% vs protocol average
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Step 3: Risk Assessment
|
|
117
|
+
|
|
118
|
+
### Per-Vault Risk Analysis
|
|
119
|
+
**Tool**: `analyze_risk`
|
|
120
|
+
|
|
121
|
+
For each curator vault:
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"vaultAddress": "0x...",
|
|
125
|
+
"chainId": 1,
|
|
126
|
+
"responseFormat": "detailed"
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Risk Profile Summary
|
|
131
|
+
```
|
|
132
|
+
CURATOR RISK PROFILE
|
|
133
|
+
====================
|
|
134
|
+
|
|
135
|
+
Average Risk Score: [X]/100
|
|
136
|
+
Risk Range: [X] - [X]
|
|
137
|
+
|
|
138
|
+
Risk Distribution:
|
|
139
|
+
- Low Risk (<30): [N] vaults ([X]% of AUM)
|
|
140
|
+
- Medium Risk (30-60): [N] vaults ([X]% of AUM)
|
|
141
|
+
- High Risk (>60): [N] vaults ([X]% of AUM)
|
|
142
|
+
|
|
143
|
+
Risk Factors:
|
|
144
|
+
- Strategy Complexity: [Low/Medium/High]
|
|
145
|
+
- Asset Diversification: [Low/Medium/High]
|
|
146
|
+
- Historical Volatility: [Low/Medium/High]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Step 4: Scoring Framework
|
|
150
|
+
|
|
151
|
+
### Evaluation Criteria
|
|
152
|
+
|
|
153
|
+
Use this standardized scoring rubric:
|
|
154
|
+
|
|
155
|
+
| Criteria | Weight | Score (1-10) | Weighted |
|
|
156
|
+
|----------|--------|--------------|----------|
|
|
157
|
+
| **Track Record** | 25% | [X] | [X] |
|
|
158
|
+
| **AUM & Growth** | 20% | [X] | [X] |
|
|
159
|
+
| **Performance** | 20% | [X] | [X] |
|
|
160
|
+
| **Risk Management** | 20% | [X] | [X] |
|
|
161
|
+
| **Strategy Clarity** | 15% | [X] | [X] |
|
|
162
|
+
| **TOTAL** | 100% | - | [X]/10 |
|
|
163
|
+
|
|
164
|
+
### Scoring Guidelines
|
|
165
|
+
|
|
166
|
+
**Track Record (25%)**
|
|
167
|
+
- 9-10: >2 years active, consistent performance, no incidents
|
|
168
|
+
- 7-8: 1-2 years active, mostly consistent
|
|
169
|
+
- 5-6: 6-12 months active, learning curve visible
|
|
170
|
+
- 3-4: 3-6 months active, limited history
|
|
171
|
+
- 1-2: <3 months active or concerning history
|
|
172
|
+
|
|
173
|
+
**AUM & Growth (20%)**
|
|
174
|
+
- 9-10: >$10M AUM, consistent growth
|
|
175
|
+
- 7-8: $5-10M AUM, positive growth
|
|
176
|
+
- 5-6: $1-5M AUM, stable
|
|
177
|
+
- 3-4: $500K-1M AUM, early stage
|
|
178
|
+
- 1-2: <$500K AUM or declining
|
|
179
|
+
|
|
180
|
+
**Performance (20%)**
|
|
181
|
+
- 9-10: Top quartile APR, consistent delivery
|
|
182
|
+
- 7-8: Above average APR, reliable
|
|
183
|
+
- 5-6: Average APR, meets expectations
|
|
184
|
+
- 3-4: Below average, inconsistent
|
|
185
|
+
- 1-2: Poor performance, frequent misses
|
|
186
|
+
|
|
187
|
+
**Risk Management (20%)**
|
|
188
|
+
- 9-10: Excellent risk controls, low volatility
|
|
189
|
+
- 7-8: Good risk management, appropriate for strategy
|
|
190
|
+
- 5-6: Adequate, some concerns
|
|
191
|
+
- 3-4: Elevated risk, needs improvement
|
|
192
|
+
- 1-2: Poor risk management, high concern
|
|
193
|
+
|
|
194
|
+
**Strategy Clarity (15%)**
|
|
195
|
+
- 9-10: Crystal clear strategy, excellent documentation
|
|
196
|
+
- 7-8: Clear strategy, good communication
|
|
197
|
+
- 5-6: Adequate explanation, some gaps
|
|
198
|
+
- 3-4: Vague strategy, poor documentation
|
|
199
|
+
- 1-2: Unclear or opaque strategy
|
|
200
|
+
|
|
201
|
+
## Step 5: Red Flags & Deal Breakers
|
|
202
|
+
|
|
203
|
+
### Immediate Disqualifiers
|
|
204
|
+
- Anonymous or unverifiable identity
|
|
205
|
+
- History of security incidents or exploits
|
|
206
|
+
- Regulatory issues or legal concerns
|
|
207
|
+
- Significant unexplained TVL declines
|
|
208
|
+
- Pattern of underdelivering on stated APR
|
|
209
|
+
|
|
210
|
+
### Yellow Flags (Require Explanation)
|
|
211
|
+
- Less than 6 months track record
|
|
212
|
+
- Single vault with >80% of AUM
|
|
213
|
+
- High risk scores (>60) without clear justification
|
|
214
|
+
- Unusual APR patterns (spikes/crashes)
|
|
215
|
+
- Limited strategy documentation
|
|
216
|
+
|
|
217
|
+
### Green Flags (Positive Indicators)
|
|
218
|
+
- Verified team with public profiles
|
|
219
|
+
- Consistent performance over >1 year
|
|
220
|
+
- Diversified vault offerings
|
|
221
|
+
- Clear and responsive communication
|
|
222
|
+
- Growing AUM without aggressive marketing
|
|
223
|
+
|
|
224
|
+
## Step 6: Partnership Recommendation
|
|
225
|
+
|
|
226
|
+
### Summary Template
|
|
227
|
+
```
|
|
228
|
+
CURATOR EVALUATION SUMMARY
|
|
229
|
+
==========================
|
|
230
|
+
|
|
231
|
+
Curator: [Name]
|
|
232
|
+
Evaluation Date: [Date]
|
|
233
|
+
Analyst: [Name]
|
|
234
|
+
|
|
235
|
+
OVERALL SCORE: [X]/10 - [STRONG/MODERATE/WEAK/NOT RECOMMENDED]
|
|
236
|
+
|
|
237
|
+
KEY FINDINGS
|
|
238
|
+
------------
|
|
239
|
+
Strengths:
|
|
240
|
+
+ [Strength 1]
|
|
241
|
+
+ [Strength 2]
|
|
242
|
+
|
|
243
|
+
Concerns:
|
|
244
|
+
- [Concern 1]
|
|
245
|
+
- [Concern 2]
|
|
246
|
+
|
|
247
|
+
RED FLAGS
|
|
248
|
+
---------
|
|
249
|
+
[List any red flags or "None identified"]
|
|
250
|
+
|
|
251
|
+
RECOMMENDATION
|
|
252
|
+
--------------
|
|
253
|
+
[ ] PROCEED - Strong partnership candidate
|
|
254
|
+
[ ] PROCEED WITH CONDITIONS - Address specific concerns
|
|
255
|
+
[ ] MONITOR - Not ready, reassess in [timeframe]
|
|
256
|
+
[ ] DECLINE - Does not meet partnership criteria
|
|
257
|
+
|
|
258
|
+
CONDITIONS/NEXT STEPS
|
|
259
|
+
---------------------
|
|
260
|
+
1. [Action item 1]
|
|
261
|
+
2. [Action item 2]
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Decision Matrix
|
|
265
|
+
|
|
266
|
+
| Score Range | Recommendation |
|
|
267
|
+
|-------------|----------------|
|
|
268
|
+
| 8.0-10.0 | Strong candidate, proceed |
|
|
269
|
+
| 6.5-7.9 | Good candidate, minor conditions |
|
|
270
|
+
| 5.0-6.4 | Moderate candidate, significant conditions |
|
|
271
|
+
| 3.5-4.9 | Weak candidate, consider monitoring |
|
|
272
|
+
| <3.5 | Not recommended at this time |
|
|
273
|
+
|
|
274
|
+
## Communication Guidelines
|
|
275
|
+
|
|
276
|
+
### Internal Reporting Standards
|
|
277
|
+
- Use objective, data-driven language
|
|
278
|
+
- Cite specific metrics and timeframes
|
|
279
|
+
- Document all sources of information
|
|
280
|
+
- Flag any data limitations or gaps
|
|
281
|
+
- Provide clear, actionable recommendations
|