[0] The .human Standard: A Proposal for Human-Sovereign Spaces in an Agentic World

Author: Dragos Milotin · Date: 2026-02-15 · Length: 16 min read

A position paper for practitioners in AI governance, data sovereignty, and agentic workflows.

The `.human` standard is a lightweight, vendor-neutral convention for marking files and folders that autonomous AI agents should not access or modify, creating an explicit boundary between human and automated decision-making. By embedding this intent directly in the file system—rather than relying on permissions systems—teams can protect secrets, preserve reasoning, and maintain human control over critical overrides in codebases, spreadsheets, and digital twin systems. Adoption requires only a naming convention and a few lines of guard-clause code, making it immediately deployable across tools and compliant with data sovereignty regulations.


We are moving fast. Faster than our file systems, our naming conventions, and our governance frameworks were ever designed to handle. AI agents today can read your spreadsheets, modify your Python scripts, browse your project folders, update your building models, and send emails on your behalf — often without you explicitly asking them to. In most workflows, that is exactly the point. But in some spaces, it should be completely off-limits. And right now, we have no agreed way to say so. This paper proposes a simple, open convention: the **`.human`** standard. A way for people to mark files, folders, and workspaces as belonging to the human layer of any collaborative system — protected from autonomous AI reading, modification, or inference, by design.
## Executive Brief: The .human Standard **Business Challenge**: AI agents increasingly access, modify, and act on sensitive information across enterprise systems—spreadsheets, codebases, building models, and operational systems—often without explicit safeguards. Organizations lack a standard mechanism to designate which spaces should remain under human control. **Strategic Opportunity**: The `.human` standard provides a lightweight, vendor-neutral convention for marking files, folders, and data as human-sovereign. This protects critical business decisions, regulatory compliance, and stakeholder trust while enabling agents to operate freely in appropriate domains. **Key Value**: Clearer governance boundaries reduce liability, improve audit trails, and build confidence in human-agent collaboration across construction, real estate operations, and digital transformation initiatives.

[1] Why This Conversation Is Overdue

The analogy most people reach for is `.gitignore`. You create a file, you list what should be excluded from version control, and the toolchain respects it. Nobody debates whether Git *could* read those files. The point is that it *should not*, and the convention makes that boundary explicit. We need the same thing for agents. The difference is that `.gitignore` is about scope — what gets tracked — while `.human` is about *sovereignty*. It is not just saying "skip this." It is saying "this space belongs to a person, and no automated process has standing here." That distinction matters enormously as agents become more capable and more embedded in professional workflows.
## Why This Matters Now **Industry Parallel**: Just as `.gitignore` established version control boundaries, the `.human` standard establishes *governance* boundaries for autonomous systems. **Critical Distinction**: Unlike scope-based conventions, `.human` asserts *sovereignty*—it declares that certain spaces belong to humans and are off-limits to automated processes by design, not accident. **Business Impact**: As agents become embedded in project delivery, asset management, and operational systems, explicit sovereignty markers are essential for legal compliance, risk management, and stakeholder confidence.

[2] Three Scenarios Where This Becomes Critical

