From e94c89ea5375ddc8f323e852f5ec9fe8a817f42c Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Mon, 27 Apr 2026 19:17:14 +0200 Subject: [PATCH] Refactor: centralize AI instructions and opencode config into common dotfiles --- AGENTS.md | 3 ++- ansible/roles/dotfiles_common/tasks/main.yml | 2 +- .../.config/opencode => common/.config/ai}/AGENTS.md | 0 .../.config/opencode => common/.config/ai}/bootstrap.md | 0 .../.config/ai}/knowledge/architecture.md | 0 .../opencode => common/.config/ai}/knowledge/cli.md | 0 .../opencode => common/.config/ai}/knowledge/desktop.md | 0 .../opencode => common/.config/ai}/knowledge/dotfiles.md | 0 .../opencode => common/.config/ai}/knowledge/emacs.md | 0 .../opencode => common/.config/ai}/knowledge/infra.md | 0 .../opencode => common/.config/ai}/knowledge/kernel.md | 0 .../opencode => common/.config/ai}/knowledge/os_setup.md | 0 .../opencode => common/.config/ai}/knowledge/philosophy.md | 0 .../opencode => common/.config/ai}/knowledge/server.md | 0 .../.config/ai}/knowledge/system_programming.md | 0 .../.config/ai}/patterns/ansible_role.md | 0 .../.config/ai}/patterns/dotfiles_layering.md | 0 .../.config/ai}/patterns/project_structure.md | 0 .../.config/ai}/patterns/service_setup.md | 0 .../opencode => common/.config/ai}/rules/ansible.md | 0 .../opencode => common/.config/ai}/rules/dotfiles.md | 0 .../.config/opencode => common/.config/ai}/rules/safety.md | 0 .../opencode => common/.config/ai}/rules/workflow.md | 0 dotfiles/common/.config/opencode/opencode.json | 7 +++++++ dotfiles/desktop/.config/opencode/opencode.json | 7 ------- 25 files changed, 10 insertions(+), 9 deletions(-) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/AGENTS.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/bootstrap.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/architecture.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/cli.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/desktop.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/dotfiles.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/emacs.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/infra.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/kernel.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/os_setup.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/philosophy.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/server.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/knowledge/system_programming.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/patterns/ansible_role.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/patterns/dotfiles_layering.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/patterns/project_structure.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/patterns/service_setup.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/rules/ansible.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/rules/dotfiles.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/rules/safety.md (100%) rename dotfiles/{desktop/.config/opencode => common/.config/ai}/rules/workflow.md (100%) create mode 100644 dotfiles/common/.config/opencode/opencode.json delete mode 100644 dotfiles/desktop/.config/opencode/opencode.json diff --git a/AGENTS.md b/AGENTS.md index b88f700..256e8ad 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,8 @@ Ansible-driven personal infrastructure repo for Void desktops, Linux workstation - Main orchestration: `ansible/site.yml` - Inventory and layering inputs: `ansible/inventory/hosts.yml`, `ansible/inventory/group_vars/*.yml`, `ansible/inventory/host_vars/*.yml` - Dotfiles live under `dotfiles/` -- OpenCode loads global instructions from `dotfiles/desktop/.config/opencode/opencode.json` +- AI agent instructions (bootstrap, rules, knowledge) are centralized in `dotfiles/common/.config/ai/` and shared between Opencode, Codex, and Gemini CLI. +- OpenCode loads its entrypoint configuration from `dotfiles/common/.config/opencode/opencode.json`. ## Topology - Void desktops: `ikaros`, `nymph` diff --git a/ansible/roles/dotfiles_common/tasks/main.yml b/ansible/roles/dotfiles_common/tasks/main.yml index d8e90a8..9e18a72 100644 --- a/ansible/roles/dotfiles_common/tasks/main.yml +++ b/ansible/roles/dotfiles_common/tasks/main.yml @@ -33,7 +33,7 @@ owner: "{{ effective_username }}" group: "{{ effective_user_group }}" mode: "{{ item.mode }}" - loop: "{{ common_dotfiles | default([]) }}" + loop: "{{ (common_dotfiles | default([])) + (ai_agents_dotfiles | default([])) }}" loop_control: label: "{{ item.dest }}" diff --git a/dotfiles/desktop/.config/opencode/AGENTS.md b/dotfiles/common/.config/ai/AGENTS.md similarity index 100% rename from dotfiles/desktop/.config/opencode/AGENTS.md rename to dotfiles/common/.config/ai/AGENTS.md diff --git a/dotfiles/desktop/.config/opencode/bootstrap.md b/dotfiles/common/.config/ai/bootstrap.md similarity index 100% rename from dotfiles/desktop/.config/opencode/bootstrap.md rename to dotfiles/common/.config/ai/bootstrap.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/architecture.md b/dotfiles/common/.config/ai/knowledge/architecture.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/architecture.md rename to dotfiles/common/.config/ai/knowledge/architecture.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/cli.md b/dotfiles/common/.config/ai/knowledge/cli.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/cli.md rename to dotfiles/common/.config/ai/knowledge/cli.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/desktop.md b/dotfiles/common/.config/ai/knowledge/desktop.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/desktop.md rename to dotfiles/common/.config/ai/knowledge/desktop.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/dotfiles.md b/dotfiles/common/.config/ai/knowledge/dotfiles.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/dotfiles.md rename to dotfiles/common/.config/ai/knowledge/dotfiles.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/emacs.md b/dotfiles/common/.config/ai/knowledge/emacs.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/emacs.md rename to dotfiles/common/.config/ai/knowledge/emacs.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/infra.md b/dotfiles/common/.config/ai/knowledge/infra.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/infra.md rename to dotfiles/common/.config/ai/knowledge/infra.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/kernel.md b/dotfiles/common/.config/ai/knowledge/kernel.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/kernel.md rename to dotfiles/common/.config/ai/knowledge/kernel.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/os_setup.md b/dotfiles/common/.config/ai/knowledge/os_setup.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/os_setup.md rename to dotfiles/common/.config/ai/knowledge/os_setup.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/philosophy.md b/dotfiles/common/.config/ai/knowledge/philosophy.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/philosophy.md rename to dotfiles/common/.config/ai/knowledge/philosophy.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/server.md b/dotfiles/common/.config/ai/knowledge/server.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/server.md rename to dotfiles/common/.config/ai/knowledge/server.md diff --git a/dotfiles/desktop/.config/opencode/knowledge/system_programming.md b/dotfiles/common/.config/ai/knowledge/system_programming.md similarity index 100% rename from dotfiles/desktop/.config/opencode/knowledge/system_programming.md rename to dotfiles/common/.config/ai/knowledge/system_programming.md diff --git a/dotfiles/desktop/.config/opencode/patterns/ansible_role.md b/dotfiles/common/.config/ai/patterns/ansible_role.md similarity index 100% rename from dotfiles/desktop/.config/opencode/patterns/ansible_role.md rename to dotfiles/common/.config/ai/patterns/ansible_role.md diff --git a/dotfiles/desktop/.config/opencode/patterns/dotfiles_layering.md b/dotfiles/common/.config/ai/patterns/dotfiles_layering.md similarity index 100% rename from dotfiles/desktop/.config/opencode/patterns/dotfiles_layering.md rename to dotfiles/common/.config/ai/patterns/dotfiles_layering.md diff --git a/dotfiles/desktop/.config/opencode/patterns/project_structure.md b/dotfiles/common/.config/ai/patterns/project_structure.md similarity index 100% rename from dotfiles/desktop/.config/opencode/patterns/project_structure.md rename to dotfiles/common/.config/ai/patterns/project_structure.md diff --git a/dotfiles/desktop/.config/opencode/patterns/service_setup.md b/dotfiles/common/.config/ai/patterns/service_setup.md similarity index 100% rename from dotfiles/desktop/.config/opencode/patterns/service_setup.md rename to dotfiles/common/.config/ai/patterns/service_setup.md diff --git a/dotfiles/desktop/.config/opencode/rules/ansible.md b/dotfiles/common/.config/ai/rules/ansible.md similarity index 100% rename from dotfiles/desktop/.config/opencode/rules/ansible.md rename to dotfiles/common/.config/ai/rules/ansible.md diff --git a/dotfiles/desktop/.config/opencode/rules/dotfiles.md b/dotfiles/common/.config/ai/rules/dotfiles.md similarity index 100% rename from dotfiles/desktop/.config/opencode/rules/dotfiles.md rename to dotfiles/common/.config/ai/rules/dotfiles.md diff --git a/dotfiles/desktop/.config/opencode/rules/safety.md b/dotfiles/common/.config/ai/rules/safety.md similarity index 100% rename from dotfiles/desktop/.config/opencode/rules/safety.md rename to dotfiles/common/.config/ai/rules/safety.md diff --git a/dotfiles/desktop/.config/opencode/rules/workflow.md b/dotfiles/common/.config/ai/rules/workflow.md similarity index 100% rename from dotfiles/desktop/.config/opencode/rules/workflow.md rename to dotfiles/common/.config/ai/rules/workflow.md diff --git a/dotfiles/common/.config/opencode/opencode.json b/dotfiles/common/.config/opencode/opencode.json new file mode 100644 index 0000000..45d58ea --- /dev/null +++ b/dotfiles/common/.config/opencode/opencode.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://opencode.ai/config.json", + "instructions": [ + "~/.config/ai/bootstrap.md", + "~/.config/ai/rules/safety.md" + ] +} diff --git a/dotfiles/desktop/.config/opencode/opencode.json b/dotfiles/desktop/.config/opencode/opencode.json deleted file mode 100644 index 38c088f..0000000 --- a/dotfiles/desktop/.config/opencode/opencode.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://opencode.ai/config.json", - "instructions": [ - "~/.config/opencode/bootstrap.md", - "~/.config/opencode/rules/safety.md" - ] -}