docs(plans): drop the base mutation from monolith/S03 plan (moves to S07)

What

Amends the merged monolith/S03 (GraphQL foundation) plan so Step 2 no longer creates a base mutation. S03 keeps the base resolver, the client-acquisition concern (ArtifactRegistry::CachesClient), the error-rendering concern (RendersArtifactRegistryErrors), the service-unavailable error, and the keyset connection adapter. The concrete base mutation moves to monolith/S07, the first slice with mutations.

Why

Step 2 of the merged S03 plan creates a production Mutations::ArtifactRegistry::BaseMutation (ee/app/graphql/mutations/artifact_registry/base_mutation.rb). That over-reaches the S03 spec, and both specs put the base mutation in S07:

  • S03 spec ships "no concrete AR type, query, mutation, or field" — only the reusable resolver behaviors (client acquisition/reuse, error rendering, keyset connection adapter, cross-service join convention). It establishes the flag-off mutation behavior as a gating contract tested via a test-only mutation, not a shipped base mutation (docs/specs/monolith/S03-graphql-foundation.md, "GraphQL surface").
  • S07 spec explicitly claims it: "S07 is the first slice with mutations, so it introduces the base mutation" and "S07 introduces the base mutation itself (S03 defines no concrete mutation)" (docs/specs/monolith/S07-repository-crud.md).

What changed

  • Step 2 retitled "Base resolver" (was "Base resolver and mutation"); scope, diagram node, and Status table updated to match.
  • Removed the base_mutation.rb production file from Step 2's file list.
  • S03 acceptance criterion 4 (flag-off mutation → top-level ResourceNotAvailable, no client call) is retained, satisfied via a test-only/anonymous mutation composing the Step 1 error concern — spec renamed base_mutation_spec.rbmutation_flag_gate_spec.rb to reflect that no base mutation is shipped.
  • Naming conventions: base mutation marked "not shipped by S03 — belongs to monolith/S07".

Kept intact: the base resolver, ArtifactRegistry::CachesClient, RendersArtifactRegistryErrors (including its mutation-aware error-location split), the service-unavailable error class, and the keyset connection adapter.

Note

!831 (the S03 plan) is already merged, so this is a plan-amendment MR. No monolith code has been implemented against Step 2 yet — there is no shipped base mutation to remove, only the plan.


Written by GitLab Duo

Merge request reports

Loading
Loading