---
description: "Internal  -  input type detection for multi-agent dispatcher."
---

# _input-parser  -  Multi-Agent Input Type Classification

The top-level `multi-agent` command classifies user arguments per the rules below.

> **Language**: Schema reference only  -  no user-facing text. Picker `label` + `header` always English (`promptLanguage` is locked to `"en"`); `question` + `description` follow `outputLanguage` per the `rules.md` matrix. Commit messages, branch names and PR titles stay English; PR/Jira/Confluence **bodies** follow `outputLanguage`.

## Type Table

| # | Pattern | Type | Example |
|---|---|---|---|
| 1 | `^[A-Z]+-[0-9]+$` | `jira-id` | `PROJ-1` |
| 2 | `https?://.*atlassian\.net/browse/.*` or `https?://jira\..*/browse/.*` | `jira-url` | `https://jira.example.com/browse/PROJ-1` |
| 3 | `https?://github\.com/.*/issues/[0-9]+` | `gh-url` | `https://github.com/o/r/issues/316` |
| 4 | `^[a-z0-9_-]+#[0-9]+$` | `gh-short` | `my-ios-app#316` |
| 5 | `^#?[0-9]+$` | `gh-num` | `316`, `#316` |
| 6 | `^jira$` | `picker-jira` | `jira` |
| 7 | `^issue$` | `picker-issue` | `issue` |
| 8 | (none of the above) | `freetext` | `"LoginView dark mode fix"` |

## Flow Effect

| Type | Account picker | Repo picker | Issue picker | Dev-context picker |
|---|---|---|---|---|
| `jira-id` / `jira-url` | ✅ (always) | ❌ | ❌ | ✅ |
| `gh-url` | ✅ | ❌ (URL implies repo) | ❌ | ✅ |
| `gh-short` | ✅ | ❌ (input implies repo) | ❌ | ✅ |
| `gh-num` | ✅ | ✅ (single-select) | ❌ | ✅ |
| `picker-jira` | ✅ | ✅ project (multi) | ✅ aggregate | ✅ |
| `picker-issue` | ✅ | ✅ repo (multi) | ✅ aggregate | ✅ |
| `freetext` | conditional¹ | ✅ (single-select, sources merged²) | ❌ | ✅ |

¹ Account picker is **skipped** when the resolved primary repo is local-only
  (`provider="local"`). No token lookup, no provider auth  -  the pipeline
  proceeds with `accountId=null` and Phases 6/7 honor the local-only mode.

² Free-text flow merges `github`+`bitbucket`+`local` repo caches into a
  single picker list; `(local)` rows come from `repo-cache.sh local "$HOME"`.

> **Rule**: Dev-context picker **always** runs (empty submit allowed → primary repo only).
