@intentsolutionsio/jeremy-genkit-pro 2.1.0
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/.claude-plugin/plugin.json +22 -0
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/agents/genkit-flow-architect.md +206 -0
- package/commands/init-genkit-project.md +356 -0
- package/package.json +44 -0
- package/skills/genkit-production-expert/SKILL.md +81 -0
- package/skills/genkit-production-expert/references/ARD.md +71 -0
- package/skills/genkit-production-expert/references/PRD.md +70 -0
- package/skills/genkit-production-expert/references/errors.md +57 -0
- package/skills/genkit-production-expert/references/examples.md +493 -0
- package/skills/genkit-production-expert/references/how-it-works.md +55 -0
- package/skills/genkit-production-expert/references/production-best-practices-applied.md +40 -0
- package/skills/genkit-production-expert/references/workflow-examples.md +105 -0
- package/skills/genkit-production-expert/scripts/init-genkit.sh +77 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "jeremy-genkit-pro",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "Firebase Genkit expert for production-ready AI workflows with RAG and tool calling",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Jeremy Longshore",
|
|
7
|
+
"email": "jeremy@intentsolutions.io"
|
|
8
|
+
},
|
|
9
|
+
"repository": "https://github.com/jeremylongshore/claude-code-plugins",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"firebase",
|
|
13
|
+
"genkit",
|
|
14
|
+
"ai-flows",
|
|
15
|
+
"rag",
|
|
16
|
+
"monitoring",
|
|
17
|
+
"gemini",
|
|
18
|
+
"vertex-ai",
|
|
19
|
+
"vector-search",
|
|
20
|
+
"production-ai"
|
|
21
|
+
]
|
|
22
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Jeremy Longshore
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Firebase Genkit Pro
|
|
2
|
+
|
|
3
|
+
**Production-grade Firebase Genkit specialist with expert agents for AI flows, RAG systems, monitoring, and multi-language deployment across Node.js, Python, and Go.**
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Firebase Genkit Pro is a comprehensive Claude Code plugin providing expert guidance for building production-ready AI applications using Firebase Genkit 1.0+. This plugin includes specialized agents and auto-activating skills for the complete development lifecycle from initialization to production deployment.
|
|
8
|
+
|
|
9
|
+
## What's Included
|
|
10
|
+
|
|
11
|
+
### 🤖 Specialized Agents
|
|
12
|
+
|
|
13
|
+
- **genkit-flow-architect**: Expert in designing multi-step AI workflows, RAG systems, and tool calling patterns
|
|
14
|
+
|
|
15
|
+
### 📋 Slash Commands
|
|
16
|
+
|
|
17
|
+
- `/init-genkit-project`: Initialize new Genkit projects with best practices for Node.js, Python, or Go
|
|
18
|
+
|
|
19
|
+
### ✨ Agent Skills (Auto-Activating)
|
|
20
|
+
|
|
21
|
+
- **genkit-production-expert**: Automatically activates for Genkit-related tasks
|
|
22
|
+
- **Trigger phrases**: "create genkit flow", "implement RAG", "deploy genkit", "gemini integration"
|
|
23
|
+
- **Allowed tools**: Read, Write, Edit, Grep, Glob, Bash
|
|
24
|
+
- **Version**: 1.0.0 (2026 schema compliant)
|
|
25
|
+
|
|
26
|
+
## Latest Genkit Versions Supported
|
|
27
|
+
|
|
28
|
+
- **Node.js**: 1.0 (Stable, Feb 2025)
|
|
29
|
+
- **Python**: Alpha (April 2025)
|
|
30
|
+
- **Go**: 1.0 (Stable, Sep 2025)
|
|
31
|
+
|
|
32
|
+
## Features
|
|
33
|
+
|
|
34
|
+
✅ Multi-language support (TypeScript/JavaScript, Python, Go)
|
|
35
|
+
✅ RAG implementation with vector search
|
|
36
|
+
✅ Tool calling and function integration
|
|
37
|
+
✅ Gemini 2.5 Pro/Flash integration
|
|
38
|
+
✅ AI monitoring with Firebase Console
|
|
39
|
+
✅ Production deployment to Firebase Functions or Cloud Run
|
|
40
|
+
✅ OpenTelemetry tracing
|
|
41
|
+
✅ Cost optimization strategies
|
|
42
|
+
✅ Auto-activating skills with clear trigger phrases
|
|
43
|
+
|
|
44
|
+
## Installation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
/plugin install firebase-genkit-pro@claude-code-plugins-plus
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Quick Start
|
|
51
|
+
|
|
52
|
+
### Initialize a New Project
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
/init-genkit-project
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Then follow the prompts to:
|
|
59
|
+
1. Select your language (Node.js/Python/Go)
|
|
60
|
+
2. Configure project structure
|
|
61
|
+
3. Set up environment variables
|
|
62
|
+
4. Install dependencies
|
|
63
|
+
|
|
64
|
+
### Natural Language Usage
|
|
65
|
+
|
|
66
|
+
The skill auto-activates when you mention Genkit tasks:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
"Create a Genkit flow for question answering with Gemini 2.5 Flash"
|
|
70
|
+
"Implement RAG with vector search for our documentation"
|
|
71
|
+
"Deploy this Genkit app to Firebase with AI monitoring enabled"
|
|
72
|
+
"Add tool calling to my Genkit agent for weather and calendar"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Architecture
|
|
76
|
+
|
|
77
|
+
### Genkit Flow Pattern
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
const myFlow = ai.defineFlow(
|
|
81
|
+
{
|
|
82
|
+
name: 'myFlow',
|
|
83
|
+
inputSchema: z.object({ input: z.string() }),
|
|
84
|
+
outputSchema: z.object({ output: z.string() }),
|
|
85
|
+
},
|
|
86
|
+
async (input) => {
|
|
87
|
+
const { text } = await ai.generate({
|
|
88
|
+
model: gemini25Flash,
|
|
89
|
+
prompt: `Process: ${input.input}`,
|
|
90
|
+
});
|
|
91
|
+
return { output: text };
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### RAG Implementation
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
const ragFlow = ai.defineFlow(async (query) => {
|
|
100
|
+
// 1. Retrieve relevant documents
|
|
101
|
+
const docs = await retrieve({
|
|
102
|
+
retriever: myRetriever,
|
|
103
|
+
query,
|
|
104
|
+
config: { k: 5 },
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// 2. Generate answer with context
|
|
108
|
+
const { text } = await ai.generate({
|
|
109
|
+
model: gemini25Flash,
|
|
110
|
+
prompt: `Context: ${docs}\n\nQuestion: ${query}`,
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
return text;
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Use Cases
|
|
118
|
+
|
|
119
|
+
- **Customer Support**: RAG-based Q&A systems
|
|
120
|
+
- **Content Generation**: Multi-step content workflows
|
|
121
|
+
- **Data Processing**: Extract, transform, and analyze with AI
|
|
122
|
+
- **Agent Systems**: Tool-calling agents for complex tasks
|
|
123
|
+
- **Search Enhancement**: Semantic search with embeddings
|
|
124
|
+
|
|
125
|
+
## Integration with Other Plugins
|
|
126
|
+
|
|
127
|
+
### Works with ADK Plugin
|
|
128
|
+
|
|
129
|
+
For complex multi-agent orchestration:
|
|
130
|
+
- Use Genkit for specialized AI flows
|
|
131
|
+
- Use ADK for orchestrating multiple flows
|
|
132
|
+
- Communication via A2A protocol
|
|
133
|
+
|
|
134
|
+
### Works with Vertex AI Validator
|
|
135
|
+
|
|
136
|
+
For production deployment:
|
|
137
|
+
- Genkit implements the flows
|
|
138
|
+
- Validator ensures production readiness
|
|
139
|
+
- Validates monitoring and security
|
|
140
|
+
|
|
141
|
+
## Best Practices
|
|
142
|
+
|
|
143
|
+
1. **Always use typed schemas** (Zod/Pydantic/structs)
|
|
144
|
+
2. **Enable AI monitoring** for production deployments
|
|
145
|
+
3. **Implement error handling** for all flows
|
|
146
|
+
4. **Use context caching** for repeated prompts
|
|
147
|
+
5. **Monitor token usage** to control costs
|
|
148
|
+
6. **Test locally** with Genkit Developer UI
|
|
149
|
+
7. **Version control** flow definitions
|
|
150
|
+
|
|
151
|
+
## Monitoring & Debugging
|
|
152
|
+
|
|
153
|
+
Access Genkit Developer UI during development:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
npm run genkit:dev
|
|
157
|
+
# Opens http://localhost:4000
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
View production monitoring in Firebase Console:
|
|
161
|
+
- Token consumption
|
|
162
|
+
- Latency metrics
|
|
163
|
+
- Error rates
|
|
164
|
+
- Custom traces
|
|
165
|
+
|
|
166
|
+
## Production Deployment
|
|
167
|
+
|
|
168
|
+
### Firebase Functions
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
firebase deploy --only functions
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Google Cloud Run
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
gcloud run deploy genkit-app \
|
|
178
|
+
--source . \
|
|
179
|
+
--region us-central1 \
|
|
180
|
+
--allow-unauthenticated
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Requirements
|
|
184
|
+
|
|
185
|
+
- Node.js 18+ (for TypeScript/JavaScript)
|
|
186
|
+
- Python 3.9+ (for Python)
|
|
187
|
+
- Go 1.21+ (for Go)
|
|
188
|
+
- Google Cloud Project
|
|
189
|
+
- Firebase account (for Firebase deployment)
|
|
190
|
+
- Google API Key or Vertex AI credentials
|
|
191
|
+
|
|
192
|
+
## License
|
|
193
|
+
|
|
194
|
+
MIT
|
|
195
|
+
|
|
196
|
+
## Support
|
|
197
|
+
|
|
198
|
+
- Documentation: https://genkit.dev/
|
|
199
|
+
- Issues: https://github.com/jeremylongshore/claude-code-plugins/issues
|
|
200
|
+
- Discussions: https://github.com/jeremylongshore/claude-code-plugins/discussions
|
|
201
|
+
|
|
202
|
+
## Version
|
|
203
|
+
|
|
204
|
+
2.1.0 (2026) - Accuracy audit: expanded error docs, fixed repo references, added effort metadata
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: genkit-flow-architect
|
|
3
|
+
description: >
|
|
4
|
+
Expert Firebase Genkit flow architect specializing in designing...
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
# Genkit Flow Architect
|
|
8
|
+
|
|
9
|
+
You are an expert Firebase Genkit architect specializing in designing, implementing, and debugging production-grade AI flows using Genkit 1.0+ across Node.js, Python (Alpha), and Go.
|
|
10
|
+
|
|
11
|
+
## Core Responsibilities
|
|
12
|
+
|
|
13
|
+
### 1. Flow Design & Architecture
|
|
14
|
+
- Design multi-step AI workflows using Genkit's flow primitives
|
|
15
|
+
- Implement structured generation with JSON schemas and custom formats
|
|
16
|
+
- Architect tool/function calling for complex agent-driven tasks
|
|
17
|
+
- Design RAG (Retrieval Augmented Generation) systems with vector search
|
|
18
|
+
- Implement context caching and compression strategies
|
|
19
|
+
|
|
20
|
+
### 2. Model Integration
|
|
21
|
+
- Configure Gemini models (2.5 Pro, 2.5 Flash) via Vertex AI plugin
|
|
22
|
+
- Integrate Imagen 2 for image generation tasks
|
|
23
|
+
- Set up custom model providers (OpenAI, Anthropic, local LLMs)
|
|
24
|
+
- Implement model fallback and retry strategies
|
|
25
|
+
- Configure temperature, top-p, and other generation parameters
|
|
26
|
+
|
|
27
|
+
### 3. Production Deployment
|
|
28
|
+
- Deploy to Firebase with AI monitoring enabled
|
|
29
|
+
- Deploy to Google Cloud Run with proper scaling
|
|
30
|
+
- Configure OpenTelemetry tracing for observability
|
|
31
|
+
- Set up Firebase Console monitoring dashboards
|
|
32
|
+
- Implement error handling and graceful degradation
|
|
33
|
+
|
|
34
|
+
### 4. Language-Specific Expertise
|
|
35
|
+
|
|
36
|
+
#### Node.js/TypeScript (Genkit 1.0)
|
|
37
|
+
```typescript
|
|
38
|
+
import { genkit, z } from 'genkit';
|
|
39
|
+
import { googleAI, gemini25Pro, textEmbedding004 } from '@genkit-ai/googleai';
|
|
40
|
+
|
|
41
|
+
const ai = genkit({
|
|
42
|
+
plugins: [googleAI()],
|
|
43
|
+
model: gemini25Pro,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const myFlow = ai.defineFlow(
|
|
47
|
+
{
|
|
48
|
+
name: 'menuSuggestionFlow',
|
|
49
|
+
inputSchema: z.string(),
|
|
50
|
+
outputSchema: z.string(),
|
|
51
|
+
},
|
|
52
|
+
async (subject) => {
|
|
53
|
+
const { text } = await ai.generate({
|
|
54
|
+
model: gemini25Pro,
|
|
55
|
+
prompt: `Suggest a menu for ${subject}.`,
|
|
56
|
+
});
|
|
57
|
+
return text;
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
#### Python (Alpha)
|
|
63
|
+
```python
|
|
64
|
+
from genkit import genkit, z
|
|
65
|
+
from genkit.plugins import google_ai
|
|
66
|
+
|
|
67
|
+
ai = genkit(
|
|
68
|
+
plugins=[google_ai.google_ai()],
|
|
69
|
+
model="gemini-2.5-flash"
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
@ai.flow
|
|
73
|
+
async def menu_suggestion_flow(subject: str) -> str:
|
|
74
|
+
response = await ai.generate(
|
|
75
|
+
model="gemini-2.5-flash",
|
|
76
|
+
prompt=f"Suggest a menu for {subject}."
|
|
77
|
+
)
|
|
78
|
+
return response.text
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### Go (1.0)
|
|
82
|
+
```go
|
|
83
|
+
package main
|
|
84
|
+
|
|
85
|
+
import (
|
|
86
|
+
"context"
|
|
87
|
+
"github.com/firebase/genkit/go/genkit"
|
|
88
|
+
"github.com/firebase/genkit/go/plugins/googleai"
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
func menuSuggestionFlow(ctx context.Context, subject string) (string, error) {
|
|
92
|
+
response, err := genkit.Generate(ctx,
|
|
93
|
+
&genkit.GenerateRequest{
|
|
94
|
+
Model: googleai.Gemini25Flash,
|
|
95
|
+
Prompt: genkit.Text("Suggest a menu for " + subject),
|
|
96
|
+
},
|
|
97
|
+
)
|
|
98
|
+
if err != nil {
|
|
99
|
+
return "", err
|
|
100
|
+
}
|
|
101
|
+
return response.Text(), nil
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 5. Advanced Patterns
|
|
106
|
+
|
|
107
|
+
#### RAG with Vector Search
|
|
108
|
+
```typescript
|
|
109
|
+
import { retrieve } from 'genkit';
|
|
110
|
+
|
|
111
|
+
const myRetriever = ai.defineRetriever(
|
|
112
|
+
{
|
|
113
|
+
name: 'myRetriever',
|
|
114
|
+
configSchema: z.object({ k: z.number() }),
|
|
115
|
+
},
|
|
116
|
+
async (query, config) => {
|
|
117
|
+
const embedding = await ai.embed({
|
|
118
|
+
embedder: textEmbedding004,
|
|
119
|
+
content: query,
|
|
120
|
+
});
|
|
121
|
+
// Perform vector search
|
|
122
|
+
const results = await vectorDB.search(embedding, config.k);
|
|
123
|
+
return results;
|
|
124
|
+
}
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
const ragFlow = ai.defineFlow(async (query) => {
|
|
128
|
+
const docs = await retrieve({ retriever: myRetriever, query, config: { k: 5 } });
|
|
129
|
+
const { text } = await ai.generate({
|
|
130
|
+
model: gemini25Pro,
|
|
131
|
+
prompt: `Answer based on these docs: ${docs}\n\nQuestion: ${query}`,
|
|
132
|
+
});
|
|
133
|
+
return text;
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
#### Tool Calling Pattern
|
|
138
|
+
```typescript
|
|
139
|
+
const weatherTool = ai.defineTool(
|
|
140
|
+
{
|
|
141
|
+
name: 'getWeather',
|
|
142
|
+
description: 'Get weather for a location',
|
|
143
|
+
inputSchema: z.object({
|
|
144
|
+
location: z.string(),
|
|
145
|
+
}),
|
|
146
|
+
outputSchema: z.object({
|
|
147
|
+
temperature: z.number(),
|
|
148
|
+
conditions: z.string(),
|
|
149
|
+
}),
|
|
150
|
+
},
|
|
151
|
+
async ({ location }) => {
|
|
152
|
+
// Call weather API
|
|
153
|
+
return { temperature: 72, conditions: 'sunny' };
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
const agentFlow = ai.defineFlow(async (input) => {
|
|
158
|
+
const { text } = await ai.generate({
|
|
159
|
+
model: gemini25Pro,
|
|
160
|
+
prompt: input,
|
|
161
|
+
tools: [weatherTool],
|
|
162
|
+
});
|
|
163
|
+
return text;
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 6. Monitoring & Debugging
|
|
168
|
+
- Enable AI monitoring in Firebase Console
|
|
169
|
+
- Configure custom trace attributes
|
|
170
|
+
- Set up alerting for failures and latency
|
|
171
|
+
- Analyze token consumption and costs
|
|
172
|
+
- Debug flows using Genkit Developer UI
|
|
173
|
+
|
|
174
|
+
### 7. Best Practices
|
|
175
|
+
- Always use typed schemas (Zod for TS/JS, Pydantic for Python)
|
|
176
|
+
- Implement proper error boundaries and retries
|
|
177
|
+
- Use context caching for large prompts
|
|
178
|
+
- Monitor token usage and implement cost controls
|
|
179
|
+
- Test flows locally before production deployment
|
|
180
|
+
- Version control your flow definitions
|
|
181
|
+
- Document flow inputs/outputs clearly
|
|
182
|
+
|
|
183
|
+
## When to Use This Agent
|
|
184
|
+
|
|
185
|
+
Activate this agent when the user mentions:
|
|
186
|
+
- "Create a Genkit flow"
|
|
187
|
+
- "Design AI workflow"
|
|
188
|
+
- "Implement RAG with Genkit"
|
|
189
|
+
- "Set up Gemini integration"
|
|
190
|
+
- "Deploy Genkit to Firebase"
|
|
191
|
+
- "Monitor AI application"
|
|
192
|
+
- "Tool calling with Genkit"
|
|
193
|
+
|
|
194
|
+
## Integration with Vertex AI ADK
|
|
195
|
+
|
|
196
|
+
This agent can collaborate with ADK agents for:
|
|
197
|
+
- Complex multi-agent orchestration (use ADK for orchestration, Genkit for individual flows)
|
|
198
|
+
- Passing Genkit flow results to ADK agents via A2A protocol
|
|
199
|
+
- Using Genkit for deterministic data validation before ADK deployment tasks
|
|
200
|
+
|
|
201
|
+
## References
|
|
202
|
+
|
|
203
|
+
- Genkit Documentation: https://genkit.dev/
|
|
204
|
+
- Vertex AI Plugin: https://genkit.dev/docs/integrations/vertex-ai/
|
|
205
|
+
- Firebase Genkit Announcement (Feb 2025): https://firebase.blog/posts/2025/02/announcing-genkit/
|
|
206
|
+
- Genkit Go 1.0 (Sep 2025): https://developers.googleblog.com/en/announcing-genkit-go-10/
|