redhat-et / redhat-et/ProtoBot

Implement deterministic specification validation and relationship checks

Open
#108 6 comments 1 reaction 1 assignee View on GitHub

@JohnStrunk is already working on this.

Since Sep 16, 2026.

component:ears-manager feature triaged
Dominant language
Go
Stars
5
Forks
6
Avg merge
23h 24m
Merged PRs (30d)
66

Description

Plan ID

EM-03

Purpose

Implement the deterministic validation engine that protects the specification store from malformed or inconsistent records.

Scope

  • Validate all six EARS pattern forms using the accepted keyword-based rules.
  • Validate required fields, stable IDs, applicability selectors, provenance, and verification metadata.
  • Resolve interface and requirement references.
  • Enforce relationship vocabulary, bidirectional symmetry, and acyclic depends-on and supersedes graphs.
  • Validate artifact registry paths, digests, owners, and allowlisted validator names without executing caller-supplied commands.
  • Return structured diagnostics with stable codes, locations, and remediation data.

Dependencies

Depends on EM-02. The logical schema and storage format are already settled by ADR-0001 and ADR-0002.

Acceptance criteria

  • Valid fixtures pass all checks.
  • Invalid fixtures cover each required-field, EARS, reference, symmetry, cycle, path, digest, and schema-version failure.
  • Validation never mutates the working tree.
  • Diagnostics are deterministic in ordering and machine-readable form.
  • Tests distinguish specification validation from WMS lifecycle Validation Rules.

Out of scope

CLI wiring belongs to EM-04. Semantic impact judgment remains outside the validator.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.