One operator interface for both toolkits (operator decision 2026-08-04): - vendor/autonomic-recipe-maintainer: ARM pinned as a submodule at acd5cfb (latest). - scripts/gen-cctest-skills.py: generates a cctest-<name> wrapper pair (.opencode canonical + .claude thin) for every ARM skill — frontmatter carries ARM's own description tagged [recipe-maintainer/cctest]; body points at the canonical submodule SKILL.md, sets cwd/sandbox context, and states the policy overrides (auto-merge-style ARM flows need per-run operator opt-in; never touch cc-ci infra from an ARM skill; submodule is read-only here). Re-run after every submodule bump. - 30 cctest-* wrappers generated. - /help: cctest family section + situation-table rows + the cc-ci-vs-cctest rule of thumb. cctest = the recipe-maintainer test server; these skills run against it + the ARM sandbox, never against the cc-ci CI server/swarm.
27 lines
1.7 KiB
Markdown
27 lines
1.7 KiB
Markdown
---
|
|
name: cctest-opencode-sync
|
|
description: "[recipe-maintainer/cctest] Ensure every Claude skill has a corresponding OpenCode skill alias (Wraps the autonomic-recipe-maintainer skill /opencode-sync; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-opencode-sync.)"
|
|
---
|
|
|
|
# cctest-opencode-sync (cctest wrapper)
|
|
|
|
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/opencode-sync/SKILL.md`
|
|
— read it and follow it. This wrapper only sets context + policy.
|
|
|
|
**Context:** this is an **autonomic-recipe-maintainer (ARM)** skill. It operates on the
|
|
recipe-maintainer **cctest** test server / local abra sandbox — NOT on the cc-ci CI server or
|
|
its shared swarm. Execute with the submodule as your working directory:
|
|
`cd /srv/cc-ci-orch/vendor/autonomic-recipe-maintainer`. If the ARM environment is not yet
|
|
configured on this host (`settings.toml` from `settings.toml.example`, sandbox/test instances),
|
|
run `/cctest-intro` / `/cctest-setup-sandbox` first.
|
|
|
|
**Policy overrides (cc-ci-orchestrator conventions win):**
|
|
- Anything that would **merge a recipe PR or push a recipe main without review** requires
|
|
explicit operator opt-in per run — the cc-ci standing rule is recipe upgrade PRs are
|
|
operator-merged, and ARM skills that say otherwise (e.g. full-auto upgrade flows) do NOT
|
|
inherit blanket authorization here.
|
|
- Never touch cc-ci infrastructure (the CI server, its swarm, `/root/*` clones, the weekly
|
|
timers) from an ARM skill — cc-ci work goes through the cc-ci skills.
|
|
- The submodule is **pinned**: don't commit into it from here; upstream ARM changes arrive via
|
|
a deliberate submodule bump + `scripts/gen-cctest-skills.py` regeneration.
|