Vendor Detection

This document describes how AIWG regenerate commands detect which AI coding assistant is active, ena

Vendor Detection

This document describes how AIWG regenerate commands detect which AI coding assistant is active, enabling vendor-specific context generation.

Detection Strategy

Each regenerate command should detect the active vendor to include only relevant commands and references, reducing context pollution.

Vendor Detection Rules

Claude Code

Primary indicators:

  • `.claude/` directory exists
  • `.claude/settings.json` or `.claude/settings.local.json` exists
  • `CLAUDE.md` exists at project root

Command format: Slash commands (`/command-name`)

Agent format: Markdown files in `.claude/agents/`

Features:

  • Native @-mention support for file references
  • Project context window controls
  • Tool access controls via settings.json
  • Command autodiscovery from `.claude/commands/`

GitHub Copilot

Primary indicators:

  • `.github/copilot-instructions.md` exists
  • `.github/agents/*.yml` files exist
  • GitHub Copilot extension detected (check for `.github/copilot/` directory)

Command format: Natural language (no slash commands)

Agent format: YAML files in `.github/agents/`

Features:

  • Copilot Chat with @-mention agents
  • Issue-to-PR automation via Copilot Coding Agent
  • Workspace context awareness
  • GitHub ecosystem integration

Cursor

Primary indicators:

  • `.cursorrules` file exists at project root
  • `.cursor/` directory exists
  • `.cursor/rules/` contains rule files

Command format: Natural language prompts

Agent format: Rules in `.cursorrules` or `.cursor/rules/*.md`

Features:

  • Inline chat and composer modes
  • Codebase-wide search and context
  • Custom rules and instructions
  • Multi-file editing

Windsurf (Codeium)

Primary indicators:

  • `.windsurfrules` file exists at project root
  • Windsurf-specific configuration detected

Command format: Natural language prompts

Agent format: Instructions in `.windsurfrules`

Features:

  • Cascade AI assistant
  • Flow mode for task completion
  • Multi-file awareness
  • Codeium context engine

Warp Terminal

Primary indicators:

  • `WARP.md` exists at project root
  • Terminal context (check `$TERM_PROGRAM` environment variable if available)

Command format: Terminal commands and aliases

Agent format: Instructions in `WARP.md`

Features:

  • Terminal-first AI assistance
  • Command suggestions
  • Error explanations
  • Workflow automation

Factory AI

Primary indicators:

  • `.factory/` directory exists
  • `.factory/droids/` contains droid definitions

Command format: Droid invocations

Agent format: JSON/YAML in `.factory/droids/*.json`

Features:

  • Custom droid deployment
  • Workflow automation
  • CI/CD integration
  • Multi-platform support

OpenCode

Primary indicators:

  • `.opencode/` directory exists
  • `.opencode/agent/` contains agent definitions

Command format: Agent commands

Agent format: Definitions in `.opencode/agent/`

Features:

  • Open-source agent framework
  • Custom agent development
  • Extensible tool system

Codex (OpenAI)

Primary indicators:

  • `~/.codex/` directory exists in user home
  • Codex configuration files present

Command format: Natural language

Agent format: Skills in `~/.codex/skills/`

Features:

  • OpenAI Codex integration
  • Custom skill deployment
  • API-based interactions

Detection Priority Order

When multiple indicators are present, use this priority order:

1. Claude Code - Most specific detection (`.claude/` + `CLAUDE.md`) 2. GitHub Copilot - GitHub-specific indicators 3. Cursor - `.cursorrules` is distinctive 4. Windsurf - `.windsurfrules` is distinctive 5. Warp - `WARP.md` is distinctive 6. Factory AI - `.factory/droids/` structure 7. OpenCode - `.opencode/agent/` structure 8. Codex - Home directory configuration

Multi-Vendor Projects

Some projects may support multiple vendors. In these cases:

1. Detect all active vendors 2. Generate separate context files for each 3. Include cross-references in each file 4. Keep each context file focused on its specific vendor

Example:

Project has:
  - .claude/ (Claude Code active)
  - .github/copilot-instructions.md (Copilot active)
  - .cursorrules (Cursor active)

Generate:
  - CLAUDE.md (only Claude commands)
  - .github/copilot-instructions.md (only Copilot patterns)
  - .cursorrules (only Cursor rules)

Each file references the others for full picture.

Vendor-Specific Command Inclusion

Claude Code Context (CLAUDE.md)

Include:

  • Claude Code slash commands from `.claude/commands/`
  • Claude-specific agent definitions
  • Claude settings and tool configurations
  • @-mention references to local files

Exclude:

  • Copilot YAML agent definitions
  • Cursor rule syntax
  • Factory droid configurations
  • Terminal-specific commands (unless WARP.md also present)

Reference (don't inline):

  • Full command list at AIWG installation path
  • Links to Copilot/Cursor docs for multi-vendor setups
  • Framework documentation

GitHub Copilot Context (.github/copilot-instructions.md)

Include:

  • Copilot agent YAML references
  • GitHub Actions workflow integration
  • Natural language command patterns
  • Issue-to-PR automation notes

Exclude:

  • Claude Code slash commands
  • Cursor-specific rule syntax
  • Warp terminal commands
  • Factory droid definitions

Reference (don't inline):

  • AIWG framework documentation
  • Links to Claude/Cursor for multi-vendor setups

Cursor Context (.cursorrules)

Include:

  • Cursor rule syntax
  • Project-specific coding conventions
  • Natural language prompts
  • File path references

Exclude:

  • Claude Code slash commands
  • Copilot YAML syntax
  • Warp terminal commands
  • Factory droid JSON

Reference (don't inline):

  • AIWG documentation
  • Links to other vendor configs

Windsurf Context (.windsurfrules)

Include:

  • Windsurf-specific instructions
  • Cascade AI patterns
  • Flow mode guidelines

Exclude:

  • Other vendor-specific syntax

Warp Context (WARP.md)

Include:

  • Terminal commands and aliases
  • Shell script patterns
  • CLI workflow automation
  • Environment-specific notes

Exclude:

  • IDE-specific commands
  • GUI-based workflow instructions

Factory AI Context (.factory/droids/)

Include:

  • Droid definitions (JSON/YAML)
  • Factory-specific workflow patterns
  • CI/CD integration notes

Exclude:

  • IDE-specific commands
  • Other agent formats

AGENTS.md (Multi-vendor fallback)

Include:

  • Generic agent descriptions
  • Natural language patterns
  • Project structure and commands
  • Framework references

Purpose: Used by platforms without specific context files (OpenCode, Codex, custom platforms)

Implementation Pattern

Each regenerate command should:

// Pseudo-code
function regenerateContext(vendor: string, options: RegenerateOptions) {
  // 1. Detect active vendor
  const detectedVendor = detectVendor();

  // 2. Load vendor-specific template
  const template = loadTemplate(detectedVendor);

  // 3. Gather project info (common across vendors)
  const projectInfo = analyzeProject();

  // 4. Load ONLY vendor-specific commands/agents
  const vendorCommands = loadCommandsForVendor(detectedVendor);
  const vendorAgents = loadAgentsForVendor(detectedVendor);

  // 5. Generate context with vendor-specific content
  const context = template.render({
    project: projectInfo,
    commands: vendorCommands,
    agents: vendorAgents,
    references: generateReferences(detectedVendor)
  });

  // 6. Add "Full Reference" section with links (not inline content)
  context += generateFullReferenceSection(detectedVendor);

  return context;
}

function generateFullReferenceSection(vendor: string): string {
  return `
## Full Command Reference

For complete AIWG command documentation, see:
- Installation: ~/.local/share/ai-writing-guide/
- SDLC Commands: @~/.local/share/ai-writing-guide/agentic/code/frameworks/sdlc-complete/commands/
- Utilities: @~/.local/share/ai-writing-guide/agentic/code/addons/aiwg-utils/commands/

Multi-vendor setup? See ${getOtherVendorLinks(vendor)}
`;
}

Context Size Guidelines

Each vendor context file should target:

  • Claude Code (CLAUDE.md): 300-500 lines
  • GitHub Copilot: 250-400 lines
  • Cursor (.cursorrules): 200-350 lines
  • Windsurf (.windsurfrules): 200-350 lines
  • Warp (WARP.md): 150-300 lines
  • AGENTS.md: 300-450 lines

If a context file exceeds these ranges, move detailed content to separate docs and use @-mentions/references.

Testing Detection

To test vendor detection:

1. Create test projects with various vendor indicators 2. Run regenerate command without arguments 3. Verify correct vendor is detected 4. Verify only vendor-specific content is included 5. Verify references section points to full docs

Migration Notes

Existing regenerate commands that inline all content should be updated to:

1. Add vendor detection logic 2. Filter commands/agents by vendor 3. Replace full content inlining with reference sections 4. Maintain backward compatibility with explicit vendor flags

Example:

# Auto-detect (new behavior)
/aiwg-regenerate-claude

# Explicit vendor (backward compatible)
/aiwg-regenerate --vendor claude

# Include everything (opt-in for full context)
/aiwg-regenerate-claude --full-reference