Requirements Create
requirements_createCreate a requirement. Put requirement text in content.requirement and the human id in content.id, inside requirement.content; put source_story_ids, source_requirement_ids, and subsystem_id beside content inside requirement.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID (database id). | |
| requirement | Yes | Keep text, human label and metadata in content. Relationship fields alongside content accept UUIDs only. Omitted or null relationship lists preserve links in patches; [] clears them. subsystem_id:null clears the subsystem. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lock | Yes | True to lock the requirement from LLM modifications. | |
| flags | Yes | List of requirement flags/tags. | |
| content | Yes | Requirement content object returned by the server. | |
| lifecycle | Yes | Where the requirement stands. One of: draft, in_review, reviewed, in_progress, implemented, verified, blocked, rejected, superseded. The first six are a ladder from authored to tested; blocked, rejected and superseded are not progress. Writing content.implementation_status also moves this — in_progress, implemented, verified and blocked map across, while not_started is ignored rather than demoting a reviewed requirement. | |
| project_id | Yes | Project UUID (database id). | |
| subsystem_id | No | Subsystem UUID (database id). | |
| requirement_id | Yes | Requirement UUID (database id). | |
| from_description | No | True if this requirement originated from the project description. | |
| source_story_ids | Yes | List of story UUIDs. | |
| suspect_story_ids | No | Source stories edited after this requirement was written from them. Non-empty means it may no longer say what the story asks: re-propagate the story (projects_propagate_stories), rewrite the requirement, or confirm it still holds (requirements_confirm_sources) before implementing it. | |
| source_requirement_ids | No | List of requirement UUIDs (database ids), not content.id. |