innoslate_apply
Create or update Innoslate entities and relations in one save: run a dry run first to get a confirm token, then apply after approval and read back to verify.
Instructions
Create or update entities and relations in one save, then read everything back to verify.
Always call with dry_run=true first. It returns a summary and a confirm_token. Show the user, and only after their yes call again with the identical plan, dry_run=false and the token.
plan = { "update_existing": false, # true lets matched existing items be changed "entities": [{ "key": "sr", # your name for it inside this plan "class": "Artifact", "number": "SR.1", "name": "Stakeholder Requirements", "labels": ["Requirements Document"], "description": "plain text" # or description_html }, { "key": "sr1", "class": "Requirement", "number": "SR.1.1", "name": "Live view", "description": "The system shall ...", "labels": ["Functional Requirement"], "attributes": {"Rationale": "..."}, # property names from innoslate_schema "document": "sr", # top-level item of that document "parent": null, # or a ref: nested under that item (decomposes) "relations": {"traced from": [{"number": "UN.1.3", "document": "UN.1"}]} }], "relations": [{"from": "sr1", "relation": "verified by", "to": 12345}], "unlink": [{"from": 111, "relation": "traced to", "to": 222}] } A ref is a plan key, an id, {"number": ..., "document": } or {"number"/"name", "class"}. Existing items are matched by number inside their document only. Every relation is written on both sides. Nothing is deleted. id targets one existing entity directly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | ||
| dry_run | No | ||
| project_url | No | ||
| confirm_token | No |