Plumb

Specification

dev03 · open a session

A sub-flow of A developer's workflow. Entered from dev02 · clarify what the story means, carrying story.id. Exits to dev04 · pull the working branch, carrying a cursor, the state of the trees and — where the project keeps a series — an opening reading.

2 of 3 stories proven · 0 passed, not wired · 1 unproven · 0 with nothing holding them

dev03-1 read the cursor Proven

As a developer returning to work I want the cursor to say where the last session stopped and why, so that I pick up where I left off.

The tests that cite it (5)
  • tests/test_sessions.py::test_a_cursor_holding_a_command_is_read_as_a_sentence_and_never_run — passed, ungrounded
  • tests/test_sessions.py::test_an_absent_cursor_is_an_answer_rather_than_a_guess — passed, ungrounded
  • tests/test_sessions.py::test_a_session_opens_from_the_cursor_the_last_one_left — passed, grounded
  • tests/test_sessions.py::test_with_no_cursor_both_causes_are_named_and_neither_is_guessed — passed, grounded
  • tests/test_sessions.py::test_a_cursor_is_still_data_when_the_tool_reads_it_for_real — passed, grounded
Requirements (5)
What the user needs
  • dev03-1-ur1the cursor carries what is next, where it is specified, and the one line that cannot be re-derived by reading
  • dev03-1-ur2an absent cursor is reported with both its causes — a first session, and a session that did not close — and reconstructed from neither
  • dev03-1-ur3cursor.next_task names a story.id
How well
  • dev03-1-nfr1the cursor is read as data and never executed
  • dev03-1-nfr2a field of the cursor this version of plumb does not recognise is kept exactly as it was when the cursor is next written

dev03-2 check the code base is as expected Proven

As a developer opening a session I want to know whether the trees match what the last session left, so that I start from a known state.

The tests that cite it (2)
  • tests/test_sessions.py::test_the_ground_names_which_tree_is_dirty — passed, ungrounded
  • tests/test_sessions.py::test_start_briefs_over_a_dirty_tree_and_wrap_up_refuses_it — passed, grounded
Requirements (3)
What the user needs
  • dev03-2-ur1the code base is checked against what the last session expected, so the cursor is read first
  • dev03-2-ur2a declared tree that is not a repository is skipped rather than failed on
How well
  • dev03-2-nfr1opening reports; the gate is held at the close

dev03-3 take the opening position in the series Unproven

As a developer whose project keeps a series I want this session's starting position in it recorded, so that the close reports exactly my session's stretch of the history and nothing around it.

the citations that passed reached nothing wired — what ran was the implementation on its own, which is not evidence the story holds where it is used

The tests that cite it (2)
  • tests/test_sessions.py::test_a_reading_records_what_a_run_found_and_never_a_verdict — passed, ungrounded
  • tests/test_sessions.py::test_the_reading_is_kept_out_of_the_repository_it_measures — passed, ungrounded
Requirements (5)
What the user needs
  • dev03-3-ur1the reading records what the board found, with the version and the moment that found it
What the system does
  • dev03-3-sr1the reading lives outside the repository and never travels
How well
  • dev03-3-nfr1nothing derives a status from a stored reading
  • dev03-3-nfr2a project that declares no series skips this step, and nothing downstream may come to depend on it
Still open
  • dev03-3-u1whether a reading taken by another version of plumb is refused, or read and flagged, is undecided

← Every chapter