Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.

Unreleased

v0.9.0 - 2026-10-22

Highlights

  • Embeddable viewer: @grokify/pidl-viewer shows any walkthrough from a CDN with one script tag, by inline JSON, a URL or ?src=, isolated from the page's styles
  • Walkthrough format: pidl-walkthrough/v1 is the documented, versioned form viewers read, with a JSON Schema generated from the Go types and TypeScript types generated from the schema
  • Code samples and cURL: the viewer shows each request as HTTP, a generated curl command or SDK code from tested source regions; sample sets let each implementation keep its samples beside its own code, so a protocol document names none
  • Postman collections: pidl generate -f postman writes a runnable collection with values chained between requests, checks on every response, signed requests sent through a signing proxy, and environments per target
  • A worked OAuth 2.0 example, oauth2_api_access, exercises every walkthrough feature with messages drawn from the RFCs

Added

  • Scenario groups, variants and step IDs: groups order sections, variants follow their base, and flows carry IDs addressed as . inside fragments, for deep links (a7f4e88)
  • Narration keyed by BCP 47 language with the protocol's source language as fallback, scenario briefings, narration overrides per representation, and pronunciations merged through extends and imports (0f4e1b7)
  • A curl command for every example request, with a defined wire form for example bodies; signed requests note that their signature headers are replayed (617097f)
  • Code samples on flow examples and scenarios: inline code or a region between pidl:begin and pidl:end markers in a repository file; pidl samples resolve writes a lock file and pidl samples check fails on drift (006dde7)
  • A step with no HTTP message, such as a person approving in a browser, can carry code samples alone (31c998e)
  • Built-in examples apply their sample lock when loaded, so generating from an example name includes its code (2d95f06)
  • Sample sets (pidl-samples/v1): code samples an implementation keeps apart from the protocol document, each attached to a step by its address, resolved into the set itself and joined with Protocol.WithSampleSet (7570e74)
  • pidl samples resolve and check accept a sample set; --repo-dir reads every source from one checkout and --protocol checks every step address; generate --samples can be repeated and takes a lock or a sample set (3d76c54)
  • schema/samples.schema.json generated from pidl.SampleSet and embedded as schema.SampleSetSchemaJSON (316cde9)
  • Viewer tabs for HTTP, cURL and each sample language, remembered across steps, with highlighting and a copy button (a35c1f0)
  • postman and postman-environment output formats: a folder per scenario, chained values, checks against each example, polling for deferred responses, mock mode and environments per target (26a45c8)
  • --signer proxy sends requests with HTTP message signatures through a signing proxy: Signature, Signature-Input and Content-Digest are left for the proxy, and Signature-Key names only the scheme and, for jwt, the chained token to present; unsigned requests are sent directly (7b65b99)
  • Postman chaining captures string parameters of response headers: parameters of structured fields, and auth-params of challenges such as the scope of a WWW-Authenticate Bearer challenge (181e751)
  • ResolveOptions.FS resolves the documents that extends and imports name from an fs.FS; built-in examples that extend others are resolved when loaded (a76ac1a)
  • Walkthroughs carry "format": "pidl-walkthrough/v1"; the viewer reads any v1 walkthrough and refuses another major version (ebc8393)
  • schema/walkthrough.schema.json generated from pidl.Walkthrough in a nested module, embedded as schema.WalkthroughSchemaJSON, with the example kinds as an enum (2ca8fe5)
  • Viewer TypeScript types generated from the walkthrough schema (7011a0b)
  • The viewer loads a walkthrough from inline data, a URL or ?src=, accepting https: or same-origin URLs and fetching without credentials (a5db2f3)
  • PidlViewer.mount and an embeddable build (IIFE and ES module) that renders into a shadow root, so several viewers can share a page (9514ac4)
  • Auto-mount from a script tag's data-pidl-target, data-pidl-data and data-pidl-src attributes, with errors shown in the target (a733212)
  • The @grokify/pidl-viewer npm package with type declarations, the walkthrough schema and jsDelivr and unpkg entry points (5e97077)
  • oauth2_api_access example: the authorization code grant with PKCE, client credentials, a scope challenge, an asynchronous export and a signed request, with shared fragments, decoded JWT access tokens, step IDs, narration, a briefing and pronunciations (f3f6652)

