Customising the deferred pipeline

Basically what I want is to read/write/blit to specific render textures/buffers of the pipeline. From what I know we can create new passes using Render Features, but can we modify or read from a pass ?

1- Can I sample in a shader a render texture from the pipeline ? (e.g. the gbuffer color RT)
2- Can I Blit() to a specific render texture of the pipeline ? (e.g. to the gbuffer color RT)
3- There is no WorldPosition gbuffer RT right ? I am currently depth-reconstructing one but it is frame delayed due to depth-prepass not happening I guess ?

Alright to answer one of my own questions - I managed to Blit() to a RT set by another Render Feature (Screen Space Shadows in this case) by just doing this:

public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor)
{
    int width = (int)(cameraTextureDescriptor.width * _settings.screenSizeFactor);
    int height = (int)(cameraTextureDescriptor.height * _settings.screenSizeFactor);

    _tmpRTid = Shader.PropertyToID("_ContactShadowsRT");

    RenderTextureDescriptor rtd = new RenderTextureDescriptor(width, height, RenderTextureFormat.R8, 0, 0);

    cmd.GetTemporaryRT(_tmpRTid, rtd, FilterMode.Trilinear);
    _contactShadowsRTid = new RenderTargetIdentifier(_tmpRTid);
    _screenSpaceShadowsRTid = new RenderTargetIdentifier(Shader.PropertyToID("_ScreenSpaceShadowmapTexture"));

    ConfigureTarget(_contactShadowsRTid);
}

and then in the Execute() I would just:

Blit(cmd, _contactShadowsRTid, _contactShadowsRTid, _settings.contactShadowsMaterial, 0);
Blit(cmd, _contactShadowsRTid, _screenSpaceShadowsRTid);

*Only tested on Editor