Overview
Use this skill to judge an existing feature against its ongoing cost. Most governance
looks forward at new bets; this one looks back at what is already carried. It weighs
usage, permanent cost, support load, strategic alignment, and dependencies, and returns
one of five dispositions with a migration/removal plan when warranted. Killing a feature
that no longer earns its keep is a healthy outcome, not a failure.
When to Use
- A feature has low traction but ongoing maintenance, support, or security cost.
- A periodic portfolio review of carried features.
- A feature blocks a platform upgrade or widens the attack surface.
- Cost-cutting pressure needs a principled, auditable way to choose what to drop.
When NOT to Use
- The feature is new and has not had a fair chance to show traction.
- The decision is about a new feature (use
feature-value-governance).
- There is no usage, cost, or support data at all to reason from.
Core Moves
- Frame and resolve knowledge. Name the feature and pull the signals: usage, cost,
support load, strategic alignment, dependencies. Resolve
strategic_framework if present.
- Read traction vs. cost. Is value-per-cost still positive, flat, or negative?
- Map dependencies. Who/what breaks if it changes — internal and customer-facing.
- Choose a disposition: keep, limit, refactor, deprecate, or remove.
- Attach a plan. For deprecate/remove: a migration/removal plan with a churn
guardrail. For limit/refactor: the reduced scope. For keep: the next review trigger.
- State evidence and uncertainty. Cite the data; name what is not known (e.g.
strategic accounts whose migration friction is unsized).
Optional Modules
- Migration plan — Phased deprecation: announce → provide path → grace period →
decommission, with a churn guardrail.
- Strategic-account check — Identify high-value accounts that depend on the feature
and size their migration friction before removal.
- Cost-recovery estimate — Quantify the maintenance/security/upgrade cost recovered by
removal.
Activation Triggers
- Always pull usage AND cost AND support signals; a disposition with only one is unsafe.
- Use the strategic-account check before any
remove or deprecate disposition.
- Use the migration plan whenever the disposition is deprecate or remove.
Inputs (minimum)
- Usage, cost, support load, strategic alignment, dependencies.
Outputs (minimum)
- One disposition (keep / limit / refactor / deprecate / remove) with a plan and an
auditable rationale — recorded as a
sunset (or park) decision on the
Feature Value Governance Contract.
Expected Output
sunset_decision_record:
feature: <one line>
mode: generic | knowledge_aware
signals:
usage: <summary + numbers>
permanent_cost: <summary>
support_load: <summary>
strategic_alignment: <summary>
dependencies: [ ... ]
value_per_cost: positive | flat | negative
disposition: keep | limit | refactor | deprecate | remove
plan: <migration/removal plan, reduced scope, or next review trigger>
churn_guardrail: <what must not happen>
evidence: [ ... ]
uncertainty: <what is not yet known>
Verification
- The disposition rests on usage AND cost AND support, not a single signal.
- Deprecate/remove always carries a migration plan and a churn guardrail.
- Strategic-account dependencies are checked before removal.
- Evidence and uncertainty are both stated.
Handoff Signals
- A removal needs a structural plan →
architecture-review.
- The feature should be reshaped rather than removed →
feature-planning.
- The portfolio question is really "what new bet replaces this" →
feature-value-governance.
Pairs Well With
feature-value-governance
feature-complexity-audit
observability-review
Anti-patterns
- Keeping a feature because removing it feels like admitting failure.
- Removing a feature without a migration path for the accounts that use it.
- Deciding on usage alone while ignoring the cost it offsets (or vice versa).
1---2name: sunset-decision3description: Decide whether an existing feature should be kept, limited, refactored, deprecated, or removed — based on usage, cost, support load, strategic alignment, and dependencies — and produce an auditable sunset decision record.4---56# Overview78Use this skill to judge an **existing** feature against its ongoing cost. Most governance9looks forward at new bets; this one looks back at what is already carried. It weighs10usage, permanent cost, support load, strategic alignment, and dependencies, and returns11one of five dispositions with a migration/removal plan when warranted. Killing a feature12that no longer earns its keep is a healthy outcome, not a failure.1314# When to Use1516- A feature has low traction but ongoing maintenance, support, or security cost.17- A periodic portfolio review of carried features.18- A feature blocks a platform upgrade or widens the attack surface.19- Cost-cutting pressure needs a principled, auditable way to choose what to drop.2021# When NOT to Use2223- The feature is new and has not had a fair chance to show traction.24- The decision is about a *new* feature (use `feature-value-governance`).25- There is no usage, cost, or support data at all to reason from.2627# Core Moves28291. **Frame and resolve knowledge.** Name the feature and pull the signals: usage, cost,30 support load, strategic alignment, dependencies. Resolve `strategic_framework` if present.312. **Read traction vs. cost.** Is value-per-cost still positive, flat, or negative?323. **Map dependencies.** Who/what breaks if it changes — internal and customer-facing.334. **Choose a disposition:** keep, limit, refactor, deprecate, or remove.345. **Attach a plan.** For deprecate/remove: a migration/removal plan with a churn35 guardrail. For limit/refactor: the reduced scope. For keep: the next review trigger.366. **State evidence and uncertainty.** Cite the data; name what is not known (e.g.37 strategic accounts whose migration friction is unsized).3839# Optional Modules4041- **Migration plan** — Phased deprecation: announce → provide path → grace period →42 decommission, with a churn guardrail.43- **Strategic-account check** — Identify high-value accounts that depend on the feature44 and size their migration friction before removal.45- **Cost-recovery estimate** — Quantify the maintenance/security/upgrade cost recovered by46 removal.4748# Activation Triggers4950- Always pull usage AND cost AND support signals; a disposition with only one is unsafe.51- Use the strategic-account check before any `remove` or `deprecate` disposition.52- Use the migration plan whenever the disposition is deprecate or remove.5354# Inputs (minimum)5556- Usage, cost, support load, strategic alignment, dependencies.5758# Outputs (minimum)5960- One disposition (keep / limit / refactor / deprecate / remove) with a plan and an61 auditable rationale — recorded as a `sunset` (or `park`) decision on the62 [Feature Value Governance Contract](../../../aletheia/schemas/feature-value-governance-contract.schema.json).6364# Expected Output6566```yaml67sunset_decision_record:68 feature: <one line>69 mode: generic | knowledge_aware70 signals:71 usage: <summary + numbers>72 permanent_cost: <summary>73 support_load: <summary>74 strategic_alignment: <summary>75 dependencies: [ ... ]76 value_per_cost: positive | flat | negative77 disposition: keep | limit | refactor | deprecate | remove78 plan: <migration/removal plan, reduced scope, or next review trigger>79 churn_guardrail: <what must not happen>80 evidence: [ ... ]81 uncertainty: <what is not yet known>82```8384# Verification8586- The disposition rests on usage AND cost AND support, not a single signal.87- Deprecate/remove always carries a migration plan and a churn guardrail.88- Strategic-account dependencies are checked before removal.89- Evidence and uncertainty are both stated.9091# Handoff Signals9293- A removal needs a structural plan → `architecture-review`.94- The feature should be reshaped rather than removed → `feature-planning`.95- The portfolio question is really "what new bet replaces this" → `feature-value-governance`.9697# Pairs Well With9899- `feature-value-governance`100- `feature-complexity-audit`101- `observability-review`102103# Anti-patterns104105- Keeping a feature because removing it feels like admitting failure.106- Removing a feature without a migration path for the accounts that use it.107- Deciding on usage alone while ignoring the cost it offsets (or vice versa).