Use when asked to report the deployment sentinel value. Provides the sentinel string that proves a vendored skill reached the agent's context.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use for pull-request, merge, version and release mechanics in the Syntropic137 repo, and for CI or release-pipeline failures. Trigger phrases include "open a PR", "submit my changes", "address the review comments", "Copilot left comments", "merge this PR", "push this nit straight to main", "CI is red", "the release gate failed", "smoke test broke", "why is this PR BLOCKED", "bump the version", "cut a release", "release v1.x", "write the release notes", "main -> release PR", "approve the release gate", "the release published a bad asset", "triage the open PRs", "PR backlog", "which PRs are ready to merge", "merge order", "DORA metrics", "deploy frequency", "lead time", "change failure rate", "time to restore", "why didn't the issue auto-close". Covers trunk-based `main`, the `release` branch, local gates (`just qa-ci`, `just preflight`), GitHub Actions gates, review and merge policy, and post-release verification. Do NOT use for deciding what to dispatch, running the orchestrator loop, or deciding when to deploy a beta or run a pit stop (see `orchestrating`); for whether a task belongs in a workspace or locally (see `dogfooding`); for using the `syn` CLI as an end user (see the syntropic137 plugin skills).
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Trunk-based, two branches. Every PR targets main. release accepts PRs from
main only, and the merge itself is the release trigger (release-create.yml
fires on push to release). History is append-only: merge commits everywhere,
no squash, no rebase of anything pushed, no force-push. This file routes; each
agent_*.md holds one self-contained procedure. The canonical process lives in
docs/release-process.md and the CLAUDE.md
sections "Branching & Release Process", "Pre-PR Checklist" and "Verification
gates"; when this skill and those disagree, they win and this skill is stale.
Use when:
main, or answering a review on one.main, on the release PR or in the release pipeline.main -> release PR, or verifying what a release published.Do NOT use when:
orchestrating).just pit-stop as part of the loop: orchestrating owns the when, docs/deployment/test-deploy.md owns the how. This skill only covers the version bump and the test-deploy vs release distinction.dogfooding).../syntropic137_worktrees/ (/sdlc:git_worktree). The main checkout often holds the owner's uncommitted work; switching its branch destroys context.gh authenticated for syntropic137/syntropic137.gh query.| Task | Read |
|---|---|
Open a feature/fix PR against main, through to merge | agent_pr.md |
| Answer review comments on an open PR (Copilot, codex, human) | agent_review_pass.md |
Tiny follow-up on an already-merged PR, straight to main | agent_hotfix.md |
A red check: PR CI, main, release gate, release pipeline | agent_ci_triage.md |
| Prove a PR's tests kill its bug (mutation patches, GitHub runner, no local Docker) | agent_mutation_evidence.md |
| Version bump, release PR, approval gate, post-release verification | agent_release.md |
| Triage every open PR: merge main in, rerun flakes, ready/blocked table, merge order | agent_pr_backlog.md |
| DORA four-keys snapshot from merged PRs, releases and runs | agent_dora_snapshot.md |
main.Framed by the DORA four keys (Forsgren, Humble, Kim, Accelerate, 2018). The first two measure throughput, the last two stability; the book's finding is that high performers improve both together, so trading one for the other is the failure. Each signal is a command; agent_dora_snapshot.md computes all four.
gh release list --limit 50 --json tagName,isPrerelease,publishedAt --jq '[.[]|select(.isPrerelease|not)|select(.publishedAt>="<since>")]|length'. Test deploys (pit stops) do not create releases and are counted from the orchestrator scratchpad, not GitHub.maingh pr list --state merged --base main --search "merged:>=<since>" --limit 500 --json createdAt,mergedAt (jq in the snapshot file). Plus merge-to-release: hours from a PR's merge to the first stable release published after it.revert PR: gh pr list --state merged --search "revert in:title merged:>=<since>". v0.33.0 -> v0.33.1 is the reference case.main or a bad release is fixed fastci.yml run on a main push to the next success, gh run list --workflow ci.yml --branch main --event push --limit 100 --json conclusion,createdAt; and hours from a bad release to its patch release.| Action | Policy | Why |
|---|---|---|
Merge a PR into main | gh pr merge N --merge | Squash rewrote #824 and left the stacked #829 conflicting in nine files; merge commits keep stacks and cherry-picks intact |
Merge main -> release | merge commit; the ruleset allows nothing else | squash permanently diverges release from main (v0.19.x) |
Branch behind main | git merge origin/main into it, then push | rebasing a pushed branch needs a force-push |
| Tidy commits never pushed | rebase or reorder freely | the ban is on rewriting published history, not on rebase as an operation |
| A pushed commit must change | new branch, new PR, close the old one | no force-push, ever |
gh pr merge --auto | not used | it merged before every check reported |
| Who merges | the agent, once the review bar in agent_pr.md is met; owner-gated PRs (CODEOWNERS) wait for the owner | parking a green, reviewed PR on the owner stalled seven PRs for a day |
Approve the release-publish environment | owner only; ask, then wait | it is the last human checkpoint before tags, images and npm |
Staging is by explicit path (git add <files>), never -A or .: the main
checkout routinely carries untracked research docs and handoff folders, and the
commit hooks exist to stop secrets. Hooks are never skipped with
--no-verify; .githooks/pre-push runs just preflight because the old
hand-rolled list missed gates CI then failed on.
.github/workflows/ before relying on this)| Workflow | Fires on | What it proves |
|---|---|---|
ci.yml | push to main (one run per commit, never cancelled); PRs to main/release (superseded PR runs cancel); weekly | Python QA (format, lint, pyright, domain events, vsa, test debt, OpenAPI drift), architectural fitness, unit + integration tests, dashboard, docs site, CLI, submodule check, default workspace image, OSV, pip-audit, dependency review; ci-success aggregates |
docs-lint.yml | every PR; push to main/release | docs content lint |
syn-ui.yml, syn-landing.yml | PRs and main pushes touching Skyline / landing paths | UI build, tests, size budget, gateway serving |
smoke-test.yml | push to main/release only (PR trigger disabled) | full selfhost compose stack comes up healthy; a red smoke on main is found after merge |
e2e-container.yml | PRs and main pushes touching workspace code, the AW gitlink or image pins; workflow_dispatch | automatic runs build and probe the workspace image from source; a real agent run (live API calls) happens only on manual dispatch with run_full_e2e=true |
docs-drift.yml | push to main/release | generated docs match source |
release-gate.yml | PRs into release | _check-version, _check-changelog (PR body >= 20 chars, read from the frozen event payload), _check-codegen-sync, _check-docker-dry-run, OSV, pip-audit, dependency review |
release-create.yml | push to release | create-release (waits on release-publish approval) -> tag + Release -> codegen re-check -> release-containers.yaml + release-cli.yaml |
release-beta.yaml | a published GitHub prerelease | beta images + CLI on next; exists, but the owner does not want GitHub prereleases (see agent_release.md) |
Concurrency: ci.yml, smoke-test.yml, syn-ui.yml, syn-landing.yml and
e2e-container.yml share one rule (#1895): a PR run is cancelled by the next
push to that PR; every push/dispatch run gets its own group and is never
cancelled. Never group a main/release run by ref: a shared group cancels
the older pending run, so back-to-back merges leave a commit with no result
(the required Compose Stack Smoke Test on 9fb6159f). The release workflows
keep cancel-in-progress: false on a shared group on purpose: they must run
one at a time.
just qa-ci runs the core PR-gating jobs locally (~3.5 min), not all of them:
scripts/check_ci_parity.py lists every job left out with its reason and its
own mirror recipe (workspace image build just workspace-build, Skyline
just skyline-ci and friends, landing just landing-*). When a PR touches
those paths, run the listed recipe too. Not local at all: osv-scan, pip-audit,
dependency-review, release-only gates.
just qa-ci before the first push, just preflight on every later push. A CI round-trip is 8-10 minutes; most red PRs were catchable locally.agent_pr_backlog.md).mergeStateStatus == BLOCKED with checks green), with a review package link. A TLDR line is invisible to someone not watching the terminal.MERGEABLE/CLEAN describe a textual merge; merge origin/main in and re-run the suite (PR #871 hid three semantic conflicts).git status --porcelain is empty before calling it green.just check-event-store-pin (in preflight) fails if the pinned event-store tag is not published.created == 'true', so re-merging is a silent no-op; fix a bad release by bumping the patch.main first. Every open PR inherits it.just pit-stop..github/CODEOWNERS: owner-gated trust-boundary paths (.github/, .gitmodules, just/release.just, image pins, compose, credentials, gateway).orchestrating, dogfooding, learning-loop.When a recipe here fails against the repo, fix the file in the same PR as the work that found it. File larger gaps at https://github.com/syntropic137/syntropic137/issues.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Use when asked to report the deployment sentinel value. Provides the sentinel string that proves a vendored skill reached the agent's context.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when building or changing Skyline UI (apps/syn-ui, packages/syn-ui/*) from a design - "build this screen from the board", "implement the design", "match the canvas", "new board landed", "build the Eval trend panel", "port this screen to Skyline", "does this match the design", "update the Shipped table", "snapshot the boards". Covers reading a `*.dc.html` board and the Skyline spec, building from them, comparing 1440px and 390px screenshots against the board, and recording the shipped screen. Do NOT use for small tweaks to a screen that has already shipped (change the code directly, no board needed), for the frozen React app apps/syn-dashboard-ui (never edit it), or for refreshing the CI screenshot baselines alone (see design/README.md).
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when deciding WHERE to do work on Syntropic137 itself - "run this through Syntropic", "dispatch a workflow", "should this go in a workspace or local", "kick off a run on the Mini", "dogfood this", "build Syntropic inside Syntropic", "why did the agent's push fail", "can an agent run our QA", "the execution says completed but nothing shipped". Covers what a workspace agent can and cannot do, why `.github/workflows` pushes must come from the local machine, how to write a task prompt that does not repeat a known failure, and how to verify a run actually delivered. Do NOT use for PR/release mechanics (see `devops`), for using the `syn` CLI as an end user (see the syntropic137 plugin skills), or for authoring workflow YAML.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the user asks for a goodbye, farewell, or asks you to say bye. Always emit the verbatim token shown in the body.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the user asks for a greeting, says hello, or asks you to greet them. Always emit the verbatim token shown in the body.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when turning something that happened into something that makes the next run better - "write a retro", "record this paper cut", "this bug escaped verification", "make this an eval", "why do we keep hitting this", "did that change actually help", "scorecard", "what did we learn from that run", "lessons keep getting re-learned". Covers the six-step loop (capture, classify, convert, change, measure, retro), the repo artifact each step produces, and how escaped bugs become eval cases. Do NOT use to design or judge a single workflow experiment (see `workflow-experimentation`, which this loop feeds), to decide where to run work (see `dogfooding`), or to debug one failed execution in the moment.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.