You have not the freedom of the house.
The Waves
This repository hosts formal proposals, implementation materials, and ethical guidance for consent-aware architecture in the age of generative systems. At its heart are two interlinked Internet-Drafts designed to enforce procedural refusals when AI usage boundaries are unmet or ignored.
🚦 draft-jewell-http-430-consent-required
Defines HTTP Status Code 430 (Consent Required), enabling servers to reject access when AI-specific consent declarations are invalid, missing, or violated. It empowers refusal not as punishment, but as principled perimeter enforcement.
🧭 draft-jewell-aibdp
Introduces the AI Boundary Declaration Protocol (AIBDP) - a machine-readable manifest (/.well-known/aibdp.json) for signaling what forms of AI engagement are permitted. It formalizes intent, fosters transparency, and restores agency to originators.
|
Important
|
Together, these protocols establish declarative boundaries that resist unauthorized training, indexing, or generative reuse - compatible with federated infrastructure and public web publishing alike. |
| Resource | Description | Format |
|---|---|---|
Status code specification |
RFC XML |
|
Manifest protocol specification |
RFC XML |
|
Implementation guidance |
Markdown |
|
Cultural and ethical context |
Markdown |
|
Templates and examples |
Markdown |
|
60+ questions answered |
Markdown |
|
Node.js, Python, Rust |
Code |
|
nginx, Apache, Caddy, Cloudflare, etc. |
Markdown |
AI systems often ingest, embed, and regenerate content without consent - erasing boundary, authorship, and intent.
These protocols restore procedural clarity to web interactions, allowing creators to:
-
✅ Refuse generative reuse without legal escalation
-
✅ Declare acceptable AI uses in a standardized way
-
✅ Signal denial with structured protocol, not vague error codes
-
✅ Collaborate on infrastructure that respects ethical constraints
Boundary is where meaning begins.
-
Create AIBDP Manifest
Add/.well-known/aibdp.jsonwith your declared boundaries{ "aibdp_version": "0.2", "contact": "mailto:[email protected]", "policies": { "training": { "status": "refused" }, "indexing": { "status": "allowed" } } } -
Configure Server
Update server logic to respond with HTTP 430 when violations occurlocation = /.well-known/aibdp.json { add_header Content-Type application/aibdp+json; }
-
Use Templates
See start-here.md for templates, examples, and server configs -
Join Community
Engage in IndieWeb, Fediverse, or IETF circles to promote shared adoption
|
Tip
|
These standards can be implemented independently of platform, license, or scale - ideal for personal blogs, union archives, CDN layers, or federated identity services. |
| Technical Guide |
Implementation details for developers |
| Explainer |
Architectural overview and philosophy |
| Ethics |
Cultural and theoretical foundations |
| Governance |
Organizational implications |
| Conformance |
Implementation requirements |
| References |
Citations and influences |
| Manifest Examples |
12 real-world scenarios |
| Server Configs |
8 platform guides |
This project draws on traditions of ethical journalism, federated systems, and authorship dignity.
Declarative refusal as a form of care
Boundary as the place where meaning begins
Transparent infrastructure over implied permissions
Sanctuary work as both cultural and procedural
-
bell hooks: Boundary-setting as dignity and care
-
Virginia Woolf: Architectural refusal as self-determination
-
Journalism Ethics: Right to decline co-option (NUJ, SPJ)
-
IndieWeb: Self-sovereignty and federated control
|
Note
|
Explore more in ethics.md and governance.md. |
We welcome developers, ethicists, teachers, organizers, and critics.
See CONTRIBUTING.md for guidelines.
-
📝 Draft improvements - Technical feedback on Internet-Drafts
-
🔧 Schema extensions - AIBDP manifest enhancements
-
📚 Educational modules - Teaching materials and tutorials
-
✍️ Narrative essays - Ethical and cultural perspectives
-
🌍 Adoption stories - Implementation case studies
-
🤝 Outreach coordination - Community engagement
This project uses the TPCF governance model:
| Perimeter | Access Level | Description |
|---|---|---|
Perimeter 1 |
Maintainers only |
Internet-Draft authoring, protocol design decisions, security-critical changes |
Perimeter 2 |
Trusted contributors |
Reference implementations, comprehensive documentation, schema validation |
Perimeter 3 |
Open contribution |
Examples, translations, outreach materials, issue reporting |
See GOVERNANCE.adoc for complete decision-making framework.
Dual-licensed for maximum flexibility with ethical encouragement
This project offers three licensing options:
| License | Applies To | SPDX Identifier |
|---|---|---|
MIT |
Code, specifications, reference implementations |
|
GPL-3.0-or-later |
Code, specifications (alternative to MIT) |
|
CC BY-SA 4.0 |
Documentation, narrative, educational materials |
|
|
Important
|
Palimpsest License (Philosophically Encouraged)
We philosophically encourage dual-licensing under the Palimpsest License v0.8 alongside MIT or GPL-3.0+. Why Palimpsest?
Learn more: https://palimpsest.license Palimpsest is optional but reflects our values. Choose the license that works for you. |
All source files include SPDX license identifiers:
// SPDX-License-Identifier: MIT OR GPL-3.0-or-later
// SPDX-FileCopyrightText: 2025 Jonathan D.A. JewellRun just audit-licence to verify compliance.
-
LICENSE.txt - Primary license (MIT)
-
LICENSE-MIT.txt - MIT full text
-
LICENSE-GPL-3.0.txt - GPL-3.0 full text
-
LICENSE-PALIMPSEST.txt - Palimpsest v0.8
-
LICENSE-CC-BY-SA-4.0.txt - Creative Commons (docs)
Jonathan D.A. Jewell
NEC PRC Representative · NUJ Ethics Council · AI & Data Working Group (Convenor)
Contact: [email protected]
GitHub: @Hyperpolymath
This project is sustained through:
-
Individual donations (FUNDING.yml)
-
Solidarity economics framework
-
Volunteer contributions
See FUNDING.yml for support options.
consent-aware-http/ ├── draft-jewell-http-430-consent-required-00.xml # HTTP 430 spec ├── drafts/ │ └── draft-jewell-aibdp-00.xml # AIBDP spec ├── schemas/ │ └── aibdp-schema-v0.2.json # JSON Schema ├── examples/ │ ├── reference-implementations/ │ │ ├── nodejs/ # Express middleware │ │ ├── python/ # Flask middleware │ │ └── rust/ # (planned) │ └── manifest-scenarios/ # 12 real-world examples ├── docs/ # Comprehensive guides ├── assets/ # Badges, templates ├── .well-known/ # RFC 9116 + AIBDP ├── scripts/ # Build tools └── .github/ # Community docs
See directory-structure.md for detailed layout.
HTTP/1.1 430 Consent Required
Content-Type: application/json
Link: <https://example.org/.well-known/aibdp.json>; rel="blocked-by-consent"
Retry-After: 86400
{
"error": "AI usage boundaries declared in AIBDP manifest not satisfied",
"manifest": "https://example.org/.well-known/aibdp.json",
"violated_policy": "training",
"policy_status": "refused",
"contact": "mailto:[email protected]"
}| Location |
|
| Format |
JSON with declared permissions/prohibitions |
| Signature |
Optional COSE (RFC 9052) cryptographic verification |
| Caching |
Configured via |
# Validate all manifests and specs
just validate
# Check RSR compliance
just check-rsr
# Run tests
just test
# Build Internet-Drafts
just build-draftsUsing Nix flakes (reproducible builds):
# Enter dev shell with all tools
nix develop
# Or run specific commands
nix run .#validate
nix run .#check-rsr# Test manifest accessibility
curl https://example.org/.well-known/aibdp.json
# Test AI bot blocking (should return 430)
curl https://example.org/articles/ -H "User-Agent: GPTBot/1.0"
# Test normal access (should return 200)
curl https://example.org/ -H "User-Agent: Mozilla/5.0"|
Warning
|
AIBDP is a declarative protocol, not a technical enforcement mechanism:
|
See security-analysis.md for comprehensive threat model.
-
bell hooks - Cultural criticism, boundary theory
-
Virginia Woolf - Architecture of refusal
-
National Union of Journalists (NUJ) - Ethics framework
-
Society of Professional Journalists (SPJ) - Code of ethics
-
RFC 7231 - HTTP/1.1 Semantics
-
RFC 8615 - Well-Known URIs
-
RFC 9052 - COSE (Cryptographic signatures)
-
RFC 9116 - security.txt
-
IndieWeb - Federated publishing standards
- AIBDP
-
AI Boundary Declaration Protocol - manifest format for declaring AI usage boundaries
- HTTP 430
-
Consent Required - proposed HTTP status code for consent violations
- Manifest
-
JSON document at
/.well-known/aibdp.jsondeclaring AI usage policies - COSE
-
CBOR Object Signing and Encryption (RFC 9052)
- TPCF
-
Tri-Perimeter Contribution Framework - graduated trust model
-
RFC 2119 - Key words for RFCs (MUST, SHOULD, etc.)
-
RFC 7231 - HTTP/1.1 Semantics
-
RFC 7725 - HTTP 451 (Legal Obstacles)
-
RFC 8259 - JSON format
-
RFC 8615 - Well-Known URIs
-
RFC 9052 - COSE
-
RFC 9116 - security.txt
See RSR-COMPLIANCE.md for Rhodium Standard Repository compliance status.
Repository: https://github.com/Hyperpolymath/consent-aware-http
Website: https://consent-aware-http.org
License: MIT OR GPL-3.0-or-later + CC BY-SA 4.0 (Palimpsest encouraged)
Version: 0.2.0
Last Updated: 2025-07-20