decisions
The decisions skill establishes governance for Claude Codex Bridge configuration management by designating ccb_self as the exclusive agent role authorized to design, edit, and validate the `.ccb/ccb.config` file. Use this skill when routing CCB project configuration changes, topology modifications, role binding updates, or config drift detection through a centralized self-maintenance operator rather than distributing configuration authority across multiple agents.
git clone --depth 1 https://github.com/SeemSeam/claude_codex_bridge /tmp/decisions && cp -r /tmp/decisions/docs/plantree/plans/ccb-self-role/decisions/002-built-in-ccb-config- ~/.claude/skills/decisions002-built-in-ccb-config-skill.md
# Built-In CCB Config Skill Date: 2026-06-09 ## Context The user wants `ccb_self` to be the CCB self-maintenance operator. That includes project configuration work: designing and editing `.ccb/ccb.config`, checking role bindings, understanding tmux/window layout implications, detecting config drift, and deciding when reload or restart is needed. CCB previously treated `ccb-config` as a universal inherited skill available to all agents. That is convenient, but it spreads topology-changing authority across the whole team. For a self-maintenance role, a cleaner model is that other agents do their business work and route CCB configuration changes to `ccb_self`. Naming update: [006-future-modification-guardrails.md](006-future-modification-guardrails.md) supersedes the early `agentroles.ccb_self` spelling. The canonical Role Pack id is now `agentroles.ccb_self`. ## Decision Make `ccb-config` a built-in skill of `agentroles.ccb_self`. The canonical skill name should remain `ccb-config` because it is the CCB configuration skill. The skill is built directly into the `agentroles.ccb_self` Role Pack as a role-owned asset. It is not a global inherited skill and is not a separate shared skill later assigned to the role. When CCB installs or materializes the role for an agent, the built-in skill appears only in `ccb_self`'s managed provider home. The built-in `ccb-config` skill may edit `.ccb/ccb.config` and validate config health. It must keep disk config, last-applied config signature, current daemon graph, and tmux evidence separate. It may recommend reload/restart classes and may execute `ccb reload` for `ccb_self` after validation gates pass and user intent is explicit. It must not silently execute `ccb reload`, and it must not execute `ccb restart` or `ccb kill`. Every config edit has a required validation gate: 1. Write the disk config change. 2. Run or require `ccb config validate`. 3. If the user wants the change materialized and validation passed, run or require `ccb reload --dry-run`. 4. Only after the dry-run plan is understood may `ccb_self` execute `ccb reload`. 5. After reload, `ccb_self` must re-check affected agents. Provider command, provider profile, model, base URL, environment, role asset, or startup context changes may require a separate guarded single-agent restart. ## Consequences - `ccb_self` becomes the single normal route for CCB project configuration design, edits, drift diagnosis, and reload readiness. - Other agents should delegate config changes to `ccb_self` instead of editing `.ccb/ccb.config` directly. - The skill can cover both design-time editing and runtime config health, reducing fragmentation. - Runtime mutation remains separate from config editing: config writes affect disk intent; live graph changes require explicit CCB control-plane actions. - Migration must remove the full inherited/global `ccb-config` from non-self agents, or replace it with a lightweight delegation stub. ## Naming Primary name: `ccb-config`. Rationale: users already understand the phrase, and the skill still owns CCB configuration. The fact that it is private to `ccb_self` should be represented by being a built-in Role Pack skill, not by forcing the name to carry ownership. Acceptable alias in docs: `ccb-self-config`, when the discussion needs to emphasize the role owner. Rejected names: - `ccb-runtime-config`: ambiguous with daemon/runtime internals. - `ccb-config-health`: too narrow once the private skill can edit disk config. - `ccb-config-maintenance`: too broad and suggests runtime mutation. - `ccb-ops-config`: less specific than `ccb_self` ownership. ## Migration Notes The transition should avoid breaking existing projects abruptly: 1. Move the full config editing skill into the `agentroles.ccb_self` Role Pack as a built-in skill. 2. Remove the full skill from inherited/global skill sets for non-self agents. 3. Optionally leave a tiny non-self stub that says: route CCB config edits to `ccb_self`; do not edit `.ccb/ccb.config` directly. 4. Update provider memory so non-self agents know CCB topology/config work is owned by `ccb_self`. 5. Keep tests proving the built-in skill is materialized for `ccb_self`. Test impact: - Existing repo hygiene tests that require inherited `inherit_skills/*/ccb-config/SKILL.md` content must be updated when the full skill moves into `agentroles.ccb_self`. - If a non-self delegation stub remains, tests should assert that it delegates to `ccb_self` and does not preserve full config-editing instructions.
Maintain this CCB project's GitHub-facing release and npm publication surface. Use when preparing, publishing, auditing, or fixing CCB releases; updating README.md, README_zh.md, CHANGELOG.md, VERSION, package.json, GitHub release notes/assets, repository description/topics, npm registry state, or GitHub Actions release/test status.
Private built-in CCB configuration skill for agentroles.ccb_self. Design, edit, validate, and prepare reloads for .ccb/ccb.config, role bindings, providers, windows, workspaces, tool windows, sidebar, and provider startup inputs. Use only inside ccb_self; non-self agents should delegate CCB config changes to ccb_self.
Diagnose and repair CCB ask/job/message/reply/artifact/callback lineage. Use for missing replies, incomplete artifacts, pending callbacks, retry/resubmit/ack decisions, reply delivery problems, or work-chain resume advice.
Diagnose CCB runtime, mounted daemon graph, tmux namespace and panes, provider context, queue/inbox/trace, replies/artifacts, config drift, and storage boundaries. Use when the user asks what is broken, which agent is stuck, whether CCB is mounted, why a reply did not arrive, or what to check first.
Recover CCB agents, panes, mounts, provider contexts, API/provider failures, config reload aftermath, clear operations, and guarded single-agent restarts. Use when the user asks to fix, recover, restart if safe, clear context, reload, remount, or keep work going after provider/API failure.
Send a request to a CCB agent with `ask`.
Clear CCB managed agent conversation context with `ccb clear`. Use when the user writes `$ccb-clear`, `$ccb_clear`, or asks to clear/reset one or more CCB agent contexts without restarting or deleting project state.
Maintain a structured planning document tree made of roadmap/status files, implementation status or handoff TODO files, topic notes, decision records, open questions, ideas/inspiration pools, and repository/file-structure hygiene plans. Use when Codex needs to create, reorganize, audit, or update a multi-file plan, design-doc folder, roadmap tree, active implementation-status file, repo cleanup/filesystem plan, ADR/decision log, ideas inbox, or linked planning knowledge base; reconcile Done/In Progress/Next state; resume work from TODO/handoff state; move resolved questions into decisions; promote ideas into formal plan artifacts; or keep plan documents and file-structure planning internally consistent without making this project-specific.