Releases: manojmallick/skillweave
Releases · manojmallick/skillweave
Release list
v2.2.2 — OpenAI fence-stripping fix
Fixed
- OpenAI provider (#69): strip a wrapping
```jsoncode fence fromjson_schemaresponses before parsing. OpenAI-compatible proxies and gateways (e.g. those fronting Gemini/Llama) commonly ignoreresponse_format: json_schemaand return fenced JSON, which made the boundary judge's strictJSON.parsethrow and silently fall back to the heuristic. Structured output now works through these providers; plain (non-schema) completions are untouched.
Full Changelog: v2.2.1...v2.2.2
npm: not yet published for this tag — run
npm publish(theprepublishOnlybuild runs automatically).
v2.2.1 — Gemini array fix + use-cases
Fixed
- Gemini provider (#64): array JSON schemas now translate to
Type.ARRAYwith translated items. PreviouslytoGemini()had noarraycase, so array schemas fell through to the string default and Gemini returned a comma-joined string instead of a JSON array — breaking any structured array output (extraction, the boundary judge) on the Google provider. Adds regression tests. examples/compose.ts(#64): thereducePatterncallback signature is(acc, item), not an index.
Added
examples/use-cases/(#64) — six runnable real-world scenarios (support triage · code-review gate · secret-safe logs · batch digest · nightly report · a live-LLM A/B) that show what the runtime adds over a plain skill/prompt.
v2.2.0 — summarize skill
Added
summarizeskill (#60) — a probabilistic extractive summarizer: ranks content blocks by salience and takes the top ones verbatim (so the auto-judge sees grounded output), reporting a confidence. On a retry it takes fewer, stronger sentences, so a low-confidence first attempt recovers — exercising the full reliability layer (confidence routing → auto-judge → retry-with-negative-context) from a second skill (previously onlyextract-highlightsdid).Stategains aDocSummarytype +summary?field; newdoc-summary@1.0registry schema (additive), pinned as the skill'soutput_schema; a runnableexamples/summarize.ts.
v2.1.0 — todo-flagger skill + examples
Added
todo-flaggerskill (#56) — a deterministic, registered skill that flags content blocks containing aTODO/FIXME/XXXmarker; grades 9/9 → verified. A complete worked example of authoring a skill, including extendingStatewith a new field (flags/ theTodoFlagtype) and adding atodo-flag@1.0registry schema.- Eight runnable, offline example scripts under
examples/(#52) — one per feature area (run-chain · verify · compose · triggers-and-events · memory · observe · custom-skill · security), plustodo-flagger. - An Examples guide page (#54) surfaced in the docs sidebar + top nav and the README.
v2.0.2 — npm publish
First release published to npm (npm i skillweave).
Fixed
- CLI:
run --doc,test --input, andverify --inputnow fail gracefully on a missing or malformed file — a clean error and exit code 2 instead of an uncaught Node stack trace (#49). Verified by running every feature end-to-end.
Added
- Tag-gated npm publish workflow (
.github/workflows/publish.yml) — publishes on avX.Y.Ztag push (or manual dispatch), idempotent, with npm provenance. - README license line.
v2.0.1 — npm-publishable
Changed
- Build: the package is now npm-publishable (#43). Added a compiled build (
tsconfig.build.json→dist/with JS +.d.ts+ sourcemaps;npm run build;prepublishOnly), droppedprivate, and setmain/module/types/exportsto the compileddist/index.js+dist/index.d.ts, with afileswhitelist (dist,schemas,provider-profiles,pipelines) andengines.node >= 20. - Schema-registry and provider-profile data now resolve relative to the package install location (
src/pkg-path.ts), so a globally-installed CLI reads its own bundled data instead of the consumer's cwd; theSKILLWEAVE_SCHEMA_DIR/SKILLWEAVE_PROFILES_DIRoverrides still take precedence. - The
skillweavebin runs the compileddist/cli.jswhen present and falls back to the tsx source loader in a dev checkout.
v2.0.0 — COMPOSE + OBSERVE
The roadmap capstone. This release also ships the MEMORY primitive from [1.3.0] below, which was prepared but never tagged — 2.0.0 carries it to a published release.
Added
- COMPOSE primitive (#39) under
src/compose/— all composition patterns as pure async combinators:sequential·parallel·mapPattern·reducePattern·conditional(when, then, else?)·loop(body, until, maxIterations). dagLayers(nodes)— DAG resolution: ordersdepends_oninto parallelizable layers; throws on a cycle or an unknown dependency.- OBSERVE primitive (#39) under
src/observe/— a local-first observability layer:checkAlerts(metrics, rules)— threshold alerting rules (>>=<<===!=) → fired alerts with value + severity, routable through theEventBus.visualise(pipeline, { format })— an ASCII or Mermaid diagram of a pipeline (trigger → steps + events).abTest(scoreA, scoreB)— compare two skill-version judge scores →{ winner, delta }.
- CLI:
skillweave visualise <pipeline.yaml> [--mermaid]. src/index.tsre-exports the COMPOSE + OBSERVE surface.
Notes
- Deferred (documented): the hosted observability dashboard and live alert/webhook delivery (network — a host responsibility; alerts route through the
EventBus), orchestrator-level DAG auto-execution, and published performance benchmarks.
v1.2.0 — TRIGGER + EVENT primitives
Added
- TRIGGER + EVENT primitives (#32) — declarative pipeline activation and a typed, routed observability signal model. Local-first: triggers resolve and events route in-process; real webhook/human delivery is the host's responsibility.
- EVENT — typed signals (
info/warning/alert/failure) and anEventBus. Subscriptions are declarative ({ on, emit, notify, continue });emit(name)fans out to every subscription matchingon, routes aSkillEventto eachnotifytarget (trace-log/webhook/human, via injectable handlers that default to in-memory sinks), and returns{ routed, stop }—stopis true when a matched subscription declarescontinue: false. - TRIGGER —
TriggerSpec(manual/cron/webhook/pipeline_completion/file_watch/git_hook/git_diff, plusconditionandhuman_checkpoint), a pure 5-fieldcronMatches(*, lists, ranges, steps), andshouldActivate(spec, ctx)resolving activation gated byconditionand a human-approval checkpoint. - Pipeline
trigger:andevents:blocks — parsed and validated by the loader;Pipelinegainstrigger/events. Thedocument-groundingpipeline now declares both. src/index.tsre-exports the surface (EventBus,cronMatches,shouldActivate, and the TRIGGER/EVENT types).
Changed
- The orchestrator emits named events (
low_confidence_detected/skill_failed/pipeline_succeeded) to an optionalEventBus— additive, with zero overhead when none is supplied.
v1.1.0 — Developer experience
Added
- Developer experience (#28) — first-run onboarding so a newcomer never has to feel the runtime's depth.
skillweave doctor— a one-command readiness report: Node version, the active judge provider (or "offline heuristic — no API key needed"), registered skill count, and registry/artifacts presence, ending with whether you can run now.runDoctor()returns the report as a structuredDoctorReport(re-exported fromsrc/index.ts).- "Did you mean?" suggestions — an unknown command suggests the closest command, and an unknown skill name (in
test/publish/install) suggests the closest registered skill;closest/levenshteinexported for reuse.
Changed
- CLI usage now leads with
skillweave doctorand a "New here?" hint.
v1.0.0 — Registry + public launch
First stable release — the public-launch surface. The src/index.ts API is now the supported integration point.
Added
- Skill registry + public launch (#24) under
src/catalog/— a tiered, quality-gated, local-first registry of published skills. - 9-point quality gate —
gradeSkill(skill)scores a contract on name ·does·does_not· state scope · capabilities · assertions · schema pin · model-neutral language · coherent classification, returning aQualityReportwith points and tier. - Trust tiers from the gate —
verified(9/9) ·community(6–8) ·experimental(3–5); below the experimental floor (<3) publishing is refused. - Quality-derived reputation — each entry stores
reputation = round(points / 9 * 100). - File-backed store at
.registry/skills.json(gitignored, no network) —publishSkill/installSkill/listRegistry. - CLI:
skillweave publish <skill>·install <skill>·registry [list]. src/index.tsre-exports the catalog surface (gradeSkill/publishSkill/installSkill/listRegistry+ types).