@djordje-stojanovic/sigmaskills 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +77 -251
  3. package/manifest.json +11 -3
  4. package/package.json +5 -3
  5. package/registry/agent-hosts.json +149 -87
  6. package/registry/skill-baselines.json +177 -1
  7. package/registry/source.json +2 -2
  8. package/sigmabrief/SKILL.md +6 -4
  9. package/sigmabrief/references/brief-method.md +6 -0
  10. package/sigmabrief/references/prompt-contract.md +23 -6
  11. package/sigmaimprove/SKILL.md +64 -0
  12. package/sigmaimprove/agents/openai.yaml +12 -0
  13. package/sigmaimprove/references/categories.md +110 -0
  14. package/sigmaimprove/references/issue.md +83 -0
  15. package/sigmaimprove/references/lenses.md +52 -0
  16. package/sigmareview/SKILL.md +34 -98
  17. package/sigmareview/agents/openai.yaml +3 -3
  18. package/sigmareview/references/measure.md +37 -0
  19. package/sigmareview/references/method.md +157 -0
  20. package/sigmareview/references/report.md +142 -0
  21. package/sigmaship/SKILL.md +78 -0
  22. package/sigmaship/agents/openai.yaml +12 -0
  23. package/sigmaship/references/land.md +72 -0
  24. package/sigmaship/references/review-round.md +35 -0
  25. package/src/adoption.js +22 -8
  26. package/src/catalog.js +4 -0
  27. package/src/cli.js +118 -222
  28. package/src/concurrency-lock.js +74 -0
  29. package/src/interactive.js +4 -2
  30. package/src/plan.js +6 -2
  31. package/src/purge.js +11 -10
  32. package/src/restore.js +2 -0
  33. package/src/state.js +173 -6
  34. package/src/transaction.js +133 -135
  35. package/src/uninstall.js +12 -1
  36. package/src/update.js +28 -13
  37. package/sigmaperformance/SKILL.md +0 -118
  38. package/sigmaperformance/agents/openai.yaml +0 -12
  39. package/sigmaperformance/references/audit-method.md +0 -112
  40. package/sigmaperformance/references/calibration.md +0 -45
  41. package/sigmaperformance/references/report-contract.md +0 -103
  42. package/sigmareview/references/report-contract.md +0 -217
  43. package/sigmareview/references/review-method.md +0 -233
  44. package/src/registry/automation-ci.js +0 -454
  45. package/src/registry/automation.js +0 -614
  46. package/src/registry/diff.js +0 -149
  47. package/src/registry/normalize.js +0 -67
  48. package/src/registry/parse.js +0 -184
  49. package/src/registry/sync.js +0 -230
  50. package/src/registry/validate.js +0 -223
  51. package/src/release-ci.js +0 -12
  52. package/src/release.js +0 -849
package/CHANGELOG.md CHANGED
@@ -4,6 +4,47 @@ All notable changes to [Sigmaskills](https://github.com/Djordje-Stojanovic/Sigma
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.4.0] — 2026-09-27
8
+
9
+ ### Added
10
+
11
+ - SigmaImprove (`sigmaimprove`) finds what would make a product, game, codebase, or system clearly better. It scans a full list of improvement categories (value, speed, control, look and feel, reach, intelligence, trust, engineering, and games) and compares the product with the world's top one to three products and with published bars such as Core Web Vitals and WCAG 2.2. It keeps at least ten entries: ideas with 3–5 weighed options and text sketches, and signals that flag a gap for a person to think about. It files one living issue per category (1–20 per run) and updates those issues on later runs instead of duplicating them. It never edits the system. It grew out of the SigmaCheck draft, which was never released.
12
+ - The first SigmaCheck audit of this repository is kept in `docs/audits/SIGMACHECK-2026-09-26.md` as a baseline.
13
+ - SigmaShip (`sigmaship`) ships one planned GitHub issue end to end: a feature worktree and branch, a draft PR linked to the ticket, spec, and map, test-first commits pushed as it goes, review rounds by fresh agents until one finds nothing at P0–P2, then merge, ticket closed, branches and worktree deleted, and local `main` verified equal to `origin/main`. It refuses tickets without checkable acceptance criteria and names the skill to run first. It builds on Matt Pocock's `implement` skill.
14
+ - `install` takes several skill ids (`install sigmawrite sigmareview`) or `--all`. Every skill is planned first, then all of them install in one transaction: if one fails, none stay installed, and `skills-lock.json` is written once. `--json` prints `{ schemaVersion, plans }` when there is more than one skill; one skill prints the same plan as before. (#38)
15
+ - Skill evals. `npm test` now checks the output contract of every skill against good and bad sample outputs, and checks that near-miss prompts route to the right skill. `node scripts/eval-skills.js [skill...]` runs the real skills on a small fixture game with Claude Code, on demand only. See `docs/evals.md`. (#43)
16
+
17
+ ### Changed
18
+
19
+ - SigmaReview (`sigmareview`) now covers correctness, security (source review plus safe tests on a local instance), and measured performance in one run. It reports every finding with no cap, each written as a self-contained fix brief that an LLM can act on, grouped into waves that can be fixed in parallel. It still never changes code: it publishes one feature-branch pull request with the review file. The report file is now `SIGMAREVIEW-YYYY-MM-DD.md`.
20
+ - SigmaBrief (`sigmabrief`) accepts SigmaReview reports and SigmaImprove issues as input and groups briefs into waves, so only independent items run in parallel. Every brief now asks for green baseline checks before changes and ends with a fixed report (`DONE`, `DONE_WITH_CONCERNS`, or `BLOCKED`, plus PR, checks, and open questions). `approval: auto` lets agents record their decisions as rulings instead of waiting. A host's native worktree tool is preferred over manual `git worktree`. A new `session` brief hands the current conversation to a fresh agent.
21
+ - The skill picker and `list` now show each skill's short description for people (`short_description` in `agents/openai.yaml`) instead of the agent-facing description cut off mid-word. The picker wraps it onto at most two lines, so narrow terminals show it whole. A skill without that line shows the first sentence of its description. `list --json` still gives the full description. (#39)
22
+ - The installer's private files (state, lock, backups, journals, staging) now live in `.agents/.sigmaskills/` (global: `~/.agents/.sigmaskills/`). The folder ignores itself in Git, so `git add -A` no longer stages `.agents/state.json` or backups. Older projects move there on the next write command; `status` and `--dry-run` still read the old layout and write nothing. `--state-dir` and `SIGMA_STATE_DIR` are unchanged. (#34)
23
+ - The npm package now ships only the user CLI: about 110 KB smaller unpacked and 10 fewer files. Release and registry automation moved to `scripts/` in the repository, and `sigmaskills release` is gone from the published CLI. Maintainers run `npm run release -- <flags>` from a checkout; the checks it makes are unchanged. (#40)
24
+ - Every pull request now rehearses the Release path. A CI job commits the Release identities in a throwaway worktree, then runs the preview, the dispatch checks, and the trusted `validate` and publish steps with a real `npm pack` (`node scripts/release-rehearsal.js`). npm and GitHub lookups, dispatch, and publish are stubbed, so the job needs no secrets. A pull request that breaks packing, such as the `npm pack` JSON bug fixed in 0.2.1, now fails before merge. (#41)
25
+ - CI now runs with a read-only token (`permissions: contents: read`) and pins every action to a full commit SHA, like the Release workflows. (#41)
26
+ - CI now tests Node.js 22 and 24 on Windows, macOS, and Linux. Node.js 20 reached end of life on 2026-04-30, but `engines` stays at `>=20` for this Release so current users on Node.js 20 can still install; one Linux job on Node.js 20 keeps that promise tested. A later Release may raise it. (#41)
27
+ - The README is short again. It keeps the quick start, the skills, one install table, and run examples. Command details moved to [`docs/installer.md`](docs/installer.md); releases, registry automation, tests, and CI moved to [`docs/maintainers.md`](docs/maintainers.md). A test keeps it under 1,500 words, with no paragraph over 80 words. (#42)
28
+ - The Agent Host registry follows `vercel-labs/skills` at `7407f38`: Droid and Kilo read project skills from `.agents/skills` (Kilo global: `~/.kilo/skills`), fx and sarvam-code are new hosts, and Antigravity, antigravity-cli, and deepagents leave the universal-prompt list. Existing installs keep their recorded paths.
29
+
30
+ ### Removed
31
+
32
+ - SigmaPerformance (`sigmaperformance`). Its measurement method and evidence classes are now part of SigmaReview.
33
+
34
+ ### Fixed
35
+
36
+ - The release tool now treats a breaking change before 1.0.0 as a minor version step, as SemVer allows for 0.y.z versions, instead of jumping to 1.0.0.
37
+ - The README no longer points to the v0.2.1 zip as the latest Release.
38
+ - The finished 0.3.0 `plan.md` is removed from the repository root; its content lives in issue #3 and PR #29.
39
+ - `update` no longer stops when a skill that left the Skill Pack is still installed. The manifest lists retired skills (`sigmaperformance`); `update` leaves them unchanged, lists them under *Retired skills*, and names the `uninstall` command that removes them.
40
+ - An unknown skill id now fails with `unknown skill '<id>'` before any planning, for `install`, `update`, `restore`, and `uninstall`. `uninstall --skill nope` said `stale-state` before. (#38)
41
+ - A value flag with a missing, empty, or dash-prefixed value now fails with the flag name. Before, `--skill --yes` read `--yes` as a skill id, and a value flag at the end of the command was ignored. One flag table now parses and checks every flag; all current flags and aliases still work. (#38)
42
+ - The registry sync test writes into a temporary folder instead of `registry/agent-hosts.json`, so parallel test files no longer read a half-written file and fail at random.
43
+ - Update previews show the relevant release notes and correct running-version relation, omit empty sections, and ask for outside-edit choices only when needed. JSON field names and the installed-side relation remain compatible. (#36)
44
+ - Lock recovery serializes competing takeovers, preserves fresh incomplete records, and checks unique ownership when releasing. Locks expire after 24 hours; a crash-leftover takeover guard stops safely with recovery instructions. Legacy migration uses the same lock. (#37)
45
+ - Untouched copies of earlier Releases are recognized again. `registry/skill-baselines.json` now holds the file hashes of 0.1.0, 0.2.0, 0.2.1, and 0.3.0, rebuilt from their git tags (`node scripts/backfill-baselines.js <tag>...`), and `npm run release -- --write-identities` adds the outgoing Release each time. Such a copy shows as `legacy` with high provenance and upgrades with no `--adopt-*` flag; a changed copy still needs a choice. (#35)
46
+ - Install plans now label files from the installer's point of view: *Additions* are files the new Release brings, *Deletions* are files the install removes. They were swapped before. (#35)
47
+
7
48
  ## [0.3.0] — 2026-09-08
8
49
 
9
50
  ### Added
package/README.md CHANGED
@@ -6,40 +6,43 @@ Portable [Agent Skills](https://agentskills.io/) that install once and run on **
6
6
 
7
7
  | | |
8
8
  |---|---|
9
- | **Release** | [**v0.3.0**](https://github.com/Djordje-Stojanovic/Sigmaskills/releases/tag/v0.3.0) |
9
+ | **Release** | [**v0.4.0**](https://github.com/Djordje-Stojanovic/Sigmaskills/releases/tag/v0.4.0) |
10
10
  | **Changelog** | [CHANGELOG.md](CHANGELOG.md) |
11
11
  | **License** | [MIT](LICENSE) |
12
12
  | **Spec** | [agentskills.io](https://agentskills.io/) |
13
13
 
14
14
  ```text
15
- Σ review → one findings report, one PR, no runtime edits
16
- Σ performance→ calibrated bottlenecks, one report PR
15
+ Σ review → find and prove what is wrong, one PR an LLM can fix from
16
+ Σ improve → ideas versus the world's best, one living issue per category
17
+ Σ refactor → user-guided, behavior-preserving code reduction
17
18
  Σ brief → paste-ready agent briefs, chat only
19
+ Σ ship → one planned ticket to a merged, cleaned-up PR
18
20
  Σ write → clear STE-inspired technical English
19
- Σ refactor → user-guided, behavior-preserving code reduction
20
21
  ```
21
22
 
22
23
  ---
23
24
 
24
25
  ## Quick start
25
26
 
26
- Start the first-party Sigma Installer in a project:
27
+ Run the Sigma Installer in your project:
27
28
 
28
29
  ```bash
29
30
  npx @djordje-stojanovic/sigmaskills
30
31
  ```
31
32
 
32
- Select any set of skills. By default the installer writes only to `.agents/skills/<id>` and lists every Agent Host that reads that universal destination. Host-specific directories such as `.claude/skills` or `.pi/skills` stay unselected until you choose them. Selected host destinations use Windows directory junctions or macOS/Linux symbolic links to the canonical copy; `--copy` writes an independent managed copy instead. Link failure reports the exact cause and offers copy — the installer never changes method silently. Exact current official copies and valid links are adopted in place without rewriting skill bytes. Changed, older, pre-marker, and unverified Sigma-looking trees are classified with a file diff and provenance confidence; replace commits a private backup first, skip leaves the tree, and export writes a collision-safe copy. Pre-marker extra content is never guessed into the customization block; malformed markers stop unless you pass an explicit `--adopt-malformed` choice. The confirmation plan shows every full destination path and method. Press `g` in the skill picker for Global Installation: an immediate scope warning appears, then a second confirmation repeats every Agent Host, resolved path, method, overwrite effect, and backup action. Non-interactive Global writes need both `--global` and `--yes`; CI, TTY, JSON, and Agent Host detection never imply that authority. To install one skill without the interactive interface:
33
+ Pick the skills you want and confirm. By default the installer writes only to `.agents/skills/<id>`, the folder that many Agent Hosts read. It writes nothing until you confirm.
34
+
35
+ To install without the picker, name one or more skills, or pass `--all`. Several skills install together: if one fails, none stay installed.
33
36
 
34
37
  ```bash
35
38
  npx @djordje-stojanovic/sigmaskills install sigmawrite --project .
36
- npx @djordje-stojanovic/sigmaskills install sigmawrite --project . --destination .claude/skills
37
- npx @djordje-stojanovic/sigmaskills install sigmawrite --project . --destination .claude/skills --copy
38
- npx @djordje-stojanovic/sigmaskills install sigmawrite --global --dry-run
39
- npx @djordje-stojanovic/sigmaskills install sigmawrite --global --yes
39
+ npx @djordje-stojanovic/sigmaskills install sigmawrite sigmareview sigmaship --project .
40
+ npx @djordje-stojanovic/sigmaskills install --all --project .
40
41
  ```
41
42
 
42
- Then invoke with your host’s normal skill syntax (`$sigmawrite`, `/skill:sigmawrite`, skill picker, …).
43
+ Then call a skill with your host's normal skill syntax (`$sigmawrite`, `/skill:sigmawrite`, the skill picker, …).
44
+
45
+ The [installer guide](https://github.com/Djordje-Stojanovic/Sigmaskills/blob/main/docs/installer.md) explains host folders, Global Installation, `status`, `update`, `restore`, `uninstall`, and `purge`.
43
46
 
44
47
  ---
45
48
 
@@ -47,170 +50,69 @@ Then invoke with your host’s normal skill syntax (`$sigmawrite`, `/skill:sigma
47
50
 
48
51
  | Skill | Id | Job | Output |
49
52
  |-------|-----|-----|--------|
50
- | **SigmaReview** | `sigmareview` | One-shot full-repo engineering audit | One findings MD + report-only PR |
51
- | **SigmaPerformance** | `sigmaperformance` | Calibrated performance investigation | One report MD + report-only PR |
53
+ | **SigmaReview** | `sigmareview` | Find and prove what is wrong: bugs, security, performance, tests | One feature-branch PR with one review file |
54
+ | **SigmaImprove** | `sigmaimprove` | Find what would make it clearly better, measured against the world's best | One living issue per category (1–20), updated on every run |
52
55
  | **SigmaBrief** | `sigmabrief` | Prompt factory for parallel / single agents | Chat briefs only |
56
+ | **SigmaShip** | `sigmaship` | Ship one planned ticket: build, review rounds, merge, clean up | One merged PR, closed ticket, main in sync |
53
57
  | **SigmaWrite** | `sigmawrite` | Clear STE-inspired technical English | Chat writing voice |
54
58
  | **SigmaRefactor** | `sigmarefactor` | Safe, user-approved large-file refactoring | Discussion, changes, and verification |
55
59
 
56
- ### SigmaReview
57
-
58
- A single agent walks an entire repository — correctness, completeness, architecture, data and concurrency, reliability, security, performance, tests, dependencies, delivery, operations, and domain-specific engineering. Speculative findings are rejected. Exactly **one** evidence-rich Markdown report is published as a **report-only** pull request. Runtime code is never changed.
59
-
60
- ### SigmaPerformance
61
-
62
- Maps real user journeys, then separates **measured** and **mechanically proven** bottlenecks from measurement-required opportunities. Publishes one structured report PR. Runtime sources stay untouched unless calibration explicitly says otherwise.
63
-
64
- ### SigmaBrief
65
-
66
- Turns GitHub issues, features, upgrades, bugs, or plain work statements into short, copy-pastable briefs for other agents. Light research → dispatch list → fenced briefs → **stop**. Does not implement work or open product fix PRs. Default brief arc: plan → optional grill-me (including Windows worktree) → approve → execute → validate → PR for review (**do not merge**).
67
-
68
- **User-triggered only.** Do not treat Brief as ambient chat decoration.
69
-
70
- ### SigmaWrite
71
-
72
- Writing voice inspired by **ASD-STE100 Simplified Technical English** — soft steers, not hard numbered rules. High-quality, still-technical explanations a sharp outsider can follow. Hard bans on gibberish and invented words. Includes a pasteable system-prompt block inside `SKILL.md`. Not certified STE; no dictionary ship.
73
-
74
- ### SigmaRefactor
75
-
76
- Runs a reproducible `laloc` scan, reads the five largest maintained files, explains safe refactoring choices, and waits for user agreement before editing. It checks directories that `laloc` skips, preserves behavior and user changes, and reports lines removed separately from lines moved into new modules.
77
-
78
- ---
79
-
80
- ## Install
81
-
82
- ### Sigma Installer: Project Installation (recommended)
83
-
84
- Run `npx @djordje-stojanovic/sigmaskills` with no command. The Sigma Installer's Emberforge interface reads the Skill Pack catalog from `manifest.json` and the bundled Agent Host registry. Project Installation selects only the universal `.agents/skills/` destination by default, shows a compact host-path list, and leaves host-specific destinations unselected until you choose them. Search remains available for every supported Agent Host, including hosts that are not detected. Exact current official copies and valid links are recorded as managed without rewriting skill bytes. Escape, EOF, Ctrl+C, or a rejected confirmation exits without writing.
85
-
86
- The installer opens directly to a small Sigma heading in the warm LAPI palette. Skill descriptions stay in a bounded focus area. Destination pages show at most eight rows and adapt to terminal height. Long confirmation paths wrap onto pages; use `next`/`prev` in plain mode or left/right arrows in interactive mode. Reduced motion keeps the same picker: there is no opening animation. The cursor, raw mode, input flow, and listeners are restored when the installer finishes or stops.
60
+ ### Which one do I need?
87
61
 
88
- With `--static`, `--no-color`, `NO_COLOR`, `CI`, redirected output, or a non-TTY session, enter one command per line. Type a row number to toggle it, `/claude` to search destinations, `/` to clear search, `next` or `prev` to change page, and press Enter to continue. Use `a` to select all skills, `g` for the global warning, `?` for help, or `esc` to cancel. Confirm installation with `y` followed by Enter. Only `.agents/skills` is selected by default; detected hosts stay unselected.
62
+ SigmaReview and SigmaImprove split on one question: **is it wrong, or could it be better?**
89
63
 
90
- Use `--no-color`, `--static`, or `--narrow` when the terminal needs those modes. Use `--project <path>` to select another project root.
64
+ - If a test, a doc, a stated goal, or a budget can prove it wrong, it is a SigmaReview finding. Examples: a crash, a security hole, a page that breaks its latency budget.
65
+ - If good people could disagree about the answer, it is a SigmaImprove idea. Examples: weak animation, a missing level, an onboarding flow with too many steps.
66
+ - If the code is only too large and behavior must not change, use SigmaRefactor.
91
67
 
92
- ### Sigma Installer: Global Installation
68
+ The skills chain into two loops. **Fix:** SigmaReview → review PR → SigmaBrief or SigmaShip fixes each finding → merge. **Grow:** SigmaImprove → category issues → specs and tickets → SigmaShip.
93
69
 
94
- Project Installation stays the default. In the interactive installer, `g` selects Global Installation and shows a scope warning immediately. The final confirmation repeats every selected Agent Host, exact resolved path, method, overwrite or delete effect, and backup action. Cancel at either prompt leaves prior user-level state unchanged.
95
-
96
- Non-interactive mutation requires both `--global` and `--yes`. `--dry-run` shows those confirmation requirements and the full impact without writing. Unknown newer global state schemas fail closed; supported migrations keep ownership, hashes, methods, and backup references. Exact and changed existing copies use the same adoption path as Project Installation.
97
-
98
- ### Sigma Installer: status
99
-
100
- `npx @djordje-stojanovic/sigmaskills status` is read-only. It reports Project Installation state by default, or Global Installation with `--global`. Human and `--json` output name the scope, installed and running Release, Skill Revisions, Agent Hosts, methods, exact paths, and ownership. Classification uses live per-file hashes and `lstat`/link checks. Valid Skill Customization is drift, not corruption. Drift discovery still exits `0`; command failures exit `1`. Status does not migrate, repair, write state or destinations, rewrite `skills-lock.json`, or contact the network.
101
-
102
- ### Sigma Installer: update
103
-
104
- `npx @djordje-stojanovic/sigmaskills update --dry-run` groups changed and unchanged skills, shows the bundled changelog and whole-skill file diffs, and writes nothing. `--yes` updates every changed skill when none are blocked; `--skill <id>` (repeatable) selects complete skills only. Valid Skill Customization bytes between the markers are copied onto the new official `SKILL.md` exactly. Edits outside that block are classified as local-only or concurrent with upstream; `--dry-run` names those cases and the overwrite or delete effects. `--outside-edit replace|skip|export` is required before mutation: replace takes a complete integrity-checked private backup first, skip leaves that skill and its state untouched while other skills continue, and export copies the prior tree to a planned path and refuses collisions. Missing, duplicate, reversed, nested, or otherwise malformed customization markers block automatic update for that skill and are never guessed into a customization boundary. `--dry-run` shows the marker shape, exact proposed repair bytes when a unique mechanical repair exists, and the resulting replacements or deletions. `--malformed-markers skip|repair|replace` is required before mutation: skip leaves that skill unchanged while others continue, repair writes only an approved exact repair, and replace takes a complete private backup then installs a clean official copy. Malformed markers plus outside drift keep all content until both `--malformed-markers` and `--outside-edit` are explicit. Cancellation, invalid repair, editor failure, backup failure, or transaction failure writes nothing partial. The latest valid backup stays until the new tree and backup metadata commit; cleanup failure may keep two backups and record cleanup debt. The canonical `.agents/skills/<id>` copy owns customization; links and matching managed copies follow it. Unknown newer state schemas, missing bundled Skill Revisions, broken links, and copy disagreement stop without mutation. Updates use the same transactional install path and refresh state only after commit. Project Installation is the default; Global Installation needs `--global` and `--yes`.
105
-
106
- ### Sigma Installer: restore
107
-
108
- `npx @djordje-stojanovic/sigmaskills restore --skill <id> --dry-run` shows the latest retained backup: Release and Skill Revision when known, creation date, verified size, scope, canonical target, and affected links or copies. `--yes` stages and integrity-checks the backup before any live write. On success the displaced current tree becomes the new one-step backup. Restoring identical content is a no-op and does not rotate backups. A removed skill can return from portable ownership metadata without claiming unrelated paths. Missing, truncated, tampered, schema-incompatible, insufficient-space, stale-ownership, occupied-unowned, and failed Windows fallback cases stop with the prior live tree and retained backup intact. Project Installation is the default; Global Installation needs `--global` and `--yes`.
109
-
110
- ### Sigma Installer: uninstall
111
-
112
- `npx @djordje-stojanovic/sigmaskills uninstall --skill <id> --dry-run` runs Uninstall Review for each selected skill. `npx @djordje-stojanovic/sigmaskills uninstall --all --dry-run` composes that same Uninstall Review across every recorded Sigma skill in one explicit Project or Global scope. There is no review-skipping fast path. The aggregate plan lists every skill, owned destination, canonical dependency, planned state change, and retained backup. Clean skills offer `--clean remove|keep`. Changed, customized, or malformed skills offer `--changed backup|keep|export|delete`. Uninstall-all defaults to `--changed backup` so backups remain restorable. `--yes` applies those choices: remove deletes only revalidated Sigma-owned paths; backup snapshots the current tree then removes it; export copies the current tree to `--export-dir` then removes managed paths; delete removes current content and leaves any older retained backup; keep writes nothing. Keep choices leave shared state and canonical dependency graphs intact. Execution rechecks each leaf with `lstat` and deletes a link itself, never its resolved target. Canonical content stays until recorded dependents are gone. Project uninstall-all never writes Global Installation; global uninstall-all never scans projects. For selected uninstall, missing paths, stale state, unowned replacements, divergent managed copies, and wrong-target links stop without a partial ownership change. For uninstall-all, those cases skip that skill, continue the rest, and report it as skipped. Interruption or failure leaves a durable recovery journal in installer state (`uninstall-journal.json`) and restores the failed skill so no active partial links remain. Human, dry-run, and JSON results report removed, retained, skipped, and failed skills. State and lock update only after filesystem operations commit. Project Installation is the default; Global Installation needs `--global` and `--yes`.
113
-
114
- ### Sigma Installer: purge
115
-
116
- `npx @djordje-stojanovic/sigmaskills purge --dry-run` lists the exact ownership plan for one Project or Global scope: revalidated Sigma-owned trees, links or junctions, copies, backups, staging, journals, and relevant locks. Purge never infers ownership from folder names. `--yes`, CI, non-TTY, and JSON are not authority. Apply with the typed phrase `purge SigmaSkills`, or non-interactively with `--confirm-purge "purge SigmaSkills"`. Unexpected unowned occupants stop the command and stay untouched. Cross-filesystem deletes journal first and quarantine owned trees before the ownership manifest is removed. An interrupted cleanup leaves recoverable quarantined state rather than active partial links. Retry with the same confirmation phrase finishes the purge. Project purge never writes Global Installation; global purge never scans projects.
117
-
118
- ### Sigma Installer: Agent Host registry automation
119
-
120
- The `registry-sync.yml` workflow fetches one pinned `vercel-labs/skills` revision as data and runs converter code only from the exact default-branch SHA in `EXPECTED_HEAD`. Generated changes are limited to `registry/agent-hosts.json`, `registry/source.json`, and `test/fixtures/vercel-skills/src/agents.ts`. New hosts must pass safe-root, traversal, collision, overlap, control-character, and platform checks. Only a generated pull request from that trusted workflow, with an exact allowlisted diff, the validated head SHA, current protected `main`, and all required checks may auto-merge. Validated additions and description-only edits can then publish a patch Release through the same idempotent trusted publication primitive as owner Releases. Path, ID, alias, detection, platform, membership, removal, unknown fields, and validation failures stay blocked for owner review. Version calculation serializes concurrent runs and reconciles npm and GitHub before the patch. The generated branch is deleted only after verified merge and matching npm/GitHub completion. If that generated branch is leftover from an earlier run, Generate replaces it; if a matching generated pull request is already open, Generate reuses it instead of failing the push. Automation cannot change skills, CLI behavior, unrelated issues or pull requests, human branches, or major/minor Releases, and it never overwrites an existing npm version. Configure an npm trusted publisher for `registry-sync.yml` in addition to `release.yml`.
121
-
122
- ### Sigma Installer: release
123
-
124
- `npx @djordje-stojanovic/sigmaskills release --dry-run` calculates the next semantic version and complete change set from the accepted source commit, then prints one publication preview: commit, version, required tests, tarball contents and SHA-256 digest, Skill Revisions, git tag, GitHub Release, npm package, and `latest` dist-tag. Ordinary merges never publish. `--yes`, CI, and informal text cannot dispatch. `--write-identities` writes matching `package.json`, `manifest.json`, and `CHANGELOG.md` identities so the owner can commit them. Dispatch requires `--expected-commit`, `--expected-version`, and `--expected-digest` that match that rebuilt preview. The trusted `release.yml` workflow independently checks out the approved commit, re-runs tests, rebuilds the tarball, and verifies those values before the publish job. Validation stays `contents: read`. Only the final job receives `id-token: write`, `contents: write`, and the protected `release` environment, with actions pinned by commit SHA. Missing npm reservation, trusted publisher, environment protection, or a conflicting version, tag, or GitHub Release fails closed with setup guidance. Matching npm provenance or an existing GitHub Release at the same commit is skipped rather than overwritten or duplicated.
125
-
126
- ### Cross-host alternative
127
-
128
- The cross-agent [skills](https://github.com/vercel-labs/skills) CLI detects Codex, Claude Code, Cursor, OpenCode, Pi, and dozens more:
129
-
130
- ```bash
131
- # Everything, all detected agents, global
132
- npx skills add Djordje-Stojanovic/Sigmaskills --all -g -y
133
-
134
- # One skill at a time
135
- npx skills add Djordje-Stojanovic/Sigmaskills --skill sigmareview -g
136
- npx skills add Djordje-Stojanovic/Sigmaskills --skill sigmaperformance -g
137
- npx skills add Djordje-Stojanovic/Sigmaskills --skill sigmabrief -g
138
- npx skills add Djordje-Stojanovic/Sigmaskills --skill sigmawrite -g
139
- npx skills add Djordje-Stojanovic/Sigmaskills --skill sigmarefactor -g
70
+ ### SigmaReview
140
71
 
141
- # Pin to specific hosts
142
- npx skills add Djordje-Stojanovic/Sigmaskills --skill sigmawrite -g -a cursor -a claude-code -a codex -a opencode -a pi
72
+ Finds everything that breaks the system's own promises: bugs, security holes, slow paths, broken rendering, and weak tests. It measures performance and runs security probes only when you allow it, and only on a local instance. Each finding has a location, a mechanism, an impact, evidence, a fix, and a proof test, so an LLM can fix it from that finding alone. All findings go into `SIGMAREVIEW-YYYY-MM-DD.md` on one pull request. It never changes your code.
143
73
 
144
- # List what this repo ships (no install)
145
- npx skills add Djordje-Stojanovic/Sigmaskills --list
146
- ```
74
+ SigmaPerformance is retired. Its measurement method now lives in SigmaReview.
147
75
 
148
- Full GitHub URL also works:
76
+ ### SigmaImprove
149
77
 
150
- ```bash
151
- npx skills add https://github.com/Djordje-Stojanovic/Sigmaskills --skill sigmabrief -g
152
- ```
78
+ Compares the product with the world's top one to three products and with published bars such as WCAG 2.2. It uses the product like a new user and keeps at least ten entries. An *idea* has three to five weighed options with sketches. A *signal* flags a gap that a person must think about first. Each category gets one living issue, so a run makes 1–20 issues, and later runs update them. It never edits the system.
153
79
 
154
- ### Codex
80
+ ### SigmaBrief
155
81
 
156
- ```text
157
- $skill-installer install sigmareview from https://github.com/Djordje-Stojanovic/Sigmaskills
158
- $skill-installer install sigmaperformance from https://github.com/Djordje-Stojanovic/Sigmaskills
159
- $skill-installer install sigmabrief from https://github.com/Djordje-Stojanovic/Sigmaskills
160
- $skill-installer install sigmawrite from https://github.com/Djordje-Stojanovic/Sigmaskills
161
- $skill-installer install sigmarefactor from https://github.com/Djordje-Stojanovic/Sigmaskills
162
- ```
82
+ Turns GitHub issues, features, bugs, or plain work statements into short, copy-pastable briefs for other agents. It does light research, writes a dispatch list and fenced briefs, and then stops. It never implements the work. Each brief tells the agent to plan, build, check, and open a PR for review, and not to merge. Run it only when you ask for it by name.
163
83
 
164
- ### Manual / universal copy
84
+ ### SigmaShip
165
85
 
166
- When a host only watches a skills folder (Pi, LAPI mirrors, custom TUIs, air-gapped boxes):
86
+ Ships one GitHub issue that has acceptance criteria. It opens a worktree, a branch, and a draft PR that tracks the criteria and review rounds. It builds test-first and pushes each slice. Fresh agents then review the branch in rounds until one round finds nothing at P0–P2. Then it merges, closes the ticket, removes the branches and worktree, and checks that local `main` equals `origin/main`. It refuses a ticket without checkable criteria and names the skill to run first.
167
87
 
168
- **POSIX**
88
+ ### SigmaWrite
169
89
 
170
- ```bash
171
- git clone https://github.com/Djordje-Stojanovic/Sigmaskills.git
172
- mkdir -p ~/.agents/skills
173
- cp -R Sigmaskills/sigmareview ~/.agents/skills/sigmareview
174
- cp -R Sigmaskills/sigmaperformance ~/.agents/skills/sigmaperformance
175
- cp -R Sigmaskills/sigmabrief ~/.agents/skills/sigmabrief
176
- cp -R Sigmaskills/sigmawrite ~/.agents/skills/sigmawrite
177
- cp -R Sigmaskills/sigmarefactor ~/.agents/skills/sigmarefactor
178
- ```
90
+ A writing voice inspired by **ASD-STE100 Simplified Technical English**. It gives soft steers, not numbered rules, and bans gibberish and invented words. A sharp outsider can follow the result, and it stays technical. It stays on until you turn it off. To keep the voice on everywhere, copy the **Paste as system prompt** block from [`sigmawrite/SKILL.md`](sigmawrite/SKILL.md) into your host's instructions. It is not certified STE.
179
91
 
180
- **Windows (PowerShell)**
92
+ ### SigmaRefactor
181
93
 
182
- ```powershell
183
- git clone https://github.com/Djordje-Stojanovic/Sigmaskills.git
184
- New-Item -ItemType Directory -Force -Path "$HOME\.agents\skills" | Out-Null
185
- Copy-Item -Recurse Sigmaskills\sigmareview "$HOME\.agents\skills\sigmareview"
186
- Copy-Item -Recurse Sigmaskills\sigmaperformance "$HOME\.agents\skills\sigmaperformance"
187
- Copy-Item -Recurse Sigmaskills\sigmabrief "$HOME\.agents\skills\sigmabrief"
188
- Copy-Item -Recurse Sigmaskills\sigmawrite "$HOME\.agents\skills\sigmawrite"
189
- Copy-Item -Recurse Sigmaskills\sigmarefactor "$HOME\.agents\skills\sigmarefactor"
190
- ```
94
+ Runs a `laloc` scan, reads the five largest maintained files, and explains safe refactoring choices. It waits for your approval before it edits. It keeps behavior, tests, interfaces, and your own changes intact. At the end it reports lines removed apart from lines moved into new modules.
191
95
 
192
- Point other hosts at the same folders (or copy again) as needed:
96
+ ---
193
97
 
194
- | Host family | Typical skills path |
195
- |-------------|---------------------|
196
- | Universal / Codex-style | `~/.agents/skills/<id>/` |
197
- | Cursor | `~/.cursor/skills/<id>/` or project `.agents/skills/` |
198
- | Claude Code | `~/.claude/skills/<id>/` |
199
- | Pi / LAPI-style | `~/.pi/agent/skills/<id>/` |
200
- | OpenCode | `~/.config/opencode/skills/<id>/` |
201
- | Codex | `~/.codex/skills/<id>/` |
98
+ ## Install
202
99
 
203
- Release zip: [**Sigmaskills-v0.2.1**](https://github.com/Djordje-Stojanovic/Sigmaskills/releases/tag/v0.2.1) contains the four skills released at that version. SigmaRefactor and the revised installer are available from the current repository source until a new package release is published.
100
+ Pick one method. The [installer guide](https://github.com/Djordje-Stojanovic/Sigmaskills/blob/main/docs/installer.md#other-install-methods) has the full per-skill commands and host folders.
204
101
 
205
- ### Optional: SigmaWrite as system prompt
102
+ | Method | Command | Best for |
103
+ |--------|---------|----------|
104
+ | **Sigma Installer** (recommended) | `npx @djordje-stojanovic/sigmaskills install --all --project .` | Project or Global Installation with status, update, restore, and uninstall |
105
+ | **`npx skills`** | `npx skills add Djordje-Stojanovic/Sigmaskills --all -g -y` | Every agent that the [skills](https://github.com/vercel-labs/skills) CLI detects |
106
+ | **Codex** | `$skill-installer install <id> from https://github.com/Djordje-Stojanovic/Sigmaskills` | Codex only |
107
+ | **Manual copy** | `git clone` this repository, then copy `<id>/` into `~/.agents/skills/` | Air-gapped machines and hosts that only watch a folder |
206
108
 
207
- Open [`sigmawrite/SKILL.md`](sigmawrite/SKILL.md), copy the **Paste as system prompt** block into host instructions when you want the voice always on — without editing this repo’s release contract.
109
+ Every [GitHub Release](https://github.com/Djordje-Stojanovic/Sigmaskills/releases) matches the npm package of the same version.
208
110
 
209
111
  ---
210
112
 
211
113
  ## Run
212
114
 
213
- Use your host’s skill syntax. Examples:
115
+ Use your host's skill syntax. Examples:
214
116
 
215
117
  <table>
216
118
  <tr>
@@ -220,9 +122,10 @@ Use your host’s skill syntax. Examples:
220
122
 
221
123
  ```text
222
124
  $sigmareview https://github.com/owner/repo
223
- $sigmaperformance https://github.com/owner/repo
125
+ $sigmaimprove
224
126
  $sigmabrief https://github.com/owner/repo/issues/12
225
127
  $sigmabrief all open
128
+ $sigmaship https://github.com/owner/repo/issues/42
226
129
  $sigmawrite
227
130
  $sigmarefactor
228
131
  ```
@@ -234,9 +137,10 @@ $sigmarefactor
234
137
 
235
138
  ```text
236
139
  /skill:sigmareview https://github.com/owner/repo
237
- /skill:sigmaperformance https://github.com/owner/repo
140
+ /skill:sigmaimprove
238
141
  /skill:sigmabrief https://github.com/owner/repo/issues/12
239
142
  /skill:sigmabrief all open
143
+ /skill:sigmaship https://github.com/owner/repo/issues/42
240
144
  /skill:sigmawrite
241
145
  /skill:sigmarefactor
242
146
  ```
@@ -245,121 +149,43 @@ $sigmarefactor
245
149
  </tr>
246
150
  </table>
247
151
 
248
- **Claude Code · Cursor · OpenCode · ChatGPT/Codex UI · Reasonix-class · Kimi/Muse · others**
249
- Use the skill picker, `@` / `$` skill mention, or whatever that product documents for Agent Skills. Folder name = skill id = invocation token.
152
+ **Claude Code · Cursor · OpenCode · ChatGPT/Codex UI · Reasonix-class · Kimi/Muse · others:** use the skill picker, an `@` or `$` mention, or whatever the product documents for Agent Skills. The folder name is the skill id and the call token.
250
153
 
251
- | Skill | Typical invoke | Notes |
252
- |-------|----------------|-------|
253
- | `sigmareview` | repo URL | Needs push/fork rights for the report PR |
254
- | `sigmaperformance` | repo URL | Starts with two short calibration batches, then runs |
255
- | `sigmabrief` | issue URL · `#N` · `all open` · plain work | Explicit only — not ambient |
256
- | `sigmawrite` | (no args) | Session writing voice until you turn it off |
154
+ | Skill | Typical input | Notes |
155
+ |-------|---------------|-------|
156
+ | `sigmareview` | repo URL · path | One setup message (authority, goals), then runs alone |
157
+ | `sigmaimprove` | repo · path · running product | One setup message (vision, focus, constraints, ticket place), then discusses ideas |
158
+ | `sigmabrief` | issue URL · `#N` · `all open` · plain work | Only when you ask for it |
159
+ | `sigmaship` | issue URL · `#N` | Refuses tickets without checkable acceptance criteria |
160
+ | `sigmawrite` | (no input) | Session writing voice until you turn it off |
257
161
  | `sigmarefactor` | repository path or current repository | Scans and discusses large files before any edit |
258
162
 
259
- ---
260
-
261
- ## Output contracts
262
-
263
- ### SigmaReview
264
-
265
- - File: `SIGMAREVIEW-FINDINGS-YYYY-MM-DD.md`
266
- - One dedicated branch + **report-only** PR
267
- - Prioritized, confidence-gated findings with exact evidence
268
- - Implementation-ready remediation and verification steps
269
- - Full repository coverage ledger
270
- - **No** source fixes, dependency installs, app execution, subagents, or auxiliary repo artifacts
271
-
272
- ### SigmaPerformance
273
-
274
- - File: `SIGMAPERFORMANCE-REPORT-YYYY-MM-DD.md`
275
- - One dedicated **report-only** PR
276
- - **M1** measured · **M2** mechanically proven bottlenecks
277
- - **M3** measurement-required opportunities, failed experiments, unverified boundaries (accounted separately)
278
- - Structured future SigmaOptimize handoff
279
- - Default single-agent; bounded subagents only via explicit calibration opt-in
280
- - **No** runtime-source changes or temp measurement junk in the repo diff
281
-
282
- ### SigmaBrief
283
-
284
- - Chat-only dispatch list + paste-ready fenced `text` briefs
285
- (**no** `SIGMABRIEF-*.md` in the product repo)
286
- - Types: greenfield · finish-PR · skip · blocked
287
- - Executing briefs: plan first · optional grill-me · **do not merge** · self-review before PR
288
- - Isolation on → agent-created Windows `git worktree`; cleanup only after human merge or abandon
289
- - Never implements the work or opens product fix PRs
290
-
291
- ### SigmaWrite
292
-
293
- - Chat writing style only (no report file, no PR)
294
- - Soft STE-inspired steers + hard bans (gibberish / invented words / talking down / renaming code)
295
- - Optional pasteable system-prompt block in `SKILL.md`
296
- - Does not override another skill’s rigid output contract
297
-
298
- ### SigmaRefactor
299
-
300
- - Five-stage scan → read → discussion → implementation → verification flow
301
- - `laloc` reconciliation with a maintained-file inventory and explicit exclusions
302
- - User approval before edits; behavior, tests, interfaces, and custom content stay protected
303
- - Final line-count comparison with removed and moved lines reported separately
304
-
305
- ---
306
-
307
- ## Requirements
163
+ ### Requirements
308
164
 
309
165
  | Skill | Needs |
310
166
  |-------|--------|
311
- | All | Agent that can load Agent Skills (`SKILL.md`) |
312
- | SigmaReview · SigmaPerformance | Read access to the target repo · authenticated GitHub tooling to push a branch or fork + open a PR |
313
- | SigmaPerformance | Authority / safety boundary chosen in calibration |
314
- | SigmaBrief | `gh` read when briefing from issues/PRs · **no** push to the product repo |
315
- | SigmaWrite | Nothing beyond chat — optional paste into system instructions |
316
- | SigmaRefactor | Read access to the target repository and `laloc` when available; no required external skill |
317
-
318
- Windows-native defaults where skills mention shells or worktrees (PowerShell-friendly; do not assume WSL).
319
-
320
- ---
321
-
322
- ## Repo layout
323
-
324
- ```text
325
- Sigmaskills/
326
- ├── AGENTS.md Agent working contract
327
- ├── README.md · CHANGELOG.md · LICENSE · package.json
328
- ├── test/ Structural regression tests (npm test)
329
- ├── .github/ Issue forms · PR template · CI
330
- ├── sigmareview/ SKILL.md · agents/ · references/
331
- ├── sigmaperformance/ SKILL.md · agents/ · references/
332
- ├── sigmabrief/ SKILL.md · agents/ · references/
333
- ├── sigmawrite/ SKILL.md · agents/
334
- └── sigmarefactor/ SKILL.md · agents/ · references/
335
- ```
167
+ | All | An agent that can load Agent Skills (`SKILL.md`) |
168
+ | SigmaReview | Read access to the target repo · GitHub tooling to push a branch or fork and open a PR · execution authority only if you want measured findings |
169
+ | SigmaImprove | Read access to the target · GitHub issue access only if tickets go to GitHub |
170
+ | SigmaShip | Push rights and GitHub tooling (`gh` or connector) to open, merge, and close; the repository's test commands |
171
+ | SigmaBrief | `gh` read access when briefing from issues or PRs · **no** push to the product repo |
172
+ | SigmaWrite | Nothing beyond chat |
173
+ | SigmaRefactor | Read access to the target repository and `laloc` when available |
336
174
 
337
- Each top-level folder is one installable skill. `name` in frontmatter = folder name = `--skill` id.
338
-
339
- Agents working in this repo should read [`AGENTS.md`](AGENTS.md).
340
-
341
- ---
342
-
343
- ## Testing
344
-
345
- Zero-dependency Node tests guard the beauty: skill registry, `SKILL.md` frontmatter, `agents/openai.yaml`, README install/run wiring, CHANGELOG, issue templates, agent docs, and SigmaWrite’s soft-steer contract.
346
-
347
- ```bash
348
- npm test
349
- ```
350
-
351
- CI runs the same suite on Windows, macOS, and Linux for Node.js 20 and 22, on every pull request and every push to `main`. Those jobs cover real junctions or symbolic links, copy fallback, shell differences, and an isolated temp filesystem.
352
-
353
- When you **add or rename a skill**, update `KNOWN_SKILLS` in [`test/repo-invariants.test.js`](test/repo-invariants.test.js) in the same change as README and CHANGELOG — otherwise CI fails on purpose. That rule also lives in [`AGENTS.md`](AGENTS.md).
175
+ Where skills mention shells or worktrees, they default to native Windows (PowerShell-friendly; no WSL assumed).
354
176
 
355
177
  ---
356
178
 
357
- ## Contributing & issues
358
-
359
- Use the issue chooser: [New issue](https://github.com/Djordje-Stojanovic/Sigmaskills/issues/new/choose)
360
- Bug · Feature · Improvement · Docs — written for skills, prompts, and templates (not unrelated product apps).
179
+ ## Links
361
180
 
362
- ---
181
+ - [Installer guide](https://github.com/Djordje-Stojanovic/Sigmaskills/blob/main/docs/installer.md): every command, flag, and install method
182
+ - [Maintainer guide](https://github.com/Djordje-Stojanovic/Sigmaskills/blob/main/docs/maintainers.md): tests, CI, releases, and registry automation
183
+ - [Skill evals](https://github.com/Djordje-Stojanovic/Sigmaskills/blob/main/docs/evals.md): how each skill's output is checked, and the latest results
184
+ - [CHANGELOG.md](CHANGELOG.md): what changed in each Release
185
+ - [AGENTS.md](https://github.com/Djordje-Stojanovic/Sigmaskills/blob/main/AGENTS.md): the working rules for agents in this repository
186
+ - [CONTEXT.md](https://github.com/Djordje-Stojanovic/Sigmaskills/blob/main/CONTEXT.md): the words this project uses, such as Skill Pack and Agent Host
187
+ - [Decision records](https://github.com/Djordje-Stojanovic/Sigmaskills/tree/main/docs/adr): why the installer works the way it does
188
+ - [New issue](https://github.com/Djordje-Stojanovic/Sigmaskills/issues/new/choose): bug, feature, improvement, or docs
363
189
 
364
190
  ## License
365
191
 
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "name": "sigmaskills",
4
- "version": "0.3.0",
4
+ "version": "0.4.0",
5
5
  "description": "Portable Agent Skills monorepo and first-party Sigma Installer",
6
6
  "skills": [
7
7
  {
@@ -10,8 +10,8 @@
10
10
  "needsReferences": true
11
11
  },
12
12
  {
13
- "id": "sigmaperformance",
14
- "title": "SigmaPerformance",
13
+ "id": "sigmaimprove",
14
+ "title": "SigmaImprove",
15
15
  "needsReferences": true
16
16
  },
17
17
  {
@@ -19,6 +19,11 @@
19
19
  "title": "SigmaBrief",
20
20
  "needsReferences": true
21
21
  },
22
+ {
23
+ "id": "sigmaship",
24
+ "title": "SigmaShip",
25
+ "needsReferences": true
26
+ },
22
27
  {
23
28
  "id": "sigmawrite",
24
29
  "title": "SigmaWrite",
@@ -29,5 +34,8 @@
29
34
  "title": "SigmaRefactor",
30
35
  "needsReferences": true
31
36
  }
37
+ ],
38
+ "retired": [
39
+ "sigmaperformance"
32
40
  ]
33
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djordje-stojanovic/sigmaskills",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Portable Agent Skills monorepo and first-party Sigma Installer",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,8 +15,9 @@
15
15
  "registry/skill-baselines.json",
16
16
  "manifest.json",
17
17
  "sigmareview",
18
- "sigmaperformance",
18
+ "sigmaimprove",
19
19
  "sigmabrief",
20
+ "sigmaship",
20
21
  "sigmawrite",
21
22
  "sigmarefactor",
22
23
  "README.md",
@@ -37,7 +38,8 @@
37
38
  "scripts": {
38
39
  "prepack": "node ./src/prepack.js",
39
40
  "test": "node scripts/run-tests.js",
40
- "registry:sync": "node ./src/registry/sync.js",
41
+ "release": "node scripts/release.js",
42
+ "registry:sync": "node ./scripts/registry/sync.js",
41
43
  "registry:validate": "node ./test/registry-validate-cli.mjs"
42
44
  }
43
45
  }