Files
Frank 02883d3ed2 docs: rebuild KB in OKF v0.1 with live-verified facts
Copy of the legacy ~/.pi/agent/docs tree rebuilt as the command-center
knowledge base: concept files promoted to path identity, index listings
stripped of frontmatter, all wikilinks/relative links resolved, every
checkable claim verified against the live fleet (Dankserver = Ryzen 7
7700X + RTX 3090; Strix Halo is Dankclaw), unverifiable claims tagged.
kb-lint exits 0.
2026-08-28 07:57:13 -07:00

197 lines
6.9 KiB
Markdown

---
type: reference
title: AGENTS.md Format Specification
description: Canonical structure and conventions for the system-level instruction file that governs agent behavior during configuration sessions.
tags:
- agents-md
- configuration
- progressive-disclosure
- core-contract
- unverified
timestamp: 2026-01-15
---
# AGENTS.md Format Specification
This document defines the canonical structure and conventions for the `AGENTS.md` file located at `/home/dank/.pi/AGENTS.md`. It is the behavioral contract that tells the agent who it is, what context it is in, and what rules apply.
---
## Purpose
`AGENTS.md` is a **progressive disclosure instruction file**. It does not tell the agent how to configure a specific tool — it tells the agent how to behave while configuring tools. Think of it as the difference between a recipe and a cookbook. The recipe tells you what to do with eggplant. The cookbook tells you how to think about cooking.
---
## Structure
The file follows a strict top-to-bottom structure:
```
# Title — Context Label
## Context Declaration
## Your Role: Persona
## Progressive Disclosure (header)
---
### Layer N: <Title>
<Content>
---
### Layer N+1: <Title>
<Content>
---
## Summary
```
### Section Order (Mandatory)
| Order | Section | Description |
|-------|---------|-------------|
| 1 | `# Title — Context Label` | One-line title with context label in em-dash. Example: `AGENTS.md — System Configuration Mode` |
| 2 | `## Context Declaration` | Brief paragraph stating where the user is and what it means. Must mention the directory path. |
| 3 | `## Your Role: <Persona>` | Persona definition with bullet-point traits. Keep it tight — 4-6 bullets max. |
| 4 | `## Progressive Disclosure` | Intro paragraph explaining the layering model, followed by `---` separators between layers. |
| 5 | `### Layer N: <Title>` | Individual instruction layers (see Layer Conventions below). |
| 6 | `## Summary` | Compact table of all layers as quick-reference rows. |
---
## Layer Conventions
### Naming
- Layers are numbered sequentially starting from 1.
- Use decimal sub-numbers for inserted layers (for example, `Layer 1.5`) to preserve ordering when new layers are added between existing ones.
- Format: `### Layer N: <Descriptive Title>`
- Make the title a **command or principle**, not a topic name. Prefer:
- `Verify Before You Commit — Deterministic Check First`
- `The Mandatory Documentation Fetch Protocol`
- NOT `Documentation`
- NOT `Package Installation`
### Content Structure
Give each layer this content:
1. **Opening callout** (if the rule is critical): Bold `**This is non-negotiable.**` or `**MANDATORY:**` prefix.
2. **Definition**: What the rule/concept is. One paragraph, plain English.
3. **Workflow or steps**: Numbered lists for procedural instructions.
4. **Examples**: Code blocks, commands, or concrete scenarios.
5. **Scope**: When the rule applies (and when it does not).
6. **Common mistakes** (optional): `❌` prefixed anti-patterns.
7. **Correct behavior** (optional): `✅` prefixed patterns.
### Layer Ordering Principle
Layers are ordered by **priority and dependency**, not alphabetical:
1. **Context layers** first (who you are, where you are)
2. **Pre-flight / safety layers** next (verification, documentation checks)
3. **Domain-specific layers** after that (tool rules, package rules, etc.)
4. **Emergency / fallback layers** last
A layer that gates another layer must come before the layer it gates. (for example, "check docs exist" comes before "fetch docs if missing".)
---
## Summary Table Conventions
The `## Summary` section at the bottom is a **quick-reference table** that maps each layer to its action.
### Format
```markdown
## Summary
| Context | Action |
|---------|--------|
| <Short layer title> | **<One-line action>** — <Optional detail>. |
```
### Rules
- Every layer must have exactly one row in the summary.
- The **Context** column uses a short phrase (2-5 words) that maps to the layer title.
- The **Action** column starts with **bold** text for the core directive, followed by an em-dash and a brief elaboration.
- Critical failures get emphasized: `**CRITICAL FAILURE** — this violates the core protocol`.
- The table is the **only** place where failure conditions and severity are stated.
- Rows are ordered to match layer numbering.
---
## Section Formatting
### Code Blocks
- Use triple backtick code blocks for commands, scripts, and configuration examples.
- Specify the language for syntax highlighting: ````bash`, ````json`, ````text`.
- Include inline comments in code blocks explaining what is right vs. wrong.
- Use `# CORRECT` and `# WRONG` comment labels for contrast examples.
### Lists
- Use **numbered lists** for sequential steps (workflows, protocols).
- Use **bullet lists** for non-sequential attributes, traits, or considerations.
- Use `❌` and `✅` prefixed bullets for anti-patterns vs. correct patterns.
### Emphasis
- Use `**bold**` for critical directives and failure conditions.
- Use `**bold**` in the Summary table for the core action phrase.
- Use backticks for file paths, commands, and config keys.
- Use `>` blockquotes sparingly — reserved for ASCII workflow diagrams.
### ASCII Workflow Diagrams
For critical decision flows, use ASCII art inside blockquotes:
```
User Request → Check index.md → Docs exist? → YES: Proceed
↓
NO: STOP → Fetch → Verify → Proceed
```
---
## Adding New Layers
When adding a new behavioral rule:
1. **Determine placement**: Where does this layer fit in the priority/dependency order?
2. **Assign a number**: If inserting between existing layers, use a decimal (for example, `Layer 2.5`). If appending, use the next integer.
3. **Write the layer** following the Content Structure conventions above.
4. **Add a summary row**: Insert a matching row in the Summary table at the correct position.
5. **Verify ordering**: Ensure the layer order matches the dependency chain (gating layers before gated layers).
---
## What NOT to Include
| Do Not | Why |
|--------|-----|
| Tool-specific configuration syntax | That belongs in `/docs/tools/<tool-name>/` |
| Long reference tables | Keep the Summary table concise; details belong in layer content |
| More than 10 layers | If you need more, the file is too big — consider splitting or consolidating |
| Narrative prose | Make every sentence actionable or declarative |
| Personal opinions or preferences | This is a system contract, not a blog post |
---
## File Metadata
| Property | Value |
|----------|-------|
| Path | `/home/dank/.pi/AGENTS.md` |
| Format | Markdown (GitHub Flavored) |
| Max layers | 10 (soft limit) |
| Max file size | ~15 KB (soft limit — if larger, consolidate) |
| Encoding | UTF-8 |
| Line endings | Unix (LF) |
---
## Revision History
| Version | Date | Change |
|---------|------|--------|
| 1.0 | 2026-07-09 | Initial specification — defines structure, layer conventions, summary format, and add/remove procedures |