propose_business_rule
Add a business rule to a project as a draft a person reviews, with its kind, statement, condition and action, exceptions, worked examples, authority and priority.
Add a business rule to a project: a name, the kind (constraint by default), the rule in plain words, when it applies and what follows, the exceptions, worked examples of an input and what is expected, who or what its authority is, and a MoSCoW priority. The rule takes the next number of the rules' sequence (CRM-BR-7), starts as a draft and writes its first version; business_rule.created goes out.
A bounded write: it adds one draft and nothing else, so the person reviews it on the Business Rules page before anyone codes against it. Propose a rule when a story, a requirement or a conversation states a decision of the business that nothing records yet; write it so a developer can code it and a tester can check it, and give at least one worked example, because a rule without an example is argued about and a rule with three is tested.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Fires one event
Delivered to every endpoint subscribed to it once the change is made.
Arguments
project_id*stringUUID of the project the rule belongs to.
name*stringWhat the rule is called, 3 to 200 characters.
typestringoptionalThe kind; constraint by default.
constraintderivationcomputationinferenceaction_enablerpolicystatementstringoptionalThe rule in plain words, as HTML, as the business would say it.
conditionstringoptionalWhen the rule applies, in one line, as in "When a member's annual spend crosses the platinum threshold".
actionstringoptionalWhat follows when it does, in one line, as in "then the member moves to the platinum tier on the first of the next month".
exceptionsstringoptionalWhen the rule does not apply, as HTML.
examplesobject[]optionalWorked examples, up to twenty rows, each with an `input` (required) and what is `expected`.
input*stringThe input, up to 500 characters.
expectedstringoptionalWhat the rule gives for it, up to 500 characters.
authoritystringoptionalWho or what decides the rule, in words: a role, a policy, a regulation.
prioritystringoptionalIts MoSCoW priority; should by default.
mustshouldcouldwontWhat it returns
{ "data": { "id": "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "number": 8, "reference": "CRM-BR-8", "name": "Refunds within thirty days", "type": "constraint", "statement": "<p>A member may return an order for a refund within thirty days of delivery.</p>", "condition": "When a return is requested", "action": "then it is accepted only if fewer than thirty days have passed since delivery", "exceptions": "<p>Perishable goods are not returnable.</p>", "examples": [ { "input": "Delivered 1 March, return requested 30 March", "expected": "Accepted" }, { "input": "Delivered 1 March, return requested 1 April", "expected": "Refused" } ], "authority_stakeholder_id": null, "authority_stakeholder_name": null, "authority": "Consumer protection regulations", "priority": "must", "effective_from": null, "effective_to": null, "status": "draft", "owner_id": null, "owner_name": null, "position": 7, "version": 0, "approved_at": null, "approved_revision_id": null, "created_at": "2026-11-03T10:00:00+00:00", "updated_at": "2026-11-03T10:00:00+00:00" }}How it fails
RESOURCE_NOT_FOUNDunknown project_id, or a project outside the token's scope or the person's visibility.
VALIDATION_FAILEDthe name is missing or too long, an example has no input, or type or priority is not one of its values.
TOKEN_MISSING_ABILITYtoken lacks business-rule:create.
FORBIDDENthe token holder's role on the project does not carry business-rule:create.
How is this guide?
Last updated on