Summary
Enforce guild-specific onboarding and rules acceptance as mandatory access gates even when a user already has a valid global DataDrop verification identity.
Problem
The new global verification identity model allows verification reuse across guilds, but Discord onboarding and rules acceptance are still guild-bound flows.
A user who is already globally verified must still complete the target guild's onboarding and rules acceptance before receiving protected access in that guild.
Without this rule, global verification would incorrectly bypass a required guild-specific access gate.
Why This Matters
This issue protects the separation between:
- global identity verification
- per-guild onboarding and rules acceptance
- guild-specific protected access
It is required for correctness of the BPMN flow and for safe multi-tenant behavior.
Required Behavior
- A globally verified user joining a new guild is not automatically treated as fully eligible for protected guild access.
- The user must still complete that guild's onboarding flow and rules acceptance.
- Protected access is granted only after guild-specific onboarding completion is confirmed.
- The system must record an auditable transition reason when guild onboarding completion unlocks access.
Acceptance Criteria
- A globally verified user who joins a guild but has not completed that guild's onboarding remains gated.
- Protected channels, actions, or verified-state effects are not granted before guild onboarding completion.
- Once onboarding/rules acceptance is completed for that guild, the member can proceed through the guild lifecycle without re-running normal email verification unless reverification was explicitly triggered.
- Audit trail contains a reason code for the transition from gated state to allowed state.
- Regression coverage proves that global verification does not bypass guild onboarding.
Suggested Implementation Targets
- src/events/guildMemberAdd.ts
- src/events/interactionCreate.ts
- src/services/CommandHandler.ts
- src/services/PostgresDatabaseService.ts
Suggested Technical Direction
Treat global verification as identity proof only.
Treat guild onboarding/rules acceptance as a separate guild-scoped precondition for access. The membership state machine should not allow protected guild access until the onboarding/rules gate is satisfied.
Validation
- scenario test: globally verified user joins new guild and remains gated before onboarding
- scenario test: globally verified user completes onboarding and gains access
- regression test: no email-code verification required when global verification is already valid and no reverification campaign is active
- audit test: onboarding completion writes expected reason code
Traceability
- Spec: docs/specs/issue-93-specification.md
- Matrix rule: TRC-005
- Related docs:
- docs/specs/traceability-matrix.md
- docs/specs/issue-drafts.md
- docs/specs/state-machine.md
- docs/specs/bpmn-lifecycle.md
Related Issues
Summary
Enforce guild-specific onboarding and rules acceptance as mandatory access gates even when a user already has a valid global DataDrop verification identity.
Problem
The new global verification identity model allows verification reuse across guilds, but Discord onboarding and rules acceptance are still guild-bound flows.
A user who is already globally verified must still complete the target guild's onboarding and rules acceptance before receiving protected access in that guild.
Without this rule, global verification would incorrectly bypass a required guild-specific access gate.
Why This Matters
This issue protects the separation between:
It is required for correctness of the BPMN flow and for safe multi-tenant behavior.
Required Behavior
Acceptance Criteria
Suggested Implementation Targets
Suggested Technical Direction
Treat global verification as identity proof only.
Treat guild onboarding/rules acceptance as a separate guild-scoped precondition for access. The membership state machine should not allow protected guild access until the onboarding/rules gate is satisfied.
Validation
Traceability
Related Issues