Skip to content

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.

💬 You ask your agent

« Record this big open question at project level: "Should we migrate authentication to OAuth2?" »

→ The agent callseffortless_bqo_ask
  • question = Should we migrate authentication to OAuth2?
NameTypeRequiredDescription
questionstringyesText 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.

💬 You ask your agent

« Graduate big open question Q-02 into the existing epic 012. »

→ The agent callseffortless_bqo_graduate
  • question_id = Q-02
  • epic_id = 012
NameTypeRequiredDescription
question_idstringyesId of the BQO to promote into an epic. Required.
epic_idstringyesId 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.

💬 You ask your agent

« List the project's big open questions. »

→ The agent callseffortless_bqo_list

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.

💬 You ask your agent

« Answer question Q-02: "No, we stay with cookie sessions until v2." »

→ The agent callseffortless_bqo_resolve
  • question_id = Q-02
  • answer = No, we stay with cookie sessions until v2.
NameTypeRequiredDescription
question_idstringyesId of the project question (BQO) to answer; a question already graduated to an epic is refused. Required.
answerstringyesAnswer 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.

💬 You ask your agent

« Generate the missing framing documents for story 003 of epic 012. »

→ The agent callseffortless_cadrage_docs_scaffold
  • epic_id = 012
  • story_id = 003
NameTypeRequiredDescription
epic_idstringyesId of the epic that holds the story. Required.
story_idstringyesId 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.

💬 You ask your agent

« What is the next framing layer to write for the project? »

No parameters.

decision_add ​

effortless_decision_add — Stability: stable · story

Adds a decision (ADR) to a story. Returns the id (DEC-NN).

💬 You ask your agent

« 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. »

→ The agent callseffortless_decision_add
  • epic_id = 012
  • story_id = 003
  • title = SQLite rather than Postgres
  • context = The app stays single-machine.
  • decision = Use SQLite.
  • consequences = No database server to install.
  • rejected_alternatives = Postgres
  • phase = O-analyse
NameTypeRequiredDescription
epic_idstringyesId of the epic that holds the story. Required.
story_idstringyesId of the story that receives the decision. Required.
titlestringyesTitle of the decision. Required.
contextstringyesContext of the decision. Required.
decisionstringyesThe decision made. Required.
consequencesanyyesConsequences: array of strings, or a multi-line string with one entry per line. Required.
rejected_alternativesanyyesRejected alternatives: array of strings, or a multi-line string with one entry per line. Required.
phasestringyesOPALE 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.

💬 You ask your agent

« List all the decisions made on the project. »

→ The agent callseffortless_decisions_list

No parameters.

draft_add ​

effortless_draft_add — Stability: beta · project

Adds a draft (story proposal) to an epic. Returns the id.

💬 You ask your agent

« Add a draft story "CSV export of reports" to epic 012, with two proposed tasks: the format and the export button. »

→ The agent callseffortless_draft_add
  • epic_id = 012
  • title = CSV export of reports
  • proposed_tasks = ["The format","The export button"]
NameTypeRequiredDescription
epic_idstringnoEpic that receives the draft (default: active epic).
titlestringyesTitle of the draft story. Required.
summarystringnoShort summary of the draft story (default empty).
kindstringnoStory type: opale (default) or fix.
depends_onarray<string>noIds the draft story depends on (default none).
proposed_tasksarray<string>noList of tasks proposed for the story, as strings (default none).
rationalestringnoJustification of the draft (default empty).

draft_list ​

effortless_draft_list — Stability: beta · project

Lists the drafts of an epic (default: active epic).

💬 You ask your agent

« Show me the draft stories of the active epic. »

→ The agent callseffortless_draft_list
NameTypeRequiredDescription
epic_idstringnoEpic whose drafts are listed (default: active epic).

draft_reject ​

effortless_draft_reject — Stability: beta · project

Rejects a draft (draft|pending → rejected).

💬 You ask your agent

« Reject draft D-04 of epic 012; it will not be done. »

→ The agent callseffortless_draft_reject
  • epic_id = 012
  • draft_id = D-04
NameTypeRequiredDescription
epic_idstringnoEpic 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_idstringyesId 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).

💬 You ask your agent

« Submit draft D-04 of epic 012 for validation. »

→ The agent callseffortless_draft_submit
  • epic_id = 012
  • draft_id = D-04
NameTypeRequiredDescription
epic_idstringnoEpic 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_idstringyesId 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.

