SuperAPI AI Directory

ovs-notes

Office & productivity

View repository

Updated 10-15 22:33

About this skill

Skill: ovs-notes

View release notes instantly — type to detect the list of versions to choose & read. Read-only viewer, does not cut releases (that is /ship).

WHAT

Purpose and context

  • Purpose: for the user to VIEW release notes (framework overstack by default, or the current project) instantly, read-only.
  • Trigger (when to use):
    • User wants to VIEW release history: "release notes", "changelog", "the versions released", "what's in the latest version", "/ovs-notes".
  • Non-goals: NOT used to cut/push releases — that is /ship. Does not infer source from CWD.

Mental model

nguồn (framework mặc định · --here project · --repo khác) → danh sách vX.Y.Z newest-first có nhãn nguồn → user chọn bản → in đầy đủ.

The name ovs- = the promise "belonging to overstack" → by default view the FRAMEWORK changelog (Rheinmir/setup, via gh), no matter which project you are in — does NOT infer source from CWD (anti-impersonation: framework release mistaken for the project's). Every print always labels the source in the header (council-advisory 030726).

Input and output contract

Field Required? Meaning
In version | latest no none → print the list then ask to choose
In --here / --repo owner/name no release of the current project (local git tag, offline-ok) / another GitHub repo
Out list of vX.Y.Z <ngày> <tiêu đề> or the content of one version yes always has a source label in the header
Out exit≠0 + "cannot confirm" when gh is absent/offline does not fake empty

Rules and capabilities

  • RULE-01 (MUST): Absolutely read-only — NEVER create/edit tags, releases, or files. Cutting releases is the job of /ship.
  • RULE-02 (MUST): Mandatory source label — every output states clearly whether it is viewing the framework or which project (anti-impersonation — Taleb).
  • RULE-03 (MUST): Fail loudly, do not fake empty — gh absent/offline → say "cannot confirm" + exit≠0, do not print an empty list as if there were no versions.
  • RULE-04 (MUST): Compose, do not spawn again: all logic in harness/scripts/ovs-notes.py (self-contained stdlib, travel downstream) — the skill only orchestrates calls.
  • Capabilities: read releases of a remote repo (via an authenticated GitHub tool) or local git tags; write nothing.

Failure boundaries

  • gh absent/offline/not logged in → blocked: print clearly "cannot confirm — empty does NOT mean there are no versions", exit≠0.
  • User hasn't specified a version → clarify: show the list then ask to choose.
  • User actually wants to cut a release → switch to /ship, not done here.

HOW

Main workflow

Step Type Inputs Action Outputs/exit Failure/next
W01 deterministic source List: run python3 harness/scripts/ovs-notes.py (+ --here if project) changelog newest-first with source labels gh absent → blocked, exit≠0
W02 judgment user's words Choose version: user specifies → run with `<version latest>`; not specified → ask version content
W03 deterministic output Only PRINT for the user to read user can read —

Details of each step (source of truth for W01–W03):

  1. List (default): run python3 harness/scripts/ovs-notes.py → framework changelog newest-first (vX.Y.Z <ngày> <tiêu đề>), with source labels. User wants project release → add --here.
  2. Choose to read: user specifies a version ("v1.0.5"/"latest") → python3 harness/scripts/ovs-notes.py <version|latest> (+ --here if it's a project). Not specified → show the list then ask the user to choose.
  3. Only PRINT for the user to read. No edits, no tag, no push.

Source: framework by default, project via --here (council-advisory 030726)

  • --here → release of the CURRENT PROJECT (local git tag, offline-ok).
  • --repo owner/name → another GitHub repo.
  • gh absent/offline/not logged in → print clearly "cannot confirm — empty does NOT mean there is no version", exit≠0 (don't fake empty).

Zero-model: runs directly, costs no tokens

All LOGIC is in harness/scripts/ovs-notes.py (lives in harness/scripts so TRAVEL down to every project that installs overstack — paths don't break downstream). To be exactly like /release-notes client-side of Claude CLI (instant, 0 tokens), type directly with the bang-prefix:

!python3 harness/scripts/ovs-notes.py            # changelog framework (list)
!python3 harness/scripts/ovs-notes.py latest     # bản framework mới nhất
!python3 harness/scripts/ovs-notes.py --here     # release project hiện tại

This skill is the NATURAL-LANGUAGE entry point (when the user says "view release notes") — it DOES go through the model for one beat to call the script; for 0 tokens use ! above.

Branches

ID Kind Guard Behavior Skip / failure Rejoin
B01 user_optional user wants the CURRENT PROJECT's release add --here (local git tag, offline-ok) — W02
B02 user_optional user specifies another GitHub repo add --repo owner/name gh absent → blocked W02
B03 user_optional user wants 0 tokens type directly !python3 harness/scripts/ovs-notes.py … — ends (without going through the model)

Validation and stopping

Content is ovs-notes.py printed (deterministic); the model only passes it to the user. Stop after printing; there is no write step.

Examples

  • Positive: "what's in the latest version" → python3 harness/scripts/ovs-notes.py latest → print the full notes of the latest framework version, header states the source Rheinmir/setup.
  • Boundary/failure: machine not yet gh auth login → script prints "cannot confirm — empty does NOT mean there is no version", exit≠0; do not print an empty list.