Skip to content

[14] feat(flags): model cross-stack feature flags #21

Description

@fernandofielmann

Goal

Provide an explicit cross-stack view of literal feature-flag definitions and reads without relying on global string similarity.

Scope

  • Create FeatureFlag nodes keyed by an exact literal flag key.
  • Emit DEFINES_FLAG and READS_FLAG from configuration, constants, guards, services, and templates.
  • Start with literal IConfiguration/IOptions access and literal frontend flag-service access.
  • Use provider, guard, template, and contract context to improve evidence without evaluating runtime configuration.
  • Preserve source stack, access kind, and evidence on relationships.
  • Omit computed keys, broad configuration sections, and ambiguous aliases.
  • Add an explicit flag trace before including these edges in broader trace modes.

Dependencies

Acceptance criteria

  • Identical literal keys converge on one project-scoped/cross-stack FeatureFlag identity.
  • Definitions and reads retain source, stack, and access-kind metadata.
  • Computed/dynamic keys do not create guessed flag nodes.
  • Unrelated identical strings outside supported flag APIs do not match.
  • Explicit traces can show backend definition/read and frontend guard/service/template reads.
  • Sequential and parallel pipelines produce equivalent nodes and edges.
  • MCP schema, trace modes, graph contracts, and README document the model.

Validation

  • Add backend/frontend literal, configuration binding, guard, template, dynamic-key, false-string-match, ambiguity, deduplication, and parity fixtures.
  • Run Angular, .NET, template, contract, trace, and convergence suites, lint-ci, and scripts/test.sh.
  • Validate privately without publishing repository-specific names or code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions