Stories

A story represents a piece of planned work in Atono, typically written from the user’s perspective. It includes a user story statement, acceptance criteria (ACs), and optional context to guide implementation or review.


Story attributes

FieldTypeDescription
titlestringThe title of the story.
handlestringA unique identifier for the story, shown in the Atono application as the item ID (e.g., STORY-123).
positionintegerThe story’s vertical order within its current workflow step, where 0 is the topmost item. Position is relative to the step and team backlog.
contentarray of content chunksThe main user story statement, typically starting with "As a...". Displayed at the top of the story, and composed of DISPLAY_HTML, TEXT, and PERSONA chunks.
additionalContentarray of content chunksOptional context shown below the acceptance criteria. Often used for background info, technical notes, or decisions. Supports DISPLAY_HTML and TEXT content chunks.
cycleTimeModestringIndicates whether the story is marked as an OUTLIER (excluded) or remains NORMAL (included) in average cycle time calculations, reports, and staleness indicators.
stalenessIndicatorSnoozeUntildatetime (ISO 8601)The date and time until which the staleness indicator is hidden for this story in its current step and team backlog. Once the date passes, the indicator is shown again if the story is still stale.
createdAtdatetime (ISO 8601)The date and time the story was created.
updatedAtdatetime (ISO 8601)The date and time the story was last updated.
doneAtdatetime (ISO 8601)The date and time when the story was completed.
deletedbooleanWhether the story has been deleted.

Story relationships

By default, only the type and id of each related resource are included in the relationships object.
To retrieve full details for any relationship, use the ?include={relationship} query parameter.

FieldTypeDescription
acceptanceCriteriaarray of acceptance_criterionThe list of acceptance criteria linked to the story. Use ?include=acceptanceCriteria to retrieve full details.
assigneeuserThe user assigned to the story. Use ?include=assignee to retrieve full details.
teamteamThe team backlog the story is assigned to. Use ?include=team to retrieve full details.
featureFlagflagThe feature flag associated with the story. Use ?include=featureFlag to retrieve full details.
creatoruserThe user who created the story. Use ?include=creator to retrieve full details.

Example JSON for story

