You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GitHub Wiki and the main repo are two separate git repositories — litentry/agentKeys and litentry/agentKeys.wiki.git. They are not synced. Right now, anything we publish to the wiki has to be edited via the GitHub web UI (or pushed manually from a local clone of the wiki repo), which means:
Wiki content skips PR review. Anyone with push access can change a wiki page without code review, without a diff in the main repo, and without any link back to the commit that motivated the change.
No audit trail. Wiki history lives in a separate repo most contributors never look at. There is no way to ask "what wiki updates landed alongside this feature?"
We need wiki content to be authored and reviewed inside the main repo, then mirrored automatically to the wiki repo.
Solution
Add a wiki/ folder to the main repo as the canonical source for all GitHub Wiki content, and a one-way GitHub Action that mirrors it to litentry/agentKeys.wiki.git on every push to main that touches wiki/.
This gives us:
Wiki edits go through PRs like any other code change.
Wiki history is part of main repo history.
The wiki repo is purely derived — you can blow it away and republish from main at any time.
Contributors never need a separate clone of the wiki repo.
Implementation
Step 1 — Initialize the wiki repo (one-time, manual).
GitHub does not create litentry/agentKeys.wiki.git until at least one wiki page has been saved through the web UI. Visit https://github.com/litentry/agentKeys/wiki, click "Create the first page", save anything (even just # Welcome). This is a prerequisite for the workflow to work.
Step 2 — Add wiki/ folder to the main repo.
Move/seed wiki content under wiki/ in the main repo. Initial content suggestion (from existing docs):
wiki/
├── Home.md # landing page; index of other pages
├── Architecture.md # mirror or summary of docs/spec/architecture.md
├── Manual-Testing.md # mirror or summary of docs/manual-test-stage4.md
├── Field-Name-Translation.md # mirror of docs/field-name-translation.md (when #1 lands)
└── Development-Stages.md # mirror or summary of docs/spec/plans/development-stages.md
The actual seeding can be done in a separate PR; this issue tracks the mirror infrastructure.
Step 3 — Add the workflow.
Create .github/workflows/publish-wiki.yml:
name: Publish wikion:
push:
branches: [main]paths: ['wiki/**']jobs:
publish:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v4
- uses: Andrew-Chen-Wang/github-wiki-action@v4with:
path: wiki/# token defaults to GITHUB_TOKEN, which has wiki write access
That is the whole workflow. On every push to main that touches wiki/, the action clones agentKeys.wiki.git, copies wiki/* over, commits, and pushes.
Step 4 — Lock down direct wiki edits (optional but recommended).
In repo settings → Features → Wikis, set "Restrict editing to collaborators only". This prevents random outside contributors from editing the wiki through the web UI and getting clobbered on the next mirror push. Even better: document in wiki/Home.md itself: "This wiki is generated from wiki/ in the main repo. Edit there, not here."
Tradeoffs / out of scope
One-way mirror only. If someone edits the wiki through the web UI after the workflow runs, those edits will be overwritten on the next push to main that touches wiki/. This is the intended behavior — main repo is the source of truth. Document this clearly on the wiki home page.
No two-way sync. We are not building a system that lets people edit the wiki in the browser and have those edits land back in the main repo. That would require a separate workflow (wiki webhook → main repo PR), which is significantly more complex and not worth the effort for our scale.
No automatic conversion from docs/. The mirror copies wiki/* verbatim. If we want certain docs/ files to also appear on the wiki, we either (a) duplicate them under wiki/ and accept the manual sync cost, or (b) add a build step that copies/transforms docs/foo.md → wiki/Foo.md before the mirror runs. Option (a) is fine for v0; option (b) can be a follow-up if the duplication becomes painful.
Not changing any source code. This is 100% docs + CI configuration.
Verification plan
Initialize wiki repo manually via the web UI (one-time prereq above).
Land the workflow in a PR. Merge to main.
Test with a trivial wiki page. Create wiki/Home.md with # Welcome, commit, push. The Actions tab should show the Publish wiki workflow running. After ~30s, refresh https://github.com/litentry/agentKeys/wiki and confirm the home page renders.
Test path filtering. Push a commit that does not touch wiki/ (e.g., a Rust source change). Confirm the workflow does not run.
Test internal wiki links. Add a second page wiki/Architecture.md, link to it from wiki/Home.md with [Architecture](Architecture). After mirror, confirm the link works on the published wiki.
Test deletion. Remove a wiki page in main repo, push. Confirm it disappears from the published wiki on the next run.
Files touched
Path
Change
.github/workflows/publish-wiki.yml
New file — the mirror workflow above
wiki/Home.md
New file — initial landing page (can be a separate PR)
Problem
GitHub Wiki and the main repo are two separate git repositories —
litentry/agentKeysandlitentry/agentKeys.wiki.git. They are not synced. Right now, anything we publish to the wiki has to be edited via the GitHub web UI (or pushed manually from a local clone of the wiki repo), which means:docs/manual-test-stage4.md, the planneddocs/field-name-translation.mdfrom docs: human-readable keychain metadata in manual tests + field-name translation design note #1) drift out of sync because they live in different repos with different review surfaces.We need wiki content to be authored and reviewed inside the main repo, then mirrored automatically to the wiki repo.
Solution
Add a
wiki/folder to the main repo as the canonical source for all GitHub Wiki content, and a one-way GitHub Action that mirrors it tolitentry/agentKeys.wiki.giton every push tomainthat toucheswiki/.This gives us:
Implementation
Step 1 — Initialize the wiki repo (one-time, manual).
GitHub does not create
litentry/agentKeys.wiki.gituntil at least one wiki page has been saved through the web UI. Visit https://github.com/litentry/agentKeys/wiki, click "Create the first page", save anything (even just# Welcome). This is a prerequisite for the workflow to work.Step 2 — Add
wiki/folder to the main repo.Move/seed wiki content under
wiki/in the main repo. Initial content suggestion (from existing docs):The actual seeding can be done in a separate PR; this issue tracks the mirror infrastructure.
Step 3 — Add the workflow.
Create
.github/workflows/publish-wiki.yml:That is the whole workflow. On every push to
mainthat toucheswiki/, the action clonesagentKeys.wiki.git, copieswiki/*over, commits, and pushes.Step 4 — Lock down direct wiki edits (optional but recommended).
In repo settings → Features → Wikis, set "Restrict editing to collaborators only". This prevents random outside contributors from editing the wiki through the web UI and getting clobbered on the next mirror push. Even better: document in
wiki/Home.mditself: "This wiki is generated fromwiki/in the main repo. Edit there, not here."Tradeoffs / out of scope
mainthat toucheswiki/. This is the intended behavior — main repo is the source of truth. Document this clearly on the wiki home page.docs/. The mirror copieswiki/*verbatim. If we want certaindocs/files to also appear on the wiki, we either (a) duplicate them underwiki/and accept the manual sync cost, or (b) add a build step that copies/transformsdocs/foo.md→wiki/Foo.mdbefore the mirror runs. Option (a) is fine for v0; option (b) can be a follow-up if the duplication becomes painful.Verification plan
main.wiki/Home.mdwith# Welcome, commit, push. The Actions tab should show thePublish wikiworkflow running. After ~30s, refresh https://github.com/litentry/agentKeys/wiki and confirm the home page renders.wiki/(e.g., a Rust source change). Confirm the workflow does not run.wiki/Architecture.md, link to it fromwiki/Home.mdwith[Architecture](Architecture). After mirror, confirm the link works on the published wiki.Files touched
.github/workflows/publish-wiki.ymlwiki/Home.mdwiki/(other pages)Related
Filed from a planning conversation. Happy to implement once approved, or hand off.