Skip to content

feat(update): self-service flow to update member info after emission - #91

Merged
blafourcade merged 1 commit into
mainfrom
feat/update-member-info
Jul 28, 2026
Merged

feat(update): self-service flow to update member info after emission#91
blafourcade merged 1 commit into
mainfrom
feat/update-member-info

Conversation

@blafourcade

Copy link
Copy Markdown
Contributor

Adds the missing "modify my info" path alongside create (certification) and
delete (removal). A signed badge encodes only handle + dates + status, so
name/LinkedIn/photo/description are directory-only: an update never re-signs,
regenerates the record with github/role/status_index preserved, and emission
reproduces a byte-identical credential. certified_on (add-commit date) and the
proof link stay stable. Empty field = unchanged.

  • Issue Form update-request.yml (all fields optional) + update-* labels
  • update-pr.yml workflow: requires an existing record, reuses status_index,
    gates the photo step on a photo actually provided, moderation shows a
    before -> after diff
  • lib/update-request.mjs (pure) reusing the certification validators, which are
    now exported; toMemberYaml passes role + renewed_on through so no field is lost
  • round-trip byte-identical test proves the credential is untouched by an update
  • ARCHITECTURE.md: update sequence + instant-text / lagged-photo note

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01PC9TRnYr5AXe7GmBmHjkBy

Adds the missing "modify my info" path alongside create (certification) and
delete (removal). A signed badge encodes only handle + dates + status, so
name/LinkedIn/photo/description are directory-only: an update never re-signs,
regenerates the record with github/role/status_index preserved, and emission
reproduces a byte-identical credential. certified_on (add-commit date) and the
proof link stay stable. Empty field = unchanged.

- Issue Form update-request.yml (all fields optional) + update-* labels
- update-pr.yml workflow: requires an existing record, reuses status_index,
  gates the photo step on a photo actually provided, moderation shows a
  before -> after diff
- lib/update-request.mjs (pure) reusing the certification validators, which are
  now exported; toMemberYaml passes role + renewed_on through so no field is lost
- round-trip byte-identical test proves the credential is untouched by an update
- ARCHITECTURE.md: update sequence + instant-text / lagged-photo note

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PC9TRnYr5AXe7GmBmHjkBy
@blafourcade
blafourcade requested review from a team as code owners July 28, 2026 18:34
@blafourcade
blafourcade merged commit dc774ed into main Jul 28, 2026
2 checks passed
@blafourcade
blafourcade deleted the feat/update-member-info branch July 28, 2026 18:36
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