feat: collaborator identity registry in idd-config (#86)#247
Open
kiki830621 wants to merge 1 commit into
Open
Conversation
Add an OPTIONAL `collaborators[]` config array so IDD resolves a person's alias / email / display-name to a GitHub @login without guessing, feeding the tagging-collaborators protocol as a resolution accelerator (never an authority). - config-protocol.md: document the collaborators[] schema (github_login / display_name / role / aliases / email) + PII boundary (email is private/ gitignored-only; validate emits a PII reminder). - tagging-collaborators.md: new Step 2.5 consults the registry FIRST, but a hit still existence-verifies via gh api users/<login> (table can be stale). - idd-config/SKILL.md: validate schema-checks the registry (login format, aliases global uniqueness, role enum, email PII warning). - tests/collaborators-schema: 3-file drift guard (12 assertions) locking the schema vocabulary + PII boundary across all three files. Verification: drift-guard fixture 12/12, full suite 22/22, adversarial self-review (found+closed one gap: PII reminder was unanchored in idd-config).
This was referenced Jul 6, 2026
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.
What
Adds an OPTIONAL
collaborators[]identity registry to IDD config so a person'salias / email / display-name resolves to their GitHub login without guessing —
feeding
rules/tagging-collaborators.mdas a resolution accelerator, never anauthority.
Why
tagging-collaborators.mdforbids guessing handles from memory / git log. Todayresolution relies entirely on a live
gh api .../collaboratorsfuzzy match, whichcan't map a curated nickname / student-ID / romanization (
Hardy, a 中文 name) tothe right login. A config-carried registry closes that gap while keeping the
never-guess guarantee intact.
Changes (4 touch-points)
references/config-protocol.md— documents thecollaborators[]schema(
github_login/display_name/role/aliases/email) in the illustrativeJSON block + a prose section, including the PII boundary:
emailispersonally-identifiable and belongs only in a private / gitignored config layer.
rules/tagging-collaborators.md— new Step 2.5: consult the registryfirst, but a hit still existence-verifies via
gh api users/<login>before itcounts (the table can go stale) → accelerator, not authority.
skills/idd-config/SKILL.md—validatenow schema-checks the registry:github_loginrequired + charset,aliasesglobal uniqueness,roleenum, and aPII reminder when an
emailappears.scripts/tests/collaborators-schema/— a 3-file drift guard (12 assertions)locking the schema vocabulary + PII boundary across all three docs. This is a
C_shared_module_coordchange; the real failure mode is drift (rename a field inone file, forget the others), so the guard pins the shared vocabulary.
Verification
run-all-tests.sh): 22/22, new suite auto-discovered.validatePII reminder wasdocumented but unanchored by the guard; added a 12th assertion so it can't be
dropped from
idd-configwhileconfig-protocol.mdstill advertises it.Merge-order note
Touches the tagging family (
rules/tagging-collaborators.md). #85 also edits thetagging area — expect a textual conflict on the second-merged branch. Recommend
merging this and #85 adjacently and rebasing whichever lands second.
Refs #86