anchor.diff:      uuid_based_path :: undefined | file_meta:uuid_based_path(),
       guid :: fslogic_worker:file_guid(),
       uuid :: file_meta:uuid(),
  +    share_id :: undefined | od_share:id(),
       space_id :: od_space:id(),
       file_doc :: undefined | file_meta:doc(),
       parent :: undefined | ctx(),
  
positive.code: 
  -spec new_by_uuid_space_and_share_id(file_meta:uuid(), od_space:id(), od_share:id()) -> ctx().
  new_by_uuid_space_and_share_id(Uuid, SpaceId, ShareId) ->
      #file_ctx{guid = file_id:pack_share_guid(Uuid, SpaceId, ShareId), uuid = Uuid, space_id = SpaceId}.
  
  -spec new_by_doc(file_meta:doc(), od_space:id()) -> ctx().
  new_by_doc(Doc, SpaceId) ->
  
negative.code: %%--------------------------------------------------------------------
  -spec new_by_guid(fslogic_worker:file_guid()) -> ctx().
  new_by_guid(Guid) ->
      {Uuid, SpaceId, ShareId} = file_id:unpack_share_guid(Guid),
      #file_ctx{guid = Guid, uuid = Uuid, space_id = SpaceId, share_id = ShareId}.
  
  -spec new_by_uuid_and_space_id(file_meta:uuid(), od_space:id()) -> ctx().
  new_by_uuid_and_space_id(Uuid, SpaceId) ->
  