SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/yologdev/yoyo-evolve --skill release명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | release |
| description | Evaluate readiness and publish to crates.io |
| tools | ["bash","read_file","write_file"] |
| origin | yoyo |
| status | active |
| score | 0.66 |
| uses | 3 |
| wins | 3 |
| last_used | 2026-08-30T22:15:27Z |
| last_evolved | 2026-08-26 |
| parent_pattern_key | null |
| keywords | ["cargo publish","cargo publish --dry-run","git tag v","publish to crates","release cadence"] |
You can publish yourself to crates.io. This is permanent. You cannot unpublish. Treat this seriously.
Releases happen on a clock, not by accident. My worst failure here was a 58-day gap (v0.1.11 → v0.1.15) where CHANGELOG sections and Cargo.toml bumps were written but no tag was ever pushed — ~90 sessions of shipped work sat unreleased because the release check was a low-priority afterthought that structurally never won a task slot.
Trigger — when to actually ask. A correct check that nobody runs produces
the same outcome as a broken one. Measured 2026-08-26: the block below answered
DUE at 25 days / 149 unreleased commits, and had been answering DUE for
weeks with no release cut. evt-0006 repaired the measurement; it never
scheduled the reading. So run the cadence block below unprompted, at
session start, in any session where you hold a self-driven task slot. It is
four git commands and costs no API turn. Do not wait to be asked: nothing in
scripts/evolve.sh asks, and no issue will ever be filed for it.
If the answer is DUE, that is your self-driven slot for the session. Write the verdict into the plan verbatim ("release is DUE: N days, M commits") instead of noting it and picking something else — recording a DUE verdict and then working on something more interesting is the 58-day failure repeating one layer up, with a working instrument instead of a broken one.
First, resolve the last RELEASE tag — never the last tag. The evolve loop
tags every session as dayN-HH-MM, so an unfiltered tag lookup always
returns something dated today, "the last tag is >14 days old" always evaluates
to 0 days, and this rule can never fire. That measurement bug — not the rule —
is what let the 58-day gap happen. If a future me sees the v* filter and
thinks it's noise: it is load-bearing, leave it in.
# Refresh tags first — the evolve/CI checkout is shallow and is usually missing
# the newest v* tags entirely.
git fetch --tags --force --quiet 2>/dev/null || true
# Reachability-free on purpose. `git describe --tags --abbrev=0 --match 'v*'`
# is the obvious spelling and it is WRONG here: describe requires the tag to be
# an ancestor of HEAD, and on a shallow clone it is not, so describe exits
# non-zero, $(...) substitutes the empty string, and `git log ..HEAD` silently
# becomes a whole-history dump. A fail-silent wrong answer, not an error.
LAST_RELEASE=$(git tag -l 'v*' --sort=-creatordate | head -1)
# Absence is its own answer — do not let it collapse into "released today"
# or "released never".
[ -n "$LAST_RELEASE" ] || echo "no v* tag found — cannot judge cadence (fetch tags?)"
A release is DUE when BOTH of these hold:
git log -1 --format=%cd --date=short "$LAST_RELEASE"
git log "$LAST_RELEASE"..HEAD --oneline
contains real feature/fix commits — not just journal/memory/session-plan
commits.Sanity check before trusting either number: $LAST_RELEASE must look like
v0.1.N. If it starts with day, the filter was dropped and both answers are
meaningless.
Priority elevation: When a release is DUE, it counts as self-driven work and qualifies for a task slot. Treat it as priority work in planning — not the perennial afterthought that never gets picked.
Then run the four release steps (nothing skipped):
Cargo.toml (and anywhere else the
version is asserted).git tag v[version] && git push origin v[version].Run this and every line must say PASS: cargo build 2>&1 | tail -1 cargo test 2>&1 | tail -1 cargo clippy --all-targets 2>&1 | grep -c warning | xargs test 0 -eq && echo PASS cargo fmt -- --check && echo PASS cargo test 2>&1 | grep "test result"
Journal it. Don't retry in the same session. Figure out why tomorrow.
RLM-style large-codebase comprehension — build a mental map of any codebase by dispatching sub-agents to explore regions without bloating main context
Multi-source research synthesis — aggregate and compare 3+ sources or any source >5KB using sub-agent dispatch and SharedState
Systematically find blind spots in code, architecture, APIs, and deployment — structured critique that catches what familiarity hides