Skip to content

Forbidden Shortcuts Catalog

Field-level reference for the 10 admitted catalog keys. For narrative explanation see Forbidden Shortcuts.

Catalog source: .nimi/contracts/forbidden-shortcuts.catalog.yaml.

Catalog

KeyForbidden meaning
mvp_subset_contractdo_not_cut_canonical_contract_truth_into_a_temporary_minimum_subset
legacy_aliasdo_not_keep_obsolete_semantics_alive_via_soft_aliases
compat_shimdo_not_hide_owner_cut_gaps_behind_temporary_compatibility_code
dual_readdo_not_keep_two_parallel_truth_read_paths_without_explicit_admission
dual_writedo_not_keep_two_parallel_truth_write_paths_without_explicit_admission
placeholder_successdo_not_fake_success_or_closure_when_required_truth_is_missing
happy_path_only_closuredo_not_claim_closure_when_only_the_happy_path_is_closed
time_phased_layeringdo_not_replace_semantic_layering_with_time_sliced_core_contracts
app_local_shadow_truthdo_not_let_app_local_convenience_state_become_hidden_canonical_truth
silent_owner_cut_reopendo_not_reopen_owner_domain_truth_inside_a_downstream_execution_wave

Per-Pattern Detail

mvp_subset_contract

PropertyValue
TriggerContract is admitted as minimum subset with deferred parts
Failure shapeSubset becomes de facto contract; future expansion is breaking change
Correct alternativeDesign the full contract first; layer by ontology not chronology
Related catalog keystime_phased_layering

legacy_alias

PropertyValue
TriggerOld semantics kept alive via soft alias
Failure shapeParallel truth; permanent migration burden
Correct alternativeHard cut; or admit dual-truth explicitly with timeline
Related catalog keyscompat_shim, dual_read, dual_write

compat_shim

PropertyValue
TriggerOwner-cut gap hidden behind temporary compatibility code
Failure shapeSame as legacy_alias
Correct alternativeSame

dual_read

PropertyValue
TriggerTwo parallel truth read paths without explicit admission
Failure shapeDrift between paths; consumers see different truths
Correct alternativeSingle read path; or admit dual-truth with explicit transition contract
Related catalog keysdual_write, legacy_alias

dual_write

PropertyValue
TriggerTwo parallel truth write paths without explicit admission
Failure shapeDrift; "migrating from one to the other" becomes permanent
Correct alternativeSame as dual_read

placeholder_success

PropertyValue
TriggerTyped contract failure hidden behind a fallback returning "something"
Failure shapeDownstream code sees no signal of failure; audit cannot detect
Correct alternativeFail closed with typed reason; retry is for transport / auth, not contract rescue

happy_path_only_closure

PropertyValue
TriggerClosure claimed when only happy path is closed
Failure shapeFailure modes implicit; consumers do not know what fails
Correct alternativePin failure modes explicitly before semantic closure

time_phased_layering

PropertyValue
TriggerLayering by time (v1 → v2 → v3) instead of by ontology (core / extended / custom)
Failure shapePermanent supersession churn; each "next version" is soft legacy_alias
Correct alternativeLayer by what abstraction means, not by when it was added

app_local_shadow_truth

PropertyValue
TriggerApp-local convenience state becomes hidden canonical truth
Failure shapeApp's state diverges from canonical; other apps disagree; audit cannot reconstruct
Correct alternativeApp state is admitted as ephemeral and local; persist in owner domain only

silent_owner_cut_reopen

PropertyValue
TriggerReopening owner-domain truth inside a downstream execution wave
Failure shapeOwner-domain mutation hidden in execution; audit lineage broken
Correct alternativeAdmit a separate owner-domain wave first; then run downstream execution against updated truth

Topic-Local Extensions

A topic may declare additional topic-local forbidden shortcuts. Extensions must:

  • Use named keys (snake_case identifiers).
  • Not free-form prose.
  • Be declared in the topic's forbidden_shortcuts field alongside the package-owned catalog keys.

Example topic-local extension:

yaml
forbidden_shortcuts:
  # package-owned
  - mvp_subset_contract
  - legacy_alias
  - compat_shim
  - dual_read
  - dual_write
  - placeholder_success
  - happy_path_only_closure
  - time_phased_layering
  - app_local_shadow_truth
  - silent_owner_cut_reopen
  # topic-local extensions
  - sidebar_links_to_unwritten_pages
  - product_pages_inventing_facts_not_in_extracted_sources

Detection

MechanismWhat it catches
AuditPattern detection in code / docs
Closeout drift-resistanceVerifies forbidden shortcuts remain forbidden
Topic-step-decisionRefuses admission if pattern detected

Source Basis

Nimi AI open world platform documentation.