← knowledge.oriz.in

Canonical repo = pure data; umbrella = orchestrator

rule agentsynccanonicalsubmoduleworkspaceorchestration

Canonical = pure data; umbrella = orchestrator

The pattern

When something is a canonical source of truth (agent configs, skills, knowledge, memory, secrets):

  1. Data lives in its own repo — public, small, single-concern.
  2. That repo joins the umbrella as a submodule — flat under repos/own/infra/<slug> for infra concerns.
  3. The repo has no orchestration scripts. Just data + README.
  4. All wiring — sync scripts, hooks, scheduled tasks — lives in the umbrella at C:/D/oriz/scripts/.
  5. Global targets are derived, never edited by hand. Hand-edits get overwritten at next sync.

Instances (as of 2026-07-03)

Canonical repo Content Written by
chirag127/agent-configs Claude Code / OpenCode / Kilo config JSON scripts/sync-agent-configs.ps1 + Oriz-SyncAgentConfigs task
chirag127/agent-skills Skill folders (SKILL.md + files) scripts/sync-skills.ps1 + Oriz-SyncSkills task
chirag127/claude-memory MEMORY.md + per-project memory/ scripts/memory-pull.mjs + CC SessionStart hook
workspace .mcp.json MCP server manifests scripts/sync-mcp-configs.mjs (manual)
workspace .env.enc (sops+age) Secrets scripts/sync-env-to-system-env.ps1 + Oriz-SyncEnv task

Why

The minimum-content rule

Canonical repos hold user-diverges-from-default keys only. Anti-example: yesterday's kilo.jsonc had 744 lines because it re-typed Kilo's built-in 500-model provider list. Correct: 60 lines — permissions, model picks, indexing endpoint. Kilo picks up its own defaults at runtime.

When you're populating a canonical file, ask: "Would the agent behave identically without this key?" If yes, drop it.

The secrets rule

Canonical repos hold zero plaintext secrets. Use ${env:VAR} refs. Umbrella's sync script expands from user env at write time. User env populated by Oriz-SyncEnv from sops-encrypted .env.enc.

Per-machine secrets go in globally-scoped .local.* files (e.g., ~/.claude/settings.local.json) which sync never touches.

The absolute-path rule

Anti-patterns

Cross-refs