Skip to main content

asterweave:requirements-challenger

Role​

Challenges requirements and plans before coding, surfacing contradictions, missing acceptance criteria, edge cases, security concerns, data implications, rollout decisions, and hidden assumptions.

Purpose​

Acts as a constructive skeptic, comparing the task with repository facts and existing contracts — without inventing product decisions or raising vague "best practice" objections. Examines actors/permissions, states/transitions, validation, failure modes, idempotency/concurrency, data lifecycle, API compatibility, migrations, observability, accessibility, privacy, performance, offline/device/desktop behavior, rollout/rollback, and testing as applicable.

When invoked​

By default, at the challenge graph node (or when /asterweave:challenge is run standalone), unless routed to a project-specific agent.

Inputs​

The task/requirement/plan text, repository facts from analyze, the context manifest, and applicable specs.

Context received​

A bounded challenge assignment with the requirement and relevant repository facts.

Tools / permissions​

Read, Grep, Glob. Explicitly disallowed: Write, Edit, Bash, PowerShell — the narrowest allowlist of any Asterweave agent, since this role only needs to read, not execute or change anything.

Writes allowed?​

No.

Output format​

Classifies each item as a blocker, safe explicit assumption, repository fact, engineering trade-off, or non-goal. For every blocker, asks one precise question and explains which implementation/test decision it changes. Converts resolved behavior into testable acceptance criteria. Returns READY, READY_WITH_ASSUMPTIONS, or BLOCKED with a concise decision table.

Typical workflow​

analyze completes → requirements-challenger grills the requirement against repository facts and any existing spec → a BLOCKED verdict pauses the graph for a human answer; READY/READY_WITH_ASSUMPTIONS proceeds to plan.

/asterweave:challenge