Skip to content

Conversation

@AndreyNenashev
Copy link
Contributor

@AndreyNenashev AndreyNenashev commented Oct 23, 2025

This PR introduces full multi-agent support to the AWOS framework, transforming the installer into an agent-agnostic system capable of configuring multiple AI assistants (starting with Claude and GitHub Copilot).

The installer now uses an explicit --agent flag to determine which agent to set up, with centralized validation and configuration logic.

  1. GitHub Copilot Integration: Added full Copilot support to the installer, expanding AWOS into the Copilot ecosystem while maintaining backward compatibility.
  2. Scalable Foundation: Established a clear separation between core files and agent-specific directories (claude/, copilot/, etc.), paving the way for additional agent integrations.

agent flag example:

npx @provectusinc/awos

  ✗ Error: --agent flag is required
  • Usage: npx @provectusinc/awos --agent <agent-name>
  • Example: npx @provectusinc/awos --agent claude

🧠 Ecosystem Note — GitHub Copilot
Unlike Claude Code, GitHub Copilot cannot read or reference external files directly from prompts.
Because of this limitation, all AWOS commands and guidelines must be fully copied into Copilot prompts rather than referenced by path.

AndreyNenashev and others added 3 commits October 23, 2025 15:54
Refactored the AWOS installer to support multiple AI agents beyond Claude. The installer now requires an `--agent` flag to specify which agent to configure.

Changes:
- Added required `--agent` CLI flag with validation
- Separated core and agent-specific configurations in setup-config.js
- Introduced `getDirectories()` and `getCopyOperations()` functions
- Updated .gitignore to exclude .claude directory
- Modified summary output to use dynamic agent name

The architecture now distinguishes between:
- Core AWOS files (agent-agnostic)
- Agent-specific files (e.g., .claude/ for Claude Code)

This enables future support for additional AI agents while maintaining backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Introduced a centralized SUPPORTED_AGENTS constant to improve maintainability and consistency across the installer.

Changes:
- Added SUPPORTED_AGENTS array in setup-config.js as single source of truth
- Updated index.js to import and use SUPPORTED_AGENTS for validation
- Enhanced showHeader() to display which agent is being configured
- Error messages now dynamically list supported agents

Benefits:
- Easy to add new AI agents by updating one array
- Consistent agent validation across the codebase
- Better user feedback showing agent context in header
- Improved maintainability with centralized configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Introduced the GitHub Copilot agent to the AWOS framework, allowing users to configure and utilize Copilot-specific prompts and commands.

Changes:
- Updated `setup-config.js` to include `copilot` in the `SUPPORTED_AGENTS` array.
- Added agent-specific directories and copy operations for Copilot in the installer.
- Enhanced the installation process to support multiple AI agents, maintaining backward compatibility.

Benefits:
- Users can now leverage GitHub Copilot alongside existing agents, expanding the framework's capabilities.
- Improved maintainability and flexibility in managing agent-specific configurations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@AndreyNenashev
Copy link
Contributor Author

I didn't properly test it yet so let's keep in draft state for now

@workshur
Copy link
Member

@AndreyNenashev can we reuse existing prompts?

@AndreyNenashev
Copy link
Contributor Author

AndreyNenashev commented Oct 24, 2025

@AndreyNenashev can we reuse existing prompts?

@workshur Those prompts are actually full copies of original commands. Copilot cannot operate by referencing like claude but only by what we have in prompt content. The only prompt I changed is implement command.
Main difference is in the implement - switching instructions and role from "delegate to agent" to "prepare/formulate instructions for expert" that will require user input and confirmation.

### Step 3: Prepare Implementation Instructions

- **CRITICAL RULE:** You are **strictly prohibited** from writing, editing, or modifying any production code, configuration files, or database schemas yourself. Your only role is to prepare instructions for the appropriate expert.

1.  **Formulate Implementation Instructions:** Construct a clear and detailed instruction for the specialized implementation expert (Python Expert or React Expert). This instruction MUST include:
    - The full context from the three files you just loaded.
    - The specific task description that needs to be implemented.
    - Clear instructions on what code to write or what files to modify.
    - A definition of success (e.g., "The task is done when the new migration file is created and passes linting.").

2.  **Prepare Expert Invocation:** Based on the technology stack identified, prepare the appropriate expert invocation:
    - For Python/FastAPI backend tasks: Prepare invocation for `@awos.python-expert`
    - For React/Frontend tasks: Prepare invocation for `@awos.react-expert`

3.  **Output Implementation-Ready Prompt:** Present a complete, copy-paste ready prompt for the user to invoke the appropriate expert. Format it as follows:

@workshur
Copy link
Member

workshur commented Oct 24, 2025

@AndreyNenashev We need to update the install script to use the same templates for all agents. Both Copilot and CloudCode should pull from the .awos folder. For Copilot, the script can copy those templates, place them into the required structure, and rename them as needed. The goal is to avoid duplication across the framework.

For implemen & tech, consider shipping two template variants: a single-agent version and a multi-agent version.