💬 You ask your agent

« Change the title of draft D-04 in epic 012 to "CSV and Excel export of reports". »

→ The agent callseffortless_draft_update
  • epic_id = 012
  • draft_id = D-04
  • title = CSV and Excel export of reports
NameTypeRequiredDescription
epic_idstringnoEpic 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_idstringyesId of the draft (for example DFT-01); it is only unique within its epic. Required.
titlestringnoNew title; absent leaves it unchanged.
summarystringnoNew summary; absent leaves it unchanged.
kindstringnoNew story type: opale or fix; absent leaves it unchanged.
depends_onarray<string>noNew list of ids the draft depends on (replaces the previous one); absent leaves it unchanged.
proposed_tasksarray<string>noNew list of proposed tasks (replaces the previous one); absent leaves it unchanged.
rationalestringnoNew 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.

💬 You ask your agent

« Validate draft D-04 of epic 012 so it becomes a real story. »

→ The agent callseffortless_draft_validate
  • epic_id = 012
  • draft_id = D-04
NameTypeRequiredDescription
epic_idstringnoEpic 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_idstringyesId 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.

💬 You ask your agent

« Prove that my save write survives an interruption: run the "save-order" interruption proof at every announced position. »

→ The agent callseffortless_interruption_proof
  • proof_id = save-order
NameTypeRequiredDescription
proof_idstringyesId of the proof declared in effortless.json under settings.interruption_proofs. Required.
positionsarray<integer>noPositions 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).

💬 You ask your agent

« Add the proposal "Split the parser into two modules" to story 003. »

→ The agent callseffortless_proposal_add
  • story_id = 003
  • summary = Split the parser into two modules
NameTypeRequiredDescription
story_idstringnoTarget story (default: active story).
summarystringyesSummary of the proposal. Required.

proposal_reject ​

effortless_proposal_reject — Stability: stable · story

Rejects the proposal of a story (status rejected).

💬 You ask your agent

« Reject the proposal on story 003. »

→ The agent callseffortless_proposal_reject
  • story_id = 003
NameTypeRequiredDescription
story_idstringnoTarget story (default: active story).

proposal_validate ​

effortless_proposal_validate — Stability: stable · story

Validates the proposal of a story (status validated).

💬 You ask your agent

« Validate the proposal on story 003. »

→ The agent callseffortless_proposal_validate
  • story_id = 003
NameTypeRequiredDescription
story_idstringnoTarget story (default: active story).

question_ask ​

effortless_question_ask — Stability: stable · story

Adds an open question to a story. Returns the id (Q-NN).

💬 You ask your agent

« 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. »

→ The agent callseffortless_question_ask
  • epic_id = 012
  • story_id = 003
  • question = Which date format does the API expect?
  • context = The CSV export contains dates.
  • impact = Wrong format: the API rejects requests.
  • suggestion = ISO 8601
  • phase = O-analyse
NameTypeRequiredDescription
epic_idstringyesId of the epic that holds the story. Required.
story_idstringyesId of the story that receives the question. Required.
questionstringyesThe open question. Required.
contextstringyesContext of the question. Required.
impactstringyesImpact of leaving the question unanswered. Required.
suggestionstringyesSuggested answer or lead. Required.
phasestringyesOPALE 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).

💬 You ask your agent

« Resolve question Q-05 of story 003 in epic 012: "The API expects ISO 8601 in UTC." »

→ The agent callseffortless_question_resolve
  • epic_id = 012
  • story_id = 003
  • question_id = Q-05
  • answer = The API expects ISO 8601 in UTC.
NameTypeRequiredDescription
epic_idstringyesId of the epic that holds the story. Required.
story_idstringyesId of the story that holds the question. Required.
question_idstringyesId of the question to resolve (for example Q-01). Required.
answerstringyesAnswer given to the question. Required.

questions_list ​

effortless_questions_list — Stability: stable · project

Lists all questions of the project with their originating epic/story.

💬 You ask your agent

« List all the project's open questions. »

→ The agent callseffortless_questions_list

No 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.

💬 You ask your agent

« Which acceptance scenarios of story 003 are still beta or planned, and which are blocked? »

→ The agent callseffortless_recipe_maturity
  • story_id = 003
NameTypeRequiredDescription
epic_idstringnoLimit to one epic (default: the whole project).
story_idstringnoLimit to one story (default: all the stories of the epic or project).

Effortless — ArboRithm