@ruyfranca/myskills 1.0.14 → 1.0.16
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/.agent/agents/backend-architect.md +31 -0
- package/README.md +8 -6
- package/index.js +25 -6
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backend-architect
|
|
3
|
+
description: Backend system architecture and API design specialist. Use PROACTIVELY for RESTful APIs, microservice boundaries, database schemas, scalability planning, and performance optimization.
|
|
4
|
+
tools: Read, Write, Edit, Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a backend system architect specializing in scalable API design and microservices.
|
|
9
|
+
|
|
10
|
+
## Focus Areas
|
|
11
|
+
- RESTful API design with proper versioning and error handling
|
|
12
|
+
- Service boundary definition and inter-service communication
|
|
13
|
+
- Database schema design (normalization, indexes, sharding)
|
|
14
|
+
- Caching strategies and performance optimization
|
|
15
|
+
- Basic security patterns (auth, rate limiting)
|
|
16
|
+
|
|
17
|
+
## Approach
|
|
18
|
+
1. Start with clear service boundaries
|
|
19
|
+
2. Design APIs contract-first
|
|
20
|
+
3. Consider data consistency requirements
|
|
21
|
+
4. Plan for horizontal scaling from day one
|
|
22
|
+
5. Keep it simple - avoid premature optimization
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
- API endpoint definitions with example requests/responses
|
|
26
|
+
- Service architecture diagram (mermaid or ASCII)
|
|
27
|
+
- Database schema with key relationships
|
|
28
|
+
- List of technology recommendations with brief rationale
|
|
29
|
+
- Potential bottlenecks and scaling considerations
|
|
30
|
+
|
|
31
|
+
Always provide concrete examples and focus on practical implementation over theory.
|
package/README.md
CHANGED
|
@@ -238,19 +238,21 @@ npx @ruyfranca/myskills list
|
|
|
238
238
|
# 2. Listar todos os agents na biblioteca
|
|
239
239
|
npx @ruyfranca/myskills list-agents
|
|
240
240
|
|
|
241
|
-
# 3.
|
|
242
|
-
# (
|
|
241
|
+
# 3. Inicializar kit completo em um novo projeto
|
|
242
|
+
# (Instala a pasta .agent completa com skills, agents e workflows)
|
|
243
|
+
npx @ruyfranca/myskills init
|
|
244
|
+
|
|
245
|
+
# 4. Instalar uma skill individual
|
|
243
246
|
npx @ruyfranca/myskills add <nome-da-skill>
|
|
244
247
|
|
|
245
|
-
#
|
|
246
|
-
# (Cria automaticamente a pasta .claude/agents/nome-do-agent.md)
|
|
248
|
+
# 5. Instalar um agent individual
|
|
247
249
|
npx @ruyfranca/myskills add <nome-do-agent> --agent
|
|
248
250
|
|
|
249
|
-
#
|
|
251
|
+
# 6. Instalar TODAS as 40+ skills individuais
|
|
250
252
|
npx @ruyfranca/myskills add --all
|
|
251
253
|
|
|
252
254
|
# Exemplo prático:
|
|
253
|
-
npx @ruyfranca/myskills
|
|
255
|
+
npx @ruyfranca/myskills init
|
|
254
256
|
npx @ruyfranca/myskills add frontend-developer --agent
|
|
255
257
|
```
|
|
256
258
|
|
package/index.js
CHANGED
|
@@ -37,7 +37,7 @@ program
|
|
|
37
37
|
.description('Lista todos os agents disponíveis na biblioteca')
|
|
38
38
|
.action(async () => {
|
|
39
39
|
if (!await fs.pathExists(AGENTS_DIR)) {
|
|
40
|
-
console.log(chalk.yellow('\n⚠️
|
|
40
|
+
console.log(chalk.yellow('\n⚠️ Nenhum agent disponível ainda.\n'));
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
const agents = await fs.readdir(AGENTS_DIR);
|
|
@@ -50,6 +50,25 @@ program
|
|
|
50
50
|
console.log('');
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
+
program
|
|
54
|
+
.command('init')
|
|
55
|
+
.description('Inicializa o Antigravity no projeto atual (instala todas as skills, agents e workflows)')
|
|
56
|
+
.action(async () => {
|
|
57
|
+
const sourceDir = path.join(__dirname, '.agent');
|
|
58
|
+
const destDir = path.join(process.cwd(), '.agent');
|
|
59
|
+
|
|
60
|
+
console.log(chalk.cyan('\n🚀 Inicializando kit completo do Antigravity...\n'));
|
|
61
|
+
|
|
62
|
+
try {
|
|
63
|
+
await fs.ensureDir(destDir);
|
|
64
|
+
await fs.copy(sourceDir, destDir);
|
|
65
|
+
console.log(chalk.green.bold('✅ Pasta .agent instalada com sucesso!\n'));
|
|
66
|
+
console.log(chalk.gray('Isso inclui todas as skills, agents e slash commands (workflows).\n'));
|
|
67
|
+
} catch (err) {
|
|
68
|
+
console.error(chalk.red(`\n❌ Erro ao inicializar .agent: ${err.message}\n`));
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
53
72
|
program
|
|
54
73
|
.command('add')
|
|
55
74
|
.description('Adiciona uma skill ou agent ao projeto atual')
|
|
@@ -65,7 +84,7 @@ program
|
|
|
65
84
|
|
|
66
85
|
for (const s of skills) {
|
|
67
86
|
const sourceDir = path.join(SKILLS_DIR, s);
|
|
68
|
-
const destDir = path.join(process.cwd(), '.
|
|
87
|
+
const destDir = path.join(process.cwd(), '.agent', 'skills', s);
|
|
69
88
|
|
|
70
89
|
try {
|
|
71
90
|
await fs.ensureDir(path.dirname(destDir));
|
|
@@ -102,12 +121,12 @@ program
|
|
|
102
121
|
}
|
|
103
122
|
|
|
104
123
|
const sourceFile = path.join(AGENTS_DIR, `${name}.md`);
|
|
105
|
-
const destFile = path.join(process.cwd(), '.
|
|
124
|
+
const destFile = path.join(process.cwd(), '.agent', 'agents', `${name}.md`);
|
|
106
125
|
|
|
107
126
|
try {
|
|
108
127
|
await fs.ensureDir(path.dirname(destFile));
|
|
109
128
|
await fs.copy(sourceFile, destFile);
|
|
110
|
-
console.log(chalk.green(`\n✅ Agent "${name}" instalado com sucesso em .
|
|
129
|
+
console.log(chalk.green(`\n✅ Agent "${name}" instalado com sucesso em .agent/agents/${name}.md!\n`));
|
|
111
130
|
} catch (err) {
|
|
112
131
|
console.error(chalk.red(`\n❌ Erro ao copiar agent: ${err.message}\n`));
|
|
113
132
|
}
|
|
@@ -137,12 +156,12 @@ program
|
|
|
137
156
|
}
|
|
138
157
|
|
|
139
158
|
const sourceDir = path.join(SKILLS_DIR, name);
|
|
140
|
-
const destDir = path.join(process.cwd(), '.
|
|
159
|
+
const destDir = path.join(process.cwd(), '.agent', 'skills', name);
|
|
141
160
|
|
|
142
161
|
try {
|
|
143
162
|
await fs.ensureDir(path.dirname(destDir));
|
|
144
163
|
await fs.copy(sourceDir, destDir);
|
|
145
|
-
console.log(chalk.green(`\n✅ Skill "${name}" instalada com sucesso em .
|
|
164
|
+
console.log(chalk.green(`\n✅ Skill "${name}" instalada com sucesso em .agent/skills/${name}!\n`));
|
|
146
165
|
} catch (err) {
|
|
147
166
|
console.error(chalk.red(`\n❌ Erro ao copiar skill: ${err.message}\n`));
|
|
148
167
|
}
|