| Internet-Draft | FAF | January 2026 |
| Wolfe | Expires 25 July 2026 | [Page] |
This document specifies FAF (Foundational AI-context Format), a YAML-based format for representing software project context in a form consumable by AI development tools. FAF provides a standardized mechanism for sharing project architecture, conventions, dependencies, and goals across heterogeneous AI agents, addressing context fragmentation in multi-agent development environments.¶
FAF is registered with IANA as "application/vnd.faf+yaml" (October 2025). This document seeks registration as "application/faf+yaml".¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 25 July 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.¶
Modern software development increasingly involves multiple AI agents operating on shared codebases: coding assistants, code review tools, testing frameworks, and deployment automation. These agents lack a standardized mechanism for sharing project context, leading to:¶
FAF provides a persistent, machine-readable representation of project context that any AI agent can consume without format-specific adaptation. The format extends YAML with a structured schema for AI context representation.¶
FAF is registered with IANA as "application/vnd.faf+yaml" (vendor tree, October 2025). This document seeks registration as "application/faf+yaml". The vendor registration remains valid for backward compatibility.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
FAF files MUST be valid YAML 1.2 documents [YAML]. The file MUST begin with a "faf_version" field indicating the specification version.¶
faf_version: "2.5.0"
project:
name: "example-project"
mission: "Project purpose and goals"
tech_stack:
languages: ["TypeScript", "Python"]
frameworks: ["React", "FastAPI"]
key_files:
- path: "src/main.ts"
purpose: "Application entry point"
context:
architecture: "Description of system design"
conventions: "Coding standards and patterns"
metadata:
created: "2026-01-21T00:00:00Z"
score: 85
¶
| Field | Type | Description |
|---|---|---|
| faf_version | string | Specification version (REQUIRED) |
| project.name | string | Project identifier (REQUIRED) |
| Field | Type | Description |
|---|---|---|
| project.mission | string | Project purpose statement |
| tech_stack.languages | array | Programming languages used |
| tech_stack.frameworks | array | Frameworks and libraries |
| key_files | array | Important file references |
| context.architecture | string | System architecture description |
| context.conventions | string | Coding standards |
| metadata.score | integer | AI-readiness score (0-100) |
| Field | Type | Description |
|---|---|---|
| team | object | Team and contact information |
| workflows | array | Development workflow descriptions |
| integrations | array | External service integrations |
| constraints | object | Project constraints and requirements |
The file extension MUST be ".faf".¶
project-root/ ├── package.json # Dependencies (existing convention) ├── README.md # Human documentation (existing convention) ├── project.faf # AI context (FAF) └── ...¶
FAF files act as a data interchange format between human developers and AI systems. While FAF files are not executable code, they influence the behavior of autonomous agents and coding assistants. Implementations MUST NOT treat FAF content as trusted instructions.¶
Implementations SHOULD:¶
FAF relies on YAML 1.2, which presents specific attack vectors. To mitigate these, implementations MUST adhere to the following parsing constraints:¶
FAF files are plain-text documents and provide no native encryption or redaction.¶
Because FAF files are designed to set the context for AI agents, they are a vector for Context Poisoning and Prompt Injection.¶
This document requests registration of the following media type:¶
FAF is currently registered in the IANA vendor tree as "application/vnd.faf+yaml" (October 2025). This document requests registration as "application/faf+yaml". Both registrations MAY coexist; the vendor registration provides backward compatibility.¶
This appendix describes an optional scoring algorithm for quantifying FAF file completeness. This section is non-normative; implementations are not required to implement scoring, and scoring methodologies may vary between tools.¶
FAF tooling may include a scoring algorithm that quantifies context completeness on a 0-100 scale. This score provides a heuristic measure of "AI-readiness" but does not indicate compliance with this specification.¶
| Tier | Score Range | Meaning |
|---|---|---|
| Trophy | 100 | Complete context |
| Gold | 95-99 | Exceptional |
| Silver | 85-94 | Production ready |
| Bronze | 70-84 | Solid foundation |
| Green | 55-69 | Needs improvement |
| Yellow | 40-54 | Significant gaps |
| Red | 0-39 | Major work needed |