Removed

  • The aauth_protocol and aauth_petstore examples and the AAuth example's Go sample lock; pidl's built-in examples describe no single protocol in depth and carry no implementation's code (4fda029)

Fixed

  • Sample source paths are checked the same way on every platform, which fixes the Windows test failure; they are validated with oscompat's ValidateSlashPath instead of filepath.IsAbs (d583370)

Dependencies

  • 1 dependency update

Documentation

  • Guides for code samples and cURL (with sample sets), narration, Postman collections (with signing proxies) and embedding the viewer; the walkthrough format reference; the viewer guide covers the cURL and code tabs and step-ID links; the guides and references use the worked OAuth 2.0 example
  • The CLI reference lists the samples, roles, components and trust commands, the Postman formats and the new generate and samples options; the README lists the new features
  • The specification describes sample sets (35dc4cb)
  • Links to files outside the documentation site are fixed, so the site builds in strict mode (eddacb3)

Infrastructure

  • CI tests and lints the walkthrough schema generator and checks the schema is current (06944db)
  • CI checks the generated viewer types are current and builds the embeddable viewer (dee31fb)
  • A release tag publishes @grokify/pidl-viewer to npm with provenance through trusted publishing (c7274f3)

v0.8.0 - 2026-10-19

Highlights

  • Walkthrough viewer: pidl generate -f viewer writes one self-contained HTML page that steps through each scenario, highlighting the active roles and message, with the scenario's introduction, each step's narrative, and presentation controls
  • Flow examples: a step can carry an illustrative HTTP request, response and decoded tokens with a cited source, shown in the viewer with signed headers marked and checked claims highlighted
  • The AAuth draft-11 example is fully worked: every step of the five access modes and their shared steps has a narrative and an example, with one consistent set of keys, tokens and timestamps

Added

  • Flow example field with source, draft or derived kind, request, response, decoded tokens and note, plus validation and JSON Schema (063bba5)
  • JSON Schema definitions for flow examples (482e9e2)
  • Protocol.Walkthrough: scenarios with fragments expanded, each step's example, security references and written location, and findings attached by location (9df7563)
  • walkthrough-json output format with analyzer findings attached (SEC016 left out by default) (da956e3)
  • viewer output format: a self-contained HTML walkthrough viewer embedded in the binary, with a CI check that the embedded build is current (d9399f3)
  • Walkthrough viewer app in viewer/ (Vite, React, TypeScript): sequence diagram with fragment bands, stepping by keys, buttons and URL hash, request, response and token panels, 16:9 presentation stage, and light and dark themes (40e631e)
  • AAuth examples for every step of the five access modes and the agent token, person token and consent fragments, including the web app agent bootstrap (3b294fa)
  • Scenario introductions and step narratives for the AAuth example (6380348)

Fixed

  • For documents with scenarios, analyzer flow rules reported locations as indexes into the flattened protocol; they now report the written scenario flow (9df7563)

Documentation

  • Walkthrough Viewer guide, Flow Examples section in the specification, and the walkthrough-json and viewer formats in the CLI reference and README (684540b)

v0.7.0 - 2026-10-19

Highlights

  • Scenarios: one PIDL file holds a protocol's roles and an ordered list of journeys, with shared fragments drawn as labeled boxes in every sequence format
  • Consistent ordering: roles, scenarios and steps follow the file's order in every diagram, table and outline, so decks and guides built from one file agree
  • Overview outputs: roles-by-scenario matrix, token table, and an ordered outline (Markdown and JSON) for guides and slide decks
  • Token verification fields and analyzer rules that follow each token through a scenario, demonstrated on a new AAuth draft-11 example
  • D2 sequence diagrams now render as sequence diagrams: messages are edges, responses are dashed in the flow direction, and labels are quoted so punctuation cannot break compilation
  • Unit test coverage raised from 73.5% to 89.5%: the CLI is now driven through a testable run() function, every SVG format has golden-file tests, and most library packages sit between 89% and 96%

