Skip to content

docs: add ADR template and contribution process - #92

Merged
Artifizer merged 3 commits into
GlobalTypeSystem:mainfrom
aviator5:adr-template-and-extend-contributing
Aug 4, 2026
Merged

docs: add ADR template and contribution process#92
Artifizer merged 3 commits into
GlobalTypeSystem:mainfrom
aviator5:adr-template-and-extend-contributing

Conversation

@aviator5

@aviator5 aviator5 commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator
  • Require ADRs for normative specification changes and document the validation workflow.
  • Add a project-adapted ADR template and align existing ADR headings with it.

Summary by CodeRabbit

  • Documentation

    • Updated contributor prerequisites, setup steps, repository guidance, validation commands, and release tagging instructions.
    • Clarified JSON Schema dialect declarations, alignment requirements, and conformance-test guidance.
    • Expanded architecture decision records with labeled options, selected decisions, implications, and implementation requirements.
    • Added a reusable ADR template covering context, options, decisions, implications, trade-offs, and supporting information.
    • Clarified trait validation behavior for const values, required properties, defaults, and merge-based deletion.
  • Tests

    • Added coverage for required and nested constant-valued traits during deletion, including valid deletion of optional nested traits.

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e519e395-2ae4-48e1-90f7-efb88a172ab4

📥 Commits

Reviewing files that changed from the base of the PR and between 5537fa2 and cbb8a82.

📒 Files selected for processing (3)
  • README.md
  • adr/0004-x-gts-traits-merge-strategy.md
  • tests/test_op13_schema_traits_validation.py

📝 Walkthrough

Walkthrough

The change updates contributor guidance, adds an ADR template, clarifies four ADR decisions, documents const behavior under RFC 7396 JSON Merge Patch, and adds regression coverage for required and optional nested trait deletion.

Changes

Documentation and ADR decisions

Layer / File(s) Summary
Contributor workflow and ADR template
CONTRIBUTING.md, adr/template.md
Contributor prerequisites, setup, validation commands, schema dialect guidance, release tags, and ADR requirements are updated. A structured ADR template is added.
Core ADR option and outcome clarifications
adr/0001-derivation-form.md, adr/0002-x-gts-traits-schema.md, adr/0003-x-gts-traits-completeness.md
The ADRs now number considered options and identify the selected outcomes.
Merge strategy decision and implications
adr/0004-x-gts-traits-merge-strategy.md
The ADR selects RFC 7396 JSON Merge Patch and documents const deletion, compatibility, implementation, and conformance implications.
Const deletion semantics and regression coverage
README.md, tests/test_op13_schema_traits_validation.py
The README clarifies that const constrains value, not property presence. Tests cover deletion of required scalar traits, required nested parents, and optional nested parents.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: artifizer

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main documentation changes: adding an ADR template and contribution process.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@code-ranker-app

code-ranker-app Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

code-ranker report for this PR (built on fork): https://reports.code-ranker.com/0FGX7CpmwJdMIFYuUtk0jA/

@aviator5
aviator5 requested a review from Artifizer August 3, 2026 11:11

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@adr/0003-x-gts-traits-completeness.md`:
- Line 230: Resolve the contradiction in the Option 3 section of the ADR by
aligning its completeness requirement with the `false` schema behavior: either
explicitly exempt types whose materialized effective traits object is empty, or
revise the `x-gts-traits-schema: false` edge-case wording to state that no
non-abstract descendant can be complete. Ensure the selected wording
consistently matches the completeness algorithm.

In `@adr/0004-x-gts-traits-merge-strategy.md`:
- Around line 483-489: Update the trait merge and validation semantics in §9.7.5
so RFC 7396 null-based deletion cannot bypass an optional const-locked trait:
either require locked properties in the effective trait-schema or reject
deletion during merge. Ensure the selected behavior preserves const enforcement,
and add a conformance test covering a descendant setting an optional
const-locked trait to null.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b378a9fb-af05-415a-b218-fe9db5024981

📥 Commits

Reviewing files that changed from the base of the PR and between cada310 and 1f6357c.

📒 Files selected for processing (6)
  • CONTRIBUTING.md
  • adr/0001-derivation-form.md
  • adr/0002-x-gts-traits-schema.md
  • adr/0003-x-gts-traits-completeness.md
  • adr/0004-x-gts-traits-merge-strategy.md
  • adr/template.md

Comment thread adr/0003-x-gts-traits-completeness.md
Comment thread adr/0004-x-gts-traits-merge-strategy.md Outdated
- Require ADRs for normative specification changes and document the validation workflow.
- Add a project-adapted ADR template and align existing ADR headings with it.

Signed-off-by: Aviator 5 <ai.agent.tor@gmail.com>
Signed-off-by: Aviator 5 <ai.agent.tor@gmail.com>
@aviator5
aviator5 force-pushed the adr-template-and-extend-contributing branch from 1f6357c to 5537fa2 Compare August 3, 2026 17:36

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@adr/0004-x-gts-traits-merge-strategy.md`:
- Around line 437-441: Update adr/0004-x-gts-traits-merge-strategy.md lines
437-441 and README.md line 1625 to state that nested required traits are
protected only when every parent path segment is present, and that protection
requires requiring each parent, restoring the complete path with defaults, or
rejecting parent deletion. Extend tests/test_op13_schema_traits_validation.py
lines 3394-3441 with nested-parent deletion coverage, distinguishing parent
removal from literal null, and assert the specific required-property validation
failure.

In `@tests/test_op13_schema_traits_validation.py`:
- Around line 3394-3441: Extend TestCaseOp13_Merge_ConstLock_NullDeleteFails
with a nested parent object containing a required const property, then attempt
to delete that parent through merge and assert the resulting validation failure
specifically reflects the missing required property. Ensure the assertion
distinguishes RFC 7396 null-deletion semantics from incorrectly validating
literal null.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 9498ea54-d1a8-49ae-a28b-da0ffa473303

📥 Commits

Reviewing files that changed from the base of the PR and between 1f6357c and 5537fa2.

📒 Files selected for processing (8)
  • CONTRIBUTING.md
  • README.md
  • adr/0001-derivation-form.md
  • adr/0002-x-gts-traits-schema.md
  • adr/0003-x-gts-traits-completeness.md
  • adr/0004-x-gts-traits-merge-strategy.md
  • adr/template.md
  • tests/test_op13_schema_traits_validation.py
🚧 Files skipped from review as they are similar to previous changes (4)
  • adr/0001-derivation-form.md
  • adr/0003-x-gts-traits-completeness.md
  • adr/0002-x-gts-traits-schema.md
  • adr/template.md

Comment thread adr/0004-x-gts-traits-merge-strategy.md
Comment thread tests/test_op13_schema_traits_validation.py
- Explain why required and const constraints vanish when an optional parent is deleted.
- Add OP#13 conformance cases for required and optional nested-lock paths.

Signed-off-by: Aviator 5 <ai.agent.tor@gmail.com>
@Artifizer
Artifizer merged commit 0689957 into GlobalTypeSystem:main Aug 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants