Framing
Framing documents, decisions, questions, drafts and proposals, acceptance scenarios.
bqo_ask
effortless_bqo_ask — Stability: stable · project
Records a big open question (BQO) at the project level.
« Record this big open question at project level: "Should we migrate authentication to OAuth2?" »
| Name | Type | Required | Description |
|---|---|---|---|
question | string | yes | Text of the big open question (BQO) to record at project level. Required. |
bqo_graduate
effortless_bqo_graduate — Stability: stable · project
Promotes a BQO into an EXISTING epic (epic_id): the question is copied there and its status becomes graduated. Does not create an epic.
« Graduate big open question Q-02 into the existing epic 012. »
| Name | Type | Required | Description |
|---|---|---|---|
question_id | string | yes | Id of the BQO to promote into an epic. Required. |
epic_id | string | yes | Id of the existing target epic that inherits the BQO. Required. |
bqo_list
effortless_bqo_list — Stability: stable · project
Lists the big open questions (BQO) of the project.
No parameters.
bqo_resolve
effortless_bqo_resolve — Stability: stable · project
Answers a project question (status resolved). Refuses a question that has already been graduated to an epic.
« Answer question Q-02: "No, we stay with cookie sessions until v2." »
effortless_bqo_resolvequestion_id=Q-02answer=No, we stay with cookie sessions until v2.
| Name | Type | Required | Description |
|---|---|---|---|
question_id | string | yes | Id of the project question (BQO) to answer; a question already graduated to an epic is refused. Required. |
answer | string | yes | Answer that settles the question. Required. |
cadrage_docs_scaffold
effortless_cadrage_docs_scaffold — Stability: stable · story
Generates the missing OPALE stubs of a story in blueprints/. Returns the created files.
« Generate the missing framing documents for story 003 of epic 012. »
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | yes | Id of the epic that holds the story. Required. |
story_id | string | yes | Id of the story whose missing OPALE stubs are generated under blueprints/. Required. |
cadrage_layer_next
effortless_cadrage_layer_next — Stability: beta · project
Next project framing layer to write among the 4 root blueprints.
« What is the next framing layer to write for the project? »
effortless_cadrage_layer_nextNo parameters.
decision_add
effortless_decision_add — Stability: stable · story
Adds a decision (ADR) to a story. Returns the id (DEC-NN).
« Record the decision "SQLite rather than Postgres" on story 003 of epic 012, in phase O-analyse. Context: the app stays single-machine. Decision: use SQLite. Consequence: no database server to install. Rejected alternative: Postgres. »
effortless_decision_addepic_id=012story_id=003title=SQLite rather than Postgrescontext=The app stays single-machine.decision=Use SQLite.consequences=No database server to install.rejected_alternatives=Postgresphase=O-analyse
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | yes | Id of the epic that holds the story. Required. |
story_id | string | yes | Id of the story that receives the decision. Required. |
title | string | yes | Title of the decision. Required. |
context | string | yes | Context of the decision. Required. |
decision | string | yes | The decision made. Required. |
consequences | any | yes | Consequences: array of strings, or a multi-line string with one entry per line. Required. |
rejected_alternatives | any | yes | Rejected alternatives: array of strings, or a multi-line string with one entry per line. Required. |
phase | string | yes | OPALE phase the decision belongs to, as a workflow phase id (default workflow: O-analyse, P-cadrage, A-specs, L-plan, E-execute). Required. |
decisions_list
effortless_decisions_list — Stability: stable · project
Lists all decisions (ADR) of the project with their originating epic/story.
« List all the decisions made on the project. »
effortless_decisions_listNo parameters.
draft_add
effortless_draft_add — Stability: beta · project
Adds a draft (story proposal) to an epic. Returns the id.
« Add a draft story "CSV export of reports" to epic 012, with two proposed tasks: the format and the export button. »
effortless_draft_addepic_id=012title=CSV export of reportsproposed_tasks=["The format","The export button"]
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | no | Epic that receives the draft (default: active epic). |
title | string | yes | Title of the draft story. Required. |
summary | string | no | Short summary of the draft story (default empty). |
kind | string | no | Story type: opale (default) or fix. |
depends_on | array<string> | no | Ids the draft story depends on (default none). |
proposed_tasks | array<string> | no | List of tasks proposed for the story, as strings (default none). |
rationale | string | no | Justification of the draft (default empty). |
draft_list
effortless_draft_list — Stability: beta · project
Lists the drafts of an epic (default: active epic).
« Show me the draft stories of the active epic. »
effortless_draft_list| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | no | Epic whose drafts are listed (default: active epic). |
draft_reject
effortless_draft_reject — Stability: beta · project
Rejects a draft (draft|pending → rejected).
« Reject draft D-04 of epic 012; it will not be done. »
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | no | Epic that holds the draft (default: the draft is looked up in all epics; if several carry that id, the active epic is used, otherwise the call is refused naming the candidates). |
draft_id | string | yes | Id of the draft (for example DFT-01); it is only unique within its epic. Required. |
draft_submit
effortless_draft_submit — Stability: beta · project
Submits a draft (draft → pending).
« Submit draft D-04 of epic 012 for validation. »
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | no | Epic that holds the draft (default: the draft is looked up in all epics; if several carry that id, the active epic is used, otherwise the call is refused naming the candidates). |
draft_id | string | yes | Id of the draft (for example DFT-01); it is only unique within its epic. Required. |
draft_update
effortless_draft_update — Stability: beta · project
Updates the fields of an existing draft.
« Change the title of draft D-04 in epic 012 to "CSV and Excel export of reports". »
effortless_draft_updateepic_id=012draft_id=D-04title=CSV and Excel export of reports
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | no | Epic that holds the draft (default: the draft is looked up in all epics; if several carry that id, the active epic is used, otherwise the call is refused naming the candidates). |
draft_id | string | yes | Id of the draft (for example DFT-01); it is only unique within its epic. Required. |
title | string | no | New title; absent leaves it unchanged. |
summary | string | no | New summary; absent leaves it unchanged. |
kind | string | no | New story type: opale or fix; absent leaves it unchanged. |
depends_on | array<string> | no | New list of ids the draft depends on (replaces the previous one); absent leaves it unchanged. |
proposed_tasks | array<string> | no | New list of proposed tasks (replaces the previous one); absent leaves it unchanged. |
rationale | string | no | New justification; absent leaves it unchanged. |
draft_validate
effortless_draft_validate — Stability: beta · project
Validates a draft (materializes it into a story). Returns the id of the created story.
« Validate draft D-04 of epic 012 so it becomes a real story. »
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | no | Epic that holds the draft (default: the draft is looked up in all epics; if several carry that id, the active epic is used, otherwise the call is refused naming the candidates). |
draft_id | string | yes | Id of the draft (for example DFT-01); it is only unique within its epic. Required. |
interruption_proof
effortless_interruption_proof — Stability: beta · project
Proves that a write order survives a real interruption: kills the declared command (SIGKILL) at each position it announces, then runs the state check.
« Prove that my save write survives an interruption: run the "save-order" interruption proof at every announced position. »
| Name | Type | Required | Description |
|---|---|---|---|
proof_id | string | yes | Id of the proof declared in effortless.json under settings.interruption_proofs. Required. |
positions | array<integer> | no | Positions to cut, as integers (default: all the positions the command announces). |
proposal_add
effortless_proposal_add — Stability: stable · story
Adds a proposal (summary) to a story (status pending).
« Add the proposal "Split the parser into two modules" to story 003. »
| Name | Type | Required | Description |
|---|---|---|---|
story_id | string | no | Target story (default: active story). |
summary | string | yes | Summary of the proposal. Required. |
proposal_reject
effortless_proposal_reject — Stability: stable · story
Rejects the proposal of a story (status rejected).
« Reject the proposal on story 003. »
| Name | Type | Required | Description |
|---|---|---|---|
story_id | string | no | Target story (default: active story). |
proposal_validate
effortless_proposal_validate — Stability: stable · story
Validates the proposal of a story (status validated).
« Validate the proposal on story 003. »
| Name | Type | Required | Description |
|---|---|---|---|
story_id | string | no | Target story (default: active story). |
question_ask
effortless_question_ask — Stability: stable · story
Adds an open question to a story. Returns the id (Q-NN).
« Ask a question on story 003 of epic 012, in phase O-analyse: "Which date format does the API expect?" Context: the CSV export contains dates. Impact: with the wrong format, the API rejects requests. Suggestion: ISO 8601. »
effortless_question_askepic_id=012story_id=003question=Which date format does the API expect?context=The CSV export contains dates.impact=Wrong format: the API rejects requests.suggestion=ISO 8601phase=O-analyse
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | yes | Id of the epic that holds the story. Required. |
story_id | string | yes | Id of the story that receives the question. Required. |
question | string | yes | The open question. Required. |
context | string | yes | Context of the question. Required. |
impact | string | yes | Impact of leaving the question unanswered. Required. |
suggestion | string | yes | Suggested answer or lead. Required. |
phase | string | yes | OPALE phase the question belongs to, as a workflow phase id (default workflow: O-analyse, P-cadrage, A-specs, L-plan, E-execute). Required. |
question_resolve
effortless_question_resolve — Stability: stable · story
Resolves a question (status Resolved + answer + date).
« Resolve question Q-05 of story 003 in epic 012: "The API expects ISO 8601 in UTC." »
effortless_question_resolveepic_id=012story_id=003question_id=Q-05answer=The API expects ISO 8601 in UTC.
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | yes | Id of the epic that holds the story. Required. |
story_id | string | yes | Id of the story that holds the question. Required. |
question_id | string | yes | Id of the question to resolve (for example Q-01). Required. |
answer | string | yes | Answer given to the question. Required. |
questions_list
effortless_questions_list — Stability: stable · project
Lists all questions of the project with their originating epic/story.
« List all the project's open questions. »
effortless_questions_listNo parameters.
recipe_maturity
effortless_recipe_maturity — Stability: beta · project
Lists recipe scenarios by maturity status (stable, candidate, beta, planned), returns the remaining work (planned + beta) and the recipes blocked by a gap. Read-only.
« Which acceptance scenarios of story 003 are still beta or planned, and which are blocked? »
| Name | Type | Required | Description |
|---|---|---|---|
epic_id | string | no | Limit to one epic (default: the whole project). |
story_id | string | no | Limit to one story (default: all the stories of the epic or project). |