Skip to content

Track ADR-0030 stacked-kit merge semantics beyond egress #533

Open

Description

@mogul

ADR-0030 leaves one merge-rule question open: how built-in, team, and personal kits resolve conflicts for volumes and startup steps once multiple scope layers are stacked together. Environment and files already use a later-wins rule, and egress uses union semantics, but volumes and startup-step conflicts still need an explicit rule before the stacked-kit model can be treated as complete.

Why it matters: without a documented rule, two kits can declare the same volume path or startup behavior and produce backend-dependent or order-dependent behavior that is hard to review, test, and explain.

Trigger to pick this up: GSA-TTS/agentic-coding-patterns#441 and GSA-TTS/agentic-coding-patterns#442, the scope-layer kit templates, are the first real stacked-kit consumers expected to force this decision.

Acceptance criteria:

  • ADR-0030 records the chosen volume conflict rule and startup-step conflict/ordering rule.
  • Quickstart kit translation tests cover the selected rule across built-in, team, and personal kit ordering.
  • Documentation explains the rule in durable prose without relying on tracker shorthand.

Related: #474

Activity

  1. basiliskus commented on Oct 7, 2026

    @basiliskus
    Contributor

    The scope-layer templates this issue names are now split into a stack: GSA-TTS/agentic-coding-patterns#476 adds the examples/ container for kit templates, GSA-TTS/agentic-coding-patterns#441 adds the scope-layers pattern doc and the team-kit template, and GSA-TTS/agentic-coding-patterns#442 adds the personal-kit template.

    For the two open fields, GSA-TTS/agentic-coding-patterns#441's pattern doc (integrations/isolation/docs/scope-layers.md, composition table) documents current behavior as checked against acq v4.0.1 on msb, and says the rule is still under discussion here:

    • volumes[]: union across kits; when two kits declare the same mount path, the later kit's entry is used. Not verified on sbx, where sbx composes kits natively.
    • commands[]: appended in kit order. startup steps re-run at every start (on msb, every re-apply). An install step runs once per sandbox, and on msb its once-marker is a hash of the argv alone, so identical install argv in two kits runs once.

    Neither template declares volumes, and their startup steps are idempotent, so they don't force a choice yet. When ADR-0030 records the rules, we'll update the table and the templates' scripts/verify to match.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions