# Vault and keyless access

GitHub repository admins are project-admins on that repository without duplicate registry
enrollment. Registry-listed admins with repository write access remain supported.

The two tiers describe authority and blast radius, not separate storage products:

- **Your project:** a project-admin can manage their own product's full vault tree, including
  shared values and dev, rc, and main overrides. Production-stage names do not by themselves
  require an organization master-admin.
- **Organization infrastructure:** shared infrastructure secrets are master-admin managed.
  Project access requires an explicit grant for the relevant names. A read grant permits
  consumption, not rotation or deletion; do not assume a grant authorizes every operation.

Read `mmi-cli oracle org access role <owner/repo> --json` and
`mmi-cli oracle org access capabilities` for your actual authority.
Installing MMI does not confer that authority. The server checks the caller and target scope.
An empty result describes only your visible MMI scope. Check your MMI access and catalog;
it does not require installing or querying a personal vault product.

The registry catalog declares secret names before values are set. A shared, stageless value is
the canonical default; a declared stage override wins for that stage. Avoid accidental duplicate
copies that hide a rotation. Use `mmi-cli vault secrets catalog` and `mmi-cli vault secrets list`
to inspect names and reach, never values.

Consume through `mmi-cli vault secrets use <KEY> -- <command>`: the authorized child receives the
value at runtime. Do not print it, save it to a repository environment file, paste it into chat,
or pass it as a command argument. Keyless means using the authorized runtime injection or workload
identity; developers do not need standing cloud keys to perform supported MMI vault operations.

For declarations, writes, grants, rotation, and verification, read the
[secrets skill](../../secrets/SKILL.md). Writes take values through stdin, never argv.
An access denial or failed provider probe is a fact to resolve, not permission to bypass the vault.
