Agent Skills
› psyray/oasis
› oasis-release-guardrails
oasis-release-guardrails
GitHub用于规范 OASIS 版本发布流程,确保代码、文档和元数据的一致性。涵盖版本号同步、更新日志维护、README 同步及开源合规检查等任务。
Trigger Scenarios
准备版本发布
更新变更日志
发布用户可见的 CLI 或文档变更
Install
npx skills add psyray/oasis --skill oasis-release-guardrails -g -y
SKILL.md
Frontmatter
{
"name": "oasis-release-guardrails",
"description": "Prepare OASIS release-aligned changes based on historical release\/version commits. Use when shipping versions, changelog updates, or user-facing CLI\/documentation changes."
}
OASIS Release Guardrails
Goal
Keep release changes coherent across code, docs, and metadata like historical release and version commits.
Checklist
- Confirm impact scope (
fixonly, feature, or release candidate). - If version changes, bump both authoritative locations together:
pyproject.toml[project].versionandoasis/__init__.py__version__(same semver). Optionally runoasis -V/pipx run … python -c "from oasis import __version__"to verify. - Update
CHANGELOG.mdfor user-visible behavior changes. - Keep
CHANGELOG.mdentries succinct and strictly aligned with the existing changelog charter/style. - Place changelog notes under the version bucket that matches the current branch lineage.
- Verify
README.mdreflects CLI options and workflow changes (including LangGraph flags:--langgraph-max-expand,--poc-hints,--poc-assistwhen user-visible). - Keep
README.mdFeaturessummary-only; move details into the relevant section, or create one for a new feature. - If audit behavior changes, keep
README.mdaligned for multi-model embedding audits (--audit -em model_a,model_b),audit_report.jsonvs Markdown fallbacks, and dashboard comparison behavior. - Open-source hygiene before tagging/pushing: grep all reachable history for personal-infrastructure strings (
git log --all -p | grep -E '<hostnames|private URLs|keys>') — must be empty on every branch (git branch --contains); a cleanup commit is not enough, rewrite offending commits (amend / cherry-pick) thengit reflog expire --expire=now --all && git gc --prune=now --aggressive. - Personal infrastructure (server names, private URLs, keys) never appears in committed files — neutral placeholders in examples (
https://llm.example.com/v1); private server docs stay in the uncommitted an uncommitted private workspace mirror. - If model-provider/backend behavior changes, align the README
Model providers (backends)section, theOASIS_*provider env reference inoasis/config.py(module docstring), andtests/test_backends_openai_compat.pyin the same change set. - Ensure dashboard/web changes include matching template/assets updates when required (including
bootstrap.jstheme hooks,executive-preview.js/ Chart.js, filtered-preview query params). - For structured output/report changes, keep schema models, templates, and report contract tests in sync (executive
schema_version,analysis_rootsemantics, auditAuditReportDocument). - If
Audit Metrics Summarymarkdown format changes, alignoasis/report.py,oasis/web.pymetrics parsing, dashboard audit comparison rendering, and changelog notes in one batch. - Shared utilities introduced or refactored for the release live under
oasis/helpers/in the correct category module, with exports updated inoasis/helpers/__init__.pywhen they are part of the public helper surface. - No duplicated or parallel implementations: no copy-pasted logic, divergent duplicates, or second sources of truth for the same rule (Python or dashboard JS)—everything is centralized behind a single implementation.
Commit Guidance
- Use
release: vX.Y.Zfor release batches. - Use
version: bump to X.Y.Zfor isolated version metadata updates. - Use
fix|feat|refactor|docsfor normal non-release changes. - Never commit directly to
master/main— hotfixes only. Commit on the activerelease/*orfeat/*branch and merge into master (fast-forward or PR). If a commit lands on the wrong branch before push, move it (fast-forward the target branch,git reset --hardthe wrong one) instead of leaving it there. - Never commit directly to
master/main— hotfixes only. Commit on the activerelease/*orfeat/*branch and merge into master (fast-forward or PR). If a commit lands on the wrong branch before push, move it (fast-forward the target branch,git reset --hardthe wrong one) instead of leaving it there.
Quality Gate
Before finalizing:
- Re-read changed docs and confirm they match actual CLI/runtime behavior.
- Confirm no stale option name remains after renames.
- Ensure change grouping is logical (avoid mixing unrelated concerns).
- Scan the diff for duplication (repeated blocks, mirrored constants, second implementations); merge into one canonical place before tagging.
- Run and review automated tests before release tagging: at minimum
tests/test_report_schema.pyfor report/progress contracts; includetests/test_analyze_orchestration.pywhen the release touches LangGraph (oasis/agent/,SecurityAnalyzer.langgraph_*, or graph progress helpers); rununittest discoverontests/(or coverage via optional[dev]— seeAGENTS.md) when the release touches multiple subsystems. - Verify pipx-only test commands in docs/rules stay consistent with project policy (
AGENTS.md).
Version History
- ed3afbb Current 2026-09-11 14:59


