| name | synthesis-llm-setup |
| description | Guide for setting up and configuring LLM projects across platforms. Use when setting up a Claude Project, creating a ChatGPT GPT, configuring a Gemini Gem, setting up an AI assistant with custom instructions and knowledge, or configuring any LLM platform with AI Knowledge content. |
| license | CC0-1.0 |
| depends_on | [] |
| metadata | {"author":"Rajiv Pant","version":"1.0.0","source_repo":"github.com/synthesisengineering/synthesis-skills","source_type":"public"} |
LLM Setup
Configure Claude Projects, ChatGPT GPTs, Gemini Gems, and other LLM platforms using compiled AI Knowledge content from the ragbot system.
Configuration
These values are user-specific. Update them for your environment.
| Setting | Value | Description |
|---|
ai_knowledge_repo | ai-knowledge-{name}/ | Your ai-knowledge repository root |
compiled_instructions_path | compiled/{project}/instructions/ | Path to LLM-specific compiled instructions |
knowledge_file | all-knowledge.md | Concatenated knowledge file (auto-generated by CI/CD) |
source_dir | source/ | Directory to edit directly (knowledge concatenation is automatic) |
Architecture overview
The AI Knowledge system produces platform-specific content for each LLM's project/custom instruction system.
| Operation | Where | When |
|---|
Knowledge concatenation (all-knowledge.md) | CI/CD (GitHub Actions) | Every push to source/ |
| Instruction compilation | Local (ragbot compile) | When instructions change (rare) |
| RAG indexing | Local (ragbot index) | When content changes and RAG is needed |
Output structure
ai-knowledge-{name}/
├── compiled/
│ └── {project}/
│ └── instructions/ # LLM-specific custom instructions
│ ├── claude.md
│ ├── chatgpt.md
│ └── gemini.md
└── all-knowledge.md # Concatenated knowledge (auto-generated by CI/CD)
Key principle: Edit source/ files directly. Knowledge concatenation is automatic.
Knowledge delivery strategy:
- Claude: GitHub sync the repo (Claude reads
all-knowledge.md directly)
- ChatGPT: Upload
all-knowledge.md
- Gemini: Upload
all-knowledge.md (works within the 10-file Gem limit)
Claude Projects setup
Custom instructions
- Create a new Claude Project (or open an existing one).
- Go to Project Knowledge, then Custom Instructions.
- Copy content from
compiled/{project}/instructions/claude.md.
- Paste into the custom instructions field.
Knowledge files
Option A: GitHub sync (recommended)
- Connect your GitHub account to Claude.
- Sync the repository containing your ai-knowledge repo.
- Claude indexes
all-knowledge.md and source files automatically.
Option B: Manual upload
- Go to Project Knowledge, then Files.
- Upload
all-knowledge.md from the repo root.
ChatGPT GPT setup
Creating a GPT
- Go to https://chat.openai.com/gpts/editor
- Click "Create a GPT".
- Configure:
- Name: Your project name
- Description: Brief description
- Instructions: Copy from
compiled/{project}/instructions/chatgpt.md
Knowledge files
- In the GPT editor, go to the Knowledge section.
- Upload
all-knowledge.md from the repo root.
Gemini Gems setup
Creating a Gem
- Go to https://gemini.google.com/gems
- Create a new Gem.
- Paste instructions from
compiled/{project}/instructions/gemini.md.
Knowledge files
- Upload
all-knowledge.md from the repo root.
- This single file contains all runbooks and datasets merged together.
- Works well within Gemini's 10-file limit per Gem.
Other LLMs (Grok, etc.)
- Copy instructions from
compiled/{project}/instructions/ (use the closest match).
- Upload
all-knowledge.md from the repo root.
Compilation and inheritance
How it works
Each user compiles projects in their own repo. What content gets included depends on inheritance.
Example: Compiling in ai-knowledge-personal:
compiled/
├── personal/ # Baseline (ragbot + personal)
├── company/ # personal + company merged
├── client-a/ # personal + company + client-a merged
└── client-b/ # personal + client-b merged
Example: Compiling in ai-knowledge-company (team member without access to personal):
compiled/
├── company/ # Baseline (ragbot + company, NO personal)
├── client-a/ # company + client-a (NO personal)
└── client-c/ # company + client-c
Privacy model
Content is only included if the user has access to the source repo:
- Private content (ai-knowledge-{personal}) only appears in that user's compilations
- Team members get team content but not personal content
- Clients only get client-specific content
Running instruction compilation
ragbot compile --project {name}
ragbot compile --project {name} --no-llm
ragbot compile --project {name} --force
ragbot compile --project {name} --verbose
Knowledge concatenation (all-knowledge.md) is handled automatically by CI/CD -- no manual step needed.
Step-by-step workflow
-
Compile instructions (only if instructions changed):
ragbot compile --project {name} --no-llm
-
For each project (e.g., client-a):
- Claude: Create project, copy
compiled/client-a/instructions/claude.md to custom instructions, GitHub sync the repo
- ChatGPT: Create GPT, copy
compiled/client-a/instructions/chatgpt.md to instructions, upload all-knowledge.md
- Gemini: Create Gem, copy
compiled/client-a/instructions/gemini.md to instructions, upload all-knowledge.md
-
Verify by testing each project with a representative query.
Updating projects
When to update
Knowledge (all-knowledge.md): Updates automatically via CI/CD on every push to source/. No manual step.
Instructions: Recompile only when instructions change (rare):
ragbot compile --project {name} --force
LLM sync:
- Claude: GitHub sync auto-updates
- ChatGPT/Gemini: Re-upload
all-knowledge.md after source changes
Troubleshooting
"Instructions too long"
- Move detailed content to knowledge files
- Check manifest.yaml for token counts
- Keep instructions focused on identity and behavior
"Knowledge not being used"
- Verify
all-knowledge.md was uploaded correctly
- Check if content is in instructions vs knowledge
- For Claude: ensure GitHub sync is active and pointing to the repo
"Inheritance not working"
- Verify
my-projects.yaml exists in the personal repo
- Check inheritance chain in compile-config.yaml
- Run with
--verbose to see inheritance resolution
"Content from wrong repo appearing"
- Check which repo you are compiling in
- Verify you have access to expected repos
- Remember: content only comes from repos you can access