Files
FastSync/.opencode/skills/release/SKILL.md
TapTap 8141158a3d
CI / build-and-test (push) Successful in 27s
CI / build-and-test (pull_request) Successful in 26s
feat: add opencode agents and skills for development workflows
New agents:
- architect: system design, module interactions, data flow
- debugger: crash/memory/thread debugging with ASan, TSan, valgrind, gdb
- security-auditor: TLS, input validation, buffer safety, crypto audit
- refactorer: DRY, separation of concerns, API simplification
- integrator: integration tests, CI/CD pipeline, end-to-end verification
- code-explainer: architecture walkthrough, code explanation

New skills:
- debug-workflow: structured debugging workflow
- refactor: code restructuring with test verification
- security-audit: full security review with checklist
- benchmark: performance benchmarking with multi-run medians
- release: version bump, tests, tagging

Improved existing:
- c-reviewer: added security checklist
- cmake-expert: added ASan/TSan/UBSan configs, ccache, cross-compilation
- perf-analyst: added perf/valgrind/gprof commands
- test-writer: added fuzzing harnesses, integration test patterns
- pr-build: added sanitizer build variants
- pr-review: added security review, performance impact assessment
2026-07-19 14:50:02 +02:00

2.4 KiB

name, description
name description
release Prepares a FastSync release — version bump, changelog, build verification, and git tagging. Use when the user says "prepare release", "bump version", "tag release", or wants to cut a new version.

Release Skill

Prepares a new release of FastSync. This skill CAN edit files, commit, and tag.

Workflow

Step 1: Determine Version

Ask the user or determine from context:

  • Major (X.0.0) — breaking protocol changes, incompatible CLI changes
  • Minor (x.Y.0) — new features, backward compatible
  • Patch (x.y.Z) — bug fixes, no protocol changes

Current version: PROTOCOL_VERSION "1.1.0" in src/shared/config.h

Step 2: Check Protocol Version

If the wire protocol changed, bump PROTOCOL_VERSION in src/shared/config.h:

#define PROTOCOL_VERSION "1.2.0"  // or "2.0.0" for breaking

Protocol version changes require:

  • Both client and server to be updated together
  • Backward compatibility considerations documented
  • Migration path clear

Step 3: Verify Build and Tests

rm -rf build
cmake -B build -S .
cmake --build build -j$(nproc)
./build/tests
python3 test.py

ALL tests must pass before release.

Step 4: Run Sanitizer Checks

# ASan
rm -rf build
cmake -B build -S . \
  -DCMAKE_C_FLAGS="-fsanitize=address -fno-omit-frame-pointer" \
  -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address"
cmake --build build -j$(nproc)
./build/tests

Step 5: Update README (If Needed)

Check if README needs updates:

  • New features documented
  • New CLI flags documented
  • Benchmark results updated
  • Build instructions current

Step 6: Create Release Commit

git add -A
git commit -m "Release vX.Y.Z

- <list of changes>
- Protocol version: X.Y.Z
- Tested: unit tests, integration tests, ASan"

Step 7: Tag the Release

git tag -a vX.Y.Z -m "Release vX.Y.Z"

Step 8: Push

git push origin main --tags

Step 9: Report

=== RELEASE SUMMARY ===
Version: vX.Y.Z
Protocol: X.Y.Z
Commit: <hash>
Tag: vX.Y.Z
Changes:
  - <list of changes in this release>
Build: PASS
Tests: PASS (<passed>/<total>)
ASan: CLEAN

Rules

  • DO verify all tests pass before release
  • DO run sanitizer checks before release
  • DO update README if features changed
  • DO tag releases with annotated tags
  • DON'T release if tests fail
  • DON'T skip sanitizer checks
  • DON'T change code during release (only version bump + docs)