add funding receipt schema - #37
Conversation
|
Caution Review failedThe pull request is closed. WalkthroughAdds a new funding receipt lexicon Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–30 minutes
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (4 passed)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (3)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
lexicons/org/hypercerts/funding/receipt.json (1)
18-65: Consider stronger typing/constraints for identifiers & money fields (and avoidforfor TS ergonomics).
from/to: if ATProto lexicon supportsformat: "did"(or similar), use it; otherwise consider a regex/pattern or clearer naming (e.g.,fromDid,toDid, and separatetoDisplayName/anonymousflag) to match the description.amount: using JSONnumberfor money can introduce rounding issues; consider a decimal string (e.g.,"type": "string"with a pattern) or split into{ amount: string, decimals: int }depending on conventions in this repo.currency: consider constraints (e.g., maxLength, pattern for ISO-4217, or an enum if you have a known set).for: TS generators often make"for"an awkward property to access; consider renaming torelatedTo/subject/referencewhile this is still new.(Verification needed: what
formatvalues are officially supported by the ATProto lexicon schema v1, and how your generator maps keyword property names.)
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
lexicons/org/hypercerts/funding/receipt.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
lexicons/**/*.json
📄 CodeRabbit inference engine (AGENTS.md)
lexicons/**/*.json: Regenerate TypeScript API types after modifying lexicon JSON files by runningnpm run gen-api
Lexicon JSON files should follow the ATProto lexicon schema v1 structure withlexicon,id, anddefs.mainproperties
When adding a new lexicon, create a new JSON file inlexicons/following the namespace structure and then regenerate types
Validate lexicon definitions and regenerate types usingnpm run checkbefore deployment
lexicons/**/*.json: When adding, modifying, or deleting files in lexicons//*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
When adding, modifying, or deleting files in lexicons//*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Verify that lexicon IDs in JSON files match what's documented in README.md
Files:
lexicons/org/hypercerts/funding/receipt.json
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to lexicons/**/*.json : Lexicon JSON files should follow the ATProto lexicon schema v1 structure with `lexicon`, `id`, and `defs.main` properties
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
🪛 GitHub Actions: Lint
lexicons/org/hypercerts/funding/receipt.json
[error] 1-1: Prettier formatting check failed. Run 'prettier --write' to fix code style issues in this file.
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
lexicons/org/hypercerts/funding/receipt.json (1)
1-71: CI is failing on Prettier; also ensure gen/types + docs updates land in this PR.Lint shows
prettier --check .failing; please run Prettier and commit the formatted result, then regenerate/validate per repo guidelines:
prettier --write lexicons/org/hypercerts/funding/receipt.json(orprettier --write .)npm run gen-apinpm run check
Also ensureREADME.mddocumentsorg.hypercerts.funding.receipt, and updateERD.pumlif you treat “funding receipt” as an entity/relationship in the diagram. (Based on learnings & coding guidelines.)
🧹 Nitpick comments (2)
lexicons/org/hypercerts/funding/receipt.json (2)
7-66: Tighten schema semantics (avoid “empty string” sender; constrain amount).Two small tweaks would reduce downstream ambiguity:
- Prefer “omit
from” over “empty string” (and optionally enforceminLength: 1).- Constrain
amountto be non-negative (and maybe > 0, depending on whether refunds/voids are represented elsewhere)."from": { "type": "string", "format": "did", - "description": "DID of the sender who transferred the funds. Leave empty if sender wants to stay anonymous." + "description": "DID of the sender who transferred the funds. Omit if the sender is anonymous." + ,"minLength": 1 }, @@ "amount": { "type": "number", - "description": "Amount of funding received." + "description": "Amount of funding received." + ,"minimum": 0 },If
amountmust always be positive, use"exclusiveMinimum": 0instead of"minimum": 0.
23-26:tofield: schema doesn’t match the stated “DID or clear-text” contract.Right now
tois juststringwith no way to tell “DID” vs “name”. If consumers need to distinguish, consider modelingtoas an object (e.g.,{ did?: string; name?: string }) or a union style used elsewhere in this repo (if applicable), rather than an overloaded string.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
lexicons/org/hypercerts/funding/receipt.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
lexicons/**/*.json
📄 CodeRabbit inference engine (AGENTS.md)
lexicons/**/*.json: Regenerate TypeScript API types after modifying lexicon JSON files by runningnpm run gen-api
Lexicon JSON files should follow the ATProto lexicon schema v1 structure withlexicon,id, anddefs.mainproperties
When adding a new lexicon, create a new JSON file inlexicons/following the namespace structure and then regenerate types
Validate lexicon definitions and regenerate types usingnpm run checkbefore deployment
lexicons/**/*.json: When adding, modifying, or deleting files in lexicons//*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
When adding, modifying, or deleting files in lexicons//*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Verify that lexicon IDs in JSON files match what's documented in README.md
Files:
lexicons/org/hypercerts/funding/receipt.json
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to lexicons/**/*.json : Lexicon JSON files should follow the ATProto lexicon schema v1 structure with `lexicon`, `id`, and `defs.main` properties
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to lexicons/**/*.json : When adding a new lexicon, create a new JSON file in `lexicons/` following the namespace structure and then regenerate types
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : Verify that lexicon IDs in JSON files match what's documented in README.md
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-09T16:09:09.119Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to lexicons/**/*.json : Validate lexicon definitions and regenerate types using `npm run check` before deployment
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to ERD.puml : Ensure that all entities referenced in ERD.puml correspond to lexicons defined in lexicons/**/*.json
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
🪛 GitHub Actions: Lint
lexicons/org/hypercerts/funding/receipt.json
[warning] 1-1: Code style issues found in the above file. Run Prettier with --write to fix.
[error] 1-1: Prettier formatting check failed (prettier --check .). Run 'prettier --write .' to fix code style issues in this file.
satyam-mishra-pce
left a comment
There was a problem hiding this comment.
I left some comments.
I have some questions...
- Is this lexicon to be used to record transactions after tokenization of hypercerts?
- Who holds this record? Receipient, or the Sender?
- What is gonna be the actual source of truth? Because the record can be altered by the creator of it.
| "record": { | ||
| "type": "object", | ||
| "required": [ | ||
| "to", |
There was a problem hiding this comment.
@holkexyz Shouldn't from be required in funding receipts? Even with anonymous donations, I think it's better to require explicit declaration that they're anonymous rather than not being able to distinguish between that and "oops the code accidentally forgot to include that field".
| "for": { | ||
| "type": "string", | ||
| "format": "at-uri", | ||
| "description": "Optional reference to the activity, project, or organization this funding relates to." |
There was a problem hiding this comment.
If I just want to record that I sent you some funds. Most of the time, we want to record what it was for, but maybe I just want to record the payment
81a470b to
6c478d5
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (4)
ERD-with-fields.pngis excluded by!**/*.pngERD-with-fields.svgis excluded by!**/*.svgERD.pngis excluded by!**/*.pngERD.svgis excluded by!**/*.svg
📒 Files selected for processing (3)
ERD.puml(4 hunks)README.md(1 hunks)lexicons/org/hypercerts/funding/receipt.json(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- ERD.puml
🧰 Additional context used
📓 Path-based instructions (2)
README.md
📄 CodeRabbit inference engine (Custom checks)
README.md: Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Files:
README.md
lexicons/**/*.json
📄 CodeRabbit inference engine (AGENTS.md)
lexicons/**/*.json: Regenerate TypeScript API types after modifying lexicon JSON files by runningnpm run gen-api
Lexicon JSON files should follow the ATProto lexicon schema v1 structure withlexicon,id, anddefs.mainproperties
When adding a new lexicon, create a new JSON file inlexicons/following the namespace structure and then regenerate types
Validate lexicon definitions and regenerate types usingnpm run checkbefore deployment
lexicons/**/*.json: When adding, modifying, or deleting files in lexicons//*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
When adding, modifying, or deleting files in lexicons//*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Verify that lexicon IDs in JSON files match what's documented in README.md
Files:
lexicons/org/hypercerts/funding/receipt.json
🧠 Learnings (13)
📓 Common learnings
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to ERD.puml : When a new lexicon affects entity relationships, update `ERD.puml` to reflect the changes
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
Applied to files:
README.mdlexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Applied to files:
README.mdlexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-15T16:39:23.964Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 39
File: README.md:17-17
Timestamp: 2025-12-15T16:39:23.964Z
Learning: In the hypercerts-lexicon repository, standardize on the hyphenless spelling 'onchain' across Markdown documentation (e.g., README.md and other md files) to match the industry standard. Update any occurrences of 'on-chain' to 'onchain' and ensure consistency throughout all documentation.
Applied to files:
README.md
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-09T16:09:09.119Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to lexicons/**/*.json : Lexicon JSON files should follow the ATProto lexicon schema v1 structure with `lexicon`, `id`, and `defs.main` properties
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-15T15:33:19.949Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 37
File: lexicons/org/hypercerts/funding/receipt.json:1-71
Timestamp: 2025-12-15T15:33:19.949Z
Learning: In the hypercerts-lexicon repository, do not comment on Prettier/formatting issues in code reviews since they are reported by the lint workflow. Do not duplicate the lint output in reviews to reduce noise; focus review comments on functional/semantic issues and other non-formatting concerns.
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : Verify that lexicon IDs in JSON files match what's documented in README.md
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-15T10:13:17.689Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 34
File: lexicons/org/hypercerts/claim/evaluation.json:45-63
Timestamp: 2025-12-15T10:13:17.689Z
Learning: In the hypercerts-lexicon repository, CI automatically runs npm run gen-api and npm run check to regenerate TypeScript types and validate lexicon definitions. Do not include manual reminders to run these commands in code reviews, as CI handles consistency and validation for all lexicon JSON definitions under lexicons/.
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-09T16:09:09.119Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to lexicons/**/*.json : Validate lexicon definitions and regenerate types using `npm run check` before deployment
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to ERD.puml : Ensure that all entities referenced in ERD.puml correspond to lexicons defined in lexicons/**/*.json
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-09T16:09:09.119Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Check code formatting using `npm run lint` or `npm run format:check` before submitting code
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
🪛 GitHub Actions: Lint
README.md
[warning] 1-1: Code style issues found in README.md. Run Prettier with --write to fix.
[error] 1-1: Prettier formatting check failed. Run 'prettier --write' to fix code style issues.
🪛 LanguageTool
README.md
[style] ~294-~294: To form a complete sentence, be sure to include a subject.
Context: ...| ✅ | The recipient of the funds. Can be identified by DID or a clear-text na...
(MISSING_IT_THERE)
[grammar] ~299-~299: Ensure spelling is correct
Context: ...yment transaction (e.g. bank reference, onchain transaction hash, or processor-specific...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🔇 Additional comments (3)
README.md (2)
281-305: Properties documentation matches schema accurately.All fields in the funding receipt lexicon are properly documented with correct required/optional flags, types, and descriptions that align with the JSON schema. The lexicon ID is consistent between README and the JSON file.
281-305: ERD.puml is correctly updated with fundingReceipt entity and all relationships.The diagram includes the
fundingReceiptentity (lines 160-176) with the three required relationships:funder(from),contributor(to), andactivity(for). The entity definition and relationships align with the README.md documentation.lexicons/org/hypercerts/funding/receipt.json (1)
1-66: Schema structure follows ATProto v1 correctly and prior issues are addressed.The lexicon properly follows the ATProto schema format with
lexicon,id,defs.main, and appropriate record definition. Previously identified concerns have been resolved:
- "occuredAt" typo corrected to "occurredAt" ✓
amountfield usesstringtype for fractional values ✓fromfield is correctly marked as required ✓- All properties match their documentation in README.md ✓
86fd62c to
937f89b
Compare
|
@satyam-mishra-pce wrote:
I think it's only (or at least mainly) for funding pre-tokenization, e.g. donations.
Probably the platform / broker who is handling the payments.
The platform / broker. |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
ERD.puml (2)
48-52: Funder entity modeling is consistent; consider updating the surrounding comment.
funderis modeled identically tocontributor(DID or name/pseudonym) and fits the existing pattern of non-lexicon entities, so this looks good. For clarity, you might extend the comment above to mention funders as well:-' Contributors are represented by DIDs or human-readable strings -' therefore do not require modelling via a lexicon. +' Contributors and funders are represented by DIDs or human-readable strings +' therefore do not require modelling via a lexicon.
159-174: FundingReceipt dataclass and relationships align with the lexicon; arrow direction is a minor style nit.The
fundingReceiptfields and their optionality match the JSON lexicon/README (from, to, for?, amount, currency, paymentRail?, paymentNetwork?, transactionId?, notes?, occurredAt?, createdAt), and the relationships
funder <-- fundingReceipt::from : fromcontributor <-- fundingReceipt::to : toactivity <-- fundingReceipt::for : forare consistent with the intended semantics.
If you want diagram consistency, you could flip these to follow the same left-to-right pattern used elsewhere (e.g.
contribution::contributors --> contributor):-funder <-- fundingReceipt::from : from -contributor <-- fundingReceipt::to : to -activity <-- fundingReceipt::for : for +fundingReceipt::from --> funder : from +fundingReceipt::to --> contributor : to +fundingReceipt::for --> activity : forPurely stylistic; current form is functionally fine.
Also applies to: 185-202
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (4)
ERD-with-fields.pngis excluded by!**/*.pngERD-with-fields.svgis excluded by!**/*.svgERD.pngis excluded by!**/*.pngERD.svgis excluded by!**/*.svg
📒 Files selected for processing (3)
ERD.puml(4 hunks)README.md(1 hunks)lexicons/org/hypercerts/funding/receipt.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- lexicons/org/hypercerts/funding/receipt.json
🧰 Additional context used
📓 Path-based instructions (2)
ERD.puml
📄 CodeRabbit inference engine (AGENTS.md)
When a new lexicon affects entity relationships, update
ERD.pumlto reflect the changes
ERD.puml: Ensure that all entities referenced in ERD.puml correspond to lexicons defined in lexicons//*.json
Ensure all relationships shown in ERD.puml are valid based on the JSON lexicon schemas in lexicons//*.json
Verify that entity names in ERD.puml match lexicon IDs (e.g., 'activity' entity should correspond to org.hypercerts.claim.activity lexicon)
Files:
ERD.puml
README.md
📄 CodeRabbit inference engine (Custom checks)
README.md: Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Files:
README.md
🧠 Learnings (4)
📓 Common learnings
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-09T16:09:09.119Z
Learning: Applies to ERD.puml : When a new lexicon affects entity relationships, update `ERD.puml` to reflect the changes
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
Applied to files:
README.md
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Applied to files:
README.md
📚 Learning: 2025-12-15T16:39:23.964Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 39
File: README.md:17-17
Timestamp: 2025-12-15T16:39:23.964Z
Learning: In the hypercerts-lexicon repository, standardize on the hyphenless spelling 'onchain' across Markdown documentation (e.g., README.md and other md files) to match the industry standard. Update any occurrences of 'on-chain' to 'onchain' and ensure consistency throughout all documentation.
Applied to files:
README.md
🪛 LanguageTool
README.md
[grammar] ~299-~299: Ensure spelling is correct
Context: ...yment transaction (e.g. bank reference, onchain transaction hash, or processor-specific...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
937f89b to
f1cc988
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (4)
ERD-with-fields.pngis excluded by!**/*.pngERD-with-fields.svgis excluded by!**/*.svgERD.pngis excluded by!**/*.pngERD.svgis excluded by!**/*.svg
📒 Files selected for processing (3)
ERD.puml(4 hunks)README.md(1 hunks)lexicons/org/hypercerts/funding/receipt.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- lexicons/org/hypercerts/funding/receipt.json
🧰 Additional context used
📓 Path-based instructions (3)
ERD.puml
📄 CodeRabbit inference engine (Custom checks)
ERD.puml: Ensure that all entities referenced in ERD.puml correspond to lexicons defined in lexicons//*.json
Ensure all relationships shown in ERD.puml are valid based on the JSON lexicon schemas in lexicons//*.json
Verify that entity names in ERD.puml match lexicon IDs (e.g., 'activity' entity should correspond to org.hypercerts.claim.activity lexicon)
Files:
ERD.puml
!(types)/**/*.{js,ts,tsx,json,md}
📄 CodeRabbit inference engine (AGENTS.md)
Run
npm run formatwith Prettier before committing to ensure consistent code formatting
Files:
ERD.pumlREADME.md
README.md
📄 CodeRabbit inference engine (Custom checks)
README.md: Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Files:
README.md
🧠 Learnings (5)
📓 Common learnings
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Update `README.md` documentation when adding or modifying lexicon definitions
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Update `README.md` documentation when adding or modifying lexicon definitions
Applied to files:
README.md
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
Applied to files:
README.md
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Applied to files:
README.md
📚 Learning: 2025-12-15T16:39:23.964Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 39
File: README.md:17-17
Timestamp: 2025-12-15T16:39:23.964Z
Learning: In the hypercerts-lexicon repository, standardize on the hyphenless spelling 'onchain' across Markdown documentation (e.g., README.md and other md files) to match the industry standard. Update any occurrences of 'on-chain' to 'onchain' and ensure consistency throughout all documentation.
Applied to files:
README.md
🪛 LanguageTool
README.md
[grammar] ~299-~299: Ensure spelling is correct
Context: ...yment transaction (e.g. bank reference, onchain transaction hash, or processor-specific...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🔇 Additional comments (2)
ERD.puml (2)
48-52: New funder entity added correctly.The new
funderentity follows the same pattern as the existingcontributorentity, appropriately marked with entity stereotype and color #FFD4A3.
159-174: fundingReceipt dataclass structure matches documentation.The field list in the
fundingReceiptdataclass aligns with the properties documented in README.md (lines 291-303). All required and optional fields are correctly represented.
| "key": "tid", | ||
| "record": { | ||
| "type": "object", | ||
| "required": ["from", "to", "amount", "currency", "createdAt"], |
There was a problem hiding this comment.
I left out "from" intentionally, as an anonymous donation would be an empty "from" field. I think that is cleaner than having "anon" or so in the field. Or is there a different best practice? @aspiers
There was a problem hiding this comment.
Yes I think there is a different best practice as mentioned in #37 (comment)
When data is omitted, it is open to different interpretations as well as buggy code which accidentally omits the value. In contrast when it's explicitly marked as anonymous then there is no doubt of the intended meaning, and requiring a value will reveal omission bugs early.
| "key": "tid", | ||
| "record": { | ||
| "type": "object", | ||
| "required": ["to", "amount", "currency", "createdAt"], |
There was a problem hiding this comment.
I removed "from" as required because an empty field represents an anon donation. Or is there a different best practice for that?
1076a6c to
a9603d6
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
lexicons/org/hypercerts/funding/receipt.json (1)
11-16: Verify resolution of thefromfield requirement contradiction.The
fromfield remains in the required array while its description states "Leave empty if sender wants to stay anonymous." Required fields cannot be empty in practice, and an empty string would fail DID format validation.This contradiction was flagged in previous reviews and marked as addressed, but appears to persist in the current code.
Verify the current resolution status:
#!/bin/bash # Check the current state of the from field in the lexicon echo "=== Checking 'from' field requirement status ===" cat lexicons/org/hypercerts/funding/receipt.json | jq '.defs.main.record.required, .defs.main.record.properties.from' echo -e "\n=== Checking README documentation ===" grep -A 1 "| \`from\`" README.md | head -2
🧹 Nitpick comments (1)
ERD.puml (1)
272-275: Consider removing redundant direct funding relationship.Line 272 creates a direct
funder --> activity : fundsrelationship, while line 275 showsfundingReceipt::for --> activity : funds. Both represent the same "funds" relationship type to activity, which appears redundant.The lexicon schema models funding through the
fundingReceiptrecord (withfrom,to, andforfields), not as a direct funder→activity relationship. The three join-table relationships (lines 273-275) already fully represent the funding model.Consider removing line 272 to eliminate redundancy:
-funder --> activity : funds fundingReceipt::from --> funder fundingReceipt::to --> contributor fundingReceipt::for --> activity : fundsAlternatively, if showing both conceptual and implementation relationships is intentional, add a comment explaining the distinction.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (4)
ERD-with-fields.pngis excluded by!**/*.pngERD-with-fields.svgis excluded by!**/*.svgERD.pngis excluded by!**/*.pngERD.svgis excluded by!**/*.svg
📒 Files selected for processing (3)
ERD.puml(4 hunks)README.md(1 hunks)lexicons/org/hypercerts/funding/receipt.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
lexicons/**/*.json
📄 CodeRabbit inference engine (Custom checks)
lexicons/**/*.json: When adding, modifying, or deleting files in lexicons//*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
When adding, modifying, or deleting files in lexicons//*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Verify that lexicon IDs in JSON files match what's documented in README.md
lexicons/**/*.json: After modifying lexicon JSON files, regenerate TypeScript types by runningnpm run gen-api
Lexicon JSON files should follow the ATProto lexicon schema v1 specification
Runnpm run checkbefore committing to validate lexicon syntax and ensure valid lexicon definitions
UpdateERD.pumlwhen modifying lexicon structures to reflect entity relationship changes
UpdateREADME.mddocumentation when adding or modifying lexicon definitions
Organize lexicon files by namespace following the directory structure pattern (e.g.,org/hypercerts/claim/*.json)
Files:
lexicons/org/hypercerts/funding/receipt.json
!(types)/**/*.{js,ts,tsx,json,md}
📄 CodeRabbit inference engine (AGENTS.md)
Run
npm run formatwith Prettier before committing to ensure consistent code formatting
Files:
lexicons/org/hypercerts/funding/receipt.jsonERD.pumlREADME.md
ERD.puml
📄 CodeRabbit inference engine (Custom checks)
ERD.puml: Ensure that all entities referenced in ERD.puml correspond to lexicons defined in lexicons//*.json
Ensure all relationships shown in ERD.puml are valid based on the JSON lexicon schemas in lexicons//*.json
Verify that entity names in ERD.puml match lexicon IDs (e.g., 'activity' entity should correspond to org.hypercerts.claim.activity lexicon)
Files:
ERD.puml
README.md
📄 CodeRabbit inference engine (Custom checks)
README.md: Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Files:
README.md
🧠 Learnings (20)
📓 Common learnings
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Update `README.md` documentation when adding or modifying lexicon definitions
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update README.md to reflect changes (document new lexicons, update modified properties, remove deleted lexicons from documentation)
Applied to files:
lexicons/org/hypercerts/funding/receipt.jsonREADME.md
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Update `README.md` documentation when adding or modifying lexicon definitions
Applied to files:
lexicons/org/hypercerts/funding/receipt.jsonREADME.md
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Update `ERD.puml` when modifying lexicon structures to reflect entity relationship changes
Applied to files:
lexicons/org/hypercerts/funding/receipt.jsonERD.puml
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : When adding, modifying, or deleting files in lexicons/**/*.json, update ERD.puml if entity relationships changed (add new entities, modify relationships, remove deleted entities)
Applied to files:
lexicons/org/hypercerts/funding/receipt.jsonERD.puml
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Organize lexicon files by namespace following the directory structure pattern (e.g., `org/hypercerts/claim/*.json`)
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: This repository contains ATProto lexicon definitions for the Hypercerts protocol with auto-generated TypeScript types - prioritize lexicon accuracy and consistency
Applied to files:
lexicons/org/hypercerts/funding/receipt.jsonREADME.md
📚 Learning: 2025-12-15T15:33:19.949Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 37
File: lexicons/org/hypercerts/funding/receipt.json:1-71
Timestamp: 2025-12-15T15:33:19.949Z
Learning: In the hypercerts-lexicon repository, do not comment on Prettier/formatting issues in code reviews since they are reported by the lint workflow. Do not duplicate the lint output in reviews to reduce noise; focus review comments on functional/semantic issues and other non-formatting concerns.
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to lexicons/**/*.json : Verify that lexicon IDs in JSON files match what's documented in README.md
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure all properties documented in README.md match the actual JSON schema definitions in lexicons/**/*.json
Applied to files:
lexicons/org/hypercerts/funding/receipt.jsonREADME.md
📚 Learning: 2025-12-15T10:13:17.689Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 34
File: lexicons/org/hypercerts/claim/evaluation.json:45-63
Timestamp: 2025-12-15T10:13:17.689Z
Learning: In the hypercerts-lexicon repository, CI automatically runs npm run gen-api and npm run check to regenerate TypeScript types and validate lexicon definitions. Do not include manual reminders to run these commands in code reviews, as CI handles consistency and validation for all lexicon JSON definitions under lexicons/.
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to README.md : Ensure that all lexicons documented in README.md exist as JSON files in the lexicons/ directory
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Run `npm run check` before committing to validate lexicon syntax and ensure valid lexicon definitions
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: The `.prettierignore` file excludes `types/` directory since it contains generated code that should not be manually formatted
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-15T17:53:11.862Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T17:53:11.862Z
Learning: Applies to lexicons/**/*.json : Lexicon JSON files should follow the ATProto lexicon schema v1 specification
Applied to files:
lexicons/org/hypercerts/funding/receipt.json
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to ERD.puml : Verify that entity names in ERD.puml match lexicon IDs (e.g., 'activity' entity should correspond to org.hypercerts.claim.activity lexicon)
Applied to files:
ERD.puml
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to ERD.puml : Ensure all relationships shown in ERD.puml are valid based on the JSON lexicon schemas in lexicons/**/*.json
Applied to files:
ERD.puml
📚 Learning: 2025-12-11T15:44:24.397Z
Learnt from: CR
Repo: hypercerts-org/hypercerts-lexicon PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-12-11T15:44:24.397Z
Learning: Applies to ERD.puml : Ensure that all entities referenced in ERD.puml correspond to lexicons defined in lexicons/**/*.json
Applied to files:
ERD.puml
📚 Learning: 2025-12-15T15:33:19.949Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 37
File: lexicons/org/hypercerts/funding/receipt.json:1-71
Timestamp: 2025-12-15T15:33:19.949Z
Learning: For the hypercerts-org/hypercerts-lexicon repository, do not comment on Prettier formatting issues in code reviews because they are already reported by the lint workflow, and duplicating the report adds noise to the review.
Applied to files:
ERD.puml
📚 Learning: 2025-12-15T16:39:23.964Z
Learnt from: aspiers
Repo: hypercerts-org/hypercerts-lexicon PR: 39
File: README.md:17-17
Timestamp: 2025-12-15T16:39:23.964Z
Learning: In the hypercerts-lexicon repository, standardize on the hyphenless spelling 'onchain' across Markdown documentation (e.g., README.md and other md files) to match the industry standard. Update any occurrences of 'on-chain' to 'onchain' and ensure consistency throughout all documentation.
Applied to files:
README.md
🪛 LanguageTool
README.md
[grammar] ~324-~324: Ensure spelling is correct
Context: ...yment transaction (e.g. bank reference, onchain transaction hash, or processor-specific...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🔇 Additional comments (3)
lexicons/org/hypercerts/funding/receipt.json (1)
1-66: Lexicon structure is well-designed.The lexicon follows ATProto v1 schema correctly with appropriate field types, format constraints, and optional/required designations. The use of string types for
amountand avoidance of enum constraints align with extensibility best practices.README.md (1)
306-330: Documentation is complete and consistent with lexicon schema.The README section accurately documents all properties from the lexicon JSON file, including types, requirements, formats, and constraints. Field descriptions match the schema definitions.
Note: LanguageTool flags "onchain" at line 324, but per repository standards, the hyphenless spelling is correct.
Based on learnings, this repository standardizes on the hyphenless spelling "onchain" across documentation.
ERD.puml (1)
175-202: Entity and dataclass definitions are accurate.The
funderentity andfundingReceiptdataclass correctly reflect the lexicon schema. The funder follows the same pattern as contributor (DID or name-based entity), and the fundingReceipt includes all fields with correct optionality markers.
a9603d6 to
a8a20c4
Compare
Summary by CodeRabbit
New Features
Data Model
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.