Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / tc-features

tc-features

Small shared NuGet library (TC.Features) providing a feature-toggle abstraction with hardcoded feature classes and an appSettings-based toggle provider.

50 · ambermediumlooseNo signalZDD: not applicablelibrarydormant

Health score

50

0 to 100 across seven weighted factors; nothing is hidden. Green is 75 and above, amber 50 to 74, red below 50. How scoring works.


Runtime currency / 25
0
.NET Framework, out of mainstream support
Legacy transport / 15
15
No legacy WCF or SOAP surface
Test posture / 15
0
No tests
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
15
No dangerous coupling detected
Activity / 10
0
Dormant: no meaningful change for two years or more while still deployed
Deployment hygiene / 5
5
CI in place
Health over time
2026-07-24 (run-2026-07-24-1): 502026-07-27 (run-2026-07-27-1): 50
No change since 2026-07-24 (50 to 50).

Facts

Languagescsharp
Frameworks-
Runtimes.NET Framework 4.5.2
Tests / CInone / CI in place
Last commit2019-03-15
OwnerOwner unknown (mapping to be curated)
DomainPlatform services (system generated; curate in repo-owners.json to override)
Product areaShared platform
HostedNo signal No hosting signal in its pipelines (typical for libraries and contract packages)
Releases1 release pipeline(s): tc-features release
Integration-
SourceOpen in Azure DevOps

Risk flags

Each flag links to its glossary definition.

Dependencies in context

Laying out the graph…
greenamberreddata store (square, dashed link)Node size follows fan-in. Click any node to open it.

Entanglement

loose No binding mechanisms apply: this system needs no untangling work.

    Depends on / used by

    Depends on (0)
    Nothing internal.
    Used by (1)

    Capability duplication

    Part of the Feature flags family (retire): Dormant since 2019

    Migration playbooks

    Generated from this repo's assessment data: what is feasible, what blocks it, and the steps in order. Ratings: green means actionable now, amber means sequence other work first, red means blocked, grey means not applicable.

    ZDD adoption

    Not applicable

    Not a deployed service (libraries, database definitions, desktop apps) or a retirement candidate not worth the investment. Ships as a package; ZDD applies to the services that consume it.

    SQL Server exit

    Not applicable

    No SQL Server dependency is recorded for this repo. Nothing to migrate.

    Containerisation

    Not applicable

    Libraries ship as packages, not as running services. There is nothing to containerise.

    Recommended actions

    Retire tc-features

    Dormant since 2019. Part of the Feature flags consolidation: Introduce one modern feature flag service, migrate the 25 consumers of phenix-feature-service to it, retire tc-features, and remove the hardcoded toggle maps as their hosts are modernised.

    Impact: A migration never paid for, a pipeline decommissioned and an attack surface removed

    proposed

    Assessment notes

    tc-features

    Purpose

    Publishes the TC.Features NuGet package: an IFeature/IToggleProvider abstraction plus an AppSettingsToggleProvider that reads FeatureToggle.<FeatureName> keys from ConfigurationManager.AppSettings. Concrete feature classes are hardcoded in the library itself (SalesTax, EmailCreditCardReceipt, CardHashFraudCheck, VNettAtol, VNettRetailLeisure, EnableMultiUseVanManagement), so adding a toggle means shipping a new package version.

    Tech stack

    Single C# class library on .NET Framework 4.5.2 in the old non-SDK csproj format, packaged via a nuspec with token replacement. Eleven source files total; no third-party packages beyond framework references.

    Deployment

    Included as prod_application with 1 release (tc-features release release pipeline from the tc-features release classic build). No pipeline YAML in the repo. It ships as a NuGet package to the internal feed rather than a deployed service.

    Dependencies

    None — no internal estate packages and no third-party packages. The nuspec declares framework assemblies only (System.ServiceModel, System.ComponentModel.DataAnnotations).

    Data stores

    None. Toggle state lives in the consuming application's app/web.config appSettings.

    Integration points

    None; it is a pure in-process library.

    Code health

    Dormant since 2019-03-15 with no test project, no README, and TFS-era source-control bindings (SccProjectName=SAK) still in the csproj. CI exists only as a classic build pipeline.

    Modernisation risks

    The ConfigurationManager-based provider ties consumers to .NET Framework config files, and hardcoding feature classes in a shared package is the opposite of how the estate now handles flags (phenix-feature-service). The pragmatic path is to migrate the handful of remaining toggles to the central feature service and retire this package; retargeting it to .NET Standard would preserve an outdated pattern.