Files
local-cal/.opencode/context/core/context-system/standards/mvi.md
2026-04-07 11:31:26 -04:00

3.7 KiB

MVI Principle (Minimal Viable Information)

Purpose: Extract only core concepts, not verbose explanations

Last Updated: 2026-01-06


Core Idea

Extract the minimum information needed for an AI agent to understand and use a concept:

  • Core concept (1-3 sentences)
  • Key points (3-5 bullets)
  • Minimal working example
  • Reference link to full docs

Goal: Scannable in <30 seconds. Reference full docs, don't duplicate them.


The Formula

Core Concept (1-3 sentences)
  ↓
Key Points (3-5 bullets)
  ↓
Quick Example (5-10 lines)
  ↓
Reference Link (full docs)
  ↓
Related Files (cross-refs)

What to Extract

  • Core definitions - What it is (1-3 sentences)
  • Key properties - Essential characteristics (3-5 bullets)
  • Minimal example - Simplest working code (5-10 lines)
  • Common patterns - How it's typically used (2-3 bullets)
  • Critical gotchas - Must-know issues (1-2 bullets)
  • Reference links - Where to learn more

What to Skip

  • Verbose explanations - Link to docs instead
  • Complete API docs - Summarize + reference
  • Implementation details - Show minimal example + reference
  • Historical context - Unless critical to understanding
  • Marketing content - Just the facts
  • Duplicate information - Say it once, reference elsewhere

Example: JWT Authentication

Too Verbose (400+ lines)

# JWT Authentication

JSON Web Tokens (JWT) are an open standard (RFC 7519) that defines 
a compact and self-contained way for securely transmitting information 
between parties as a JSON object. This information can be verified and 
trusted because it is digitally signed. JWTs can be signed using a 
secret (with the HMAC algorithm) or a public/private key pair using RSA 
or ECDSA.

[... 400 more lines of explanation, examples, edge cases ...]

MVI Compliant (~50 lines)

# Concept: JWT Authentication

**Core Idea**: Stateless authentication using JSON Web Tokens signed 
with a secret key. Token contains user data (payload) that server can 
trust because signature is verified.

**Key Points**:
- Token has 3 parts: header.payload.signature (Base64 encoded)
- Server verifies signature to trust payload without database lookup
- No session storage needed (stateless)
- Tokens expire (include `exp` claim)
- Store in httpOnly cookie or Authorization header

**Quick Example**:
```js
// Sign token
const token = jwt.sign(
  { userId: 123, role: 'admin' }, 
  SECRET_KEY, 
  { expiresIn: '1h' }
)

// Verify token
const decoded = jwt.verify(token, SECRET_KEY)
console.log(decoded.userId) // 123

Reference: https://jwt.io/introduction

Related:

  • examples/jwt-auth-example.md
  • guides/implementing-jwt.md
  • errors/auth-errors.md

---

## File Size Limits

<rule id="size_limits" enforcement="strict">
  - Concept files: max 100 lines
  - Example files: max 80 lines
  - Guide files: max 150 lines
  - Lookup files: max 100 lines
  - Error files: max 150 lines
  - README files: max 100 lines
</rule>

**Why**: Forces brevity. If you need more, split into multiple files or reference external docs.

---

## Validation Checklist

Before creating a context file, verify:

- [ ] Core concept is 1-3 sentences?
- [ ] Key points are 3-5 bullets?
- [ ] Example is <10 lines of code?
- [ ] Reference link is included?
- [ ] File is <200 lines total?
- [ ] Can be scanned in <30 seconds?

If any answer is "no", apply more compression.

---

## Related

- structure.md - Where files go
- compact.md - How to minimize
- templates.md - Standard formats
- creation.md - File creation rules