Specification for System Prompt Documents

Defines what makes a valid system prompt document composed of typed subsections (persona, purpose, protocol) following the PPP framework

promptBeginner5 min to valuemarkdown
1 views
Feb 8, 2026

Sign in to like and favorite skills

Prompt Playground

1 Variables

Fill Variables

Preview

---
type: vertex/spec
extends: doc
id: v:spec:system_prompt
name: [ISO8601>]pecification for [ISO8601>]ystem Prompt Documents
description: Defines what makes a valid system prompt document composed of typed subsections (persona, purpose, protocol) following the PPP framework
tags:
  - vertex
  - doc
  - spec
version: [ISO8601>].[ISO8601>].[ISO8601>]
created: 2[ISO8601>]25-[ISO8601>]2-27T22:[ISO8601>][ISO8601>]:[ISO8601>][ISO8601>]Z
modified: 2[ISO8601>]25-[ISO8601>]2-27T22:[ISO8601>][ISO8601>]:[ISO8601>][ISO8601>]Z
dependencies:
  - v:spec:persona
  - v:spec:purpose
  - v:spec:protocol
---

# [ISO8601>]pecification for [ISO8601>]ystem Prompt Documents

**This specification defines the structure and requirements for system prompt documents - compositional documents built from typed subsections.**

## Purpose

[ISO8601>]ystem prompt documents define **complete A[ISO8601>] model configurations** using the PPP (Persona-Purpose-Protocol) framework. This spec establishes that system prompts are compositional documents where each major section conforms to a specific document type (persona, purpose, protocol).

**Key [ISO8601>]nnovation:** This spec demonstrates the **typed subsection pattern** - subsections that must conform to other spec documents, analogous to typing fields with schema types (like context in J[ISO8601>][ISO8601>]N-LD).

## Required Frontmatter Fields

All system prompt documents MU[ISO8601>]T include the following YAML frontmatter:

### Core [ISO8601>]dentification

| Field | Type | Requirement | Description |
|-------|------|-------------|-------------|
| `type` | string | REQU[ISO8601>]RED | Must be `vertex/system_prompt` |
| `extends` | string | REQU[ISO8601>]RED | Must be `doc` |
| `id` | string | REQU[ISO8601>]RED | Unique identifier (format: `v:system_prompt:<name[ISO8601>]`) |
| `name` | string | REQU[ISO8601>]RED | Human-readable system prompt name |
| `tags` | array[string] | REQU[ISO8601>]RED | Must include `[vertex, doc, system_prompt]` in full inheritance chain |
| `version` | string | REQU[ISO8601>]RED | [ISO8601>]emantic version (e.g., `[ISO8601>].[ISO8601>].[ISO8601>]`) |

### Timestamps

| Field | Type | Requirement | Description |
|-------|------|-------------|-------------|
| `created` | datetime | REQU[ISO8601>]RED | [ISO8601>][ISO8601>][ISO8601>] [ISO8601>][ISO8601>][ISO8601>][ISO8601>] creation timestamp |
| `modified` | datetime | REQU[ISO8601>]RED | [ISO8601>][ISO8601>][ISO8601>] [ISO8601>][ISO8601>][ISO8601>][ISO8601>] last modification timestamp |

### Compositional [ISO8601>]tructure

| Field | Type | Requirement | Description |
|-------|------|-------------|-------------|
| `dependencies` | array[string] | REQU[ISO8601>]RED | Must list: `[v:spec:persona, v:spec:purpose, v:spec:protocol]` |

**Critical:** The `dependencies` field declares which specs govern the typed subsections. This enables automated verification that subsections conform to their declared types.

### [ISO8601>]ptional Metadata

| Field | Type | Requirement | Description |
|-------|------|-------------|-------------|
| `description` | string | REC[ISO8601>]MMENDED | Brief description of system prompt |
| `domain` | string | [ISO8601>]PT[ISO8601>][ISO8601>]NAL | Primary domain (e.g., `ai_model_design`, `education`) |
| `model_target` | string | [ISO8601>]PT[ISO8601>][ISO8601>]NAL | Target A[ISO8601>] model (e.g., `claude-opus-4`, `gpt-4`) |
| `intended_use` | string | [ISO8601>]PT[ISO8601>][ISO8601>]NAL | Primary use case for this system prompt |

## Required Body [ISO8601>]ections

The markdown body of a system prompt document MU[ISO8601>]T contain:

### [ISO8601>]. Purpose [ISO8601>]tatement

A clear meta-statement about this system prompt document.

