Developer Offboarding Guide
Developer Offboarding GuideGuide: Drop — Fintech Payment App
Project:
{{PROJECT_NAME}}Drop — Remittance + QR Payments Version:{{VERSION}}1.0 Date:{{DATE}}2026-02-23 Author:{{AUTHOR}}John (AI Director) Status:Draft | In Review |Approved Reviewers:{{REVIEWERS}}Alem Bašić (CEO)
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.1 | Initial |
1. Offboarding Overview
Developer: {{DEVELOPER_NAME}}
Last Day:Session: {{LAST_DAY}}LAST_DATE}
Manager: {{MANAGER}}John (AI Director)
Offboarding Coordinator: {{COORDINATOR}}John (AI Director)
Security Review: {{SECURITY_REVIEWER}}John (AI Director) + Alem Bašić (CEO)
Departure type: VoluntaryAgent session completion / InvoluntaryAgent role change / Human developer departure
Drop offboarding context: Because Drop uses an AI-native team (Builder agents, Validator agents), most "offboarding" is agent session completion — no persistent access to revoke. Human developer offboarding is documented in full below for Alem Bašić or any future human team members.
Handoff started: {{HANDOFF_START}}
Access revocation deadline: {{LAST_DAY}}Same byday {{REVOCATION_TIME}}for involuntary; planned for voluntary
2. Access Revocation Checklist
For AI agent team members (Builder / Validator agents): Agent sessions are ephemeral — no persistent credentials. Verify:
- Agent session terminated in Claude Code / Mission Control
- No API keys or secrets were stored in agent memory or session files
- All in-progress work committed or documented in Mission Control
For human developers (Alem Bašić or future hires):
Code & Version Control
- GitHub
/ GitLab(alai-org) — remove from organization and all Drop repositories - SSH keys — remove from
all servers and deployment systems~/.ssh/authorized_keyson serversGitHub SSH keys:GitHub: Settings > SSH and GPG keys
GPG signing keys— revoke from keyserver if used for commit signing- Personal access tokens — revoke all tokens in
GitHub/GitLabGitHub settings -
Webhooks using personal tokenFly.io —identifiedremoveandfromupdateddrop-apptoappserviceteamaccount(fly.io dashboard → Members)
Cloud Infrastructure (Fly.io)
-
{{CLOUD_PROVIDER}}Fly.ioIAMteam — removeuserfromalldrop-appIAM groups and rolesorg/team -
{{CLOUD_PROVIDER}}Fly.ioconsoledeployaccesstokens —deactivaterevokeuseranyaccountpersonal deploy tokens - SSH keys on
cloudFly.ioinstancesmachines — remove fromall~/.ssh/authorized_keysEC2/GCE/VMonauthorized_keysapp Cloud access keys / credentials— deactivate and delete
CI/CD & DevOps
{{CI_PLATFORM}}— remove from organization (GitHub Actions / GitLab CI / CircleCI)Container registry— remove push/pull credentials{{ARTIFACT_REGISTRY}}— remove user accessKubernetes— remove kubeconfig entries, remove from RBACmachines
Secrets & Credentials — CRITICAL FOR FINTECH
Drop handles financial data. All shared secrets must be rotated immediately on any departure:
-
{{VAULT_TOOL}}Vaultwarden (HashiCorp Vault / 1Password / Vaultwarden)vault.basicconsulting.no) — removeuser,user account; rotateanyall sharedsecretsvault items they had access to -
All shared secrets/passwords known to the developerJWT_SECRET— rotateimmediatelyimmediately; rotate all active user sessions (DBdeploypasswords,newAPI keys, etc.)Database passwords: {{DB_CREDS}}API keys accessed: {{API_KEYS}}Any others: {{OTHER_CREDS}}
secret) -
Environment variables / .env filesBAAS_API_KEY—confirmrotatenowithsecretsBaaStaken/copiedpartner
VPN/ & Network
VPNSwan) —revokePhaseVPN certificate / remove user account2-
Bastion hostSUMSUB_API_KEY—removerotatefromwithauthorizedSumsubusers— Phase 2 -
IPDatabaseallowlistsURL / password —removerotatetheirFly.ioIPPostgreSQLifpasswordpersonal(Phasedevice1+) -
allowlistedGitHub Actions secrets — rotate any deploy keys / secrets in repo settings
All secrets known to this developer:
| Secret | Location | Rotated | Rotated By |
|---|---|---|---|
JWT_SECRET |
Vaultwarden + Fly.io secrets | Yes / No | John |
BAAS_API_KEY |
Vaultwarden + Fly.io secrets | Yes / No | John |
SUMSUB_API_KEY |
Vaultwarden + Fly.io secrets | Yes / No | John |
| Vaultwarden master vault | Vaultwarden | Yes / No | Alem Bašić |
Third-Party Services
-
{{SERVICE_1}}alai-talk.slack.com(e.g., Sentry, Datadog, PagerDuty)— deactivate account; removeuserfrom #drop, #drop-security channels -
{{SERVICE_2}}Mission(e.g., Slack, Jira, Confluence) — deactivate account {{SERVICE_3}}(e.g., Stripe, AWS Marketplace) — remove userEmail / Google Workspace— deactivate account, set out-of-office, forward to managerPassword manager (shared vaults)Control — removefromanysharedpermanentvaultstask assignments
Access revocation completion signed off by: {{SECURITY_REVIEWER}}John (AI Director) + Alem Bašić (CEO) on {{DATE}}
3. Knowledge Transfer
Active Projects & Ownership Transfer
| Project / Area | Current Status | New Owner | Handoff Complete |
|---|---|---|---|
| { |
Yes / No | ||
| { |
Yes / No | ||
| { |
Yes / No |
Ongoing Work Documentation
| Work Item | Status | Documentation | New Owner | ||
|---|---|---|---|---|---|
| {WORK_1} | MC-{ |
{ |
{ |
||
| {WORK_2} | MC-{ |
{ |
{ |
Documentation written during knowledge transfer:
- All in-progress PRs reviewed and commented
- Active branches documented and either merged or closed
- Ongoing investigations/research notes written up in
comms/decisions/ - Architecture decisions
currentlyinbeing made:progress documented as ADRs - Pending operational tasks documented in
runbooksdocs/OPERATIONS/
Key Contacts & Relationships
| Contact | Company / Role | Relationship | Transferred To |
|---|---|---|---|
| Finanstilsynet contact | Norwegian FSA | PSD2 registration | Alem Bašić (CEO) + Legal |
| Sumsub account manager | Sumsub (KYC provider) | KYC integration | John (AI Director) |
UndocumentedDrop-Specific Tribal Knowledge Capture
Knowledge transfer sessions scheduled:sessions:
| Topic | Date | Format | Notes Doc |
|---|---|---|---|
project/architecture/ |
|||
security/drop-security-rapport.md |
|||
| BaaS mock implementation | 2026-02-23 | Code in src/drop-app/lib/baas-mock.ts |
CODE-BAAS.md |
Capture questions to ask:answered:
- What breaks in production that only you know how to fix? → SQLite concurrent write limit (200 users); documented in NFR-S01
- What shortcuts or workarounds
existexist? → Mock BaaS intheNEXT_PUBLIC_SERVICE_MODE=mock;codebasedocumentedthatinaren't documented?CLAUDE.md - What external services have non-obvious quirks? → Sumsub webhook signature validation; documented in sumsub-integration.test.ts
- What technical debt
existsexists?that→you'veDocumentedbeeninmeaning to address?docs/CROSS-CUTTING/tech-debt-log.md AreUpcomingthererisks?any→upcomingBaaSriskspartnerornottimeconfirmed;bombsSQLite concurrent limit; documented inthe codebase?Are there any informal agreements or commitments with stakeholders?risk-register.md
4. Code Ownership Transfer
CODEOWNERS File Update
# Review current CODEOWNERScode catownership assignments
# (No formal CODEOWNERS |file grepyet "{{DEVELOPER_HANDLE}}"— John (AI Director) owns all Drop code)
# ReplaceTransfer withto new owner(s)agent/developer:
# CODEOWNERSUpdate updateCLAUDE.md PR:"Builder" {{PR_LINK}}and "Validator" role assignments
# Update Mission Control task ownership
-
CODEOWNERSMissionfileControlupdatedtaskandownershipPR mergedtransferred - New
ownersbuilder/validator agents briefed ontheiractiveadditionaltasks - John (AI Director) notified of any in-flight architecture decisions
PR Review Reassignment
- Open PRs awaiting
theirreview: reassigned to{{REVIEWER_REPLACEMENT}}Validator Agent (new session) - In-progress PR review responsibilities communicated to
teamJohn
On-Call Rotation
Removed from on-call rotation in {{ONCALL_TOOL}}On-call schedule updated and communicatedOn-call runbooks updated to remove their contact informationDirector)
5. Asset Return
Drop is AI-native — no physical hardware assets for agent team members.
For human developer offboarding:
| Asset | Return By | Returned | ||
|---|---|---|---|---|
| Laptop (ALAI issued, if any) | Yes / No | |||
| Access |
— | |||
| — |
IT returns coordinator: {{IT_CONTACT}}Alem Bašić (CEO) — [email protected]
6. Exit Interview Topics
For human developers leaving the Drop project:
Exit interview conducted by: {{INTERVIEWER}}John Date:(AI {{DATE}}Director) + Alem Bašić (CEO) (joint, async OK)
Format: Written notes in comms/decisions/YYYY-MM-DD-exit-{{FORMAT}} name}.md
Topics to cover:
- What did you
enjoylearnmost aboutfrom workinghere?on Whatacouldfintechwepass-throughimprovepaymentfor future developers?system?- Were there any
blockerstechnicalordecisionsfrustrationsyouthatdisagreedweren'twith?addressed?(ADR feedback) - What
didgapsyouexistlearn?inWhattheskillsdocumentationdidoryoutestdevelop? Would you recommend working here to others? Why / why not?coverage?- Any concerns about the
teamcodebase security orcodebasecompliance you want toflagflag? - What
leaving?would you do differently in Phase 1?
Exit interview notes: {{NOTES_LINK}}Stored in comms/decisions/ (confidential — managerCEO + AI Director access only)
7. Final Checklist Sign-Off
John Manager(AI Director) Sign-Off
- All access revocation items completed
-
JWT_SECRET and all shared secrets rotated
- Knowledge transfer
sessionscomplete completed(ADRs, decisions, tribal knowledge documented)
- Code ownership transferred in Mission Control
- All
projectsopen PRs and tasks handed off with documentation
-
AssetsSecurity returned audit - log
Exitreviewed interviewfor conducted last - 30
Payrolldays and(no HR notifiedanomalies)
JWT_SECRET and all shared secrets rotatedManager:John (AI Director): {{MANAGER}}John | Date: {{DATE}} | Signature: ___________Approved (AI)
Developer Sign-Off
- All work documented and handed off
- to
Allnewpersonal assets retrieved (personal items, any personal accounts)owner - No
companyDropdataproduction credentials retained on personal devices - Exit
interviewinterview/notes completed
Developer: {{DEVELOPER_NAME}} | Date: {{DATE}} | Signature: ___________
SecurityCEO Sign-Off (Alem Bašić)
-
AllVaultwarden accessrevocationrevoked -
verifiedFly.ioindependentlyteam membership confirmed removed - Shared
secretsBaaS/financial credentials confirmed rotated -
AuditBusinesslogrelationshipsreviewed(BaaS,forFinanstilsynet,lastSumsub30contacts)days — no anomaliestransferred
SecurityAlem Reviewer:Bašić (CEO): {{SECURITY_REVIEWER}} | Date: {{DATE}} | Signature: ___________
Related Documents
Approval
| Role | Name | Date | Signature |
|---|---|---|---|
| Author | John (AI Director) | 2026-02-23 | Approved (AI) |
| John | 2026-02-23 | Approved | |
| Alem Bašić | TBD |