ci-organization
CI organization principles and workflow structure for this project.
Skill by cedricziel
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/cedricziel-ci-organization
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ci-organization
What's inside
- Skill name
ci-organization- Description
- CI organization principles and workflow structure for this project. Use whenever modifying, adding, or reviewing GitHub Actions workflows — including adding jobs, changing job order, updating action versions, modifying cache keys, adding build targets, or debugging CI failures.
- License
- MIT
- Instructions
- 124 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## Workflow Files
| File | Trigger | Purpose |
| -------------------------------------- | ------------------- | ------------------------------------------------------------------------ |
| `.github/workflows/ci.yml` | push/PR to `main` | Check, test, lint, format, visual regression, integration smoke |
| `.github/workflows/docker.yml` | `workflow_dispatch` | Manual Docker build from source (dev/tag builds) |
| `.github/workflows/release-please.yml` | push to `main` | Release automation → binary matrix → Docker → OS packages → package repo |
## CI Job Structure (`ci.yml`)
Jobs run in parallel. Order of gates (fast → slow):
1. **format** — `cargo fmt --all -- --check`. No apt deps, no cache needed. Fails fastest.
2. **check** — `cargo check --workspace --all-features`. Requires `protobuf-compiler ffmpeg`.
3. **lint** — `cargo clippy --workspace -- -D warnings` + separate `signal` feature clippy.
4. **test** — `cargo test --workspace`.
5. **visual-regression** — Playwright screenshot tests against the Flutter SPA served by the embedded binary. Requires Flutter SDK (`subosito/flutter-action@v2`) and `flutter pub get` before the cargo build step. `continue-on-error: true`.
6. **integration** — Smoke tests against live Ollama. `continue-on-error: true`, `timeout-minutes: 45`.
## Principles
### Cargo cache key
```yaml
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
```
Always hash `**/Cargo.lock`. Cross-compile jobs add the target to the key prefix:
`${{ runner.os }}-${{ matrix.target }}-cargo-`.
### System dependencies (Linux)
```sh
sudo apt-get update -y && sudo apt-get install -y protobuf-compiler ffmpeg
```
`protobuf-compiler` is required for `--all-features` (signal feature uses protobuf). `ffmpeg` is needed for transcription. macOS uses `brew install protobuf`.
### Signal feature linted separately
```yaml
- name: cargo clippy (signal feature)
run: cargo clippy -p assistant-interface-signal --features signal -- -D warnings
```
Always include this step in the lint job — the signal feature is not covered by `--workspace`.
### Concurrency (cancel stale PR runs, never cancel main)
```yaml
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
```
### Soft failures
`visual-regression` and `integration` use `continue-on-error: true` — they are informational and depend on external services (Ollama, Playwright). Do not make them blocking.
### Upload all job artifacts
Every job that produces output files **must** upload them as artifacts using `actions/upload-artifact@v7`. This applies to:
- Test reports (HTML, JUnit, etc.)
- Built binaries
- Diff images / screenshots
- Packages (`.deb`, `.rpm`, `.apk`)
Use `if: always()` for reports so they're available even on failure:
```yaml
- name: Upload test report
if: always()
uses: actions/upload-artifact@v7
with:
name: my-report
path: path/to/report/
retention-days: 14
```
For binaries passed between jobs (e.g. build → docker), use `retention-days: 1` since they are transient.
### Skip on closed PRs
All non-cleanup jobs guard with:
```yaml
if: github.event.action != 'closed'
```
## Release Workflow (`release-please.yml`)
Job dependency chain:
```
release-please → build-binaries (matrix, 6 targets) → build-docker → build-packages → publish-repo
```
- **build-binaries**: matrix of 6 targets (linux gnu/musl x86_64/aarch64, macOS arm64/x86_64). Uses `cross` for cross-compilation targets.
- **build-docker**: downloads pre-built musl artifacts from `build-binaries` — does **not** rebuild from source. Multi-arch (amd64 + arm64), Alpine image via `docker/Dockerfile.assistant-alpine`.
- **build-packages**: produces `.deb`, `.rpm`, `.apk` via `nfpm`.
- **publish-repo**: orphan-commit strategy on `gh-pages` to keep APT/YUM/APK indices small.
## Action Version Pins
Always use these versions when adding new steps:
| Action | Version |
| ---------------------------- | --------- |
| `actions/checkout` | `@v6` |
| `actions/cache` | `@v5` |
| `actions/upload-artifact` | `@v7` |
| `actions/download-artifact` | `@v8` |
| `actions/setup-node` | `@v6` |
| `actions/github-script` | `@v8` |
| `dtolnay/rust-toolchain` | `@stable` |
| `docker/build-push-action` | `@v7` |
| `docker/login-action` | `@v4` |From cedricziel/assistant, MIT.
More from cedricziel/assistant
- 0.582score
observability
cedricziel
Practical observability guide for this workspace.
SkillBFreshness: B★ 6Claude Code +9 - 0.532score
e2e-testing
cedricziel
Playwright visual regression testing for the assistant Flutter SPA.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
ios-codesigning
cedricziel
iOS code signing and provisioning profile management via fastlane match.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
coding-agent
cedricziel
Run coding agents (Claude Code, Codex, OpenCode, or others) as background processes for programmatic control.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
interface-implementation
cedricziel
Checklist and architectural rules for implementing new assistant interfaces (CLI, Slack, web, etc.).
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
agentskills-spec
cedricziel
Authoritative specification for the Agent Skills (agentskills.io) SKILL.md format.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
opentelemetry-rust-sdk
cedricziel
Best-practice guide for instrumenting Rust apps with the OpenTelemetry SDK.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
ux-principles
cedricziel
Flutter UX/UI principles for the assistant app.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
claude-code-agent
cedricziel
Run tasks on the local machine using Claude Code CLI as a background agent.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
openapi-sync
cedricziel
Enforces OpenAPI spec discipline when working on REST API endpoints in this project.
SkillCFreshness: C★ 6Claude Code +9 - 0.531score
opentelemetry-genai-spec
cedricziel
OpenTelemetry semantic conventions for Generative AI attributes.
SkillCFreshness: C★ 6Claude Code +9 - 0.529score
tdd
cedricziel
Test Driven Development discipline for this workspace.
SkillCFreshness: C★ 6Claude Code +9
Signals
- Stars
- 6
- Forks
- 1
- Open issues
- 14
- Last commit (this folder)
- Apr 7, 2026 (6 months ago)
- Last release
- May 26, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/cedricziel/assistant
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from cedricziel
- 0.582score
observability
cedricziel
Practical observability guide for this workspace.
SkillBFreshness: B★ 6Claude Code +9 - 0.567score

Aha.io
cedricziel
Search, read and update Aha.io ideas, features, epics, releases, goals and comments
ConnectorAFreshness: ALocal★ 6↓ 36/wkClaude Code +5 - 0.532score
interface-implementation
cedricziel
Checklist and architectural rules for implementing new assistant interfaces (CLI, Slack, web, etc.).
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
e2e-testing
cedricziel
Playwright visual regression testing for the assistant Flutter SPA.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
ios-codesigning
cedricziel
iOS code signing and provisioning profile management via fastlane match.
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
coding-agent
cedricziel
Run coding agents (Claude Code, Codex, OpenCode, or others) as background processes for programmatic control.
SkillCFreshness: C★ 6Claude Code +9
Cite this page
ci-organization skill. Agent Mart. https://agentmart.dev/skills/cedricziel-ci-organization (last updated 2026-10-24)