-
Notifications
You must be signed in to change notification settings - Fork 0
Add a fake schedule adapter contract suite #22
Copy link
Copy link
Open
Labels
ai-readyPortable work packet ready for human-and-AI implementationPortable work packet ready for human-and-AI implementationarea:adaptersVendor-neutral integration and sync boundariesVendor-neutral integration and sync boundariesarea:scheduleSchedule model, CPM, calendars, and statusSchedule model, CPM, calendars, and statushelp wantedExtra attention is neededExtra attention is neededkind:fixtureSynthetic truth fixture or minimized failure caseSynthetic truth fixture or minimized failure casereview:rustRust API or implementation review requestedRust API or implementation review requestedreview:schedulingScheduling or project-controls review requestedScheduling or project-controls review requestedsize:sOne narrow crate sliceOne narrow crate slicestate:readyReady for a contributor to claimReady for a contributor to claim
Description
Metadata
Metadata
Assignees
Labels
ai-readyPortable work packet ready for human-and-AI implementationPortable work packet ready for human-and-AI implementationarea:adaptersVendor-neutral integration and sync boundariesVendor-neutral integration and sync boundariesarea:scheduleSchedule model, CPM, calendars, and statusSchedule model, CPM, calendars, and statushelp wantedExtra attention is neededExtra attention is neededkind:fixtureSynthetic truth fixture or minimized failure caseSynthetic truth fixture or minimized failure casereview:rustRust API or implementation review requestedRust API or implementation review requestedreview:schedulingScheduling or project-controls review requestedScheduling or project-controls review requestedsize:sOne narrow crate sliceOne narrow crate slicestate:readyReady for a contributor to claimReady for a contributor to claim
Outcome
Create a deterministic fake
ScheduleAdapterthat proves capability declarations, identity-preserving import, plan-before-apply behavior, and explicit unsupported operations without using a vendor SDK.Truth source
The fake imports two activities and one finish-start relationship with fixed Rustit UUIDs plus external IDs
A1000andA1010. Its export plan reports one update, zero creates/deletes, and no warnings.Invariants
ExternalIdentityvaluesplan_exportdoes not mutate external stateAdapterError::UnsupportedExpected scope
Add test support and a Sync Lab fixture against the existing adapter traits.
Non-goals
Network calls, credentials, vendor payload schemas, retry policy, and a production adapter.
Acceptance and evidence
cargo xtask verifypassesDependencies: #10 and the existing adapter contracts.