Added

  • Scenario type, include steps and fragments, with ordering helpers (HasScenarios, ScenarioByID, ScenarioIDs, EntityIndex, OrderEntities) (0eed0b9)
  • Scenario validation: unique IDs, participants in entity order and covering used entities, include targets that are fragments, no include cycles, and scenario paths in error messages (88cef72)
  • Protocol.Scenario(id, ProjectOptions) projects one scenario into a single-flow protocol, with fragments collapsed or expanded (b7c9902)
  • JSON Schema support for scenarios and include steps (8e6e63d)
  • --scenario on generate, simulate, debug and analyze, and Protocol.Flatten (46ca05e)
  • PlantUML, Mermaid, D2 and SVG draw include steps as labeled boxes across the fragment's participants; --expand inlines them (851dbb7)
  • generate --all-scenarios -o <dir> writes NN-<id><ext> per scenario in file order; --include-fragments adds fragments (3ba2c56)
  • pidl scenarios lists scenarios in output order as a table or JSON (fae3af7)
  • scenario-matrix format: roles by scenario, marking direct and fragment-only participation (7e39963)
  • Token verified_by and claims, and flow security signed_by, issues and verifies (c9fedb5)
  • token-table format: issuer, audience, binding, checkers, claims, and the scenarios that issue and verify each token (f888015)
  • outline and outline-json formats and Protocol.Outline for guides and slide decks (3784338)
  • Analyzer rules SEC017 to SEC021: unused role, token checked before issued, signer differs from sender or token holder, verifier mismatch, unused fragment (d2af3c2)
  • extends and imports merge scenarios; exclude_scenarios and an import scenarios selector (5427595)
  • pidl diff compares scenarios by ID and reports order changes and include changes (e8e6896)
  • AAuth draft-11 example (aauth_protocol) with the five access modes as scenarios (88acd69)

Changed

  • D2 annotations render as D2 notes on the receiving actor instead of self-messages (b139797)
  • D2 events render dotted; responses and tool results dashed (b139797)
  • D2 sequence container no longer shows a visible sequence label (b139797)
  • CLI entry point extracted to run(args, stdout, stderr) int; subcommands return exit codes and a flag parse error exits 2 (560d07b)
  • Network boundary diagrams list entities in entities order instead of alphabetically; sort the entities array to keep the previous layout (3b2309a)
  • Flow.sequence is deprecated: it is a display-only step number and never affects order (8012335)

Fixed

  • D2 sequence renderer emitted messages as seqN:-keyed shapes, which D2 drew as notes and phase groups as extra actors (b139797)
  • D2 responses were written as from <- to, pointing the arrow at the sender (b139797)
  • D2 conditions were prefixed as [cond] in unquoted labels, which D2 parses as an array and refuses to compile (b139797)
  • All D2 labels, actor names, group names and tooltips in sequence, flow and arch styles are now double-quoted (b139797)
  • CLI version reported 0.4.0 since v0.5.0; it now reports the current release (9355423)
  • Network SVG connection order and trust SVG node placement varied between runs; both now follow first-appearance order (175d171)
  • CLI components and trust crashed on protocols without a metadata block (560d07b)
  • Debug REPL lost arguments of multi-word commands and looped forever on EOF (560d07b)
  • CLI init, roles, components and trust silently discarded JSON errors (560d07b)
  • Process data lineage linked a flow label naming one output port to every input on the target, so inputs with no producer looked internally supplied; a label now links at most one output to one input (5d8456c)
  • Windows checkouts converted text files to CRLF, so binaries built there embedded CRLF in the SVG template CSS and the SVG golden tests failed; text files now check out with LF everywhere (e8ff19c)
  • An entity listed in two networks, or a boundary missing from network_layout.order, was placed by Go map iteration order (d6abc70)
  • pidl diff listed entity and phase changes in map iteration order (e8e6896)

Documentation

  • Specification sections for ordering and scenarios, a Scenarios guide, and CLI reference updates (eaf2617)

