overengineeringstudio / overengineeringstudio/effect-utils
notion-datasource-sync: complete schema and property authority model
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 82
- Forks
- 2
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 121
Description
Parent epic: #698
Problem
The conservative schema/property subset is implemented, but the broader property model still mixes supported values, computed read-only values, and fail-closed gaps that need principled promotion criteria.
Current Evidence
- Safe schema command path supports add property, rename property, and additive select/multi-select options with base schema guards.
- Destructive/type-changing/status schema operations remain fail-closed by design.
- Common writable property values and relation write subsets have coverage.
- Computed/generated properties are guarded as read-only.
Scope
- Define which additional schema mutations are safe to promote, if any.
- Keep destructive/type-changing/status-group workflows behind impact reports, explicit approval, fake tests, and live proof.
- Add explicit canonicalization/policy coverage for
place,unique_id, wiki verification behavior, status caveats, people/user identity and pagination, buttons/forms, and unsupported objects. - Complete relation/rollup/formula handling: checkpoint health, incomplete rollup states, formula depth/error cases, relation-sharing diagnostics, and empty-vs-inaccessible distinctions.
Repro / Proof Instructions
- Build fake-service fixtures for each candidate schema/property shape before live tests.
- For each promoted property write, prove stale-base conflict behavior and post-write hash verification.
- For each read-only/computed property, prove writes fail closed before remote mutation.
- For relation/rollup/formula cases, test empty, inaccessible, incomplete, and complete states separately.
Acceptance Criteria
- Support matrix distinguishes supported writes, read-only observation, fail-closed feasible gaps, and public-API impossibilities.
- Each promoted shape has canonical data model, fake-service tests, and live evidence when it mutates remote state.
- Unsupported shapes produce typed diagnostics, not silent omission or empty-value interpretation.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or entry points; start by defining the support matrix and the candidate schema/property shapes to cover. Build fake-service fixtures first, then test stale-base conflicts, post-write hash verification, fail-closed read-only writes, and empty, inaccessible, incomplete, and complete relation/rollup/formula states. Done means typed diagnostics, canonical models, fake-service coverage, and live evidence for remote mutations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend-api-design, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100