Files
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> c0c7690724 feat(flatten): move bundle dirs to repo root
Move the 8 directories under bundles/ to the repo root via git mv and
remove the now-empty bundles/ directory. Replace the "bundles" entry in
pyproject.toml [tool.deptry] extend_exclude with the 8 moved dir names so
the moved trees stay excluded from Python dependency analysis.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-14 15:26:27 -04:00

5.6 KiB

Production Evidence Packet

The production evidence packet assembles cross-domain evidence into a single decision-ready record. It is the shared input to the gate model (gates.md) and feeds the operational handoff record (handoff-record.md).

Applicability

This packet is used for both:

  • New services — a service that has never been in production. Every evidence domain is assessed; domains that are not applicable are explicitly marked as such with a reason (not silently omitted).
  • Changes to existing systems — a feature, migration, or configuration change to a service already in production. Only the domains affected by the change are assessed; unaffected domains are marked "no change" with a reference to the existing evidence.

Evidence domains

1. Readiness

Field Requirement
Risk class Low / Standard / High per production-readiness
Evidence source Readiness record or explicit gap statement
Owner Named accountable owner for the readiness assessment
Decision Go / No-go / Defer / Exception from the readiness review

For a change to an existing system, cite the delta: what changed since the last readiness review.

2. Migration

Field Requirement
Migration type Schema / data / API / infrastructure / service (or "none")
Evidence source Migration plan per migration-engineering
Recovery path Rollback / roll-forward / restore / irreversible (explicit)
Verification How migration correctness was verified (reconciliation, checksum, smoke)

For a new service, migrations may not apply; state "no migration — new service."

3. Resilience and recovery

Field Requirement
Failure modes assessed Dependency outage, data corruption, zone/region loss, overload
Evidence source Recovery exercise results per resilience-and-recovery
RTO/RPO Stated targets (context-dependent, not universal)
Degradation behavior What degrades and how (graceful degradation, not binary up/down)
Recovery verified Date of last restore test, game-day, or failover exercise

For a change to an existing system, state whether the change introduces new failure modes or alters existing ones.

4. Capacity and cost

Field Requirement
Demand model Expected load, peak, growth rate
Capacity model Scaling limits, quotas, rate limits
Cost model Unit cost, budget constraint, cost attribution
SLO interaction Any cost/SLO tradeoff decisions per capacity-and-cost-engineering
Assumptions Explicit: all demand/capacity/cost assumptions stated

5. Incident learning

Field Requirement
Pre-existing incidents Any incidents from this service or its dependencies relevant to this change
Evidence source Incident records per incident-learning
Follow-up status Verified closure of prior incident follow-up items relevant to this change
New risk register Risks identified during readiness that should feed incident-learning post-launch

For a new service, pre-existing incidents may not apply; state "no prior incidents — new service." The new-risk register is always populated.

Cross-domain entry evidence

Before a production decision can be made, the following must exist as entry evidence (the bundle does not gather it; it requires it):

Evidence Owned by Required for
Readiness record with risk class and accountable owner production-readiness All launches
Migration plan (when a migration is in scope) migration-engineering Migrations
Recovery exercise evidence (game-day, restore test) resilience-and-recovery High-risk launches
Capacity and cost model with explicit assumptions capacity-and-cost-engineering SLO-bearing services
Incident-learning record for relevant prior incidents incident-learning Changes to services with incident history
Security review evidence secure-software-engineering Trust-boundary changes
Release plan release-engineering All launches
SLO / error-budget status site-reliability-engineering SLO-bearing services
Platform/service-catalog entry platform-engineering New services
Data quality / pipeline evidence data-engineering Data-path changes
QA verification evidence qa-methodology All launches

Missing-evidence handling

Any evidence domain without a named source is recorded as an explicit gap:

  • The gap is named (e.g., "no restore test performed").
  • An owner is assigned.
  • A due date or condition is stated (e.g., "before next launch," "within 7 days post-launch").
  • The gap feeds the gate model: missing evidence in a required domain may produce a no-go, defer, or exception outcome, depending on risk class and domain.

A gap is never silently omitted. Every domain in the packet is either sourced or gapped.