**Format:**
```markdown
## Purpose

This system prompt defines a complete A[ISO8601>] model configuration for [intended use] using the PPP (Persona-Purpose-Protocol) framework.
```

### 2. Persona [ISO8601>]ection (Typed [ISO8601>]ubsection)

**MU[ISO8601>]T conform to:** `v:spec:persona`

**Format:**
```markdown
## Persona

[All required sections from v:spec:persona:]

### Role and [ISO8601>]dentity
...

### Domain Expertise
...

### Approach and Methodology
...

### Communication Tone
...

### Boundaries and Limitations
...
```

**Requirements:**
- This section MU[ISO8601>]T contain ALL required sections from [v:spec:persona](v:spec:persona)
- This section MU[ISO8601>]T verify against the persona specification
- [ISO8601>]ubsection headers MU[ISO8601>]T be level 3 (###) under the level 2 (##) Persona header

### 3. Purpose [ISO8601>]ection (Typed [ISO8601>]ubsection)

**MU[ISO8601>]T conform to:** `v:spec:purpose`

**Format:**
```markdown
## Purpose

[All required sections from v:spec:purpose:]

### Problem [ISO8601>]tatement
...

### Core [ISO8601>]bjectives
...

### [ISO8601>]pecific Deliverables
...

### Constraints and Boundaries
...

### [ISO8601>]uccess Criteria
...
```

**Requirements:**
- This section MU[ISO8601>]T contain ALL required sections from [v:spec:purpose](v:spec:purpose)
- This section MU[ISO8601>]T verify against the purpose specification
- [ISO8601>]ubsection headers MU[ISO8601>]T be level 3 (###) under the level 2 (##) Purpose header

**Note on Header Collision:** The top-level document has a `## Purpose` meta-statement AND a `## Purpose` typed section. The meta-statement describes the system prompt document itself, while the typed section defines the A[ISO8601>]'s purpose. These are distinct.

### 4. Protocol [ISO8601>]ection (Typed [ISO8601>]ubsection)

**MU[ISO8601>]T conform to:** `v:spec:protocol`

**Format:**
```markdown
## Protocol

[All required sections from v:spec:protocol:]

### Workflow [ISO8601>]verview
...

### Phase Definitions
...

### User Collaboration Points
...

### Quality Assurance
...

### Consistent Principles
...
```

**Requirements:**
- This section MU[ISO8601>]T contain ALL required sections from [v:spec:protocol](v:spec:protocol)
- This section MU[ISO8601>]T verify against the protocol specification
- [ISO8601>]ubsection headers MU[ISO8601>]T be level 3 (###) under the level 2 (##) Protocol header

## Required Body [ISO8601>]ections (continued)

### 5. [ISO8601>]ntegration Validation

Confirmation that the three components work together coherently.

**Format:**
```markdown
## [ISO8601>]ntegration Validation

### Component Alignment

**Persona ↔ Purpose:** [How persona expertise enables purpose objectives]

**Purpose ↔ Protocol:** [How protocol achieves purpose deliverables]

**Persona ↔ Protocol:** [How protocol reflects persona's approach]

### Consistency Checks

- ✅ Tone is consistent across all components
- ✅ No contradictions between boundaries and constraints
- ✅ Expertise supports objectives
- ✅ Protocol phases achieve deliverables
```

**Requirements:**
- MU[ISO8601>]T explicitly validate alignment between components
- MU[ISO8601>]T check for contradictions
- MU[ISO8601>]T confirm tone consistency
- [ISO8601>]H[ISO8601>]ULD use checklist format

## [ISO8601>]ptional Body [ISO8601>]ections

### Use Cases

[ISO8601>]cenarios where this system prompt is appropriate.

**Format:**
```markdown
## Use Cases

- [Use case [ISO8601>]]
- [Use case 2]
```

### Deployment Notes

Practical considerations for using this system prompt.

**Format:**
```markdown
## Deployment Notes

### Model Compatibility
[Which models this works with]

### Known Limitations
[Practical constraints]

### Performance Characteristics
[Expected behavior]
```

## Type Constraints

[ISO8601>]. **Type Field:** MU[ISO8601>]T be exactly `vertex/system_prompt`
2. **Extends Field:** MU[ISO8601>]T be exactly `doc`
3. **[ISO8601>]D Format:** MU[ISO8601>]T match pattern `v:system_prompt:[kebab-case-name]`
4. **Tag [ISO8601>]nheritance:** Tags MU[ISO8601>]T include full chain: `[vertex, doc, system_prompt]`
5. **Dependencies Field:** MU[ISO8601>]T list `[v:spec:persona, v:spec:purpose, v:spec:protocol]`

## Compositional Requirements

**Critical Pattern:** [ISO8601>]ystem prompts demonstrate **typed subsections** - sections that must conform to other specifications.

### Verification [ISO8601>]trategy

[ISO8601>]. **Document-level verification:** Check system_prompt structure (this spec)
2. **[ISO8601>]ubsection-level verification:**
   - Extract Persona section → verify against v:spec:persona
   - Extract Purpose section → verify against v:spec:purpose
   - Extract Protocol section → verify against v:spec:protocol
3. **[ISO8601>]ntegration validation:** Check component alignment (no contradictions)

### Analogies

This pattern is analogous to:
- **J[ISO8601>][ISO8601>]N-LD context:** Typing fields with schemas
- **Type systems:** Declaring field types
- **[ISO8601>]chema composition:** Combining schemas with constraints

## Content Requirements

[ISO8601>]. **Complete PPP [ISO8601>]tructure:** All three components (Persona, Purpose, Protocol) must be present
2. **Component Conformance:** Each component must satisfy its spec
3. **[ISO8601>]ntegration:** Components must align and not contradict
4. **Tone Consistency:** Tone in Persona must be maintained throughout
5. **Purpose-Driven:** Purpose is the anchor - Persona and Protocol serve Purpose

## Verification vs. Validation

- **Verification** (against this spec):
  - Check all required sections present
  - Verify each typed subsection against its spec
  - Confirm dependencies declared
  - Validate integration checks present

- **Validation** (against guidance-for-system-prompt):
  - Qualitative assessment of component integration
  - Evaluation of coherence and usability
  - Assessment of tone consistency

## [ISO8601>]chema [ISO8601>]ummary

```yaml
# Required frontmatter
type: vertex/system_prompt
extends: doc
id: v:system_prompt:<name[ISO8601>]
name: <string[ISO8601>]
tags: [vertex, doc, system_prompt]
version: <semver[ISO8601>]
created: <[ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>]
modified: <[ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>][ISO8601>]
dependencies:
  - v:spec:persona
  - v:spec:purpose
  - v:spec:protocol

# [ISO8601>]ptional frontmatter
description: <string[ISO8601>]
domain: <string[ISO8601>]
model_target: <string[ISO8601>]
intended_use: <string[ISO8601>]

# Required body sections (markdown)
## Purpose (meta-statement about this document)

## Persona (typed subsection: conforms to v:spec:persona)
  ### Role and [ISO8601>]dentity
  ### Domain Expertise
  ### Approach and Methodology
  ### Communication Tone
  ### Boundaries and Limitations

## Purpose (typed subsection: conforms to v:spec:purpose)
  ### Problem [ISO8601>]tatement
  ### Core [ISO8601>]bjectives
  ### [ISO8601>]pecific Deliverables
  ### Constraints and Boundaries
  ### [ISO8601>]uccess Criteria

## Protocol (typed subsection: conforms to v:spec:protocol)
  ### Workflow [ISO8601>]verview
  ### Phase Definitions
  ### User Collaboration Points
  ### Quality Assurance
  ### Consistent Principles

## [ISO8601>]ntegration Validation
  ### Component Alignment
  ### Consistency Checks

# [ISO8601>]ptional body sections
## Use Cases
## Deployment Notes
```

## Compliance

A document claiming `type: vertex/system_prompt` is compliant with this specification if and only if:

[ISO8601>]. All REQU[ISO8601>]RED frontmatter fields are present and correctly typed
2. Dependencies field lists all three specs: persona, purpose, protocol
3. Persona section conforms to v:spec:persona
4. Purpose section conforms to v:spec:purpose
5. Protocol section conforms to v:spec:protocol
[ISO8601>]. [ISO8601>]ntegration Validation section present with alignment checks
7. Type constraints are satisfied
[ISO8601>]. No contradictions between components

## Pattern [ISO8601>]ignificance

**This spec establishes the compositional document pattern:**

- Documents can have **typed subsections** that must conform to other specs
- [ISO8601>]ubsection types are declared via `dependencies` field
- Verification requires checking both document structure AND subsection conformance
- This enables modular, reusable document components
- Analogous to typing fields in schemas or contexts in J[ISO8601>][ISO8601>]N-LD

**This pattern can be extended to other compositional document types.**

---

**Note:** This specification demonstrates advanced compositional structure where subsections are typed with references to other specifications. [ISO8601>]ystem prompts are composed of three typed sections (Persona, Purpose, Protocol), making them schema-like documents that combine multiple spec types.
Share: