Skip to content

Commit 0a97d7d

Browse files
committed
Prepare v1.1.0 release and enforce docs quality
1 parent 33d3577 commit 0a97d7d

43 files changed

Lines changed: 809 additions & 445 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/validate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ jobs:
138138
- name: Lint Markdown files
139139
run: |
140140
echo "Linting Markdown files..."
141-
markdownlint README.md SPEC/1.0/*.md --config .markdownlint.json || true
141+
markdownlint $(git ls-files '*.md') --config .markdownlint.json
142142
143143
check-file-structure:
144144
runs-on: ubuntu-latest

AGENTS.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22

33
## Your Mission
44

5-
You are working on the **GABP (Game Agent Bridge Protocol)** repository. This protocol enables AI tools to communicate with games through a standardized bridge interface.
5+
You are working on the **GABP (Game Agent Bridge Protocol)** repository. This protocol enables AI tools to communicate
6+
with games through a standardized bridge interface.
67

78
Your job is to implement and maintain the complete GABP specification, which consists of three main deliverables:
89

910
1. **Human-readable specification** (Markdown documentation)
1011
2. **Machine-readable schemas** (JSON Schema files)
1112
3. **Conformance tests** (Example messages and validation)
1213

13-
This repository follows industry standards: Markdown + JSON Schema for specifications, optional AsyncAPI for events, and CI workflows that validate all examples.
14+
This repository follows industry standards: Markdown + JSON Schema for specifications, optional AsyncAPI for events, and
15+
CI workflows that validate all examples.
1416

1517
## Repository Overview
1618

@@ -113,23 +115,28 @@ See [SPEC/1.0/gabp.md](SPEC/1.0/gabp.md) for normative protocol details.
113115
### Envelope Specification
114116

115117
Canonical specification and schema can be found at:
118+
116119
- [SCHEMA/1.0/envelope.schema.json](SCHEMA/1.0/envelope.schema.json)
117120

118-
The envelope schema defines the union types for requests, responses, and events. Consult the file directly for up-to-date structure and requirements.
121+
The envelope schema defines the union types for requests, responses, and events. Consult the file directly for
122+
up-to-date structure and requirements.
119123

120124
### Method Schemas
121125

122126
All method schemas are maintained in the [SCHEMA/1.0/methods/](SCHEMA/1.0/methods/) directory.
123127
For example:
128+
124129
- [session.hello.request.json](SCHEMA/1.0/methods/session.hello.request.json)
125130
- [session.welcome.response.json](SCHEMA/1.0/methods/session.welcome.response.json)
126131

127132
Refer to these files for current field requirements and formats.
128133

129134
### Common Schemas
130135

131-
Reusable schema definitions (such as `tool`, `capabilities`, and `error`) are in [SCHEMA/1.0/common/](SCHEMA/1.0/common/).
136+
Reusable schema definitions (such as `tool`, `capabilities`, and `error`) are in
137+
[SCHEMA/1.0/common/](SCHEMA/1.0/common/).
132138
See:
139+
133140
- [tool.schema.json](SCHEMA/1.0/common/tool.schema.json)
134141
- [error.schema.json](SCHEMA/1.0/common/error.schema.json)
135142
- [capabilities.schema.json](SCHEMA/1.0/common/capabilities.schema.json)
@@ -140,12 +147,14 @@ Event message schemas are in [SCHEMA/1.0/events/](SCHEMA/1.0/events/).
140147

141148
## AsyncAPI Implementation (Optional)
142149

143-
If AsyncAPI documentation is provided, refer to the canonical file (e.g. `asyncapi.yaml`) at the root or docs directory for the latest event channel definitions.
150+
If AsyncAPI documentation is provided, refer to the canonical file (e.g. `asyncapi.yaml`) at the root or docs directory
151+
for the latest event channel definitions.
144152

145153
## Transport and Security Specifications
146154

147155
See [SPEC/1.0/transport.md](SPEC/1.0/transport.md) for details.
148-
Platform-specific bridge configuration examples are kept in the documentation and config files—refer to those for current formats.
156+
Platform-specific bridge configuration examples are kept in the documentation and config files—refer to those for
157+
current formats.
149158

150159
## Versioning Policy
151160

@@ -159,8 +168,10 @@ Always refer to the workflow file for current validation logic.
159168
## Conformance Test Suite
160169

161170
Valid and invalid examples are maintained in:
171+
162172
- [EXAMPLES/1.0/](EXAMPLES/1.0/) for protocol message examples
163-
- [CONFORMANCE/1.0/valid/](CONFORMANCE/1.0/valid/) and [CONFORMANCE/1.0/invalid/](CONFORMANCE/1.0/invalid/) for conformance testing
173+
- [CONFORMANCE/1.0/valid/](CONFORMANCE/1.0/valid/) and [CONFORMANCE/1.0/invalid/](CONFORMANCE/1.0/invalid/) for
174+
conformance testing
164175

165176
Consult these folders for up-to-date cases.
166177

@@ -175,7 +186,7 @@ See [packages/js/gabp-schemas/README.md](packages/js/gabp-schemas/README.md) for
175186
## Release Process Checklist
176187

177188
1. **Freeze** SPEC/1.0 content
178-
2. **Tag** repository with `v1.0.0`
189+
2. **Tag** repository with `vX.Y.Z`
179190
3. **Create** GitHub Release bundling `/SCHEMA/1.0` and `/EXAMPLES/1.0`
180191
4. **Announce** registry and contribution rules
181192

CHANGELOG.md

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,70 @@
11
# Changelog
22

3+
<!-- markdownlint-disable MD024 -->
4+
35
All notable changes to the GABP specification and schemas will be documented in this file.
46

5-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
8+
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
69

710
## Unreleased
811

12+
## 1.1.0 - 2026-03-21
13+
914
### Added
10-
- Added an architecture note for additive attention and execution gating support within `gabp/1`, including rationale, compatibility decisions, and an ordered build-and-test plan across GABP, Lib.GAB, GABS, and game integrations.
11-
- Added canonical additive attention protocol surface documentation for `attention/current`, `attention/ack`, and the `attention/opened`, `attention/updated`, and `attention/cleared` lifecycle channels.
15+
16+
- Added an architecture note for additive attention and execution gating support within `gabp/1`, including rationale,
17+
compatibility decisions, and an ordered build-and-test plan across GABP, Lib.GAB, GABS, and game integrations.
18+
- Added canonical additive attention protocol surface documentation for `attention/current`, `attention/ack`, and the
19+
`attention/opened`, `attention/updated`, and `attention/cleared` lifecycle channels.
1220
- Added reusable attention schemas, attention examples, and valid/invalid conformance fixtures.
21+
- Added GitHub Actions automation to create and publish subdirectory-prefixed Go schema module tags.
1322

1423
### Changed
24+
1525
- Updated the canonical JS and Go schema package mirrors to include the new attention assets.
1626
- Extended the AsyncAPI event documentation and AI implementer guide to cover optional attention-aware flows.
27+
- Updated the npm and NuGet publish workflows to ignore subdirectory-prefixed release tags intended for the Go schema
28+
module.
29+
- Enforced repository-wide markdown validation in CI now that the documentation set is lint-clean.
30+
- Refreshed the schema package READMEs and Go module release guidance.
1731

1832
## 1.0.3 - 2026-03-15
1933

2034
### Fixed
21-
- Removed the custom `dotnet pack --output` path from the NuGet workflow and now publish from the default package output directory.
35+
36+
- Removed the custom `dotnet pack --output` path from the NuGet workflow and now publish from the default package output
37+
directory.
2238

2339
## 1.0.2 - 2026-03-15
2440

2541
### Fixed
42+
2643
- Restored the repository metadata required for npm trusted publishing provenance.
2744
- Fixed the GitHub Actions `.NET` pack steps for the `Gabp.Schemas` package.
2845

2946
## 1.0.1 - 2026-03-15
3047

3148
### Added
49+
3250
- Added the `wire-model-decisions.md` note to pin the canonical 1.0 field and naming choices.
33-
- Added explicit `tools/call` request and response examples plus valid and invalid conformance cases for tool naming and tool descriptors.
51+
- Added explicit `tools/call` request and response examples plus valid and invalid conformance cases for tool naming and
52+
tool descriptors.
3453
- Added a new `.NET` schema package scaffold for `Gabp.Schemas`.
3554
- Added a new `Go` schema package scaffold with embedded schema assets and a sync script.
3655
- Added GitHub Actions automation to verify and publish the NuGet package.
3756

3857
### Changed
39-
- Aligned the 1.0 schemas, examples, and conformance assets around `arguments`, `capabilities.methods`, and slash-style native tool names.
58+
59+
- Aligned the 1.0 schemas, examples, and conformance assets around `arguments`, `capabilities.methods`, and slash-style
60+
native tool names.
4061
- Updated the bundled JS schema package assets and package metadata to match the canonical schema tree.
4162
- Removed avoidable `Pardeike` branding from package and documentation surfaces inside `GABP`.
4263

4364
## 1.0.0 - 2026-03-15
4465

4566
### Added
67+
4668
- First stable release of GABP specification
4769
- Wire protocol version `gabp/1`
4870
- Complete JSON Schema definitions

CODE_OF_CONDUCT.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
## Our Pledge
44

5-
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
5+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for
6+
everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity
7+
and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion,
8+
or sexual identity and orientation.
69

710
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
811

@@ -26,24 +29,33 @@ Examples of unacceptable behavior include:
2629

2730
## Enforcement Responsibilities
2831

29-
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
32+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take
33+
appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive,
34+
or harmful.
3035

31-
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
36+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits,
37+
issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for
38+
moderation decisions when appropriate.
3239

3340
## Scope
3441

35-
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
42+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing
43+
the community in public spaces. Examples of representing our community include using an official e-mail address, posting
44+
via an official social media account, or acting as an appointed representative at an online or offline event.
3645

3746
## Enforcement
3847

39-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [INSERT CONTACT METHOD]. All complaints will be reviewed and investigated promptly and fairly.
48+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible
49+
for enforcement at [INSERT CONTACT METHOD]. All complaints will be reviewed and investigated promptly and fairly.
4050

4151
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
4252

4353
## Attribution
4454

45-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
55+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at
56+
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
4657

47-
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
58+
Community Impact Guidelines were inspired by
59+
[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
4860

49-
[homepage]: https://www.contributor-covenant.org
61+
[homepage]: https://www.contributor-covenant.org

CONFORMANCE/1.0/README.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# GABP 1.0 Conformance Tests
22

3-
This directory contains conformance test cases for validating GABP implementations. These tests ensure that implementations correctly handle valid and invalid messages.
3+
This directory contains conformance test cases for validating GABP implementations. These tests ensure that
4+
implementations correctly handle valid and invalid messages.
45

56
## Test Categories
67

@@ -12,23 +13,27 @@ This directory contains conformance test cases for validating GABP implementatio
1213
Conformance tests serve multiple purposes:
1314

1415
### For Implementers
16+
1517
- Verify your implementation handles edge cases correctly
1618
- Test error handling for malformed messages
1719
- Ensure compatibility with the GABP specification
1820

1921
### For Protocol Development
22+
2023
- Validate schema definitions catch expected errors
2124
- Document expected behavior for corner cases
2225
- Regression testing during protocol evolution
2326

2427
### For Continuous Integration
28+
2529
- Automated validation that examples conform to schemas
2630
- Prevent accidental breaking changes to schemas
2731
- Ensure consistency between specification and implementation
2832

2933
## Running Conformance Tests
3034

3135
### Valid Messages
36+
3237
All messages in `valid/` should validate against their respective schemas:
3338

3439
```bash
@@ -39,7 +44,8 @@ ajv -s ../../SCHEMA/1.0/envelope.schema.json -d 'valid/*.json'
3944
ajv -s ../../SCHEMA/1.0/methods/session.hello.request.json -d 'valid/session-hello-*.json'
4045
```
4146

42-
### Invalid Messages
47+
### Invalid Messages
48+
4349
All messages in `invalid/` should fail validation:
4450

4551
```bash
@@ -52,13 +58,15 @@ The `--invalid` flag tells AJV that validation failures are expected.
5258
## Test Organization
5359

5460
Test files are named to indicate what they test:
61+
5562
- `valid-session-hello-basic.json` - Basic valid session/hello message
5663
- `invalid-missing-version.json` - Message missing required version field
5764
- `invalid-wrong-type.json` - Message with invalid type field
5865

5966
## CI Integration
6067

6168
These tests run automatically in GitHub Actions to ensure:
69+
6270
- All valid messages pass schema validation
6371
- All invalid messages fail schema validation as expected
6472
- Schema changes don't break existing valid messages
@@ -67,7 +75,8 @@ These tests run automatically in GitHub Actions to ensure:
6775
## Adding New Tests
6876

6977
When adding conformance tests:
78+
7079
1. Include both positive and negative test cases
71-
2. Test edge cases and boundary conditions
80+
2. Test edge cases and boundary conditions
7281
3. Document what each test validates in comments
73-
4. Follow the naming convention for discoverability
82+
4. Follow the naming convention for discoverability

CONFORMANCE/1.0/invalid/README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
11
# Invalid Conformance Test Cases
22

3-
This directory contains GABP messages that should fail validation against the schemas. These represent malformed, incorrect, or prohibited messages that implementations must reject.
3+
This directory contains GABP messages that should fail validation against the schemas. These represent malformed,
4+
incorrect, or prohibited messages that implementations must reject.
45

56
## Test Categories
67

78
### Schema Violations
9+
810
- **Missing required fields** - Messages lacking mandatory properties
911
- **Wrong field types** - Fields with incorrect data types
1012
- **Invalid field values** - Values outside allowed ranges or patterns
1113
- **Extra fields** - Additional properties where not allowed
1214

13-
### Protocol Violations
15+
### Protocol Violations
16+
1417
- **Conflicting fields** - Messages with mutually exclusive properties
1518
- **Invalid combinations** - Field combinations that violate protocol rules
1619
- **Wrong message structure** - Incorrect envelope format
1720

1821
### Common Error Cases
22+
1923
- **Missing version** - Messages without the required `v` field
2024
- **Wrong version** - Messages with invalid version strings
2125
- **Missing ID** - Messages without unique identifiers
@@ -26,6 +30,7 @@ This directory contains GABP messages that should fail validation against the sc
2630
## Expected Behavior
2731

2832
When implementations encounter these messages they should:
33+
2934
- **Reject** the message during parsing or validation
3035
- **Return an error** (if it's a request message)
3136
- **Log the issue** appropriately
@@ -45,6 +50,7 @@ The `--invalid` flag tells AJV that validation failures are expected and desired
4550
## File Naming
4651

4752
Invalid test files describe what's wrong:
53+
4854
- `invalid-missing-version.json` - Missing required version field
4955
- `invalid-wrong-type.json` - Incorrect message type
5056
- `invalid-both-result-error.json` - Response with both result and error
@@ -53,16 +59,18 @@ Invalid test files describe what's wrong:
5359
## Error Documentation
5460

5561
Each test case should document:
62+
5663
- What makes the message invalid
5764
- What error should be reported
5865
- Which schema rule is being violated
5966

6067
## Implementation Testing
6168

6269
Use these tests to verify your implementation:
70+
6371
1. **Parsing robustness** - Handles malformed JSON gracefully
6472
2. **Validation accuracy** - Catches all schema violations
6573
3. **Error reporting** - Provides clear, actionable error messages
6674
4. **Security** - Doesn't crash or leak information on bad input
6775

68-
These tests help ensure your GABP implementation is robust and secure when handling incorrect or malicious input.
76+
These tests help ensure your GABP implementation is robust and secure when handling incorrect or malicious input.

0 commit comments

Comments
 (0)