{
  "data": {
    "type": "story",
    "id": "bb452a54-791c-4e8b-9f69-b16832404b11",
    "attributes": {
      "title": "Improve Patch Loading Time",
      "handle": "STORY-33",
      "position": 6,
      "content": [
        {
          "type": "DISPLAY_HTML",
          "value": "<p>As a <strong>live performer</strong>, I want the synthesizer patches to load faster so that I can switch between sounds seamlessly during my performance.</p><p></p><p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://www.figma.com/design/r8VRBLVeZxyqHquFFEU0LI/Atono-Product-UI---Part-4--Trial--Transact--UX-Feedback--Saved-Filters--Search-...-?node-id=30535-55546&amp;t=PYBuhqU8XqTlMJGZ-1\">Design in Figma</a></p>"
        },
        {
          "type": "TEXT",
          "value": "As a "
        },
        {
          "type": "PERSONA",
          "value": "live performer"
        },
        {
          "type": "TEXT",
          "value": ", I want"
        },
        {
          "type": "TEXT",
          "value": " the synthesizer patches to load faster"
        },
        {
          "type": "TEXT",
          "value": " so that "
        },
        {
          "type": "TEXT",
          "value": "I can switch between sounds seamlessly during my performance."
        }
      ],
      "additionalContent": [
        {
          "type": "DISPLAY_HTML",
          "value": "<p><strong>Implementation note:</strong> We're currently using a legacy decompression pipeline. Consider switching to <code>lazy-load</code> modules for better performance.</p><p></p><p><strong>Discussion summary:</strong> We aligned with QA and sound design. Speed was prioritized over transition animations. Follow-up stories may address UX polish.</p>"
        }
      ],
      "cycleTimeMode": "NORMAL",
      "createdAt": "2024-08-09T23:34:11Z",
      "updatedAt": "2025-06-06T20:42:28Z",
      "deleted": false
    },
    "relationships": {
      "acceptanceCriteria": {
        "data": [
          {
            "type": "acceptance_criterion",
            "id": "dcc6bf21-7f85-4aca-b191-496ee4a6b47a"
          },
          {
            "type": "acceptance_criterion",
            "id": "7ab3d7b6-0700-4945-a565-abd34d68f5d1"
          },
          {
            "type": "acceptance_criterion",
            "id": "0a8d07e6-7910-48b8-bbff-37d4b6e3b06f"
          }
        ],
        "meta": {
          "count": 3
        }
      },
      "assignee": {
        "links": {
          "related": "/api/v1/users/fe4641d7-c72a-4165-904d-89b2ded40916"
        },
        "data": {
          "type": "user",
          "id": "fe4641d7-c72a-4165-904d-89b2ded40916"
        }
      },
      "team": {
        "links": {
          "related": "/api/v1/teams/0cd0c8b8-734f-4c17-a07c-e993b04af480"
        },
        "data": {
          "type": "team",
          "id": "0cd0c8b8-734f-4c17-a07c-e993b04af480"
        }
      },
      "featureFlag": {
        "links": {
          "related": "/api/v1/flags/56338410-4aa2-417c-acf1-eda94d344c5f"
        },
        "data": {
          "type": "flag",
          "id": "56338410-4aa2-417c-acf1-eda94d344c5f"
        }
      },
      "creator": {
        "links": {
          "related": "/api/v1/users/bf60edfc-be09-4fea-8597-33c5b333ce05"
        },
        "data": {
          "type": "user",
          "id": "bf60edfc-be09-4fea-8597-33c5b333ce05"
        }
      }
    }
  },
  "included": [
    {
      "type": "team",
      "id": "0cd0c8b8-734f-4c17-a07c-e993b04af480",
      "attributes": {
        "name": "Synth Support Squad",
        "description": "Engineering team responsible for maintaining, optimizing, and enhancing our virtual synthesizer. They ensure smooth operation and implement new features while providing top-notch user support...",
        "createdAt": "2024-07-18T22:49:52Z",
        "updatedAt": "2025-02-07T05:52:49Z",
        "isPublic": true,
        "backlogManagementByOwners": false
      },
      "relationships": {
        "members": {
          "links": {
            "self": "/api/v1/teams/0cd0c8b8-734f-4c17-a07c-e993b04af480/relationships/members"
          },
          "data": [
            {
              "type": "user",
              "id": "2edaca9f-b07e-4af1-b425-1f0b6bf69c0a"
            },
            {
              "type": "user",
              "id": "bf60edfc-be09-4fea-8597-33c5b333ce05"
            },
            {
              "type": "user",
              "id": "fe4641d7-c72a-4165-904d-89b2ded40916"
            },
            {
              "type": "user",
              "id": "a0215837-3d34-4e0b-9796-2ec4d8aa9573"
            }
          ],
          "meta": {
            "count": 4
          }
        }
      }
    },
    {
      "type": "acceptance_criterion",
      "id": "dcc6bf21-7f85-4aca-b191-496ee4a6b47a",
      "attributes": {
        "description": "<strong>Loading Time:</strong> The time to load any patch is reduced to under 2 seconds.",
        "position": 0,
        "level": 0
      },
      "meta": {}
    },
    {
      "type": "user",
      "id": "bf60edfc-be09-4fea-8597-33c5b333ce05",
      "attributes": {
        "createdAt": "2024-04-29T16:45:22Z",
        "updatedAt": "2025-05-08T20:52:56Z",
        "invitedAt": "2025-01-23T22:58:21Z",
        "email": "[email protected]",
        "fullName": "Max Harmon",
        "deleted": false
      }
    },
    {
      "type": "flag",
      "id": "56338410-4aa2-417c-acf1-eda94d344c5f",
      "attributes": {
        "key": "improve_patch_loading_time23",
        "variants": {
          "on": true,
          "off": false
        },
        "createdAt": "2024-08-09T23:35:39Z",
        "updatedAt": "2025-05-08T21:36:44Z"
      }
    },
    {
      "type": "user",
      "id": "fe4641d7-c72a-4165-904d-89b2ded40916",
      "attributes": {
        "createdAt": "2024-08-10T00:45:55Z",
        "updatedAt": "2024-08-10T00:46:58Z",
        "invitedAt": "2025-01-23T22:58:21Z",
        "email": "[email protected]",
        "fullName": "Oliver Resonance",
        "deleted": false
      }
    },
    {
      "type": "acceptance_criterion",
      "id": "0a8d07e6-7910-48b8-bbff-37d4b6e3b06f",
      "attributes": {
        "description": "<strong>Performance Tested:</strong> The patch loading optimization is tested under high CPU load to ensure stability.",
        "position": 2,
        "level": 0
      },
      "meta": {}
    },
    {
      "type": "acceptance_criterion",
      "id": "7ab3d7b6-0700-4945-a565-abd34d68f5d1",
      "attributes": {
        "description": "<strong>No Data Loss:</strong> All patch parameters and settings are preserved accurately after the optimization.",
        "position": 1,
        "level": 0
      },
      "meta": {}
    }
  ]
}