@AndreyNenashev
Copy link
Contributor Author

AndreyNenashev commented Oct 24, 2025

@AndreyNenashev We need to update the install script to use the same templates for all agents. Both Copilot and CloudCode should pull from the .awos folder. For Copilot, the script can copy those templates, place them into the required structure, and rename them as needed. The goal is to avoid duplication across the framework.

Yeah I was thinking about this, but I'm not sure about the whole "Prepare Implementation Instructions" thing in the "implement" command - if it's gonna work or not. So I didn't want to change the setup/install flow before ensuring that prompts at least work.

@workshur workshur requested a review from Copilot October 31, 2025 15:24
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds multi-agent support to the AWOS installer, allowing users to configure the framework for different AI agents (Claude Code and GitHub Copilot). The --agent flag is now mandatory, and the installer dynamically creates agent-specific directories and files based on the selected agent.

Key changes:

  • Made the --agent flag required for the installer
  • Refactored configuration to separate core AWOS files from agent-specific files
  • Added support for GitHub Copilot with new prompt files in copilot/prompts/
  • Updated all documentation and error messages to reflect multi-agent support

Reviewed Changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/index.js Added mandatory --agent flag parsing and validation with error handling
src/config/setup-config.js Refactored from static arrays to functions that combine core and agent-specific configurations
src/core/setup-orchestrator.js Updated to use dynamic configuration functions and pass agent parameter through the setup flow
src/utils/logger.js Added agent parameter to header and summary displays for dynamic path messaging
src/CLAUDE.md Updated documentation to reflect new multi-agent architecture and usage patterns
copilot/prompts/*.md Added 9 new GitHub Copilot prompt files mirroring Claude workflow commands
README.md Updated installation instructions and CLI flags documentation to require --agent flag
.gitignore Added .claude directory to prevent accidental commits of local agent configurations


1. **Confirm Target:** Once the spec is identified (e.g., `001-user-profile-picture-upload`), announce your task: "Okay, I will now create the technical considerations for **'User Profile Picture Upload'**."
2. **Read Documents:** Carefully read the `functional-spec.md` within the chosen directory AND the main `context/product/architecture.md` document.
3. **Identify Domain Expert (if applicable):** Based on the functional spec and architecture document, determine which technology stack(s) this feature will primarily involve (e.g., Python backend, React frontend, or both). Check if corresponding domain experts exist in `.claude/agents/domain-experts/`. Common experts include python-expert for Python/backend work and react-expert for React/frontend work.
Copy link

Copilot AI Oct 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This GitHub Copilot prompt file incorrectly references the .claude/agents/domain-experts/ directory. For GitHub Copilot, this should reference .github/prompts/ or .awos/subagents/ (the agent-agnostic location), not the Claude-specific directory.

Suggested change
3. **Identify Domain Expert (if applicable):** Based on the functional spec and architecture document, determine which technology stack(s) this feature will primarily involve (e.g., Python backend, React frontend, or both). Check if corresponding domain experts exist in `.claude/agents/domain-experts/`. Common experts include python-expert for Python/backend work and react-expert for React/frontend work.
3. **Identify Domain Expert (if applicable):** Based on the functional spec and architecture document, determine which technology stack(s) this feature will primarily involve (e.g., Python backend, React frontend, or both). Check if corresponding domain experts exist in `.awos/subagents/`. Common experts include python-expert for Python/backend work and react-expert for React/frontend work.

Copilot uses AI. Check for mistakes.

// Parse and validate --agent flag
const agentIndex = process.argv.indexOf('--agent');
if (agentIndex === -1 || agentIndex === process.argv.length - 1) {
Copy link

Copilot AI Oct 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition agentIndex === process.argv.length - 1 incorrectly treats the last argument as missing a value. If --agent claude is the last argument, agentIndex + 1 would equal process.argv.length, making process.argv[agentIndex + 1] undefined. The condition should be agentIndex >= process.argv.length - 1 or check if process.argv[agentIndex + 1] is undefined after accessing it.

Suggested change
if (agentIndex === -1 || agentIndex === process.argv.length - 1) {
if (agentIndex === -1 || process.argv[agentIndex + 1] === undefined) {

Copilot uses AI. Check for mistakes.
npx @provectusinc/awos --agent claude --force-overwrite
```

**Important:** The `--force-overwrite` flag will overwrite existing files in `.claude/commands/awos` and `.claude/agents`.
Copy link

Copilot AI Oct 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This warning message is outdated and only mentions Claude-specific paths. It should be updated to be agent-agnostic, e.g., 'The --force-overwrite flag will overwrite existing agent-specific customization files' or include examples for both agents.

Suggested change
**Important:** The `--force-overwrite` flag will overwrite existing files in `.claude/commands/awos` and `.claude/agents`.
**Important:** The `--force-overwrite` flag will overwrite existing agent-specific customization files (e.g., `.AGENT/commands/awos` and `.AGENT/agents`). For example, if you use `--agent claude`, it will overwrite files in `.claude/commands/awos` and `.claude/agents`.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants