Central repository for managing AI Instructions, Skills, and Agents that can be used by various AI systems.
This repository serves as a central source for:
- Instructions: General and language-specific coding guidelines
- Skills: Reusable capabilities for AI agents
- Agents: Specialized agent definitions for different roles
ai-base/
βββ src/
β βββ instructions/ # Coding guidelines (*.instructions.md)
β β βββ general/ # General instructions
β β βββ csharp/ # C#-specific instructions
β β βββ typescript/ # TypeScript-specific instructions
β β βββ angular/ # Angular-specific instructions
β β βββ java/ # Java-specific instructions
β β βββ docker/ # Docker-specific instructions
β βββ skills/ # Reusable skills
β β βββ general/ # General skills (e.g., code-review)
β β βββ csharp/ # C#-specific skills (e.g., ef-core)
β β βββ typescript/ # TypeScript-specific skills (e.g., rxjs)
β β βββ angular/ # Angular-specific skills
β β βββ java/ # Java-specific skills
β βββ agents/ # Agent definitions
β βββ general/ # General agents (e.g., backend-developer)
β βββ csharp/ # C#-specific agents
β βββ typescript/ # TypeScript-specific agents
β βββ angular/ # Angular-specific agents
β βββ java/ # Java-specific agents
βββ tools/
β βββ DeployAi/ # .NET deployment tool
β βββ deploy-ai-config.sh # Deployment script (calls DeployAi)
βββ .github/
βββ workflows/
βββ sync-ai-config.yml # Reusable GitHub Action
Create a workflow file in your repository (e.g., .github/workflows/sync-ai-config.yml):
name: Sync AI Configuration
on:
workflow_dispatch:
inputs:
create-pull-request:
description: 'Create a pull request instead of committing directly to the branch'
required: false
type: boolean
default: true
ai-base-version:
description: 'Version/branch of ai-base to use'
required: false
type: string
default: 'main'
schedule:
- cron: '0 0 * * *' # Every day at midnight
jobs:
sync-scheduled:
if: github.event_name == 'schedule'
uses: CreativeCodersTeam/ai-base/.github/workflows/sync-ai-config.yml@main
with:
languages: 'csharp,typescript'
ai-systems: 'copilot,claude,junie'
ai-base-version: 'main'
create-pull-request: true
sync-manual:
if: github.event_name == 'workflow_dispatch'
uses: CreativeCodersTeam/ai-base/.github/workflows/sync-ai-config.yml@main
with:
languages: 'csharp,typescript'
ai-systems: 'copilot,claude,junie'
ai-base-version: ${{ inputs.ai-base-version }}
create-pull-request: ${{ inputs.create-pull-request }}# Deploy AI configuration using the DeployAi .NET program
sh ./tools/deploy-ai-config.sh \
--languages=csharp,typescript \
--ai-systems=copilot,junie,claude \
--output-dir=./outputThe deploy-ai-config.sh script invokes the DeployAi .NET program which generates and deploys the AI configuration files.
- Output files:
.github/copilot-instructions.md - Features: Combined instructions (as language-specific files are not supported)
- Output files:
AGENTS.md(root).junie/guidelines.md
- Features: Combined instructions
- Output files:
CLAUDE.md(Instructions).claude/skills/(Skills with SKILL.md files)
- Features:
- Language-specific skills
- Combined instructions
csharp- C# / .NETtypescript- TypeScriptangular- Angular Frameworkjava- Javadocker- Docker
| Parameter | Description | Required | Default |
|---|---|---|---|
languages |
Comma-separated list of languages | Yes | - |
ai-systems |
Comma-separated list of AI systems | Yes | - |
ai-base-version |
Version/branch of ai-base | No | main |
--languages=<lang1,lang2> # Languages (comma-separated)
--ai-systems=<sys1,sys2> # AI systems (comma-separated)
--output-dir=<path> # Output directory (default: current directory)- Create a file matching the pattern
*.instructions.mdinsrc/instructions/<language>/- Example:
coding-standards.instructions.md,best-practices.instructions.md
- Example:
- Follow the format of existing instructions
- For language-specific instructions: Add
**Scope: <Language> Projects** - All instruction files must follow the
*.instructions.mdnaming pattern to be recognized by the deployment system
- Create a directory in
src/skills/<language>/<skill-name>/ - Add a
SKILL.mdfile with:--- name: skill-name description: Description of when the skill should be used --- # Skill content
- Create a
.mdfile insrc/agents/<language>/ - Define role, responsibilities, skills, and guidelines
- Source files: Instructions, Skills, and Agents are defined once in
src/ - Generator script:
generate-ai-config.jsreads the source files - Transformation:
- For AI systems without language-specific support, files are combined
- Headers are added with language scope
- Files are converted to AI system-specific formats
- Deployment: GitHub Action copies generated files to target repository
For AI systems that don't support language-specific instructions:
-
General Instructions first
# General Instructions <Content>
-
Language-specific Instructions after (for each language)
# <LANGUAGE> Specific Instructions **Scope: <language> projects only** <Content>
MIT
Contributions are welcome! Please create a pull request with your changes.