Skip to content

Scenarios: issue-517 handoff ​

uv run the-loop scenarios --root . --format markdown over the issue-517 test files. All 17 scenario titles that testing-plan.md names are present.

#FeatureScenarioRequirementLocation
1the handoff verbhandoff post renders the record and its parts and posts them in orderdocs/specs/issue-517/requirements.md R5.1, R5.2cli/tests/test_handoff_cmd.py:159
2the handoff verbhandoff show prints the record frozen in statedocs/specs/issue-517/requirements.md R5.4cli/tests/test_handoff_cmd.py:242
3the handoff verbhandoff import materializes the files the ticket carriesdocs/specs/issue-517/requirements.md R7.2cli/tests/test_handoff_cmd.py:273
4the handoff verbhandoff import refuses a file whose bytes do not match the recorddocs/specs/issue-517/requirements.md R7.2, R7.5cli/tests/test_handoff_cmd.py:299
5the handoff verbhandoff import refuses the files when a part comment is missingdocs/specs/issue-517/requirements.md R5.2, R7.2cli/tests/test_handoff_cmd.py:323
6the handoff verbhandoff import --from-dir takes the spec-chain artifact's filesdocs/specs/issue-517/requirements.md R7.2, R7.5cli/tests/test_handoff_cmd.py:395
7the handoff verbhandoff note points the record at the committed files and PRdocs/specs/issue-517/requirements.md R5.4cli/tests/test_handoff_cmd.py:499
8the handoff verbhandoff note supersedes a record it cannot editdocs/specs/issue-517/requirements.md R5.4cli/tests/test_handoff_cmd.py:537
9the poller starts a handed-off item at the right steparming a handed-off item checks out its spec branchdocs/specs/issue-517/requirements.md R6.1, R6.2cli/tests/test_handoff_pickup.py:219
10only an authorized user or the-loop can hand offa handoff record from an unauthorized user is ignoreddocs/specs/issue-517/requirements.md abuse case 1cli/tests/test_handoff_pickup.py:252
11only an authorized user or the-loop can hand offan outsider pastes the-loop's self-authorship markerdocs/specs/issue-517/requirements.md abuse case 1cli/tests/test_handoff_pickup.py:277
12a record cannot move a walk that has beguna record posted or edited after the walk started changes nothingdocs/specs/issue-517/requirements.md abuse cases 3, 6cli/tests/test_handoff_pickup.py:296
13the pick-up fails closedthe comments cannot be listed at armingdocs/specs/issue-517/design.md §Error handlingcli/tests/test_handoff_pickup.py:316
14the Jira copy never runs the looparming a Jira mirror is refuseddocs/specs/issue-517/requirements.md R3.5, abuse case 7cli/tests/test_handoff_pickup.py:365
15the runtime records where a handed-off walk beginsa fresh work item starts with a handoffdocs/specs/issue-517/requirements.md R6.1cli/tests/test_handoff_pickup.py:435
16a record cannot move a walk that has beguna record posted or edited after the walk started changes nothingdocs/specs/issue-517/requirements.md abuse cases 3, 6cli/tests/test_handoff_pickup.py:456
17items with no handoff behave exactly as todaythe prompt of an item with no handoffdocs/specs/issue-517/requirements.md compatibility NFRcli/tests/test_handoff_pickup.py:584
18the session is told where its walk was handed ina handed-off item's promptdocs/specs/issue-517/requirements.md R6.1cli/tests/test_handoff_pickup.py:597
19a handed-off spec-chain artifact keeps its URLan imported spec-chain artifact URL is recorded and rendered in graph contextdocs/specs/issue-517/requirements.md R7.4cli/tests/test_handoff_pickup.py:618
20the handoff recorda branch-carried record renders and parses back unchangeddocs/specs/issue-517/requirements.md R5.1cli/tests/test_handoff_record.py:116
21the handoff recorda ticket-carried record carries each file in a details blockdocs/specs/issue-517/requirements.md R5.1, R5.2cli/tests/test_handoff_record.py:133
22the handoff recordan artifact-carried record pins the spec-chain artifact's hashdocs/specs/issue-517/requirements.md R5.1cli/tests/test_handoff_record.py:152
23the handoff recordthe rendered record is byte-stable for each carrierdocs/specs/issue-517/testing-plan.md T6 (R5.1)cli/tests/test_handoff_record.py:203
24the poller starts at the right stepeach stage enters its row's starting stepdocs/specs/issue-517/requirements.md R6 tablecli/tests/test_handoff_record.py:282
25the handoff recorda record of a version the reader does not know is ignoreddocs/specs/issue-517/requirements.md R5.5cli/tests/test_handoff_record.py:320
26the handoff recorda record with a key the reader does not know is rejecteddocs/specs/issue-517/requirements.md R5.5cli/tests/test_handoff_record.py:336
27handoff abuse casesa handoff record entering implementation is rejecteddocs/specs/issue-517/requirements.md §Security, abuse case 2cli/tests/test_handoff_record.py:352
28handoff abuse casesan artifact name outside the closed set is refuseddocs/specs/issue-517/design.md §Security designcli/tests/test_handoff_record.py:382
29handoff abuse casesa branch outside the-loop/ or failing check-ref-format is refuseddocs/specs/issue-517/design.md §Security designcli/tests/test_handoff_record.py:439
30the handoff recorda body over 65,536 characters continues in part commentsdocs/specs/issue-517/requirements.md R5.2cli/tests/test_handoff_record.py:556
31handoff abuse casesa handoff record from an unauthorized user is ignoreddocs/specs/issue-517/requirements.md §Security, abuse case 1cli/tests/test_handoff_record.py:644
32handoff abuse casesa part comment by another author is ignoreddocs/specs/issue-517/design.md §Security designcli/tests/test_handoff_record.py:729
33phase selection for a handed-off itemthe checklist for a requirements-settled handoffR6.4 (T6)cli/tests/test_handoff_selection.py:151
34phase selection for a handed-off iteman item with no handoff walks exactly as beforeR7.1, compatibility NFRcli/tests/test_handoff_selection.py:233
35a handed-off item starts at the right stepan exploring handoff walks to brainstormingR6 table, R6.4cli/tests/test_handoff_selection.py:328
36a handed-off item starts at the right stepa brainstorm-settled handoff walks to brainstorm-approvalR6 table, R6.3, R6.4cli/tests/test_handoff_selection.py:343
37a handed-off item starts at the right stepa requirements-settled handoff walks to requirements-approvalR6.1, R6.3, R6.4cli/tests/test_handoff_selection.py:361
38a handed-off item starts at the right stepa design-settled handoff with a testing plan walks to design-approvalR6 tablecli/tests/test_handoff_selection.py:384
39a handed-off item starts at the right stepa design-settled handoff without a testing plan walks to test-planningR6 tablecli/tests/test_handoff_selection.py:401
40a handed-off item starts at the right stepcheck reports the phases before the starting step as skipped by handoffR6.3cli/tests/test_handoff_selection.py:417
41a handed-off item starts at the right stepan item with no handoff walks exactly as beforeR7.1, compatibility NFRcli/tests/test_handoff_selection.py:438
42import-handoff stays out of every other item's walka work item with no handoffR7.1cli/tests/test_handoff_state.py:97
43compatibilitya work-item-state.json with none of the new keyscompatibility NFR (testing-plan T10)cli/tests/test_handoff_state.py:200
44the import-handoff nodethe shipped graph places it after phase selectionR7.1cli/tests/test_import_handoff.py:135
45the import-handoff nodean item with no handoff walks exactly as beforeR7.1cli/tests/test_import_handoff.py:162
46import-handoff demotes a carried artifact that fails its shape checka requirements.md missing Security considerations demotes to requirements-definitionR7.3cli/tests/test_import_handoff.py:248
47approvals carried in the chata brainstorm carried under requirements-settled is locked as approved by the handoffR6.5, R8.3cli/tests/test_import_handoff.py:286
48a carried file is pinned by its sha256 (abuse case 4)a carried file whose hash does not match is refusedR7.3, security design (abuse case 4)cli/tests/test_import_handoff.py:321
49a carried body is data (abuse case 5)an artifact body with agent-directed text is written verbatim and changes no statesecurity design (abuse case 5)cli/tests/test_import_handoff.py:347
50conversation handoffa Jira copy is created with issue type, parent and the mirror labeldocs/specs/issue-517/requirements.md R3.4, R3.5cli/tests/test_jira_verbs.py:200
51Jira as a work-item sourcean authorized Jira comment resumes the work item's sessiondocs/specs/issue-475/requirements.md#R5.3cli/tests/test_jira_integration.py:216
52Jira as a work-item sourcethe same Jira comment by webhook and by poll is delivered oncedocs/specs/issue-475/requirements.md#R6.4cli/tests/test_jira_integration.py:250
53Jira as a work-item sourcea Jira control comment seen by both ingresses is executed oncedocs/specs/issue-475/requirements.md#R6.4cli/tests/test_jira_integration.py:294
54Jira as a work-item sourcea Jira phase-selection checklist ticked in place is read at executedocs/specs/issue-475/requirements.md#R5.5cli/tests/test_jira_integration.py:371
55Jira as a work-item sourcean unlisted Jira user's execute leaves the gate waitingdocs/specs/issue-475/requirements.md#R7.2cli/tests/test_jira_integration.py:409
56Jira as a work-item sourcea gate answer given on Slack advances a Jira work item's gatedocs/specs/issue-475/design.md#c8--ingress-poll-provider-webhook-doorbell-allow-listcli/tests/test_jira_integration.py:438
57Jira as a work-item sourcearming a Jira ticket is a label; starting it is a persondocs/specs/issue-475/design.md#security-design (abuse case 5)cli/tests/test_jira_integration.py:491
58Jira as a work-item sourcea Jira work item's session runs in its origin repository's worktreedocs/specs/issue-475/requirements.md#R5.4cli/tests/test_jira_integration.py:546
59Jira as a work-item sourcea Jira the-loop start whose spawn failed is retrieddocs/specs/issue-475/requirements.md#R6.4cli/tests/test_jira_integration.py:592
60Jira as a work-item sourcea live Jira session outlives its project's mappingdocs/specs/issue-475/requirements.md#R5.4cli/tests/test_jira_integration.py:625
61Jira as a work-item sourcea Jira comment reaches the session as untrusted datadocs/specs/issue-475/design.md#security-design (abuse case 10)cli/tests/test_jira_integration.py:657
62Jira as a work-item sourcea PR naming a registered Jira key routes to the Jira work itemdocs/specs/issue-475/requirements.md#R8.1cli/tests/test_jira_integration.py:684
63Jira as a work-item sourcefinish-tasks transitions the Jira ticket to Donedocs/specs/issue-475/requirements.md#R3.7cli/tests/test_jira_integration.py:764
64conversation handoffa Jira copy is created with issue type, parent and the mirror labeldocs/specs/issue-517/requirements.md R3.4, R3.5cli/tests/test_jira_integration.py:797
65Jira as a work-item sourcethe-loop comment on a Jira ref is recorded on the Jira ticketdocs/specs/issue-475/requirements.md#R8.2cli/tests/test_jira_integration.py:840
66Jira as a work-item sourcethe delivered prompt names Jira and the origin repositorydocs/specs/issue-475/requirements.md#R5.3cli/tests/test_jira_integration.py:875

Released under the MIT License.