Skip to content

Correct coordinator role on all build pages#8

Merged
djscruggs merged 4 commits into
mainfrom
fix/coordinator-workflow-service-model
Jun 8, 2026
Merged

Correct coordinator role on all build pages#8
djscruggs merged 4 commits into
mainfrom
fix/coordinator-workflow-service-model

Conversation

@djscruggs

@djscruggs djscruggs commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

This PR contains two related changes to the build/vertical pages.

1. Correct the coordinator role (all build pages)

The issuer/verifier build pages told a coordinator to npm install @bedrock/vc-delivery and hand-code the raw VCALM exchange loop. That conflates two roles:

  • A workflow service runs @bedrock/vc-delivery and handles all protocol work — VCALM/OID4VCI/OID4VP negotiation, signing, verification, multi-wallet interop.
  • A coordinator (issuer/verifier) is a client of a workflow service. It never installs or runs that library.

A coordinator does three things:

  1. Create an exchangePOST <workflowId>/exchanges with ttl + variables; receives 204 + a Location header (the exchange URL).
  2. Host and share the interaction URL pointing the wallet at the exchange.
  3. PollGET <workflowId>/exchanges/<id> until state is complete, then read verified results under exchange.variables.results.

Request/response shapes verified against the bedrock-vc-delivery source.

2. Replace the government vertical with a student-ID vertical

For competitive reasons, the DMV / mobile-driver's-license framing is dropped. The slot is repurposed as a digital student ID vertical: a school issues, a student holds in the wallet of their choice, and a campus service or partner verifies.

  • Kept distinct from the existing education (diploma) vertical — student IDs are identity/entitlement, not transcripts.
  • Selective-disclosure anchor is now "currently enrolled" in place of "over 21".
  • Verticals are collection-driven, so renaming the directory + tag + permalinks updates nav, footer, home grid, sitemap, and llms.txt automatically — no nav edits.
  • Issuer/verifier pages keep the corrected coordinator model from change Add postcard-style flow diagrams to vertical experience pages #1 and are only re-themed.

Follow-up (not in this PR)

A healthcare vertical is planned next (clinician license / patient ID — strong selective-disclosure story).

Verification

  • npx @11ty/eleventy builds clean (23 files); /student-id/ pages generated, /government/ gone.
  • No leftover DMV/government/resident references in source.

🤖 Generated with Claude Code

The issuer and verifier build pages described a coordinator as running
@bedrock/vc-delivery and hand-coding the raw VCALM exchange loop. That
conflates two distinct roles. A coordinator is a client of a workflow
service, not the service itself.

Rewrite all six build pages (government, education, supply-chain;
issuer and verifier) around the actual coordinator API surface:

- Create an exchange: POST <workflowId>/exchanges with ttl + variables,
  receiving 204 plus a Location header (the exchange URL).
- Host and share the interaction URL pointing the wallet at the exchange.
- Poll GET <workflowId>/exchanges/<id> until state is complete and read
  results under exchange.variables.results.

The workflow service (which runs @bedrock/vc-delivery) handles protocol
negotiation, signing, verification, and multi-wallet interop. Request
and response shapes verified against the bedrock-vc-delivery source.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

Cloudflare Pages preview

Deployed this PR to a live preview:

https://fix-coordinator-workflow-ser.learnvcorg.pages.dev

This deploy: https://82102599.learnvcorg.pages.dev

Updated for commit 92aaa82.

djscruggs and others added 3 commits June 8, 2026 12:46
Drop the DMV / mobile-driver's-license framing and repurpose the slot as
a digital student ID vertical: a school issues, a student holds in the
wallet of their choice, and a campus service or partner verifies.

Student IDs are identity and entitlement credentials, kept distinct from
the existing education (diploma/transcript) vertical. The selective-
disclosure anchor becomes "currently enrolled" in place of "over 21".

Verticals are collection-driven, so renaming the directory, the tag, and
the permalinks updates the nav, footer, home grid, sitemap, and llms.txt
automatically. The issuer and verifier pages keep the corrected
coordinator model (create exchange, host/share interaction URL, poll for
results) and are only re-themed.

- Rename src/verticals/government -> src/verticals/student-id and its
  data file; change the collection tag to student-id.
- Rewrite index.njk, build/index.njk, and build/wallet.njk around the
  student-ID story; re-theme build/issuer.njk and build/verifier.njk.
- Rename flowIcons gov* keys to studentId* and update embedded labels.
- Rename the unused government-flow.svg diagram to student-id-flow.svg.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The build pages said a coordinator does not "speak VCALM on the wire."
That implies the coordinator is outside VCALM entirely. It is not — the
create-exchange / host-interaction-URL / poll API is itself the
coordinator side of VCALM.

Reword the six issuer/verifier intros: a coordinator speaks VCALM, just
not VCALM delivery — the on-the-wire exchange loop with the wallet, which
the workflow service handles. Also scope "the protocol mess" to "VCALM
delivery" rather than VCALM as a whole.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@djscruggs djscruggs merged commit 19cabe3 into main Jun 8, 2026
1 check passed
@djscruggs djscruggs deleted the fix/coordinator-workflow-service-model branch June 8, 2026 21:22
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.

1 participant