Skip to content

Release Notes - v0.7.0

Release Date: 2026-02-02

Overview

This release adds comprehensive PRD schema enhancements for platform and infrastructure PRDs with microservices architectures. Seven new schema features support services inventory, API specifications, storage architecture, GitOps configuration, workflow orchestration, explicit scope documentation, and related document linking.

New Features

PRD Schema Enhancements

1. Services Inventory

Define microservices with architectural layers, protocols, and language choices:

{
  "technicalArchitecture": {
    "services": [
      {
        "id": "svc-identity",
        "name": "identity-tenant-service",
        "description": "Manages tenants, users, and roles",
        "responsibilities": ["User authentication", "Tenant management"],
        "language": "Go",
        "languageRationale": "High concurrency, IAM integration",
        "layer": "control-plane",
        "protocol": "REST",
        "owner": "Platform Team",
        "dependencies": ["svc-database"]
      }
    ]
  }
}

Service layers: control-plane, execution-plane, data-plane, gateway

Protocols: REST, gRPC, GraphQL, WebSocket

2. API Specifications

Define APIs with endpoints, authentication, and spec references:

{
  "technicalArchitecture": {
    "apis": [
      {
        "name": "Identity API",
        "protocol": "REST",
        "basePath": "/v1",
        "version": "1.0.0",
        "endpoints": [
          {
            "method": "GET",
            "path": "/tenants",
            "description": "List all tenants",
            "auth": "Bearer token"
          },
          {
            "method": "POST",
            "path": "/tenants",
            "description": "Create a new tenant",
            "auth": "Bearer token + admin role"
          }
        ],
        "openApiSpec": "https://api.example.com/openapi.yaml"
      }
    ]
  }
}

3. Storage Architecture

Define storage by category with technology choices and policies:

{
  "technicalArchitecture": {
    "storageArchitecture": [
      {
        "category": "metadata",
        "purpose": "Control-plane state and configuration",
        "technology": "DynamoDB",
        "encryption": "AES-256",
        "retention": "Indefinite",
        "perTenant": true
      },
      {
        "category": "artifacts",
        "purpose": "ML models and deployment packages",
        "technology": "S3",
        "encryption": "SSE-S3"
      }
    ]
  }
}

Storage categories: metadata, artifacts, state, cache, observability, audit, secrets

4. GitOps Configuration

Define GitOps workflows and sources of truth:

{
  "technicalArchitecture": {
    "gitOps": {
      "enabled": true,
      "provider": "ArgoCD",
      "workflow": "Pull-based with automatic sync",
      "sourcesOfTruth": [
        {
          "artifact": "Infrastructure definitions",
          "location": "git",
          "gitOpsEnabled": true,
          "rationale": "Version-controlled IaC"
        },
        {
          "artifact": "Secrets",
          "location": "secrets-manager",
          "gitOpsEnabled": false,
          "rationale": "Security best practice"
        }
      ]
    }
  }
}

Locations: git, s3, database, secrets-manager, registry

5. Workflow Orchestration

Define orchestration engines for different workflow types:

{
  "technicalArchitecture": {
    "orchestration": {
      "description": "Dual-engine approach for different workflow patterns",
      "shortLived": {
        "name": "AWS Step Functions",
        "language": "ASL (Amazon States Language)",
        "rationale": "Serverless, pay-per-execution",
        "useCases": ["API orchestration", "Data pipelines"]
      },
      "longRunning": {
        "name": "Temporal",
        "language": "Go SDK",
        "rationale": "Durable execution, complex workflows",
        "useCases": ["Multi-day approvals", "Saga patterns"]
      }
    }
  }
}

6. In-Scope Field

Explicitly document what is in scope (complements outOfScope):

{
  "inScope": [
    "Multi-tenant AI execution platform",
    "Policy enforcement and guardrails",
    "Observability and cost tracking",
    "Self-service tenant onboarding"
  ],
  "outOfScope": [
    "ML model training infrastructure",
    "End-user facing applications"
  ]
}

Link related PRDs, TRDs, design docs, and RFCs:

{
  "relatedDocuments": [
    {
      "id": "prd-mlops",
      "title": "MLOps Platform PRD",
      "type": "prd",
      "relationship": "child",
      "path": "./mlops.prd.json",
      "description": "Child PRD for MLOps subsystem"
    },
    {
      "id": "trd-security",
      "title": "Security Architecture TRD",
      "type": "trd",
      "relationship": "implements",
      "url": "https://docs.example.com/trd-security"
    }
  ]
}

Document types: prd, trd, mrd, design-doc, rfc

Relationships: child, parent, sibling, implements, supersedes, related

Markdown Rendering

All new fields are rendered in markdown output:

  • Services: Summary table + detailed sections with responsibilities
  • APIs: Protocol info, endpoints table, spec links
  • Storage Architecture: Category/purpose/technology table
  • GitOps: Provider, workflow, sources of truth table
  • Orchestration: Engine details for short-lived and long-running
  • In Scope: Bullet list
  • Related Documents: Linked table with relationship types

Completeness Scoring

New optional sections contribute to the PRD completeness score:

Section Points
In Scope 5
Related Documents 5
Services (in Tech Architecture) +1
APIs (in Tech Architecture) +1
Storage Architecture +0.5
GitOps +0.5
Orchestration +0.5

Pandoc PDF Compatibility

Added UseTextIcons option to generate PDF-compatible markdown with ASCII status icons instead of emoji.

CLI usage:

splan req prd generate myproduct.prd.json --text-icons

Go API usage:

opts := prd.DefaultMarkdownOptions()
opts.UseTextIcons = true  // Uses [DONE], [WIP], [TODO] instead of emoji
markdown := doc.ToMarkdown(opts)

Text icon mappings:

Emoji Text Icon
[DONE]
🔄 [WIP]
[TODO]
🚫 [BLOCKED]
[MISSED]

This avoids LaTeX errors like Unicode character ✅ (U+2705) not set up for use with LaTeX.

Release Notes Reorganization

Release notes moved from root to docs/releases/:

  • RELEASE_NOTES_v0.1.0.mddocs/releases/v0.1.0.md
  • RELEASE_NOTES_v0.2.0.mddocs/releases/v0.2.0.md
  • ... and so on

Installation

Homebrew (macOS/Linux)

brew upgrade grokify/tap/splan

Go Install

go install github.com/grokify/structured-plan/cmd/splan@v0.7.0

Go Module

go get github.com/grokify/structured-plan@v0.7.0

Full Changelog

See CHANGELOG.md for complete details.