The `.human` standard is not an abstract idea. It addresses real tensions that are already emerging in everyday professional workflows — from shared spreadsheets to codebases to building systems. Here are three scenarios that illustrate why the boundary matters. ### Working Together in Excel Consider a large Excel workbook used to track a construction project — costs, schedules, scope changes, supplier contacts. An AI co-pilot has been given access to assist with analysis, fill in projected values, and flag anomalies. Now imagine one sheet in that workbook is a personal risk register — informal notes made by the project manager about political dynamics, concerns about a contractor's reliability, or unresolved disagreements with the client. These notes are not wrong, they are not sensitive in a legal sense, but they are deeply human: judgment calls, half-formed thoughts, professional intuition. An agent that reads this sheet and incorporates it into a summary report, or worse, uses it to make a recommendation, has crossed a line. The human did not consent to this. The notes were not addressed to the agent. They are mental workspace, not data input. A `.human` flag on that sheet — or on a folder containing personal working documents — would make the boundary unambiguous, both to the agent and to any audit trail reviewing what the agent had access to. ### Programming in Python Software teams are already working alongside AI coding assistants that can propose changes, refactor modules, run tests, and commit code. The productivity gains are real. But consider what else lives in a typical project directory. There are personal scratch files where a developer thinks on paper — half-baked ideas, abandoned experiments, notes to self about why a particular approach was rejected. There are local configuration overrides that only make sense on one person's machine. There are files containing philosophical decisions — architecture records, decision logs — where the reasoning matters as much as the conclusion, and where an agent summarising or modifying the content would erase exactly the nuance that made it valuable. More concretely: if a developer marks a folder `decisions/.human/`, it communicates to every agent in the pipeline that this directory contains human reasoning, not machine-readable instructions. Read access might still be granted selectively, but write access is off by default. The boundary is declared, not assumed. ### Agents in an Operational Digital Twin This is where the stakes become existential rather than merely professional. Imagine a large mixed-use building — offices, apartments, shared amenities — managed through a live Digital Twin. Sensors feed data about occupancy, energy, air quality, and maintenance status into the model in real time. Agents handle routine operations: adjusting HVAC schedules, dispatching maintenance crews, optimising energy loads, flagging anomalies. The humans living and working in that building are not just users of the system. They are stakeholders with rights, preferences, and a reasonable expectation that their lives are not being optimised without their knowledge or consent. Consider a family in an apartment who have registered certain preferences with the building management system — perhaps they have a child with a medical condition that makes temperature stability important, or they have requested that their unit not be included in demand-response energy programmes. These preferences represent human decisions that should be immutable to the operational agents managing the building. Now consider a building manager who has manually overridden an automated recommendation because they know something the system does not — that a tenant is going through a difficult period, that a community event is happening next weekend, that a maintenance decision involves a contractor relationship that predates the digital system. These overrides are human judgments. An agent that re-optimises over them, even with the best intentions, has undermined the human layer of governance. A `.human` standard in this context means that certain records, overrides, and preference files carry a marker that the operational layer is structurally incapable of modifying. Not because the agent lacks capability, but because the system was designed to respect the boundary.
## Real-World Applications Three scenarios illustrate where human-agent boundaries directly affect business outcomes:

[3] How .human Works in Practice

The scenarios above describe the *why*. The diagrams below show the *how* — two process maps that trace the decision path when an agent encounters a `.human` boundary in practice. ### Developer Workflow When an AI coding agent operates on a project, it traverses the directory tree — reading files, proposing changes, running tests. The `.human` convention introduces a clear decision point: when the agent encounters a `.human` path, it halts. No reading, no modification, no inference. The boundary is structural, not discretionary.
## Decision Flows: How .human Works in Practice Two process maps show the enforcement mechanism when agents encounter human-protected boundaries:
### Agentic Digital Twin In a building managed through a Digital Twin, agents continuously process sensor data and optimise operations. But certain records — tenant preferences, manual overrides by the facilities manager — carry a `.human` marker. The agent reads these for context but is structurally prevented from modifying them. The human layer of governance stays intact.
## Building Operations: Agent Decision Flow In Digital Twin environments, agents continuously optimize operations. When they encounter `.human`-marked records (tenant preferences, facility overrides), agents read them for context but halt at any modification attempt. The human governance layer remains structurally protected.

[4] What the Standard Should Look Like

The beauty of a good convention is its simplicity. It does not need to solve every edge case in version one. It needs to be clear enough to be adopted, and principled enough to be extended. **At the file level**, a `.human` extension or a `_human` suffix signals that a file is sovereign. `risk-register.human.xlsx`, `architecture-decisions.human.md`, `tenant-preferences.human.json`. The agent toolchain — whether that is an MCP server, a CI/CD pipeline, a BIM authoring tool, or a building management system — checks for this marker before any read or write operation and halts if it is present. **At the folder level**, a `.human` directory signals that everything inside it is sovereign. Any agent encountering a `.human` path — whether scanning a project tree or traversing a file system — halts before entering. The convention is immediately legible to any developer. **At the workspace level**, for Digital Twin environments, the standard extends into the information model itself. An IFC property set, a COBie field, a database flag — `Human_Sovereign: true` — attached to any record that was set by a person and must not be overwritten by an automated process. The agent can read it to understand context, but the write path is blocked by policy enforced at the platform level. **Critically**, the standard should distinguish between *read protection* and *write protection*. In many cases, an agent reading a human file is acceptable — it provides context. But modifying it, deleting it, summarising it into a report it was never intended for, or using it as training signal are all different categories of access that the standard should be able to express. In practice, this looks like a `.human` prefix or suffix applied consistently across a project — simple enough to adopt immediately, principled enough to extend as tooling matures.
## The Standard: Design Principles A robust convention is simple to adopt and principled enough to scale. **File Level**: A `.human` suffix (`risk-register.human.xlsx`, `architecture-decisions.human.md`) signals sovereign content. Agent toolchains check for this marker before any read or write operation. **Folder Level**: A `.human/` directory signals everything inside is sovereign. Any agent encountering this path halts before entering—immediately legible to developers and auditors. **Workspace Level**: For Digital Twin and information systems, extend into the data model itself—an IFC property, COBie field, or database flag (`Human_Sovereign: true`) attached to any record that a person created and must not be overwritten. **Granular Access Control**: The standard distinguishes between *read protection* and *write protection*. Agents may read human files for context, but modification, deletion, summarization into unintended reports, or use as training signal are blocked. **Adoption Path**: A `.human` prefix or suffix applied consistently across projects—simple to implement immediately, principled enough to extend as tooling matures.
### .human as a Lock File There is a useful analogy hiding in plain sight. Developers already understand lock files — `package-lock.json`, `poetry.lock`, `Cargo.lock` — files that freeze the state of a system at a known-good point and prevent automated processes from silently changing it. The `.human` convention works the same way, but for *governance* rather than *dependencies*. A `.human` marker does two things simultaneously. First, it **preserves state**: the content inside a `.human` file or folder is frozen from the agent's perspective. An agent cannot update it, merge into it, or rewrite it as part of an automated workflow. The state is what the human set it to, and it remains that way until a human changes it again. Second, it **locks access**: the path is structurally excluded from the agent's write scope, exactly as a `.lock` file prevents a package manager from resolving new versions until the lock is explicitly regenerated. This dual property — state preservation plus access restriction — makes `.human` more than a permission flag. It is a *checkpoint*. In a CI/CD pipeline, the `.human` folder is the place where decisions live that the pipeline must respect but cannot alter. In a Digital Twin, the `.human` records are the baseline that operational agents optimise *around*, never *through*. In a spreadsheet, the `.human` sheet is the page that holds the thinking the model is not allowed to flatten into a summary. The parallel is instructive: just as a lock file gives a team confidence that the dependency tree will not shift under their feet, a `.human` marker gives professionals confidence that their sovereign decisions will not be rewritten by the next agent to scan the workspace.
## .human as a Governance Lock **Analogy**: Developers understand lock files (`package-lock.json`, `poetry.lock`) that freeze system state and prevent automation from silently changing it. `.human` works the same way for governance. **Dual Function**: A `.human` marker simultaneously **preserves state** (content is frozen from the agent's perspective) and **locks access** (the path is structurally excluded from write scope). **Checkpoint Model**: In CI/CD pipelines, `.human` folders hold decisions the pipeline must respect but cannot alter. In Digital Twins, `.human` records are baselines that agents optimize *around*, never *through*. Just as lock files give teams confidence that dependencies won't shift, `.human` markers give professionals confidence that their sovereign decisions won't be rewritten by the next automated process.

[5] The Governance Argument

Some will argue that permissions systems already handle this — that RBAC, ACLs, and vault policies are the right place to enforce these boundaries. They are not wrong that those tools can achieve the technical outcome. But they are solving a different problem. Permissions systems are designed around *roles* and *identities*. The `.human` standard is designed around *intent and meaning*. The question it answers is not "does this agent have permission?" but "does this content belong to the human layer of this system?" That is a richer and more honest framing. A well-configured permissions system could accidentally give an agent read access to a personal file and the system would have no way of knowing that was a mistake. A `.human` marker makes the intent explicit in the content itself — it travels with the file, it survives migration, and it is legible to anyone reviewing the system, not just to security engineers who understand the ACL configuration. In regulated industries — construction, facilities management, healthcare, critical infrastructure — this kind of explicit, auditable intent marker has real legal and compliance value. When a regulator asks "how do you ensure automated systems do not override human decisions?", pointing to a governance framework built on `.human` markers is a much cleaner answer than "we configured our permissions correctly."
## Governance vs. Permissions: Why .human is Different **Current Approach**: RBAC, ACLs, and vault policies are role-based identity controls—they answer "does this agent have permission?" **Better Approach**: `.human` is intent-based—it answers "does this content belong to the human layer of this system?" This is a richer and more auditable framing. **Compliance Value**: Explicit, auditable intent markers embedded in content itself travel with files during migration and are visible to any reviewer—not just security engineers. In regulated industries (construction, facilities, healthcare, critical infrastructure), this explicit marker has real legal and compliance value. Regulators asking "how do you prevent automated systems from overriding human decisions?" get a much cleaner answer with `.human` markers than with permission configuration alone.
### Human-in-the-Loop: The Fire Alarm Override Consider a fire alarm system in a large commercial building, managed through an agentic Digital Twin. Smoke sensors trigger, and an operational agent begins executing its emergency protocol — activating sprinklers, unlocking fire exits, notifying emergency services. This is exactly what automation should do. The agent is fast, it follows its protocol, and it gets the building evacuated. Now consider what happens after. The smoke clears — or appears to. Sensor readings normalise. The agent, processing the data, determines that conditions have returned to safe thresholds. Left to its own logic, it would issue the all-clear: "fire is out, return to the building." But the agent can be wrong. A smouldering fire behind a wall produces no smoke until it reignites. A sensor malfunction can report clean air in a room still filling with carbon monoxide. A false positive from a kitchen event looks identical, in telemetry, to a false negative from a real fire that has temporarily dropped below detection threshold. The agent cannot tell the difference. It reads the numbers, and the numbers say safe. This is where the `.human` standard becomes a life-safety mechanism. The all-clear — the signal that says "the fire is out, it is safe to return" — is locked behind a `.human` protocol. No agent can issue it. No automated process can trigger it. The building stays in evacuation state until a verified human — a facilities manager, a fire warden, or a responding firefighter — physically confirms the situation and releases the `.human`-protected override. The agent cannot countermand this. It cannot escalate past it. It cannot silently re-enable normal operations because its sensors say everything is fine. The `.human` marker on the all-clear is absolute: a human took responsibility for the evacuation, and only a human can take responsibility for ending it.
## Human-in-the-Loop: The Fire Alarm Override **Scenario**: A Digital Twin manages fire safety in a large commercial building. Smoke sensors trigger evacuation protocols automatically—exactly as intended. After the smoke clears and sensors normalize, an agent determines conditions are safe and issues an all-clear. **The Problem**: Agents can be wrong. Smouldering fires, sensor malfunctions, or false negatives look identical in telemetry to normal conditions. **The Solution**: The all-clear signal is locked behind a `.human` protocol. Only a verified human—facility manager, fire warden, or firefighter—can end evacuation. The agent cannot countermand, escalate, or bypass this. The `.human` marker on the all-clear is absolute: a human took responsibility for the evacuation, and only a human can take responsibility for ending it. **Business Impact**: This is a life-safety mechanism that also establishes the boundary model for all other human-agent decisions in the system.
### Secrets, Credentials, and the Privacy Boundary The governance case extends naturally to software development. Every project has files that should never be touched by an agent — not because they are intellectually sovereign, but because they are operationally dangerous. Environment files (`.env`), API keys, OAuth tokens, database credentials, authentication configuration — these are the attack surface of any application, and an agent that reads, logs, or transmits them creates a privacy and security liability. Today, developers rely on `.gitignore` to keep secrets out of version control and on vault services to manage credentials at runtime. But neither convention tells an AI agent to stay away. A coding assistant that reads `.env` to "understand the configuration" has already crossed a line. One that includes a credential in a generated code snippet or a debug log has created a breach. A `.human` marker on secrets and authentication files solves this cleanly. The agent sees the boundary, halts, and works with the rest of the codebase. No special vault integration required, no custom permission rules — just a convention that says "this file belongs to the human operator, not to the automation." It is the same principle as the Digital Twin override, applied to a different domain: the human controls the keys, and the agent respects the lock.
## Secrets and Credentials: The Security Boundary **Current Risk**: Environment files (`.env`), API keys, OAuth tokens, database credentials, and authentication configuration are attack surfaces. Coding assistants reading these files for "context" or accidentally including them in code snippets create privacy and security liability. **Existing Tools Are Insufficient**: `.gitignore` and vault services prevent version control exposure and manage runtime credentials, but neither signals to AI agents to stay away. **`.human` Solution**: Marking secrets and authentication files as `.human` creates a clear agent boundary. The agent sees the boundary, halts, and works with the rest of the codebase. No special vault integration or custom permission rules required—just a convention that declares "this file belongs to the human operator." Same principle as the Digital Twin override, applied to security governance.
### What This Looks Like in a Codebase In practice, adopting `.human` is as simple as creating a folder. Consider a typical project: ``` my-project/ ├── src/ │ ├── app.py │ ├── routes.py │ └── models.py ├── tests/ ├── .human/ │ ├── .env │ ├── credentials.json │ ├── oauth-tokens/ │ ├── decisions/ │ │ └── why-we-chose-postgres.md │ └── scratch/ │ └── perf-notes.md ├── .gitignore └── README.md ``` Everything under `.human/` is off-limits to agents. Secrets live there. Personal notes live there. Architecture decision records live there. The agent works freely with `src/`, `tests/`, and configuration files — but the `.human` boundary is absolute. The enforcement is minimal. Any agent framework or tool can check for it in a few lines: ```python from pathlib import Path def is_human_path(path: Path) -> bool: """Check if any component of the path is .human-marked.""" return any(part == ".human" or part.startswith(".human") for part in path.parts) # Agent-side guard — run before any file operation def agent_read(path: Path) -> str: if is_human_path(path): raise PermissionError(f"HALT: {path} is .human-protected") return path.read_text() ``` That is the entire implementation. No configuration file to maintain, no server to run, no permissions matrix to audit. The convention is in the file system itself — portable, visible, and impossible to miss. For teams already using `.gitignore`, the adoption path is familiar. Add `.human/` to your project root. Move your secrets and personal files into it. Every agent that respects the convention — and every framework that builds in the check — immediately honours the boundary. The more teams that adopt it, the stronger the signal to tool authors and AI providers: this is how humans mark their space.
## Implementation Example: Project Structure ``` my-project/ ├── src/ │ ├── app.py │ ├── routes.py │ └── models.py ├── tests/ ├── .human/ │ ├── .env │ ├── credentials.json │ ├── oauth-tokens/ │ ├── decisions/ │ │ └── architecture-rationale.md │ └── operations/ │ └── project-risk-notes.md ├── .gitignore └── README.md ``` **Everything under `.human/` is agent-protected.** Secrets, credentials, personal notes, and reasoning documents are off-limits. Agents work freely with source, tests, and public configuration. **Implementation is minimal**: ```python def is_human_path(path: Path) -> bool: return any(part == ".human" or part.startswith(".human") for part in path.parts) def agent_read(path: Path) -> str: if is_human_path(path): raise PermissionError(f"HALT: {path} is .human-protected") return path.read_text() ``` **Adoption Path**: For teams already using `.gitignore`, adoption is familiar—add `.human/` to the project root, move secrets and working files into it. Every agent respecting the convention immediately honors the boundary.

[6] Data Sovereignty and the Human Audit Layer

There is a dimension to the `.human` standard that reaches beyond individual projects and buildings: **data sovereignty**. As AI systems operate across borders — processing data in one jurisdiction, training models in another, and serving users in a third — the question of who controls what data, and under which legal framework, becomes urgent. Regulations like GDPR, the EU AI Act, and emerging data localisation laws in dozens of countries all share a common requirement: certain categories of data must remain under human oversight, and citizens must be able to audit how their data is handled by automated systems. The `.human` standard provides a structural mechanism for meeting this requirement. When a `.human` marker is applied to a data partition — say, personally identifiable information belonging to EU citizens, or consent records governed by a national privacy authority — it creates an auditable boundary in the data flow. Agents can process anonymised or aggregated data freely, but the sovereign partition is locked: only authorised human operators can access, modify, or export it. This is not access control by configuration. It is access control by convention, embedded in the data itself and visible to any auditor.
## Data Sovereignty: Regulatory and Legal Implications **Regulatory Landscape**: GDPR, EU AI Act, and emerging data localization laws require that certain data categories remain under human oversight with auditable control over automated system access. **Structural Solution**: A `.human` marker applied to data partitions (e.g., personally identifiable information, consent records, jurisdiction-specific data) creates an auditable boundary in data flows. Agents process anonymized or aggregated data freely, but sovereign partitions are locked—only authorized humans can access, modify, or export them. **Compliance Advantage**: This is not access control by configuration—it is access control by convention, embedded in the data itself and visible to any auditor. For organizations operating across multiple jurisdictions, `.human` provides a cleaner, more portable compliance mechanism than traditional ACL-based governance.