Tests

  • Compile every built-in example and an awkward-label fixture in all three D2 styles with the d2 CLI when installed (6d29a8e)
  • Assert D2 sequence output has no keyed messages or reversed arrows (6d29a8e)
  • Golden-file tests for svg, svg-animated, svg-network, svg-component, svg-trust and infographic output across templates, themes, boundaries and animation presets (fa63d4b)
  • Table-driven CLI tests covering every subcommand through run(), including a scripted debug REPL (a71e457)
  • Table-driven tests for Entity and FlowAnimation accessors, executors, analyzer rules and the Step Functions exporter (b316228)

v0.6.0 - 2026-09-13

Highlights

  • Flow verification provenance: record a verification tier, source, and citation per flow
  • Verification tiers matching aisecurity-incidents deepdive.json (reported/corroborated/reproduced/partially_reproduced)
  • Renderer provenance badges (d2 + mermaid) and an analyzer rule flagging flows below the corroborated tier

Added

  • Flow.Verification: FlowVerification { tier, source, citation }, VerificationTier enum, and Flow.HasVerification helper; additive backward-compatible schema (9371e82)
  • d2 and mermaid per-flow verification provenance badges, gated by SequenceRenderOptions.ShowVerification (0f0c3d1)
  • Security-analysis rule flagging flows below the corroborated verification tier (f6a06ae)
  • Comprehensive AIDLC workflow process-specification example (7699959)

Fixed

  • Resolve golangci-lint errors (61699c4)

Documentation

  • Document Flow.Verification in the Flows guide and the Specification
  • Add v0.6.0 release notes and update the releases index

Tests

  • Flow.Verification round-trip test (9371e82)
  • Renderer verification-badge test (0f0c3d1)

v0.5.0 - 2026-07-12

Highlights

  • Process specifications for modeling workflows with step types and data ports
  • Data lineage tracking for tracing data flow through process steps
  • Parallel execution modeling with fork/join, race, and scatter/gather patterns
  • Cost and latency budget tracking with SLI analysis
  • Workflow engine exports for Temporal, Prefect, BPMN, and AWS Step Functions
  • JSON Schema validation for data ports with registry support
  • Infographic renderer with size presets and themes for social media
  • MkDocs plugin, GitHub Action, and VS Code extension integrations

Added

  • Data lineage tracking with AnalyzeDataLineage(), GetUpstream/Downstream, impact analysis (86f4334)
  • LineageEdge, DataLineage, PortReference types for data flow modeling (86f4334)
  • Sensitive data path tracking for security analysis (86f4334)
  • DataPortMapping for explicit flow data mappings (86f4334)
  • Parallel execution modeling with ExecutionGraph and stages (a132c7a)
  • ParallelConfig, ParallelBranch, JoinCondition types (a132c7a)
  • Fork/join, race, scatter/gather parallel modes (a132c7a)
  • Critical path calculation and duration estimation (a132c7a)
  • CanExecuteInParallel() and GetMaxParallelism() helpers (a132c7a)
  • Cost tracking with CostModel and CostEstimate types (e7b9d0a)
  • AnalyzeProcessCosts() for per-step and total cost estimation (e7b9d0a)
  • CalculateExecutionCost() for actual execution cost calculation (e7b9d0a)
  • LLMCostPresets for GPT-4 and Claude-3 model pricing (e7b9d0a)
  • Token-based, time-based, API call, and hybrid cost models (e7b9d0a)
  • Latency budget support with LatencyBudget, LatencyEstimate types
  • AnalyzeProcessLatency() for timing SLI analysis
  • P50/P95/P99 latency percentile tracking and budget violations
  • Critical path latency analysis with parallel savings calculation
  • StepTypeLatencyDefaults for per-step-type latency estimates
  • JSON Schema validation with SchemaRegistry and ValidateData()
  • PortSchemaValidator for data port schema validation
  • ValidateEntityInputs() and ValidateEntityOutputs() methods
  • Temporal workflow exporter (Go code generation) (a86aa56)
  • Prefect flow exporter (Python async/sync code generation) (a86aa56)
  • BPMN 2.0 exporter (XML interchange format) (a86aa56)
  • AWS Step Functions exporter (Amazon States Language JSON) (40258ce)
  • Step-type-aware templates for workflow exporters (41177a4)
  • SAML, WebAuthn, FIDO2, OIDC protocol identifiers (fd10705)
  • X.509 certificate, attestation certificate, bearer token credential types (fd10705)
  • SAML 2.0 Web Browser SSO example (cfc151f)
  • WebAuthn/FIDO2 registration example (cfc151f)
  • SCIM user provisioning example (cfc151f)
  • MkDocs plugin for PIDL diagram rendering (f694a0a)
  • GitHub Action for CI/CD PIDL validation (b2b3508)
  • VS Code extension with syntax highlighting and preview (6c30573)
  • Corporate and accessible (colorblind-friendly) infographic themes (ae67b17)

Documentation

  • v0.5.0 release notes with comprehensive feature documentation (097741c)
  • Workflow exports guide with Temporal, Prefect, BPMN, Step Functions examples
  • Developer extension guide for custom renderers, validation rules, exporters
  • Process spec documentation in SPECIFICATION.md and guides (3403511)
  • Infographic examples with CLI usage and theme documentation (078d967)
  • SAML, WebAuthn, SCIM protocol examples (cfc151f)
  • Process spec PRD and TRD design documents (339cb47)

Tests

  • Data lineage tests for port tracking and impact analysis (86f4334)
  • Parallel execution tests for graph analysis and parallelism detection (a132c7a)
  • Cost tracking tests for all cost model types (e7b9d0a)
  • Latency budget tests for SLI analysis and budget violations
  • JSON Schema validation tests for type checking and port validation
  • Workflow export tests for Temporal, Prefect, BPMN, and Step Functions (40258ce)
  • MkDocs plugin tests for attribute parsing and rendering (f694a0a)
  • Component and trust renderer tests for all output formats (0a1df47)

v0.4.0 - 2026-06-28

Highlights

  • Protocol composition with imports and inheritance for modular protocol design
  • Runtime execution engine with state tracking and execution traces
  • Protocol comparison (diff) for detecting changes between protocols
  • Interactive step-through debugger with breakpoints and state inspection
  • Security analysis with 10 built-in attack surface detection rules

Added

  • Protocol roles, deployment components, and trust relationship types (f75f00b)
  • Schema and validation for protocol roles, components, trust relations (d96b81f)
  • SVG component diagram renderer (046206b)
  • SVG trust relationship diagram renderer (087d0f3)
  • Markdown protocol role matrix renderer (4e87b4e)
  • Mermaid component and trust diagram renderers (3ac8b80)
  • CLI roles, components, and trust list commands (c2aacc2)
  • CLI support for component and trust diagram formats (14d3ff8)
  • ProtocolImport and ProtocolExtends types for composition (69aa941)
  • Protocol resolver with circular import/extends detection (7339d66)
  • Standard library protocols: oauth_entities.json, mcp_entities.json (669a273)
  • CLI resolve command for debugging composition (87d33d1)
  • Protocol execution engine (Executor) with state tracking (e80e979)
  • ExecutionContext, ExecutionTrace, and ExecutionStep types (e80e979)
  • CLI simulate command with verbose and JSON output (f6c8d38)
  • Protocol comparison with DiffItem, ProtocolDiff types (53ab027)
  • CLI diff command with text, JSON, markdown output (47c2fd4)
  • Execution trace visualization renderer (text, SVG, Mermaid) (f6acc27)
  • Interactive protocol debugger (DebugSession) with breakpoints (5745fdf)
  • CLI debug command for step-through execution (47c2fd4)
  • Security analysis package with 10 built-in rules (SEC001-SEC010) (0341d5b)
  • CLI analyze command with severity filtering and CI fail-on (47c2fd4)
  • High-contrast SVG theme for accessibility (WCAG AA) (dd316a3)
  • Mermaid state diagram rendering (643e971)
  • OAuth2 examples with security and state features (898c711)
  • OAIAF architecture example with roles, components, trust (d3abf6e)

