| name | eou-promote |
| description | Evaluate whether an EOU should be promoted, deprecated, or retired based on evidence, maturity model, audits, and owner approval. Produces a recommendation only — does not execute any lifecycle transition. |
Evaluate EOU Lifecycle
Evaluate $eou_id against the maturity model and produce a lifecycle recommendation.
This skill has function: promote — it evaluates and recommends. It does not
execute lifecycle transitions. The human owner executes promotion via activate
and retirement via retire after approving this recommendation.
Inputs
$eou_id (required) — the EOU identifier to evaluate; must match a spec file and registry entry.
target_stage (optional) — the lifecycle stage to transition to; if omitted, infer the logical next stage from the gate table.
Required reading
foundry/maturity-model.yml — promotion gate requirements per lifecycle stage
foundry/registry.yml — current registration status and lifecycle stage
foundry/governance.yml — approval authority for lifecycle transitions
Also read (to evaluate evidence)
foundry/audits/eou-audits/{eou_id}.audit.yml — most recent audit (required for draft → pilot and above)
foundry/self-evolution/regression/cases/*.yml — filter to YAML files where the eou_id field equals $eou_id — regression coverage
foundry/runs/ — scan for trace.yml files containing eou_id: {eou_id} — execution traces required for pilot → active
Promotion prerequisites (all must be satisfied)
| Gate | Required evidence |
|---|
candidate → draft | At least one complete spec pass and one failed-case regression fixture |
draft → simulated | Spec complete, dry-run or sandbox trace available, no open critical findings |
draft → pilot | Passed eou-audit, ECP approved for any open findings, human owner on record |
pilot → active | Minimum 3 successful pilot traces, zero open critical findings, human owner approval |
active → monitored | Elevated-risk event or audit finding requiring close observation; no gate, owner decision |
monitored → stable | Minimum 5 clean traces post-monitoring period, zero open high/critical findings |
stable → active | Reverse to active when monitoring obligation lapses; owner decision |
Any → deprecated | Owner decision recorded; replacement EOU or alternative documented |
Any → retired | Superseded by successor EOU or determined to have no operational value; archived, not deleted |
Stop conditions
Halt and report before proceeding if:
$eou_id does not resolve to a spec file in foundry/eous/ or foundry/meta-eous/.
$eou_id is not present in foundry/registry.yml.
foundry/maturity-model.yml does not exist — gate requirements cannot be evaluated without it.
- No target transition is specified and the current lifecycle stage has no obvious next step.
Procedure
- Load the EOU spec at
foundry/eous/{eou_id}.yml (or foundry/meta-eous/{eou_id}.yml).
- Identify the current
lifecycle_stage.
- Check each gate requirement for the target transition.
- For each missing gate, record the gap and block the recommendation.
- Write the lifecycle recommendation.
Output
Write to foundry/governance/lifecycle/{eou_id}.recommendation.yml:
eou_id:
current_stage:
recommended_action:
target_stage:
gate_results:
- gate:
satisfied: true | false
evidence:
gap:
recommendation_rationale:
requires_human_approval: true
Constraints
- Output recommendation only — do not modify the EOU spec, registry, or governance files directly.
- Do not execute any lifecycle transition. Evaluation and execution are separate acts:
function: promote (this skill) — evaluate gates and recommend
function: activate — execute promotion to active (requires human approval)
function: retire — execute retirement (requires human approval)
- A missing audit, trace, or owner record blocks promotion — record the gap, do not invent evidence.
promote_to: active always requires requires_human_approval: true.