Skip to content

adversarial-design-review: survey sibling artifact-class implementations, not just mechanism-correctness #63

@intel352

Description

@intel352

Gate miss (infra-admin v1.1): the design chose to register scenario test fixtures (a stub iac.provider, an in-process enforcer) inside the workflow engine repo behind a scenario_stub build tag. 3 design + 3 plan adversarial cycles + alignment all passed it; the maintainer flagged it immediately as a code smell — test fixtures don't belong in the production engine repo. The established pattern (sibling scenarios 85/86/87) is a scenario-owned cmd/server/main.go that imports the engine and WithPlugin(...)s fixtures from the scenario repo.

Why the existing classes missed it:

  • "simpler alternative not considered" fired but stayed inside the chosen framing — it weighed in-core-builtin vs external-gRPC-plugin, never the scenario-owned-server-main option.
  • "repo-precedent conflicts" verified precedent for the mechanism (how a plugin registers a module type) but not for the artifact class (how a scenario stands up a server). The decisive check — ls scenarios/*/cmd/server/main.go — was never run.
  • Adversarial cycles optimized the HOW (make the in-core registration compile/load) and never re-challenged the WHERE.

Ask: add to adversarial-design-review (design phase) a required check: "Survey how the codebase already implements this artifact class (not just the mechanism). Grep for sibling instances of the same kind of artifact (scenario servers, plugins, migrations, CLI commands) and confirm the design follows the established shape — or justifies divergence." Same root as the v1 "verify against source" lesson, one level up: survey precedent for the artifact, not just the mechanism. Source: infra-admin v1.1 (workflow#807/#815).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions