Tabluadocs

Reference

Stages and moves

The stages and moves of Tablua's own agent, which builds small apps on its computer. If you embed the harness, you can use your own.

Stages

The stage is worked out by code, from facts, in this order:

StageWhen
answeredthe task has been answered
changingthe app shipped before this task, which asks to change it
shippedthe app is published, the task not yet answered
awaiting_yespublishing waits for the person's yes
no_featureno feature has been written yet
awaiting_agreementa feature is written and the person hasn't agreed to it
buildingsomething still fails: a scenario, a missing step, a page
readyevery scenario passes and every page answers

Moves allowed in each stage

StageMoves
no_featurewrite_feature, read_help, think, blocked
awaiting_agreementwait_for_agreement, write_feature, think, blocked
buildingundo, write_feature, write_steps, write_code, write_page, run_test, run_check, fix_failure, rewrite, look_at_app, read_help, think, plan, next_part, blocked
readypublish, undo, look_at_app, fix_failure, rewrite, write_page, run_test, think, blocked
awaiting_yeswait_for_yes
changingwrite_feature, write_page, write_code, write_steps, read_help, think, blocked
shippedanswer_task, think, blocked
answeredanswer

Gates can hold some of these back in particular situations (Policy as data).

What each move does

MoveWhat it does
write_featurewrites the person's ask, in their words, as Gherkin scenarios
wait_for_agreementwaits for the person to agree to the feature
write_stepswrites the Lua steps that check each scenario against the app's real behaviour
write_codewrites the app's code and its database
write_pagewrites or fixes the app's pages
run_testruns the feature's tests
run_checkchecks the pages and code for problems
fix_failurefixes what the last test, check or page named as failing
undoputs back the files the last change wrote; offered only after a change broke what passed
rewritewrites the failing file again whole
look_at_appopens the app as the person will, and uses it
read_helpreads the computer's help on a kind of file or a command
publishpublishes the app, for the person's yes
wait_for_yeswaits for that yes
answer_taskanswers the task with a letter naming what shipped and where
answerthe task is answered; the run ends
thinkgoes over the task and the steps so far, and says what is wrong and what to do next
plan, next_partsplits a larger task into parts, and moves to the next
blockedstops and reports that the agent's own tools keep failing

Causes

When a step fails, Jev is also asked where the problem most likely is. The answer is the state's cause column:

CauseMeaning
the_stepsa test step doesn't match its line, or checks the wrong thing
the_app_codethe app's code or database does the wrong thing
the_pagethe page doesn't compile, or its action or markup is wrong
a_library_calla call into the computer's library was made the wrong way
the_featurethe feature as written can't pass; changing it needs the person's agreement again
unclearit can't be told from what is shown