openlogos sync
Synchronize all generated files (AGENTS.md, CLAUDE.md, Skills, specs) with the current logos.config.json settings. Run this after manually editing the config or changing the AI tool.
Synopsis
Section titled “Synopsis”openlogos syncNo arguments or options. Must be run from the project root (where logos/logos.config.json exists).
What it does
Section titled “What it does”- Syncs project name in
logos-project.yamlto matchlogos.config.json - Backfills
scenarios[].modulefield inlogos-project.yaml— for any scenario entry missing amodulefield, infers the owning module from file system (looks for<moduleId>-SXX-*.mdin the scenario-implementation directory), falls back tocore. Idempotent: entries that already have amodulefield are left unchanged. - Ensures
documents.changessection exists inlogos.config.json(adds it if missing) - Regenerates
AGENTS.mdbased on current locale, AI tool, and lifecycle - Regenerates
CLAUDE.mdbased on current locale, AI tool, and lifecycle - Re-deploys Skills to every configured target directory
- Re-deploys specs to
logos/spec/ - Tool plugins: re-deploys configured OpenCode, Codex, and Claude Code plugin assets
aiTool may be a single value, an array, or all. When it is an array or all, sync expands it and deploys every concrete tool target:
| Tool | Skills target | Extra assets |
|---|---|---|
| Claude Code | logos/skills/ | .claude/commands/openlogos/, .claude/agents/, .claude/openlogos/bin/, .claude/settings.json |
| OpenCode | logos/skills/ | .opencode/plugins/openlogos.js, opencode.json, .opencode/commands/ |
| Codex | .agents/skills/ | .codex-plugin/, .codex/config.toml |
| Cursor | .cursor/rules/ | .cursor/rules/openlogos-policy.mdc |
AGENTS.md and CLAUDE.md are regenerated with multi-tool semantics when more than one tool is configured, so their Active Skills paths match the deployed targets.
For Codex projects, sync rewrites .agents/skills/<name>/SKILL.md using the native Codex Skill format, including the required YAML frontmatter (name and description). If an older OpenLogos version produced invalid Codex Skills without frontmatter, running openlogos sync after upgrading repairs those files.
Codex SessionStart hooks are also re-deployed idempotently. Codex may still require a one-time /hooks review before .codex-plugin/hooks/session-start.sh can run; that is expected Codex security behavior.
Example output
Section titled “Example output”Syncing project files...
✓ logos-project.yaml name synced to "my-project" ✓ 3 scenario(s) backfilled with module field in logos-project.yaml ✓ documents.changes added to logos.config.json ✓ AGENTS.md updated ✓ CLAUDE.md updated ✓ 16 skills synced to logos/skills/ ✓ 16 skills synced to .agents/skills/ ✓ 17 skills synced to .cursor/rules/ ✓ 13 specs synced to logos/spec/
Sync complete.The scenarios backfilled line only appears when there are scenario entries without a module field. On subsequent runs it is silent (idempotent).
When to use
Section titled “When to use”- After editing
logos/logos.config.json(changing name, locale, or AI tool) - After upgrading the
openlogosCLI to a new version (to get updated Skill content) - When switching AI tools mid-project (e.g., from Cursor to Claude Code)
- When
aiToolis changed to an array oralland you need every tool target refreshed - After running
openlogos launchif you need to force-regenerate files
Errors
Section titled “Errors”| Error | Cause | Fix |
|---|---|---|
logos/logos.config.json not found | Not in project root, or project not initialized | cd to project root, or run openlogos init first |