feat(agents): add Task Challenger adversarial questioning agent#1315
feat(agents): add Task Challenger adversarial questioning agent#1315rezatnoMsirhC wants to merge 7 commits intomainfrom
Conversation
- add task-challenger.agent.md with What/Why/How interrogation protocol - add task-challenge.prompt.md with optional artifact inputs - add 🥊 Challenge handoff to task-reviewer.agent.md - register agent and prompt in hve-core and hve-core-all collections - regenerate plugin outputs 🥊 - Generated by Copilot
…t/1212-adversarial-task-challenger-agent
… task-challenger - add Phase 1: Scope with artifact discovery, git fallback, and user confirmation - scope Prohibited Behaviors and Response Format to Challenge Phase only - add execute/runInTerminal and execute/getTerminalOutput to tools frontmatter - renumber Read → Phase 2, Identify → Phase 3, Challenge → Phase 4 - add 'Go next' skip signal handling to Phase 4 Protocol ✨ - Generated by Copilot
- add five-level ordered scope fallback with verified git commands - auto-create challenge tracking document at Phase 4 entry - add Challenge Tracking Document Schema section to Phase 4 - weight Compact handoff toward Task Researcher as default - add challenges/ to .copilot-tracking listing in copilot-instructions.md ⚡ - Generated by Copilot
…nger handoffs - add challenges/ artifact check to Task Researcher Phase 1 Step 1 - update Task Challenger handoff prompts to reference challenge document path 🔗 - Generated by Copilot
…t/1212-adversarial-task-challenger-agent
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1315 +/- ##
==========================================
- Coverage 87.63% 87.62% -0.02%
==========================================
Files 61 61
Lines 9328 9328
==========================================
- Hits 8175 8174 -1
- Misses 1153 1154 +1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
🎨 - Generated by Copilot
There was a problem hiding this comment.
PR Review: feat(agents): add Task Challenger adversarial questioning agent
This is a well-conceived and thoroughly described feature. The adversarial questioning model, four-phase protocol, and data contract from challenger outputs to researcher inputs are all clearly specified. The automated checks pass. Two issues need to be resolved before merging.
Issue Alignment
The PR description uses Related to #1212 rather than Fixes #1212 or Closes #1212. The PR template instructs contributors to use Fixes # or Closes # syntax. If this PR fully delivers the feature described in the linked issue, consider updating to Closes #1212 so the issue is automatically closed on merge. If the issue is intentionally left open (e.g., it tracks ongoing work), a brief note explaining why would clarify intent.
PR Template Compliance
The PR adds AI artifact files (a new agent and a new prompt), which requires completing the AI Artifact Contributions checklist:
* [ ] Used `/prompt-analyze` to review contribution
* [ ] Addressed all feedback from `prompt-builder` review
* [ ] Verified contribution follows common standards and type-specific requirements
All three remain unchecked. These checkboxes represent a required quality gate for AI artifact contributions. Please complete the /prompt-analyze review, address any feedback, and check these items before requesting re-review.
ℹ️ Documentation checkbox
The Documentation is updated (if applicable) checkbox is unchecked. The Additional Notes section acknowledges that docs/agents/README.md currently omits the Task Challenger. While deferring the docs update to a follow-up is a reasonable call, the checkbox should carry an inline (N/A — deferred to follow-up issue) annotation to make that intent explicit, per the checklist conventions used elsewhere in the template.
Coding Standards
❌ disable-model-invocation: true missing from task-challenger.agent.md frontmatter (inline comment on line 4)
The agent declares execute/runInTerminal and execute/getTerminalOutput in tools:, writes files to .copilot-tracking/challenges/, and runs git commands during Phase 1. This makes it a side-effecting agent. task-reviewer.agent.md — a direct peer — sets disable-model-invocation: true for the same reason. The prompt-builder instructions require this field for side-effecting and explicitly-invoked agents. Add disable-model-invocation: true to the frontmatter.
Code Quality
💡 Duplicate "Response Format" section (inline comment on line ~214)
The file defines the Phase 4 response format in two places: a nested #### Response Format inside ### Phase 4: Challenge, and a top-level ## Response Format at the end of the file. Both sections state the same one-question rule with the same examples. Duplicate instructions create a maintenance hazard — a future edit to one copy may silently diverge from the other. Consolidate into the nested section, which is already the more contextually natural location.
Action Items
- Required — Check all three AI Artifact Contributions checklist items after completing the
/prompt-analyzereview. - Required — Add
disable-model-invocation: trueto thetask-challenger.agent.mdfrontmatter. - Suggested — Remove the duplicate top-level
## Response Formatsection; retain only the nested#### Response Formatunder Phase 4. - Minor — Annotate the Documentation checkbox with
(N/A — deferred to follow-up)to make the deferral explicit.
Note
🔒 Integrity filter blocked 1 item
The following item were blocked because they don't meet the GitHub integrity level.
- #1212
issue_read: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
To allow these resources, lower min-integrity in your GitHub frontmatter:
tools:
github:
min-integrity: approved # merged | approved | unapproved | none| --- | ||
| name: Task Challenger | ||
| description: 'Adversarial questioning agent that interrogates implementations with What/Why/How questions — no suggestions, no hints, no leading - Brought to you by microsoft/hve-core' | ||
| tools: [read, search, execute/runInTerminal, execute/getTerminalOutput] |
There was a problem hiding this comment.
Missing disable-model-invocation: true in frontmatter
This agent declares execute/runInTerminal and execute/getTerminalOutput in its tools: list, making it a side-effecting agent. Per the prompt-builder instructions:
Use
disable-model-invocation: truefor agents that run subagents, agents that cause side effects (git operations, backlog management, deployments), or agents that should only run when explicitly requested.
task-reviewer.agent.md — a peer agent in the same collection — already sets disable-model-invocation: true and has a comparable profile (side effects, subagent orchestration). Task Challenger writes to .copilot-tracking/challenges/ and runs git commands; it should follow the same convention.
Suggested fix:
---
name: Task Challenger
description: 'Adversarial questioning agent...'
disable-model-invocation: true
tools: [read, search, execute/runInTerminal, execute/getTerminalOutput]|
|
||
| ### {{Area Label}} | ||
|
|
||
| **Question**: {{question text}} |
There was a problem hiding this comment.
Duplicate "Response Format" section
The agent defines the Challenge Phase response format in two places:
#### Response Formatnested under### Phase 4: Challenge(earlier in the file)- This top-level
## Response Formatsection — which adds a clarifying note (> This section applies during the Challenge Phase (Phase 4) only.) but otherwise restates the same requirement verbatim
Having two sections describing identical behavior creates maintenance risk: a future edit to one may miss the other, causing the agent to receive contradictory instructions. The nested #### Response Format already lives where it is most contextually relevant — inside Phase 4.
Suggested resolution: Remove this top-level ## Response Format section and, if the "applies to Phase 4 only" clarification is important, add that note to the nested #### Response Format heading inside Phase 4 instead.
feat(agents): add Task Challenger adversarial questioning agent
Description
Added Task Challenger — an adversarial questioning agent that reads
.copilot-tracking/artifacts cold and interrogates every decision, boundary, and assumption through structured What/Why/How questions. The agent does not validate, suggest, coach, or guide; it asks.The agent operates in four phases. In Phase 1 (Scope), it discovers what to challenge through a five-level cascade: existing
.copilot-tracking/artifacts,pr-reference.xml, git branch history, domain-based workspace search, and finally direct user input. Terminal access is limited to this phase only. Phase 2 (Read Artifacts) silently reads plans, changes, research, and reviews from.copilot-tracking/. Phase 3 (Identify Challenge Areas) silently selects the 5–7 areas with the highest density of unexamined assumptions — this list is never disclosed to the user. Phase 4 (Challenge) issues exactly one question per response using the structure[What/Why/How] + [noun subject] + [verb] + [open object]?, probes each answer up to twice before marking a point unresolved, and handles skip signals ("Go next", "Skip", etc.) without acknowledgment.A Challenge Tracking Document is created at Phase 4 entry under
.copilot-tracking/challenges/{{YYYY-MM-DD}}/{{topic}}-challenge.md. It captures metadata, confirmed scope, identified challenge areas, a Q&A log with verbatim answers, probe exchanges, and an Unresolved Items table.Task Researcher was updated to check
.copilot-tracking/challenges/at the start of Phase 1 and, when a challenge document is present, treat its Q&A log and unresolved items as the primary research scope — establishing a formal data contract from challenger outputs to researcher inputs. Task Reviewer received a new🥊 Challengehandoff that routes to Task Challenger via/task-challenge. The companiontask-challenge.prompt.mdprovides four optional inputs (plan,changes,research,focus) that pre-position scope at invocation; the agent falls back to artifact discovery when none are supplied.Both
hve-coreandhve-core-allcollections and plugins were updated in lockstep, and.github/copilot-instructions.mdwas updated to register.copilot-tracking/challenges/as a known tracking directory.Related Issue(s)
Related to #1212
Type of Change
Select all that apply:
Code & Documentation:
Infrastructure & Configuration:
AI Artifacts:
prompt-builderagent and addressed all feedback.github/instructions/*.instructions.md).github/prompts/*.prompt.md).github/agents/*.agent.md).github/skills/*/SKILL.md)Other:
.ps1,.sh,.py)Sample Prompts (for AI Artifact Contributions)
User Request:
Execution Flow:
.copilot-tracking/tracking artifacts,pr-reference.xml, git log/diff/status (viagit branch --show-current,git log <parent>..HEAD --oneline,git diff --stat), domain-based repo search, or direct user prompt. Presents a factual scope summary and waits for explicit user confirmation before proceeding. Terminal commands are run only during this phase..copilot-tracking/plans/,changes/,research/, andreviews/..copilot-tracking/challenges/{{YYYY-MM-DD}}/{{topic}}-challenge.md. Issues one[What/Why/How] + […]?question per response. Probes each answer up to twice; marks unresolved after two probes with no new depth. Advances silently on skip signals. Updates the tracking document throughout the session.Output Artifacts:
Success Indicators:
For detailed contribution requirements, see:
Testing
All automated checks were run during PR generation.
npm run lint:mdnpm run spell-checknpm run lint:frontmatternpm run validate:skillsnpm run lint:md-linksmain— not introduced by this PRnpm run lint:psnpm run plugin:generatenpm run docs:testjestnot installed; pre-existing environment limitationSecurity analysis:
execute/runInTerminalandexecute/getTerminalOutputin tools but the agent body restricts their use to the Scope phase..copilot-tracking/challenges/, which is gitignored per existing repo convention.Sample Run
Scope Confirmation Phase
Conversational Q&A Phase
Checklist
Required Checks
AI Artifact Contributions
/prompt-analyzeto review contributionprompt-builderreviewRequired Automated Checks
The following validation commands must pass before merging:
npm run lint:mdnpm run spell-checknpm run lint:frontmatternpm run validate:skillsnpm run lint:md-links(pre-existing SECURITY.md failure onmain)npm run lint:psnpm run plugin:generatenpm run docs:test(jestnot installed; pre-existing environment limitation)Security Considerations
Additional Notes
plugin:generateapplied two minor fixups during validation: markdown table column padding intask-challenger.agent.mdand a missingtask-challengerow inplugins/hve-core-all/README.md. Both are present as unstaged local modifications and should be committed before merging.docs/agents/README.mdnames five RPI agents (task-researcher, task-planner, task-implementor, task-reviewer, and the RPI orchestrator) but does not yet mention Task Challenger. Consider a follow-up to update that reference.lint:md-linksfailure on SECURITY.md is pre-existing onmainand unrelated to this PR.