Skip to content

Dependency change profile

Activate this profile when you add, update, replace, or remove a package, runtime, image, CI action, model, external service, or other third-party component.

Record activation durably in FOUNDATION.md. The gates in this profile apply only to work units that modify a dependency. If the profile is not vendored, add it from the pinned foundation commit before you make the change.

Document type

  • Opt-in standard. This profile implements P01, P02, P03, P05, P06, P07, P08, P09, P10, P11, P13, and, for a production dependency, P14.
  • Form. Record the durable choice in PROJECT.md, the canonical inventory, or an ADR according to its effect. This profile is not a dependency register.
  • Evidence. Record the lockfile, digest, dated scans, tests, build, measurements, and observed removal plan in delivery evidence. A dependency name or one successful build is not sufficient evidence.

Need and alternatives

  • Describe the specific unmet need.
  • Verify that an existing capability, the standard platform, or a simpler solution is not sufficient.
  • Identify the consumers, owner, and criticality of the dependency.
  • Classify the dependency as development, build, test, CI, runtime, data, or external service.
  • Document the cost of a local implementation and the operating cost of the third-party component.
  • Create an ADR if the dependency structures multiple modules, modifies a contract or data, causes a durable risk increase, or makes removal costly.

Origin and trust

  • Use an official or explicitly approved source.
  • Verify the identity of the package, image, publisher, or provider. Prevent adoption of a namesake or compromised dependency.
  • Review maintenance activity, release frequency, security advisories, and relevant ownership changes.
  • Identify transitive dependencies, installation scripts, downloaded binaries, and requested permissions.
  • Verify a signature, checksum, digest, or provenance when it is available and proportional to the risk.
  • Record the dependency in the project inventory or SBOM.

License and rights

  • Identify the license and verify that it is compatible with the planned use and distribution.
  • Keep the required notices, attributions, and redistribution obligations.
  • Verify the terms for supplied code, data, models, and content separately.
  • Document each restriction on use, territory, volume, or modification.
  • Block adoption for a distributed or public surface while a required license or right is unknown.

Version and reproducibility

  • Pin an immutable version or digest according to the component type and risk.
  • Record the observed current version and the target version separately. Do not present the target as installed.
  • Update and commit the lockfile or canonical inventory.
  • Declare compatible platforms, runtimes, and versions.
  • Read release notes, migrations, and incompatible changes before an update.
  • Define the update policy, review frequency, and owner.
  • Provide rollback to a known version without dependence on an uncertain rebuild.

Vulnerabilities and software supply chain

  • Run the project vulnerability and provenance controls.
  • Date the results. Record the tool, tool version, consulted database, and scan limitations.
  • Correct each applicable vulnerability. Otherwise, document the actual exposure, compensating control, owner, and review date.
  • Limit permissions, secrets, network access, and build actions to the minimum.
  • Test untrusted contributions without access to secrets or protected environments.
  • Do not present an empty scanner result as proof that no vulnerability exists.

Data and confidentiality

For a dependency that receives, stores, or produces data, document:

  • the data categories and purpose;
  • data minimization and the fields that are transmitted;
  • retention, deletion, export, and portability;
  • applicable subprocessors, regions, or transfers;
  • possible data use for training, analysis, or advertising;
  • authentication scopes and permissions;
  • encryption, logging, and incident procedures;
  • the method to test without real data when possible.

Cost, reliability, and operations

  • Measure fixed, variable, and labor costs. Define alert thresholds.
  • Document quotas, limits, latency, availability, and support policy.
  • Define timeouts, retries, idempotency, and unavailable behavior when applicable.
  • Provide observability and diagnostics. Do not make the third-party service necessary for project observability.
  • Identify technical or contractual lock-in and the data migration cost.
  • Test a degraded mode, fallback, or safe stop according to criticality.

Removal or replacement

  • Define how to disable the dependency without silently breaking its consumers.
  • Identify the files, configurations, secrets, data, contracts, and artifacts to remove.
  • Provide verifiable data export, migration, or deletion.
  • Identify the alternative or behavior without the dependency.
  • Test update rollback and the removal procedure when they are critical.
  • Revoke credentials and permissions that become unnecessary after removal.

Minimum gate

  • unmet need and alternatives recorded;
  • origin, owner, and consumers identified;
  • compatible license and obligations;
  • pinned version or digest and aligned lockfile;
  • vulnerabilities, provenance, and permissions assessed on a specified date;
  • transmitted data, retention, and rights documented;
  • cost, limits, failure modes, and observability assessed;
  • tests, build, and final surface verified in applicable environments;
  • concrete rollback and removal procedures;
  • SHA, versions, results, and limitations retained in the delivery evidence.
Navigation

Type to search…

↑↓ navigate↵ selectEsc close