Documentation

  • Phase 12 features documentation in README and MkDocs (394ca1e)
  • CLI reference for new commands (simulate, diff, debug, analyze) (394ca1e)
  • Go library examples for comparison, simulation, debugging, analysis (394ca1e)
  • Protocol architecture tables for nodes and edges (619ef59)
  • Roadmap updates for Phases 8-12 completion (11222f2)

Tests

  • Execution engine tests for state tracking and trace recording (6a78105)
  • Protocol comparison tests for entities, flows, phases (53ab027)
  • Interactive debugger tests for breakpoints and stepping (5745fdf)
  • Security analysis tests for all 10 rules (0341d5b)

v0.3.0 - 2025-05-18

Highlights

  • Native SVG rendering with static sequence diagrams, animated flow visualizations, and network boundary diagrams
  • CSS animation support with per-message control and semantic presets (request, success, error, warning, highlight)
  • Template system with 5 built-in styles: default, minimal, sketch, blueprint, dark
  • Network boundary diagrams for visualizing trust zones and security boundaries

Added

  • SVG sequence diagram renderer with light/dark theme support (1b0ef7f)
  • SVG animated renderer with CSS offset-path flow dots (1b0ef7f)
  • Per-message animation control via flow.animation field (2ee5da6)
  • Semantic animation presets: request, success, error, warning, highlight, none (2ee5da6)
  • Global animation configuration via metadata.animation (2ee5da6)
  • Stagger modes for animation sequencing: sequential, overlap, parallel, phase (2ee5da6)
  • SVG template system with embedded template resources (18b9ad8)
  • Built-in templates: default, minimal, sketch, blueprint, dark (18b9ad8)
  • Custom template loading from directory via --template-dir (1742ea1)
  • Template configuration with layout, fonts, colors, and animation settings (18b9ad8)
  • Network boundary diagram renderer (svg-network format) (a145005)
  • Boundary inference from entity.metadata.network field (a145005)
  • Explicit boundary configuration via metadata.networks (a145005)
  • Boundary styles: trusted, dmz, external, cloud (a145005)
  • Horizontal and vertical layout directions for network diagrams (a145005)
  • Cross-boundary connection visualization (a145005)
  • CLI --template flag for selecting SVG templates (1742ea1)
  • CLI --template-dir flag for custom template directories (1742ea1)
  • CLI --theme flag for SVG theme selection (light, dark, auto) (1742ea1)
  • CLI --boundary flag for network boundary overrides (a59ebac)
  • EntityMetadata type with Network and ServiceType fields (a145005)
  • ProtocolMetadata type with Networks and NetworkLayout configuration (a145005)
  • FlowAnimation type for per-flow animation control (2ee5da6)
  • AnimationPreset type for semantic animation presets (2ee5da6)

Documentation

  • SVG renderer design document with animation and template specifications (e83e59d)
  • Release notes reorganization into docs/releases/ (b30a961)

Tests

  • SVG renderer tests for static and animated output (4b06b55)
  • Per-message animation tests with preset validation (4e03ce3)
  • Template system tests for loading and CSS generation (b0aebe6)
  • Network boundary diagram tests with layout verification (abd8e39)

v0.2.0 - 2025-04-18

Highlights

  • Add annotations, alternatives, conditions, notes, and nested phases to PIDL
  • Enhanced renderers with support for alt/else blocks, opt conditionals, and nested phase visualization
  • New D2 diagram format with sequence, flow, and architecture rendering styles
  • Comprehensive validation for phase hierarchies and new flow features

