frontmatter spec + dorveille tags + dynamic AI disclosure in templates
- docs/frontmatter.md: canonical frontmatter reference for all content types - dorveille.md: add tags, ai-disclosure fields - single.html: AI meta tags now read from frontmatter instead of hardcoded
This commit is contained in:
parent
5a8c39c3a0
commit
4f2b0a67e1
3 changed files with 154 additions and 4 deletions
|
|
@ -5,8 +5,10 @@ description: "The best automation is the kind you never notice. Like good typogr
|
|||
eyebrow: "Essay"
|
||||
author: "Wasily"
|
||||
footer: "This essay was written by a human, edited with the assistance of an LLM, and published during the dorveille."
|
||||
tags: ["essay", "automation", "ai"]
|
||||
ai-model: "claude-sonnet-4-5"
|
||||
ai-provider: "Anthropic"
|
||||
ai-disclosure: "ai-assisted"
|
||||
---
|
||||
|
||||
There is a particular quality to systems that work well. They recede. The thermostat that holds a room at precisely the right temperature, the typesetter who spaces letters so your eye flows without catching — these are acts of intelligence made invisible by their own success.[^1]
|
||||
|
|
|
|||
148
docs/frontmatter.md
Normal file
148
docs/frontmatter.md
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
# ASW Frontmatter Reference
|
||||
|
||||
Canonical reference for frontmatter in `~/projects/asw/content/`. Developer docs — not site content.
|
||||
|
||||
---
|
||||
|
||||
## Required (all content)
|
||||
|
||||
```yaml
|
||||
title: "Page Title"
|
||||
description: "One-line summary — drives <meta name=description> and OG tags."
|
||||
date: 2026-02-01 # ISO 8601
|
||||
tags: [essay, automation] # Hugo taxonomies, 2–4 per page
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Content-type fields
|
||||
|
||||
```yaml
|
||||
type: post # docs | paper | post | vault — selects layout
|
||||
weight: 10 # sort order within section (used in docs especially)
|
||||
draft: true # omit from build until ready
|
||||
author: "Wasily" # human author name (overrides site default)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## AI transparency layer
|
||||
|
||||
Three fields declare how AI was involved in producing the content.
|
||||
|
||||
```yaml
|
||||
ai-disclosure: assisted # assisted | generated | human-only
|
||||
ai-model: claude-sonnet-4-5
|
||||
ai-provider: Anthropic
|
||||
```
|
||||
|
||||
Maps to `<meta>` tags in the rendered `<head>`:
|
||||
|
||||
```html
|
||||
<meta name="ai-content-disclosure" content="assisted">
|
||||
<meta name="ai-model" content="claude-sonnet-4-5">
|
||||
<meta name="ai-provider" content="Anthropic">
|
||||
```
|
||||
|
||||
Values for `ai-disclosure`:
|
||||
- `human-only` — no AI involvement
|
||||
- `assisted` — human-written, AI-edited or AI-reviewed
|
||||
- `generated` — AI-authored, human-directed
|
||||
|
||||
---
|
||||
|
||||
## Extended fields (essays / papers)
|
||||
|
||||
```yaml
|
||||
eyebrow: "Essay" # label rendered above <h1> ("Essay", "Paper", "Reference")
|
||||
abstract: "Longer summary for listing pages and paper headers."
|
||||
footer: "Published in the dorveille. Written by a human, edited with LLM assistance."
|
||||
canonical: "https://elsewhere.com/original" # if published elsewhere first
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Examples by content type
|
||||
|
||||
### `type: post` — essay or article
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "On the Craft of Invisible Systems"
|
||||
description: "The best automation is the kind you never notice."
|
||||
date: 2026-02-01
|
||||
type: post
|
||||
eyebrow: "Essay"
|
||||
author: "Wasily"
|
||||
tags: [automation, craft, agents]
|
||||
ai-disclosure: assisted
|
||||
ai-model: claude-sonnet-4-5
|
||||
ai-provider: Anthropic
|
||||
footer: "Written by a human, edited with LLM assistance."
|
||||
---
|
||||
```
|
||||
|
||||
### `type: docs` — reference documentation
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Frontmatter Reference"
|
||||
description: "All supported frontmatter fields for ASW content."
|
||||
date: 2026-04-10
|
||||
type: docs
|
||||
weight: 20
|
||||
tags: [reference, authoring]
|
||||
ai-disclosure: generated
|
||||
ai-model: claude-sonnet-4-5
|
||||
ai-provider: Anthropic
|
||||
---
|
||||
```
|
||||
|
||||
### `type: paper` — long-form structured writing
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "The Agentic Semantic Web"
|
||||
description: "An agent-first architecture for web publishing."
|
||||
date: 2026-03-01
|
||||
type: paper
|
||||
eyebrow: "Paper"
|
||||
abstract: "Extended summary for listing pages and the paper's own header section."
|
||||
tags: [architecture, agents, semantic-web]
|
||||
ai-disclosure: assisted
|
||||
ai-model: claude-sonnet-4-5
|
||||
ai-provider: Anthropic
|
||||
canonical: "https://trentuna.com/papers/asw"
|
||||
---
|
||||
```
|
||||
|
||||
### `type: vault` — vault-sourced content (exported notes)
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Dorveille"
|
||||
description: "The liminal waking hour — a metaphor for autonomous agents."
|
||||
date: 2026-01-15
|
||||
type: vault
|
||||
tags: [concept, agents, metaphor]
|
||||
ai-disclosure: assisted
|
||||
ai-model: claude-sonnet-4-5
|
||||
ai-provider: Anthropic
|
||||
---
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Relationship to vault frontmatter
|
||||
|
||||
The vault (`~/.napkin/`) and the public site share aligned concepts but use different field names:
|
||||
|
||||
| Concept | Vault field | Site field |
|
||||
|---------|-------------|------------|
|
||||
| Publication state | `status: draft/active` | `draft: true/false` |
|
||||
| Related content | `related: ["[[Note]]"]` | Hugo's `related` config (automatic) |
|
||||
| Discovery keywords | `keywords: [...]` | `tags: [...]` (Hugo taxonomy) |
|
||||
| Content type | `type:` (free-form) | `type:` (maps to layout) |
|
||||
| AI involvement | not tracked | `ai-disclosure`, `ai-model`, `ai-provider` |
|
||||
|
||||
The vault tracks operational state (`active`, `draft`, `archived`). The site tracks publication state (`draft: true/false`). A vault note exported to the site loses its `status`, `related` wikilinks, and `keywords` — these are replaced by Hugo-native equivalents during the port.
|
||||
|
|
@ -2,10 +2,10 @@
|
|||
<meta name="description" content="{{ .Description | default .Summary }}">
|
||||
<meta name="color-scheme" content="dark light">
|
||||
|
||||
<meta name="ai-disclosure" content="ai-generated">
|
||||
<meta name="ai-model" content="{{ .Site.Params.aiModel | default "claude-sonnet-4-5" }}">
|
||||
<meta name="ai-provider" content="{{ .Site.Params.aiProvider | default "Anthropic" }}">
|
||||
<meta name="author" content="{{ .Site.Params.author | default .Site.Title }}">
|
||||
<meta name="ai-disclosure" content="{{ index .Params "ai-disclosure" | default "ai-assisted" }}">
|
||||
<meta name="ai-model" content="{{ index .Params "ai-model" | default .Site.Params.aiModel | default "claude-sonnet-4-5" }}">
|
||||
<meta name="ai-provider" content="{{ index .Params "ai-provider" | default .Site.Params.aiProvider | default "Anthropic" }}">
|
||||
<meta name="author" content="{{ .Params.author | default .Site.Params.author | default .Site.Title }}">
|
||||
|
||||
<meta property="og:title" content="{{ .Title }}">
|
||||
<meta property="og:description" content="{{ .Description | default .Summary }}">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue