| name | apex-requirements |
| description | Provides internal APEX requirements guidance for typed intake, scope, constraints, and budget. |
| user-invocable | false |
APEX Requirements
Use this skill only for an active requirements task.
Prerequisites
apex/taskContext returns a requirements task envelope.
- The interactive Requirements agent is active when user input may be needed.
- The kernel's returned input request is the authoritative requirements question catalog.
Workflow
- Call
apex/nextTask. Validate that a returned task is owned by the requirements role before reading its context.
- When it returns
needs_input, use its intake metadata and questions exactly as returned; do not maintain a
separate client-side question list.
- Ask the returned questions through the active client projection's question mechanism. Record each response as a
supplied value, typed unknown, or explicit deferral with its owner; never replace an unknown with an inferred value.
- Submit that request only through
apex/recordInput, preserving its request ID, expected journal head, and owner
epoch.
- Call
apex/nextTask again and repeat until it returns a requirements task; only then read apex/taskContext.
- Treat the service-preferences round as a preference boundary. Capture retained, prohibited, and preferred services,
SKU preferences, and environment overrides without selecting architecture, SKUs, or implementation details.
- Stage the task-context-defined requirements output, complete the requirements task, and wait for the required review
result before reporting that Gate 1 is ready. Only the kernel opens or evaluates Gate 1.
The kernel catalog and its versioned input contracts are authoritative. Do not choose architecture, SKUs, or
implementation details while gathering requirements.
Boundaries
Do not read task context for needs_input, a task owned by another role, or a stale task ID. Treat APEX_STALE as a
fresh-status requirement, and return kernel validation or authorization errors without fabricating a requirements
result.
Output
Return the kernel result plus any unresolved user-owned fields.