Skip to content

satisfiedBy keys and stack values use different vocabularies #11

Description

@ruleofcodedev

laws --json exposes two fields that look like they share a vocabulary, and do not.

field values (law counts)
stack typescript 15 · frontend 58 · python 37 · absent, i.e. universal 63
satisfiedBy keys typescript 71 · python 70 · angular 67

All 58 laws with stack: "frontend" carry satisfiedBy.angular. None carries
satisfiedBy.frontend. A consumer rendering a law card from the JSON therefore has to
know a mapping that the schema never states.

They are two different axes

  • stack is selection — which projects the law runs on at all (coarse: any frontend)
  • a satisfiedBy key is guidance — which technology the instructions are written
    for (specific: Angular)

Read that way the data is consistent. Read as one vocabulary it looks broken.

Why we are not renaming angularfrontend

The guidance genuinely is Angular-specific: OnPush, standalone components, NgRx. A
React project with stack: "frontend" would be handed Angular instructions. The rename
would make the field lie — and a law that lies about how to satisfy it is worse than a
law with a gap.

The honest gap

No React or Vue guidance has been authored for those 58 frontend laws. That is a gap in
what we have written, not a naming mismatch. It deserves its own issue rather than being
hidden behind a rename.

Proposal

  1. Document both axes and the mapping in the README — a short "Law card schema" section
    consumers can code against.
  2. Track the missing React/Vue satisfiedBy guidance separately.

Raised by the site team, who render the law cards from this JSON.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions