ktg-plugin-marketplace/docs/state-version-rollout.md
Kjell Tore Guttormsen 843254df5b chore(catalog): release llm-security v7.8.0 — bump ref + README, refresh rollout brief
llm-security cut v7.8.0 (TRG/SIG/AST deep-scan scanners) and tagged `v7.8.0`
(commit 6d3c4b5) in its repo. Sync the marketplace coordinator:

- .claude-plugin/marketplace.json: source.ref v7.7.2 → v7.8.0 (installs track the
  real release; version-consistency gate → OK for llm-security).
- README.md: version label v7.7.2 → v7.8.0; scanner count 23 → 26 (+3: TRG/SIG/AST)
  in both the "Deterministic scanning" bullet and the stat line; tests 1822 → 1863.
- docs/state-version-rollout.md: mark llm-security STATE.md row DONE (it is tracked,
  not gitignored), add the missing playground-design-system row, and refresh the
  Workstream B run note (8 OK / 2 WARN; llm-security resolved this day).

Gate: `node scripts/check-versions.mjs` → 8 OK, 2 WARN (linkedin-studio,
ms-ai-architect — pre-existing, operator decision), 0 ERROR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3s6WnubSSrFjAQTLQdVbG
2026-06-20 11:58:39 +02:00

4.7 KiB
Raw Blame History

Brief — STATE.md tracking + version-consistency rollout (marketplace-wide)

Coordination brief for two cross-cutting changes across all marketplace plugins. Lives in catalog (the marketplace coordinator). This is the plan — execution happens per repo, each needing its own operator GO (cross-repo edits). Status verified 2026-06-20.

Goal

  1. STATE.md tracked in every repo — the updated global continuity rule (~/.claude/CLAUDE.md): STATE.md is tracked and committed, never gitignored; pushed to private Forgejo, never GitHub/public.
  2. Version-consistency green — every plugin passes catalog/scripts/check-versions.mjs (no ERROR; ideally no WARN).

These two workstreams are independent and can be done in any order.


Workstream A — STATE.md tracking

Status (verified 2026-06-20)

Repo har STATE.md tracked gitignored Action .gitignore line*
config-audit yes yes no DONE
ms-ai-architect yes yes no DONE
voyage yes yes no DONE
llm-security yes yes no DONE (2026-06-20)
linkedin-studio yes no yes avgitignore + track :62
claude-design yes no yes avgitignore + track :3
graceful-handoff no no yes avgitignore (file made later) :3
ai-psychosis no no yes avgitignore (file made later) :21
okr no no yes avgitignore (file made later) :28
human-friendly-style no no yes avgitignore (file made later) :3
playground-design-system no no yes avgitignore (file made later) :3
catalog no no yes avgitignore (file made later) :5

* Line numbers as of 2026-06-20 — they drift. At execution time, resolve the exact source with git -C <repo> check-ignore -v STATE.md rather than trusting the number.

Per-repo steps (for each non-DONE repo)

  1. git -C <repo> check-ignore -v STATE.md → confirm the exact .gitignore line.
  2. Remove the STATE.md entry from .gitignore. Replace the section comment with a tracked-state note, mirroring config-audit / ms-ai-architect (e.g. "session/local state — STATE.md is TRACKED continuity (per ~/.claude; overrides the polyrepo convention); the rest stays local").
  3. If a STATE.md file already exists (voyage / linkedin-studio / claude-design): git add STATE.md. If not (the 6 "file made later"): de-gitignoring is enough — the file is tracked the first time a session writes it at session-end. Optionally seed a minimal stub now; not required.
  4. Commit chore: track STATE.md per global continuity rule (+ standard footer). chore:/docs: pass any docs-gate freely.
  5. Push within the window (weekday 20:0023:00, weekend anytime).

Verification (testable)

  • git -C <repo> check-ignore STATE.md → exits non-zero (no longer ignored).
  • If a file exists: git -C <repo> ls-files STATE.md → prints STATE.md (tracked).
  • grep -n STATE <repo>/.gitignore → no bare STATE.md ignore line remains.

Workstream B — Version-consistency

Run from catalog: node scripts/check-versions.mjs (add --strict to fail on WARN too). Current run (2026-06-20): 8 OK, 2 WARN, 0 ERROR. llm-security was resolved this day — v7.8.0 released + tagged v7.8.0 (commit 6d3c4b5), catalog ref + README version/stats bumped 7.7.2 → 7.8.0; gate → OK. The 2 WARN below are unchanged.

The 2 WARN — require an operator decision

Plugin plugin.json catalog ref tag for plugin.json version?
linkedin-studio 0.5.0 v0.4.0 no (v0.5.0 does not exist)
ms-ai-architect 1.16.0 v1.15.0 no (v1.16.0 does not exist)

For each, pick one:

  • Bump is unreleased → no action. The gate WARNs correctly; catalog rightly points at the last released tag. (Leave as-is.)
  • Bump is meant to be released → in the plugin repo: tag vX.Y.Z on the release commit + push; in catalog: bump the ref + the README version/stat line; re-run the gate (expect that plugin → OK).

Only the operator knows which case applies — the gate cannot infer release intent.

Verification (testable)

  • node scripts/check-versions.mjs0 ERROR (hard requirement).
  • After resolving both WARNs: node scripts/check-versions.mjs --strict → exit 0.

Scope fence

  • Each repo edit is a separate cross-repo change → its own operator GO.
  • This brief is the plan; nothing in the 9 non-catalog repos is touched until GO per piece.
  • Push window applies to every push (weekday 20:0023:00, weekend anytime).