Added

  • D2 diagram renderer with sequence, flow, and architecture styles (a5f8f35)
  • AnnotationType enum: security, performance, deprecated, info, warning, error (843c18d)
  • Annotation type with Type, Text, and Details fields (843c18d)
  • Alternative type for alternative/error flow paths (843c18d)
  • Phase.Parent field for nested phase hierarchies (843c18d)
  • Flow.Condition field for conditional flows (when clause) (843c18d)
  • Flow.Note field for visible diagram notes (843c18d)
  • Flow.Annotations field for typed annotations (843c18d)
  • Flow.Alternatives field for alternative paths (843c18d)
  • Protocol.RootPhases(), ChildPhases(), PhaseDepth() helper methods (843c18d)
  • Flow.HasCondition(), HasNote(), HasAnnotations(), HasAlternatives() helper methods (843c18d)
  • IsValidAnnotationType() validation function (843c18d)
  • JSON Schema definitions for annotation and alternative types (fffad47)
  • Phase parent reference validation with cycle detection (37afe81)
  • Annotation type and text validation (37afe81)
  • Alternative condition and flows validation (37afe81)
  • Mermaid opt blocks for conditional flows (ab82c3b)
  • Mermaid alt/else blocks for alternatives (ab82c3b)
  • Mermaid note right of for flow notes and annotations (ab82c3b)
  • Mermaid colored rect blocks for nested phases (ab82c3b)
  • PlantUML opt/alt/else blocks for conditionals and alternatives (ab82c3b)
  • PlantUML colored box containers for nested phases (ab82c3b)
  • D2 condition label prefixes and grouped alternatives (ab82c3b)
  • D2 nested phase groups with hierarchy support (ab82c3b)
  • DOT condition edge labels and alternative edges (ab82c3b)

Tests

  • Tests for nested phases, phase parent validation, circular hierarchy detection (d9dd392)
  • Tests for annotation types and text validation (d9dd392)
  • Tests for alternative flows, conditions, and entity references (d9dd392)
  • Tests for flow helper methods (HasCondition, HasNote, etc.) (d9dd392)
  • Tests for phase hierarchy helpers (RootPhases, ChildPhases, PhaseDepth) (d9dd392)

v0.1.0 - 2025-04-18

Highlights

  • Protocol Interaction Description Language - a JSON-based DSL for describing protocol choreography that compiles to diagrams
  • Support for OAuth 2.0, PKCE, OIDC, MCP, and A2A protocol examples
  • Three diagram output formats: PlantUML, Mermaid, and Graphviz DOT

Added

  • Core PIDL library with Protocol, Entity, Flow, and Phase types (6555cbb)
  • JSON parser with file and reader support (6555cbb)
  • Validation logic with detailed error reporting (6555cbb)
  • High-level operations: ValidateFile, ValidateFiles, NewMinimalProtocol, WriteProtocolFile (6555cbb)
  • JSON Schema (draft 2020-12) for PIDL validation (61f0a39)
  • Embedded JSON Schema for programmatic access (61f0a39)
  • PlantUML sequence diagram renderer (524e920)
  • Mermaid sequence diagram renderer (524e920)
  • Graphviz DOT data flow diagram renderer (524e920)
  • Renderer interface with format parsing and file extension helpers (524e920)
  • Embedded protocol examples with API: List, Get, GetProtocol, GetJSON (66f6aa6)
  • OAuth 2.0 Authorization Code flow example (66f6aa6)
  • OAuth 2.0 + PKCE flow example (66f6aa6)
  • OpenID Connect Authentication flow example (66f6aa6)
  • MCP tool invocation flow example (66f6aa6)
  • A2A agent delegation flow example (66f6aa6)
  • pidl validate command for validating PIDL JSON files (8bf725d)
  • pidl generate command for generating diagrams (PlantUML, Mermaid, DOT) (8bf725d)
  • pidl examples command for listing and showing built-in examples (8bf725d)
  • pidl init command for creating new protocol files from templates (8bf725d)

Documentation

  • README with installation, quick start, CLI reference, and library usage (45e558b)
  • Full PIDL language specification document (45e558b)
  • Project roadmap with phased implementation plan (45e558b)
  • UTF-8 icons for README features list (e6830b0)

Build

  • Go module initialization (284d99a)
  • GitHub Actions CI/CD workflows (9e7c3af)
  • Linting fixes for golangci-lint compliance (03e1460)

Tests

  • Unit tests for core library: types, parser, validation, operations (d448ea7)
  • Tests for render package: format parsing, all renderers (524e920)
  • Tests for examples package: embedding, listing, retrieval (66f6aa6)
  • 60 tests total with full linting compliance (d448ea7)

Infrastructure

  • MIT License (bc35c74)
  • Gitignore with binary and ideation file patterns (284d99a)