sentimony/skills
Sentimony agent skills: scope triage, planning, plan execution, test-driven development, debugging, code review, verification, and branch finishing; prose editing, dashes, and negative parallelism; skill crafting; Apache ECharts; frontend design, Vitest, TypeScript, agent context maintenance, secret hygiene, browser debugging, GitHub account switching, and committing the working tree.
Changelog
Repository-level changelog. Versions here are repository git tags (vX.Y.Z); each skill
also keeps its own CHANGELOG.md and metadata.version.
[1.58.18] - 2026-11-01
- Move the plugin root and its shared
skills/directory to the repository root, preserving every skill file and version. Add portable and Antigravity metadata, retain the Codex compatibility interface, and update active paths and CI checks. Three-host installation and invocation verification remains unverified. The owner accepted that release risk; follow-up: https://github.com/sentimony/agentic-workflow/issues/29.
[1.58.17] - 2026-10-31
Fixed
branch-finish1.1.7 andreview-resolution1.2.5: pin the six local responsibility-boundary attribution links to commit61919613972e63f2c833c1c5ad4744d7c40ad05a, preserving their targets before a repository layout change.
[1.58.16] - 2026-10-27
Added
commit-all1.4.4: a path to another repository's root scopes the run to that repository (20261024-2032); step 1 stops on an interrupted merge, cherry-pick, revert, or rebase and never runs--abort(20261025-0142), and waits for a background writer of the session or commits acheckpoint(20261025-1745).webapp-debugger1.1.3: network mocking beforeopen, with--bodyroutes ahead of the catch-all--abortbecause agent-browser takes the first matching route (20261022-0353), and a hidden-page check ofdocument.visibilityStatebefore timing conclusions (20261022-0041).
Changed
commit-all1.4.4: a clean current repository no longer needs the step 0 question when only one other repository has changes (20261024-2355); actions after the commit name theawplugin instead ofawf.gh-switch1.1.6: no warning about the shared account switch and no offer to switch back, anywhere in the workflow (20261024-2354).dashfix2.2.3: the agent-session hook becomes the bundled perl guardscripts/dashfix-commit-guard, which judges only the commit message, so a dash-replacement script or a heredoc in the same tool call no longer blocks the commit (20261025-2100).maintaining-agent-context1.9.1:agents_chain_size.pyreports an@-imported notes folder such asdocs/session-learnings/outside the Codex budget instead of as anOVERchain (20261024-2348).
Fixed
branch-finish1.1.6 andreview-resolution1.2.4:references/attribution.mdlinks point atplugins/skills/skills/instead of thedevflowplugin path removed in 1.58.15.
[1.58.15] - 2026-10-27
Changed
- All 28 skills are in the one
skillsplugin again: the skills ofdevflow,writing,skill-crafting, andechartsmove toplugins/skills/skills/, and those four plugins are removed. No skill changes: everySKILL.mdand skill version stays as in 1.58.14. - Breaking for plugin installs: this repository no longer hosts a marketplace
(
.claude-plugin/marketplace.jsonis removed, with its staleawfentry). Thesentimonymarketplace now lives insentimony/marketplace; README "Migrating from 1.58.14" lists the uninstall and install commands.npx skills addandskl-x addare unaffected. - CI no longer checks a local marketplace: it requires
plugins/skillsto be the only plugin and no.claude-plugin/at the root.
[1.58.14] - 2026-10-27
Added
gh-switch1.1.5: a missing GH_ACC is added to a gitignored.env/.envwithout asking when the account is unambiguous - the only github.com remote owner that is a logged-in account, or the one GH_ACC every sibling clone of the same owner names. The helper writes the header and the line at the top, keeps every other line byte for byte, and reports the addition; otherwise it prints the no-GH_ACC line as before.
Changed
commit-all1.4.3: actions after the commit go to awffinalize, or tobranch-finishwhere awf is not installed;argument-hintlists the explicit path scope the body already accepts.
[1.58.13] - 2026-10-26
Changed
- Marketplace: the
awfplugin moves tosentimony/agentic-workflowtagv0.0.6, which shipscr-request0.0.6: a closing line the caller requires now goes right before theNext stepline, which stays last, so the CI auto-review body ends with the versioned signature and then theNext stepline.
[1.58.12] - 2026-10-26
Changed
- Marketplace: the
awfplugin moves tosentimony/agentic-workflowtagv0.0.5, which shipscr-request0.0.5: in a non-interactive run the reviewer runs in the foreground and the result is written before the final message, and a closing line the caller requires stays last (the CI auto-review signature now carries the skill version).
[1.58.11] - 2026-10-24
Changed
- Marketplace: the
awfplugin moves tosentimony/agentic-workflowtagv0.0.4, which adds the workflow chainspecify,plan-craft,implement,verify, andfinalize0.0.1 and shipscr-request0.0.4,cr-received0.0.2, andsession-learnings0.0.2.
[1.58.10] - 2026-10-21
Added
gh-switch1.1.4:--no-switchmode for projects that forbidgh auth switch- the helper checks GH_ACC but never switches the shared account and prints a per-commandGH_TOKENprefix; a github.com project without GH_ACC now gets a one-line notice instead of silence.commit-all1.4.2:session-onlyscope that commits only the session's own paths and hunks; step 0 counts files with foreign changes and shows repository rules that limit agent commits; post-commit actions in its arguments pass tobranch-finish.branch-finish1.1.5:MERGE_ON_FORGEmerges a pull request on the forge after its required checks, pinned to the verified head SHA, syncs the base, and proves the merged tree equal to the verified one before deleting the branch.
Changed
cross-review1.4.2: without--agent, the opposite CLI and Antigravity (gemini-4-argon, effortmedium) review in parallel. New--target working-tree BASE,--planand--spechashed by the runner, a notice for a follow-up round on an unchanged target, and animplementationmode for changes made from conversation requests, with foreign hunks listed and left unjudged.webapp-debugger1.1.2: no longer a wrapper arounddebugging. It is now an experimental, user-invoked skill that debugs and verifies a local web app through the agent-browser CLI (snapshot refs, console, page errors, network requests, screenshots), written from scratch under MIT.web-debugstays on Playwright.plan-crafting1.8.3,inline-plan-dev1.3.4,subagent-plan-dev1.4.1: their Security Models name the two defaultcross-reviewreviewers and their vendor APIs, and the final review runscross-reviewwhen at least one reviewer CLI is available.skills.sh.json:webapp-debuggermoves to the "Skills" group; the "Renamed" group is removed.
[1.58.9] - 2026-10-18
Changed
- Marketplace: the
awfplugin moves tosentimony/agentic-workflowtagv0.0.3, which renamescr-receivetocr-received0.0.1, shipscr-request0.0.3, and addssession-learnings0.0.1.
[1.58.8] - 2026-10-18
Changed
- Marketplace: the
awfplugin moves tosentimony/agentic-workflowtagv0.0.2, which adds the skillcr-receive0.0.1 next tocr-request0.0.2.
[1.58.7] - 2026-10-18
Added
- Marketplace: the
awfplugin fromsentimony/agentic-workflow(skillcr-request), as agit-subdirentry pinned to itsv0.0.1tag. Install withclaude plugin install awf@sentimonyorcodex plugin add awf@sentimony. - CI: external marketplace entries must be
git-subdiron a sentimony repository, with a path and avX.Y.Ztag ref, and no localplugins/<name>directory.
[1.58.6] - 2026-10-17
Added
gh-switch1.1.3:gh_switch.py --gitlabchecks before GitLab API calls thatGITLAB_TOKENin the project's.env/.envbelongs toGL_ACC(one HTTPSGET /api/v4/userto the project's GitLab host, no redirects, token masked); exit 7 on another account. Without the flag the GitHub behavior is unchanged.
[1.58.5] - 2026-10-14
Changed
scope-check1.1.2: breaking - rewritten from scratch./scope-checkno longer runsscope-triage; it renders a saved spec or plan to an HTML preview in the OS temp directory (stdlibscripts/render.py,markedandmermaidfrom jsDelivr pinned with SRI), prints a clickablefile://link, and adds the file to the folderREADME.mdindex when one exists. It moves from the "Renamed" group to "Skills" inskills.sh.json.scope-triage1.1.2: Route C invokesscope-checkafter the spec self-review and after each spec edit.plan-crafting1.8.2: the saved plan goes toscope-checkbefore the plan review and after review corrections.cross-review1.4.1:--agent antigravitydefaults to effortlowinstead ofhigh;--effortstill overrides it.CONTRIBUTING.md: skill versions and repository tags bump the patch number only.
[1.58.4] - 2026-10-12
Added
cross-review:--agent antigravityruns the Antigravity CLI (agy, observed with 1.3.3) as the reviewer, by defaultgemini-3.8-flashwith efforthigh, only on the user's explicit request and never as a default or fallback. The runner reads the--output-format jsonresult, records tokens with the cost as unknown, resumes the same conversation with--conversationand ends with code 24 whenagystarted a new one instead, and ends with code 23 when a denied tool call left no answer. The brief embeds the diff and forbids commands; SKILL.md andcli-runtime.mdrecord thatagyhas no read-only flag, honors the user's globalpermissions.allow, and loads the reviewed repository'sAGENTS.mdandGEMINI.md.
Changed
cross-review: the automatic-rounds rule and the Security Model limits are split into labeled bullets per case and per reviewer, andcli-runtime.mdopens with a contents list; the rules themselves are unchanged.- Descriptions of
branch-finish,git-worktree-isolation,inline-plan-dev,subagent-plan-dev,tdd,skill-crafting,gh-switch,maintaining-agent-context, andprose-craftingare rewritten as trigger, scope, and boundary, without workflow detail.skill-craftingnow also names splitting, merging, and retiring skills. frontend-crafting: the trigger and scope widen from design work to any work that builds, implements, changes, or reviews a user-facing interface, including implementation-framed frontend changes in HTML, CSS, Vue, Nuxt, React, or another framework. Backend logic, infrastructure, framework selection, and internal refactoring without user-facing effects stay out of scope;web-debugruns alongside for browser verification anddebuggingkeeps root-cause investigation.typescript: the description also covers type inference, generics, type-safe API design, and framework type-checking issues. Rule 5 forbids silencing diagnostics withany, unjustified assertions, or suppression comments, and allows a narrow, documented assertion only on evidence the type system cannot express.skipLibCheckis a trade-off that keeps the project's existing policy rather than a default. The coverage audit checks the programs that project scripts and CI actually run, reported separately for production, test, and tooling files.subagent-plan-dev: pre-flight inspects the existing test setup before choosing verification commands; Vitest-covered tasks loadvitestalongsidetdd; acceptance of user-facing interface tasks includesfrontend-craftingquality criteria, withweb-debugfor browser evidence; the final matrix loadsvitestwhen runner knowledge is needed.maintaining-agent-context:scripts/agents_chain_size.pyresolves the effective Codexproject_doc_max_bytesandproject_doc_fallback_filenameswhen--budgetis omitted: the default,/etc/codex/config.toml, the user config inCODEX_HOME, a--profilefile, the root's.codex/config.tomlwhen the user config trusts it, and/etc/codex/managed_config.toml. It prints the limit with its source and notes for-cflags, MDM, an untrusted project config, and an ignored.codex/config.local.toml; a config that does not parse exits 2 naming only the file.codex-loading.mdrecords the layer order observed in Codex CLI 0.162.1, including that a legacyprofilekey makes Codex refuse to start.frontend-crafting: licensed MIT instead of Apache-2.0 from 1.5.0. It is an original work that reproduces no upstream text, so no source license requires Apache-2.0;web-debug, a fork of an Apache-2.0 skill, keeps Apache-2.0.- CI's hidden-Unicode scan also covers
CONTRIBUTING.mdandskills.sh.json. skills.sh.json: the "Skills" group gets a description that lists the agentic workflow, text writing, and other everyday skills by name.
Fixed
debugging: the attribution note says the upstream copyright is acknowledged in the packageLICENSErather than in the repository license, which lacks that notice.branch-finish:scripts/inspect_finish_state.pyresolves merge, rebase, cherry-pick, and revert state only in the repository given by--path. It also checked the Git path against the caller's working directory, so a merge in progress there was reported for a clean target repository.
[1.58.3] - 2026-10-12
Added
- Every skill has its own
LICENSE,CHANGELOG.md,metadata.version, and SPDXlicensein the frontmatter again, as before 1.54.0, so an installed or symlinked skill shows which version it is.LICENSEfiles are restored verbatim from 1.53.1, including the upstream notices: MIT with Jesse Vincent's copyright in theobra/superpowersforks, Apache-2.0 inweb-debugandfrontend-crafting. Skill changelogs carry the full history, including 1.54.0-1.58.2, and every skill gets a patch bump. The skill instructions are unchanged apart from the three reference notes under "Changed".
Changed
frontend-crafting: a persisted review names the skill version in its header again.verification-gate,web-debug: attribution notes point at the packageLICENSEand the SPDXlicensefield again.- AGENTS.md is now a map: where each skill lives, when to use it, and how to install the
skills with
npx skills,skl-x, and as Claude Code or Codex plugins. The branch, PR, versioning, publish, and test workflow moves to the new CONTRIBUTING.md; the remaining frontmatter conventions and skills.sh audit notes leave the repository for the maintainer's workspace. skills.sh.jsonis back: the skills.sh page shows every skill in one "Skills" group and the slash-only wrappersscope-checkandwebapp-debuggerbelow it in "Renamed".- CI requires semver
metadata.version,license,LICENSE, and aCHANGELOG.mdwhose newest entry matches the version, instead of rejecting per-skill versions.
[1.58.2] - 2026-10-10
Fixed
vitest: the case-collision check lowercases tracked paths withtrinstead of anawkprogram with a shell positional variable, which Claude Code replaced with the slash-command arguments when the skill was invoked with them.
[1.58.1] - 2026-10-10
Changed
- AGENTS.md records that Claude Code substitutes the words of a slash-command invocation
for shell positional variables and
$ARGUMENTSanywhere in SKILL.md, code blocks included, so skill bodies keep such variables out.
[1.58.0] - 2026-10-10
Changed
plan-crafting: the execution choice is asked through an interactive question tool when the mode allows one (AskUserQuestionin Claude Code,request_user_inputin Codex Plan mode), otherwise as a numbered list, and execution never starts without an explicit choice. Options are named after the skills in a fixed order (inline-plan-dev,subagent-plan-dev,cross-review), each with its description in every form, followed by the free-form answer and nocancel. Thecross-reviewoption names the next round by number, never by the time of a previous round, and the intro no longer counts the options.
[1.57.0] - 2026-10-10
Changed
maintaining-agent-context: the user-levelproject_doc_max_bytesgoverns the Codex budget also when a project instruction file already declares the repository personal. When the user says the repository is personal and no file declares it, the skill proposes one line for the rootAGENTS.mdin Phase 5, naming the source of the limit rather than its number, so later audits do not ask again.
[1.56.0] - 2026-10-10
Changed
- The single
skills@sentimonyplugin is split into five plugins of thesentimonymarketplace, for Claude Code and Codex alike. Skills move fromskills/<name>/toplugins/<plugin>/skills/<name>/; their names, descriptions, and bodies are unchanged.devflow:scope-triage,scope-check,plan-crafting,inline-plan-dev,subagent-plan-dev,git-worktree-isolation,parallel-agents,tdd,cross-review,review-request,review-resolution,debugging,verification-gate,branch-finish.writing:prose-crafting,dashfix,negafix.skill-crafting:skill-crafting.echarts:echarts.skills:frontend-crafting,vitest,typescript,maintaining-agent-context,secret-hygiene,web-debug,webapp-debugger,gh-switch,commit-all.
- Migration: after the update
skills@sentimonycarries only the nine skills above; installdevflow,writing,skill-crafting, andechartsto keep the other 19. Steps for Claude Code and Codex are in the README, "Migrating from 1.55". Plugin skills are namespaced by their plugin (/devflow:scope-triage). npx skills add sentimony/skills -s <name>installs every skill under the same name as before.branch-finishandreview-resolution: attribution links follow the new paths.skill-crafting:references/evaluation.mdnames its scripts relative to the skill.- CI validates every plugin's Claude and Codex manifests, the marketplace entries against
plugins/, and skill names unique across plugins.
[1.55.1] - 2026-10-10
Changed
- Shorter skill bodies, same behavior: rarely needed detail moved from
SKILL.mdto the skill's ownreferences/.negafixanddashfixgainreferences/audit.md(the full audit procedure),dashfixalsoreferences/enforcement.md(the agent hook);branch-finish,review-resolution,subagent-plan-dev,inline-plan-dev,parallel-agents,tdd,verification-gate,cross-review, andreview-requestkeep rules in the body and move detail into reference files they already had. Names, descriptions, and scripts are unchanged.
[1.55.0] - 2026-10-10
Added
commit-all:--main true|false(argument-hint: "[dry-run] [--main true|false]").--main truecommits to the default branch without asking; the default--main falseasks with two options, commit there or create a branch fromHEAD. A new step 0 offers a commit in every other repository this conversation changed that still has uncommitted changes, after listing each with its branch and changed-file count. One commit per repository; the Security Model states the wider scope explicitly.cross-review:argument-hintand invocation arguments--agent claude-code|codex,--model, and--effort low|medium|high|xhigh|max. The runner flag--revieweris renamed--agent;--reviewerand the valueclaudestay as deprecated aliases, and an oldrun.logstill resumes. The runner rejects an unknown effort before the run; model names stay unvalidated. A same-CLI reviewer runs only on an explicit--agentand the run report says it is not cross-vendor.cross-review:--target range BASE..HEAD | tree REV | working-treemakes the runner compute the file list, standard exclusions, and fingerprint;--followup <run-dir> --dispositions <file>starts the next round with the previous findings and their dispositions, andusage.jsongainsroundandtarget_total. Newreferences/implementation-brief.mdwith the host's test output and a sandbox note.cross-review: Automatic rounds - afterreview-resolutionasks for another round, the next one starts without asking up to and including round 3 of the same target, then only with the user's consent and a recommendation.plan-crafting,inline-plan-dev,subagent-plan-dev, andreview-resolutionpoint to the rule;plan-craftingoffers "Cross-review again" only after the automatic rounds stop.review-resolution: a mechanism counter - two consecutive rounds with new findings against the same stateful or concurrent design escalate toscope-triagewith a proposal to simplify. A "Plan/spec findings" subsection lists the evidence accepted when the target is a document: a throwaway reproduction, evidence deferred to a named plan step, or a scoped re-review.plan-crafting: Behavior Over Code for Stateful Logic - stateful, concurrent, or cache logic is planned as behavior, invariants, and named test scenarios, andtddwrites the implementation. Rename and delete steps stage withgit add -A -- <paths>; browser scripts in a plan are drafts.maintaining-agent-context: a Capture session learnings mode for requests to record what the session learned, with candidates from the session, a level per candidate (including a project document), and the unchanged Phase 5 gate. New read-onlyscripts/agents_chain_size.pymeasures everyAGENTS.mdchain against a budget. The global section compares~/.claude/CLAUDE.mdwith the Codex homeAGENTS.md.
Changed
cross-review: the reviewer gets an environment allowlist (path, home, locale, proxy, its own CLI's authentication) instead of the host environment;--pass-env NAMEadds more.PRICESis dated 2026-10-10 and addsgpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna, andgpt-5.5; a Claude price table backs up the CLI's own cost. The runner summary is ASCII.maintaining-agent-context: the read-mostly guardrail coversCLAUDE.local.mdand machine overrides, not user-level global files.
[1.54.1] - 2026-10-10
Changed
commit-all: step 1 starts fromgit diff --statand reads full diffs only for code, configuration, and documentation, not large generated or data files. Step 4 excludes local tooling (.envrc, generated output) without stopping and names it. Step 5 checks the summary length before committing and follows the repository's rules on what a commit message may quote, describing restricted changes by category and count. Amend is offered only to fix the previous commit, never for a new run with new work. Mechanics show both paths for a staged rename in a partial commit.maintaining-agent-context: a request addressed to aCLAUDE.mdshim routes the work toAGENTS.mdand says so. The assessment criteria tell a live symlink into a clone from an installed snapshot and a registry install. The Codex reference orders the config layers forproject_doc_max_bytes(user, profile, trusted project,-c) and notes that Codex reads no.codex/config.local.toml.
Removed
- The Release column from the README skill table: skills are not versioned individually, and the column only repeated the latest repository tag.
[1.54.0] - 2026-10-09
Added
commit-all:argument-hint: "[dry-run]", so the Claude Code/menu shows the documented argument.skill-crafting: create mode adds anargument-hintonly for arguments the skill body documents.- AGENTS.md records the
argument-hintconvention: a Claude Code field outside the Agent Skills specification, set only for documented slash arguments, never invented for a skill that runs from context alone. - CI checks that an
argument-hint, when present, is a non-empty single line with balanced[]and<>.
Changed
commit-allno longer setsdisable-model-invocation: true: its description and security model now cover a request in words ("commit everything") as well as/commit-all, still without a commit message from the user.- Skills are no longer versioned individually: repository releases are the only
versions.
metadata.versionandmetadata.authorare removed from every SKILL.md, the README skill table drops its Skill Version column, and CI rejects the two fields instead of requiring a semvermetadata.version. skills.sh may stop showing a per-skill version. frontend-crafting: a persisted review names the skill's release or commit instead of its version.
Removed
licensefrom every SKILL.md frontmatter, and AGENTS.md no longer requires the field. The skill instructions are unchanged.- Per-skill
CHANGELOG.mdfiles. This changelog is the only one; a skill's earlier history stays in git. - Per-skill
LICENSEfiles. The repository-levelLICENSE(MIT) now carries Jesse Vincent's notice for the skills adapted from obra/superpowers, andLICENSE-APACHEcoversfrontend-craftingandweb-debugwith their copyright holders listed inLICENSE. Copies installed from a single skill directory no longer include a license file. agents/openai.yamlfrom every skill, with the AGENTS.md convention and the CI check for it. Codex now shows each skill under its frontmatternameanddescription.- The
metadatablock from every SKILL.md frontmatter, and the CI check that requiredmetadata.internal: false. A skill without the field stays visible tonpx skills.
[1.53.1] - 2026-10-05
Fixed
maintaining-agent-context1.4.1: the Codex loading reference no longer counts the globalAGENTS.mdagainstproject_doc_max_bytesand describes the boundary file as truncated mid-text with only a log warning, as the Codex source implements it. It also covers untrusted projects, aconfig.tomlthat does not parse, and the moved documentation URL.
[1.53.0] - 2026-10-05
Changed
maintaining-agent-context1.4.0: the audit reads the effective Codexproject_doc_max_bytesand its source from the user-level and projectconfig.tomlinstead of assuming the default. For a shared repository the governing limit is the lower of the default and the project config; a chain that fits only a larger local limit is reported as a finding.
[1.52.0] - 2026-10-05
Changed
dashfix2.1.0: the audit no longer scans commit messages in git history, since fixing them needs a rewrite the skill does not offer; the report closes with an offer to install the commit-msg hook in every audited repository that lacks it. The install command resolves the hooks directory withgit rev-parse --git-path hooks, which covers worktrees andcore.hooksPath.verification-gate1.0.5: thenot applicablestatus uses a plain hyphen (- not applicable) instead of an em dash, matchinginline-plan-devandsubagent-plan-dev.cross-review1.1.2: run report token counts carry thousands separators (282,797 in).
[1.51.1] - 2026-10-05
Fixed
cross-review1.1.1: run report formatted as multi-line output (Reviewer, Tokens, Cost, Session) without redundant skills line; documented requirement for opposite CLI and no same-CLI fallback.
[1.51.0] - 2026-10-05
Added
cross-review1.1.0: a run report with the reviewer's model, effort, skills, token counts, and approximate cost inusage.jsonand a one-line runner summary, with a session total after resume.plan-crafting1.5.0: the execution choice offers a third option, anothercross-reviewof the corrected plan against the spec, when the plan references a spec andcross-reviewis installed.
[1.50.1] - 2026-10-04
Changed
dashfix2.0.1: a dash that hides a reason, result, contrast, or condition routes to thehidden logicrow and falls back to keeping-instead of a semicolon or period;linked clausesno longer claims such sentences.tdd1.0.7: the title uses a colon in place of the typographic dash.- Typographic dashes in English text are replaced with plain punctuation across the
repository changelog and the
echarts,scope-triage,typescript,vitestandweb-debugchangelogs, released sections included. Wording and facts are unchanged.
[1.50.0] - 2026-10-04
Changed
dashfix2.0.0: the plain hyphen is the only dash in every language. A spaced dash becomes a spaced hyphen, the relation table is optional better punctuation, a newdataverdict covers characters that code reads, the audit reports counts instead of a score, and thecommit-msghook no longer skips Cyrillic messages.prose-crafting1.0.2: the Ukrainian reference followsdashfixand no longer forbids replacing a Ukrainian dash with a hyphen.
[1.49.0] - 2026-10-04
Added
cross-review1.0.0: hands an implementation plan or a finished implementation to the opposite agent CLI (Codex for Claude Code, Claude Code for Codex) for an independent read-only review, with a self-contained brief, secret hygiene before the handoff, a target fingerprint, and the result passed toreview-resolution. The stdlib runnerscripts/cross_review.pycarries aCROSS_REVIEW_DEPTHloop guard, fixed read-only argv for both CLIs on run and resume, the reviewed repository forced untrusted for the Codex reviewer so its project.codex/config.tomlis not loaded, private run directories under the system temporary directory, and distinct exit codes; tests live inscripts/test_cross_review.py..claude-plugin/plugin.jsonlists./skills/cross-review.
Changed
plan-crafting1.4.0:Execution Handoffrunscross-reviewinplanmode after the plan is saved and before the execution choice, when the plan references a spec and the skill is installed. Without a spec the step is skipped; an unavailable reviewer or a failed, empty, or incomplete run is reported in one line and the normal handoff continues.inline-plan-dev1.1.0: an execution record in the plan file keeps the resolvedBASE_SHA, the repository root, and the initial dirty paths for resume. The final scope and diff review runs throughcross-reviewinimplementationmode when it is available and throughreview-requestotherwise, after a deterministic footprint check againstBASE_SHA.subagent-plan-dev1.1.0:.sdd/<plan-id>/state.jsonrecordsbase_sha,repo_root, andinitial_dirty_pathsfor resume. The whole-branch review runs throughcross-reviewinimplementationmode when it is available and throughreview-requestotherwise; per-task review gates are unchanged.- The Security Model of each of the three skills names what it may send through
cross-reviewto the other agent CLI and its vendor API.
[1.48.3] - 2026-10-01
Changed
.gitignoreignores.env/, where a clone keeps its localGH_ACCforgh-switch, so the file cannot be committed by accident.
[1.48.2] - 2026-10-01
Fixed
frontend-crafting1.3.4,inline-plan-dev1.0.6 andsubagent-plan-dev1.0.6: the attribution references link the maintainer-repository research files under their newYYYYMMDD-HHMM-names.
[1.48.1] - 2026-10-01
Changed
- Breaking for plugin users: the marketplace is renamed from
sentimarkettosentimonyand its plugin fromsentiplugtoskills, in both.claude-plugin/plugin.jsonand.codex-plugin/plugin.json, so the install command readsskills@sentimony. Remove thesentimarketmarketplace, addsentimony/skillsagain, and installskills@sentimony(claude plugin installin Claude Code,codex plugin addin Codex). The README now documents the Codex install, which reads the same.claude-plugin/marketplace.json.
[1.48.0] - 2026-10-01
Added
- Experimental user-invoked skills
scope-check1.0.0 andwebapp-debugger1.0.0: each setsdisable-model-invocation: trueand hands the request toscope-triageanddebuggingrespectively.
Changed
- Breaking for Claude Code plugin users: the marketplace is renamed from
sentimony-agent-skillstosentimarketand exposes one plugin,sentiplug, described by the new.claude-plugin/plugin.json, in place of the twelve group plugins (design-planning,debugging, and the rest). Uninstall the group plugins, remove the old marketplace, addsentimony/skillsagain, and installsentiplug@sentimarket. .codex-plugin/plugin.jsonpackages the same skills as a Codex plugin.skills.sh.jsonis removed, so the skills.sh page lists the skills as one flat list instead of titled groups.- Every skill gets a patch release (
branch-finish1.0.6,commit-all1.1.3,dashfix1.3.1,debugging1.0.11,echarts1.2.3,frontend-crafting1.3.3,gh-switch1.0.1,git-worktree-isolation1.2.2,inline-plan-dev1.0.5,maintaining-agent-context1.3.3,negafix1.4.1,parallel-agents1.0.5,plan-crafting1.3.4,prose-crafting1.0.1,review-request1.0.5,review-resolution1.0.4,scope-triage1.0.7,secret-hygiene1.0.1,skill-crafting1.1.3,subagent-plan-dev1.0.5,tdd1.0.6,typescript1.4.3,verification-gate1.0.4,vitest1.3.3,web-debug1.3.6) that addsagents/openai.yamlwith Codex display metadata andmetadata.internal: false. The skill instructions are unchanged. - CI checks that
plugin.jsonlists every skill and carries the newest release version, that each skill has a validagents/openai.yaml, and thatmetadata.internalis false.
[1.47.0] - 2026-10-01
Added
gh-switch1.0.0: before project-scoped gh commands on github.com, switches to the already logged-in account named byGH_ACCin the project's.env/.envand reports the switch in one line. Joins theGit Workflowgroup, whose description now covers GitHub CLI operations.
[1.46.0] - 2026-09-30
Changed
web-debug1.3.5 restructures its Security Model into user-controlled inputs, untrusted inputs, collected content as data, and capabilities, to address the skills.sh Snyk W011 finding; the workflow is unchanged.AGENTS.mdretires thenegafixW011 baseline row after the skills.sh scan of 2026-09-28, later than thev1.44.0merge, reported no issues, and marks theweb-debugrow for confirmation against the first scan after this release.
[1.45.0] - 2026-09-28
Added
secret-hygiene1.0.0: an advisory procedure that keeps credential values out of agent transcripts, tool output, logs, commits, and PR texts while the agent still uses them. NewSecuritygroup inskills.sh.jsonandsecurityplugin inmarketplace.json.
[1.44.0] - 2026-09-27
Changed
negafix1.4.0 givesjustified contrastonly when someone voiced the rejected position and the reason names where, reversing the 1.3.0 ruling that let a factual constraint in the negated half shield a two-half contrast fromviolationon its own.
[1.43.0] - 2026-09-26
Fixed
skill-crafting1.1.2 hardensscripts/run_eval.py: the adapter receives an environment allowlist plus the runner-setEVAL_*variables (other variables via--pass-env NAME, rejected with exit code 2 before the workspace exists when malformed or runner-set; forwarded names recorded inrun.json),EVAL_TIMEOUTsits below the runner's own cutoff, and ananswer_pathoutside the sandbox or run directory is an error. The Security Model now states that the eval spec, fixtures, template, and adapter are operator-trusted and that the temporary sandbox is not a security boundary.AGENTS.mdrecords the skills.sh Snyk W011 findings onnegafixandweb-debugas baseline: both skills exist to read third-party text and already treat it as untrusted.
[1.42.0] - 2026-09-26
Added
prose-crafting1.0.0 edits prose for its reader, purpose, context, and author's voice while preserving meaning, with rewrite, audit, and explain modes, a pattern catalog under stable semantic IDs, and English and Ukrainian guidance. Adapted in part fromblader/humanizer; dash policy stays withdashfixand negative parallelism withnegafix. TheWriting Stylegroup andwriting-styleplugin descriptions now cover prose editing as well as bans.
[1.41.0] - 2026-09-26
Changed
dashfix1.3.0 chooses the replacement for a banned dash by the relation it hides, splits a sentence overloaded with dashes before classifying each dash, leaves an awkward but grammatical comma pair to prose editing, and checks that a fix which adds, moves, or removes a word keeps every fact, attribution, qualifier, number, date, and relation. Detection, verdicts, and the score are unchanged.
[1.40.0] - 2026-09-26
Added
negafix1.3.0 catches negative parallelism split across two sentences, judges each candidate by an information-gain test and a claim-preservation check, and watches three adjacent shapes (rather than, unsupported objections, clipped negative tails) as exploratory signals outside the score. Adapted fromblader/humanizerpatterns 1 and 5; the skill stays a narrow negative-framing checker.
[1.39.0] - 2026-09-16
Fixed
- Deterministic defects found by inspection:
git-worktree-isolation1.2.1 canonicalizesworkspace_rootfor library callers and drops a deadrev-parsecall;review-request1.0.4 uses oneUNASSESSEDliteral across all four verdicts;branch-finish1.0.5 movesCLEANUP INCOMPLETEout of the outcome labels into its own cleanup status;commit-all1.1.2 resolves the repository's actual default branch instead of assumingmain/master. skill-crafting1.1.1 requires at least one should-not-trigger case in prose and points to its own evaluation reference. The concept existed only as a table cell that required nothing, and 4 of 4 answers failed that expectation in both arms of eval-4.
Changed
- Narrowed trigger boundaries so descriptions claim no more than the bodies deliver:
dashfix1.2.3 andnegafix1.2.3 no longer trigger on prose "anywhere in a project", andnegafixstates that ordinary factual negation is out of scope;tdd1.0.5 covers behavior changes and refactors with a checkable contract rather than "any" change;maintaining-agent-context1.3.2 owns instruction architecture rather than any SKILL.md edit. - Named missing composition boundaries:
vitest1.3.2 andtdd1.0.5 againsttddandverification-gaterespectively,echarts1.2.2 andfrontend-crafting1.3.2 againstdebugging.typescript1.4.2 andvitest1.3.2 mark Python optional,echarts1.2.2 takes install commands from the project's package manager,parallel-agents1.0.4 drops a hardcoded agent count,scope-triage1.0.6 checks compatibility before asking the user, andweb-debug1.3.4 aligns its heading and gates the Playwright install.
Added
inline-plan-dev1.0.4 andsubagent-plan-dev1.0.4 report plan progress as a counted status line at each task boundary, carrying no percentage and depending on no vendor-specific output channel.debugging1.0.10 records symptom provenance asPRE-EXISTING,INTRODUCEDorUNKNOWNin step 0.
[1.38.0] - 2026-09-15
Added
skill-crafting1.1.0: package-owned portable eval contract, validator, fresh-sandbox runner, and deterministic aggregator, with runtime adapters and isolated artifacts. Default installation isskill-creator-free; trigger-boundary evidence confirms sole ownership in the tested installation. The behavioral result is PARTIAL because of timeout and runtime variance, with no cross-harness comparison.
[1.37.0] - 2026-09-14
Added
skill-crafting1.0.0: methodology for creating, improving, evaluating, and optimizing reusable agent skills with category, risk, trigger, and evidence boundaries.
[1.36.0] - 2026-09-14
Changed
worktree-isolationis nowgit-worktree-isolation1.2.0, naming the mechanism the workflow reaches for most often. The selection hierarchy is untouched: reusing existing safe isolation still comes first, a harness-native workspace second, a manual Git worktree third, and safe work in place stays a legitimate outcome. Eight skills that reference it follow the rename:branch-finish1.0.4,debugging1.0.9,inline-plan-dev1.0.3,parallel-agents1.0.3,review-request1.0.3,review-resolution1.0.3,subagent-plan-dev1.0.3 andverification-gate1.0.3. Frozen changelog entries keep the previous names.
[1.35.0] - 2026-09-14
Changed
workspace-isolationis nowworktree-isolation1.1.0. The public name changes and the old one disappears from the registry; the skill keeps its full scope, and a Git worktree stays one option among existing isolated checkouts, harness-native workspaces, containers and safe work in place. Eight skills that reference it follow the rename:branch-finish1.0.3,debugging1.0.8,inline-plan-dev1.0.2,parallel-agents1.0.2,review-request1.0.2,review-resolution1.0.2,subagent-plan-dev1.0.2 andverification-gate1.0.2. Frozen changelog entries keep the old name, which is correct for a historical record.scope-triage1.0.5 andplan-crafting1.3.3: specs and plans are saved underYYYYMMDD-HHMM-<topic>.md, so several documents written on one day order by creation time. The-designsuffixscope-triageused is dropped, since the timestamp already distinguishes them.
[1.34.3] - 2026-09-14
Changed
- Every skill now documents a
## Security Modelsection with the same four components: which inputs are user-controlled, which are untrusted, that tool output is data rather than instructions, and whether the skill runs shell commands or network calls. Five skills gained a section, nine had theirs renamed or gathered from an existing rule, and five had missing components filled in.web-debugandscope-triagealready satisfied the contract and are unchanged. AGENTS.md: the skills.sh audit guidance now states all four components a Security Model section must carry, and the Snyk baseline row forreview-resolutionpoints at its new line numbers.
[1.34.2] - 2026-09-14
Changed
plan-crafting1.3.1 andtdd1.0.3: add the fork maintainer to the LICENSE copyright notice, the only two forked skills that were missing it.
[1.34.1] - 2026-09-13
Changed
branch-finish1.0.1: reportVerification: <verdict>instead of a literalPASSin the two templates whose outcome does not require a passing verdict, and state thatMERGE_BASEresolves a base only when exactly one other branch is a candidate.
[1.34.0] - 2026-09-13
Added
.sdd/to the repository.gitignore. This repository is itself a plausiblesubagent-plan-devtarget, so its state directory would otherwise appear as untracked noise in a release diff.
Changed
- Consolidated the registry groupings from sixteen groups to ten in
skills.sh.jsonand.claude-plugin/marketplace.json, replacing the single-skill groups the workflow chain created withExecution,Debugging,Review & Verification,Completion & Workspace,Frontend, andTypeScript & Testing. Every published skill appears exactly once. Pluginnamevalues are install identity, so each merged group keeps an existing name and only its description and skill list change. README.md: added aDevelopment Workflowsection namingscope-triageas the entry point, with the main development flow and the failure path as Mermaid diagrams, the four composability properties, and the list of conditional capabilities. The skill table is now grouped to match the registries, and the install block moved above it.scope-triage1.0.4: nametddanddebuggingas skill references in Route A instead of the bare words, so the router's handoff into implementation is unambiguous.
[1.33.1] - 2026-09-13
Changed
debugging1.0.6: route a review finding with an unclear cause toreview-resolutioninstead of the upstreamreceiving-code-reviewname.tdd1.0.2: route root-cause investigation todebugginginstead of the upstreamsystematic-debuggingname, in three places.
[1.33.0] - 2026-09-13
Added
branch-finish1.0.0: decide what happens to verified work and execute that decision safely, with read-only environment detection, six-level base-branch resolution by evidence precedence, four environment-filtered finish options, merge-conflict classification, idempotent resumption, separate gates for workspace removal and branch deletion, a seven-label outcome vocabulary, and a read-only state inspector with its test.
Changed
debugging1.0.5: route review acquisition and branch completion toreview-requestandbranch-finishinstead of the upstreamrequesting-code-reviewandfinishing-a-development-branchnames.
[1.32.0] - 2026-09-13
Added
inline-plan-dev1.0.0: execute an existing implementation plan inline in the current session, with plan-versus-reality reconciliation, a two-value blocker taxonomy, proportional verification depth, a deterministic scope check, durable resume in the plan file, and a fixed six-row final verification matrix.subagent-plan-dev1.0.0: execute an existing implementation plan through scoped subagents under a controller, with a pre-flight pass, an explicit dependency model, per-task risk classification, semantic harness capability detection, plan-scoped durable state in.sdd/, controller-owned verification before acceptance, a deterministic scope check, three-value review verdicts with conditional domain review, four stagnation signals feeding a four-step escalation ladder, and the same fixed six-row final verification matrix.- New
Plan Executionregistry group inskills.sh.jsonand the mirrored marketplace catalog, carrying both execution modes.
Changed
plan-crafting1.2.0 to 1.3.0: route plan execution toinline-plan-devandsubagent-plan-devin the plan header note and the execution handoff, replacing the upstreamexecuting-plansandsubagent-driven-developmentnames, and present the two execution modes as an equal choice.tdd1.0.0 to 1.0.1: route task ordering, execution mode, task ledger, and subagent orchestration toinline-plan-devandsubagent-plan-dev.debugging1.0.3 to 1.0.4: route plan execution failures toinline-plan-devandsubagent-plan-dev, and attribute execution state to the execution mode rather than to.sdd/.AGENTS.md: rebuild the known Snyk baseline findings table from a full local pre-flight. It listed two skills and one scan date while the scanner reports the same attribution redaction finding in seven, includingecharts, which the previous text called clean. A separate third-party content exposure finding inreview-resolutionis now tracked too.
[1.31.1] - 2026-09-13
Fixed
- README skills table: the
debuggingrow still showed 1.0.2, because the bump to 1.0.3 inv1.31.0updated the skill'smetadata.versionand CHANGELOG but not the table.
[1.31.0] - 2026-09-13
Added
parallel-agents1.0.0: prove work units independent, map mutable state, dispatch one bounded parallel wave, and reconcile results before integration.- New
Orchestrationregistry group inskills.sh.jsonand the mirrored marketplace catalog.
Changed
debugging1.0.2 to 1.0.3: route independent evidence streams toparallel-agents, which owns independence assessment, isolation topology, and bounded dispatch.
[1.30.0] - 2026-09-13
Added
workspace-isolation1.0.0: safe workspace selection, detection, and creation with explicit ownership, baseline, and handoff.- New
Workspaceregistry group inskills.sh.jsonand the mirrored marketplace catalog.
Changed
debugging1.0.1 to 1.0.2: route safe workspace setup toworkspace-isolation, which owns isolation and records the workspace that runs and inspects the code.
[1.29.0] - 2026-09-12
Added
verification-gate1.0.0: a completion gate that turns proposed completion claims into evidence-backed verdicts against the current tree.- New
Verificationregistry group inskills.sh.jsonand the mirrored marketplace catalog.
Changed
debugging1.0.0 to 1.0.1: route final verification toverification-gate, which owns the authoritative completion matrix and requires fresh evidence after a fix.
[1.28.0] - 2026-09-12
Added
review-resolution1.0.0: a compact workflow for validating, classifying, and resolving code-review findings with finding-level evidence, explicit dispositions, bounded loops, and proportional re-review.- Added
review-resolutionto the mirroredCode Reviewregistry and marketplace group.
[1.27.0] - 2026-09-12
Added
review-request1.0.0: a compact workflow for preparing and dispatching independent code review against explicit requirements, an exact implementation boundary, and the actual committed or working-tree diff.- New
Code Reviewregistry group inskills.sh.jsonand the mirrored marketplace catalog.
[1.26.0] - 2026-09-11
Added
debugging1.0.0: canonical root-cause-first methodology for bugs, regressions, failing tests, build and integration failures, flaky behavior, performance anomalies, and other unexpected technical behavior.- New
Debuggingregistry group inskills.sh.jsonand the mirrored marketplace catalog.
Changed
web-debug1.3.2 to 1.3.3: added a reciprocal boundary withdebuggingso browser/runtime observation and root-cause methodology compose without competing responsibilities.
[1.25.0] - 2026-09-11
Added
tdd1.0.0: a framework-neutral behavior-first TDD workflow with valid RED, acceptance boundaries, risk-based evidence, and explicit test-quality gates.
Changed
plan-crafting1.1.2 to 1.2.0: behavior-changing tasks now hand their test-first micro-cycle totddand avoid test-after task wording.- Testing registries now expose
tdd.
[1.24.0] - 2026-09-08
Changed
maintaining-agent-context1.2.0 to 1.3.0 - added a directory-scoped split as the remedy for an over-budget root, the Claude Code / Codex split trade-off, a version-control check for files the audit creates, an honest-limit rule and an earlier trigger for the restructuring checklist.
[1.23.0] - 2026-09-08
Changed
frontend-crafting1.2.1 to 1.3.0 - added a composite Step 0 mode for a single surface, apass/fail/unavailablestatus for static-only checks, a rule thatunavailableis never a severity, a first-audit clause, a baseline and finding boundary, an absence-check validation rule, and a persisted-review header contract.
[1.22.0] - 2026-09-07
Changed
echarts1.1.3 to 1.2.0 - added applicability and repeat-audit routing, DOM proxy evidence, verified SVG dataZoom slider geometry, render-completion and theme-proof criteria, tooltip grid sweeps, and explicit unavailable and time-boxed audit conventions.
[1.21.0] - 2026-09-07
Changed
vitest1.2.1 to 1.3.0 - expanded first and repeat audits with stdout, structural assertion, threshold headroom, end-to-end gate, runtime evidence, and measurement contracts; qualified Vitest 5 isolation advice; added keyed Nuxt data teardown; and tightened Nuxt andcross-envguidance.
[1.20.0] - 2026-09-07
Added
typescript1.4.0: Nuxt program ownership, solution-config and traced-number guidance, audit recipes for diagnostic deduplication, uncovered tests, companion programs, non-null assertions, and repeat audits.
[1.19.1] - 2026-09-02
Changed
frontend-crafting1.2.0 to 1.2.1 - the quality gate names an unset threshold as an assumption instead of a silent number, and polish keeps a change to the side or region the request named.
[1.19.0] - 2026-09-02
Frontend work now declares its workflow and surface mode in a fixed line before any file is touched, and reviews build on the audits a repository already has.
Changed
frontend-crafting1.1.0 to 1.2.0 - a numbered Step 0 fixes the announcement format and fires before the first file write and before any finding or verdict, so a review that writes nothing is still covered, repository-wide announcements name the dominant modes present, reviews locate prior audits and report their findings as resolved or still open while inheriting established measurements by reference, a finding is defined as an itemised entry with user impact required at every severity, and external CDN resources on a plain HTML and CSS brief must be named among the approximations
[1.18.0] - 2026-09-01
Repository-wide frontend reviews now make their coverage inspectable and verify search-driven findings before publication.
Changed
frontend-crafting1.0.0 to 1.1.0 - repository reviews group multiple surfaces by mode and declare scope, sampling, and exclusions; clean checks become quantitative baseline evidence; every finding is traced to primary code, delegated counts are remeasured, and the quality gate detects unintended mixed-language interfaces and missing element-levellangattributes
[1.17.0] - 2026-09-01
A new skill for frontend design work, distilled from four upstream skills into an original router-and-references architecture.
Added
frontend-crafting1.0.0 - create, redesign, review, and polish user interfaces through mode detection (Persuade/Operate/Read/Experience), a subject-derived design read stated before code, severity-graded review findings, and a verifiable technical quality gate; defers browser-driving verification toweb-debug.
[1.16.0] - 2026-08-30
An explicit /commit-all now commits in one shot: the file list and message become a
progress update instead of a confirmation gate.
Changed
commit-all1.0.1 to 1.1.0 - pre-existing tracked changes and a missing session snapshot no longer pause the run; the remaining stop conditions are the default branch, suspicious untracked files, and unsafe path arguments, withdry-runas the guaranteed stop before committing.
[1.15.0] - 2026-08-29
The agent-context audit measures sizes in the right unit from the start, keeps safety constraints ahead of the pointers they guard, and holds its confirmation gate against "apply immediately" invocations.
Changed
maintaining-agent-context1.1.0 to 1.2.0 - measurement recipe and edit-scope rule for cross-repository symlinks in Phase 1, inline safety constraints next to pointers, out-of-scope findings and "structure already correct" in the report, confirmation gate kept under "apply immediately", post-edit limit checks, and criteria for redundant commands and import shims.
[1.14.0] - 2026-08-25
The agent-context audit workflow now reports verification boundaries honestly and protects instruction content during restructuring.
Changed
maintaining-agent-context1.0.0 to 1.1.0 - risk-based verification statuses, explicit measurement units, a read-only shell boundary, Phase 4 coverage reporting, and approved formatting trade-offs with before-and-after integrity checks.
[1.13.0] - 2026-08-24
A new skill treats a repository's agent instruction files as one architecture and keeps it aligned with the codebase.
Added
maintaining-agent-context1.0.0 - audit, restructure, and maintain agent instruction files (AGENTS.md, CLAUDE.md variants,.claude/rules/, skills, linked agent docs) for Claude Code and Codex: read-only discovery and verification, a quality report before any edit, diff-style proposals with user confirmation, per-file-type assessment criteria instead of a universal rubric- New "Agent Context" group in
skills.sh.jsonand the mirroredagent-contextplugin in the marketplace catalog formaintaining-agent-context
[1.12.1] - 2026-08-21
Every session pays for skill descriptions in context; this batch trims the five most expensive ones without changing any workflow.
Changed
commit-all1.0.1,dashfix1.2.1,negafix1.2.1,echarts1.1.3,typescript1.3.3 - shorter frontmatter descriptions; workflow details the descriptions used to carry now live in the skill bodies.
[1.12.0] - 2026-08-20
The two writing-style skills answer their 2026-08-19 field feedback: regex matches are
candidates until a verdict reads the sentence, and a single new file gets a pre-handoff
check that skips the project score. A new commit-all skill gathers the working tree
into one user-invoked commit.
Added
commit-all1.0.0 - gather the working tree into one commit on the current branch with a generated English message; user-invoked only (disable-model-invocation: true), stops onmain/master, previews mixed trees, supportsdry-run, never pushes, never bypasses hooks, never rewrites history- New "Git Workflow" group in
skills.sh.jsonand the mirroredgit-workflowplugin in the marketplace catalog forcommit-all
Changed
dashfix1.1.0 -> 1.2.0 - "Single-file check" inventories one file and reports candidate and replace counts separately; mixed-language Markdown classifies prose blocks, quotations, code fences, and diagnostics per block instead of one file-level verdict; areplacerow's reason names the fixnegafix1.1.0 -> 1.2.0 - "Single-file check" verdicts every candidate from the full sentence before any rewrite; an exploratoryне A, а Bpattern for Ukrainian prose runs only on demand with a mandatory manual verdict; the counting-pass total counts candidates rather than violations
[1.11.0] - 2026-08-11
The two writing-style skills answer their first field feedback: the dash ban learns about language, both audits reach commit messages, both scores are normalized by project size, and both skills ship a git hook.
Added
dashfix1.0.0 -> 1.1.0 - "Language scope" makes the ban a rule of English typography that binds per file. In Ukrainian, Russian, Polish, and German the em dash is orthography, so the skill checks its form (em vs en, spacing, hyphen inside compounds) and a correct dash earns a fifthjustifiedcategory. Newscripts/commit-msghook rejects a banned dash in a commit message and skips a message written in Cyrillic, with both limits of that heuristic documented (a Cyrillic name in an English message is skipped too, and Latin-script Polish and German cannot be detected at all), aPreToolUsesnippet blocks the same mistake inside an agent session using perl alone (ajqpipeline exits 0 on a machine withoutjqand passes the commit through in silence), and an "Enforcement" section states that write mode does not survive a context compactionnegafix1.0.0 -> 1.1.0 - the same enforcement section with a warn-onlyscripts/commit-msghook, chosen because the detection patterns overmatch by design, plus a note on how much noisier the Ukrainian patterns are than the English ones- Both skills gain a commit-message inventory:
git log --grepselects the commits, including merge commits and commits whose only hit sits in the body, and an innerrgpass prints the matching lines as<hash>:<line>:<snippet>. The history table reads like the working-tree one and stays out of the score. Both skills also let write mode inherit the quotation verdict, so reporting a violation stops breaking the rule - Both skills add a counting pass (
rg --count-matches) next to the line-oriented inventory, sincerg -nprints a line holding two matches once. The occurrence total comes from the counting pass, a catalog row states how many occurrences its line carries, and a line whose occurrences disagree on the verdict splits into rows keyed<location>#<n> negafixsets its sharedPATTERNonce at the head of Step 1 and guards every later block with: "${PATTERN:?...}", so a block run on its own aborts instead of handingrgan empty pattern that matches every linenegafixaddsnot a ... but ato its inventory regex and its hook; the documented pattern list named it while neither command looked for it
Changed
- Both scores are normalized:
max(0, 100 - spread - depth), wherespreadis the share of scanned files carrying a violation anddepthis the capped average violation count per affected file. The old formula sent any project with five dirty files to 0 regardless of repository size - Both scan-exclusion lists become a rule (everything generated, and every file whose text is data rather than prose), with each added exclusion named in the report
- Both working-tree passes name
.explicitly, sincerghanded a piped stdin and no path reads the pipe rather than the tree and reports zero matches on a dirty project dashfixreplaces thegrep -rnPfallback withggrep -rnPand a perl one-liner, because BSD grep on macOS has no-P. The one-liner lists files with--cached --others --exclude-standard, repeats every scan exclusion both bare and**/-anchored, drops hidden paths, skips symlinks and files holding a NUL byte, and slurps each file to number its lines, so it reports the same locations as thergpass instead of missing untracked files, keeping root or nested lock files, reading hidden, symlinked and binary paths, and numbering every line after the first file wrong- README carries the skills.sh badge and states the install commands in the short
sentimony/skillsform
[1.10.0] - 2026-08-09
Two new writing-style skills that ban AI-writing tells and score a project's prose.
Added
dashfix1.0.0 - bans typographic dashes (em, en, and the neighboring Unicode code points) in favor of the plain hyphen in all produced text, audits a project with a per-occurrence catalog (justified/replaceverdicts), and grades compliance on a deterministic 0-100 scalenegafix1.0.0 - bans negative parallelism (the "it's not just X, it's Y" construction) in favor of direct positive statements, audits English and Ukrainian prose with per-match verdicts that keep plain factual negation legal, and grades compliance on the same 0-100 scale- New "Writing Style" group in
skills.sh.jsonfor both skills
Changed
- Repository-wide dashfix cleanup: every published skill replaces typographic dashes
(em and en) with plain-hyphen phrasing in SKILL.md, frontmatter descriptions,
reference files, and script comments, with no workflow or behavior changes:
scope-triage1.0.2 -> 1.0.3,plan-crafting1.1.1 -> 1.1.2,vitest1.2.0 -> 1.2.1,typescript1.3.1 -> 1.3.2,web-debug1.3.1 -> 1.3.2,echarts1.1.1 -> 1.1.2. AGENTS.md and README prose get the same cleanup. Released changelog entries are frozen and keep their original punctuation, and thedashfixskill's own examples keep the characters they document. - README install commands use the full GitHub URL form
(
npx skills add https://github.com/sentimony/skills ...)
[1.9.1] - 2026-08-09
Fixed
scope-triage1.0.1 → 1.0.2: the skills.sh Snyk audit still returned W007 (high) on 1.0.1, because Step 0 and Route A asked the model to repeat "the literal values, names, and numbers from the request" and kept the secrets carve-out in a separate paragraph. Both places now ask for the request's domain values, the prohibition on reproducing a secret, token, key, password, connection string, or personal datum leads its own paragraph, and credentials are referenced by placeholder name in the done criterion, in every command, and in the Security Model. No workflow change.
[1.9.0] - 2026-08-02
Five skills get audit and feedback fixes at patch level; vitest earns the minor bump
by changing how an auto-selected package script executes.
Fixed
scope-triage1.0.0 → 1.0.1: credentials are named, never echoed, in announced contracts and done criteria (Snyk W007), plus an explicit Security Model.vitest1.1.0 → 1.2.0: behavior change:run_vitest.pynow auto-runs a package.json script only when the entire script body does nothing but invoke Vitest, matching the skill's Security Model treatment of package.json scripts as untrusted repository data. That accepted script now executes as parsed environment plus argv, not throughnpm run/yarn/pnpm/bun run, so package-manager lifecycle hooks (pretest,posttest, and equivalents) are no longer triggered by auto-selection; its own flags and environment are still honored on this path.NODE_OPTIONSis still an accepted environment key, now restricted to memory-tuning values such asmax-old-space-sizeandmax-semi-space-size(underscore spellings included); a value that instead loads code, opens a port, or changes module resolution falls back with aSCRIPT_NOT_DIRECTnote. The parsed path does no shell expansion, so a glob or~inside the script's own arguments is passed literally. Separately and on every path,--scriptincluded, the runner now decides the child's environment rather than passing its own on: the variables a package manager injects (npm_*,INIT_CWD,PROJECT_CWD,BERRY_BIN_FOLDER) are dropped, every empty, relative, or project-touching entry is filtered out ofPATH, and the launcher is resolved to an absolute path against that filteredPATH; otherwise a project could ship its ownnode_modules/.bin/npxand have the runner execute it. APATHentry is judged by every component of it, not only by where it finally resolves, since a symlink inside the project can be repointed after the check; and the program found in a surviving directory is resolved too, so an allowed directory that merely links back into the project (whatnpm linkwrites) supplies nothing. Variables from your own shell,NPM_TOKENandNPM_CONFIG_*included, are untouched. AglobalSetupor test that shelled out to a sibling binary fromnode_modules/.bin, or readnpm_package_*, is affected. The Node preflight in both helpers goes through the same filter and now runs after it, so a project shipping its ownnode_modules/.bin/nodeno longer answers the preflight's question about itself; the shared rule lives in a newskills/vitest/scripts/node_environment.py, and both entry points are unchanged. A test script that chains another command, launches via a barepnpm/yarn/bun, carries an app-specific environment prefix, or has arguments containing a bidi override or other invisible formatting codepoint still doesn't auto-run; each falls back to the local Vitest binary with aSCRIPT_NOT_DIRECTnote, run with this helper's own arguments rather than the script's on that fallback path only, so flags spelled inside the script body (a--config, a--environment) no longer apply there; pass--script <name>to run it as written, with full lifecycle hooks, anyway. A package.json the runner cannot read (bytes that are not UTF-8, a non-object top level, ascriptslist, a script body that is not text) now takes the same fallback to the local binary (without that note, since no script was skipped) instead of ending the run with a traceback, and an undecodable.nvmrcor.node-versionreads as an absent one. Also hardens the project-file candidate scan (agent-toolchain directories excluded), theengines.nodepreflight (strict>parity with the inspector; a declaration now renders verbatim only when it is composed entirely of version-range characters and stays within the render limit, otherwise as a placeholder, without changing which projects are warned or blocked), the accepted script's renderedCommand:line (control characters and Unicode line separators rejected, length capped), and calibrates the Nuxt adapter guidance: mixingnode- andnuxt-environment files in one config is still the intended pattern but isn't guaranteed leak-free, so it now requires a representative mixed run as proof, with a uniform Nuxt environment or split projects/configs documented as fallbacks.typescript1.3.0 → 1.3.1: the Nuxt coverage report no longer contradicts itself,NODE_RUNTIME_MISMATCHstates the next action instead of only raw version numbers, and thevue-tscmigration guidance is version-gated.web-debug1.3.0 → 1.3.1: the crawl example now records a route asokonly after it has finished and its console messages are counted; a newincompletestatus covers a route that was interrupted, and a matching prior checkpoint resumes instead of re-crawling completed routes (the checkpoint's on-disk shape changed accordingly: per-route results moved under aresultskey). The example'sHYDRATED_SELECTORconstant is renamedCLIENT_ONLY_SELECTOR, gated by a newwait_until_hydrated()check that replaces the fixed sleep previously standing in for a real hydration check, and a resumed checkpoint is validated against the bounds the example itself writes and restricted to the current route list, so a hand-edited file cannot mark a routeokto have it skipped. Console output and page errors are escaped as they are collected, so a page cannot repaint the terminal or forge a line of the report.with_server.pynow prints the server log path on a successful start.
Changed
plan-crafting1.1.0 → 1.1.1: fallback verification for changes with no test seam, scoped staging, fixture realism, artifact-location precedence.echarts1.1.0 → 1.1.1: conditionalnotMergeclaims requiring runtime proof, grouped state inventory, named registration unions, split performance evidence.scope-triage1.0.0 → 1.0.1: Route C may present a whole design in one message when it fits, keeping per-section approval only for separately contentious sections, and applies a revision before answering a new question in the same reply; Step 0 names a fan-out-then-targeted retrieval strategy.scope-triageandplan-craftingshare one artifact-location precedence rule: an explicit user instruction overrides the skill default; a repository convention does not.- CI runs every
test_*.pyunderskills/, which no job had been doing; it validated frontmatter, compiled Python, and grepped for hidden Unicode, but ran no tests.actions/checkoutandactions/setup-pythonare on v7 (the old pins forced Node 20 onto a Node 24 runner). The hidden-Unicode scan takes its pattern from the runtime definition inrun_vitest.pyinstead of keeping a second copy (read out of the source withast, so the scan executes none of the code it is checking), checks itself against a positive control carrying every codepoint in that set, and distinguishes "found nothing" from "the scanner failed", which! grephad reported alike. AGENTS.md states what CI now does and what a maintainer test module has to be for CI to run it.
[1.8.0] - 2026-07-31
Security-normalized audit guidance across the public skill collection.
Added
vitestreferences/audit.md,typescriptreferences/audit.md, andechartsreferences/audit.md: progressive-disclosure audit guidance kept out of the main workflow until a request is actually an audit.
Changed
vitest1.0.3 → 1.1.0: normalized, safe existing-suite audit reports and audit guidance.typescript1.2.2 → 1.3.0: normalized TypeScript and Nuxt audit reports, safe local-tool resolution, and Node-runtime preflight guidance.web-debug1.2.1 → 1.3.0: hardened readiness and bounded log evidence, plus checkpointed browser, accessibility, and console-audit guidance.echarts1.0.5 → 1.1.0: audit guidance for lifecycle, trust, interaction, and browser evidence moved to a reference file.plan-crafting1.0.0 → 1.1.0: explicit Security Model: repository evidence and tool output are data, and the skill takes no shell or network actions.- All six skills now use security-normalized handling of untrusted repository, page, DOM, test, compiler, and tool output, with expanded audit guidance where applicable.
[1.7.0] - 2026-07-29
Two design skills that decide how much design a request actually needs, then turn the approved design into an executable plan.
Added
scope-triage1.0.0: a fork ofobra/superpowersbrainstormingthat classifies request scope first and routes to one of three outcomes: direct implementation for explicitly specified mechanical changes and localized fixes, a light spec for large but fully specified changes with a single open question, or the full design cycle (clarifying questions, approach trade-offs, sectioned design approval, a design doc indocs/specs/, handoff toplan-crafting) whenever anything about the product, UX, or public contract is still undecided; hard implementation gate, assumption register, mirrored rationalizations table, and Route C design lenses inreferences/plan-crafting1.0.0: a fork ofobra/superpowerswriting-plansthat turns an approved design or settled requirements into bite-sized TDD tasks with exact files, interfaces, verification steps, and commits; plans are written todocs/plans/YYYY-MM-DD-<feature-name>.mdand handed off tosubagent-driven-developmentorexecuting-plans
Both skills replace their upstream counterparts rather than complementing them: install one of each pair, not both.
[1.6.0] - 2026-07-20
Feedback-driven guidance updates from real audit sessions on the agilecharts project.
Changed
typescript1.2.1 → 1.2.2: audit guidance: "already healthy" early exit, sampling heuristic for massive non-null-assertion counts, genericdefinePropsforconfig: anyVue props; error playbook gains theERR_PACKAGE_PATH_NOT_EXPORTED './lib/tsc'entry; TS-7 migration reference gains a "Choosing the TS-7 target" checklist and atypes: []vslibnotevitest1.0.2 → 1.0.3: Nuxt auto-import leak intoenvironment: nodefiles documented in Common Failure Modes (symptom, cause, diagnosis);.nuxt-cache warning (nuxt prepare, notrm -rf); mixed node/nuxt environment config example in the Nuxt adapterweb-debug1.2.0 → 1.2.1: cold-start HMR form-reset pitfall in Waiting Strategy; login-then-audit pattern in Best Practices;console_audit.pyexample gains an optional login step over a shared context and is documented as a copy-and-edit templateecharts1.0.4 → 1.0.5: audit checklist recognizes design-tokens theming as a valid alternative toregisterThemeand classifies one-off hardcoded hex colors as duplication debt; Common Failure Modes gains the "notMerge: trueeverywhere" pitfall
[1.5.0] - 2026-07-19
Changed
web-debug1.1.2 → 1.2.0: Agent Trust Hub remediation:with_server.pyruns--serverwithout a shell (shlex +shell=False, explicitbash -cescape hatch), Playwright install pinned to an exact release, Security Model gains untrusted-output boundary rulesecharts1.0.3 → 1.0.4: Snyk W012 remediation: vanilla example loads ECharts via a pinned UMD build with an SRI hash instead of a runtime ESM importtypescript1.2.0 → 1.2.1,vitest1.0.1 → 1.0.2: descriptions rewritten- All four descriptions now start with "You MUST use this when…"; new repository convention for skill descriptions
[1.4.0] - 2026-07-13
Changed
typescript1.1.1 → 1.2.0: real-world feedback from a Vue/Netlify TypeScript 7 side-by-side migration:inspect_typescript.pynow detects a native TypeScript 7 compiler installed alongside the framework's TypeScript 6 and reports eachtypecheck*script's target tsconfig; added the four hardening flags (noImplicitOverride,noFallthroughCasesInSwitch,noUnusedLocals,noUnusedParameters) to the effective-flags report and an explicit "coverage complete" result; documented the real-package dual-install layout that keepstypescripton genuine 6.x for vue-tsc/Volar; clarified "pinned" and CI auditing for multiple compiler paths
[1.3.1] - 2026-07-12
Security-audit hardening from the skills.sh scanners. No behavior change.
Changed
web-debug1.1.1 → 1.1.2: Gen Agent Trust Hub audit (Warn/Medium): added a Security Model section (--serveris user-controlled shell config; page content is untrusted data, not instructions), reworded the "run--helpfirst" guidance so it no longer reads as "don't inspect the source", and clarified theshell=Truecomment inwith_server.pyecharts1.0.2 → 1.0.3: Snyk audit (Warn/Medium, W012): pinned the standalone CDN import inexamples/vanilla_line.htmlto an exact release (echarts@6.1.0) instead of a floating@6typescript1.1.0 → 1.1.1: cleared the skills.sh "Contains Shell Commands" false positive by rewording an isolated non-null exclamation-mark operator that the scanner read as a shell-command directive
[1.3.0] - 2026-07-11
Added
typescript1.1.0: migration guidance for the stable TypeScript 7 native compiler, including the TypeScript 6 compatibility bridge, compiler-API and framework limitations, side-by-side adoption, and rollback; research checked against official TypeScript sources dated 2026-03-23 and 2026-07-08
Changed
- README skills table: renamed Version to Skill Version and added the repository Release tag associated with each skill version
[1.2.2] - 2026-07-07
Changed
echarts1.0.1 → 1.0.2: second-audit feedback: tooltip security, ComposeOption example, SSR registration parity,connectaxis-semantics caveat,notMergeinteractive-state failure mode, ECharts 6 default-theme and label-overflow migration notes
[1.2.1] - 2026-07-07
Changed
echarts1.0.0 → 1.0.1: first-usage feedback: shared registration module guidance, type-import bundle notes, ECharts 6 migration notes (containLabel→outerBoundsMode/outerBoundsContain), "Auditing Existing Usage" checklist, vue-echartsupdate-options/groupgotchas
[1.2.0] - 2026-07-07
Added
echarts1.0.0: build, style, debug, and optimize Apache ECharts visualizations in vanilla JS, React, or Vue; lifecycle management, tree-shaken imports, theming, large-dataset performance, SSR, common failure modes; vanilla/React/Vue reference examples
Changed
skills.sh.jsongroups reorganized: Browser (web-debug, echarts) and JavaScript Tooling (vitest, typescript) instead of Development / Quality Assurance- AGENTS.md: mandatory updates of the repository CHANGELOG and skills.sh.json, release/CI notes; a new-skill branch may change existing files if noted in the repository CHANGELOG
[1.1.1] - 2026-07-07
Changed
typescript1.0.1: framework checkers, audit mode, script skip criteria
[1.1.0] - 2026-07-05
Added
typescript1.0.0: configure tsconfig, resolve compiler errors, debug slow type-checking, fix module resolution, migrate JS to TS; inspect-first Python helpers, error playbook, module-resolution / migration / monorepo referencesskills.sh.jsongrouping the skills.sh page into Development and Quality Assurance sections
Changed
- README skills table: new Version column with each skill's
metadata.version
[1.0.1] - 2026-07-05
Added
- Per-skill
CHANGELOG.mdforvitestandweb-debug(Keep a Changelog style; not referenced from SKILL.md so it never enters an agent's context) AGENTS.md(+CLAUDE.mdimporting it) with repository conventions: English-only content, plain semver in skill metadata withvprefix reserved for git tags, feature-branch + squash-merge workflow- Basic CI: SKILL.md frontmatter validation (name/description/semver version), Python compile check for scripts and examples, hidden/bidi Unicode check
[1.0.0] - 2026-07-05
First tagged release of the skills collection, published on skills.sh.
Skills
vitest1.0.1: configure, write, debug, run, and migrate Vitest tests for JavaScript/TypeScript projectsweb-debug1.1.1: debug local web apps via Playwright (fork ofanthropics/skillswebapp-testingwith field-feedback improvements)