Ansible Backport Creator
ansible/ansible
Creates backports of a merged Ansible devel pull request onto the right stable branches by cherry-picking its merge commit onto new backport branches.
End-to-end development workflow for the Ambient Code Platform.
$ npx skills add ambient-code/platform --skill devflow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ambient-code/platform devflow --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ambient-code/platform.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/devflow .claude/skills/devflow && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "devflow" agent skill from https://github.com/ambient-code/platform/tree/main/skills/devflow into .claude/skills/devflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "devflow", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ambient-code/platform/tree/main/skills/devflowType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ambient-code/platform --skill devflow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ambient-code/platform devflow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ambient-code/platform.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/devflow .agents/skills/devflow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "devflow" agent skill from https://github.com/ambient-code/platform/tree/main/skills/devflow into .agents/skills/devflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "devflow", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ambient-code/platform --skill devflow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ambient-code/platform devflow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ambient-code/platform.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/devflow .cursor/skills/devflow && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "devflow" agent skill from https://github.com/ambient-code/platform/tree/main/skills/devflow into .cursor/skills/devflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "devflow", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ambient-code/platform.git --path skills/devflow--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ambient-code/platform --skill devflow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ambient-code/platform devflow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ambient-code/platform.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/devflow .gemini/skills/devflow && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "devflow" agent skill from https://github.com/ambient-code/platform/tree/main/skills/devflow into .gemini/skills/devflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "devflow", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ambient-code/platform devflowInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ambient-code/platform --skill devflow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ambient-code/platform.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/devflow .github/skills/devflow && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "devflow" agent skill from https://github.com/ambient-code/platform/tree/main/skills/devflow into .github/skills/devflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "devflow", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ambient-code/platform --skill devflow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ambient-code/platform devflow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ambient-code/platform.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/devflow .opencode/skills/devflow && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "devflow" agent skill from https://github.com/ambient-code/platform/tree/main/skills/devflow into .opencode/skills/devflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "devflow", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
devflowEnd-to-end development workflow for the Ambient Code Platform.
Devflow is an agent skill from ambient-code/platform. End-to-end development workflow for the Ambient Code Platform. Covers ticket → branch → spec → code → commit → PR → review → deploy → verify. Self-improving: update this skill whenever a failure path is discovered or a shortcut is validated. Git history is the audit trail.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Pull requests and Git workflow. The repository describes itself as: Vision/Mission https://ambient-code.ai : Virtual team management and collaboration platform. User guides: https://ambient-code.github.io/platform/. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e15afd3. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitgomakepodmanghuvkubectlnpmnpxpythonkindFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, gh, uv, kubectl, npm and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Devflow loads about 3.2k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,008 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ambient-code/platform at commit e15afd3, republished under its MIT licence (© ambient-code). 1,008 words, ~3,165 tokens.
.claude/skills/devflow/SKILL.md (or your agent's skills folder).You are executing the Ambient Code Platform development workflow. This skill is the literal sequence of steps performed every time code is changed — from filing a ticket to verifying a deployment.
Self-improving skill. Whenever you discover something that doesn't work, or discover something that does, update this file immediately before moving on. The next invocation of this skill benefits from every correction. Examples of self-improvement triggers:
- A build command fails and you find the right flags → add them here
- A test requires an env var you didn't know about → add it here
- A path you tried is a dead end → document the dead end and the correct path
- A review comment reveals a missing step → add the step here
Remind the human every 10 turns to re-read this skill. Context compaction can lose workflow state. At turns 10, 20, 30, etc., say:
"Reminder: we are on turn N. Re-reading
skills/devflow/SKILL.mdto refresh workflow state."
Then re-read this file before continuing.
1. Ticket (optional)
2. Branch (from ticket name if available)
3. Spec change (load + modify the component's .spec.md)
4. Commit spec → push → PR against `main`
5. Review (agentic: thorough PR review; human: desired but optional)
6. On spec acceptance → load the component's .guide.md (the implementation workflow)
7. Branch (from ticket name if available)
8. Commit order:
a. Guide/skill/workflow self-improvement changes (1 commit)
b. Code changes grouped by component
9. Push → PR against `main`
10. Review (human + bot comments; local review too)
11. On merge → await quay.io image
12. Update gitops repository with new image SHA (Skill TBD)
13. After deployment → run tests / e2e suite (TBD)If there is a Jira or GitHub issue, note the ticket ID. If not, proceed without one.
# With ticket
git checkout -b <ticket-id>/<short-description>
# Without ticket
git checkout -b <type>/<short-description>
# type: feat, fix, refactor, docs, choreEvery component has a spec file. Load the spec for the component being changed:
| Component | Spec | Guide |
|---|---|---|
| Data Model / API / CLI / RBAC | specs/api/ambient-model.spec.md | workflows/sessions/ambient-model.workflow.md |
Edit the spec to reflect the desired change. The spec is the source of truth — code is reconciled against it.
git add specs/
git commit -m "spec(<component>): <description of spec change>"git push origin <branch-name> -u
gh pr create --base main --title "spec(<component>): <description>" --body "Spec change for review."After spec acceptance (or in parallel for human workflow), load the implementation guide for the component:
| Component | Guide | Context |
|---|---|---|
| Data Model / API | workflows/sessions/ambient-model.workflow.md | specs/standards/backend/conventions.spec.md |
| SDK | (workflow section in ambient-model.workflow.md Wave 3) | specs/standards/backend/conventions.spec.md |
| CLI | (guide section Wave 5) | specs/standards/backend/conventions.spec.md |
| Control Plane | (guide section Wave 4) | specs/standards/control-plane/conventions.spec.md |
| Operator | (guide section Wave 5) | specs/standards/control-plane/conventions.spec.md |
| Frontend | (guide section Wave 6) | specs/standards/frontend/conventions.spec.md |
| Backend (V1) | — | specs/standards/backend/conventions.spec.md |
# If separate from spec branch
git checkout -b <ticket-id>/<short-description>-impl
# Or continue on the same branch (human workflow, spec not yet merged)Commits are ordered deliberately:
Self-improvement commit (first). Any changes to guides, skills, workflows, or this devflow skill. Group all such changes into one commit:
git add skills/ workflows/
git commit -m "chore(skills): self-improvement updates from <context>"Code changes, grouped by component:
git add components/ambient-api-server/
git commit -m "feat(api-server): <description>"
git add components/ambient-cli/
git commit -m "feat(cli): <description>"
git add components/ambient-sdk/
git commit -m "feat(sdk): <description>"git push origin <branch-name> -u
# Agentic: new PR against main
gh pr create --base main --title "feat(<component>): <description>" --body "Implementation of <spec change>."
# Human: push adds to existing PR, or create new PRAfter merge to main, images are built and pushed to quay.io/ambient_code/. Watch for the image:
# Check if image exists for a given SHA
skopeo inspect docker://quay.io/ambient_code/vteam_api_server:<sha-or-tag>Skill TBD. This step will be formalized as experience accumulates.
Get the image SHA from quay.io and update the gitops repository's image references. Due to lack of autodeploy, this is a manual step.
After deployment, run all available tests. E2E test suite TBD.
components/ambient-api-server/)cd components/ambient-api-server
# CRITICAL: podman, not docker. And RYUK must be disabled.
systemctl --user start podman.socket
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
export TESTCONTAINERS_RYUK_DISABLED=true
make generate # after openapi changes
make proto # after .proto changes
make binary # compile
make test # integration tests (testcontainer Postgres)
go fmt ./...
go vet ./...
golangci-lint runcomponents/ambient-cli/)cd components/ambient-cli
go build ./...
go fmt ./...
go vet ./...
golangci-lint runcomponents/ambient-sdk/)cd components/ambient-sdk
make generate # regenerate from openapi
cd go-sdk && go build ./...components/frontend/)cd components/frontend
npm run build # must pass with 0 errors, 0 warnings
npx vitest run --coveragecomponents/runners/ambient-runner/)cd components/runners/ambient-runner
uv venv && uv pip install -e .
python -m pytest tests/components/ambient-control-plane/)cd components/ambient-control-plane
go build ./...
go fmt ./...
go vet ./...
golangci-lint runThis section is the most important part of the skill. Every dead end, every wasted cycle, every "oh, you need to do X first" gets recorded here.
Dead end: Running make test with Docker or without TESTCONTAINERS_RYUK_DISABLED=true.
What happens: Ryuk container tries to connect to /var/run/docker.sock, which doesn't exist on this system. Tests abort before running.
Correct path:
systemctl --user start podman.socket
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
export TESTCONTAINERS_RYUK_DISABLED=true
make testDead end: kind load docker-image fails with podman localhost/ prefix images.
Correct path: Use podman save | ctr import:
CLUSTER=$(podman ps --format '{{.Names}}' | grep 'kind' | grep 'control-plane' | sed 's/-control-plane//')
podman build --no-cache -t localhost/vteam_api_server:latest components/ambient-api-server
podman save localhost/vteam_api_server:latest | \
podman exec -i ${CLUSTER}-control-plane ctr --namespace=k8s.io images import -
kubectl rollout restart deployment/ambient-api-server -n ambient-code--no-cache Required for Podman BuildsDead end: Building without --no-cache when only Go source changed (go.mod/go.sum unchanged).
What happens: The go build layer hits cache and emits the old binary.
Correct path: Always podman build --no-cache for Go components.
Dead end: Using generated plugin code as-is.
What happens: Generated RegisterRoutes uses auth.JWTMiddleware — wrong.
Correct path: Replace with environments.JWTMiddleware after every generation.
Dead end: Using generated handler code for nested routes without fixing variable names.
What happens: mux.Vars(r)["id"] returns empty string because the route uses {pa_id} or {msg_id}.
Correct path: Fix mux.Vars keys to match actual route variable names after generation.
Dead end: Trying to use do() or doMultiStatus() for SSE endpoints.
What happens: These methods unmarshal and close the response body.
Correct path: Use a.client.httpClient.Do(req) directly and return resp.Body as io.ReadCloser.
Dead end: Adding a new import to CLI code without running go build immediately.
What happens: missing go.sum entry at commit time.
Correct path: Run go build ./... after adding any new import. Fix go.mod before committing.
Dead end: Assuming port 9000 is available locally. What happens: MinIO or another service occupies 9000. gRPC streaming fails silently. Correct path:
kubectl port-forward svc/ambient-api-server 19000:9000 -n ambient-code &
export AMBIENT_GRPC_URL=127.0.0.1:19000The project uses pre-commit hooks (.pre-commit-config.yaml). If hooks block a commit:
git commit --no-verify # skip pre-commit hooks (use sparingly)But prefer fixing the lint/format issue instead.
| Skill/Context | When to use |
|---|---|
skills/sessions/ambient-api-server/SKILL.md | Working in components/ambient-api-server/ |
skills/control-plane/dev-cluster/SKILL.md | Managing kind clusters for testing |
skills/integrations/grpc-dev/SKILL.md | gRPC streaming, AG-UI events |
skills/control-plane/ambient-pr-test/SKILL.md | PR validation on MPP dev cluster |
specs/standards/backend/conventions.spec.md | API server plugin architecture, OpenAPI, testing |
specs/standards/backend/conventions.spec.md | CLI command patterns |
specs/standards/backend/conventions.spec.md | SDK generation |
specs/standards/control-plane/conventions.spec.md | CP fan-out, runner contract |
specs/standards/frontend/conventions.spec.md | Frontend build, React Query |
specs/api/ambient-model.spec.md | Data model spec (source of truth) |
workflows/sessions/ambient-model.workflow.md | Implementation workflow (wave-based) |
Record every correction here with a date stamp. This section grows over time.
--no-cache and ctr import workarounds (discovered in ambient-model.workflow.md).© ambient-code, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/devflow of ambient-code/platform.
Open the folder on GitHubat commit e15afd3
Devflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Devflow this skillambient-code/platform | 131 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Ansible Backport Creatoransible/ansible | 71k | — | ~1.2k | Automated safety check: Pass | GPL-3.0 | |
| ZCF Release AutomationUfoMiao/zcf | 6.1k | — | ~3.4k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 |
ansible/ansible
Creates backports of a merged Ansible devel pull request onto the right stable branches by cherry-picking its merge commit onto new backport branches.
UfoMiao/zcf
Automates a version release with changesets: analyzes code changes, writes a bilingual CHANGELOG, bumps the version and commits through a release branch and pull request.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
makeplane/plane
Names a new Git branch with a type prefix, the lowercased work item ID and a short kebab-case description, so the ID can be extracted later from the branch name.
ambient-code/platform
Run a convention alignment check across the codebase to measure adherence to documented standards.
ambient-code/platform
Perform a comprehensive code review using repository-specific standards.
ambient-code/platform
Create a Cypress-based video demo for a feature branch with cursor, click effects, and captions.
ambient-code/platform
Deploy, update manifests, and troubleshoot the ambient-ui component.
ambient-code/platform
Discover domain-specific skills and context before starting any coding or spec work.
ambient-code/platform
Required context for all frontend work. An agent skill from ambient-code/platform.
Categories
End-to-end development workflow for the Ambient Code Platform. Devflow is an agent skill from ambient-code/platform. End-to-end development workflow for the Ambient Code Platform.
Devflow fits situations like: tasks that involve Pull requests; tasks that involve Git workflow.
Run `npx skills add ambient-code/platform --skill devflow -a claude-code`. Or copy the skill folder (skills/devflow in ambient-code/platform) into .claude/skills/devflow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ambient-code/platform --skill devflow -a codex`. Or copy the skill folder (skills/devflow in ambient-code/platform) into .agents/skills/devflow in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ambient-code/platform --skill devflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/devflow, .gemini/skills/devflow, .github/skills/devflow and .opencode/skills/devflow in your project.
Going by SKILL.md and its folder, Devflow needs the command-line tools its instructions call (git, go, make, podman, gh and uv). Our summary lists: Python 3; Node.js; Docker.
SKILL.md contains no URLs. Its commands use git, gh, uv, npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Devflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Devflow: Ansible Backport Creator (ansible/ansible, 71k stars), ZCF Release Automation (UfoMiao/zcf, 6.1k stars), Finishing a Development Branch (obra/superpowers, 296k stars) and Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ambient-code (a GitHub organization) maintains it in ambient-code/platform, which has 131 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 6, 2026.
Source: ambient-code/platform on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.