skills: vendor autonomic-recipe-maintainer + expose all its skills as /cctest-*
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.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-init-instance
|
||||
description: "[recipe-maintainer/cctest] Deploy all maintained recipes to the active test instance from scratch (Wraps the autonomic-recipe-maintainer skill /init-instance; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-init-instance.)"
|
||||
---
|
||||
|
||||
# cctest-init-instance (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-init-instance/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/init-instance/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-intro
|
||||
description: "[recipe-maintainer/cctest] Explain what this project is and how to get started (Wraps the autonomic-recipe-maintainer skill /intro; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-intro.)"
|
||||
---
|
||||
|
||||
# cctest-intro (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-intro/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/intro/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-new-recipe-guide
|
||||
description: "[recipe-maintainer/cctest] Guide for developing a new Co-op Cloud recipe from scratch (Wraps the autonomic-recipe-maintainer skill /new-recipe-guide; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-new-recipe-guide.)"
|
||||
---
|
||||
|
||||
# cctest-new-recipe-guide (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-new-recipe-guide/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/new-recipe-guide/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
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 (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-opencode-sync/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/opencode-sync/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-check
|
||||
description: "[recipe-maintainer/cctest] Fetch a Co-op Cloud recipe and check for available upgrades (Wraps the autonomic-recipe-maintainer skill /recipe-check; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-check.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-check (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-check/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-check/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-create-pr
|
||||
description: "[recipe-maintainer/cctest] Push local recipe commits to git.autonomic.zone and open a PR against an upstream-synced main branch (Wraps the autonomic-recipe-maintainer skill /recipe-create-pr; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-create-pr.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-create-pr (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-create-pr/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-create-pr/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-deploy
|
||||
description: "[recipe-maintainer/cctest] Deploy the local recipe checkout to the test instance (Wraps the autonomic-recipe-maintainer skill /recipe-deploy; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-deploy.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-deploy (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-deploy/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-deploy/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-guidelines
|
||||
description: "[recipe-maintainer/cctest] Guidelines for all recipe operations including local change preservation, version format, and secrets (Wraps the autonomic-recipe-maintainer skill /recipe-guidelines; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-guidelines.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-guidelines (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-guidelines/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-guidelines/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-init
|
||||
description: "[recipe-maintainer/cctest] Create a new test instance and recipe-info for a recipe (Wraps the autonomic-recipe-maintainer skill /recipe-init; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-init.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-init (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-init/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-init/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-logging
|
||||
description: "[recipe-maintainer/cctest] Logging instructions for maintaining detailed operation logs in the logs directory (Wraps the autonomic-recipe-maintainer skill /recipe-logging; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-logging.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-logging (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-logging/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-logging/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-new-tag
|
||||
description: "[recipe-maintainer/cctest] Bump the recipe version and create an annotated git tag (Wraps the autonomic-recipe-maintainer skill /recipe-new-tag; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-new-tag.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-new-tag (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-new-tag/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-new-tag/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-overview
|
||||
description: "[recipe-maintainer/cctest] Check all maintained recipes and recommend what to upgrade (Wraps the autonomic-recipe-maintainer skill /recipe-overview; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-overview.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-overview (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-overview/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-overview/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-review
|
||||
description: "[recipe-maintainer/cctest] Review a recipe for Co-op Cloud best practices (Wraps the autonomic-recipe-maintainer skill /recipe-review; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-review.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-review (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-review/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-review/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-test-all
|
||||
description: "[recipe-maintainer/cctest] Run tests for all maintained recipes, deploying each one at a time (Wraps the autonomic-recipe-maintainer skill /recipe-test-all; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-all.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-all (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-test-all/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-all/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-test-backup
|
||||
description: "[recipe-maintainer/cctest] Test backing up and restoring a recipe's test instance (Wraps the autonomic-recipe-maintainer skill /recipe-test-backup; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-backup.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-backup (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-test-backup/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-backup/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-test-new
|
||||
description: "[recipe-maintainer/cctest] Test a recipe's first-time initialization from scratch (Wraps the autonomic-recipe-maintainer skill /recipe-test-new; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-new.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-new (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-test-new/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-new/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-test-update
|
||||
description: "[recipe-maintainer/cctest] Test upgrading a recipe's test instance using abra app deploy (Wraps the autonomic-recipe-maintainer skill /recipe-test-update; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-update.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-update (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-test-update/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-update/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-test
|
||||
description: "[recipe-maintainer/cctest] Run all tests for a Co-op Cloud recipe (Wraps the autonomic-recipe-maintainer skill /recipe-test; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-test/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-apply
|
||||
description: "[recipe-maintainer/cctest] Execute a planned recipe upgrade — apply changes, deploy, test, commit/tag (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-apply; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-apply.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-apply (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-upgrade-apply/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-apply/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-cron-all
|
||||
description: "[recipe-maintainer/cctest] Autonomous weekly upgrade run — overview all recipes, upgrade each end-to-end (sequentially by default, parallel with --parallel), open PRs (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-cron-all; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-cron-all.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-cron-all (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-upgrade-cron-all/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-cron-all/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-full
|
||||
description: "[recipe-maintainer/cctest] Plan and apply a recipe upgrade end-to-end, no human review in the middle (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-full; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-full.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-full (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-upgrade-full/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-full/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-plan
|
||||
description: "[recipe-maintainer/cctest] Create a detailed upgrade plan for a recipe (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-plan; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-plan.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-plan (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-upgrade-plan/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-plan/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-recipe-upstream
|
||||
description: "[recipe-maintainer/cctest] From a git.autonomic.zone review-PR URL, fetch the branch + tag locally and emit the commands to open the upstream PR on git.coopcloud.tech (Wraps the autonomic-recipe-maintainer skill /recipe-upstream; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upstream.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upstream (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-recipe-upstream/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upstream/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-setup-sandbox
|
||||
description: "[recipe-maintainer/cctest] Guide for setting up a sandboxed environment to run the agent with recipe-maintainer (Wraps the autonomic-recipe-maintainer skill /setup-sandbox; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-setup-sandbox.)"
|
||||
---
|
||||
|
||||
# cctest-setup-sandbox (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-setup-sandbox/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/setup-sandbox/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-switch-default-instance
|
||||
description: "[recipe-maintainer/cctest] Switch the default test instance (b1cc or t1cc) for all recipe operations (Wraps the autonomic-recipe-maintainer skill /switch-default-instance; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-switch-default-instance.)"
|
||||
---
|
||||
|
||||
# cctest-switch-default-instance (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-switch-default-instance/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/switch-default-instance/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-sync-secrets
|
||||
description: "[recipe-maintainer/cctest] Sync Docker secrets from the test server into recipe-info/testsecrets/ (Wraps the autonomic-recipe-maintainer skill /sync-secrets; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-sync-secrets.)"
|
||||
---
|
||||
|
||||
# cctest-sync-secrets (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-sync-secrets/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/sync-secrets/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-t1cc-start
|
||||
description: "[recipe-maintainer/cctest] Provision the t1cc DigitalOcean test server and deploy Traefik (Wraps the autonomic-recipe-maintainer skill /t1cc-start; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-t1cc-start.)"
|
||||
---
|
||||
|
||||
# cctest-t1cc-start (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-t1cc-start/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/t1cc-start/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-t1cc-stop
|
||||
description: "[recipe-maintainer/cctest] Destroy the t1cc DigitalOcean test server via terraform (Wraps the autonomic-recipe-maintainer skill /t1cc-stop; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-t1cc-stop.)"
|
||||
---
|
||||
|
||||
# cctest-t1cc-stop (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-t1cc-stop/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/t1cc-stop/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-test-context-reset
|
||||
description: "[recipe-maintainer/cctest] Undeploy all apps from the test server except traefik (Wraps the autonomic-recipe-maintainer skill /test-context-reset; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-test-context-reset.)"
|
||||
---
|
||||
|
||||
# cctest-test-context-reset (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-test-context-reset/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/test-context-reset/SKILL.md`.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: cctest-test-setup
|
||||
description: "[recipe-maintainer/cctest] Verify the test environment is configured correctly (Wraps the autonomic-recipe-maintainer skill /test-setup; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-test-setup.)"
|
||||
---
|
||||
|
||||
# cctest-test-setup (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/cctest-test-setup/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/test-setup/SKILL.md`.
|
||||
@@ -1,3 +1,6 @@
|
||||
[submodule "references/recipe-maintainer"]
|
||||
path = references/recipe-maintainer
|
||||
url = https://git.autonomic.zone/recipe-maintainers/recipe-maintainer
|
||||
[submodule "vendor/autonomic-recipe-maintainer"]
|
||||
path = vendor/autonomic-recipe-maintainer
|
||||
url = ssh://git@git.autonomic.zone:2222/recipe-maintainers/autonomic-recipe-maintainer.git
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-init-instance
|
||||
description: "[recipe-maintainer/cctest] Deploy all maintained recipes to the active test instance from scratch (Wraps the autonomic-recipe-maintainer skill /init-instance; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-init-instance.)"
|
||||
---
|
||||
|
||||
# cctest-init-instance (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/init-instance/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-intro
|
||||
description: "[recipe-maintainer/cctest] Explain what this project is and how to get started (Wraps the autonomic-recipe-maintainer skill /intro; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-intro.)"
|
||||
---
|
||||
|
||||
# cctest-intro (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/intro/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-new-recipe-guide
|
||||
description: "[recipe-maintainer/cctest] Guide for developing a new Co-op Cloud recipe from scratch (Wraps the autonomic-recipe-maintainer skill /new-recipe-guide; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-new-recipe-guide.)"
|
||||
---
|
||||
|
||||
# cctest-new-recipe-guide (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/new-recipe-guide/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-check
|
||||
description: "[recipe-maintainer/cctest] Fetch a Co-op Cloud recipe and check for available upgrades (Wraps the autonomic-recipe-maintainer skill /recipe-check; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-check.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-check (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-check/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-create-pr
|
||||
description: "[recipe-maintainer/cctest] Push local recipe commits to git.autonomic.zone and open a PR against an upstream-synced main branch (Wraps the autonomic-recipe-maintainer skill /recipe-create-pr; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-create-pr.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-create-pr (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-create-pr/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-deploy
|
||||
description: "[recipe-maintainer/cctest] Deploy the local recipe checkout to the test instance (Wraps the autonomic-recipe-maintainer skill /recipe-deploy; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-deploy.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-deploy (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-deploy/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-guidelines
|
||||
description: "[recipe-maintainer/cctest] Guidelines for all recipe operations including local change preservation, version format, and secrets (Wraps the autonomic-recipe-maintainer skill /recipe-guidelines; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-guidelines.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-guidelines (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-guidelines/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-init
|
||||
description: "[recipe-maintainer/cctest] Create a new test instance and recipe-info for a recipe (Wraps the autonomic-recipe-maintainer skill /recipe-init; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-init.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-init (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-init/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-logging
|
||||
description: "[recipe-maintainer/cctest] Logging instructions for maintaining detailed operation logs in the logs directory (Wraps the autonomic-recipe-maintainer skill /recipe-logging; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-logging.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-logging (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-logging/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-new-tag
|
||||
description: "[recipe-maintainer/cctest] Bump the recipe version and create an annotated git tag (Wraps the autonomic-recipe-maintainer skill /recipe-new-tag; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-new-tag.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-new-tag (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-new-tag/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-overview
|
||||
description: "[recipe-maintainer/cctest] Check all maintained recipes and recommend what to upgrade (Wraps the autonomic-recipe-maintainer skill /recipe-overview; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-overview.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-overview (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-overview/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-review
|
||||
description: "[recipe-maintainer/cctest] Review a recipe for Co-op Cloud best practices (Wraps the autonomic-recipe-maintainer skill /recipe-review; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-review.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-review (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-review/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-test-all
|
||||
description: "[recipe-maintainer/cctest] Run tests for all maintained recipes, deploying each one at a time (Wraps the autonomic-recipe-maintainer skill /recipe-test-all; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-all.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-all (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-all/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-test-backup
|
||||
description: "[recipe-maintainer/cctest] Test backing up and restoring a recipe's test instance (Wraps the autonomic-recipe-maintainer skill /recipe-test-backup; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-backup.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-backup (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-backup/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-test-new
|
||||
description: "[recipe-maintainer/cctest] Test a recipe's first-time initialization from scratch (Wraps the autonomic-recipe-maintainer skill /recipe-test-new; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-new.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-new (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-new/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-test-update
|
||||
description: "[recipe-maintainer/cctest] Test upgrading a recipe's test instance using abra app deploy (Wraps the autonomic-recipe-maintainer skill /recipe-test-update; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test-update.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test-update (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test-update/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-test
|
||||
description: "[recipe-maintainer/cctest] Run all tests for a Co-op Cloud recipe (Wraps the autonomic-recipe-maintainer skill /recipe-test; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-test.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-test (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-test/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-apply
|
||||
description: "[recipe-maintainer/cctest] Execute a planned recipe upgrade — apply changes, deploy, test, commit/tag (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-apply; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-apply.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-apply (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-apply/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-cron-all
|
||||
description: "[recipe-maintainer/cctest] Autonomous weekly upgrade run — overview all recipes, upgrade each end-to-end (sequentially by default, parallel with --parallel), open PRs (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-cron-all; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-cron-all.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-cron-all (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-cron-all/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-full
|
||||
description: "[recipe-maintainer/cctest] Plan and apply a recipe upgrade end-to-end, no human review in the middle (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-full; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-full.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-full (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-full/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-upgrade-plan
|
||||
description: "[recipe-maintainer/cctest] Create a detailed upgrade plan for a recipe (Wraps the autonomic-recipe-maintainer skill /recipe-upgrade-plan; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upgrade-plan.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upgrade-plan (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upgrade-plan/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-recipe-upstream
|
||||
description: "[recipe-maintainer/cctest] From a git.autonomic.zone review-PR URL, fetch the branch + tag locally and emit the commands to open the upstream PR on git.coopcloud.tech (Wraps the autonomic-recipe-maintainer skill /recipe-upstream; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-recipe-upstream.)"
|
||||
---
|
||||
|
||||
# cctest-recipe-upstream (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/recipe-upstream/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-setup-sandbox
|
||||
description: "[recipe-maintainer/cctest] Guide for setting up a sandboxed environment to run the agent with recipe-maintainer (Wraps the autonomic-recipe-maintainer skill /setup-sandbox; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-setup-sandbox.)"
|
||||
---
|
||||
|
||||
# cctest-setup-sandbox (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/setup-sandbox/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-switch-default-instance
|
||||
description: "[recipe-maintainer/cctest] Switch the default test instance (b1cc or t1cc) for all recipe operations (Wraps the autonomic-recipe-maintainer skill /switch-default-instance; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-switch-default-instance.)"
|
||||
---
|
||||
|
||||
# cctest-switch-default-instance (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/switch-default-instance/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-sync-secrets
|
||||
description: "[recipe-maintainer/cctest] Sync Docker secrets from the test server into recipe-info/testsecrets/ (Wraps the autonomic-recipe-maintainer skill /sync-secrets; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-sync-secrets.)"
|
||||
---
|
||||
|
||||
# cctest-sync-secrets (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/sync-secrets/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-t1cc-start
|
||||
description: "[recipe-maintainer/cctest] Provision the t1cc DigitalOcean test server and deploy Traefik (Wraps the autonomic-recipe-maintainer skill /t1cc-start; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-t1cc-start.)"
|
||||
---
|
||||
|
||||
# cctest-t1cc-start (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/t1cc-start/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-t1cc-stop
|
||||
description: "[recipe-maintainer/cctest] Destroy the t1cc DigitalOcean test server via terraform (Wraps the autonomic-recipe-maintainer skill /t1cc-stop; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-t1cc-stop.)"
|
||||
---
|
||||
|
||||
# cctest-t1cc-stop (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/t1cc-stop/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-test-context-reset
|
||||
description: "[recipe-maintainer/cctest] Undeploy all apps from the test server except traefik (Wraps the autonomic-recipe-maintainer skill /test-context-reset; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-test-context-reset.)"
|
||||
---
|
||||
|
||||
# cctest-test-context-reset (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/test-context-reset/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.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: cctest-test-setup
|
||||
description: "[recipe-maintainer/cctest] Verify the test environment is configured correctly (Wraps the autonomic-recipe-maintainer skill /test-setup; runs against the cctest test server + ARM sandbox, not cc-ci. Invoke as /cctest-test-setup.)"
|
||||
---
|
||||
|
||||
# cctest-test-setup (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/test-setup/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.
|
||||
@@ -52,6 +52,19 @@ Then present the roster grouped as follows, and close with the situation guide.
|
||||
- **hetzner-server-recovery** — when a Hetzner host is unreachable over SSH/tailscale: API
|
||||
reboot, rescue mode, GRUB generation selection (submenu ids are `1>N`), console access.
|
||||
|
||||
**Recipe-maintainer toolkit (`/cctest-*` — the ARM sandbox + cctest test server, NOT cc-ci)**
|
||||
The full autonomic-recipe-maintainer skill set, vendored as a pinned submodule
|
||||
(`vendor/autonomic-recipe-maintainer`) and exposed with the `cctest-` prefix — ~30 skills for
|
||||
hands-on recipe work against the recipe-maintainer **cctest** test server and local abra
|
||||
sandbox: `/cctest-intro` (start here), `/cctest-recipe-overview`, `/cctest-recipe-init`,
|
||||
`/cctest-recipe-deploy`, `/cctest-recipe-test*`, `/cctest-recipe-upgrade-plan|apply|full`,
|
||||
`/cctest-new-recipe-guide`, sandbox/instance management (`/cctest-setup-sandbox`,
|
||||
`/cctest-t1cc-start|stop`), and more — enumerate with `ls .opencode/skills | grep ^cctest-`.
|
||||
**Rule of thumb:** verifying/shipping against the CI pipeline → the cc-ci skills above;
|
||||
exploratory or hands-on recipe development on a test instance → `/cctest-*`. cc-ci policy
|
||||
overrides apply (auto-merge-style ARM flows need per-run operator opt-in; never touch cc-ci
|
||||
infra from an ARM skill). After a submodule bump run `scripts/gen-cctest-skills.py`.
|
||||
|
||||
## "What do you want to do?"
|
||||
|
||||
| Situation | Do this |
|
||||
@@ -66,6 +79,8 @@ Then present the roster grouped as follows, and close with the situation guide.
|
||||
| "Update this orchestrator's OS/deps" | `/cc-ci-orchestrator-update` |
|
||||
| "Add <recipe> to what we maintain" | `/recipe-enroll <recipe>` |
|
||||
| "A host is unreachable" | `hetzner-server-recovery` |
|
||||
| "Hack on / bootstrap a recipe in a sandbox" | `/cctest-recipe-init`, `/cctest-recipe-deploy`, `/cctest-recipe-test` |
|
||||
| "New to recipe work, where do I start?" | `/cctest-intro` |
|
||||
| "What needs my review?" | `/cc-ci-status` → its open-PR section lists CVE-urgent + ready-to-merge PRs |
|
||||
|
||||
**Standing conventions** (all skills follow these): PRs are opened for visibility and merged
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Generate /cctest-* wrapper skills from the autonomic-recipe-maintainer submodule.
|
||||
|
||||
The ARM toolkit (vendor/autonomic-recipe-maintainer) carries ~30 recipe-maintenance skills
|
||||
that operate against the recipe-maintainer TEST server ("cctest") + local abra sandbox — a
|
||||
different substrate than the cc-ci skills in this repo. To give the operator ONE interface,
|
||||
every ARM skill is exposed here as `cctest-<name>`: a thin wrapper whose frontmatter carries
|
||||
ARM's own description (so discovery works) and whose body points at the canonical SKILL.md in
|
||||
the submodule, sets the execution context, and states the policy overrides.
|
||||
|
||||
Run after every submodule bump:
|
||||
python3 scripts/gen-cctest-skills.py
|
||||
It removes cctest-* skills whose ARM source disappeared and (re)writes the rest, in BOTH
|
||||
.opencode/skills/ (canonical) and .claude/skills/ (thin pointer), then prints a summary.
|
||||
Commit the result.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
VENDOR = ROOT / "vendor/autonomic-recipe-maintainer"
|
||||
ARM_SKILLS = VENDOR / ".opencode/skills"
|
||||
PREFIX = "cctest-"
|
||||
|
||||
BODY_TEMPLATE = """# {wrapped} (cctest wrapper)
|
||||
|
||||
**Canonical procedure:** `vendor/autonomic-recipe-maintainer/.opencode/skills/{name}/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.
|
||||
"""
|
||||
|
||||
WRAPPER_TEMPLATE = """# {wrapped} (thin wrapper)
|
||||
|
||||
The canonical definition of this skill lives in the **opencode** position:
|
||||
|
||||
**`.opencode/skills/{wrapped}/SKILL.md`**
|
||||
|
||||
Read that file. It in turn wraps the ARM submodule skill
|
||||
`vendor/autonomic-recipe-maintainer/.opencode/skills/{name}/SKILL.md`.
|
||||
"""
|
||||
|
||||
|
||||
def parse_frontmatter(text: str) -> dict[str, str]:
|
||||
m = re.match(r"\A---\n(.*?)\n---\n", text, re.S)
|
||||
fields: dict[str, str] = {}
|
||||
if m:
|
||||
for line in m.group(1).splitlines():
|
||||
if ":" in line:
|
||||
k, v = line.split(":", 1)
|
||||
fields[k.strip()] = v.strip()
|
||||
return fields
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not ARM_SKILLS.is_dir():
|
||||
print(f"ERROR: {ARM_SKILLS} missing — init the submodule first", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
arm_names = sorted(p.parent.name for p in ARM_SKILLS.glob("*/SKILL.md"))
|
||||
written, removed = [], []
|
||||
|
||||
for pos in (ROOT / ".opencode/skills", ROOT / ".claude/skills"):
|
||||
for stale in pos.glob(f"{PREFIX}*"):
|
||||
if stale.name[len(PREFIX) :] not in arm_names:
|
||||
shutil.rmtree(stale)
|
||||
removed.append(str(stale.relative_to(ROOT)))
|
||||
|
||||
for name in arm_names:
|
||||
src = ARM_SKILLS / name / "SKILL.md"
|
||||
fm = parse_frontmatter(src.read_text())
|
||||
desc = fm.get("description", f"ARM skill {name} (no description)")
|
||||
wrapped = PREFIX + name
|
||||
frontmatter = (
|
||||
f"---\nname: {wrapped}\n"
|
||||
f"description: \"[recipe-maintainer/cctest] {desc} (Wraps the autonomic-recipe-"
|
||||
f"maintainer skill /{name}; runs against the cctest test server + ARM sandbox, "
|
||||
f"not cc-ci. Invoke as /{wrapped}.)\"\n---\n\n"
|
||||
)
|
||||
canon = ROOT / ".opencode/skills" / wrapped / "SKILL.md"
|
||||
canon.parent.mkdir(parents=True, exist_ok=True)
|
||||
canon.write_text(frontmatter + BODY_TEMPLATE.format(name=name, wrapped=wrapped))
|
||||
thin = ROOT / ".claude/skills" / wrapped / "SKILL.md"
|
||||
thin.parent.mkdir(parents=True, exist_ok=True)
|
||||
thin.write_text(frontmatter + WRAPPER_TEMPLATE.format(name=name, wrapped=wrapped))
|
||||
written.append(wrapped)
|
||||
|
||||
print(f"generated {len(written)} cctest skills: {', '.join(written)}")
|
||||
if removed:
|
||||
print(f"removed stale: {', '.join(removed)}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
+1
Submodule vendor/autonomic-recipe-maintainer added at acd5cfbd95
Reference in New Issue
Block a user