agents-templated 1.2.11 → 1.2.12
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/bin/cli.js +28 -18
- package/index.js +1 -1
- package/lib/instructions.js +5 -27
- package/package.json +1 -1
- package/templates/GEMINI.md +0 -142
package/bin/cli.js
CHANGED
|
@@ -119,7 +119,7 @@ program
|
|
|
119
119
|
{ name: 'Documentation files (agent-docs/)', value: 'docs' },
|
|
120
120
|
{ name: 'Agent rules (.github/instructions/rules/*.mdc)', value: 'rules' },
|
|
121
121
|
{ name: 'Skills (.github/skills/*)', value: 'skills' },
|
|
122
|
-
{ name: 'AI Agent instructions (Cursor, Copilot,
|
|
122
|
+
{ name: 'AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)', value: 'github' }
|
|
123
123
|
],
|
|
124
124
|
default: ['all']
|
|
125
125
|
},
|
|
@@ -177,16 +177,16 @@ program
|
|
|
177
177
|
);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
// Install AI Agent instructions (Cursor, Copilot, Claude,
|
|
180
|
+
// Install AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)
|
|
181
181
|
if (installAll || choices.includes('github')) {
|
|
182
182
|
console.log(chalk.yellow('Installing AI agent instructions...'));
|
|
183
183
|
await fs.ensureDir(path.join(targetDir, '.github', 'instructions'));
|
|
184
184
|
await copyFiles(templateDir, targetDir, ['.cursorrules'], options.force);
|
|
185
185
|
await writeGeneratedInstructions(targetDir, templateDir, options.force);
|
|
186
186
|
console.log(chalk.gray(' ✓ Cursor (.cursorrules)'));
|
|
187
|
-
console.log(chalk.gray(' ✓ GitHub Copilot (.github/
|
|
188
|
-
console.log(chalk.gray(' ✓ Claude (.
|
|
189
|
-
console.log(chalk.gray(' ✓
|
|
187
|
+
console.log(chalk.gray(' ✓ GitHub Copilot (.github/copilot-instructions.md shim)'));
|
|
188
|
+
console.log(chalk.gray(' ✓ Claude (.claude/CLAUDE.md shim)'));
|
|
189
|
+
console.log(chalk.gray(' ✓ Generic AGENTS (AGENTS.MD shim + canonical .github/instructions/AGENTS.md)'));
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
console.log(chalk.green.bold('\nInstallation complete!\n'));
|
|
@@ -241,7 +241,7 @@ program
|
|
|
241
241
|
{ name: 'Documentation (agent-docs/)', value: 'docs' },
|
|
242
242
|
{ name: 'Agent Rules (security, testing, database, etc.)', value: 'rules' },
|
|
243
243
|
{ name: 'Skills (reusable agent capabilities)', value: 'skills' },
|
|
244
|
-
{ name: 'AI Agent instructions (Cursor, Copilot,
|
|
244
|
+
{ name: 'AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)', value: 'github' }
|
|
245
245
|
],
|
|
246
246
|
validate: (answer) => {
|
|
247
247
|
if (answer.length === 0) {
|
|
@@ -277,7 +277,7 @@ program
|
|
|
277
277
|
{ name: 'Documentation (agent-docs/)', value: 'docs', checked: true },
|
|
278
278
|
{ name: 'Agent Rules (security, testing, database, etc.)', value: 'rules', checked: true },
|
|
279
279
|
{ name: 'Skills (reusable agent capabilities)', value: 'skills', checked: true },
|
|
280
|
-
{ name: 'AI Agent instructions (Cursor, Copilot,
|
|
280
|
+
{ name: 'AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)', value: 'github', checked: true }
|
|
281
281
|
],
|
|
282
282
|
validate: (answer) => {
|
|
283
283
|
if (answer.length === 0) {
|
|
@@ -337,17 +337,16 @@ program
|
|
|
337
337
|
);
|
|
338
338
|
}
|
|
339
339
|
|
|
340
|
-
// Install AI Agent instructions (Cursor, Copilot,
|
|
340
|
+
// Install AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)
|
|
341
341
|
if (options.github) {
|
|
342
342
|
console.log(chalk.yellow('Installing AI agent instructions...'));
|
|
343
343
|
await fs.ensureDir(path.join(targetDir, '.github', 'instructions'));
|
|
344
344
|
await copyFiles(templateDir, targetDir, ['.cursorrules'], options.force);
|
|
345
345
|
await writeGeneratedInstructions(targetDir, templateDir, options.force);
|
|
346
346
|
console.log(chalk.gray(' ✓ Cursor (.cursorrules)'));
|
|
347
|
-
console.log(chalk.gray(' ✓ GitHub Copilot (.github/
|
|
348
|
-
console.log(chalk.gray(' ✓
|
|
349
|
-
console.log(chalk.gray(' ✓
|
|
350
|
-
console.log(chalk.gray(' ✓ Google Gemini (.github/instructions/GEMINI.md + compat shim)'));
|
|
347
|
+
console.log(chalk.gray(' ✓ GitHub Copilot (.github/copilot-instructions.md shim)'));
|
|
348
|
+
console.log(chalk.gray(' ✓ Claude (.claude/CLAUDE.md shim)'));
|
|
349
|
+
console.log(chalk.gray(' ✓ Generic AGENTS (AGENTS.MD shim + canonical .github/instructions/AGENTS.md)'));
|
|
351
350
|
}
|
|
352
351
|
|
|
353
352
|
// Show summary and next steps
|
|
@@ -379,7 +378,7 @@ program
|
|
|
379
378
|
console.log(chalk.yellow('docs') + ' - Documentation files (agent-docs/ directory)');
|
|
380
379
|
console.log(chalk.yellow('rules') + ' - Agent rules (.github/instructions/rules/*.mdc)');
|
|
381
380
|
console.log(chalk.yellow('skills') + ' - Agent skills (.github/skills/*)');
|
|
382
|
-
console.log(chalk.yellow('github') + ' - AI Agent instructions (Cursor, Copilot,
|
|
381
|
+
console.log(chalk.yellow('github') + ' - AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)');
|
|
383
382
|
console.log(chalk.yellow('all') + ' - All components');
|
|
384
383
|
|
|
385
384
|
console.log(chalk.blue.bold('\n\nAvailable Presets:\n'));
|
|
@@ -470,10 +469,8 @@ program
|
|
|
470
469
|
// Check generated instruction files and drift
|
|
471
470
|
const hasInstructionFootprint =
|
|
472
471
|
await fs.pathExists(path.join(targetDir, '.github', 'instructions')) ||
|
|
473
|
-
await fs.pathExists(path.join(targetDir, '.claude', 'rules')) ||
|
|
474
|
-
await fs.pathExists(path.join(targetDir, GENERATED_INSTRUCTION_PATHS.compatibility.copilot)) ||
|
|
475
472
|
await fs.pathExists(path.join(targetDir, GENERATED_INSTRUCTION_PATHS.compatibility.claude)) ||
|
|
476
|
-
await fs.pathExists(path.join(targetDir, GENERATED_INSTRUCTION_PATHS.compatibility.
|
|
473
|
+
await fs.pathExists(path.join(targetDir, GENERATED_INSTRUCTION_PATHS.compatibility.copilot)) ||
|
|
477
474
|
await fs.pathExists(path.join(targetDir, GENERATED_INSTRUCTION_PATHS.compatibility.generic));
|
|
478
475
|
|
|
479
476
|
if (hasInstructionFootprint) {
|
|
@@ -487,9 +484,8 @@ program
|
|
|
487
484
|
}
|
|
488
485
|
}
|
|
489
486
|
|
|
490
|
-
const canonicalCopilotFile = path.join(targetDir, GENERATED_INSTRUCTION_PATHS.canonical.copilot);
|
|
491
487
|
const compatCopilotFile = path.join(targetDir, GENERATED_INSTRUCTION_PATHS.compatibility.copilot);
|
|
492
|
-
if (await fs.pathExists(
|
|
488
|
+
if (await fs.pathExists(compatCopilotFile)) {
|
|
493
489
|
passed.push(`✓ GitHub Copilot configuration found`);
|
|
494
490
|
} else {
|
|
495
491
|
warnings.push(`⚠ GitHub Copilot configuration missing - run 'agents-templated init --github'`);
|
|
@@ -631,6 +627,18 @@ async function hasInstalledTemplates(targetDir) {
|
|
|
631
627
|
await fs.pathExists(path.join(targetDir, GENERATED_INSTRUCTION_PATHS.compatibility.generic));
|
|
632
628
|
}
|
|
633
629
|
|
|
630
|
+
async function cleanupLegacyInstructionFiles(targetDir) {
|
|
631
|
+
const legacyFiles = ['CLAUDE.md', 'GEMINI.md'];
|
|
632
|
+
|
|
633
|
+
for (const file of legacyFiles) {
|
|
634
|
+
const filePath = path.join(targetDir, file);
|
|
635
|
+
if (await fs.pathExists(filePath)) {
|
|
636
|
+
await fs.remove(filePath);
|
|
637
|
+
console.log(chalk.green(` ✓ Removed legacy file: ${file}`));
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
634
642
|
async function updateSelectedComponents(targetDir, templateDir, selectedComponents, overwrite = true) {
|
|
635
643
|
const components = selectedComponents.includes('all')
|
|
636
644
|
? ['docs', 'rules', 'skills', 'github']
|
|
@@ -672,6 +680,7 @@ async function updateSelectedComponents(targetDir, templateDir, selectedComponen
|
|
|
672
680
|
await fs.ensureDir(path.join(targetDir, '.github', 'instructions'));
|
|
673
681
|
await copyFiles(templateDir, targetDir, ['.cursorrules'], overwrite);
|
|
674
682
|
await writeGeneratedInstructions(targetDir, templateDir, overwrite);
|
|
683
|
+
await cleanupLegacyInstructionFiles(targetDir);
|
|
675
684
|
}
|
|
676
685
|
|
|
677
686
|
if ((components.includes('docs') || components.includes('github')) && !components.includes('github')) {
|
|
@@ -854,6 +863,7 @@ program
|
|
|
854
863
|
|
|
855
864
|
await writeGeneratedInstructions(targetDir, templateDir, true);
|
|
856
865
|
console.log(chalk.green(' ✓ Regenerated instruction compatibility files'));
|
|
866
|
+
await cleanupLegacyInstructionFiles(targetDir);
|
|
857
867
|
|
|
858
868
|
console.log(chalk.green.bold('\n✅ Updates applied successfully!\n'));
|
|
859
869
|
console.log(chalk.gray('Backup files created with .backup extension\n'));
|
package/index.js
CHANGED
|
@@ -69,7 +69,7 @@ async function install(targetDir, options = {}) {
|
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
// AI Agent instructions (Cursor, Copilot, Claude
|
|
72
|
+
// AI Agent instructions (Cursor, Copilot, Claude)
|
|
73
73
|
if (installAll || options.github) {
|
|
74
74
|
await fs.ensureDir(path.join(targetDir, '.github', 'instructions'));
|
|
75
75
|
|
package/lib/instructions.js
CHANGED
|
@@ -5,20 +5,12 @@ const CORE_SOURCE_REL_PATH = 'instructions/source/core.md';
|
|
|
5
5
|
|
|
6
6
|
const GENERATED_INSTRUCTION_PATHS = {
|
|
7
7
|
canonical: {
|
|
8
|
-
generic: '.github/instructions/AGENTS.md'
|
|
9
|
-
copilot: '.github/instructions/copilot-instructions.md',
|
|
10
|
-
claude: '.github/instructions/CLAUDE.md',
|
|
11
|
-
gemini: '.github/instructions/GEMINI.md'
|
|
12
|
-
},
|
|
13
|
-
styleCompat: {
|
|
14
|
-
githubInstructions: '.github/instructions/agents.instructions.md',
|
|
15
|
-
claudeRules: '.claude/rules/claude.instructions.md'
|
|
8
|
+
generic: '.github/instructions/AGENTS.md'
|
|
16
9
|
},
|
|
17
10
|
compatibility: {
|
|
18
11
|
generic: 'AGENTS.MD',
|
|
19
12
|
copilot: '.github/copilot-instructions.md',
|
|
20
|
-
claude: 'CLAUDE.md'
|
|
21
|
-
gemini: 'GEMINI.md'
|
|
13
|
+
claude: '.claude/CLAUDE.md'
|
|
22
14
|
}
|
|
23
15
|
};
|
|
24
16
|
|
|
@@ -39,22 +31,15 @@ function buildCompatInstruction(toolName, corePath) {
|
|
|
39
31
|
const titles = {
|
|
40
32
|
generic: '# AGENTS Instructions',
|
|
41
33
|
copilot: '# GitHub Copilot Instructions',
|
|
42
|
-
claude: '# Claude Instructions'
|
|
43
|
-
gemini: '# Gemini Instructions'
|
|
34
|
+
claude: '# Claude Instructions'
|
|
44
35
|
};
|
|
45
36
|
|
|
46
37
|
return [
|
|
47
38
|
`${titles[toolName]}`,
|
|
48
39
|
'',
|
|
49
40
|
`Primary policy source: \`${corePath}\`.`,
|
|
50
|
-
'',
|
|
51
|
-
'
|
|
52
|
-
'- Security-first implementation (validate inputs, authz/authn, rate limiting).',
|
|
53
|
-
'- Testing-first delivery with unit + integration coverage for changed logic.',
|
|
54
|
-
'- Strong typing and runtime boundary validation.',
|
|
55
|
-
'- Do not expose secrets or sensitive data in logs/errors.',
|
|
56
|
-
'',
|
|
57
|
-
'Use the canonical source for full policy and architecture guidance.',
|
|
41
|
+
'Minimal compatibility stub to reduce duplicated prompt tokens.',
|
|
42
|
+
'Load rules from the canonical source file above.',
|
|
58
43
|
''
|
|
59
44
|
].join('\n');
|
|
60
45
|
}
|
|
@@ -64,16 +49,9 @@ function buildGeneratedArtifacts(coreContent) {
|
|
|
64
49
|
const files = {};
|
|
65
50
|
|
|
66
51
|
files[GENERATED_INSTRUCTION_PATHS.canonical.generic] = `${buildHeaders('generic')}${coreContent.trim()}\n`;
|
|
67
|
-
files[GENERATED_INSTRUCTION_PATHS.canonical.copilot] = `${buildHeaders('copilot')}${buildCompatInstruction('copilot', corePath)}`;
|
|
68
|
-
files[GENERATED_INSTRUCTION_PATHS.canonical.claude] = `${buildHeaders('claude')}${buildCompatInstruction('claude', corePath)}`;
|
|
69
|
-
files[GENERATED_INSTRUCTION_PATHS.canonical.gemini] = `${buildHeaders('gemini')}${buildCompatInstruction('gemini', corePath)}`;
|
|
70
|
-
files[GENERATED_INSTRUCTION_PATHS.styleCompat.githubInstructions] = `${buildHeaders('github-instructions-style')}${buildCompatInstruction('generic', corePath)}`;
|
|
71
|
-
files[GENERATED_INSTRUCTION_PATHS.styleCompat.claudeRules] = `${buildHeaders('claude-rules-style')}${buildCompatInstruction('claude', corePath)}`;
|
|
72
|
-
|
|
73
52
|
files[GENERATED_INSTRUCTION_PATHS.compatibility.generic] = `${buildHeaders('generic-compat')}${buildCompatInstruction('generic', corePath)}`;
|
|
74
53
|
files[GENERATED_INSTRUCTION_PATHS.compatibility.copilot] = `${buildHeaders('copilot-compat')}${buildCompatInstruction('copilot', corePath)}`;
|
|
75
54
|
files[GENERATED_INSTRUCTION_PATHS.compatibility.claude] = `${buildHeaders('claude-compat')}${buildCompatInstruction('claude', corePath)}`;
|
|
76
|
-
files[GENERATED_INSTRUCTION_PATHS.compatibility.gemini] = `${buildHeaders('gemini-compat')}${buildCompatInstruction('gemini', corePath)}`;
|
|
77
55
|
|
|
78
56
|
return files;
|
|
79
57
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agents-templated",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.12",
|
|
4
4
|
"description": "Technology-agnostic development template with multi-AI agent support (Cursor, Copilot, VSCode, Gemini), security-first patterns, and comprehensive testing guidelines",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
package/templates/GEMINI.md
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# Google Gemini AI Instructions
|
|
2
|
-
|
|
3
|
-
This project uses enterprise-grade, technology-agnostic development patterns for all Google Gemini AI assistants, whether used through:
|
|
4
|
-
- Google AI Studio (aistudio.google.com)
|
|
5
|
-
- Gemini IDE extensions
|
|
6
|
-
- Gemini API integration
|
|
7
|
-
- Other Gemini-powered tools
|
|
8
|
-
|
|
9
|
-
## Quick Start
|
|
10
|
-
|
|
11
|
-
- **AI Guide**: See `AGENTS.MD` for comprehensive instructions
|
|
12
|
-
- **Architecture**: See `agent-docs/ARCHITECTURE.md` for project guidelines
|
|
13
|
-
- **Custom Skills**: See `agents/skills/` directory for domain-specific extensions
|
|
14
|
-
- **Detailed Rules**: See `agents/rules/*.mdc` files
|
|
15
|
-
- **Available Skills**: Check `agents/skills/` for project-specific skills
|
|
16
|
-
|
|
17
|
-
## Core Development Patterns
|
|
18
|
-
|
|
19
|
-
Follow these enterprise-grade patterns for all development work:
|
|
20
|
-
|
|
21
|
-
### 1. Security-First Approach
|
|
22
|
-
- **Validate all inputs**: Use schema validation for all user inputs and API requests
|
|
23
|
-
- **Authentication**: Implement secure session management and authentication flows
|
|
24
|
-
- **Authorization**: Apply role-based access control with proper middleware
|
|
25
|
-
- **Rate limiting**: Protect public endpoints from abuse with appropriate rate limiting
|
|
26
|
-
- **Error handling**: Never expose sensitive data in error messages or logs
|
|
27
|
-
- **Database safety**: Use ORM/ODM patterns exclusively, avoid raw SQL queries
|
|
28
|
-
- Reference: `agents/rules/security.mdc`
|
|
29
|
-
|
|
30
|
-
### 2. Testing Requirements
|
|
31
|
-
- **Unit tests**: Target 80% coverage for business logic
|
|
32
|
-
- **Integration tests**: 15% coverage for API and database operations
|
|
33
|
-
- **E2E tests**: 5% coverage for critical user journeys
|
|
34
|
-
- All business logic must have appropriate test cases
|
|
35
|
-
- Reference: `agents/rules/testing.mdc`
|
|
36
|
-
|
|
37
|
-
### 3. Type Safety & Validation
|
|
38
|
-
- Use strong typing systems available in your language of choice
|
|
39
|
-
- Implement runtime validation at all API boundaries
|
|
40
|
-
- Apply schema validation to form inputs and API requests
|
|
41
|
-
- Reference: `agents/rules/core.mdc`
|
|
42
|
-
|
|
43
|
-
### 4. Code Quality Standards
|
|
44
|
-
- **Readability**: Clear variable names, proper documentation, logical organization
|
|
45
|
-
- **Type safety**: Strict typing throughout, no loose type usage
|
|
46
|
-
- **Performance**: Monitor resource usage, implement caching, optimize queries
|
|
47
|
-
- **Maintainability**: Modular design, separation of concerns, SOLID principles
|
|
48
|
-
- **Accessibility**: WCAG 2.1 AA compliance for all user-facing interfaces
|
|
49
|
-
- Reference: `agents/rules/style.mdc`
|
|
50
|
-
|
|
51
|
-
## Agent-Based Development
|
|
52
|
-
|
|
53
|
-
This project follows an agent-based pattern where different roles handle different aspects:
|
|
54
|
-
|
|
55
|
-
| Agent | Responsibility | Reference |
|
|
56
|
-
|-------|-----------------|-----------|
|
|
57
|
-
| **FrontendAgent** | UI/Design, components, accessibility, responsive layouts | `agents/rules/frontend.mdc` |
|
|
58
|
-
| **BackendAgent** | API routes, business logic, authentication, services | `agents/rules/security.mdc` |
|
|
59
|
-
| **DatabaseAgent** | Schema design, migrations, data access, optimization | `agents/rules/database.mdc` |
|
|
60
|
-
| **TestAgent** | Testing strategy, coverage, test organization | `agents/rules/testing.mdc` |
|
|
61
|
-
| **SecurityAgent** | Security patterns, validation, rate limiting, access control | `agents/rules/security.mdc` |
|
|
62
|
-
| **ReviewerAgent** | Code quality, performance, accessibility, architecture | All rules |
|
|
63
|
-
|
|
64
|
-
When implementing features, identify which agent responsibility applies and refer to the appropriate rules file.
|
|
65
|
-
|
|
66
|
-
## Deterministic Slash Commands
|
|
67
|
-
|
|
68
|
-
- Slash command protocol is defined in `AGENTS.MD` under `Deterministic Slash Command System Standard`.
|
|
69
|
-
- Modular command contracts are stored in `agents/commands/`.
|
|
70
|
-
- Command mode is strict: unknown or malformed slash commands must return structured error output and stop.
|
|
71
|
-
- No conversational fallback is allowed once slash-command mode is entered.
|
|
72
|
-
- Destructive actions require explicit confirmation token format: `CONFIRM-DESTRUCTIVE:<target>`.
|
|
73
|
-
|
|
74
|
-
## Technology Stack Independence
|
|
75
|
-
|
|
76
|
-
These patterns apply regardless of your tech stack. Adapt them to your chosen framework:
|
|
77
|
-
|
|
78
|
-
### Frontend Frameworks
|
|
79
|
-
- **React/Next.js/Vue/Svelte**: Component-based architecture with state management
|
|
80
|
-
- **Angular**: Component + service pattern with TypeScript
|
|
81
|
-
- **Traditional/Server-rendered**: Progressive enhancement with server-side rendering
|
|
82
|
-
|
|
83
|
-
### Backend Frameworks
|
|
84
|
-
- **Node.js**: Express, Fastify, Koa, or Next.js API routes
|
|
85
|
-
- **Python**: Django, FastAPI, Flask with ORM patterns
|
|
86
|
-
- **Go**: Gin, Echo, Fiber for high-performance APIs
|
|
87
|
-
- **Other languages**: Apply patterns to your chosen framework
|
|
88
|
-
|
|
89
|
-
### Database Technologies
|
|
90
|
-
- **SQL**: PostgreSQL, MySQL, SQLite with ORM (Prisma, TypeORM, SQLAlchemy, etc.)
|
|
91
|
-
- **NoSQL**: MongoDB, DynamoDB with schema validation
|
|
92
|
-
- **Cloud-native**: Supabase, Firebase with built-in security
|
|
93
|
-
|
|
94
|
-
## Critical Rules (Never Skip These)
|
|
95
|
-
|
|
96
|
-
1. **Input Validation**: ALL user inputs must be validated with schema validation libraries
|
|
97
|
-
2. **Authentication**: Implement secure authentication with proper session management
|
|
98
|
-
3. **Rate Limiting**: Public endpoints MUST have rate limiting to prevent abuse
|
|
99
|
-
4. **Authorization**: Role-based access control with verified permissions
|
|
100
|
-
5. **Data Safety**: Never expose sensitive information in error responses
|
|
101
|
-
6. **Database Access**: Use ORM/ODM exclusively, never raw queries for user data
|
|
102
|
-
7. **Test Coverage**: Minimum 80% coverage for business logic
|
|
103
|
-
8. **Accessibility**: WCAG 2.1 AA compliance for all user interfaces
|
|
104
|
-
9. **Documentation**: Keep guides updated; code should be self-documenting
|
|
105
|
-
10. **Performance**: Monitor metrics, implement caching, optimize critical paths
|
|
106
|
-
|
|
107
|
-
## File Reference Guide
|
|
108
|
-
|
|
109
|
-
| File | Purpose | When to Use |
|
|
110
|
-
|------|---------|------------|
|
|
111
|
-
| `AGENTS.MD` | Primary AI assistant guide | Always start here |
|
|
112
|
-
| `agent-docs/ARCHITECTURE.md` | Architecture and technology stack decisions | Need architectural guidance |
|
|
113
|
-
| `AGENTS.MD` | AI assistant guide and patterns | How to work effectively with AI |
|
|
114
|
-
| `agents/commands/` | Deterministic slash command contracts | Slash-command execution |
|
|
115
|
-
| `agents/rules/core.mdc` | Core development principles | General development questions |
|
|
116
|
-
| `agents/rules/security.mdc` | Security patterns and implementations | Building secure features |
|
|
117
|
-
| `agents/rules/testing.mdc` | Testing strategy and best practices | Writing tests or test strategy |
|
|
118
|
-
| `agents/rules/frontend.mdc` | Frontend patterns and components | Building UI features |
|
|
119
|
-
| `agents/rules/database.mdc` | Database and data access patterns | Working with data layers |
|
|
120
|
-
| `agents/rules/style.mdc` | Code style and formatting | Code style questions |
|
|
121
|
-
| `agents/skills/` | Domain-specific implementations | Looking for reusable patterns |
|
|
122
|
-
|
|
123
|
-
## Workflow Recommendations
|
|
124
|
-
|
|
125
|
-
1. **Read AGENTS.MD** for comprehensive AI assistance guidance
|
|
126
|
-
2. **Read agent-docs/ARCHITECTURE.md** to understand the overall architecture
|
|
127
|
-
3. **Reference AGENTS.MD** for AI working patterns and guidance
|
|
128
|
-
3. **Reference the appropriate rule file** for implementation patterns
|
|
129
|
-
4. **Look in agents/skills/** for domain-specific guidance
|
|
130
|
-
5. **Follow all critical rules** without exception
|
|
131
|
-
6. **Apply patterns consistently** across the codebase
|
|
132
|
-
|
|
133
|
-
## Additional Context
|
|
134
|
-
|
|
135
|
-
- This template is **completely technology-agnostic** and works with any programming language
|
|
136
|
-
- All patterns are **framework and language-independent**
|
|
137
|
-
- The rules can be adapted to your specific tech stack while maintaining the security and quality principles
|
|
138
|
-
- Skills in `agents/skills/` provide specific, actionable implementations
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
For best results with Gemini AI assistance, reference the appropriate context from `AGENTS.MD`, `agent-docs/ARCHITECTURE.md`, and the relevant `agents/rules/*.mdc` files in your prompts.
|