Skip to content

Remove project field - #68

Closed
s-adamantine wants to merge 2 commits into
developfrom
remove-project-field
Closed

Remove project field#68
s-adamantine wants to merge 2 commits into
developfrom
remove-project-field

Conversation

@s-adamantine

@s-adamantine s-adamantine commented Jan 19, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Schema Updates
    • Simplified activity records by removing the project field; project relationships are now managed through collections, providing developers greater flexibility in structuring project-to-activity links
    • Made hypercert field required in evidence records

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot

changeset-bot Bot commented Jan 19, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 8d336b6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@hypercerts-org/lexicon Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jan 19, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR introduces a changeset that removes the project field from the activity claim schema and makes the hypercert field required in the evidence schema. The changes enforce separation of concerns by keeping activity records minimal and delegating project-related data management to collection lexicons.

Changes

Cohort / File(s) Summary
Changeset Documentation
.changeset/wild-rivers-flow.md
New minor version bump entry describing the schema changes, rationale for separation of concerns, and delegation of project relationship management to developers.
Activity Schema
lexicons/org/hypercerts/claim/activity.json
Removed project property (AT-URI reference to project record) that previously enforced bidirectional linking between activities and projects. Minor formatting adjustment to activityWeight required fields array.
Evidence Schema
lexicons/org/hypercerts/claim/evidence.json
Added hypercert field to the required fields list, making it mandatory alongside existing required fields (content, title, createdAt).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • PR #33: Directly opposes these changes—adds the project property and activityWeight definitions to activity.json while this PR removes the project property.
  • PR #28: Modifies the evidence record's reference field by replacing/renaming hypercert with activity, directly conflicting with the requirement change here.
  • PR #34: Restructures and renames fields in evidence.json, potentially conflicting with the required fields modification in this PR.

Suggested reviewers

  • holkexyz
  • aspiers

Poem

🐰 A schema springs forth, lean and bright,
Projects drift free, collections take flight,
No bidirectional chains to constrain,
Developers choose how relationships sustain,
Activity minimal, evidence required true,
Schema separation—a hop-skip-and-boo!


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)
Check name Status Explanation Resolution
Lexicon Documentation Sync ❌ Error README.md and ERD.puml are not synchronized with JSON schema changes: activity.json's removed 'project' field is still documented in README.md line 188 and ERD.puml line 68; evidence.json's new required 'hypercert' field is missing from both README.md and ERD.puml. Remove 'project' field from README.md activity table (line 188) and ERD.puml activity entity (line 68). Add 'hypercert' field to README.md evidence table and ERD.puml evidence entity (lines 73-84).
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Remove project field' directly and accurately describes the main change: removing the project property from the activity claim schema.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
lexicons/org/hypercerts/claim/evidence.json (1)

10-25: Define the new required hypercert property.

Line 11 requires hypercert, but it is not defined in properties, which makes the lexicon invalid and breaks client validation. Please add the property (or remove it from required if it’s not intended).

🐛 Proposed fix (adjust ref/type as appropriate)
         "properties": {
+          "hypercert": {
+            "type": "ref",
+            "ref": "com.atproto.repo.strongRef",
+            "description": "A strong reference to the hypercert record this evidence is associated with."
+          },
           "subject": {
             "type": "ref",
             "ref": "com.atproto.repo.strongRef",
             "description": "A strong reference to the record this evidence relates to (e.g. an activity, project, claim, or evaluation)."
           },
lexicons/org/hypercerts/claim/activity.json (1)

18-80: Update README.md and ERD.puml to remove the project field from the activity record.

The project field has been removed from the activity lexicon, but README.md (line 188) and ERD.puml still reference it. Remove the project row from the activity properties table in README.md and remove the project? field and activity::project --> project relationship from the activity entity in ERD.puml to maintain documentation-implementation consistency.

🤖 Fix all issues with AI agents
In @.changeset/wild-rivers-flow.md:
- Around line 5-10: Update the changeset to also document the new required
hypercert field on the evidence schema: add a short sentence to the existing
changeset note stating that the evidence claim now requires a hypercert field
(and that this is a public API change) so release notes cover it; reference the
"evidence" schema and the "hypercert" field in the text and keep the note
concise and aligned with the existing reasoning about removal of project from
activity.

Comment on lines +5 to +10
Remove `project` field from `activity` claim schema.

Reasoning:
- **Separation of Concerns & Flexibility**: We decided to remove the `project` field to keep the activity claim as small as possible and free of redundant information.
- **Lexicon Strategy**: Instead of a direct field, we will use a `collection` lexicon that can encompass project-related data. This allows for collections of collections, enabling more complex structures.
- **Developer Control**: This approach allows app developers to decide whether to enforce a 1-1 or 1-many relationship between projects and activities, rather than enforcing it at the schema level.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add the evidence schema change to the changeset.

The changeset omits the new required hypercert field in the evidence schema. Please add a brief note so release notes cover all public API changes.

✍️ Suggested update
 Remove `project` field from `activity` claim schema.
+Require `hypercert` on `evidence` records.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Remove `project` field from `activity` claim schema.
Reasoning:
- **Separation of Concerns & Flexibility**: We decided to remove the `project` field to keep the activity claim as small as possible and free of redundant information.
- **Lexicon Strategy**: Instead of a direct field, we will use a `collection` lexicon that can encompass project-related data. This allows for collections of collections, enabling more complex structures.
- **Developer Control**: This approach allows app developers to decide whether to enforce a 1-1 or 1-many relationship between projects and activities, rather than enforcing it at the schema level.
Remove `project` field from `activity` claim schema.
Require `hypercert` on `evidence` records.
Reasoning:
- **Separation of Concerns & Flexibility**: We decided to remove the `project` field to keep the activity claim as small as possible and free of redundant information.
- **Lexicon Strategy**: Instead of a direct field, we will use a `collection` lexicon that can encompass project-related data. This allows for collections of collections, enabling more complex structures.
- **Developer Control**: This approach allows app developers to decide whether to enforce a 1-1 or 1-many relationship between projects and activities, rather than enforcing it at the schema level.
🤖 Prompt for AI Agents
In @.changeset/wild-rivers-flow.md around lines 5 - 10, Update the changeset to
also document the new required hypercert field on the evidence schema: add a
short sentence to the existing changeset note stating that the evidence claim
now requires a hypercert field (and that this is a public API change) so release
notes cover it; reference the "evidence" schema and the "hypercert" field in the
text and keep the note concise and aligned with the existing reasoning about
removal of project from activity.

@s-adamantine

Copy link
Copy Markdown
Contributor Author

duplicate PR

@aspiers

aspiers commented Jan 19, 2026

Copy link
Copy Markdown
Contributor

Yep duplicate of #67 as discussed just now

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