[7] Who Should Build This

This standard should not be owned by a single vendor. It should emerge from the communities that feel the problem most acutely: BIM practitioners, digital twin operators, enterprise software teams, and the open-source tooling projects that underpin agentic workflows. The analogy is again instructive. `.gitignore` was not invented by a standards body. It was invented by the people who needed it, it was simple enough to copy, and it became universal. The MCP ecosystem, the IFC community, the emerging agent orchestration frameworks — all of them have enough overlap in this problem that a lightweight, vendor-neutral specification is achievable. What that specification needs is not a long document. It needs agreement on three things: the marker syntax, the default behaviour when a marker is encountered (halt and log), and a minimal permission grammar for expressing read/write distinctions. Everything else — tooling, integrations, enforcement mechanisms — can be built on top of that foundation by whoever needs it.
## Industry Ownership: A Vendor-Neutral Standard **Principle**: This standard should not be owned by a single vendor. It should emerge from communities that feel the problem acutely: BIM practitioners, digital twin operators, enterprise software teams, and open-source projects. **Historical Model**: `.gitignore` was not invented by a standards body—it was invented by practitioners who needed it, adopted because it was simple to copy, and became universal. The same path is available for `.human` across MCP ecosystems, IFC communities, and agent orchestration frameworks. **Minimal Specification Required**: Agreement on three things: 1. Marker syntax 2. Default behavior when encountered (halt and log) 3. Basic permission grammar for read/write distinctions Tooling, integrations, and enforcement mechanisms can be built on top by whoever needs them.

[8] A Closing Thought

The buildings we design and the software we write are increasingly populated by agents that are genuinely useful, often impressive, and sometimes alarmingly capable. That is a good thing. The goal of this proposal is not to slow that down. The goal is to ensure that as we build systems where humans and agents work side by side — in spreadsheets, in codebases, in buildings — we do not accidentally engineer out the human layer. Not because agents are malicious, but because the absence of a clear boundary is itself a design failure. The `.human` standard is a small idea with large implications. It says: some things are ours. Not hidden, not locked away, but *marked* — with the same clarity and simplicity we use to mark everything else we care about preserving. That boundary, stated explicitly, is the foundation of trust between human professionals and the agents they work alongside. --- *This is a living proposal. Feedback, critique, and collaboration from practitioners in BIM, Digital Twins, information management, and AI engineering is welcomed.*
## Conclusion: Engineering Trust Into Systems **Premise**: As humans and agents work side by side in spreadsheets, codebases, and buildings, the absence of a clear boundary is itself a design failure. **What `.human` Does**: It ensures the human layer is not engineered out of systems. Not hidden or locked away, but *marked*—with the same clarity and simplicity applied to everything else an organization cares about preserving. **Bottom Line**: The `.human` standard establishes that some decisions, some spaces, and some data belong to humans. That boundary, stated explicitly, is the foundation of trust between professional teams and the agents they work alongside—enabling collaboration while preserving human authority where it matters most.
Key Takeaways
- The `.human` standard proposes a simple file/folder naming convention to mark content that AI agents should not read, modify, or use for inference. - Unlike permission systems based on roles and identities, `.human` markers embed intent directly in the file system, making boundaries explicit and auditable across migrations and tools. - The standard addresses three critical use cases: protecting personal notes in shared spreadsheets, preserving architectural decisions and secrets in codebases, and locking human overrides in operational digital twins. - Enforcement is minimal—a few lines of code to check for `.human` paths—making adoption lightweight and vendor-neutral, similar to how `.gitignore` became universal. - In regulated industries and cross-border data flows, `.human` markers provide structural compliance with laws requiring human oversight of automated systems.