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) --scenarioongenerate,simulate,debugandanalyze, andProtocol.Flatten(46ca05e)- PlantUML, Mermaid, D2 and SVG draw include steps as labeled boxes across the fragment's participants;
--expandinlines them (851dbb7) generate --all-scenarios -o <dir>writesNN-<id><ext>per scenario in file order;--include-fragmentsadds fragments (3ba2c56)pidl scenarioslists scenarios in output order as a table or JSON (fae3af7)scenario-matrixformat: roles by scenario, marking direct and fragment-only participation (7e39963)- Token
verified_byandclaims, and flow securitysigned_by,issuesandverifies(c9fedb5) token-tableformat: issuer, audience, binding, checkers, claims, and the scenarios that issue and verify each token (f888015)outlineandoutline-jsonformats andProtocol.Outlinefor 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) extendsandimportsmerge scenarios;exclude_scenariosand an importscenariosselector (5427595)pidl diffcompares 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
sequencelabel (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
entitiesorder instead of alphabetically; sort theentitiesarray to keep the previous layout (3b2309a) Flow.sequenceis 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
versionreported 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
componentsandtrustcrashed on protocols without a metadata block (560d07b) - Debug REPL lost arguments of multi-word commands and looped forever on EOF (
560d07b) - CLI
init,roles,componentsandtrustsilently 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 difflisted 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
d2CLI 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¶
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, andtrustlist 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
resolvecommand for debugging composition (87d33d1) - Protocol execution engine (Executor) with state tracking (
e80e979) - ExecutionContext, ExecutionTrace, and ExecutionStep types (
e80e979) - CLI
simulatecommand with verbose and JSON output (f6c8d38) - Protocol comparison with DiffItem, ProtocolDiff types (
53ab027) - CLI
diffcommand with text, JSON, markdown output (47c2fd4) - Execution trace visualization renderer (text, SVG, Mermaid) (
f6acc27) - Interactive protocol debugger (DebugSession) with breakpoints (
5745fdf) - CLI
debugcommand for step-through execution (47c2fd4) - Security analysis package with 10 built-in rules (SEC001-SEC010) (
0341d5b) - CLI
analyzecommand 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.animationfield (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-networkformat) (a145005) - Boundary inference from
entity.metadata.networkfield (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
--templateflag for selecting SVG templates (1742ea1) - CLI
--template-dirflag for custom template directories (1742ea1) - CLI
--themeflag for SVG theme selection (light, dark, auto) (1742ea1) - CLI
--boundaryflag 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 validatecommand for validating PIDL JSON files (8bf725d)pidl generatecommand for generating diagrams (PlantUML, Mermaid, DOT) (8bf725d)pidl examplescommand for listing and showing built-in examples (8bf725d)pidl initcommand 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)