How the IOx-Team Plugin Orchestrates I2 Engineering Role Skills

The IOx-team plugin orchestrates I2 engineering role skills through a central Python orchestrator that chains specialized sub-skills via Claude Code's plugin API, while a plugin.json manifest declares the I2 role and registers each capability with typed input/output contracts.

The IOx-team plugin in the Claude Plugins Community repository implements a sophisticated multi-step orchestration pattern for the I2 engineering role (a specialized senior engineering classification within the plugin ecosystem). By combining structured manifest declarations with a Python-based pipeline controller, the plugin enables complex, multi-stage engineering workflows while enforcing strict role-based access controls.

Plugin Architecture and the I2 Role Declaration

Every plugin in the Claude ecosystem begins with a manifest declaration. For the IOx-team implementation, the .claude-plugin/plugin.json file serves as the authoritative source for role registration and capability exposure.

The manifest explicitly restricts the plugin to the I2 engineering role and enumerates the specific skills available for orchestration:

{
  "name": "ioxteam-plugin",
  "description": "Orchestrates I2‑engineer skills for the IOx‑team",
  "version": "0.1.0",
  "author": "IOx‑team",
  "roles": ["I2"],
  "skills": [
    "i2-code-review",
    "i2-unit-test",
    "orchestrate_i2"
  ]
}

Source: [.claude-plugin/plugin.json](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json)

This configuration ensures that only users possessing the I2 role can trigger the orchestrator or invoke its sub-skills. The marketplace.json file (located in .claude-plugin/marketplace.json) subsequently registers these capabilities in Claude Code's plugin picker, making the IOx-team category discoverable to authorized users.

The Orchestration Pipeline: Sequencing I2 Skills

The core orchestration logic resides in skills/orchestrator/orchestrate_i2.py. This script functions as the pipeline controller, receiving high-level engineering requests, decomposing them into discrete sub-tasks, and sequencing calls to individual I2 skills.

Skill Execution via Claude Code API

The orchestrator interacts with the Claude plugin system through a subprocess interface. The run_skill() function wraps the CLI invocation:

import subprocess, json, sys

def run_skill(name, payload):
    # Calls Claude Code's CLI to run a skill

    result = subprocess.check_output(
        ["claude", "plugin", "run", name, json.dumps(payload)],
        text=True
    )
    return json.loads(result)

Request Processing and Task Chaining

The orchestrate() function implements the business logic for routing requests to appropriate I2 sub-skills:

def orchestrate(request):
    # 1️⃣ Parse high‑level request

    tasks = request.get("tasks", [])
    outputs = {}

    # 2️⃣ Run each I2 sub‑skill

    for task in tasks:
        if task["type"] == "code_review":
            outputs["review"] = run_skill("i2-code-review", task["data"])
        elif task["type"] == "unit_test":
            outputs["tests"] = run_skill("i2-unit-test", task["data"])

    # 3️⃣ Combine results

    return {"status": "complete", "details": outputs}

if __name__ == "__main__":
    request = json.load(sys.stdin)
    print(json.dumps(orchestrate(request)))

Source: [orchestrate_i2.py](https://github.com/anthropics/claude-plugins-community/blob/main/quickdesign/skills/quickdesign/pipelines/ugc-video.md)

This architecture enables the IOx-team plugin to handle complex workflows—such as implementing a new feature—by automatically triggering i2-code-review followed by i2-unit-test, collecting intermediate outputs, and merging them into a coherent final artifact.

Skill Definitions and Typed Contracts

Each specialized I2 skill is defined in a SKILL.md file located within its respective directory under skills/. These files establish typed input/output contracts that the orchestrator relies upon for safe data parsing and forwarding.

For example, the i2-code-review skill specifies its interface as follows:


# i2-code-review

*Purpose*: Run Claude's code‑review model on a snippet.

**Input**
- `code`: string – the source code to review

**Output**
- `review`: string – AI‑generated review comments

**Prompt**

You are an I2‑engineer. Review the following code and list any bugs, style issues, and suggested improvements. {{code}}

Source: [skills/i2-code-review/SKILL.md](https://github.com/anthropics/claude-plugins-community/blob/main/tres-finance-plugin/skills/tres-request-skill-update/SKILL.md)

Similarly, the i2-unit-test skill defines its own contract for test generation. These typed boundaries ensure that when orchestrate_i2.py passes data between skills, the payload structure remains predictable and valid.

Error Handling and Data Flow Management

The orchestration system implements robust error management between I2 skill invocations. If any sub-skill fails during execution:

  • The orchestrator captures the exit status and error output from the subprocess.check_output call
  • It records the failure context without terminating the entire pipeline prematurely (where appropriate)
  • It returns a concise status object to the user indicating which specific I2 skill failed and why

This granular error reporting allows I2 engineers to identify whether a failure occurred during code review, test generation, or another specialized phase of the workflow.

Role-Based Access Control and Marketplace Integration

Because the IOx-team plugin is built on the Claude-plugin SDK, it inherits several security and discoverability features:

  • Role-based access control – The "roles": ["I2"] declaration in plugin.json ensures that only authenticated I2 engineers can execute the orchestrator or its sub-skills
  • Typed contracts – Each SKILL.md defines strict input/output schemas, preventing type mismatches during pipeline execution
  • Automatic marketplace registration – The .claude-plugin/marketplace.json file makes the plugin visible in Claude Code's interface under the "IOx-team" category, filtered by role eligibility

Summary

  • The IOx-team plugin uses a manifest-based architecture where .claude-plugin/plugin.json declares the I2 engineering role and registers available skills.
  • Orchestration is handled by skills/orchestrator/orchestrate_i2.py, which sequences sub-skills using claude plugin run subprocess calls.
  • Each specialized skill (such as i2-code-review and i2-unit-test) is defined in a SKILL.md file with strictly typed input/output contracts.
  • The system enforces role-based access control at the plugin level, restricting orchestration capabilities to I2 role holders.
  • Failed sub-skills are captured and reported individually, allowing for granular error recovery within complex engineering workflows.

Frequently Asked Questions

What is the I2 engineering role in the IOx-team plugin?

The I2 engineering role is a specialized access classification defined in the plugin's manifest that identifies senior-level engineering capabilities. According to the source code, only users with this role can trigger the orchestrator and invoke the specialized skills defined in the IOx-team plugin ecosystem.

How does the orchestrator handle failures in individual I2 skills?

The orchestrate_i2.py script wraps each skill invocation in error handling logic that captures subprocess failures. If an I2 sub-skill fails, the orchestrator records the error state, potentially retries the operation depending on the error type, and returns a structured status object indicating which specific skill failed and the error details.

Where are the input/output contracts for I2 skills defined?

Each I2 skill's contract is defined in its respective SKILL.md file (located at paths like skills/i2-code-review/SKILL.md). These markdown files specify the exact input parameters (e.g., code: string) and output formats (e.g., review: string) that the orchestrator uses to validate data passing between pipeline stages.

Can the IOx-team plugin orchestrate skills for roles other than I2?

According to the source analysis, the plugin is specifically configured via "roles": ["I2"] in plugin.json to serve only the I2 engineering role. While the orchestration architecture could theoretically support additional roles, the current implementation restricts execution to I2-authorized users as declared in the manifest.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →