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

96 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.mjs``0 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).