Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/missionmatch / docs/DIRECTIVE_AMENDMENT_6.md |
| Date | Not specified in source |
| Repository | Janady13/missionmatch |
| Revision | 720d47fae476b0d38477ae4401697d372b1ea2bc |
| Branch | feature/opportunity-to-outcome |
| Path or archive member | docs/DIRECTIVE_AMENDMENT_6.md |
| Original SHA-256 | 2ec7c2c67fb3ba122d16af76b3540cf830104e79968dbf7e9b99a62f4368a3c8 |
| Git blob SHA | efcc69a6b55cc39380f548380cda4a52acfd478b |
| Reading-copy SHA-256 | 2ec7c2c67fb3ba122d16af76b3540cf830104e79968dbf7e9b99a62f4368a3c8 |
Recovered source transcript
Download complete source text ↓250 lines · 13.7 KB
# DIRECTIVE AMENDMENT 6: IDENTITY, ROLES, AND THE OPERATOR PLANE
Applies to docs/CLAUDE_CODE_BUILD_DIRECTIVE.md and the consolidated
amendments. Generated 28 July 2026, triggered by live design partner
feedback from FG Talent: a client superuser could not edit her own name,
the Superuser tab rendered inactive for her, and there is no tenant
facing user management. This amendment also establishes the platform
level above superuser that Joseph operates from.
--------------------------------------------------------------------------------
0. HOW TO APPLY THIS AMENDMENT
--------------------------------------------------------------------------------
1. Record "amendment 6 accepted" in BUILD_STATE with the date.
2. This amendment creates two containers: TRACK U, an urgent, small,
production eligible track defined in Section 3, and PHASE 5A,
Identity and Access, inserted between Phase 5 and Phase 6. Track U
may begin immediately and runs in parallel with the current phase.
3. Acceptance items 36 through 40 append to directive Section 11.
4. Every directive rule stands except as explicitly adjusted by the
Track U guardrails in Section 2 item 8. The scoring engine stays
frozen. Role enum values are extended, never renamed, never removed.
--------------------------------------------------------------------------------
1. WHAT THE FEEDBACK REVEALED
--------------------------------------------------------------------------------
Three product gaps, one design flaw:
1. No self service profile. A user cannot change their own name, so a
trivial personal edit escalates to the top of the ladder.
2. No tenant user management. A client admin has no screen to run their
own people: invite, rename, assign roles, deactivate.
3. The platform plane and the tenant ladder share one top role.
Superuser currently means both "Joseph's platform controls" and
"the client's top seat," which is why a client saw a platform tab
at all.
4. Roles below the top are not differentiated enough to hand a client
organization confidently. The matrix needs real, researched
entitlements per role.
--------------------------------------------------------------------------------
2. DECISIONS RECORDED
--------------------------------------------------------------------------------
1. OPERATOR. A new top level, operator, is added above and outside the
tenant ladder. It is the platform plane. Operator holds every
platform capability and every tenant capability in every tenant.
Every operator action is audited. Joseph's account becomes the first
operator. MFA by TOTP is mandatory for operator accounts from the
day the role exists, not waiting for Phase 6. An operator account
without enrolled MFA cannot log in.
2. SUPERUSER becomes the tenant top role, the client's seat, assignable
per tenant and created by an operator. Its existing rule, holds all
capabilities by rule rather than by matrix row, now reads "within
its tenant." The platform surfaces, Organizations, cross tenant
Users, Curation, Federation, and platform Metrics, move behind
operator and answer 404 to everyone else, including tenant
superusers.
3. MIGRATION. Audit every existing superuser grant. Tenant humans
holding superuser keep full power inside their own tenant and lose
only the platform surfaces they never should have seen. Joseph's
account moves to operator. The remap is one audited migration, with
each affected account listed in the ledger.
4. SELF SERVICE PROFILE, every role: edit own display name, title, and
phone, change own password, change own email with verification to
the new address. Changes propagate everywhere the identity renders
and are audited as identity change events. Nobody needs an
administrator to fix their own name.
5. TENANT USER MANAGEMENT, admin and above, tenant scoped: list users
with role and status, invite by email, assign role and per tool
entitlements, edit a user's display name, deactivate and
reactivate, resend invitations. Users are never deleted.
Deactivation blocks login and preserves ownership, activity, and
audit history in full. Grant ceiling, enforced at the API: nobody
assigns a role above their own; admin manages up through manager,
owner up through admin, superuser up through owner, operator
manages everything including creating superusers.
6. MATRIX REBUILD, Phase 5A. Capabilities become entity action pairs
carrying an ownership scope, own, team, or organization, in the
industry pattern, plus feature capabilities for export, bulk edit,
import commit, publish, and the existing approvals. The nineteen
current capability keys remain as aliases mapped forward, never
renamed destructively. The matrix stays exhaustively tested, 404
never 403 stands, and EEO compliance access remains a separate
explicit per user grant outside the ladder, grantable by operator
only, exactly as segregated as today.
7. FIELD SENSITIVITY CLASSES, Phase 5A, first class: rates. Pay rate
is visible to recruiter and above. Bill rate and margin are visible
to manager and above, and invisible below that everywhere,
screens, exports, feeds, and API responses alike. The class
mechanism is generic so future sensitive fields reuse it.
8. TRACK U PRODUCTION GUARDRAILS. The Gate 6 freeze was written to
protect production from the build, not to freeze client serving
fixes, and a design partner is using production today. Track U
items, and only Track U items, may deploy to production ahead of
Gate 6 under four conditions: verified on staging first, Joseph
approves each deploy explicitly and the approval is recorded in the
ledger, the deploy is recorded with commit hash and verification
evidence, and after every deploy the build feature routes are
re proven dark in production. Nothing else gains production
eligibility from this clause.
9. TEAMS, light. Users gain an optional team assignment per tenant,
default single team, giving the team ownership scope meaning.
Nothing heavier than that in this build.
10. ORGANIZATIONS PROVISIONING, Phase 5A, operator console: create a
tenant, set product entitlements per tool, configure the site
mapping, and invite the first superuser by email. This is the
productized path for onboarding the next client.
11. IMPERSONATION, Phase 5A, operator only: view as a user with a
persistent on screen banner, read only by default, write access
only through an explicit escalation, auto expiry within the hour,
and every impersonated request audited with both identities.
12. BY RULE EXTENDS TO TOOLS. Ratified by Joseph 28 July 2026, folded in
from the Track U diagnosis. A tenant superuser holds every product
tool ITS TENANT IS ENTITLED TO, by rule rather than by grant, exactly
as it holds every capability by rule within its tenant. Operator
holds all tools in every tenant. The consequence is the one that
matters to the design partner: the entitlement grid can never render
the top seat as broken, because the top seat is never missing a tool
its organization bought. Confer only what you hold continues to apply
unchanged to every role BELOW superuser, so the ceiling on spreading
access is untouched for the roles where it is load bearing.
13. NO SILENT GREY. Ratified by Joseph 28 July 2026. A disabled
entitlement control must STATE ITS REASON, and the two reasons are
distinct and both legible: the organization is not entitled to that
product, or you do not personally hold that tool. A control that is
merely greyed with no explanation reads as a broken product, which is
precisely how this defect reached Joseph. This applies to every
disabled entitlement control on every surface, not only the Admin
screen.
--------------------------------------------------------------------------------
3. TRACK U, URGENT AND PRODUCTION ELIGIBLE
--------------------------------------------------------------------------------
Scope is exactly these six items, nothing more:
1. Reproduce the reported path first, on staging, logged in with the
reporting user's actual role: the Superuser tab state, the user
list unreachable, the name not editable. Record the root cause in
the ledger before fixing. RATIFIED ADAPTATIONS, 28 July 2026: the
staging account provisioned for the repro MIRRORS the reporting
user's actual production role and tool grants, and what her
production account actually holds is recorded in the ledger. The
users column is full_name, so this amendment's display name wording
maps onto full_name rather than introducing a new column. The users
role CHECK constraint is EXTENDED by migration to admit operator,
never renamed and never narrowed.
2. Self service profile screen per Section 2 item 4, all roles.
3. Tenant user management per Section 2 item 5, admin and above,
including display name editing so the client can fix names today.
4. Operator bootstrap: the role exists, Joseph's account holds it, MFA
enrollment enforced at login for operator, platform surfaces answer
404 to non operators.
5. Superuser remap migration per Section 2 item 3, audited, accounts
listed in the ledger.
6. Production deploys of the above under the Section 2 item 8
guardrails, one at a time, each recorded.
TRACK U GATE:
1. The reported repro passes end to end as the reporting user's role:
she edits her own name, it renders everywhere, and the platform tab
is simply absent rather than inactive.
2. An admin invites a user, assigns recruiter, renames them,
deactivates them, and the deactivated user cannot log in while
every record they own remains intact and attributed.
3. The grant ceiling refuses an admin minting an owner, at the API,
proven by test.
4. An operator login without enrolled MFA is refused. A non operator
requesting any platform route receives 404.
5. After the production deploy, the zero 5xx sweep passes and every
build feature route re proves dark, recorded with evidence.
--------------------------------------------------------------------------------
4. PHASE 5A, IDENTITY AND ACCESS
--------------------------------------------------------------------------------
1. Matrix rebuild per Section 2 items 6 and 7. Role defaults, tenant
scoped, each row building on the one before it:
viewer read only across organization records, no export, no
rates of any kind, no EEO ever.
member viewer plus notes, tasks, and activities on any record.
recruiter member plus full desk work: candidates create and edit,
applications and screenings, imports including commit
with attestation, pools and saved searches, clients and
orders read, pay rate visible, export limited to own and
team.
manager recruiter plus orders create and edit, publish and
unpublish, the existing approvals, requirement approval
and proposal submission, bill rate and margin visible,
organization wide export and bulk edit, fall off
reactivations.
admin manager plus user management, tenant settings, stage
templates, notice templates, import mappings, and
integration configuration.
owner admin plus billing and plan, retention settings, and
full data export.
superuser owner plus everything else tenant scoped, by rule,
within its tenant only.
operator everything everywhere, platform surfaces included,
always audited, MFA always.
2. Ownership scopes implemented as an attribute of each entity action
capability, own, team, organization, with team defined by Section 2
item 9.
3. Field sensitivity classes wired through the render, export, feed,
and API layers so a hidden class is absent from the payload, not
blanked in the UI.
4. Impersonation per Section 2 item 11.
5. Organizations provisioning per Section 2 item 10.
6. The exhaustive capability matrix tests are regenerated for the new
shape and pass in full, including the alias mapping from the
nineteen legacy keys.
GATE 5A:
1. The regenerated matrix tests pass, every role, every tool, every
scope.
2. A recruiter cannot obtain bill rate or margin through any surface:
screen, export file, feed, or raw API response, proven by fixture
inspection of the payloads.
3. The grant ceiling holds at every rung, proven by attempting each
violation.
4. Impersonation shows the banner, expires on schedule, defaults read
only, and writes both identities to every audit row it touches.
5. Provisioning on staging creates a tenant, entitles products,
configures a site mapping, and delivers a working superuser
invitation end to end.
6. A tenant superuser requesting any platform route receives 404, and
the operator with MFA reaches all of them.
--------------------------------------------------------------------------------
5. ACCEPTANCE ADDITIONS TO SECTION 11
--------------------------------------------------------------------------------
36. Every role can edit its own profile, and identity changes are
audited and propagate everywhere the identity renders.
37. The role grant ceiling is enforced at the API for every rung of the
ladder.
38. Rates above pay are invisible below manager on every surface,
including exports, feeds, and raw API payloads.
39. Operator requires MFA without exception, platform surfaces answer
404 to everyone else, and every impersonated action carries both
identities in the audit trail.
40. User accounts are never deleted; deactivation blocks login while
preserving ownership, activity, and audit history.