# Projection Operations This repo is projected into AFFiNE manually for now. Canonical Gitea repo: ```text http://100.64.0.1:30087/virgil-admin/rta-mock-docs.git ``` Projected AFFiNE path: ```text Agent Workspace / projected-markdown / mock-rta-docs ``` ## What A Collaborator Does ```sh cd ~/Developer/Section0/rta-mock-docs git pull --ff-only # edit Markdown git add . git commit -m "Update docs" git push ``` ## What The Projection Operator Does The operator keeps a separate checkout so projection never depends on a collaborator's dirty working tree. ```sh git -C /Users/virgil/Developer/rta/tmp/markdown-projection-gitea/projector-checkout/rta-mock-docs pull --ff-only ``` Then from `home-lab-v7`: ```sh cd /Users/virgil/Developer/Virgil-Info/home-lab-v7 nix develop --command bash -lc 'scripts/ops/sync-obsidian-affine.rb \ --name rta-mock-docs \ --source /Users/virgil/Developer/rta/tmp/markdown-projection-gitea/projector-checkout/rta-mock-docs \ --username projection-bot \ --authentik-sub rta-projection-bot \ --affine-workspace "Agent Workspace" \ --affine-workspace-id 53ea0a0b-eca7-4887-8e31-f5b2a8ab7744 \ --affine-user-id ce42f50a-5367-4466-920b-7422c4e27de0 \ --affine-namespace projected-markdown/mock-rta-docs \ --include "**/*.md" \ --apply' ``` Expected healthy result: ```text docs: 3 mark stale: 0 mode: one-way read-only AFFiNE docs ``` ## Rule Of Thumb If the source repo changes, pull the projector checkout and run projection. If AFFiNE changes, treat it as a comment or sketch. Move durable edits back to Markdown before projecting again.