FR-041 vocab expansion: register ecosystem edge verbs + inverses#3
Merged
Merged
Conversation
Pairs with quire-rs FR-041 (authorable inverse edges). A full-ecosystem smoketest (234 repos) showed the corpus uses ~50 verbs FR-040 never registered. Close the gap centrally: - edge_types: register the lineage/provenance family (derives_from [inverse derives_into], migrated_from, generated_from), the process verbs (reviews, relates_to, found_in, covers, blocks), and misc (uses, manages, projection_of, imports, delegates_to) + the credential relations (issues/revokes/rotates/signs/advertises). - inverse: declarations added to satisfied_by (satisfies), constrains (constrained_by), renders (rendered_by), composes (composed_by), requires (required_by) — these become authorable via FR-041. - represents: generalized beyond DTO↔domain so `mirrors` aliases to it. - allowed_links: widen FR/NFR/StR/US/master-requirements with the best-fit registered verbs they actually use (artifact-level only; object-axis verbs stay on the object archetypes to keep Tier-2 typing). Verified locally against the FR-041 engine: ecosystem disallowed-edge-type drops 475 -> 170 (the remainder are doc-rewrite normalizations), Tier-2 target typing preserved. iso `make test` green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Completes the rewrite-target vocabulary so the corpus doc-normalization validates clean: StR `mirrors`→`represents` and master-requirements `bundles`→`aggregates` need those verbs in their allowed_links. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Pairs with quire-rs#5 (FR-041 authorable inverse edges). The full-ecosystem smoketest (234 repos / 5,656 docs) showed the corpus uses ~50 relationship verbs FR-040 never registered. This closes the gap centrally in the iso registry. Stacked on #2 (the 8-repo corpus widening).
Changes —
spec_artifacts_iso/manifest.yamledge_types: lineage/provenance (derives_from[invderives_into],migrated_from,generated_from); process verbs (reviews,relates_to,found_in,covers,blocks); misc (uses,manages,projection_of,imports,delegates_to); credential relations (issues/revokes/rotates/signs/advertises, each with its inverse).inverse:added tosatisfied_by(satisfies),constrains(constrained_by),renders(rendered_by),composes(composed_by),requires(required_by) — authorable via FR-041's engine.representsgeneralized somirrorsaliases to it.allowed_linkswidened on FR/NFR/StR/US/master-requirements with the best-fit registered verbs they use — artifact-level only; object-axis verbs (renders/emits/composes/reads) stay on the object archetypes so Tier-2 target typing is preserved (not masked).Verification (local, against the FR-041 engine)
disallowed-edge-type: 475 → 170 (remainder are doc-rewrite normalizations — separate follow-up).renders→ui_component cases still flag, to be fixed by doc rewrites, not masked).make testgreen (59 passed).🤖 Generated with Claude Code