Skip to content

Activity exits: the investigation record behind the work package - #504

Merged
m2ux merged 1 commit into
engineeringfrom
docs/496-activity-exits
Aug 24, 2026
Merged

Activity exits: the investigation record behind the work package#504
m2ux merged 1 commit into
engineeringfrom
docs/496-activity-exits

Conversation

@m2ux

@m2ux m2ux commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

The investigation record behind the activity-exits work package: the route counts the change was
measured against, the naming decisions it rests on, and the per-site tail measurements that picked
which exits become immediate.

One new file, no edits to anything existing.

Why it lands first

#501 pins .engineering at this commit. Until it is on the engineering branch, that pointer names
a commit reachable only from a feature branch — nothing fails at checkout or build, since the object
lives in this repo, but .gitmodules tracks engineering, so a git submodule update --remote
would quietly move off it. Merging this before #501 keeps the pointer honest.

Both PR bodies in the stack cite this record for their measured claims, so it is also where a
reviewer goes to check the numbers rather than take them on trust.

What it records

  • Route counts per workflow before the move — 176 declarations across 117 activity files in 17
    workflows, broken out as 127 transitions (48 conditional), 15 decision branches and 34
    checkpoint-option routes, with a per-workflow table. And zero after.
  • Why the count falls by 13 rather than staying flat — nine decision branches that named no
    destination and so answered nothing about where next, six checkpoint options that reached a
    destination an exit already reached, and two activities that gained a named ending where they had
    been falling off the end of their routes.
  • The reconciliation with the issue's figures. Activity exits: the workflow stitches the graph, not the activities #496 cites 208; the corpus had drifted to 176 by
    the commit this branch starts from, and the file and workflow counts match exactly.
  • The exit-naming table — the thirty routes whose names could not be derived from a predicate,
    each with the name chosen for it, plus the four derived names that read as the negation of a flag
    and the two branch ids that named the activity they routed to.
  • The tail measured after every routed checkpoint option — how many steps follow it and how many
    of those are ungated. This is the evidence for which five aborts become immediate exits, and for
    leaving the two hand-gated review dispositions alone.

Non-goals

A record of what was measured, not a design document. The design is stated in the definitions and in
the PR bodies; this exists so the numbers in them can be checked.

🤖 Generated with Claude Code

Route counts per workflow before the move and zero after, with the thirteen
declarations that named nothing accounted for; the thirty exits whose names could
not be derived from a predicate; and the tail measured after each checkpoint
option that carries a route, which is what picks the five immediate exits.
@m2ux
m2ux merged commit 230447d into engineering Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant