Skip to content

Exploration: Compare SoloSpec vs Bikeshed flow + a few UI fixes#249

Draft
zavalit wants to merge 2 commits intosolid:mainfrom
zavalit:evaluation/solospec
Draft

Exploration: Compare SoloSpec vs Bikeshed flow + a few UI fixes#249
zavalit wants to merge 2 commits intosolid:mainfrom
zavalit:evaluation/solospec

Conversation

@zavalit
Copy link

@zavalit zavalit commented Mar 4, 2026

Summary

This PR migrates the Bikeshed source into SoloSpec and improves the generated spec UX.

Migration and setup

  • npx @openuji/bikeshed-migrate index.bs --out solospec --init
  • cd solospec
  • npm i
  • npm i mermaid

Validation

  • Ran npm run dev to verify local rendering.
  • Ran npm run lint to check for formatting warnings/errors.
  • Ran npm run build to verify the production build output.

More info: https://speculator.openuji.dev/solospec/bikeshed-theme/

Changes in this PR

  • Fixes light/dark theme switching.
  • Adds light/dark Mermaid rendering.
  • Adds copy-to-clipboard for code examples.

@elf-pavlik
Copy link
Member

Thank you @zavalit 🙏

I'm going to take a look at it later today and show it to the rest of Solid CG next Wednesday during the call
https://www.w3.org/events/meetings/9d3965a2-f4a0-4346-8ca6-8eadee10051c/20260311T140000/

You are very welcome to join!

Meanwhile I'm going to convert it to draft PR so that we all have time to explore it and discuss it.

@elf-pavlik elf-pavlik marked this pull request as draft March 4, 2026 18:56
@elf-pavlik
Copy link
Member

elf-pavlik commented Mar 4, 2026

I published a static preview on https://elf-pavlik.github.io/solid-oidc/

I also did a quick test wrapping one statement https://speculator.openuji.dev/features/spec-statements/

<spec-statement id="client-id-jsonld" data-cop-concept="client">
When a Client Identifier is dereferenced, the resource MUST be serialized as an `application/ld+json` document unless content negotiation requires a different outcome.
</spec-statement>

And it works like magic 🪄

  {
  "@context": {
    "dct": "http://purl.org/dc/terms/",
    "spec": "http://www.w3.org/ns/spec#",
    "skos": "http://www.w3.org/2004/02/skos/core#",
    "id": "@id",
    "type": "@type"
  },
  "@graph": [
    {
      "id": "https://solid.github.io/solid-oidc/",
      "type": "spec:Specification",
      "dct:title": "Solid-OIDC",
      "spec:classesOfProducts": {
        "id": "https://solid.github.io/solid-oidc/#classes-of-products",
        "type": "skos:ConceptScheme",
        "skos:prefLabel": "Classes of Products",
        "skos:hasTopConcept": [
          {
            "id": "https://solid.github.io/solid-oidc/#client"
          }
        ]
      },
      "spec:requirement": [
        {
          "id": "https://solid.github.io/solid-oidc/#client-id-jsonld"
        }
      ]
    },
    {
      "id": "https://solid.github.io/solid-oidc/#client",
      "type": "skos:Concept",
      "skos:prefLabel": "Client",
      "skos:inScheme": {
        "id": "https://solid.github.io/solid-oidc/#classes-of-products"
      },
      "skos:topConceptOf": {
        "id": "https://solid.github.io/solid-oidc/#classes-of-products"
      }
    },
    {
      "id": "https://solid.github.io/solid-oidc/#client-id-jsonld",
      "type": "spec:Requirement",
      "spec:requirementSubject": {
        "id": "https://solid.github.io/solid-oidc/#client"
      },
      "spec:requirementLevel": {
        "id": "spec:MUST"
      },
      "spec:statement": "When a Client Identifier is dereferenced, the resource MUST be serialized as an application/ld+json document unless content negotiation requires a different outcome."
    }
  ]
}

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