Honey
Green-PT/honey-for-devs
Write less code and say less about it. An agent skill from Green-PT/honey-for-devs.
Recognize when a mission is a bulk edit and drive the occurrence-classification guardrail on the user's behalf.
$ npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-bulk-edit-classification --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-bulk-edit-classification .claude/skills/spec-kitty-bulk-edit-classification && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "spec-kitty-bulk-edit-classification" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-bulk-edit-classification into .claude/skills/spec-kitty-bulk-edit-classification/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-bulk-edit-classification", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-bulk-edit-classificationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-bulk-edit-classification --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-bulk-edit-classification .agents/skills/spec-kitty-bulk-edit-classification && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spec-kitty-bulk-edit-classification" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-bulk-edit-classification into .agents/skills/spec-kitty-bulk-edit-classification/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-bulk-edit-classification", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-bulk-edit-classification --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-bulk-edit-classification .cursor/skills/spec-kitty-bulk-edit-classification && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "spec-kitty-bulk-edit-classification" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-bulk-edit-classification into .cursor/skills/spec-kitty-bulk-edit-classification/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-bulk-edit-classification", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/spec-kitty/spec-kitty.git --path src/charter/offering/skills/spec-kitty-bulk-edit-classification--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-bulk-edit-classification --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-bulk-edit-classification .gemini/skills/spec-kitty-bulk-edit-classification && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "spec-kitty-bulk-edit-classification" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-bulk-edit-classification into .gemini/skills/spec-kitty-bulk-edit-classification/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-bulk-edit-classification", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install spec-kitty/spec-kitty spec-kitty-bulk-edit-classificationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-bulk-edit-classification .github/skills/spec-kitty-bulk-edit-classification && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "spec-kitty-bulk-edit-classification" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-bulk-edit-classification into .github/skills/spec-kitty-bulk-edit-classification/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-bulk-edit-classification", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-bulk-edit-classification --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-bulk-edit-classification .opencode/skills/spec-kitty-bulk-edit-classification && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "spec-kitty-bulk-edit-classification" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-bulk-edit-classification into .opencode/skills/spec-kitty-bulk-edit-classification/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-bulk-edit-classification", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
spec-kitty-bulk-edit-classificationRecognize when a mission is a bulk edit and drive the occurrence-classification guardrail on the user's behalf.
Spec Kitty Bulk Edit Classification is an agent skill from spec-kitty/spec-kitty. Recognize when a mission is a bulk edit and drive the occurrence-classification guardrail on the user's behalf. Triggers: user says any variant of "rename X to Y", "change the terminology", "migrate all occurrences", "replace across the codebase", "the X feature is now the Y feature", "sed everywhere", or any request that touches the same identifier/path/key in many files. Also triggers on gate errors mentioning "changemode", "occurrencemap.yaml", "Bulk Edit Gate: BLOCKED", or "Bulk Edit Review: Diff Compliance"…
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering, covering Refactoring. The repository describes itself as: Spec-Driven Development with organizational governance. Specs tell AI agents what to build; Charter governs how they build it. Git-native missions, enforceable workflows, and… The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4cabb90. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythongitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Spec Kitty Bulk Edit Classification loads about 3.8k tokens when it runs. Until then it costs about 187 tokens; SKILL.md has 1,783 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from spec-kitty/spec-kitty at commit 4cabb90, republished under its MIT licence (© spec-kitty). 1,783 words, ~3,788 tokens.
.claude/skills/spec-kitty-bulk-edit-classification/SKILL.md (or your agent's skills folder).Drive the occurrence-classification guardrail (shipped in #393, DIRECTIVE_035) so users never have to know it exists. A bulk edit is any change that touches the same string in many places — a rename, a terminology migration, a package-path move, a feature-label swap. Those changes look mechanical but aren't: the same token carries different meaning depending on where it appears (code symbol, import path, filesystem literal, serialized key, CLI command, user-facing string, test fixture, log/telemetry label). Treating them uniformly is how silent breakage happens.
The user will not say "bulk edit". They will say "rename Coffee to Tea" or
"the Blue feature is now the Red feature." Your job is to recognize that
shape, turn on change_mode: bulk_edit, and drive the classification workflow
before any code changes.
Apply this skill during specify or plan when the user's description matches any of these patterns:
| Pattern | Example phrasing |
|---|---|
| Explicit rename | "Rename Customer to Account across the codebase" |
| Terminology migration | "We're calling it 'channels' now, not 'streams'" |
| Feature relabel | "The Blue feature is now the Red feature" |
| Path/module move | "Move src/legacy/auth to src/auth" |
| API surface rename | "Rename the /users endpoint to /accounts" |
| Config key rename | "Change max_connections to connection_limit everywhere" |
| Brand / product rename | "Replace ACME with GlobalCorp in all docs and UI" |
Also apply when the implement or review command prints a message starting with "Bulk Edit Gate: BLOCKED" or "Bulk Edit Review: Diff Compliance" — these are the runtime gates' failure output; this skill tells you how to respond.
Do NOT apply when the user is:
At the start of specify or plan, after you understand the user's intent,
ask yourself this one question:
Does fulfilling this request require changing the same existing string (identifier, path, key, label) in more than one file?
If yes: this is a bulk edit. Set change_mode: bulk_edit and run the
classification workflow below.
If no: proceed normally. The guardrail stays dormant.
If uncertain: treat as bulk edit. The cost of a false positive is drafting an occurrence map the user can approve in one pass. The cost of a false negative is the silent-breakage class of bugs #393 was created to prevent.
Detect intent. Read the user's feature description. If it matches the patterns above, you have a bulk edit.
Set change_mode in meta.json. Use the CLI helper — do not hand-edit
JSON:
from specify_cli.mission_metadata import set_change_mode
set_change_mode(feature_dir, "bulk_edit")Or via shell after mission create:
python -c "from pathlib import Path; from specify_cli.mission_metadata import set_change_mode; \
set_change_mode(Path('<feature_dir>'), 'bulk_edit')"Name the target in the spec. In spec.md, state explicitly what's
being renamed and to what:
"This mission renames
Customer(old term) toAccount(new term) across the codebase, with per-category rules captured inoccurrence_map.yaml."
Do NOT rely on the reviewer inferring the rename from prose. Make it an explicit claim that the occurrence map must satisfy.
Tell the user, briefly, that you're turning on the classification workflow. Use plain language — they don't need to know the field name:
"This is a cross-cutting rename, so I'm going to produce an
occurrence_map.yamlduring planning that decides which kinds of occurrences get renamed vs. left alone (API response keys, CLI commands, and metric labels are typically left alone to avoid breaking consumers). You'll review and approve that map before any code changes."
Produce kitty-specs/<mission>/occurrence_map.yaml with all 8 standard
categories present. Leaving a category out is an error the gate rejects —
every standard risk surface must have an explicit action assignment.
The starter template lives in src/charter/offering/templates/occurrence-map-template.yaml
and the machine-enforced schema lives in src/charter/offering/schemas/occurrence-map.schema.yaml.
Do not copy the shape from prose — load the actual file so you never drift from
the contract that the runtime gate enforces:
from specify_cli.bulk_edit.occurrence_map import (
load_template_text, # starter YAML text to seed occurrence_map.yaml
load_schema, # JSON Schema dict (Draft 2020-12)
validate_against_schema, # raw dict -> ValidationResult
)
# Seed the file:
(feature_dir / "occurrence_map.yaml").write_text(load_template_text())The template is a complete, syntactically valid occurrence map with sane
category defaults and placeholders only for target.term/target.replacement.
Adjust per-category actions to fit the mission, then validate:
import yaml
from specify_cli.bulk_edit.occurrence_map import validate_against_schema
raw = yaml.safe_load((feature_dir / "occurrence_map.yaml").read_text())
result = validate_against_schema(raw)
assert result.valid, result.errors| Action | When to use |
|---|---|
rename | Safe to mechanically replace old → new |
manual_review | Each occurrence needs case-by-case judgment |
do_not_change | Must not be modified; renaming breaks external consumers |
rename_if_user_visible | Rename where the string is shown to a user; preserve otherwise |
This is a starting point to propose to the user. Tune per-project.
| Category | Typical default | Why |
|---|---|---|
code_symbols | rename | Internal implementation — safe to change |
import_paths | rename | Must track symbol renames |
filesystem_paths | manual_review | On-disk locations may be referenced externally |
serialized_keys | do_not_change | API/schema/config keys are contracts |
cli_commands | do_not_change | Users have scripts; need deprecation cycle |
user_facing_strings | rename_if_user_visible | Rename in UI/docs, preserve internal labels |
tests_fixtures | rename | Tests should reflect new terminology |
logs_telemetry | do_not_change | Dashboards and alerts depend on exact label strings |
moves: block)The eight categories classify a single-term rename. They cannot express a
structural relocation — moving one or more source paths to a single
destination (src/legacy/auth/* → src/auth/). For those, add an optional
top-level moves: block alongside the categories:
moves:
- from:
- src/legacy/auth/login.py
- src/legacy/auth/session.py
to: src/auth
reason: "Consolidate auth modules under the canonical package"
- from:
- docs/old-guide.md
to: docs/guides/getting-started.md
reason: "Relocate and rename the onboarding guide"Rules for moves::
from list (one or more source paths) and a
single to destination. reason is optional but recommended.*/**), or a
directory prefix (to: src/auth covers src/auth/login.py).do_not_change path heuristic — moving it is the whole point.moves: validates and gates exactly as before — there is nothing new to
fill in unless your mission actually relocates paths.Use moves: when single-term renames cannot capture the change — for example
when a paused restructure could only be described as path-to-path mappings.
The categories still govern in-file string occurrences; moves: governs the
relocation of whole paths.
The user knows the domain; you know the mechanics. For each category where the default is not obviously right, ask one concrete question. Keep the conversation short — for a typical rename, you need 2–4 questions.
Good question style:
"The rename will touch
Customerinside API response bodies — e.g.,{\"customer_id\": ...}. Changing those keys would break any client that has already integrated. I'd recommend keeping the JSON keys ascustomer_id(do_not_change) and only renaming the Python class. Sound right, or should we also do a versioned API migration?"
Bad question style:
"What action should I set for serialized_keys?" — (jargon the user doesn't have)
If the user runs spec-kitty agent action implement WP## and sees a
"Bulk Edit Gate: BLOCKED" panel, this means either:
change_mode or skipped
planning), orRead the error panel. It names the specific problem. Fix the map, save, rerun
the command. Do not use --force or any bypass.
If you're reviewing a WP and the command rejects with "Bulk Edit Review:
Diff Compliance Violations", read the table. Each row shows one changed
file, the category our path heuristic inferred, the action the map specified,
and the verdict. BLOCK rows are the ones you need to address.
Three remediations, in order of preference:
Revert the offending change. If the file genuinely shouldn't have been touched (API schema, metric labels, historical migration), the implementation is wrong. Revert, rebuild, resubmit.
Narrow or add an exception in the occurrence map. When the category
rule is too coarse (e.g., migrations/*.py: do_not_change blocks the new
migration that implements the rename), refine the exception and re-commit
the map.
Change the category rule. Only when the original category-level
decision was genuinely wrong. Requires reviewer + user agreement;
document the reason in exceptions[].reason.
Never:
git commit --no-verify-style bypasses (the gate lives at review claim,
not at commit).At implement time, if a mission is not marked bulk_edit but the spec
content matches rename/migration keywords, the system prints a
Bulk Edit Inference Warning. This is a nudge, not a block. If you see this
warning, treat it as a signal that you (the agent) missed the detection
during specify/plan and should have set change_mode earlier. Two options:
Upgrade the mission. Set change_mode: bulk_edit, draft the occurrence
map, and ask the user to review before implementation resumes. This is
usually the right call.
Explicitly dismiss only when you have read the spec and are certain
this is NOT a bulk edit (e.g., the inference fired on a spec that happens
to mention "rename" incidentally — "users can rename their own profile"
describes a product feature, not a codebase rename). Pass
--acknowledge-not-bulk-edit to proceed.
Dismissing carelessly defeats the guardrail. When in doubt, upgrade.
| Question | Answer |
|---|---|
| Who decides to turn on bulk_edit? | The agent, during specify/plan. Users don't know this flag exists. |
| Where is it set? | meta.json via set_change_mode(feature_dir, "bulk_edit"). |
| What artifact is required? | kitty-specs/<mission>/occurrence_map.yaml |
| How many categories must the map classify? | All 8 standard categories. |
| What blocks implement? | Missing, malformed, or inadmissible map. |
| What blocks review? | Any changed file classified into a do_not_change category, or any file matching no category and no exception. |
| How do I respond to a diff-check block? | Revert, refine exception, or (last resort) change category rule. |
| What if I'm not sure this is a bulk edit? | Treat as bulk edit. Cost of false positive is small. |
| File | Role |
|---|---|
kitty-specs/<mission>/meta.json | Set change_mode: bulk_edit |
kitty-specs/<mission>/occurrence_map.yaml | The classification artifact (required) |
kitty-specs/<mission>/spec.md | Name the rename target explicitly |
kitty-specs/<mission>/plan.md | Note the classification workflow was run |
The schema for occurrence_map.yaml — the required top-level target: block,
the eight categories, and the four-value action vocabulary
(do_not_change, manual_review, rename, rename_if_user_visible) — is
documented in docs/api/bulk-edit-gate.md.
Consult that file when:
action value means.Bulk Edit Gate: BLOCKED and the failure mode lists in
this skill don't match the message verbatim.occurrence_map.yaml and need the canonical
category-to-action cookbook.spec-kitty-runtime-next — the loop that runs implement/review; this skill
produces the prerequisites it checks.spec-kitty-runtime-review — the review workflow that invokes the diff
compliance check this skill's artifact governs.spec-kitty-glossary-context — closely related for terminology normalization;
the glossary tells you what the canonical terms are, this skill governs how
you migrate to them.© spec-kitty, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in src/charter/offering/skills/spec-kitty-bulk-edit-classification of spec-kitty/spec-kitty.
Open the folder on GitHubat commit 4cabb90
Spec Kitty Bulk Edit Classification next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Spec Kitty Bulk Edit Classification this skillspec-kitty/spec-kitty | 1.7k | — | ~3.8k | Automated safety check: Pass | MIT | |
| HoneyGreen-PT/honey-for-devs | 311 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Manor Coding Guardrailsmanor-os/manor-ai | 162 | — | ~816 | Automated safety check: Pass | MIT | |
| Lego Rl ConfigLegoX/Lego-RL | 108 | — | ~2.1k | Automated safety check: Notes | Apache-2.0 | |
| Claude Code Clawdbotwin4r/claude-code-clawdbot-skill | 123 | — | ~2.5k | Automated safety check: Warn | None | |
| CodexMicrock/ordinary-claude-skills | 403 | 2 repos | ~2.8k | Automated safety check: Pass | Custom licence |
Green-PT/honey-for-devs
Write less code and say less about it. An agent skill from Green-PT/honey-for-devs.
manor-os/manor-ai
A skill your agent uses when writing, reviewing, or refactoring Manor code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.
LegoX/Lego-RL
Compose, edit, refactor, and validate Lego-RL train/eval/infer .env configs and reusable scripts/templates modules.
win4r/claude-code-clawdbot-skill
Run Claude Code (Anthropic) from this host via the claude CLI (Agent SDK) in headless mode (-p) for codebase analysis, refactors, test fixing, and structured output.
Microck/ordinary-claude-skills
Execute Codex CLI for code analysis, refactoring, and automated code changes.
uw-syfi/vibesys
Guide for writing and modifying NKI kernels. An agent skill from uw-syfi/vibesys.
spec-kitty/spec-kitty
Install, verify, and recover the modern Spec Kitty 2.0.11+ operating surface.
spec-kitty/spec-kitty
Explain Spec Kitty work with compact, checkable visuals. An agent skill from spec-kitty/spec-kitty.
spec-kitty/spec-kitty
Understand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit behavior, merge execution, and the safe-commit…
spec-kitty/spec-kitty
Curate and apply canonical terminology across Spec Kitty missions.
spec-kitty/spec-kitty
Understand how Spec Kitty missions work: the 4 built-in mission types, how they define workflows via step contracts and action indices, how missions and work packages relate, how templates are…
spec-kitty/spec-kitty
Teach agents and external systems how to use spec-kitty orchestrator-api to drive workflows from outside the host CLI.
Categories
Recognize when a mission is a bulk edit and drive the occurrence-classification guardrail on the user's behalf. Spec Kitty Bulk Edit Classification is an agent skill from spec-kitty/spec-kitty. Recognize when a mission is a bulk edit and drive the occurrence-classification guardrail on the user's behalf.
Spec Kitty Bulk Edit Classification fits situations like: gate errors mentioning changemode; occurrencemap.yaml; bulk Edit Gate: BLOCKED; bulk Edit Review: Diff Compliance.
Run `npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a claude-code`. Or copy the skill folder (src/charter/offering/skills/spec-kitty-bulk-edit-classification in spec-kitty/spec-kitty) into .claude/skills/spec-kitty-bulk-edit-classification in your project. Claude Code loads it when a task matches its description.
Run `npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a codex`. Or copy the skill folder (src/charter/offering/skills/spec-kitty-bulk-edit-classification in spec-kitty/spec-kitty) into .agents/skills/spec-kitty-bulk-edit-classification in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add spec-kitty/spec-kitty --skill spec-kitty-bulk-edit-classification -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spec-kitty-bulk-edit-classification, .gemini/skills/spec-kitty-bulk-edit-classification, .github/skills/spec-kitty-bulk-edit-classification and .opencode/skills/spec-kitty-bulk-edit-classification in your project.
Going by SKILL.md and its folder, Spec Kitty Bulk Edit Classification needs the command-line tools its instructions call (python and git). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Spec Kitty Bulk Edit Classification is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Spec Kitty Bulk Edit Classification: Honey (Green-PT/honey-for-devs, 311 stars), Manor Coding Guardrails (manor-os/manor-ai, 162 stars), Lego Rl Config (LegoX/Lego-RL, 108 stars) and Claude Code Clawdbot (win4r/claude-code-clawdbot-skill, 123 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
spec-kitty (a GitHub organization) maintains it in spec-kitty/spec-kitty, which has 1,677 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 8, 2026.
Source: spec-kitty/spec-kitty on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.