Skip to main content
manual page/ Tutorial

Task and Run

sourceSource: suspec/docs/tutorial/02-task-and-run.mdModified: 2026-06-30
Sections
3
Format
Markdown
Order
13 / 156

This page creates:

  • tasks/checkout-expiry.md
  • a run summary in that task

Task

Create tasks/checkout-expiry.md.

code
---
type: task
id: TASK-checkout-expiry
source:
  - SPEC-checkout
scope: [AC-001]
status: ready
---

# Task: Expired checkout session returns 409

## Source

- `specs/checkout/spec.md`

## Scope

- AC-001 - A checkout session older than 30 minutes returns `409 SESSION_EXPIRED`, never a 5xx.

## Do not change

- the `sessions` table schema

## Affected areas

- `src/checkout/`
- `test/`

## Verify

- [ ] `npm run test:integration -- expired-session` (AC-001)

## Agent instructions

Copy from the task template.

Check:

  • scope is [AC-001]
  • Do not change names the schema
  • verify command matches the spec
  • agent instructions come from the template

Run

Use one worktree or branch per task.

Example:

code
git worktree add -b suspec/checkout-expiry ../shop-api--checkout-expiry main

Hand off:

code
Read tasks/checkout-expiry.md and do what it says.

Expected return

The worker pastes real output under the verify item and fills the run summary:

code
## Verify

- [x] `npm run test:integration -- expired-session` (AC-001)

      Test Suites: 1 passed, 1 total
      Tests:       3 passed, 3 total

## Run summary

- Changed files: `src/checkout/expiry.ts`, `src/api/errors.ts`, `test/integration/expired-session.test.ts`
- Verify results:
  - `npm run test:integration -- expired-session` (AC-001): PASS, output above
- Out-of-scope edits: none
- Blocked questions: none

Check:

  • output is pasted, not summarized
  • changed files are listed
  • out-of-scope edits are named, even if none
  • blocked questions are named, even if none

Next: Review.

Starter kit: Set up a workspace