ANVIL Tenant Architecture — Phase D 2026-05-07
Organizational tenant restructure: multi-tenant home tree, personal/business/client isolation, agent personas relocated, BasicConsulting clarified, ucenje extracted. Follow-on to mechanical sweep (ADR-022). Defines canonical tree structure going forward.
- ADR-023 — Tenant Restructure Decision
- Tree Blueprint — Where to Put Things
- Git Structure Rules
- Canonical Registry (Phase D Updated)
ADR-023 — Tenant Restructure Decision
Context
ADR-022 documented the mechanical filesystem sweep — orphans, broken refs, PHANTOM daemons. After completion CEO observed that the home tree, while mechanically clean, remained semantically misorganized:
"Zelim da sam ponosan file strukture, a ne da sam zabrinut."
"alai.no/ucenje" — Alem's personal Quran-19 scholarly site lives inside the ALAI commercial brand tree.
A 6-agent multi-perspective audit (Petter / Brad / Parisa / Lexicon / Kelsey / Skybound) produced ~84 findings, ~22 convergent across 3+ angles. The unanimous top finding: personal scholarly content under commercial brand surface = brand contamination + GDPR exposure + blocks divestment.
Beyond ucenje, the audit surfaced:
- BasicConsulting AS treated as separate legal entity in tree (vedtekter, share register expectations) when in fact it is a domain only owned by ALAI Holding AS (CEO clarified post-audit)
- ALAI-Tech-DOO is a real legal subsidiary (RS d.o.o., Bosnia/Serbia distribution of Bilko/Tok/Drop) but lived under
~/companies/mixed with agent personas - 12 agent personas (CodeCraft, Vizu, FlowForge, etc.) mislabeled as "companies" in
~/companies/ - Client work scattered across
~/projects/mixed with ALAI internal engineering - CEO personal data (CV 19×, NAV records, employment-verification PII) scattered across business trees
~/Public/containing CEO PII (employment-verification, ownership cert, firmaattest) — local-network readable- Lumiscare client
.envfiles committed to git history (auth bypass flags) - Planka
.envat 644 perms; Snowit terraform.tfstate one accidentalgit add .from leak
Decision
Implement multi-tenant home tree with strict isolation per legal entity / personal scope / client scope:
~/business/ # legal entities (ALAI corporate group)
├── ALAI-Holding-AS/ # commercial parent (renamed from ~/ALAI/)
└── ALAI-Tech-DOO/ # RS d.o.o. subsidiary
~/personal/ # CEO natural-person scope (NEW)
~/clients-external/ # one canonical subdir per client (NEW)
~/system/ # orchestration runtime
└── agents/personas/ # agent persona definitions (12)
~/projects/ # ALAI internal engineering repos ONLY (8 entries, was 23)
Backward compatibility:
~/ALAIsymlinked to~/business/ALAI-Holding-AS/for 158 LaunchAgent paths grace period~/companiessymlinked to~/system/agents/personas/for 10+ daemon/tool refs grace period
Sub-decisions
| # | Decision | Rationale |
|---|---|---|
| D-1 | ~/ALAI/ renamed to ~/business/ALAI-Holding-AS/ | Tenant isolation, name reflects legal entity |
| D-2 | Symlink ~/ALAI → canonical preserved | 158 daemons hardcode old path; rewrite is non-urgent TD |
| D-3 | ~/companies/ removed entirely | Was anti-pattern; entities → ~/business/, personas → ~/system/agents/personas/, brand-only domains → not a tree |
| D-4 | ALAI-Tech-DOO promoted to peer entity | Real legal subsidiary per company.json |
| D-5 | BasicConsulting NOT a tree | CEO clarified: domain only (basicconsulting.no), no firma. Domain assets → ~/business/ALAI-Holding-AS/brand-surfaces/basicconsulting.no/ |
| D-6 | ~/personal/ created | Separation of CEO personal scope from business; GDPR purpose limitation |
| D-7 | ~/clients-external/ created | Tenant isolation per client; ends ~/projects/ sprawl |
| D-8 | ucenje extracted | Personal scholarly project moved to own repo (johnatbasicas/ucenje) + own subdomain (ucenje.alai.no); 301 redirect from alai.no/ucenje/* |
| D-9 | Agent personas relocated | 12 personas (CodeCraft / Vizu / etc.) → ~/system/agents/personas/; symlink ~/companies → here for tool/daemon backward compat |
| D-10 | KenanHot reclassified product → client | Kenan Hot is a person (soccer player, knyhot.pro), not an ALAI product |
| D-11 | FreeMyEV stub merged into client | Was duplicate (stub in products/, active in clients-external) |
| D-12 | ufs/ renamed unified-form-service/ | Opaque acronym → descriptive; placed under products/ (deployed at forms.alai.no) |
| D-13 | architecture/ and services/ renamed in ALAI-Holding-AS | Disambiguate from ~/system/architecture/ and ~/system/services/ (operational vs commercial) — architecture → product-architecture, services → service-catalog |
Consequences
Positive
- 13 named clients in
~/clients-external/(one tenant per subdir, no cross-contamination) - 9 ALAI products in
~/business/ALAI-Holding-AS/products/(no client-as-product misclassifications) - 12 agent personas in
~/system/agents/personas/(correct semantic home; no longer "companies") - 2 legal entities under
~/business/(Holding AS + Tech DOO; no third entity confusion) - CEO personal scope isolated under
~/personal/(cv, nav, scholarly, code, real-estate, legal-personal) ~/projects/narrowed from 23 → 8 entries (ALAI internal engineering only)- ucenje brand contamination resolved (ucenje.alai.no separate, alai.no/ucenje 301)
- 26 GB freed (ollama.tar.gz cleanup) + 16 GB freed (test scaffolds + companies archive)
- ~/Public PII quarantined to ~/personal/legal-personal/ (5 sensitive PDFs no longer local-network readable)
~/companies/completely removed (anti-pattern eliminated)
Negative
- 158 LaunchAgent paths still resolve via
~/ALAIsymlink (TD: rewrite to canonical, ≥30d grace) - 10+ tool/daemon refs to
~/companies/resolve via symlink (TD: same grace, lower priority) _legacy-bc-2026-05-07/content from BasicConsulting unwind required manual reconciliation intoclients/Entur/andclients/RPG/(DONE, but added one-time manual step)- 19 CV references across grant submissions remain in place (each is a submission artifact, not a duplicate to dedup)
- Some opaque-name decisions deferred (
internal/left as-is — well-organized but generic name)
Neutral
- Boot health unchanged (29/29 daemons loaded, 0 failing, before and after)
- Git histories preserved (used
git mvfor in-repo moves, plainmvfor cross-repo) - ALAI-Tech-DOO retains its own git repo and
.alai/orchestration metadata
Alternatives Considered
| Alternative | Why rejected |
|---|---|
| Status quo (semantic chaos accepted) | CEO explicit "zelim da sam ponosan, ne zabrinut" + Lexicon legal exposure findings |
| Storage-only deeper sweep (no rename) | ucenje brand contamination is structural, not storage |
~/tenants/ umbrella with per-tenant subdir | Equivalent to chosen ~/business/ + ~/personal/ + ~/clients-external/, but less natural-language for CEO solo founder |
| Hard rewrite of all LaunchAgent paths in same operation | High risk; symlink grace period is industry-standard |
Move ucenje to broj19.com (own domain, $12/year) | Subdomain ucenje.alai.no is sufficient (CEO Decision #1B); domain purchase deferred |
| Keep BasicConsulting as separate entity tree | CEO clarified there is no separate firma; would create maintenance burden for non-existent legal entity |
Implementation
| Wave | Scope | Result |
|---|---|---|
| W1-A (BLOCKER) | Unload 3 PHANTOM daemons (mlx-router, db-ttl-sweep, distillation-scorer) | DONE — boot failure resolved, 56 → 53 com.alai daemons |
| W1-B (bulk cleanup) | Archive + delete 35 paths; settings.bak retention; ~/~ cleanup; ~/projects/ALAI collision | DONE — 30 valid tar archives in ~/backups/_archive/anvil-fs-sweep-2026-05-07/, ~9GB freed |
| W1-C (split-brain) | 6 active pairs merged/renamed; ~/ALAI/CLAUDE.md surgical update | DONE — agents merged, architecture/services renamed for disambiguation |
| W2 (docs) | canonical-registry.md, ADR-022, drift-detection-design.md | DONE — MC #99701 |
| W3 (validation + publish) | Proveo E2E, BookStack publish | DONE — Proveo 9/10 PASS, BookStack shelf 2845 |
| Phase A (org-audit quick wins) | chmod planka, gitignore tfstate, PII quarantine, ollama.tar.gz delete | DONE |
| Phase B (ucenje extract) | New repo + CF Pages + 301 redirect | DONE — ucenje.alai.no live, 301 verified |
| Phase D.1 (personal + clients-external) | Skeleton + AlemPersonal + client repo migration | DONE |
| Phase D.2 (~/ALAI rename) | Symlink-based canonical rename | DONE |
| Phase D.3 (agent personas) | 12 personas → ~/system/agents/personas/ | DONE |
| Phase D.4 (BasicConsulting unwind + companies removal) | Tenant cleanup + symlink for daemon backward compat | DONE |
| Phase D push-through | _multi-client-hub split, virtual-serbia classification, _legacy-bc reconciliation, futureProjects removal, ufs rename, KenanHot reclassification, FreeMyEV stub merge, nav-bc-residual merge | DONE |
References
- Multi-perspective audit:
~/system/specs/anvil-organizational-audit-2026-05-07.md - Sub-agent reports:
/tmp/anvil-org-audit/01-petter*.md…06-skybound*.md - Mechanical sweep ADR:
~/system/architecture/decisions/ADR-022-anvil-fs-sweep-2026-05-07.md - Canonical registry:
~/system/specs/canonical-registry.md(post-D updates) - Tree blueprint (NEW):
~/system/specs/anvil-tree-blueprint-2026-05-07.md - Git structure rules (NEW):
~/system/specs/anvil-git-structure-2026-05-07.md - Memory entries:
project_alai_entity_identity_clarified_2026-05-07.md,project_anvil_phase_d_done_2026-05-07.md - MC chain: #99710 (org audit parent), #99742 (Phase B.1), #99744 (Phase B.2), #99722 (Brønnøysund — closed), #99723 (BC clarification — pending close), #99724 (Lumiscare notification), #99725 (Telegram revoke)
- Live deployment: https://ucenje.alai.no, https://github.com/johnatbasicas/ucenje
Tree Blueprint — Where to Put Things
One rule: every file has exactly one canonical home determined by what it is + whose it is, not by who created it or when.
1. Top-level decision tree
For any new content, answer 4 questions in order:
Q1: Is it CODE / file content / data? No → it's a process artefact, not a tree concern.
Q2: Whose data is it? (CEO personal / ALAI Holding AS / ALAI Tech DOO / a specific client / regenerable)
Q3: What kind? (product, client deliverable, internal tool, scholarly, financial record, brand asset, …)
Q4: What stage? (active draft, in-flight, completed deliverable, archive)
2. Routing matrix
| Whose? | What kind? | Canonical home |
|---|---|---|
| CEO personal | CV, NAV records, ID docs | ~/personal/{cv,nav,legal-personal}/ |
| CEO personal | Scholarly research (Quran-19, etc.) | ~/personal/scholarly/<topic>/ (or own repo + own domain — see ucenje precedent) |
| CEO personal | Personal coding (games, hobby projects) | ~/personal/code/<project>/ |
| CEO personal | Real estate, family property | ~/personal/real-estate/<property>/ |
| CEO personal | Personal accounting (NOT ALAI Holding) | ~/personal/finance-personal/ |
| ALAI Holding AS | A product (own SaaS, own brand within ALAI) | ~/business/ALAI-Holding-AS/products/<product-name>/ |
| ALAI Holding AS | Client deliverable / engagement | ~/business/ALAI-Holding-AS/clients/<CLIENT-NAME>/ |
| ALAI Holding AS | Brand surface (alai.no, basicconsulting.no, forms.alai.no) | ~/business/ALAI-Holding-AS/brand-surfaces/<domain>/ OR ~/business/ALAI-Holding-AS/web/ if alai.no main |
| ALAI Holding AS | Brand assets (logo, palette, typography) | ~/business/ALAI-Holding-AS/brand/ (single source of truth) |
| ALAI Holding AS | Finance (accounting, grants, invoices, timesheets) | ~/business/ALAI-Holding-AS/finance/ |
| ALAI Holding AS | Legal (contracts, ROPA, vedtekter, certificates) | ~/business/ALAI-Holding-AS/legal/ |
| ALAI Holding AS | Internal libraries / shared packages | ~/business/ALAI-Holding-AS/internal/packages/ |
| ALAI Holding AS | Sales pipeline, partners, comms, marketing | ~/business/ALAI-Holding-AS/{sales,partners,comms,content}/ |
| ALAI Holding AS | Internal product architecture decisions | ~/business/ALAI-Holding-AS/product-architecture/ (NOT system architecture) |
| ALAI Holding AS | Service catalog / commercial offerings | ~/business/ALAI-Holding-AS/service-catalog/ (NOT system services) |
| ALAI Tech DOO | RS subsidiary content (Bilko/Tok/Drop distribution) | ~/business/ALAI-Tech-DOO/{products,deliverables,legal,ops}/ |
| External client | Client-owned repo (we work IN their repo) | ~/clients-external/<client-name>/ (matches their org name when possible) |
| External client | Engagement records, contracts with that client | ~/business/ALAI-Holding-AS/clients/<CLIENT>/engagement-docs/ |
| External client | Client's brand assets we use | ~/clients-external/<client-name>/branding/ |
| System runtime | Daemons, schedulers, hooks | ~/system/{daemons,tools,hooks}/ |
| System runtime | Architecture decisions (system-level) | ~/system/architecture/decisions/ADR-XXX.md |
| System runtime | Operational services (authentik, planka, vault) | ~/system/services/<service>/ |
| System runtime | Agent persona definitions | ~/system/agents/personas/<PersonaName>/ |
| System runtime | Specs, plans, runbooks | ~/system/specs/, ~/system/runbooks/ |
| System runtime | Active databases (Mission Control, HiveMind, …) | ~/system/databases/ (symlinked) or ~/Library/Application Support/ALAI/db/ |
| ALAI engineering tools | Internal CLI / SDK / library used across ALAI | ~/projects/<repo-name>/ (must have GitHub remote, must be tracked, must NOT mix client work) |
| ALAI infra deploy workspace | CF/DNS/Tailscale/Vault/BookStack systemic configs | ~/aisystem/ (Mehanik gate reads BUILD-BLUEPRINT.md here) |
| Regenerable | node_modules, .gradle, .next, target, venv, build outputs | INSIDE the repo, gitignored, never outside |
| Backups | Tar archives, snapshot dumps | ~/backups/_archive/<sweep-name-date>/ |
| OS-managed | Library data (apps), Caches | ~/Library/ (DO NOT TOUCH) |
3. Anti-patterns — explicitly forbidden
| Anti-pattern | Correct alternative |
|---|---|
| Putting personal scholarly content under commercial brand site | Own repo + own domain (see ucenje → johnatbasicas/ucenje + ucenje.alai.no) |
Client deliverable in ~/projects/ | ~/clients-external/<client>/ |
Agent persona in ~/companies/<Name>/ | ~/system/agents/personas/<Name>/ |
| Pretending a domain is a separate firma (vedtekter for it, etc.) | Domain → brand-surfaces/<domain>/ under owning entity |
| Mixing two clients in one tree | One tenant per top-level subdir under ~/clients-external/ |
Creating new top-level home dir without entry in ~/system/specs/canonical-registry.md | Update registry first, then create dir |
Writing CEO PII (CV, NAV, ID) anywhere outside ~/personal/ | ~/personal/legal-personal/, ~/personal/cv/, ~/personal/nav/ |
Auto-generated _pii-staging-* quarantine pattern (one-time fix) | Process docs/forms BEFORE landing them in tree |
~/Public for sensitive content (it is local-network readable) | Never. Move to private tree. |
| Build artefacts (node_modules, target) outside their repo | Always inside repo with .gitignore entry |
.env files committed to git | .env* in .gitignore; secrets in Bitwarden / Keychain |
| Terraform state on local disk | Remote state (S3/Azure/CF KV); *.tfstate* in .gitignore |
4. References
- ADR-023:
~/system/architecture/decisions/ADR-023-anvil-tenant-restructure-2026-05-07.md - Canonical registry:
~/system/specs/canonical-registry.md - Git structure rules:
~/system/specs/anvil-git-structure-2026-05-07.md
Git Structure Rules
git init, gh repo create, or any commit decision.1. Repo placement matrix
| Repo type | Canonical home | GitHub org/owner | Visibility default |
|---|---|---|---|
| ALAI product (Bilko, Drop, Tok) | ~/business/ALAI-Holding-AS/products/<product>/ | johnatbasicas/<product> | private until launch |
| ALAI internal CLI / SDK / library | ~/projects/<repo-name>/ | johnatbasicas/<repo> | public if open-source |
| ALAI infra workspace | ~/aisystem/ | n/a | n/a |
| ALAI Tech DOO (RS subsidiary) | ~/business/ALAI-Tech-DOO/ | alai-tech-doo/<repo> | private |
| Client-owned repo | ~/clients-external/<client>/ | client's GitHub org | client's choice |
| Personal scholarly project | ~/personal/scholarly/<topic>/ | johnatbasicas/<topic> | public (transparency) |
| System orchestration | ~/system/ | johnatbasicas/alai-system | private |
2. Required files per repo type
| File | When required |
|---|---|
README.md | Always |
CLAUDE.md | Every repo where agents will be dispatched |
BUILD-BLUEPRINT.md | Repos that build/deploy (per ZAKON PI2) |
DEPLOY-MAP.md | Repos with live deploys (CF Pages, Cloud Run, App Runner, etc.) |
.gitignore | Always — see Section 4 |
.github/workflows/deploy*.yml | Repos with CI/CD |
LICENSE | Public repos (default MIT for ALAI products) |
3. Commit conventions — Conventional Commits (mandatory)
<type>(<scope>): <subject> (MC #<id>)
<body — what changed and why>
Co-Authored-By: <persona-name> <noreply@alai.no>
type ∈ feat | fix | chore | docs | style | refactor | perf | test | ci | build
4. .gitignore standards
Universal (every repo)
# OS
.DS_Store
Thumbs.db
# Editor / IDE
.vscode/
.idea/
*.swp
.aider*
.claude-scratch/
# Secrets — NEVER COMMIT
.env
.env.*
!.env.example
*.pem
*.key
id_rsa*
*.p12
.bw-session
# Logs
*.log
logs/
# Build outputs
dist/
build/
out/
target/
.next/
.nuxt/
.output/
.turbo/
Node-specific
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
Terraform / IaC (CRITICAL after Parisa finding)
*.tfstate
*.tfstate.*
*.tfplan
.terraform/
.terraform.lock.hcl
crash.log
5. Anti-patterns — explicitly forbidden
| Anti-pattern | Why it's bad | Correct alternative |
|---|---|---|
git add . without reviewing diff | Commits unwanted files (.env, tfstate, secrets, IDE configs) | git add -p or explicit paths |
Committing .env "for now" | Secrets in git history forever | Bitwarden / .env.example pattern |
| Force-push to shared/master | Destroys teammates' work | PRs only; force-push only on private feat branches |
| Cross-tenant repos | Tenant contamination, IP confusion | Split into 2 repos, separate orgs ideally |
| Tags pushed before work is verified live | Tag points to broken state | Tag AFTER curl 200 + Playwright pass |
6. References
- ADR-023:
~/system/architecture/decisions/ADR-023-anvil-tenant-restructure-2026-05-07.md - Tree blueprint:
~/system/specs/anvil-tree-blueprint-2026-05-07.md - Canonical registry:
~/system/specs/canonical-registry.md - ZAKON PI2 (deploy verification):
~/system/rules/zakon-pi2-deploy-verification.md - Conventional Commits spec: https://www.conventionalcommits.org/en/v1.0.0/
Canonical Registry (Phase D Updated)
~/system/specs/canonical-registry.md. Last updated: 2026-05-07 (ANVIL Phase D)Tree Ownership Table
One row per major tree. These are the canonical locations — creating parallel structures elsewhere violates the registry.
| Tree | Purpose | Owner |
|---|---|---|
~/system/ | Orchestration runtime, daemons, tools, agents, specs, rules, hooks (git), schemas | John (orchestrator) |
~/business/ALAI-Holding-AS/ | Company state — clients, brand, products, sales, legal, org, processes, pipelines, web-worktrees | ALAI (CEO) |
~/business/ALAI-Tech-DOO/ | RS d.o.o. legal subsidiary (Bilko/Tok/Drop distribution) | ALAI Tech DOO |
~/personal/ | CEO Alem Basic personal scope (NOT business) | CEO (personal capacity) |
~/clients-external/ | Client-owned content + state, one tenant per subdir | Per client |
~/projects/ | Code repositories (libraries, internal tools, experiments) — ALAI internal engineering only | Per repo |
~/.claude/ | Claude Code harness (settings.json, hooks, agents, projects, memory, skills) | Anthropic Claude Code |
~/Library/ | macOS system and vendor-managed application state | OS / app vendors |
~/aisystem/ | Canonical infra deploy workspace (Cloudflare Pages/DNS, BookStack, Vault, fleet configs) | John, Mehanik gate reads this path |
~/backups/ | Tar archives + offsite backup source (7-day + 30-day retention) | John |
Phase D Additions (2026-05-07) — Final Tenant-Isolated Structure
~/business/
├── ALAI-Holding-AS/ (was ~/ALAI; symlink kept for 158 daemons grace)
└── ALAI-Tech-DOO/ (RS d.o.o. subsidiary, real legal entity)
~/personal/ (NEW — CEO scope, 9 typed dirs)
~/clients-external/ (NEW — 13 named clients + 1 variants umbrella)
~/companies SYMLINK → ~/system/agents/personas/ (10+ daemon backward compat)
~/system/agents/personas/ (12 personas)
~/projects/ (8 ALAI eng repos only)
Renamed for Disambiguation (Phase D)
~/business/ALAI-Holding-AS/architecture/→product-architecture/(was conflicting with~/system/architecture/)~/business/ALAI-Holding-AS/services/→service-catalog/(was conflicting with~/system/services/)~/business/ALAI-Holding-AS/templates/→doc-templates/(was conflicting with~/system/templates/)~/business/ALAI-Holding-AS/ufs/→products/unified-form-service/(deployed at forms.alai.no)
4-Way CLAUDE.md Scope Rules
CLAUDE.md files exist at 4 different scope levels. Each loads based on current working directory (CWD).
| File | Scope | Loads When | Purpose |
|---|---|---|---|
~/.claude/CLAUDE.md | User-global | Always loaded (all Claude Code sessions) | John's identity, ZAKONs, specialist routing, hard constraints |
~/CLAUDE.md | Home directory project | CWD = /Users/makinja | Orchestration mode guardrails, session boot protocol, routing one-liners |
~/system/CLAUDE.md | System tree project | CWD inside ~/system/ | System-specific build/deploy rules, tool usage |
~/business/ALAI-Holding-AS/CLAUDE.md | ALAI tree project | CWD inside ~/business/ALAI-Holding-AS/ | ALAI brand guidelines, client-facing constraints |
What MUST NOT Recreate
These paths were archived during ANVIL FS Sweep. Recreating them silently reintroduces filesystem chaos and split-brain drift.
From ~/system/ (archived):
~/system/archive/,~/system/deprecated/,~/system/deployments/,~/system/plans/~/system/clients/(migrated to ~/business/ALAI-Holding-AS/clients/)~/system/infrastructure/,~/system/internal/,~/system/legal/,~/system/org/~/system/pipeline/,~/system/processes/,~/system/products/,~/system/sales/,~/system/web/
Post-D additions (MUST NOT recreate):
~/companies/as a real directory tree (it's a symlink only, for backward compat)~/ALAI/as a real directory (it's a symlink only)~/projects/personal/(use~/personal/)~/projects/client/(use~/clients-external/)~/projects/Basicconsulting/(now at~/business/ALAI-Holding-AS/brand-surfaces/basicconsulting.no/)~/companies/BasicConsulting/AlemPersonal/(CEO content moved to~/personal/)
Live Deployments (post-D)
https://ucenje.alai.no←~/personal/scholarly/extracted tojohnatbasicas/ucenjerepo + Cloudflare Pageshttps://alai.no/ucenje/*→ 301 →https://ucenje.alai.no/(verified live)
References
- Decision Records:
~/system/architecture/decisions/ADR-022-anvil-fs-sweep-2026-05-07.md,ADR-023-anvil-tenant-restructure-2026-05-07.md - MC chain: #99710 (org audit parent), #99637 (mechanical sweep parent)
- Memory:
project_anvil_phase_d_done_2026-05-07.md,project_alai_entity_identity_clarified_2026-05-07.md