agestra 4.14.2 → 4.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@
12
12
  "name": "agestra",
13
13
  "source": "./",
14
14
  "description": "Multi-host MCP orchestration across Claude, Ollama, Gemini, and Codex for review, QA, and cross-validation",
15
- "version": "4.14.2",
15
+ "version": "4.14.3",
16
16
  "author": {
17
17
  "name": "mua-vtuber"
18
18
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agestra",
3
- "version": "4.14.2",
3
+ "version": "4.14.3",
4
4
  "description": "Claude Code plugin — multi-host MCP orchestration across Claude, Ollama, Gemini, and Codex for review, QA, and cross-validation",
5
5
  "mcpServers": {
6
6
  "agestra": {
@@ -21,7 +21,7 @@ description: |
21
21
  model: sonnet
22
22
  color: magenta
23
23
  codexSandboxMode: read-only
24
- tools: Read, Glob, Grep, Bash, WebFetch, WebSearch, TodoWrite, AskUserQuestion, Skill, ToolSearch, CronCreate, CronList, CronDelete, Agent, mcp__plugin_agestra_agestra__environment_check, mcp__plugin_agestra_agestra__provider_list, mcp__plugin_agestra_agestra__provider_health, mcp__plugin_agestra_agestra__trace_query, mcp__plugin_agestra_agestra__trace_summary, mcp__plugin_agestra_agestra__trace_visualize, mcp__plugin_agestra_agestra__ai_chat, mcp__plugin_agestra_agestra__ai_analyze_files, mcp__plugin_agestra_agestra__ai_compare, mcp__plugin_agestra_agestra__agent_research_consensus_start, mcp__plugin_agestra_agestra__agent_consensus_start, mcp__plugin_agestra_agestra__agent_debate_status, mcp__plugin_agestra_agestra__agent_consensus_submit_turn, mcp__plugin_agestra_agestra__agent_debate_approve, mcp__plugin_agestra_agestra__agent_debate_continue, mcp__plugin_agestra_agestra__agent_debate_reject, mcp__plugin_agestra_agestra__agent_cross_validate, mcp__plugin_agestra_agestra__cli_worker_spawn, mcp__plugin_agestra_agestra__cli_worker_status, mcp__plugin_agestra_agestra__cli_worker_collect, mcp__plugin_agestra_agestra__cli_worker_stop, mcp__plugin_agestra_agestra__agent_changes_review, mcp__plugin_agestra_agestra__agent_changes_accept, mcp__plugin_agestra_agestra__agent_changes_reject, mcp__plugin_agestra_agestra__workspace_create_document, mcp__plugin_agestra_agestra__workspace_read, mcp__plugin_agestra_agestra__workspace_list
24
+ tools: Read, Glob, Grep, Bash, WebFetch, WebSearch, TodoWrite, AskUserQuestion, Skill, ToolSearch, CronCreate, CronList, CronDelete, Agent, mcp__plugin_agestra_agestra__environment_check, mcp__plugin_agestra_agestra__provider_list, mcp__plugin_agestra_agestra__provider_health, mcp__plugin_agestra_agestra__provider_readiness, mcp__plugin_agestra_agestra__provider_trust_apply, mcp__plugin_agestra_agestra__run_observable_events, mcp__plugin_agestra_agestra__trace_query, mcp__plugin_agestra_agestra__trace_summary, mcp__plugin_agestra_agestra__trace_visualize, mcp__plugin_agestra_agestra__ai_chat, mcp__plugin_agestra_agestra__ai_analyze_files, mcp__plugin_agestra_agestra__ai_compare, mcp__plugin_agestra_agestra__agent_research_consensus_start, mcp__plugin_agestra_agestra__agent_consensus_start, mcp__plugin_agestra_agestra__agent_debate_status, mcp__plugin_agestra_agestra__agent_consensus_submit_turn, mcp__plugin_agestra_agestra__agent_debate_approve, mcp__plugin_agestra_agestra__agent_debate_continue, mcp__plugin_agestra_agestra__agent_debate_reject, mcp__plugin_agestra_agestra__agent_cross_validate, mcp__plugin_agestra_agestra__cli_worker_spawn, mcp__plugin_agestra_agestra__cli_worker_status, mcp__plugin_agestra_agestra__cli_worker_collect, mcp__plugin_agestra_agestra__cli_worker_stop, mcp__plugin_agestra_agestra__agent_changes_review, mcp__plugin_agestra_agestra__agent_changes_accept, mcp__plugin_agestra_agestra__agent_changes_reject, mcp__plugin_agestra_agestra__workspace_create_document, mcp__plugin_agestra_agestra__workspace_read, mcp__plugin_agestra_agestra__workspace_list
25
25
  ---
26
26
 
27
27
  <Role>
@@ -94,6 +94,36 @@ The same `agestra-research` agent can run more than once with different lenses.
94
94
  </Assignment_Prompt_Crafting>
95
95
 
96
96
  <Research_And_Consensus>
97
+ Domain skills provide the domain-specific question sheet output. Do not repeat
98
+ the full domain interview when the handoff packet already contains target,
99
+ scope, depth/lens, constraints, and report expectations.
100
+
101
+ For provider-backed idea, design, review, security, and explicit research work,
102
+ honor the handoff's `research_topology` / `조사 방식`. Use canonical topology
103
+ values in MCP calls: `host-seeded`, `council`, or `provider-seeded`
104
+ (`host-led` may appear only as a legacy/user-facing alias for `host-seeded`).
105
+
106
+ - `host-seeded`: the current host and host-native `agestra-research` prepare the
107
+ first evidence/aggregation; external providers primarily challenge, revise,
108
+ and debate prepared items.
109
+ - `council`: host-native researchers and external providers receive independent
110
+ investigation assignments before consolidation. Before fan-out, create or
111
+ confirm a bounded assignment table when the handoff does not already include
112
+ approved rows.
113
+ - `provider-seeded`: one configured provider creates the first seed/evidence
114
+ artifact; host-native and other provider participants independently challenge
115
+ it. If the seed provider is missing or unavailable, ask once for a replacement
116
+ or fall back to `host-seeded` when asking is blocked.
117
+ - `automatic`: choose the lightest topology that preserves quality. Prefer
118
+ `host-seeded` for bounded/scoped work, `council` for broad/open-ended discovery,
119
+ and `provider-seeded` only when the user named a seed provider or explicitly
120
+ asked a provider to lead the investigation.
121
+
122
+ If provider-backed work needs a research topology but the handoff omitted it,
123
+ ask one concise topology question. This is a cost/latency gate, not a domain
124
+ clarification. If a host-level no-questions directive prevents asking, choose
125
+ `host-seeded` and report that external investigation fan-out was limited.
126
+
97
127
  Use `agent_research_consensus_start` when the task needs investigation before
98
128
  provider consensus. The host owns research planning, research collection,
99
129
  quality checks, consolidation, pre-agreement, debate input creation, and final
@@ -161,6 +191,48 @@ External providers may cross-check QA evidence, but browser/dev-server/runtime
161
191
  flows and persistent E2E file creation remain host-owned.
162
192
  </QA_Boundary>
163
193
 
194
+ <QA_Brigade_Execution>
195
+ For `/agestra qa`, do not assume provider-backed mode just because providers are
196
+ configured. If the handoff packet does not already contain a user-selected mode,
197
+ ask once for Host-only QA, QA Brigade, or Decide automatically.
198
+
199
+ That mode selection is a cost/permission gate, not a clarifying question. If a
200
+ host-level no-questions directive prevents asking, choose Host-only QA and
201
+ report that provider fan-out was skipped. Trust registration is a separate
202
+ security approval gate: no-questions / keep-going instructions are not user
203
+ approval. If providers are workspace-blocked, ask once and then call
204
+ `provider_trust_apply` once per approved provider. Use batch trust only when the
205
+ host permission model explicitly permits it.
206
+
207
+ Default QA Brigade is a fast host-prepared consensus path:
208
+
209
+ 1. Run the host-owned evidence pass first (`qa_run`, design/progress inspection,
210
+ code/file evidence, and E2E/runtime artifacts when selected).
211
+ 2. Use host-native `agestra-research` only through the active host's native
212
+ agent surface for narrow evidence assignments. Never put `agestra-research`
213
+ in the external provider `participants` list.
214
+ 3. Prepare `initial_aggregation.items` from concrete evidence. Include only
215
+ findings or disputed claims that external providers can cross-check from the
216
+ provided artifacts.
217
+ 4. Call `agent_consensus_start`, not `agent_research_consensus_start`, for the
218
+ default QA Brigade round. Use exact provider participants, optional
219
+ `participant_routes` for a host-native `agestra-debate` participant,
220
+ `max_rounds: 1` for Standard QA, and a bounded participant timeout.
221
+ 5. Poll `agent_debate_status` and `run_observable_events` when a locator is
222
+ available while provider work is running. Surface concise progress at least
223
+ every 30-60 seconds. If this agent is running in a background mode whose
224
+ progress cannot reach the user, tell the caller to poll and relay progress,
225
+ or fall back to Host-only QA for the current run. If the status reports
226
+ pending host turns, dispatch the `agestra-debate` native agent with the
227
+ pending packet, then submit the JSON using `agent_consensus_submit_turn`.
228
+
229
+ Use `agent_research_consensus_start` for QA only when the user explicitly asks
230
+ for deep external-provider research before consensus. In that exception,
231
+ external AI research and debate run in separate fresh sessions. The default QA
232
+ Brigade should avoid that extra research round because the host already owns the
233
+ executable QA evidence.
234
+ </QA_Brigade_Execution>
235
+
164
236
  <E2E_Test_Authoring>
165
237
  Persistent E2E work is an implementation sub-mode, not a standalone agent.
166
238
 
@@ -21,7 +21,7 @@ Before anything else, call `setup_status`. If it reports `Setup required: yes` o
21
21
 
22
22
  Agestra uses a single shared `providers.config.json` resolved through `AGESTRA_CONFIG_PATH` or `~/.agestra/providers.config.json` (existing legacy `$CLAUDE_PLUGIN_ROOT/providers.config.json` remains readable). No config -> no sanctioned provider set or locale -> interactive setup is the only correct starting point. Auto-detect without explicit setup can silently include disabled providers. Do not silently choose defaults or write config without the user's provider/language choices.
23
23
 
24
- Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder, then call `provider_trust_apply_all` after approval.
24
+ Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder. This is a security approval gate, not a clarifying question; "keep going" / no-questions instructions are not approval. After approval, call `provider_trust_apply` once per blocked provider. Use `provider_trust_apply_all` only when the host permission model explicitly allows batch trust changes. If approval cannot be obtained, skip blocked providers.
25
25
 
26
26
  ## Step 1: Determine design subject
27
27
 
@@ -51,7 +51,7 @@ Need-to-know details:
51
51
  - **Progress style:** one complete pass, MVP then completion, or staged checkpoints
52
52
  - **Completion criteria:** how the user and AI workers will know the implementation is done
53
53
  - **Research notes:** existing patterns in this codebase, prior art / competing implementations, constraints / regulations, current-information needs, or `skip`
54
- - **Research assignments:** any preferred participant/lens split for host-led investigation, or `skip`
54
+ - **Research assignments:** any preferred participant/lens split for the selected investigation, or `skip`
55
55
 
56
56
  Nice-to-know details:
57
57
  - Visual mood, references, and interaction style
@@ -61,6 +61,19 @@ Nice-to-know details:
61
61
 
62
62
  Do not start `environment_check`, `provider_list`, team-lead handoff, or provider fan-out until the design subject and need-to-know details have explicit user-provided values, explicit defaults requested by the user, or explicit defer/skip values.
63
63
 
64
+ ## Step 2: Choose 조사 방식
65
+
66
+ Before provider fan-out, ask once which investigation topology to use unless the user already specified it:
67
+
68
+ | Option | Description |
69
+ |--------|-------------|
70
+ | **Host-led Research (Recommended)** | The current host/native researchers inspect the codebase and prepare the first design evidence packet; providers challenge and debate it. Record internally as `host-seeded`. |
71
+ | **Council Research** | Host and providers independently investigate design options with assigned lenses before consolidation and debate. |
72
+ | **Provider-seeded Research** | One selected provider creates the first design seed/evidence artifact; host and other providers challenge it. |
73
+ | **Decide automatically** | Use Host-led for bounded design work, Council for broad architecture exploration, and Provider-seeded only when the user named a provider to lead. |
74
+
75
+ Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. This is a cost/latency gate, not a design clarification. If a host-level no-questions directive prevents asking, choose Host-led Research (`host-seeded`) and report that broader provider investigation was skipped. If Provider-seeded Research is selected and the seed provider is not explicit, record the seed provider as pending; after provider availability is listed, ask which available provider should seed. Do not infer it.
76
+
64
77
  Default design principles:
65
78
  - Prefer maintainable structure and code quality over easy/fast patchwork
66
79
  - Keep responsibilities separated to avoid spaghetti code
@@ -70,7 +83,7 @@ Default design principles:
70
83
  - List included, excluded, and deferred items, then get explicit user approval before implementation begins. Use `AskUserQuestion` when available, or a plain numbered prompt as fallback.
71
84
  - Put an Implementation Progress section at the top of the design document, initialized with Planned rows for the included scope and evidence needed for verification
72
85
 
73
- ## Step 2: Route execution
86
+ ## Step 3: Route execution
74
87
 
75
88
  Call `environment_check` and `provider_list` to determine which providers and execution options are available.
76
89
 
@@ -80,7 +93,7 @@ Respect the providers list verbatim. A provider marked `Not found`, unavailable,
80
93
  Stop Agestra orchestration and tell the user to run `/agestra setup` to enable a provider, or ask the current host to do design work directly outside Agestra. Do not spawn a host specialist from this command.
81
94
 
82
95
  **Provider-backed path — 1+ external providers available (multi-AI):**
83
- Hand off to the `agestra:agestra-team-lead` agent with multi-AI mode **pre-selected**. Provider-backed design uses the host research consensus flow:
96
+ Hand off to the `agestra:agestra-team-lead` agent with multi-AI mode **pre-selected**. Provider-backed design uses the selected research topology flow:
84
97
 
85
98
  ```text
86
99
  호스트가 조사한다.
@@ -98,7 +111,8 @@ External AI research and debate run in separate fresh sessions, even when the sa
98
111
  - **Idea decision record:** path under `docs/ideas/` if the design came from a saved idea
99
112
  - **User constraints:** any explicit constraints provided
100
113
  - **Consensus domain:** `design`
101
- - **Research notes:** what the host-led investigation should look for (existing patterns, prior art, constraints, current-information needs)
114
+ - **Research topology / 조사 방식:** selected in Step 2 (`host-seeded`, `council`, `provider-seeded`, or `automatic`)
115
+ - **Research notes:** what the selected investigation should look for (existing patterns, prior art, constraints, current-information needs)
102
116
  - **Research assignments:** optional participant/lens rows for `research_assignments`
103
117
  - **Available providers:** from `environment_check` / `provider_list`
104
118
  - **Requested providers:** explicit names captured from the user's wording (e.g. `[codex, gemini]`); otherwise "all available"
@@ -108,7 +122,7 @@ External AI research and debate run in separate fresh sessions, even when the sa
108
122
 
109
123
  Team-lead owns the rest:
110
124
  - Building the participant team from focused research lenses, explicit host-turn debate participants, and external providers when applicable
111
- - Calling `agent_research_consensus_start` with `domain: "design"`, the design `objective`, `participants`, optional `research_assignments`, optional `provider_order`, bounded `max_rounds`, and output document flags.
125
+ - Resolving the selected research topology, then calling `agent_research_consensus_start` when investigation fan-out is required or `agent_consensus_start` with prepared `initial_aggregation.items` when seed/host evidence is already available.
112
126
  - Ensuring external AI research and debate use separate fresh sessions.
113
127
  - Never creating a bundled research pseudo-participant and never carrying research bundles through `source_documents`.
114
128
  - Inspecting `aggregation_record.json`, `open_debate_items.json`, `round_packet.{round}.{provider}.json`, the aggregation document, and the leader-authored final decision document under `docs/agestra/`.
@@ -121,7 +135,7 @@ Team-lead owns the rest:
121
135
 
122
136
  Direct execution from this command bypasses team-lead's capability-based routing and optional trace-assisted signals (`trace_summary`), task design, and consistency enforcement. Always go through team-lead in the provider-backed path.
123
137
 
124
- ## Step 3: Present the result
138
+ ## Step 4: Present the result
125
139
 
126
140
  When team-lead returns:
127
141
  - Name the source idea decision document path under `docs/ideas/` when one was used
package/commands/idea.md CHANGED
@@ -21,7 +21,7 @@ Before anything else, call `setup_status`. If it reports `Setup required: yes` o
21
21
 
22
22
  Rationale: Agestra's path resolver uses a single shared `providers.config.json` resolved through `AGESTRA_CONFIG_PATH` or `~/.agestra/providers.config.json` (existing legacy `$CLAUDE_PLUGIN_ROOT/providers.config.json` remains readable). Without it, auto-detect silently enables whatever is installed and there is no configured locale, which has caused disabled providers to participate in past runs. Setup is the only sanctioned way to pick the active set. Do not silently choose defaults or write config without the user's provider/language choices.
23
23
 
24
- Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder, then call `provider_trust_apply_all` after approval.
24
+ Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder. This is a security approval gate, not a clarifying question; "keep going" / no-questions instructions are not approval. After approval, call `provider_trust_apply` once per blocked provider. Use `provider_trust_apply_all` only when the host permission model explicitly allows batch trust changes. If approval cannot be obtained, skip blocked providers.
25
25
 
26
26
  ## Step 1: Determine topic
27
27
 
@@ -40,7 +40,7 @@ For **Existing project**, collect:
40
40
  - **Idea areas:** design, usability, onboarding, new features, automation, performance, accessibility, docs, DX, integrations, monetization, community, or other
41
41
  - **User wishes:** user requests, complaints, positive reactions, or "people seem to want..." signals, or `none`
42
42
  - **Research notes:** competitor landscape, positive/negative user reactions, current-information needs, source constraints, or `skip`
43
- - **Research assignments:** any preferred participant/lens split for host-led investigation, or `skip`
43
+ - **Research assignments:** any preferred participant/lens split for the selected investigation, or `skip`
44
44
  - **Protected identity/boundaries:** what should not change, or `unspecified`
45
45
  - **Free notes:** anything else the user wants to say, or `skip`
46
46
 
@@ -52,14 +52,27 @@ For **New project idea**, collect:
52
52
  - **References:** apps, games, sites, or tools to borrow from or react against, or `none`
53
53
  - **Difference:** how this should feel different from existing apps, or `unspecified`
54
54
  - **Research notes:** similar apps, competitor/user-reaction depth, current-information needs, source constraints, or `skip`
55
- - **Research assignments:** any preferred participant/lens split for host-led investigation, or `skip`
55
+ - **Research assignments:** any preferred participant/lens split for the selected investigation, or `skip`
56
56
  - **Free notes:** rough thoughts are welcome, or `skip`
57
57
 
58
58
  Do not start `environment_check`, `provider_list`, team-lead handoff, or any provider fan-out until all required fields for the selected idea mode have explicit user-provided values or explicit skip values.
59
59
 
60
60
  Idea exploration should stay broad and creative. Do not filter primarily by implementation difficulty; feasibility, MVP scope, and build strategy belong in the later `/agestra design` step after the user chooses an idea.
61
61
 
62
- Provider-backed `/agestra idea` uses the host research consensus flow:
62
+ ## Step 2: Choose 조사 방식
63
+
64
+ Before provider fan-out, ask once which investigation topology to use unless the user already specified it:
65
+
66
+ | Option | Description |
67
+ |--------|-------------|
68
+ | **Host-led Research (Recommended)** | The current host prepares the first evidence packet, then providers challenge and debate it. Fastest and lowest-cost default. Record internally as `host-seeded`. |
69
+ | **Council Research** | Host and providers independently investigate assigned lenses before consolidation and debate. Stronger for broad/open-ended exploration. |
70
+ | **Provider-seeded Research** | One selected provider creates the first seed/evidence artifact, then host and other providers challenge it. |
71
+ | **Decide automatically** | Use Host-led for bounded topics, Council for broad idea discovery, and Provider-seeded only when the user named a provider to lead. |
72
+
73
+ Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. This is a cost/latency gate, not a domain clarification. If a host-level no-questions directive prevents asking, choose Host-led Research (`host-seeded`) and report that broader provider investigation was skipped. If Provider-seeded Research is selected and the seed provider is not explicit, record the seed provider as pending; after provider availability is listed, ask which available provider should seed. Do not infer it.
74
+
75
+ Provider-backed `/agestra idea` uses the selected research topology flow:
63
76
 
64
77
  ```text
65
78
  호스트가 조사한다.
@@ -70,7 +83,7 @@ Provider-backed `/agestra idea` uses the host research consensus flow:
70
83
 
71
84
  External AI research and debate run in separate fresh sessions, even when the same provider participates in both phases. If the user explicitly wants to bypass research, route the work to the active host outside Agestra instead.
72
85
 
73
- ## Step 2: Route execution
86
+ ## Step 3: Route execution
74
87
 
75
88
  Call `environment_check` and `provider_list` to determine available providers.
76
89
 
@@ -88,7 +101,8 @@ Hand off to the `agestra:agestra-team-lead` agent with multi-AI mode **pre-selec
88
101
  - **Topic:** `$ARGUMENTS` or the user's clarified topic
89
102
  - **Interview answers:** the details collected above, including research notes, research assignments, and free notes
90
103
  - **Consensus domain:** `idea`
91
- - **Research notes:** what the host-led investigation should look for
104
+ - **Research topology / 조사 방식:** selected in Step 2 (`host-seeded`, `council`, `provider-seeded`, or `automatic`)
105
+ - **Research notes:** what the selected investigation should look for
92
106
  - **Research assignments:** optional participant/lens rows for `research_assignments`
93
107
  - **Available providers:** from `environment_check`
94
108
  - **Requested providers:** explicit names captured from user wording; otherwise "all available"
@@ -98,7 +112,8 @@ Hand off to the `agestra:agestra-team-lead` agent with multi-AI mode **pre-selec
98
112
 
99
113
  Team-lead owns the rest:
100
114
  - Building the participant team from idea research lenses, explicit host-turn debate participants, and external providers. External providers are MCP/CLI/chat participants only.
101
- - Calling `agent_research_consensus_start` with `domain: "idea"`, the idea `objective`, `participants`, optional `research_assignments`, optional `provider_order`, bounded `max_rounds`, and output document flags.
115
+ - Resolving the selected research topology, then calling `agent_research_consensus_start` when investigation fan-out is required or `agent_consensus_start` with prepared `initial_aggregation.items` when seed/host evidence is already available.
116
+ - For research fan-out, pass `domain: "idea"` to `agent_research_consensus_start`.
102
117
  - Ensuring external AI research and debate use separate fresh sessions.
103
118
  - Never creating a bundled research pseudo-participant and never carrying research bundles through `source_documents`.
104
119
  - Writing the project-facing idea decision record under `docs/agestra/YYYY-MM-DD-idea-<session-id>-result.md` from the aggregation document, JSON artifacts, consensus state, and the user's interview answers. Preserve disputed positions and weak-evidence flags rather than averaging them away.
@@ -114,7 +129,7 @@ Writing the final project-facing idea decision record under `docs/agestra/` is a
114
129
 
115
130
  Direct execution bypasses team-lead's capability-based routing, optional trace-assisted signals, and consistency enforcement. Always go through team-lead in the provider-backed path.
116
131
 
117
- ## Step 3: Present to the user
132
+ ## Step 4: Present to the user
118
133
 
119
134
  When team-lead returns:
120
135
  - Name the debate document, consensus JSON ledger, and final synthesis document when the structured session is finalized
@@ -21,7 +21,7 @@ Before anything else, call `setup_status`. If it reports `Setup required: yes` o
21
21
 
22
22
  Agestra uses a single shared `providers.config.json` resolved through `AGESTRA_CONFIG_PATH` or `~/.agestra/providers.config.json` (existing legacy `$CLAUDE_PLUGIN_ROOT/providers.config.json` remains readable). No config -> no sanctioned provider set or locale -> interactive setup is the only correct starting point. Do not silently choose defaults or write config without the user's provider/language choices.
23
23
 
24
- Before any provider fan-out or `cli_worker_spawn`, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder, then call `provider_trust_apply_all` after approval.
24
+ Before any provider fan-out or `cli_worker_spawn`, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder. This is a security approval gate, not a clarifying question; "keep going" / no-questions instructions are not approval. After approval, call `provider_trust_apply` once per blocked provider. Use `provider_trust_apply_all` only when the host permission model explicitly allows batch trust changes. If approval cannot be obtained, skip blocked providers.
25
25
 
26
26
  ## Step 1: Determine implementation target
27
27
 
@@ -79,11 +79,11 @@ Determine QA depth for the post-implementation verification:
79
79
  Use `AskUserQuestion` when available, or a plain numbered prompt as fallback for long/costly Full QA or persistent E2E test-file approval. Treat Standard QA as the default only when the user has not requested Full QA/E2E and no high-risk runtime flow requires explicit confirmation.
80
80
 
81
81
  Determine QA routing separately from implementation routing:
82
- - When configured external providers are available, team-lead routes post-implementation QA through the QA Brigade.
82
+ - When configured external providers are available, team-lead may route post-implementation QA through the QA Brigade, but it should still avoid an extra external research phase unless the user explicitly asked for deep provider research.
83
83
  - If executable checks are required, the host owns command/browser/runtime evidence collection and providers review that evidence.
84
84
  - E2E/runtime execution is always host-owned. External providers may review the host QA report, command output, screenshots, traces, and E2E findings, but they must not run browser/dev-server flows or create persistent E2E files directly.
85
85
  - QA-only mode does not modify product code; connection or boundary defects are findings until the user approves a separate implementation task.
86
- - Provider-backed QA uses the host research consensus flow through `agent_research_consensus_start` with `domain: "qa"`:
86
+ - Provider-backed QA uses the fast host-prepared consensus path by default:
87
87
 
88
88
  ```text
89
89
  호스트가 조사한다.
@@ -92,7 +92,7 @@ Determine QA routing separately from implementation routing:
92
92
  호스트가 문서화한다.
93
93
  ```
94
94
 
95
- External AI research and debate run in separate fresh sessions, even when the same provider participates in both phases.
95
+ The host prepares executable QA evidence first, then providers cross-check prepared `initial_aggregation.items` through `agent_consensus_start`. Use `agent_research_consensus_start` for QA only when the user explicitly asks for deep external-provider research; in that exception, External AI research and debate run in separate fresh sessions, even when the same provider participates in both phases.
96
96
 
97
97
  ## Step 5: Execute via team-lead
98
98
 
package/commands/qa.md CHANGED
@@ -19,7 +19,7 @@ Before anything else, call `setup_status`. If it reports `Setup required: yes` o
19
19
  1. Invoke the `agestra:setup` skill (or run `/agestra setup` inline) — provider detection, selection, locale, `setup_apply`.
20
20
  2. After the config is written, resume this `/agestra qa` command **from Step 1**, preserving `$ARGUMENTS`. Do not ask the user to retype.
21
21
 
22
- Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder, then call `provider_trust_apply_all` after approval.
22
+ Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder. This is a security approval gate, not a clarifying question; "keep going" / no-questions instructions are not approval. After approval, call `provider_trust_apply` once per blocked provider. Use `provider_trust_apply_all` only when the host permission model explicitly allows batch trust changes. If approval cannot be obtained, skip blocked providers or fall back to Host-only QA.
23
23
 
24
24
  ## Step 1: Determine QA target
25
25
 
@@ -32,7 +32,21 @@ If no target is provided:
32
32
  - If no design document exists, explain that QA needs a design contract and suggest `/agestra design` first.
33
33
  Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. Do not proceed to QA depth or provider routing until the QA target/source-of-truth is explicit.
34
34
 
35
- ## Step 2: Choose QA depth
35
+ ## Step 2: Choose QA execution mode
36
+
37
+ Ask the user once:
38
+
39
+ > Which QA execution mode should I use?
40
+
41
+ | Option | Description |
42
+ |--------|-------------|
43
+ | **Host-only QA (Recommended)** | Fastest path. The current host collects evidence, runs `qa_run`, writes the QA report, and does not call external providers. |
44
+ | **QA Brigade** | The host collects evidence first, then enabled providers cross-check the prepared findings through a short consensus round. Takes longer. |
45
+ | **Decide automatically** | Use Host-only QA unless the target is broad/high-risk, the user explicitly asked for multiple AIs/providers, or the design has disputed evidence. |
46
+
47
+ Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. This is a cost/permission gate, not a clarifying question. Do not infer provider-backed QA merely because `/agestra qa` was invoked or providers are configured. Only skip this question when the user already explicitly requested current-host-only QA, named provider-backed/multi-AI QA, or chose a mode in the same request. If a host-level no-questions directive prevents asking, choose Host-only QA and report that provider fan-out was skipped.
48
+
49
+ ## Step 3: Choose QA depth
36
50
 
37
51
  Ask the user once:
38
52
 
@@ -44,7 +58,7 @@ Ask the user once:
44
58
  | **Full QA with E2E** | Standard QA plus existing E2E tests, temporary browser automation, screenshots when useful, and core real-user flows |
45
59
  | **Decide automatically** | Include E2E when UI flow, auth, file operations, public release, destructive actions, or complex state transitions are central |
46
60
 
47
- Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. Do not infer QA depth unless the user chose `Decide automatically` or the request already explicitly asked for Standard QA or Full QA/E2E.
61
+ Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. This is a cost/permission gate, not a clarifying question. Do not infer QA depth unless the user chose `Decide automatically` or the request already explicitly asked for Standard QA or Full QA/E2E. If a host-level no-questions directive prevents asking, choose Standard QA and report that E2E was skipped unless the user explicitly requested it.
48
62
 
49
63
  If the user chooses Full QA and persistent E2E test files must be added or updated, QA must ask approval and route test-file work to `agestra-implementer` with `mode: e2e-test-authoring`. QA itself remains read-only for source code and persistent tests.
50
64
 
@@ -52,17 +66,28 @@ Even in multi-AI QA, E2E/runtime execution is host-owned. External providers may
52
66
 
53
67
  QA writes a Markdown report under `docs/reports/qa/` unless the user explicitly asks for chat-only output.
54
68
 
55
- Then ask host-led research notes before provider fan-out: spec-to-code mapping gaps, API/consumer data shape, route/link mapping, state transition completeness, command/result consistency, suspected regressions, integration/regression risk, edge/error states, test adequacy, safety hygiene, E2E artifact interpretation, or `skip`. Ask whether any provider or lens should receive a specific research assignment, or whether team-lead should choose.
69
+ If QA Brigade was selected, then ask focused provider cross-check notes before provider fan-out: spec-to-code mapping gaps, API/consumer data shape, route/link mapping, state transition completeness, command/result consistency, suspected regressions, integration/regression risk, edge/error states, test adequacy, safety hygiene, E2E artifact interpretation, or `skip`. Ask whether any provider or host-native lens should receive a specific cross-check assignment, or whether team-lead should choose.
56
70
 
57
- ## Step 3: Route execution
71
+ ## Step 4: Route execution
58
72
 
59
73
  Call `environment_check` and `provider_list`.
60
74
 
75
+ **Host-only path:**
76
+ Run the host-owned QA evidence pass directly:
77
+
78
+ - Use `qa_run` for build/test verification where applicable.
79
+ - Inspect the design/progress contract, implementation files, command output, and runtime/E2E artifacts according to the selected depth.
80
+ - Use host-native `agestra-research` only as a bounded native helper assignment when the current host exposes native agents and the evidence question is narrow.
81
+ - Write the QA report under `docs/reports/qa/`.
82
+ - Do not call `agent_research_consensus_start`, `agent_consensus_start`, `ai_chat`, or external provider tools.
83
+
61
84
  **No-provider stop path:**
62
- Stop Agestra orchestration and tell the user to run `/agestra setup` to enable a provider, or ask the current host to verify directly outside Agestra.
85
+ If QA Brigade was selected but no external provider is available, stop provider orchestration and offer Host-only QA or `/agestra setup`. Do not spawn a provider-backed consensus with zero providers.
86
+
87
+ **Provider-backed path — QA Brigade selected and 1+ configured external providers available:**
88
+ Before any provider fan-out, run workspace trust readiness for the exact target root. If supported providers are blocked, ask once whether to register only this project folder. This is a security approval gate, not a clarifying question; "keep going" / no-questions instructions are not approval. After approval, call `provider_trust_apply` once per blocked provider. Use `provider_trust_apply_all` only when the host permission model explicitly allows batch trust changes. If approval cannot be obtained, skip blocked providers or fall back to Host-only QA. Pass `workspace_base_dir` explicitly to provider readiness/trust and consensus calls whenever the host workspace root may be ambiguous.
63
89
 
64
- **Provider-backed path 1+ configured external providers available (host research consensus + QA Brigade):**
65
- Hand off to `agestra:agestra-team-lead`. Provider-backed QA uses the host research consensus flow:
90
+ Hand off to `agestra:agestra-team-lead`. Provider-backed QA uses the fast host-prepared consensus path by default:
66
91
 
67
92
  ```text
68
93
  호스트가 조사한다.
@@ -71,11 +96,11 @@ Hand off to `agestra:agestra-team-lead`. Provider-backed QA uses the host resear
71
96
  호스트가 문서화한다.
72
97
  ```
73
98
 
74
- External AI research and debate run in separate fresh sessions, even when the same provider participates in both phases. Build a self-contained handoff packet:
99
+ The host must prepare QA evidence before provider fan-out. External providers cross-check the prepared evidence; they do not run the initial research phase. Build a self-contained handoff packet:
75
100
 
76
101
  - **Domain:** `qa`
77
102
  - **Submode:** `qa-only`
78
- - **Mode:** `multi-ai`
103
+ - **Mode:** `qa-brigade` (selected by the user; do not re-ask)
79
104
  - **QA formation:** QA Brigade
80
105
  - **QA target:** from Step 1
81
106
  - **QA depth:** Standard QA / Full QA with E2E / Decide automatically
@@ -84,11 +109,11 @@ External AI research and debate run in separate fresh sessions, even when the sa
84
109
  - **Report artifact path expectation:** `docs/reports/qa/YYYY-MM-DD-qa-[target].md`
85
110
  - **Consensus domain:** `qa`
86
111
  - **Connection / Boundary Checks:** API/consumer data shape, route/link mapping, state transition completeness, command/result consistency, and E2E artifact interpretation when E2E ran
87
- - **Research notes:** what the host-led investigation should look for (spec-to-code gaps, boundary mismatches, regressions, integration risk, edge/error states, test adequacy, safety hygiene)
88
- - **Research assignments:** optional participant/lens rows for `research_assignments`
112
+ - **Research notes:** what the host-owned evidence pass should look for (spec-to-code gaps, boundary mismatches, regressions, integration risk, edge/error states, test adequacy, safety hygiene)
113
+ - **Cross-check assignments:** optional provider/lens rows for the short consensus round, or "team-lead choose"
89
114
  - **Available providers:** from `environment_check`; include configured providers when their detected model capability is suitable, using read-only QA/review tools so verification cannot modify source files
90
115
  - **Requested providers:** explicit names captured from user wording; otherwise "all configured and available review-capable providers"
91
- - **QA lens handoff:** when a host QA/review/security perspective is needed, team-lead assigns `agestra-research` focused lenses and includes that evidence in the host-led consolidation inputs. Do not create a bundled research participant.
116
+ - **QA lens handoff:** when a host QA/review/security perspective is needed, team-lead assigns `agestra-research` focused native-agent lenses before provider fan-out and includes that evidence in the host-prepared `initial_aggregation`. Do not list `agestra-research` as an external provider participant.
92
117
  - **Brigade lenses:** host executable evidence, spec-to-code compliance, implementation progress truthfulness, integration/regression risk, edge/error states, test adequacy, basic safety hygiene, and E2E artifact review when E2E ran
93
118
  - **QA-only boundary:** QA-only mode does not modify product code; connection or boundary defects are findings until the user approves a separate implementation task
94
119
  - **JSON finding flow:** candidate findings become `ITEM-*` ledger items; participants use the existing `agree` / `disagree` / `opinion` / `revise` stance contract; only ledger-accepted items affect the final verdict
@@ -96,11 +121,14 @@ External AI research and debate run in separate fresh sessions, even when the sa
96
121
  - **Target workspace root:** absolute project folder if the user supplied or implied one; pass it to workspace/debate MCP calls as `workspace_base_dir`
97
122
  - **Original user request:** preserve verbatim
98
123
 
99
- Team-lead owns running the host-owned QA evidence pass, then calling `agent_research_consensus_start` with `domain: "qa"`, the QA `objective`, `participants`, optional `research_assignments`, optional `provider_order`, bounded `max_rounds`, and output document flags. Team-lead must ensure external AI research and debate use separate fresh sessions, must never create a bundled research pseudo-participant, and must never carry research bundles through `source_documents`. Inspect `aggregation_record.json`, `open_debate_items.json`, `round_packet.{round}.{provider}.json`, the aggregation document, and the leader-authored final decision document under `docs/agestra/`. This command must not call `agent_consensus_start` directly for provider-backed QA; the research consensus workflow prepares the aggregation first. Do not ask for a separate multi-AI confirmation in the provider-backed path; provider selection already came from setup. If the user asks for current-host-only verification, handle that outside Agestra.
124
+ Team-lead owns running the host-owned QA evidence pass, then preparing `initial_aggregation.items` from concrete evidence and calling `agent_consensus_start` with `domain` represented only in metadata, exact provider participants, `participant_routes` for any host-native `agestra-debate` participant, `max_rounds: 1` for Standard QA, and a bounded participant timeout. Team-lead must poll `agent_debate_status` and `run_observable_events` when a locator is available, then surface concise progress at least every 30-60 seconds while provider work is running. When the status reports pending host turns, team-lead dispatches the native `agestra-debate` agent and submits the JSON with `agent_consensus_submit_turn`. If the current host cannot surface progress from a background team-lead, the caller must poll and relay progress, or choose Host-only QA for the current run.
125
+
126
+ Do not call `agent_research_consensus_start` for the default QA Brigade path. That tool is reserved for an explicit deep provider-research mode; in that exception, External AI research and debate run in separate fresh sessions, even when the same provider participates in both phases. Default QA Brigade must avoid the extra external research round because QA already has host-owned executable evidence.
100
127
 
101
- ## Step 4: Present the final result
128
+ ## Step 5: Present the final result
102
129
 
103
130
  When QA returns:
131
+ - State QA execution mode
104
132
  - State QA depth and whether E2E was run
105
133
  - Link or name the design document used
106
134
  - Link the QA report artifact under `docs/reports/qa/`
@@ -16,7 +16,7 @@ Call `setup_status` first. If setup is required, run the setup workflow, then re
16
16
 
17
17
  Then call `environment_check` and `provider_list` before proposing any multi-provider plan.
18
18
 
19
- Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder, then call `provider_trust_apply_all` after approval.
19
+ Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder. This is a security approval gate, not a clarifying question; "keep going" / no-questions instructions are not approval. After approval, call `provider_trust_apply` once per blocked provider. Use `provider_trust_apply_all` only when the host permission model explicitly allows batch trust changes. If approval cannot be obtained, skip blocked providers.
20
20
 
21
21
  ## Step 1: Clarify research target domain and topic
22
22
 
@@ -64,6 +64,9 @@ Available 조사 방식:
64
64
 
65
65
  If the user already chose one, validate that it fits the domain and continue.
66
66
  If not, propose one recommendation with a short reason and ask for approval.
67
+ This is a cost/latency gate, not a clarifying question. If a host-level
68
+ no-questions directive prevents asking, choose Host-seeded Research and report
69
+ that broader provider investigation was skipped.
67
70
  If no external providers are available, stop Agestra orchestration and tell the user to run setup or handle the research directly outside Agestra.
68
71
 
69
72
  Host-seeded Research means the active host creates the first seed/evidence document, persists it through workspace document tooling, and external participants challenge it through `domain: "research"`. It is provider-backed research, not a host-only multi-AI mode.
@@ -21,7 +21,7 @@ Before anything else, call `setup_status`. If it reports `Setup required: yes` o
21
21
 
22
22
  Agestra uses a single shared `providers.config.json` resolved through `AGESTRA_CONFIG_PATH` or `~/.agestra/providers.config.json` (existing legacy `$CLAUDE_PLUGIN_ROOT/providers.config.json` remains readable). No config -> no sanctioned provider set or locale -> interactive setup is the only correct starting point. Do not silently choose defaults or write config without the user's provider/language choices.
23
23
 
24
- Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder, then call `provider_trust_apply_all` after approval.
24
+ Before any provider fan-out, run the shared workspace trust preflight for the exact current project root. If supported providers are blocked, ask once whether to register only this project folder. This is a security approval gate, not a clarifying question; "keep going" / no-questions instructions are not approval. After approval, call `provider_trust_apply` once per blocked provider. Use `provider_trust_apply_all` only when the host permission model explicitly allows batch trust changes. If approval cannot be obtained, skip blocked providers.
25
25
 
26
26
  ## Step 1: Determine review scope
27
27
 
@@ -73,9 +73,22 @@ Optionally ask tone if useful:
73
73
 
74
74
  Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. Do not infer review lens/depth/tone when the user has not provided enough signal; explicit defaults such as `Balanced review`, `Standard review`, or `skip tone` are acceptable.
75
75
 
76
- Then ask host-led research notes before provider fan-out: regression-prone areas, blast radius / downstream callers, prior incidents, dependency / supply-chain concerns, current-information needs, or `skip`. Ask whether any provider or lens should receive a specific research assignment, or whether team-lead should choose.
76
+ Then ask research notes before provider fan-out: regression-prone areas, blast radius / downstream callers, prior incidents, dependency / supply-chain concerns, current-information needs, or `skip`. Ask whether any provider or lens should receive a specific research assignment, or whether team-lead should choose.
77
77
 
78
- ## Step 3: Route execution
78
+ ## Step 3: Choose 조사 방식
79
+
80
+ Before provider fan-out, ask once which investigation topology to use unless the user already specified it:
81
+
82
+ | Option | Description |
83
+ |--------|-------------|
84
+ | **Host-led Research (Recommended)** | The current host prepares bounded review evidence first; providers challenge and debate the prepared findings. Record internally as `host-seeded`. |
85
+ | **Council Research** | Host and providers independently inspect assigned review lenses before consolidation and debate. |
86
+ | **Provider-seeded Research** | One selected provider creates the first review seed/evidence artifact; host and other providers challenge it. |
87
+ | **Decide automatically** | Use Host-led for scoped reviews, Council for whole-project/deep reviews, and Provider-seeded only when the user named a provider to lead. |
88
+
89
+ Use `AskUserQuestion` when available, or a plain numbered prompt as fallback. This is a cost/latency gate, not a review clarification. If a host-level no-questions directive prevents asking, choose Host-led Research (`host-seeded`) and report that broader provider investigation was skipped. If Provider-seeded Research is selected and the seed provider is not explicit, record the seed provider as pending; after provider availability is listed, ask which available provider should seed. Do not infer it.
90
+
91
+ ## Step 4: Route execution
79
92
 
80
93
  Call `environment_check` and `provider_list` to determine available providers.
81
94
 
@@ -83,7 +96,7 @@ Call `environment_check` and `provider_list` to determine available providers.
83
96
  Stop Agestra orchestration and tell the user to run `/agestra setup` to enable a provider, or ask the current host to review directly outside Agestra. Do not spawn a host specialist from this command.
84
97
 
85
98
  **Provider-backed path — 1+ external providers available (multi-AI):**
86
- Hand off to the `agestra:agestra-team-lead` agent with multi-AI mode **pre-selected**. Provider-backed review uses the host research consensus flow:
99
+ Hand off to the `agestra:agestra-team-lead` agent with multi-AI mode **pre-selected**. Provider-backed review uses the selected research topology flow:
87
100
 
88
101
  ```text
89
102
  호스트가 조사한다.
@@ -102,11 +115,12 @@ External AI research and debate run in separate fresh sessions, even when the sa
102
115
  - **Boundary:** this is critique/evaluation, not QA PASS/FAIL and not a deep security audit
103
116
  - **Report artifact path expectation:** `docs/reports/review/YYYY-MM-DD-review-[target].md`
104
117
  - **Consensus domain:** `review`
105
- - **Research notes:** what the host-led investigation should look for (regression-prone areas, blast radius, prior incidents, dependency concerns, current-information needs)
118
+ - **Research topology / 조사 방식:** selected in Step 3 (`host-seeded`, `council`, `provider-seeded`, or `automatic`)
119
+ - **Research notes:** what the selected investigation should look for (regression-prone areas, blast radius, prior incidents, dependency concerns, current-information needs)
106
120
  - **Research assignments:** optional participant/lens rows for `research_assignments`
107
121
  - **Available providers:** from `environment_check`; include configured providers when their detected model capability is suitable, using read-only review tools for code/document critique
108
122
  - **Requested providers:** explicit names captured from user wording; otherwise "all available review-capable"
109
- - **Review lens handoff:** when a host review perspective is needed, team-lead assigns `agestra-research` a focused review lens and includes that evidence in the host-led consolidation inputs. Do not create a bundled research participant.
123
+ - **Review lens handoff:** when a host review perspective is needed, team-lead assigns `agestra-research` a focused review lens and includes that evidence in the selected research/consolidation inputs. Do not create a bundled research participant.
110
124
  - **Scale controls:** normal scoped reviews inherit the 5-minute participant timeout. If the target is a whole project, a large directory, or deep review, instruct team-lead to create a bounded review packet before fan-out: changed files, key entry points, relevant docs/config, and explicit exclusions. Do not ask external CLI providers to explore an unbounded large repository from scratch. Use `participant_timeout_ms: 600000` (10 minutes) for large/deep reviews, and split the review into narrower area debates if providers still time out.
111
125
  - **Locale:** from `setup_status`
112
126
  - **Target workspace root:** absolute project folder if the user supplied or implied one; pass it to workspace/debate MCP calls as `workspace_base_dir`
@@ -114,7 +128,7 @@ External AI research and debate run in separate fresh sessions, even when the sa
114
128
 
115
129
  Team-lead owns the rest:
116
130
  - Building the participant team from focused review lenses, explicit host-turn debate participants, and external providers
117
- - Calling `agent_research_consensus_start` with `domain: "review"`, the review `objective`, `participants`, optional `research_assignments`, optional `provider_order`, bounded `max_rounds`, and output document flags.
131
+ - Resolving the selected research topology, then calling `agent_research_consensus_start` when investigation fan-out is required or `agent_consensus_start` with prepared `initial_aggregation.items` when seed/host evidence is already available.
118
132
  - Ensuring external AI research and debate use separate fresh sessions.
119
133
  - Never creating a bundled research pseudo-participant and never carrying research bundles through `source_documents`.
120
134
  - Inspecting `aggregation_record.json`, `open_debate_items.json`, `round_packet.{round}.{provider}.json`, the aggregation document, and the leader-authored final decision document under `docs/agestra/`.
@@ -127,7 +141,7 @@ Team-lead owns the rest:
127
141
 
128
142
  Direct execution from this command bypasses team-lead's task design, capability-based routing with optional trace-assisted signals (`trace_summary`), and consistency enforcement. Always go through team-lead in the provider-backed path.
129
143
 
130
- ## Step 4: Present the final result
144
+ ## Step 5: Present the final result
131
145
 
132
146
  When team-lead returns:
133
147
  - Link the debate markdown, consensus JSON ledger, and synthesis document if created