Profile: File
In-file provenance headers for documents and source code.
1. Purpose
A File profile answers: who created this file (the ORIGINATOR), written once at the file's birth and kept stable. Narrower than the Git profile (who CHANGED it, line by line). Both are needed; neither substitutes for the other. Git blame tells you the truth about a line today; the File header tells you where the file came from.
2. Markdown front matter
---
tap_version: 0.2
title: <short document title>
source_type: collaborative # collaborative | ai-only | human-only
authors:
- type: human
name: Alex
roles: [ideation, review]
- type: ai
name: Liza
model: claude-opus-4-8
provider: anthropic
roles: [drafting]
updated: 2026-07-18
visibility: internal
---
authors is always a list, even for one author. This is
the symmetry point: a human and an AI contributor are both entries in
the same array, same shape (type, name,
roles), with model/provider added
only for type: ai. The type key distinguishes
them, not separate sections.
3. Comment headers for source and config files
.py, .sh, .conf carry the
identical field set wrapped in the language's comment syntax; only the
delimiter changes. It is inert to the toolchain and legible to a human
or agent.
# ---
# tap_version: 0.2
# title: backfill_orders.py
# source_type: collaborative
# authors:
# - type: human
# name: Alex
# roles: [ideation, review]
# - type: ai
# name: Liza
# model: claude-opus-4-8
# provider: anthropic
# roles: [drafting]
# updated: 2026-07-18
# ---
4. Nuance: file origin is not code origin
The header records who created the FILE, not who wrote every fragment inside it. A function written in file A by X, then moved to file B by Y on refactor: file B's header reflects Y as its creator, while the function's authorship stays with X. The header fixes file origin (a point-in-time fact); git blame fixes line truth. Do not turn the header into a second, worse copy of git history - it is a birth certificate, not a living ledger.
5. Before / after
Now: a source file with no provenance. With TAP: the same file, code unchanged, with the comment header above naming both a human and an AI contributor - opening the file now answers who made it and with what help.
6. Referencing a persona
An authors entry may add
profile: <url> pointing to a full
author.md. The header still carries the minimum
self-contained fields, so the file stays legible if the link dies; the
profile reference is additive (disclosure level,
verification, contact live there).