--- name: multi-agent-skill-trainer description: Updates checklists and personas for multi-agent skills. --- # Multi-Agent Skill Trainer Protocol This skill is responsible for capturing knowledge gaps and updating the personas and checklists of other multi-agent skills (e.g., code review, TDD implementation) based on execution feedback, constraints, or historical code reviews. ## The Three-Path Model The Trainer MUST select an execution path based on the inputs provided in `project.workflow.json`: 1. **BASIC_PATH (Iterative Refinement):** Used when a specific execution feedback file (`feedback_file`) is provided. *Workflow:* Stage 0 (Grounding) -> Stage 3 (Gap Analysis) -> Stage 4 (Upgrade). 2. **DEEP_PATH (Historical Learning):** Used when targeting files (`target_files_to_analyze`) or a specific CL (`cl_to_analyze`) to extract historical human feedback. *Workflow:* Stage 0 (Grounding) -> Stage 1 (Mining) -> Stage 3 (Gap Analysis) -> Stage 4 (Upgrade). 3. **BREADTH_PATH (Component Bootstrapping):** Used when targeting a whole component (`target_component`) to establish general rules. *Workflow:* Stage 0 (Grounding) -> Stage 2 (Parallel Research) -> Stage 3 (Gap Analysis) -> Stage 4 (Upgrade). ## Stages Overview - **Stage 0: Grounding & Verification** - **Stage 1: History Mining & Extraction (Deep Path Only)** - **Stage 2: Parallel Component Research (Breadth Path Only)** - **Stage 3: Gap Analysis & Collation** - **Stage 4: Ruleset Upgrade & Validation** ______________________________________________________________________ ## Stage 0: Grounding & Verification 1. **Read Inputs:** Read `project.workflow.json` (or standalone configuration) to discover target skill, `temp_directory`, and path-specific inputs. 2. **Verify Target:** Confirm the target skill directory exists, contains a `personas/` directory, and that each persona JSON file conforms to `schema.json#/definitions/PersonaDef`. 3. **Determine Path & Transition:** - If `feedback_file` is provided, select **BASIC_PATH** and transition to Stage 3. - Else if `target_files_to_analyze` or `cl_to_analyze` is provided, select **DEEP_PATH** and transition to Stage 1. - Else if `target_component` is provided, select **BREADTH_PATH** and transition to Stage 2. ______________________________________________________________________ ## Stage 1: History Mining & Extraction (Deep Path Only) 1. **Mine CLs (if `target_files_to_analyze` provided):** - For each file in the list, run `git log --follow --format=%B ` to fetch commit history. - Parse commit messages to extract Gerrit review links (e.g., `Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/(\d+)`). - Collect unique CL numbers. 2. **Fetch Comments:** - For each mined CL number (or the specific `cl_to_analyze` if provided), run `git cl comments `. - Save the raw comments output to a temporary JSON file (e.g., `gerrit_comments.workflow.json` in the `temp_directory`). 3. **Transition:** Set the feedback source to the temporary comments file and transition to Stage 3. ______________________________________________________________________ ## Stage 2: Parallel Component Research (Breadth Path Only) 1. **Determine Strategies:** Read `project.workflow.json#breadth_strategies`. If empty, auto-detect: - If `README.md` or `g3doc/` exists in `target_component` -> enable `STATIC_ARCH`. - If git history exists for `target_component` -> enable `CL_SAMPLING`. - If public headers exist in `target_component` -> enable `CONSUMER_USAGE`. 2. **Execute Research in Parallel:** Invoke the following subagents concurrently based on enabled strategies: - **STATIC_ARCH:** Invoke the `Architect` subagent (`personas/core/architect.json`) to scan docs, parse `BUILD.gn`, and write `temp_arch_rules.json` to the `temp_directory`. - **CL_SAMPLING:** Invoke the `History Miner` subagent (`personas/core/history_miner.json`) to sample the last 50 CLs for the component, fetch comments, and write `temp_sampled_rules.json` to the `temp_directory`. - **CONSUMER_USAGE:** Invoke the `Usage Analyzer` subagent (`personas/core/usage_analyzer.json`) to scan for external usage of the component's APIs and write `temp_usage_rules.json` to the `temp_directory`. 3. **Collate Research (Reduce Phase):** - Once all parallel subagents complete, invoke the `Consolidator` subagent (`personas/core/consolidator.json`). - The Consolidator must read all `temp_*.json` files, perform semantic de-duplication, and merge them into a single `breadth_gap_report.json` in the `temp_directory`. 4. **Transition:** Set the feedback source to `breadth_gap_report.json` and transition to Stage 3. ______________________________________________________________________ ## Stage 3: Gap Analysis & Collation 1. **Invoke Analyzer:** Invoke the Analyzer subagent (conforming to `personas/core/analyzer.json`). 2. **Analysis Task:** The Analyzer must: - Read the feedback source (either `feedback_file`, `gerrit_comments.workflow.json`, or `breadth_gap_report.json`). - Filter out noise if reading raw Gerrit comments. - Identify the responsible persona in the target skill. - Formulate new, generalized boolean checklist items. - Output the target persona name and the proposed checklist updates. 3. **Transition:** Move to Stage 4. ______________________________________________________________________ ## Stage 4: Ruleset Upgrade & Validation 1. **Invoke Upgrader:** Invoke the Upgrader subagent (conforming to `personas/core/upgrader.json`). 2. **Upgrade Task:** The Upgrader must: - Read the target persona JSON file from the target skill's directory. - Append the new checklist items to its `checklist`. - Validate that the updated persona file conforms to the `PersonaDef` schema. - Consult [segmentation.md](./references/segmentation.md) to check if the ruleset checklist exceeds 10 items. If it does, split the ruleset and update the target skill's `ROUTING.md`. 3. **Complete:** Confirm that the files are saved and exit. ## Evaluation & Testing When modifying this skill's workflow, routing, or schemas, ensure that the corresponding Promptfoo evaluation test suite is updated and passing: - [eval.promptfoo.yaml](../../prompts/eval/multi-agent-skill-trainer/eval.promptfoo.yaml)