| name | openup-request-input |
| description | Create an input request document for asynchronous stakeholder communication |
| model | haiku |
| fit | {"great":["blocked tasks needing a human decision","ambiguous requirements"],"ok":["scope/priority clarifications mid-iteration"],"poor":["questions with obvious answers","internal-only decisions","urgent same-session needs"]} |
| arguments | [{"name":"title","description":"Descriptive title for the request","required":true},{"name":"questions","description":"JSON array of questions (type, question_text, options for multiple-choice)","required":true},{"name":"context","description":"Additional context about what the agent is doing","required":true},{"name":"related_task","description":"Optional roadmap task ID (e.g., T-001)","required":false}] |
Request Input
Create an input request document for asynchronous stakeholder communication.
Process
1. Generate Filename
Format: docs/input-requests/YYYY-MM-DD-<short-topic>.md (derive topic from $ARGUMENTS[title]).
2. Fill Frontmatter
---
title: "$ARGUMENTS[title]"
created: "<current-timestamp-ISO8601>"
created_by: "agent-name"
status: pending
run_id: "<current-run-id>"
related_task: "$ARGUMENTS[related_task]"
---
3. Write Context Section
Use $ARGUMENTS[context] to explain current task/phase, what information is needed, and why.
4. Add Questions
For each question in $ARGUMENTS[questions], use the appropriate format:
multiple-choice: ### Q[N]: [Title] with **Type**: multiple-choice, checkbox options (- [ ] \option` - Description), and Answer:` placeholder.
text: ### Q[N]: [Title] with **Type**: text, optional **Example**:, and **Answer**: placeholder.
reference: ### Q[N]: [Title] with **Type**: reference, **Accepts**: Path or URL, and **Answer**: placeholder.
5. Include Instructions
Add instructions for respondent:
- Fill in Answer section for each question
- Update status from
pending to answered
- Save the file
- Tell the agent to continue
5.5 Suspend the Related Lane (if related_task given)
If $ARGUMENTS[related_task] is set, suspend that lane so the continue-loop
will not re-pick it before the question is answered: add one coordination line
to docs/changes/<related_task>/plan.md frontmatter —
awaiting-input: docs/input-requests/<this-request-file>.md
This is a coordination-frontmatter update (like the lease/claimed-by), not
a spec behavior change — so it does not need a /openup-create-task-spec re-run.
While the request stays pending, scripts/openup-board.py reports the lane as
suspended (never pickable). When the request is later answered,
/openup-next step 0 (scripts/openup-input.py resumable) resumes it: folds the
answers into the spec, removes this awaiting-input line, and archives the
request. See Asynchronous Input SOP.
6. Notify User
Inform user of document location and how to proceed.
Common Errors
| Error | Cause | Solution |
|---|
| Invalid questions format | JSON array malformed | Verify valid JSON array |
| Missing context | Context not provided | Provide context argument |
| Directory not found | docs/input-requests/ missing | Create directory first |
References
- Asynchronous Input SOP:
docs-eng-process/sops/async-input.md
- Input Request Template:
docs-eng-process/templates/input-request.md
See Also