A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
majordomus.profile-requirements@1
Profile requirements
What it is
- URI
majordomus://rule/majordomus.profile-requirements@1- Kind
rule- Identity
majordomus.profile-requirements@1- Path
.ai/repo/rules/vendor/majordomus/rules/profile-requirements.v1.md- Provenance
- declared
- Media type
text/markdown- As a capability
- rule.majordomus.profile-requirements@1
Front matter
{
"id": "majordomus.profile-requirements",
"version": 1,
"kind": "rule",
"title": "Profile requirements",
"description": "A profile may demand more than the shared contract — a regression test, a decision record — and finish refuses without it.",
"statement": "A profile may require more than the shared contract, and finish refuses a completed outcome that lacks it.",
"status": "active",
"class": "blocking",
"depends_on": [
"majordomus.justified-escalation@1"
],
"tags": [
"profiles",
"finish"
],
"x-majordomus": {
"validator": "profile_requirements",
"category": "regression",
"enforced_by": [
"finish"
],
"exit_code": 10,
"claims": [
"profile-axes",
"profile-validate"
],
"tests": [
"test/cases/16_profiles.sh"
]
}
}Content
---
id: majordomus.profile-requirements
version: 1
kind: rule
title: Profile requirements
description: A profile may demand more than the shared contract — a regression test, a decision record — and finish refuses without it.
statement: A profile may require more than the shared contract, and finish refuses a completed outcome that lacks it.
status: active
class: blocking
depends_on: [majordomus.justified-escalation@1]
tags: [profiles, finish]
x-majordomus:
validator: profile_requirements
category: regression
enforced_by: [finish]
exit_code: 10
claims: [profile-axes, profile-validate]
tests: [test/cases/16_profiles.sh]
---
# Rationale
A profile may demand more than the shared contract — a regression test, a decision record — and finish refuses without it.
# Required behaviour
A profile may require more than the shared contract, and finish refuses a completed outcome that lacks it.
# Failure behaviour
A violation is a `FAIL` finding under the category `regression`, and the command that found it exits 10. Under `watch` the same violation is reported as drift and the command exits 11.
# Verification
`mj_validate_profile_requirements` decides it, dispatched from `finish`. The behavioural case `test/cases/16_profiles.sh` proves it, and CI runs that case.