Skip to content

Bind ticketing preferences into the skills that split and create tickets #1176

Description

@williamthorsen

Problem

The policy governing how work is split across tickets -- one ticket per pull request, an umbrella above two, native relationships where the forge has them -- reaches a session ambiently through williamthorsen-workflow-preferences but not at the steps that act on it. Ambient delivery puts the policy in the session; it does not put it where a split is decided or a relationship recorded.

The policy is personal, so writing it into the consuming skills is not an option: that imposes one user's ticketing practice on every consumer of the library.

Context

#1163 designs the guidance hook for exactly this shape: a named slot a skill declares in its body, filled at sync time with the bodies of the rulebooks a declaration binds to it, chosen per user rather than fixed at authoring time. #1172 applies the same adoption pattern to implementation preferences.

Blocked by #1251, which adds the hook delivery mode the new rulebook declares.

Proposed solution

Move ## Splitting work across tickets out of williamthorsen-workflow-preferences into a new williamthorsen-ticketing-preferences, delivery: hook. The deferral rule ("a ticket is a signal, not a boundary") stays behind as ambient, because it governs scope in every session rather than ticket creation alone.

hook is the whole of its delivery. skill would spend a standing skill-index line on three sentences, and ambient alongside hook is what sync reports as "Bound and ambient", since the session would then carry the text twice. The cost accepted is that a session that splits work without invoking one of the three skills no longer carries the policy.

Declare a ticketing-preferences guidance hook in the three bodies that act on the policy, and bind the new rulebook to it in ~/.agents/codeassembly.yaml (machine-local, not committed):

  • create-ticket -- records the relationships.
  • design-and-plan -- recognizes a design that needs more than one pull request.
  • respond-to-review -- files follow-up tickets.

wrap-up and plan-orchestrable-steps are not consumers: wrap-up batches follow-up findings rather than splitting planned work, and reaches the policy through create-ticket on the occasions it does create one; plan-orchestrable-steps works within a single ticket.

Place each declaration at a section boundary: a fill splices at ## level, so a directive between sibling ### steps orphans every step after it.

Name the hook per #1163's convention: concern rather than consumer, and no user or org prefix.

Acceptance criteria

Must have

  • williamthorsen-ticketing-preferences carries the ticket-splitting policy with delivery: hook, and williamthorsen-workflow-preferences keeps the deferral rule, with nothing duplicated between them.
  • create-ticket, design-and-plan, and respond-to-review each declare a ticketing-preferences hook, positioned so no fill orphans a following section.
  • ~/.agents/codeassembly.yaml binds williamthorsen-ticketing-preferences to that hook.
  • Each of the three skills, invoked with no appended instructions, carries the ticket-splitting policy in context before it decides on or creates a ticket.
  • The new rulebook is a member of the williamthorsen collection.
  • Both guidance hooks are guarded by one reach test rather than a copy per hook.
  • New and modified behavior is covered by tests.
  • validate stays clean and the content-convention suites stay green.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureAdded or improved external functionalityscope:agents

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions