diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 00000000..1c683784 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,17 @@ +{ + "name": "electrified-cortex", + "owner": { + "name": "Electrified Cortex", + "url": "https://github.com/electrified-cortex" + }, + "plugins": [ + { + "name": "electrified-cortex", + "source": "./", + "description": "Human-curated skills for workspace automation, QA, and token efficiency — skills, agents, and companion specs bundled as one plugin.", + "version": "0.1.0", + "category": "productivity", + "tags": ["skills", "agents", "audit", "compression", "gh-cli"] + } + ] +} diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 00000000..ba89dcea --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "electrified-cortex", + "version": "0.1.0", + "description": "Human-curated skills for workspace automation, QA, and token efficiency. Bundles 15 skills (authoring, auditing, compression, dispatch, gh-cli, indexing) plus dispatch agents.", + "author": { + "name": "Electrified Cortex", + "url": "https://github.com/electrified-cortex/skills" + }, + "homepage": "https://github.com/electrified-cortex/skills", + "license": "MIT", + "keywords": ["skills", "agent-skills", "audit", "compression", "dispatch", "gh-cli", "markdown-hygiene", "spec-writing"] +} diff --git a/README.md b/README.md index 2d2df11d..c594c54a 100644 --- a/README.md +++ b/README.md @@ -10,29 +10,52 @@ the full story. | Skill | Description | | --- | --- | -| [code-reviewer](code-reviewer/) | Two-tier code review — fast-cheap smoke pass, standard substantive sign-off; reviews only, never modifies | -| [compression](compression/) | Token-saving compression for `.md` files — three tiers (Lite, Full, Ultra) for different audiences | -| [dispatch](dispatch/) | Decision tree for whether, how, and at what model tier to dispatch sub-agents | -| [gh-cli](gh-cli/) | GitHub CLI operations — routes to domain-specific sub-skills via agent dispatch | -| [markdown-hygiene](markdown-hygiene/) | Fix all markdownlint violations in a `.md` file — zero-error gate before stamping or committing | -| [skill-auditing](skill-auditing/) | Audit a skill for quality, classification, cost, and compliance with the skill-writing spec | -| [skill-index](skill-index/) | Cascading per-directory index system for agent skill discovery without filesystem walks | -| [skill-writing](skill-writing/) | How to write skills — inline vs dispatch decision, folder conventions, quality criteria, audit gate | -| [spec-auditing](spec-auditing/) | Audit spec/companion pairs for drift and consistency | -| [spec-writing](spec-writing/) | Write behavioral specs (`.spec.md` files) for any file, feature, or system — plus specialized sub-skills for compiling specs into agent and skill files | -| [tool-auditing](tool-auditing/) | Audit tool scripts for companion spec, conventions, and error handling — lightweight, fast-cheap | -| [tool-writing](tool-writing/) | Write tool scripts with companion specs — Bash default, PowerShell supported, spec-first discipline | +| [code-reviewer](skills/code-review/) | Two-tier code review — fast-cheap smoke pass, standard substantive sign-off; reviews only, never modifies | +| [compression](skills/compression/) | Token-saving compression for `.md` files — three tiers (Lite, Full, Ultra) for different audiences | +| [dispatch](skills/dispatch/) | Decision tree for whether, how, and at what model tier to dispatch sub-agents | +| [gh-cli](skills/gh-cli/) | GitHub CLI operations — routes to domain-specific sub-skills via agent dispatch | +| [markdown-hygiene](skills/markdown-hygiene/) | Fix all markdownlint violations in a `.md` file — zero-error gate before stamping or committing | +| [skill-auditing](skills/skill-auditing/) | Audit a skill for quality, classification, cost, and compliance with the skill-writing spec | +| [skill-index](skills/skill-index/) | Cascading per-directory index system for agent skill discovery without filesystem walks | +| [skill-writing](skills/skill-writing/) | How to write skills — inline vs dispatch decision, folder conventions, quality criteria, audit gate | +| [spec-auditing](skills/spec-auditing/) | Audit spec/companion pairs for drift and consistency | +| [spec-writing](skills/spec-writing/) | Write behavioral specs (`.spec.md` files) for any file, feature, or system — plus specialized sub-skills for compiling specs into agent and skill files | +| [tool-auditing](skills/tool-auditing/) | Audit tool scripts for companion spec, conventions, and error handling — lightweight, fast-cheap | +| [tool-writing](skills/tool-writing/) | Write tool scripts with companion specs — Bash default, PowerShell supported, spec-first discipline | | **Agent** | **Description** | | --- | --- | -| [claude-dispatch](dispatch/agents/claude-dispatch.agent.md) | Minimal pass-through agent for Claude Code CLI — reads a target file, follows its instructions, returns the result | -| [vscode-dispatch](dispatch/agents/vscode-dispatch.agent.md) | Minimal pass-through agent for Claude Code in VS Code — same behavior, VS Code tool names | +| [claude-dispatch](agents/claude-dispatch.md) | Minimal pass-through agent for Claude Code CLI — reads a target file, follows its instructions, returns the result | +| [vscode-dispatch](agents/vscode-dispatch.md) | Minimal pass-through agent for Claude Code in VS Code — same behavior, VS Code tool names | ## Quick Start -Unzip or clone as `electrified-cortex` in your agent's skills folder. Each -skill is self-contained — point your agent at the `SKILL.md` for the tier you -need and it works immediately. +**Without plugin install (direct reference):** Clone or unzip as `electrified-cortex` inside your agent's skills folder, then point your agent at the `SKILL.md` for whichever skill you need — each is self-contained. + +**With plugin install:** After running the install commands below, Claude Code auto-registers all skills under the `electrified-cortex:` namespace. Reference them as `electrified-cortex:` — no filesystem path needed. + +## Install as a Claude Code plugin + +This repo is also a Claude Code plugin marketplace. Internal teammates with +read access to `github.com/electrified-cortex/skills` can install the whole +bundle in two commands: + +```bash +# Add the marketplace source (org/repo format: owner/repo) +claude plugin marketplace add electrified-cortex/skills +# Install the plugin (name@source-alias format) +claude plugin install electrified-cortex@electrified-cortex +``` + +Pull updates later with: + +```bash +claude plugin marketplace update electrified-cortex +``` + +After install, Claude Code auto-registers all 15 skills under the +`electrified-cortex:` namespace and both dispatch agents as selectable +subagent types. Requires Claude Code with plugin marketplace support. ## Philosophy @@ -65,7 +88,7 @@ The compression skill ships a `.tests/` folder with a shared test plan, tier-spe agent outputs, and input fixtures — every compression is dogfooded against real skill files before release. -[Read more →](compression/README.md) +[Read more →](skills/compression/README.md) ### Spec Writing @@ -76,67 +99,67 @@ for agents and skills encode the byte-code principle: specs are source code, runtime files are the compiled program. These sub-skills handle the compilation step from verbose spec to lean operational file. -[Read more →](spec-writing/) +[Read more →](skills/spec-writing/) ### Skill Writing Skills are the compiled output of specs — so a skill for writing skills was essential. The skill-writing skill codifies the full authoring pipeline: write spec first, derive an uncompressed baseline, compress to a lean runtime file, then audit. It encodes the inline-vs-dispatch decision test, folder conventions, and the requirement that `SKILL.md` is never modified directly. Refinement through the spec-auditing and skill-auditing loops burned off ambiguities until fast-cheap agents could follow the procedure without interpretation. -[Read more](skill-writing/README.md) +[Read more](skills/skill-writing/README.md) ### Spec Auditing Drift between a spec and its compiled companion is silent debt. Spec auditing was born to catch it — running in a zero-context isolated agent so the auditor forms its own judgment without inheriting any author bias. It supports read-only audits, pair-audits that compare spec against companion, and an optional fix mode that corrects the companion up to three passes. It became the standard gate before any stamp is written. -[Read more](spec-auditing/README.md) +[Read more](skills/spec-auditing/README.md) ### Skill Auditing Once skill-writing established what a correct skill looks like, skill auditing was the enforcement arm. It checks the spec gate, runs a smoke pass over the skill file itself, then verifies compliance against the skill-writing spec in a single dispatched agent. -[Read more](skill-auditing/README.md) +[Read more](skills/skill-auditing/README.md) ### Markdown Hygiene Every `.md` artifact in the pipeline passes through a markdownlint gate before it gets stamped or committed. Markdown hygiene grew out of repeated friction where auditors and operators encountered lint violations in otherwise correct files. The skill dispatches a zero-context agent that fixes violations in place (or to a side file when the source must stay clean), returning CLEAN, FIXED, or PARTIAL — so the caller always knows the gate status. -[Read more](markdown-hygiene/README.md) +[Read more](skills/markdown-hygiene/README.md) ### GH CLI GitHub CLI operations sprawl across enough domains — PRs, issues, releases, repos, Actions, Projects, API, setup — that a single skill file would be unworkably large. The gh-cli skill is a pure router: it reads the request, identifies the domain, and dispatches to the appropriate sub-skill. No `gh` commands run in the router itself. This design keeps each domain skill small and independently auditable while giving callers a single entry point when the domain is ambiguous. -[Read more](gh-cli/README.md) +[Read more](skills/gh-cli/README.md) ### Code Reviewer Code review has two distinct jobs: fast surface-level triage and authoritative deep analysis. This skill encodes that separation formally — exactly one fast-cheap smoke pass, then one or more standard substantive passes, with the smoke pass never treated as authoritative. Review agents never edit; the calling agent decides which findings to act on between passes. The pattern emerged from experience with shallow reviews being over-trusted, and codifies the escalation path explicitly. -[Read more](code-reviewer/) +[Read more](skills/code-review/) ### Dispatch Dispatching sub-agents incorrectly costs more than not dispatching at all. This skill captures the decision tree, footgun catalogue, and empirical findings (including context-inheritance tests run in April 2026) that answer when to dispatch, when to stay inline, how to pick model tier, and how to write a well-formed prompt that a cold stranger agent can execute. It is the foundation on which skill-writing's dispatch guidance and the broader agent fleet governance rest. -[Read more](dispatch/) +[Read more](skills/dispatch/) ### Tool Writing Scripts are a distinct artifact class from skills — they run as processes, not agent instructions. Tool writing encodes the spec-first discipline for shell scripts: write the companion spec before the script, no hardcoded paths, no interactive input, consistent output format, and placement rules for skill-embedded vs standalone tools. Bash is the default for agents; PowerShell is explicitly first-class for Windows-native work. The skill mirrors the skill-writing workflow at the script layer. -[Read more](tool-writing/) +[Read more](skills/tool-writing/) ### Tool Auditing The complement to tool writing. Tool auditing runs a seven-check checklist — companion spec presence, parameter block, no hardcoded paths, error handling, self-documentation density, no interactive input, and consistent output format — against any tool script. It is explicitly lightweight enough for a fast-cheap model, keeping audit costs low for routine hygiene checks. Results are read-only; remediation stays with the caller. -[Read more](tool-auditing/) +[Read more](skills/tool-auditing/) ### Skill Index As the skill library grew, filesystem walks became expensive and unreliable. The skill-index toolkit introduces a cascading per-directory index system: a builder produces a raw `skill.index` and an LLM-authored `skill.index.md` overlay; an auditor validates the cascade and writes a SHA-256 stamp on PASS; a crawler consumes the cascade to locate a skill by name without touching the filesystem. The stamp is a sign-off artifact — its absence after a build signals "unaudited," not "needs rebuild." -[Read more](skill-index/) +[Read more](skills/skill-index/) ## License diff --git a/dispatch/agents/claude-dispatch.agent.md b/agents/claude-dispatch.md similarity index 100% rename from dispatch/agents/claude-dispatch.agent.md rename to agents/claude-dispatch.md diff --git a/dispatch/agents/vscode-dispatch.agent.md b/agents/vscode-dispatch.md similarity index 100% rename from dispatch/agents/vscode-dispatch.agent.md rename to agents/vscode-dispatch.md diff --git a/dispatch/agents/README.md b/dispatch/agents/README.md deleted file mode 100644 index 0992408f..00000000 --- a/dispatch/agents/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Dispatch Agent Files - -Canonical Dispatch agent definitions, one per runtime environment. -Copy the appropriate file into your project's agent directory and invoke it -via your runtime's subagent dispatch mechanism with a prompt pointing to the -target instruction file. - -| File | Environment | Role | -| --- | --- | --- | -| [claude-dispatch.agent.md](claude-dispatch.agent.md) | Claude Code CLI | Minimal executor — reads a file and follows it | -| [vscode-dispatch.agent.md](vscode-dispatch.agent.md) | VS Code (GitHub Copilot) | Minimal executor — reads a file and follows it | -| [vscode-orchestrator.agent.md](vscode-orchestrator.agent.md) | VS Code (GitHub Copilot) | Dispatch-first orchestrator — delegates to Dispatch | - -Companion: `vscode-orchestration.txt` — ultra-compressed how-to for the orchestrator. - -## Executor (Dispatch) - -Intentionally minimal — carries no context of its own. All behavior comes from -the file it reads. General-purpose runner for any skill that defines its own procedure. - -Install path: `.github/agents/dispatch.agent.md` - -## Orchestrator - -A first-class VS Code agent mode — not a sub-agent. Select it from the VS Code -chat panel agent picker just like any other mode. It handles all dispatch -for you so your VS Code session requires no other wiring. - -VS Code does not support nested sub-agents by default. Orchestrator is always -the host. It dispatches to Dispatch one level down — that's the full depth. - -Companion `vscode-orchestration.txt` (same folder) — ultra-compressed how-to. - -Install path: `.github/agents/orchestrator.agent.md` -Requires: Dispatch agent also installed at `.github/agents/dispatch.agent.md` - -## Source - -These files are maintained in `dispatch/agents/` and are the canonical source. -Copies installed in host agent directories should be periodically verified against this source. diff --git a/dispatch/agents/vscode-orchestration.txt b/dispatch/agents/vscode-orchestration.txt deleted file mode 100644 index f5054187..00000000 --- a/dispatch/agents/vscode-orchestration.txt +++ /dev/null @@ -1,10 +0,0 @@ -runSubagent(agentName: "Dispatch", prompt: "...", description: "...") -- prompt: full task instructions (or "read and follow it") + all needed context (sub-agent sees nothing from this conversation) -- description: 3-5 word label shown in UI (e.g. "Scan task queue") -- model: omit = Sonnet (default); "Claude Haiku 4.5 (Copilot)" for simple/cheap tasks; "Claude Opus 4.6 (Copilot)" for critical/deep work -Prompt must include: goal (1 sentence) + conversation context + output shape + scope. -Prompt check: would a stranger reading cold know exactly what to do? If no, not ready. -Skip passing: project docs, CLAUDE.md, memory — inherited automatically. -Defer (don't dispatch): speculative, blocked, or low-priority work. -Dispatch: everything else not needing live chat context. runSubagent is blocking — no background dispatch. -Inline: <3 turns, or requires live context. diff --git a/dispatch/agents/vscode-orchestrator.agent.md b/dispatch/agents/vscode-orchestrator.agent.md deleted file mode 100644 index be9b5a47..00000000 --- a/dispatch/agents/vscode-orchestrator.agent.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Orchestrator -description: Dispatch-first orchestrator for VS Code. Delegates everything possible. Uses Dispatch sub-agent for execution. -model: claude-sonnet-4-6 -tools: [read, edit, search, execute, web/fetch, websearch, agent] ---- - -Delegate everything possible. Use the `Dispatch` sub-agent for all suitable work. - -Refer to `vscode-orchestration.txt` (same folder as this file) to understand how. diff --git a/docs/claude-code-marketplace-plan.md b/docs/claude-code-marketplace-plan.md new file mode 100644 index 00000000..be373404 --- /dev/null +++ b/docs/claude-code-marketplace-plan.md @@ -0,0 +1,683 @@ +# Claude Code Marketplace Packaging Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Repackage the `electrified-cortex/skills` repo as an internal Claude Code plugin marketplace without breaking the repo's existing platform-agnostic layout beyond the unavoidable path shift. + +**Architecture:** Single-bundle plugin served from the existing GitHub repo. The 15 skill directories move into a top-level `skills/` subfolder to match Claude Code's plugin loader expectation. Two dispatch agent files are promoted to a top-level `agents/` folder and renamed from `*.agent.md` to `*.md`. A `.claude-plugin/` folder containing `marketplace.json` and `plugin.json` is added at the repo root. + +**Tech Stack:** Claude Code plugin format (JSON manifests), git, PowerShell / Bash for scripted verification, existing `skill-index-building` dispatch skill for index rebuild, existing `hash-stamp` skill for stamp audit. + +**Reference spec:** `docs/claude-code-marketplace.md` + +**Verification toolchain note:** This repo has no test runner, no CI, no package scripts. Verification is performed by (a) running JSON validation, (b) invoking `claude plugin marketplace add` against a local clone, (c) invoking the repo's own dispatch skills (`skill-index-building`, `hash-stamp`), and (d) inspecting file listings. Each task's "run" command is either a shell command or a well-formed dispatch prompt. + +--- + +## File Structure + +Files created: +- `.claude-plugin/marketplace.json` — marketplace manifest consumed by `claude plugin marketplace add`. +- `.claude-plugin/plugin.json` — plugin manifest consumed by Claude Code's plugin loader. +- `agents/claude-dispatch.md` — promoted from `skills/dispatch/agents/claude-dispatch.agent.md`. +- `agents/vscode-dispatch.md` — promoted from `skills/dispatch/agents/vscode-dispatch.agent.md`. + +Files moved (via `git mv`, 15 skill directories): +- `audit-reporting/` → `skills/audit-reporting/` +- `code-review/` → `skills/code-review/` +- `compression/` → `skills/compression/` +- `dispatch/` → `skills/dispatch/` +- `gh-cli/` → `skills/gh-cli/` +- `hash-stamp/` → `skills/hash-stamp/` +- `markdown-hygiene/` → `skills/markdown-hygiene/` +- `session-logging/` → `skills/session-logging/` +- `skill-auditing/` → `skills/skill-auditing/` +- `skill-index/` → `skills/skill-index/` +- `skill-writing/` → `skills/skill-writing/` +- `spec-auditing/` → `skills/spec-auditing/` +- `spec-writing/` → `skills/spec-writing/` +- `tool-auditing/` → `skills/tool-auditing/` +- `tool-writing/` → `skills/tool-writing/` + +Files modified: +- `README.md` — skill/agent table links updated, new "Install as a Claude Code plugin" section. +- `skills/dispatch/SKILL.md` — update agent-file reference on line 92. +- `skills/dispatch/uncompressed.md` — update agent-file references. +- `skills/dispatch/spec.md` — update agent-file references. +- `skills/dispatch/installation.md` — update agent-file references. +- `skills/dispatch/agents/README.md` — update self-references after move/rename (this file remains in place to explain the legacy location). +- `skill.index`, `skill.index.md`, `skill.index.sha256` — rebuilt against new tree (builder + auditor handle this). +- All `.sha256` companion files for edited markdown — restamped via `hash-stamp` skill. + +Files deleted: +- `skills/dispatch/agents/claude-dispatch.agent.md` — moved to `agents/claude-dispatch.md`. +- `skills/dispatch/agents/vscode-dispatch.agent.md` — moved to `agents/vscode-dispatch.md`. + +--- + +## Task 1: Restructure — move 15 skill directories into `skills/` + +**Files:** +- Move: 15 top-level skill directories listed above into `skills/`. + +- [ ] **Step 1: Create the `skills/` directory (empty, so git tracks the move cleanly)** + +```bash +mkdir -p skills +``` + +- [ ] **Step 2: Move every skill directory with `git mv`** + +```bash +git mv audit-reporting skills/audit-reporting +git mv code-review skills/code-review +git mv compression skills/compression +git mv dispatch skills/dispatch +git mv gh-cli skills/gh-cli +git mv hash-stamp skills/hash-stamp +git mv markdown-hygiene skills/markdown-hygiene +git mv session-logging skills/session-logging +git mv skill-auditing skills/skill-auditing +git mv skill-index skills/skill-index +git mv skill-writing skills/skill-writing +git mv spec-auditing skills/spec-auditing +git mv spec-writing skills/spec-writing +git mv tool-auditing skills/tool-auditing +git mv tool-writing skills/tool-writing +``` + +- [ ] **Step 3: Verify the tree** + +Run: +```bash +ls skills/ +git status +``` + +Expected: `ls skills/` lists all 15 directory names. `git status` shows 15 renamed directories (as R100 entries) and no untracked files from the skill tree. + +- [ ] **Step 4: Commit** + +```bash +git add -A skills/ +git commit -m "refactor: move 15 skill directories into skills/ subtree + +Prepares the repo for Claude Code plugin packaging. Claude Code's +plugin loader expects skills at skills//SKILL.md. File contents +and companion .sha256 stamps are unchanged by the move. + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +--- + +## Task 2: Promote and rename the two dispatch agents + +**Files:** +- Create: `agents/claude-dispatch.md` (from `skills/dispatch/agents/claude-dispatch.agent.md`) +- Create: `agents/vscode-dispatch.md` (from `skills/dispatch/agents/vscode-dispatch.agent.md`) +- Delete: the two files in their old location + +- [ ] **Step 1: Create the `agents/` directory** + +```bash +mkdir -p agents +``` + +- [ ] **Step 2: Move and rename both agent files** + +```bash +git mv skills/dispatch/agents/claude-dispatch.agent.md agents/claude-dispatch.md +git mv skills/dispatch/agents/vscode-dispatch.agent.md agents/vscode-dispatch.md +``` + +- [ ] **Step 3: Verify** + +Run: +```bash +ls agents/ +ls skills/dispatch/agents/ +``` + +Expected: `ls agents/` shows `claude-dispatch.md` and `vscode-dispatch.md`. `ls skills/dispatch/agents/` shows only `README.md` (the explanatory file stays). + +- [ ] **Step 4: Commit** + +```bash +git add -A agents/ skills/dispatch/agents/ +git commit -m "refactor: promote dispatch agents to top-level agents/ + +Claude Code discovers subagent types from /agents/*.md. +The two dispatch agent definitions move from skills/dispatch/agents/ +and drop the .agent suffix to match Claude Code's naming. The legacy +README.md stays in place and will be updated in the next commit. + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +--- + +## Task 3: Update cross-references inside the dispatch skill + +**Files:** +- Modify: `skills/dispatch/SKILL.md` (line 92 reference to `dispatch/agents/`) +- Modify: `skills/dispatch/uncompressed.md` (all agent-file references) +- Modify: `skills/dispatch/spec.md` (all agent-file references) +- Modify: `skills/dispatch/installation.md` (all agent-file references) +- Modify: `skills/dispatch/agents/README.md` (self-reference — explain where the files moved) + +- [ ] **Step 1: Grep for every remaining reference to the old agent paths** + +Run: +```bash +grep -rn "dispatch/agents/\|\.agent\.md" skills/dispatch/ +``` + +Expected: a list of lines inside the five files above referencing `dispatch/agents/claude-dispatch.agent.md`, `dispatch/agents/vscode-dispatch.agent.md`, or bare `dispatch/agents/`. No hits outside `skills/dispatch/`. + +- [ ] **Step 2: Update `skills/dispatch/SKILL.md`** + +Change line 92 (and any other matching line): + +From: +``` +- Agent files: `dispatch/agents/` — ready-to-install Dispatch agent definitions for Claude Code CLI and VS Code. +``` + +To: +``` +- Agent files: `agents/claude-dispatch.md` and `agents/vscode-dispatch.md` at the repo root — ready-to-install Dispatch agent definitions for Claude Code CLI and VS Code. +``` + +- [ ] **Step 3: Update `skills/dispatch/installation.md`** + +Replace every occurrence of `dispatch/agents/claude-dispatch.agent.md` with `agents/claude-dispatch.md`. Same for the VS Code variant. Keep the rest of the prose intact. + +- [ ] **Step 4: Update `skills/dispatch/uncompressed.md` and `skills/dispatch/spec.md`** + +Apply the same replacements (`dispatch/agents/*.agent.md` → `agents/*.md` at repo root) in both files. + +- [ ] **Step 5: Replace `skills/dispatch/agents/README.md` with a pointer** + +Overwrite its contents with: + +```markdown +# Dispatch agent files (moved) + +The dispatch agent definitions moved to `/agents/` at the repo root to +match Claude Code's plugin loader convention (`/agents/*.md`). + +- `agents/claude-dispatch.md` — Claude Code CLI +- `agents/vscode-dispatch.md` — VS Code (GitHub Copilot) + +See `skills/dispatch/installation.md` for install steps. +``` + +- [ ] **Step 6: Re-run the grep to confirm no stale references remain** + +Run: +```bash +grep -rn "dispatch/agents/claude-dispatch\.agent\.md\|dispatch/agents/vscode-dispatch\.agent\.md" skills/ agents/ README.md +``` + +Expected: zero hits. + +- [ ] **Step 7: Commit** + +```bash +git add skills/dispatch/ +git commit -m "refactor: update dispatch skill refs to new agent paths + +SKILL.md, spec.md, uncompressed.md, installation.md, and the legacy +agents/README.md all point at the new /agents/claude-dispatch.md and +/agents/vscode-dispatch.md locations. + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +--- + +## Task 4: Update the root `README.md` + +**Files:** +- Modify: `README.md` + +- [ ] **Step 1: Update the skill table links (lines 13–24)** + +Replace every table row href from `[name](name/)` to `[name](skills/name/)`. Example: + +From: +```markdown +| [code-reviewer](code-reviewer/) | Two-tier code review — fast-cheap smoke pass, standard substantive sign-off; reviews only, never modifies | +``` + +To: +```markdown +| [code-reviewer](skills/code-review/) | Two-tier code review — fast-cheap smoke pass, standard substantive sign-off; reviews only, never modifies | +``` + +Apply the same transformation to every row in the skill table. Keep display labels unchanged except where the display label already mismatches the folder name (e.g., `code-reviewer` shown as the label but the folder is `code-review`) — in those cases, leave the display label alone and only fix the href. + +- [ ] **Step 2: Update the agents table (lines 27–29)** + +From: +```markdown +| [claude-dispatch](dispatch/agents/claude-dispatch.agent.md) | Minimal pass-through agent for Claude Code CLI — reads a target file, follows its instructions, returns the result | +| [vscode-dispatch](dispatch/agents/vscode-dispatch.agent.md) | Minimal pass-through agent for Claude Code in VS Code — same behavior, VS Code tool names | +``` + +To: +```markdown +| [claude-dispatch](agents/claude-dispatch.md) | Minimal pass-through agent for Claude Code CLI — reads a target file, follows its instructions, returns the result | +| [vscode-dispatch](agents/vscode-dispatch.md) | Minimal pass-through agent for Claude Code in VS Code — same behavior, VS Code tool names | +``` + +- [ ] **Step 3: Add a new "Install as a Claude Code plugin" section** + +Insert this section immediately after the "Quick Start" section (after line ~36): + +````markdown +## Install as a Claude Code plugin + +This repo is also a Claude Code plugin marketplace. Internal teammates with +read access to `github.com/electrified-cortex/skills` can install the whole +bundle in two commands: + +```bash +claude plugin marketplace add electrified-cortex/skills +claude plugin install electrified-cortex@electrified-cortex +``` + +Pull updates later with: + +```bash +claude plugin marketplace update electrified-cortex +``` + +After install, Claude Code auto-registers all 15 skills under the +`electrified-cortex:` namespace and both dispatch agents as selectable +subagent types. Requires Claude Code with plugin marketplace support. +```` + +- [ ] **Step 4: Verify the README still renders** + +Run a local preview if one is available, or just eyeball: +```bash +head -50 README.md +``` + +Expected: the section structure is intact, no unmatched backticks or broken table rows. + +- [ ] **Step 5: Commit** + +```bash +git add README.md +git commit -m "docs: update README for skills/ restructure and plugin install + +Table links repointed to the new skills/ and agents/ paths. Adds an +\"Install as a Claude Code plugin\" section with the two-command install +flow for internal teammates. + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +--- + +## Task 5: Create the marketplace and plugin manifests + +**Files:** +- Create: `.claude-plugin/marketplace.json` +- Create: `.claude-plugin/plugin.json` + +- [ ] **Step 1: Create `.claude-plugin/` directory** + +```bash +mkdir -p .claude-plugin +``` + +- [ ] **Step 2: Create `.claude-plugin/marketplace.json`** + +Exact contents: + +```json +{ + "name": "electrified-cortex", + "owner": { + "name": "Electrified Cortex", + "url": "https://github.com/electrified-cortex" + }, + "plugins": [ + { + "name": "electrified-cortex", + "source": "./", + "description": "Human-curated skills for workspace automation, QA, and token efficiency — skills, agents, and companion specs bundled as one plugin.", + "version": "0.1.0", + "category": "productivity", + "tags": ["skills", "agents", "audit", "compression", "gh-cli"] + } + ] +} +``` + +- [ ] **Step 3: Create `.claude-plugin/plugin.json`** + +Exact contents: + +```json +{ + "name": "electrified-cortex", + "version": "0.1.0", + "description": "Human-curated skills for workspace automation, QA, and token efficiency. Bundles 15 skills (authoring, auditing, compression, dispatch, gh-cli, indexing) plus dispatch agents.", + "author": { + "name": "Electrified Cortex", + "url": "https://github.com/electrified-cortex/skills" + }, + "homepage": "https://github.com/electrified-cortex/skills", + "license": "MIT", + "keywords": ["skills", "agent-skills", "audit", "compression", "dispatch", "gh-cli", "markdown-hygiene", "spec-writing"] +} +``` + +- [ ] **Step 4: Validate both JSON files parse** + +Run (PowerShell): +```powershell +Get-Content .claude-plugin/marketplace.json | ConvertFrom-Json | Out-Null; Write-Host "marketplace.json OK" +Get-Content .claude-plugin/plugin.json | ConvertFrom-Json | Out-Null; Write-Host "plugin.json OK" +``` + +Or (Bash with python available): +```bash +python -c "import json; json.load(open('.claude-plugin/marketplace.json')); print('marketplace.json OK')" +python -c "import json; json.load(open('.claude-plugin/plugin.json')); print('plugin.json OK')" +``` + +Expected: two lines, both ending `OK`. Non-zero exit = invalid JSON → fix and re-run. + +- [ ] **Step 5: Commit** + +```bash +git add .claude-plugin/ +git commit -m "feat: add Claude Code plugin marketplace manifests (v0.1.0) + +.claude-plugin/marketplace.json declares the single-bundle +electrified-cortex plugin. .claude-plugin/plugin.json names the +plugin for Claude Code's loader. Skills and agents are auto-discovered +from skills/ and agents/ — no explicit enumeration needed. + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +--- + +## Task 6: Rebuild the skill-index cascade against the new tree + +**Files:** +- Regenerate: all `skill.index` and `skill.index.md` files at every indexed directory. +- Restamp: all `skill.index.sha256` files via the auditor after PASS. + +Context: the root `skill.index` and `skill.index.md` currently enumerate the 15 skills as direct children. After Task 1, they live under `skills/`, so the root index is stale. The `skill-index-building` dispatch skill accepts `root=` and walks downward, so a single invocation at the repo root regenerates the whole cascade. + +- [ ] **Step 1: Invoke `skill-index-building` via Dispatch agent, full rebuild** + +Run: +``` +Dispatch agent (zero context), fast-cheap tier: +"Read and follow `skills/skill-index/skill-index-building/instructions.txt`. +Input: root= --rebuild" +``` + +Replace `` with the real absolute path (e.g., `G:/Git/skills` or `/c/Users/.../skills` in bash form). + +Expected: change manifest listing created/updated nodes at repo root, at `skills/`, and at each skill subdir that has indexable children (e.g., `skills/gh-cli/`, `skills/skill-index/`, `skills/skill-writing/`). No `blocked` entries. No `broken-shortcut` entries that weren't already broken before the move. + +- [ ] **Step 2: Inspect the new root `skill.index`** + +```bash +cat skill.index +cat skill.index.md +``` + +Expected: root `skill.index` contains a single entry `skills/` (trailing slash = sub-node marker). `skills/skill.index` contains 15 entries (one per skill subdir), each with the sub-node marker if the skill has its own `skill.index`. Leaf skills (no nested structure) appear without the trailing slash. + +- [ ] **Step 3: Run the auditor to validate and stamp** + +``` +Dispatch agent (zero context), fast-cheap tier: +"Read and follow `skills/skill-index/skill-index-auditing/instructions.txt`. +Input: root=" +``` + +Expected: PASS verdict. `.sha256` stamps written at every indexed node. No structural violations. + +- [ ] **Step 4: Spot-check one nested node** + +```bash +cat skills/skill-index/skill.index +cat skills/skill-index/skill.index.sha256 +``` + +Expected: both files present. The `.sha256` content is 64 hex chars plus a newline. + +- [ ] **Step 5: Commit** + +```bash +git add skill.index skill.index.md skill.index.sha256 skills/ +git commit -m "chore: rebuild skill-index cascade after restructure + +Full rebuild via skill-index-building --rebuild, then auditor PASS and +stamp across the whole tree. Root index now references skills/ as a +sub-node; the 15 skill entries live in skills/skill.index. + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +--- + +## Task 7: Sweep for stale cross-skill path references + +**Files:** +- Potentially modify: any `SKILL.md`, `spec.md`, or `uncompressed.md` inside `skills/` that references another skill by a root-relative path. + +Context: some skills cross-reference each other (e.g., `skill-writing` mentions `skill-auditing`, `markdown-hygiene` is called from multiple places). If any cross-reference uses a root-relative path like `code-review/` or `markdown-hygiene/SKILL.md`, it breaks after the move. Relative sibling references (`../markdown-hygiene/`) keep working if both skills are still siblings. + +- [ ] **Step 1: Grep for top-level skill-name path references inside markdown files** + +Run: +```bash +grep -rnE '\]\((audit-reporting|code-review|compression|dispatch|gh-cli|hash-stamp|markdown-hygiene|session-logging|skill-auditing|skill-index|skill-writing|spec-auditing|spec-writing|tool-auditing|tool-writing)/' skills/ +``` + +Expected: a list of files and lines that need fixing, OR no output (no matches). Each hit is a link like `[foo](code-review/SKILL.md)` that will break. + +- [ ] **Step 2: For each hit, decide the right replacement** + +Two cases: + +1. **Sibling skills referencing each other from inside `skills/`** — relative path works: `[foo](../code-review/SKILL.md)`. Prefer this form because it's robust against the whole `skills/` tree moving. +2. **Root-relative references that need to survive a cascade rebuild** — prefix with `skills/`: `[foo](skills/code-review/SKILL.md)`. + +Default: use option 1 (sibling relative) for references inside `skills/`. + +- [ ] **Step 3: Apply the fixes** + +For each hit, edit the file to use the correct relative/root form. Keep a running list of files touched. + +- [ ] **Step 4: Re-run the grep to confirm it returns no hits** + +```bash +grep -rnE '\]\((audit-reporting|code-review|compression|dispatch|gh-cli|hash-stamp|markdown-hygiene|session-logging|skill-auditing|skill-index|skill-writing|spec-auditing|spec-writing|tool-auditing|tool-writing)/' skills/ +``` + +Expected: zero output. + +- [ ] **Step 5: Restamp any `.sha256` companions for the edited `.md` files** + +For each `foo.md` edited in Step 3, its companion `foo.md.sha256` is now stale. Invoke the `hash-stamp` stamper. + +Run: +``` +Dispatch agent (zero context), fast-cheap tier: +"Read and follow the stamper instructions at skills/hash-stamp//instructions.txt +(or the appropriate tool entry point per skills/hash-stamp/SKILL.md). +Input: the list of files edited in Task 7 Step 3." +``` + +Or invoke the stamper CLI directly per `skills/hash-stamp/SKILL.md`. Expected: new SHA-256 values written for each edited file. No other stamps touched. + +- [ ] **Step 6: Commit (skip if grep found nothing in Step 1)** + +```bash +git add skills/ +git commit -m "fix: repoint cross-skill references after skills/ move + +Updates root-relative links inside SKILL.md/spec.md files to sibling- +relative form so they survive the restructure. Restamps affected +.sha256 companions. + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +--- + +## Task 8: End-to-end verification + +No code changes in this task — only checks against success criteria from the spec. + +- [ ] **Step 1: Verify `claude plugin marketplace add` accepts the local clone** + +Run (from a scratch shell, pointing at the local worktree, not the remote): +```bash +claude plugin marketplace add +``` + +Expected: the command succeeds. `claude plugin marketplace list` shows `electrified-cortex` as an available marketplace. + +If it fails: the error message identifies which manifest is malformed. Fix, re-run Task 5 Step 4 JSON validation, and retry this step. + +- [ ] **Step 2: Install the plugin and verify skills are discoverable** + +Run: +```bash +claude plugin install electrified-cortex@electrified-cortex +``` + +Then inside Claude Code: +``` +/plugin +``` + +Expected: the `electrified-cortex` plugin is listed as installed. Skills show up under the `electrified-cortex:` namespace — at minimum confirm these five are present: +- `electrified-cortex:code-review` +- `electrified-cortex:markdown-hygiene` +- `electrified-cortex:compression` +- `electrified-cortex:skill-writing` +- `electrified-cortex:dispatch` + +Spot-check a sixth by name to confirm the full 15 loaded (pick any from the skill table in the README). + +- [ ] **Step 3: Verify both dispatch agents registered as subagent types** + +Inside Claude Code, run: +``` +/agents +``` + +(Or whichever command lists subagent types in the current Claude Code version — the check is "are `claude-dispatch` and `vscode-dispatch` present as selectable subagent types under the electrified-cortex plugin".) + +Expected: both agent names listed. Filenames in the plugin cache directory show as `claude-dispatch.md` and `vscode-dispatch.md`. + +- [ ] **Step 4: Smoke-test the `markdown-hygiene` skill end-to-end** + +Create a known-dirty fixture: +```bash +mkdir -p /tmp/mh-smoke +cat > /tmp/mh-smoke/dirty.md <<'EOF' +# Title + +Some text + +- item with extra space +-item with no space +EOF +``` + +Inside Claude Code: +``` +Invoke electrified-cortex:markdown-hygiene on /tmp/mh-smoke/dirty.md +``` + +Expected: the skill runs successfully, either fixes the file in place or reports a side-file per its behavior, and returns `CLEAN`, `FIXED`, or `PARTIAL` as documented. No "file not found" or "skill not loaded" errors. File resolution works inside the plugin's sandbox. + +- [ ] **Step 5: Hash-stamp audit across the moved tree** + +Run: +``` +Dispatch agent (zero context), fast-cheap tier: +"Read and follow `skills/hash-stamp//instructions.txt` +(see skills/hash-stamp/SKILL.md for the auditor entry point). +Input: root=" +``` + +Expected: zero drift reported. Every `.sha256` file matches the hash of its companion. If drift exists, it is scoped to files edited in Tasks 3, 4, and 7 and should have been restamped — investigate and restamp any misses. + +- [ ] **Step 6: Final commit if any stamp misses surfaced** + +```bash +git add -A +git commit -m "chore: restamp stragglers found by final hash-stamp audit + +Co-Authored-By: Claude Opus 4.7 (1M context) " +``` + +Skip this step if Step 5 reported zero drift and nothing needs committing. + +- [ ] **Step 7: Push the branch and open a PR** + +```bash +git push -u origin HEAD +gh pr create --title "feat: package electrified-cortex as a Claude Code marketplace (v0.1.0)" --body "$(cat <<'EOF' +## Summary +- Restructure: 15 skills moved into `skills/`, two dispatch agents promoted to `agents/` +- New `.claude-plugin/marketplace.json` and `.claude-plugin/plugin.json` (v0.1.0) +- README updated with install instructions for internal teammates +- skill-index cascade rebuilt against new tree; hash-stamp audit PASS + +## Design +See `docs/claude-code-marketplace.md`. + +## Test plan +- [ ] `claude plugin marketplace add` against local clone succeeds +- [ ] `claude plugin install electrified-cortex@electrified-cortex` succeeds +- [ ] All 15 skills discoverable under `electrified-cortex:` namespace +- [ ] Both dispatch agents registered as subagent types +- [ ] Smoke test of `electrified-cortex:markdown-hygiene` end-to-end +- [ ] `hash-stamp` audit returns zero drift +EOF +)" +``` + +Expected: PR created. Include the URL in the summary back to the user. + +--- + +## Self-Review + +Placeholder scan: no TBD/TODO/vague language. Every step has either a concrete command, exact file path, or literal content. + +Type consistency: `electrified-cortex` is the consistent name in both manifests and the install incantation. File paths use forward slashes throughout (Git Bash compatible on Windows). Agent filenames are consistently `claude-dispatch.md` / `vscode-dispatch.md` after Task 2. + +Spec coverage check — mapping spec sections to tasks: + +- Spec §"Granularity: single plugin" → Task 5 (single plugin entry in marketplace.json). +- Spec §"Distribution: existing GitHub repo" → Task 5 (`"source": "./"`) + Task 4 (install instructions in README). +- Spec §"Repo layout: restructure" → Task 1. +- Spec §"Target layout" → Tasks 1, 2, 5 collectively produce the tree. +- Spec §"Marketplace manifest" → Task 5 Step 2. +- Spec §"Plugin manifest" → Task 5 Step 3. +- Spec §"Migration plan" steps 1–6 → Tasks 1, 2, 5, 6, 4, 7 respectively. +- Spec §"Install instructions" → Task 4 Step 3. +- Spec §"Verification" criteria 1–5 → Task 8 Steps 1–5. +- Spec §"Risks and mitigations" → addressed in Task 3 (cross-references) and Task 7 (sweep). `skill-index` builder risk is moot — builder already accepts `root` parameter. + +No gaps. diff --git a/docs/claude-code-marketplace.md b/docs/claude-code-marketplace.md new file mode 100644 index 00000000..cebd884f --- /dev/null +++ b/docs/claude-code-marketplace.md @@ -0,0 +1,168 @@ +# Claude Code marketplace packaging for electrified-cortex + +**Status:** Draft — design approved 2026-04-23 +**Owner:** Kyle Craviotto +**Scope:** v0.1.0 internal release + +## Problem + +The `electrified-cortex/skills` repo currently ships 15 skills under the Agent Skills open standard, plus two dispatch agents and skill-indexing artifacts. Teammates install them by cloning the repo and pointing an agent runtime at the root. There is no first-class install path for Claude Code, which expects plugins with a specific manifest and directory layout. + +Goal: make the repo installable as a Claude Code plugin marketplace, usable by internal teammates with two CLI commands, without breaking the repo's platform-agnostic posture for non-Claude-Code runtimes. + +## Non-goals + +- Public distribution outside the organization. +- Splitting the skills into multiple plugins (themed bundles or per-skill packages). +- Publishing slash commands (`commands/`), hooks, or MCP servers. The plugin in v0.1.0 ships skills and agents only. +- Automated versioning, release tagging, or changelog generation. +- Re-authoring any skill content. This is a packaging change only. + +## Decisions + +### Granularity: single plugin + +One plugin (`electrified-cortex`) bundles all 15 skills and both dispatch agents. The skills are tightly cross-referenced (e.g., `skill-writing` calls `skill-auditing`, which calls `markdown-hygiene`), so splitting them across plugins would create install-ordering and dependency headaches for internal users with no offsetting benefit. + +### Distribution: existing GitHub repo + +The marketplace manifest and plugin contents live in the same repo (`github.com/electrified-cortex/skills`). Users add the marketplace by referencing the repo directly — no second publish step, no separate distribution repo, no internal file share. Internal access is controlled by GitHub org membership. + +### Repo layout: restructure, not overlay + +All 15 skill directories move from the repo root into a new top-level `skills/` subdirectory. This matches Claude Code's plugin loader expectation (`skills//SKILL.md`) and avoids maintaining Windows-unfriendly symlinks or duplicated copies. The one-time path churn is accepted in exchange for a clean, spec-compliant layout. + +## Target layout + +``` +skills/ (GitHub: electrified-cortex/skills) +├── .claude-plugin/ +│ ├── marketplace.json +│ └── plugin.json +├── skills/ +│ ├── audit-reporting/ +│ ├── code-review/ +│ ├── compression/ +│ ├── dispatch/ +│ ├── gh-cli/ +│ ├── hash-stamp/ +│ ├── markdown-hygiene/ +│ ├── session-logging/ +│ ├── skill-auditing/ +│ ├── skill-index/ +│ ├── skill-writing/ +│ ├── spec-auditing/ +│ ├── spec-writing/ +│ ├── tool-auditing/ +│ └── tool-writing/ +├── agents/ +│ ├── claude-dispatch.md +│ └── vscode-dispatch.md +├── README.md +├── skill.index +├── skill.index.md +├── skill.index.sha256 +├── LICENSE +└── .gitignore, .gitattributes, .markdownlint.json +``` + +Each skill directory moves with `git mv`. Companion files (`SKILL.md`, `spec.md`, `uncompressed.md`, all `.sha256` stamps) travel intact. The `.claude-plugin/` folder is additive. The two dispatch agents are promoted from `skills/dispatch/agents/*.agent.md` to top-level `agents/*.md` so Claude Code auto-registers them as subagent types; the filename suffix drops from `.agent.md` to `.md` to match Claude Code's convention. + +## Marketplace manifest + +`.claude-plugin/marketplace.json`: + +```json +{ + "name": "electrified-cortex", + "owner": { + "name": "Electrified Cortex", + "url": "https://github.com/electrified-cortex" + }, + "plugins": [ + { + "name": "electrified-cortex", + "source": "./", + "description": "Human-curated skills for workspace automation, QA, and token efficiency — skills, agents, and companion specs bundled as one plugin.", + "version": "0.1.0", + "category": "productivity", + "tags": ["skills", "agents", "audit", "compression", "gh-cli"] + } + ] +} +``` + +- `"source": "./"` — plugin lives in the same repo as the marketplace manifest. (Claude Code CLI requires the trailing slash.) +- Plugin name matches the GitHub org (`electrified-cortex`) to keep the install incantation memorable. +- Version starts at `0.1.0` to signal that marketplace packaging is new and may shift; skill content itself is stable. + +## Plugin manifest + +`.claude-plugin/plugin.json`: + +```json +{ + "name": "electrified-cortex", + "version": "0.1.0", + "description": "Human-curated skills for workspace automation, QA, and token efficiency. Bundles 15 skills (authoring, auditing, compression, dispatch, gh-cli, indexing) plus dispatch agents.", + "author": { + "name": "Electrified Cortex", + "url": "https://github.com/electrified-cortex/skills" + }, + "homepage": "https://github.com/electrified-cortex/skills", + "license": "MIT", + "keywords": ["skills", "agent-skills", "audit", "compression", "dispatch", "gh-cli", "markdown-hygiene", "spec-writing"] +} +``` + +Claude Code auto-discovers `skills/`, `agents/`, `commands/`, and `hooks/` relative to the plugin root, so the manifest stays small and declarative. + +Companion files (`spec.md`, `uncompressed.md`, `.sha256` stamps) are inert from Claude Code's perspective — it only reads `SKILL.md`. They ride along in the git clone to preserve the cross-platform skill contract documented in `skills/skill-writing/spec.md`. The plugin manifest does not mention them; that belongs in the skill-writing spec, not the loading contract. + +## Migration plan + +1. `git mv / skills//` for all 15 skill directories (audit-reporting, code-review, compression, dispatch, gh-cli, hash-stamp, markdown-hygiene, session-logging, skill-auditing, skill-index, skill-writing, spec-auditing, spec-writing, tool-auditing, tool-writing). +2. `git mv skills/dispatch/agents/claude-dispatch.agent.md agents/claude-dispatch.md` and the same for `vscode-dispatch`. +3. Create `.claude-plugin/marketplace.json` and `.claude-plugin/plugin.json` per the shapes above. +4. Rebuild `skill.index`, `skill.index.md`, and `skill.index.sha256` against the new `skills/` subtree. If the existing builder in `skills/skill-index/` hardcodes a root scan, add a root-override parameter — that fix is in-scope for this migration. +5. Update `README.md`: + - Rewrite the skill table links from `[code-review](code-review/)` to `[code-review](skills/code-review/)` and similar for every row. + - Rewrite the agent table links to the new `agents/` paths. + - Add a new "Install as a Claude Code plugin" section with the two-command install sequence. +6. Grep-sweep `SKILL.md`, `spec.md`, and `uncompressed.md` files for cross-skill path references (`../`, `/...`) and update any that break under the new layout. + +All steps are mechanical. No skill content changes. + +## Install instructions (new README section) + +```bash +# One-time, per teammate +claude plugin marketplace add electrified-cortex/skills +claude plugin install electrified-cortex@electrified-cortex + +# To pull updates later +claude plugin marketplace update electrified-cortex +``` + +Requires the teammate's GitHub account to have read access to `electrified-cortex/skills`. + +## Verification + +Success criteria for the v0.1.0 migration: + +1. `claude plugin marketplace add` run against a **local clone** (not the remote) resolves both manifests without error. This catches manifest syntax or schema issues before anything is pushed. +2. After install, `/plugin` lists `electrified-cortex` and all 15 skills are discoverable by their namespaced names (`electrified-cortex:code-review`, etc.). +3. Both dispatch agents appear in the subagent type list available to the `Agent` tool. +4. One skill is smoke-tested end-to-end — invoking `electrified-cortex:markdown-hygiene` on a known-dirty `.md` fixture must fix it, proving file path resolution works inside the plugin sandbox. +5. A `hash-stamp` audit across the moved `skills/` tree returns zero drift, confirming no companion stamps were corrupted by `git mv`. + +## Risks and mitigations + +- **Broken cross-references inside skill files** — mitigated by the grep-sweep in migration step 6. If a reference is missed, the smoke test in verification step 4 should surface it; if not, an affected skill fails at invoke time with a clear "file not found" error. +- **skill-index builder assumes root scan** — mitigated by treating this as in-scope for the migration. If the fix is larger than anticipated, it becomes a blocker and gets its own follow-up spec rather than hiding inside this one. +- **Teammates on older Claude Code versions missing `/plugin marketplace`** — document the minimum Claude Code version in the new README section. Not mitigated in the repo; handled by team comms. +- **External consumers pointing runtimes at the repo root** — the README update signals the new layout, and old clones continue to work until re-cloned. Cross-platform consumers re-point at `skills/`. + +## Open questions + +None at design time. Any issues discovered during migration become new specs or plan items. diff --git a/markdown-hygiene/spec.md.sha256 b/markdown-hygiene/spec.md.sha256 deleted file mode 100644 index f2d74376..00000000 --- a/markdown-hygiene/spec.md.sha256 +++ /dev/null @@ -1 +0,0 @@ -9b42e073bd357540ea237eadc8d3fb2ff8388a8ac84acee2d1af9a7d4ba64adc \ No newline at end of file diff --git a/skill-auditing/instructions.txt.sha256 b/skill-auditing/instructions.txt.sha256 deleted file mode 100644 index fa7f21b8..00000000 --- a/skill-auditing/instructions.txt.sha256 +++ /dev/null @@ -1 +0,0 @@ -4e0358ea128b9d341da8429248890b98005f47b859f6439b8282e3e6633a2436 \ No newline at end of file diff --git a/skill-auditing/instructions.uncompressed.md.sha256 b/skill-auditing/instructions.uncompressed.md.sha256 deleted file mode 100644 index 43819197..00000000 --- a/skill-auditing/instructions.uncompressed.md.sha256 +++ /dev/null @@ -1 +0,0 @@ -153660d3b5c97e7cb9d8ef24c5d48607a9e4c2694c0d436b41a6fd608df499ba \ No newline at end of file diff --git a/skill.index b/skill.index index 1b15da70..b0d6e706 100644 --- a/skill.index +++ b/skill.index @@ -1,14 +1 @@ -audit-reporting: audit report output, report file convention, output path, audit report location -code-review: code review, review code, review diff, review PR, find findings, check code, another agent's code -compression: compress, compress markdown, compress text, shrink, condense, reduce tokens, smaller budget -dispatch: dispatch agent, subagent, background agent, foreground agent, model choice, how to dispatch -gh-cli/: github, gh, pr, pull request, issue, release, repo, workflow, actions, api, github cli -markdown-hygiene: markdown, fix markdown, clean markdown, well formatted markdown, markdown formatting -skill-auditing: audit skill, review skill, evaluate skill, skill quality, skill drift, check skill -skill-index/: skill index, per-directory index, cascading index, agent skill discovery, find skill -skill-writing: write skill, create skill, author skill, new skill, writing a skill -spec-auditing: audit spec, verify spec, check spec, spec drift, validate spec, review spec, spec changed -spec-writing: write spec, create spec, author spec, specify, specification, requirements, new spec -hash-stamp/: verify stamp, check sha256, stamp mismatch, write stamp, update sha256, hash drift, stamp integrity, restamp, file changed -tool-auditing: audit tool, review script, check tool, script audit, tool quality -tool-writing: write tool, create tool, author script, new script, bash script, powershell script, automate workflow +skills/: skill library, skill bundle, curated skills, agent skills diff --git a/skill.index.md b/skill.index.md index 6fd95b4b..80869108 100644 --- a/skill.index.md +++ b/skill.index.md @@ -1,57 +1,5 @@ # electrified-cortex — skill index -## audit-reporting +## skills -Defines where and how audit skills write report files — applied inline when producing output from any audit skill. - -## code-reviewer - -Comprehensive review of a diff — your change, another agent's, or an outside PR. Output is findings; fixes are yours to apply. - -## compression - -Shrinks a markdown or text file without losing meaning. Common use: a skill that is too long to load cheaply. - -## dispatch - -How to dispatch another agent well — when to, which model, prompt shape, known failure modes. - -## gh-cli - -All GitHub operations — pull requests, issues, Actions, releases, repos, API. - -## markdown-hygiene - -Fix any formatting problems in a markdown file without changing the content itself. - -## skill-auditing - -Evaluates a skill — is it well-written, on-spec, correctly classified. Read-only output. - -## skill-index - -Cascading per-directory index system — lets agents discover skills without walking the filesystem. - -## skill-writing - -Read before writing or authoring any skill. Skills drift in style over time; do not copy an existing one as a template. - -## spec-auditing - -Verify a spec still holds up — after you wrote or changed it, or after its subject changed. - -## spec-writing - -Authoring a new spec — requirements before implementation, phrased so they are actually verifiable. - -## hash-stamp - -SHA-256 integrity stamp suite — verify whether stamped files have drifted (audit) or write/update `.sha256` companions after edits (stamp). - -## tool-auditing - -Check a Bash or PowerShell script against conventions — error handling, path safety, no interactive prompts. - -## tool-writing - -Writing a Bash or PowerShell script — argument parsing, exit codes, structured output. +A curated library of agent skills for workspace automation, QA, and token efficiency. diff --git a/skill.index.sha256 b/skill.index.sha256 index b6656ac4..34de5b6e 100644 --- a/skill.index.sha256 +++ b/skill.index.sha256 @@ -1 +1 @@ -d8aee607a20cddb53da8061ba2947181ec67a2009872f44c77ad13dd2193e986 skill.index \ No newline at end of file +a243a9d0b6eb05d3d231425b5a70d86c63ee5d0cab8cc7fbc2b0903c09667091 diff --git a/audit-reporting/SKILL.md b/skills/audit-reporting/SKILL.md similarity index 100% rename from audit-reporting/SKILL.md rename to skills/audit-reporting/SKILL.md diff --git a/audit-reporting/SKILL.md.sha256 b/skills/audit-reporting/SKILL.md.sha256 similarity index 100% rename from audit-reporting/SKILL.md.sha256 rename to skills/audit-reporting/SKILL.md.sha256 diff --git a/audit-reporting/spec.md b/skills/audit-reporting/spec.md similarity index 100% rename from audit-reporting/spec.md rename to skills/audit-reporting/spec.md diff --git a/audit-reporting/spec.md.sha256 b/skills/audit-reporting/spec.md.sha256 similarity index 100% rename from audit-reporting/spec.md.sha256 rename to skills/audit-reporting/spec.md.sha256 diff --git a/audit-reporting/uncompressed.md b/skills/audit-reporting/uncompressed.md similarity index 100% rename from audit-reporting/uncompressed.md rename to skills/audit-reporting/uncompressed.md diff --git a/audit-reporting/uncompressed.md.sha256 b/skills/audit-reporting/uncompressed.md.sha256 similarity index 100% rename from audit-reporting/uncompressed.md.sha256 rename to skills/audit-reporting/uncompressed.md.sha256 diff --git a/code-review/SKILL.md b/skills/code-review/SKILL.md similarity index 100% rename from code-review/SKILL.md rename to skills/code-review/SKILL.md diff --git a/code-review/SKILL.md.sha256 b/skills/code-review/SKILL.md.sha256 similarity index 100% rename from code-review/SKILL.md.sha256 rename to skills/code-review/SKILL.md.sha256 diff --git a/code-review/instructions.txt b/skills/code-review/instructions.txt similarity index 100% rename from code-review/instructions.txt rename to skills/code-review/instructions.txt diff --git a/code-review/instructions.txt.sha256 b/skills/code-review/instructions.txt.sha256 similarity index 100% rename from code-review/instructions.txt.sha256 rename to skills/code-review/instructions.txt.sha256 diff --git a/code-review/instructions.uncompressed.md b/skills/code-review/instructions.uncompressed.md similarity index 100% rename from code-review/instructions.uncompressed.md rename to skills/code-review/instructions.uncompressed.md diff --git a/code-review/instructions.uncompressed.md.sha256 b/skills/code-review/instructions.uncompressed.md.sha256 similarity index 100% rename from code-review/instructions.uncompressed.md.sha256 rename to skills/code-review/instructions.uncompressed.md.sha256 diff --git a/code-review/spec.md b/skills/code-review/spec.md similarity index 100% rename from code-review/spec.md rename to skills/code-review/spec.md diff --git a/code-review/spec.md.sha256 b/skills/code-review/spec.md.sha256 similarity index 100% rename from code-review/spec.md.sha256 rename to skills/code-review/spec.md.sha256 diff --git a/code-review/uncompressed.md b/skills/code-review/uncompressed.md similarity index 100% rename from code-review/uncompressed.md rename to skills/code-review/uncompressed.md diff --git a/code-review/uncompressed.md.sha256 b/skills/code-review/uncompressed.md.sha256 similarity index 100% rename from code-review/uncompressed.md.sha256 rename to skills/code-review/uncompressed.md.sha256 diff --git a/compression/.tests/PLAN.md b/skills/compression/.tests/PLAN.md similarity index 100% rename from compression/.tests/PLAN.md rename to skills/compression/.tests/PLAN.md diff --git a/compression/.tests/PLAN.spec.md b/skills/compression/.tests/PLAN.spec.md similarity index 100% rename from compression/.tests/PLAN.spec.md rename to skills/compression/.tests/PLAN.spec.md diff --git a/compression/.tests/RESULTS.md b/skills/compression/.tests/RESULTS.md similarity index 100% rename from compression/.tests/RESULTS.md rename to skills/compression/.tests/RESULTS.md diff --git a/compression/.tests/full/gpt54.md b/skills/compression/.tests/full/gpt54.md similarity index 100% rename from compression/.tests/full/gpt54.md rename to skills/compression/.tests/full/gpt54.md diff --git a/compression/.tests/full/haiku.md b/skills/compression/.tests/full/haiku.md similarity index 100% rename from compression/.tests/full/haiku.md rename to skills/compression/.tests/full/haiku.md diff --git a/compression/.tests/full/opus.md b/skills/compression/.tests/full/opus.md similarity index 100% rename from compression/.tests/full/opus.md rename to skills/compression/.tests/full/opus.md diff --git a/compression/.tests/full/sonnet.md b/skills/compression/.tests/full/sonnet.md similarity index 100% rename from compression/.tests/full/sonnet.md rename to skills/compression/.tests/full/sonnet.md diff --git a/compression/.tests/inputs/recipe.md b/skills/compression/.tests/inputs/recipe.md similarity index 100% rename from compression/.tests/inputs/recipe.md rename to skills/compression/.tests/inputs/recipe.md diff --git a/compression/.tests/inputs/recipe.spec.md b/skills/compression/.tests/inputs/recipe.spec.md similarity index 100% rename from compression/.tests/inputs/recipe.spec.md rename to skills/compression/.tests/inputs/recipe.spec.md diff --git a/compression/.tests/lite/gpt54.md b/skills/compression/.tests/lite/gpt54.md similarity index 100% rename from compression/.tests/lite/gpt54.md rename to skills/compression/.tests/lite/gpt54.md diff --git a/compression/.tests/lite/haiku.md b/skills/compression/.tests/lite/haiku.md similarity index 100% rename from compression/.tests/lite/haiku.md rename to skills/compression/.tests/lite/haiku.md diff --git a/compression/.tests/lite/opus.md b/skills/compression/.tests/lite/opus.md similarity index 100% rename from compression/.tests/lite/opus.md rename to skills/compression/.tests/lite/opus.md diff --git a/compression/.tests/lite/sonnet.md b/skills/compression/.tests/lite/sonnet.md similarity index 100% rename from compression/.tests/lite/sonnet.md rename to skills/compression/.tests/lite/sonnet.md diff --git a/compression/.tests/ultra/gpt54.md b/skills/compression/.tests/ultra/gpt54.md similarity index 100% rename from compression/.tests/ultra/gpt54.md rename to skills/compression/.tests/ultra/gpt54.md diff --git a/compression/.tests/ultra/haiku-2pass.md b/skills/compression/.tests/ultra/haiku-2pass.md similarity index 100% rename from compression/.tests/ultra/haiku-2pass.md rename to skills/compression/.tests/ultra/haiku-2pass.md diff --git a/compression/.tests/ultra/haiku.md b/skills/compression/.tests/ultra/haiku.md similarity index 100% rename from compression/.tests/ultra/haiku.md rename to skills/compression/.tests/ultra/haiku.md diff --git a/compression/.tests/ultra/opus.md b/skills/compression/.tests/ultra/opus.md similarity index 100% rename from compression/.tests/ultra/opus.md rename to skills/compression/.tests/ultra/opus.md diff --git a/compression/.tests/ultra/sonnet.md b/skills/compression/.tests/ultra/sonnet.md similarity index 100% rename from compression/.tests/ultra/sonnet.md rename to skills/compression/.tests/ultra/sonnet.md diff --git a/compression/README.md.sha256 b/skills/compression/README.md.sha256 similarity index 100% rename from compression/README.md.sha256 rename to skills/compression/README.md.sha256 diff --git a/compression/SKILL.md b/skills/compression/SKILL.md similarity index 100% rename from compression/SKILL.md rename to skills/compression/SKILL.md diff --git a/compression/SKILL.md.sha256 b/skills/compression/SKILL.md.sha256 similarity index 100% rename from compression/SKILL.md.sha256 rename to skills/compression/SKILL.md.sha256 diff --git a/compression/compress.spec.md b/skills/compression/compress.spec.md similarity index 100% rename from compression/compress.spec.md rename to skills/compression/compress.spec.md diff --git a/compression/full/rules.txt b/skills/compression/full/rules.txt similarity index 100% rename from compression/full/rules.txt rename to skills/compression/full/rules.txt diff --git a/compression/full/rules.txt.sha256 b/skills/compression/full/rules.txt.sha256 similarity index 100% rename from compression/full/rules.txt.sha256 rename to skills/compression/full/rules.txt.sha256 diff --git a/compression/full/spec.md b/skills/compression/full/spec.md similarity index 100% rename from compression/full/spec.md rename to skills/compression/full/spec.md diff --git a/compression/full/spec.md.sha256 b/skills/compression/full/spec.md.sha256 similarity index 100% rename from compression/full/spec.md.sha256 rename to skills/compression/full/spec.md.sha256 diff --git a/compression/instructions.txt b/skills/compression/instructions.txt similarity index 100% rename from compression/instructions.txt rename to skills/compression/instructions.txt diff --git a/compression/instructions.txt.sha256 b/skills/compression/instructions.txt.sha256 similarity index 100% rename from compression/instructions.txt.sha256 rename to skills/compression/instructions.txt.sha256 diff --git a/compression/instructions.uncompressed.md b/skills/compression/instructions.uncompressed.md similarity index 100% rename from compression/instructions.uncompressed.md rename to skills/compression/instructions.uncompressed.md diff --git a/compression/instructions.uncompressed.md.sha256 b/skills/compression/instructions.uncompressed.md.sha256 similarity index 100% rename from compression/instructions.uncompressed.md.sha256 rename to skills/compression/instructions.uncompressed.md.sha256 diff --git a/compression/lite/rules.txt b/skills/compression/lite/rules.txt similarity index 100% rename from compression/lite/rules.txt rename to skills/compression/lite/rules.txt diff --git a/compression/lite/rules.txt.sha256 b/skills/compression/lite/rules.txt.sha256 similarity index 100% rename from compression/lite/rules.txt.sha256 rename to skills/compression/lite/rules.txt.sha256 diff --git a/compression/lite/spec.md b/skills/compression/lite/spec.md similarity index 100% rename from compression/lite/spec.md rename to skills/compression/lite/spec.md diff --git a/compression/lite/spec.md.sha256 b/skills/compression/lite/spec.md.sha256 similarity index 100% rename from compression/lite/spec.md.sha256 rename to skills/compression/lite/spec.md.sha256 diff --git a/compression/spec.md b/skills/compression/spec.md similarity index 100% rename from compression/spec.md rename to skills/compression/spec.md diff --git a/compression/spec.md.sha256 b/skills/compression/spec.md.sha256 similarity index 100% rename from compression/spec.md.sha256 rename to skills/compression/spec.md.sha256 diff --git a/compression/ultra/rules.txt b/skills/compression/ultra/rules.txt similarity index 100% rename from compression/ultra/rules.txt rename to skills/compression/ultra/rules.txt diff --git a/compression/ultra/rules.txt.sha256 b/skills/compression/ultra/rules.txt.sha256 similarity index 100% rename from compression/ultra/rules.txt.sha256 rename to skills/compression/ultra/rules.txt.sha256 diff --git a/compression/ultra/spec.md b/skills/compression/ultra/spec.md similarity index 100% rename from compression/ultra/spec.md rename to skills/compression/ultra/spec.md diff --git a/compression/ultra/spec.md.sha256 b/skills/compression/ultra/spec.md.sha256 similarity index 100% rename from compression/ultra/spec.md.sha256 rename to skills/compression/ultra/spec.md.sha256 diff --git a/compression/uncompressed.md b/skills/compression/uncompressed.md similarity index 100% rename from compression/uncompressed.md rename to skills/compression/uncompressed.md diff --git a/compression/uncompressed.md.sha256 b/skills/compression/uncompressed.md.sha256 similarity index 100% rename from compression/uncompressed.md.sha256 rename to skills/compression/uncompressed.md.sha256 diff --git a/dispatch/SKILL.md b/skills/dispatch/SKILL.md similarity index 93% rename from dispatch/SKILL.md rename to skills/dispatch/SKILL.md index f1ab7d3d..d8b519a2 100644 --- a/dispatch/SKILL.md +++ b/skills/dispatch/SKILL.md @@ -89,5 +89,5 @@ For empirical evidence (context-inheritance tests), anti-pattern walkthroughs, e ## Related -- Agent files: `dispatch/agents/` — ready-to-install Dispatch agent definitions for Claude Code CLI and VS Code. +- Agent files: `agents/claude-dispatch.md` and `agents/vscode-dispatch.md` at the repo root — ready-to-install Dispatch agent definitions for Claude Code CLI and VS Code. - Installation: `installation.md` — where to put agent files, VS Code invocation, and what to do if not installed. diff --git a/dispatch/SKILL.md.sha256 b/skills/dispatch/SKILL.md.sha256 similarity index 100% rename from dispatch/SKILL.md.sha256 rename to skills/dispatch/SKILL.md.sha256 diff --git a/skills/dispatch/agents/README.md b/skills/dispatch/agents/README.md new file mode 100644 index 00000000..7c68fb39 --- /dev/null +++ b/skills/dispatch/agents/README.md @@ -0,0 +1,9 @@ +# Dispatch agent files (moved) + +The dispatch agent definitions moved to `/agents/` at the repo root to +match Claude Code's plugin loader convention (`/agents/*.md`). + +- `agents/claude-dispatch.md` — Claude Code CLI +- `agents/vscode-dispatch.md` — VS Code (GitHub Copilot) + +See `skills/dispatch/installation.md` for install steps. diff --git a/dispatch/installation.md b/skills/dispatch/installation.md similarity index 64% rename from dispatch/installation.md rename to skills/dispatch/installation.md index 68de0dd2..50e6cdee 100644 --- a/dispatch/installation.md +++ b/skills/dispatch/installation.md @@ -4,12 +4,12 @@ The dispatch skill requires a companion agent file installed in your project's a ## Agent Files -Source: `dispatch/agents/` +Source: `agents/` at the repo root | File | Environment | Install path | | --- | --- | --- | -| `claude-dispatch.agent.md` | Claude Code CLI | `.claude/agents/dispatch.agent.md` | -| `vscode-dispatch.agent.md` | VS Code (GitHub Copilot) | `.github/agents/dispatch.agent.md` | +| `agents/claude-dispatch.md` | Claude Code CLI | `.claude/agents/dispatch.agent.md` | +| `agents/vscode-dispatch.md` | VS Code (GitHub Copilot) | `.github/agents/dispatch.agent.md` | Copy the appropriate file. The agent name is `Dispatch` in both environments. diff --git a/dispatch/spec.md b/skills/dispatch/spec.md similarity index 96% rename from dispatch/spec.md rename to skills/dispatch/spec.md index 5513fd58..71e1b681 100644 --- a/dispatch/spec.md +++ b/skills/dispatch/spec.md @@ -107,7 +107,7 @@ R14. Must enumerate subagent-type dimensions (tool scope, system prompt size, de ### Boundary -R15. Cross-references are one-way. `dispatch` is referenced by authoring skills (`skill-writing`, `spec-writing`) and by runtime callers; `dispatch` itself references only `dispatch/agents/` (companion artifacts). The runtime card and supplemental must NOT reference authoring skills. +R15. Cross-references are one-way. `dispatch` is referenced by authoring skills (`skill-writing`, `spec-writing`) and by runtime callers; `dispatch` itself references only the top-level `agents/claude-dispatch.md` and `agents/vscode-dispatch.md` (companion artifacts). The runtime card and supplemental must NOT reference authoring skills. R16. Use role-agnostic language. Terms "Curator," "Worker," "Overseer," or any project-internal role name must not appear. Canonical labels: "host," "dispatched agent," "calling agent." diff --git a/dispatch/spec.md.sha256 b/skills/dispatch/spec.md.sha256 similarity index 100% rename from dispatch/spec.md.sha256 rename to skills/dispatch/spec.md.sha256 diff --git a/dispatch/supplemental.md b/skills/dispatch/supplemental.md similarity index 100% rename from dispatch/supplemental.md rename to skills/dispatch/supplemental.md diff --git a/dispatch/supplemental.md.sha256 b/skills/dispatch/supplemental.md.sha256 similarity index 100% rename from dispatch/supplemental.md.sha256 rename to skills/dispatch/supplemental.md.sha256 diff --git a/dispatch/uncompressed.md b/skills/dispatch/uncompressed.md similarity index 93% rename from dispatch/uncompressed.md rename to skills/dispatch/uncompressed.md index f1ab7d3d..d8b519a2 100644 --- a/dispatch/uncompressed.md +++ b/skills/dispatch/uncompressed.md @@ -89,5 +89,5 @@ For empirical evidence (context-inheritance tests), anti-pattern walkthroughs, e ## Related -- Agent files: `dispatch/agents/` — ready-to-install Dispatch agent definitions for Claude Code CLI and VS Code. +- Agent files: `agents/claude-dispatch.md` and `agents/vscode-dispatch.md` at the repo root — ready-to-install Dispatch agent definitions for Claude Code CLI and VS Code. - Installation: `installation.md` — where to put agent files, VS Code invocation, and what to do if not installed. diff --git a/dispatch/uncompressed.md.sha256 b/skills/dispatch/uncompressed.md.sha256 similarity index 100% rename from dispatch/uncompressed.md.sha256 rename to skills/dispatch/uncompressed.md.sha256 diff --git a/gh-cli/SKILL.md b/skills/gh-cli/SKILL.md similarity index 100% rename from gh-cli/SKILL.md rename to skills/gh-cli/SKILL.md diff --git a/gh-cli/SKILL.md.sha256 b/skills/gh-cli/SKILL.md.sha256 similarity index 100% rename from gh-cli/SKILL.md.sha256 rename to skills/gh-cli/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-actions/SKILL.md b/skills/gh-cli/gh-cli-actions/SKILL.md similarity index 100% rename from gh-cli/gh-cli-actions/SKILL.md rename to skills/gh-cli/gh-cli-actions/SKILL.md diff --git a/gh-cli/gh-cli-actions/SKILL.md.sha256 b/skills/gh-cli/gh-cli-actions/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-actions/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-actions/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-actions/instructions.txt b/skills/gh-cli/gh-cli-actions/instructions.txt similarity index 100% rename from gh-cli/gh-cli-actions/instructions.txt rename to skills/gh-cli/gh-cli-actions/instructions.txt diff --git a/gh-cli/gh-cli-actions/instructions.txt.sha256 b/skills/gh-cli/gh-cli-actions/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-actions/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-actions/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-actions/spec.md b/skills/gh-cli/gh-cli-actions/spec.md similarity index 100% rename from gh-cli/gh-cli-actions/spec.md rename to skills/gh-cli/gh-cli-actions/spec.md diff --git a/gh-cli/gh-cli-actions/spec.md.sha256 b/skills/gh-cli/gh-cli-actions/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-actions/spec.md.sha256 rename to skills/gh-cli/gh-cli-actions/spec.md.sha256 diff --git a/gh-cli/gh-cli-actions/uncompressed.md b/skills/gh-cli/gh-cli-actions/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-actions/uncompressed.md rename to skills/gh-cli/gh-cli-actions/uncompressed.md diff --git a/gh-cli/gh-cli-actions/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-actions/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-actions/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-actions/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-api/SKILL.md b/skills/gh-cli/gh-cli-api/SKILL.md similarity index 100% rename from gh-cli/gh-cli-api/SKILL.md rename to skills/gh-cli/gh-cli-api/SKILL.md diff --git a/gh-cli/gh-cli-api/SKILL.md.sha256 b/skills/gh-cli/gh-cli-api/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-api/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-api/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-api/instructions.txt b/skills/gh-cli/gh-cli-api/instructions.txt similarity index 100% rename from gh-cli/gh-cli-api/instructions.txt rename to skills/gh-cli/gh-cli-api/instructions.txt diff --git a/gh-cli/gh-cli-api/instructions.txt.sha256 b/skills/gh-cli/gh-cli-api/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-api/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-api/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-api/spec.md b/skills/gh-cli/gh-cli-api/spec.md similarity index 100% rename from gh-cli/gh-cli-api/spec.md rename to skills/gh-cli/gh-cli-api/spec.md diff --git a/gh-cli/gh-cli-api/spec.md.sha256 b/skills/gh-cli/gh-cli-api/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-api/spec.md.sha256 rename to skills/gh-cli/gh-cli-api/spec.md.sha256 diff --git a/gh-cli/gh-cli-api/uncompressed.md b/skills/gh-cli/gh-cli-api/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-api/uncompressed.md rename to skills/gh-cli/gh-cli-api/uncompressed.md diff --git a/gh-cli/gh-cli-api/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-api/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-api/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-api/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-issues/SKILL.md b/skills/gh-cli/gh-cli-issues/SKILL.md similarity index 100% rename from gh-cli/gh-cli-issues/SKILL.md rename to skills/gh-cli/gh-cli-issues/SKILL.md diff --git a/gh-cli/gh-cli-issues/SKILL.md.sha256 b/skills/gh-cli/gh-cli-issues/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-issues/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-issues/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-issues/instructions.txt b/skills/gh-cli/gh-cli-issues/instructions.txt similarity index 100% rename from gh-cli/gh-cli-issues/instructions.txt rename to skills/gh-cli/gh-cli-issues/instructions.txt diff --git a/gh-cli/gh-cli-issues/instructions.txt.sha256 b/skills/gh-cli/gh-cli-issues/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-issues/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-issues/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-issues/spec.md b/skills/gh-cli/gh-cli-issues/spec.md similarity index 100% rename from gh-cli/gh-cli-issues/spec.md rename to skills/gh-cli/gh-cli-issues/spec.md diff --git a/gh-cli/gh-cli-issues/spec.md.sha256 b/skills/gh-cli/gh-cli-issues/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-issues/spec.md.sha256 rename to skills/gh-cli/gh-cli-issues/spec.md.sha256 diff --git a/gh-cli/gh-cli-issues/uncompressed.md b/skills/gh-cli/gh-cli-issues/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-issues/uncompressed.md rename to skills/gh-cli/gh-cli-issues/uncompressed.md diff --git a/gh-cli/gh-cli-issues/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-issues/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-issues/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-issues/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-projects/SKILL.md b/skills/gh-cli/gh-cli-projects/SKILL.md similarity index 100% rename from gh-cli/gh-cli-projects/SKILL.md rename to skills/gh-cli/gh-cli-projects/SKILL.md diff --git a/gh-cli/gh-cli-projects/SKILL.md.sha256 b/skills/gh-cli/gh-cli-projects/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-projects/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-projects/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-projects/instructions.txt b/skills/gh-cli/gh-cli-projects/instructions.txt similarity index 100% rename from gh-cli/gh-cli-projects/instructions.txt rename to skills/gh-cli/gh-cli-projects/instructions.txt diff --git a/gh-cli/gh-cli-projects/instructions.txt.sha256 b/skills/gh-cli/gh-cli-projects/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-projects/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-projects/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-projects/spec.md b/skills/gh-cli/gh-cli-projects/spec.md similarity index 100% rename from gh-cli/gh-cli-projects/spec.md rename to skills/gh-cli/gh-cli-projects/spec.md diff --git a/gh-cli/gh-cli-projects/spec.md.sha256 b/skills/gh-cli/gh-cli-projects/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-projects/spec.md.sha256 rename to skills/gh-cli/gh-cli-projects/spec.md.sha256 diff --git a/gh-cli/gh-cli-projects/uncompressed.md b/skills/gh-cli/gh-cli-projects/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-projects/uncompressed.md rename to skills/gh-cli/gh-cli-projects/uncompressed.md diff --git a/gh-cli/gh-cli-projects/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-projects/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-projects/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-projects/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-prs/SKILL.md b/skills/gh-cli/gh-cli-prs/SKILL.md similarity index 100% rename from gh-cli/gh-cli-prs/SKILL.md rename to skills/gh-cli/gh-cli-prs/SKILL.md diff --git a/gh-cli/gh-cli-prs/SKILL.md.sha256 b/skills/gh-cli/gh-cli-prs/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-prs/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/spec.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-comments/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/spec.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-create/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/spec.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-merge/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/spec.md.sha256 diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md diff --git a/gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-prs/gh-cli-prs-review/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-prs/instructions.txt b/skills/gh-cli/gh-cli-prs/instructions.txt similarity index 100% rename from gh-cli/gh-cli-prs/instructions.txt rename to skills/gh-cli/gh-cli-prs/instructions.txt diff --git a/gh-cli/gh-cli-prs/instructions.txt.sha256 b/skills/gh-cli/gh-cli-prs/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-prs/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-prs/skill.index b/skills/gh-cli/gh-cli-prs/skill.index similarity index 100% rename from gh-cli/gh-cli-prs/skill.index rename to skills/gh-cli/gh-cli-prs/skill.index diff --git a/gh-cli/gh-cli-prs/skill.index.md b/skills/gh-cli/gh-cli-prs/skill.index.md similarity index 100% rename from gh-cli/gh-cli-prs/skill.index.md rename to skills/gh-cli/gh-cli-prs/skill.index.md diff --git a/gh-cli/gh-cli-prs/skill.index.sha256 b/skills/gh-cli/gh-cli-prs/skill.index.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/skill.index.sha256 rename to skills/gh-cli/gh-cli-prs/skill.index.sha256 diff --git a/gh-cli/gh-cli-prs/spec.md b/skills/gh-cli/gh-cli-prs/spec.md similarity index 100% rename from gh-cli/gh-cli-prs/spec.md rename to skills/gh-cli/gh-cli-prs/spec.md diff --git a/gh-cli/gh-cli-prs/spec.md.sha256 b/skills/gh-cli/gh-cli-prs/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/spec.md.sha256 rename to skills/gh-cli/gh-cli-prs/spec.md.sha256 diff --git a/gh-cli/gh-cli-prs/uncompressed.md b/skills/gh-cli/gh-cli-prs/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-prs/uncompressed.md rename to skills/gh-cli/gh-cli-prs/uncompressed.md diff --git a/gh-cli/gh-cli-prs/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-prs/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-prs/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-prs/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-releases/SKILL.md b/skills/gh-cli/gh-cli-releases/SKILL.md similarity index 100% rename from gh-cli/gh-cli-releases/SKILL.md rename to skills/gh-cli/gh-cli-releases/SKILL.md diff --git a/gh-cli/gh-cli-releases/SKILL.md.sha256 b/skills/gh-cli/gh-cli-releases/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-releases/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-releases/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-releases/instructions.txt b/skills/gh-cli/gh-cli-releases/instructions.txt similarity index 100% rename from gh-cli/gh-cli-releases/instructions.txt rename to skills/gh-cli/gh-cli-releases/instructions.txt diff --git a/gh-cli/gh-cli-releases/instructions.txt.sha256 b/skills/gh-cli/gh-cli-releases/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-releases/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-releases/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-releases/spec.md b/skills/gh-cli/gh-cli-releases/spec.md similarity index 100% rename from gh-cli/gh-cli-releases/spec.md rename to skills/gh-cli/gh-cli-releases/spec.md diff --git a/gh-cli/gh-cli-releases/spec.md.sha256 b/skills/gh-cli/gh-cli-releases/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-releases/spec.md.sha256 rename to skills/gh-cli/gh-cli-releases/spec.md.sha256 diff --git a/gh-cli/gh-cli-releases/uncompressed.md b/skills/gh-cli/gh-cli-releases/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-releases/uncompressed.md rename to skills/gh-cli/gh-cli-releases/uncompressed.md diff --git a/gh-cli/gh-cli-releases/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-releases/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-releases/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-releases/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-repos/SKILL.md b/skills/gh-cli/gh-cli-repos/SKILL.md similarity index 100% rename from gh-cli/gh-cli-repos/SKILL.md rename to skills/gh-cli/gh-cli-repos/SKILL.md diff --git a/gh-cli/gh-cli-repos/SKILL.md.sha256 b/skills/gh-cli/gh-cli-repos/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-repos/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-repos/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-repos/instructions.txt b/skills/gh-cli/gh-cli-repos/instructions.txt similarity index 100% rename from gh-cli/gh-cli-repos/instructions.txt rename to skills/gh-cli/gh-cli-repos/instructions.txt diff --git a/gh-cli/gh-cli-repos/instructions.txt.sha256 b/skills/gh-cli/gh-cli-repos/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-repos/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-repos/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-repos/spec.md b/skills/gh-cli/gh-cli-repos/spec.md similarity index 100% rename from gh-cli/gh-cli-repos/spec.md rename to skills/gh-cli/gh-cli-repos/spec.md diff --git a/gh-cli/gh-cli-repos/spec.md.sha256 b/skills/gh-cli/gh-cli-repos/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-repos/spec.md.sha256 rename to skills/gh-cli/gh-cli-repos/spec.md.sha256 diff --git a/gh-cli/gh-cli-repos/uncompressed.md b/skills/gh-cli/gh-cli-repos/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-repos/uncompressed.md rename to skills/gh-cli/gh-cli-repos/uncompressed.md diff --git a/gh-cli/gh-cli-repos/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-repos/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-repos/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-repos/uncompressed.md.sha256 diff --git a/gh-cli/gh-cli-setup/SKILL.md b/skills/gh-cli/gh-cli-setup/SKILL.md similarity index 100% rename from gh-cli/gh-cli-setup/SKILL.md rename to skills/gh-cli/gh-cli-setup/SKILL.md diff --git a/gh-cli/gh-cli-setup/SKILL.md.sha256 b/skills/gh-cli/gh-cli-setup/SKILL.md.sha256 similarity index 100% rename from gh-cli/gh-cli-setup/SKILL.md.sha256 rename to skills/gh-cli/gh-cli-setup/SKILL.md.sha256 diff --git a/gh-cli/gh-cli-setup/instructions.txt b/skills/gh-cli/gh-cli-setup/instructions.txt similarity index 100% rename from gh-cli/gh-cli-setup/instructions.txt rename to skills/gh-cli/gh-cli-setup/instructions.txt diff --git a/gh-cli/gh-cli-setup/instructions.txt.sha256 b/skills/gh-cli/gh-cli-setup/instructions.txt.sha256 similarity index 100% rename from gh-cli/gh-cli-setup/instructions.txt.sha256 rename to skills/gh-cli/gh-cli-setup/instructions.txt.sha256 diff --git a/gh-cli/gh-cli-setup/spec.md b/skills/gh-cli/gh-cli-setup/spec.md similarity index 100% rename from gh-cli/gh-cli-setup/spec.md rename to skills/gh-cli/gh-cli-setup/spec.md diff --git a/gh-cli/gh-cli-setup/spec.md.sha256 b/skills/gh-cli/gh-cli-setup/spec.md.sha256 similarity index 100% rename from gh-cli/gh-cli-setup/spec.md.sha256 rename to skills/gh-cli/gh-cli-setup/spec.md.sha256 diff --git a/gh-cli/gh-cli-setup/uncompressed.md b/skills/gh-cli/gh-cli-setup/uncompressed.md similarity index 100% rename from gh-cli/gh-cli-setup/uncompressed.md rename to skills/gh-cli/gh-cli-setup/uncompressed.md diff --git a/gh-cli/gh-cli-setup/uncompressed.md.sha256 b/skills/gh-cli/gh-cli-setup/uncompressed.md.sha256 similarity index 100% rename from gh-cli/gh-cli-setup/uncompressed.md.sha256 rename to skills/gh-cli/gh-cli-setup/uncompressed.md.sha256 diff --git a/gh-cli/instructions.txt b/skills/gh-cli/instructions.txt similarity index 100% rename from gh-cli/instructions.txt rename to skills/gh-cli/instructions.txt diff --git a/gh-cli/instructions.txt.sha256 b/skills/gh-cli/instructions.txt.sha256 similarity index 100% rename from gh-cli/instructions.txt.sha256 rename to skills/gh-cli/instructions.txt.sha256 diff --git a/gh-cli/skill.index b/skills/gh-cli/skill.index similarity index 100% rename from gh-cli/skill.index rename to skills/gh-cli/skill.index diff --git a/gh-cli/skill.index.md b/skills/gh-cli/skill.index.md similarity index 100% rename from gh-cli/skill.index.md rename to skills/gh-cli/skill.index.md diff --git a/gh-cli/skill.index.sha256 b/skills/gh-cli/skill.index.sha256 similarity index 100% rename from gh-cli/skill.index.sha256 rename to skills/gh-cli/skill.index.sha256 diff --git a/gh-cli/spec.md b/skills/gh-cli/spec.md similarity index 100% rename from gh-cli/spec.md rename to skills/gh-cli/spec.md diff --git a/gh-cli/spec.md.sha256 b/skills/gh-cli/spec.md.sha256 similarity index 100% rename from gh-cli/spec.md.sha256 rename to skills/gh-cli/spec.md.sha256 diff --git a/gh-cli/uncompressed.md b/skills/gh-cli/uncompressed.md similarity index 100% rename from gh-cli/uncompressed.md rename to skills/gh-cli/uncompressed.md diff --git a/gh-cli/uncompressed.md.sha256 b/skills/gh-cli/uncompressed.md.sha256 similarity index 100% rename from gh-cli/uncompressed.md.sha256 rename to skills/gh-cli/uncompressed.md.sha256 diff --git a/hash-stamp/SKILL.md b/skills/hash-stamp/SKILL.md similarity index 100% rename from hash-stamp/SKILL.md rename to skills/hash-stamp/SKILL.md diff --git a/hash-stamp/SKILL.md.sha256 b/skills/hash-stamp/SKILL.md.sha256 similarity index 100% rename from hash-stamp/SKILL.md.sha256 rename to skills/hash-stamp/SKILL.md.sha256 diff --git a/hash-stamp/audit/SKILL.md b/skills/hash-stamp/audit/SKILL.md similarity index 100% rename from hash-stamp/audit/SKILL.md rename to skills/hash-stamp/audit/SKILL.md diff --git a/hash-stamp/audit/SKILL.md.sha256 b/skills/hash-stamp/audit/SKILL.md.sha256 similarity index 100% rename from hash-stamp/audit/SKILL.md.sha256 rename to skills/hash-stamp/audit/SKILL.md.sha256 diff --git a/hash-stamp/audit/instructions.txt b/skills/hash-stamp/audit/instructions.txt similarity index 100% rename from hash-stamp/audit/instructions.txt rename to skills/hash-stamp/audit/instructions.txt diff --git a/hash-stamp/audit/instructions.txt.sha256 b/skills/hash-stamp/audit/instructions.txt.sha256 similarity index 100% rename from hash-stamp/audit/instructions.txt.sha256 rename to skills/hash-stamp/audit/instructions.txt.sha256 diff --git a/hash-stamp/audit/spec.md b/skills/hash-stamp/audit/spec.md similarity index 100% rename from hash-stamp/audit/spec.md rename to skills/hash-stamp/audit/spec.md diff --git a/hash-stamp/audit/spec.md.sha256 b/skills/hash-stamp/audit/spec.md.sha256 similarity index 100% rename from hash-stamp/audit/spec.md.sha256 rename to skills/hash-stamp/audit/spec.md.sha256 diff --git a/hash-stamp/audit/uncompressed.md b/skills/hash-stamp/audit/uncompressed.md similarity index 100% rename from hash-stamp/audit/uncompressed.md rename to skills/hash-stamp/audit/uncompressed.md diff --git a/hash-stamp/audit/uncompressed.md.sha256 b/skills/hash-stamp/audit/uncompressed.md.sha256 similarity index 100% rename from hash-stamp/audit/uncompressed.md.sha256 rename to skills/hash-stamp/audit/uncompressed.md.sha256 diff --git a/hash-stamp/skill.index b/skills/hash-stamp/skill.index similarity index 100% rename from hash-stamp/skill.index rename to skills/hash-stamp/skill.index diff --git a/hash-stamp/skill.index.md b/skills/hash-stamp/skill.index.md similarity index 100% rename from hash-stamp/skill.index.md rename to skills/hash-stamp/skill.index.md diff --git a/hash-stamp/skill.index.sha256 b/skills/hash-stamp/skill.index.sha256 similarity index 100% rename from hash-stamp/skill.index.sha256 rename to skills/hash-stamp/skill.index.sha256 diff --git a/hash-stamp/spec.md b/skills/hash-stamp/spec.md similarity index 100% rename from hash-stamp/spec.md rename to skills/hash-stamp/spec.md diff --git a/hash-stamp/spec.md.sha256 b/skills/hash-stamp/spec.md.sha256 similarity index 100% rename from hash-stamp/spec.md.sha256 rename to skills/hash-stamp/spec.md.sha256 diff --git a/hash-stamp/stamp/SKILL.md b/skills/hash-stamp/stamp/SKILL.md similarity index 100% rename from hash-stamp/stamp/SKILL.md rename to skills/hash-stamp/stamp/SKILL.md diff --git a/hash-stamp/stamp/SKILL.md.sha256 b/skills/hash-stamp/stamp/SKILL.md.sha256 similarity index 100% rename from hash-stamp/stamp/SKILL.md.sha256 rename to skills/hash-stamp/stamp/SKILL.md.sha256 diff --git a/hash-stamp/stamp/instructions.txt b/skills/hash-stamp/stamp/instructions.txt similarity index 100% rename from hash-stamp/stamp/instructions.txt rename to skills/hash-stamp/stamp/instructions.txt diff --git a/hash-stamp/stamp/instructions.txt.sha256 b/skills/hash-stamp/stamp/instructions.txt.sha256 similarity index 100% rename from hash-stamp/stamp/instructions.txt.sha256 rename to skills/hash-stamp/stamp/instructions.txt.sha256 diff --git a/hash-stamp/stamp/spec.md b/skills/hash-stamp/stamp/spec.md similarity index 100% rename from hash-stamp/stamp/spec.md rename to skills/hash-stamp/stamp/spec.md diff --git a/hash-stamp/stamp/spec.md.sha256 b/skills/hash-stamp/stamp/spec.md.sha256 similarity index 100% rename from hash-stamp/stamp/spec.md.sha256 rename to skills/hash-stamp/stamp/spec.md.sha256 diff --git a/hash-stamp/stamp/uncompressed.md b/skills/hash-stamp/stamp/uncompressed.md similarity index 100% rename from hash-stamp/stamp/uncompressed.md rename to skills/hash-stamp/stamp/uncompressed.md diff --git a/hash-stamp/stamp/uncompressed.md.sha256 b/skills/hash-stamp/stamp/uncompressed.md.sha256 similarity index 100% rename from hash-stamp/stamp/uncompressed.md.sha256 rename to skills/hash-stamp/stamp/uncompressed.md.sha256 diff --git a/hash-stamp/uncompressed.md b/skills/hash-stamp/uncompressed.md similarity index 100% rename from hash-stamp/uncompressed.md rename to skills/hash-stamp/uncompressed.md diff --git a/hash-stamp/uncompressed.md.sha256 b/skills/hash-stamp/uncompressed.md.sha256 similarity index 100% rename from hash-stamp/uncompressed.md.sha256 rename to skills/hash-stamp/uncompressed.md.sha256 diff --git a/markdown-hygiene/SKILL.md b/skills/markdown-hygiene/SKILL.md similarity index 100% rename from markdown-hygiene/SKILL.md rename to skills/markdown-hygiene/SKILL.md diff --git a/markdown-hygiene/SKILL.md.sha256 b/skills/markdown-hygiene/SKILL.md.sha256 similarity index 100% rename from markdown-hygiene/SKILL.md.sha256 rename to skills/markdown-hygiene/SKILL.md.sha256 diff --git a/markdown-hygiene/instructions.txt b/skills/markdown-hygiene/instructions.txt similarity index 100% rename from markdown-hygiene/instructions.txt rename to skills/markdown-hygiene/instructions.txt diff --git a/markdown-hygiene/instructions.txt.sha256 b/skills/markdown-hygiene/instructions.txt.sha256 similarity index 100% rename from markdown-hygiene/instructions.txt.sha256 rename to skills/markdown-hygiene/instructions.txt.sha256 diff --git a/markdown-hygiene/instructions.uncompressed.md b/skills/markdown-hygiene/instructions.uncompressed.md similarity index 100% rename from markdown-hygiene/instructions.uncompressed.md rename to skills/markdown-hygiene/instructions.uncompressed.md diff --git a/markdown-hygiene/instructions.uncompressed.md.sha256 b/skills/markdown-hygiene/instructions.uncompressed.md.sha256 similarity index 100% rename from markdown-hygiene/instructions.uncompressed.md.sha256 rename to skills/markdown-hygiene/instructions.uncompressed.md.sha256 diff --git a/markdown-hygiene/spec.md b/skills/markdown-hygiene/spec.md similarity index 81% rename from markdown-hygiene/spec.md rename to skills/markdown-hygiene/spec.md index 26bd800c..7465461d 100644 --- a/markdown-hygiene/spec.md +++ b/skills/markdown-hygiene/spec.md @@ -91,15 +91,11 @@ Remaining: M errors (manual fix required) ## Constraints -- The dispatch agent must not invoke, recommend, or install any specific - external tool. It uses built-in tools and agent intelligence only. - "markdownlint" here refers to the rule set, not any CLI package. -- Never suggest installing anything — if tooling is not already present - in the caller's environment, dispatch this skill rather than installing. -- If the calling environment already has linting tooling in place - (e.g. an active IDE markdown extension, a CLI linter already installed), - using that directly is preferred over dispatching — it saves tokens - and avoids LLM-based parsing. `tooling.md` (co-located) lists options. +- Do not recommend, install, or invoke specific external + tools (e.g. npx, markdownlint-cli2). Use available + built-in tools and agent intelligence to identify and + fix violations. "markdownlint" here refers to the rule + set, not a specific CLI package. - Never suppress rules — fix them - Never modify content meaning — only formatting - Never introduce new violations while fixing others (e.g., diff --git a/skills/markdown-hygiene/spec.md.sha256 b/skills/markdown-hygiene/spec.md.sha256 new file mode 100644 index 00000000..e0256546 --- /dev/null +++ b/skills/markdown-hygiene/spec.md.sha256 @@ -0,0 +1 @@ +35d728e1b182fdd3747a49e5bd609c3a8f4ebf367a04635dd7dce9ebddeef3dc diff --git a/markdown-hygiene/tooling.md b/skills/markdown-hygiene/tooling.md similarity index 100% rename from markdown-hygiene/tooling.md rename to skills/markdown-hygiene/tooling.md diff --git a/markdown-hygiene/uncompressed.md b/skills/markdown-hygiene/uncompressed.md similarity index 100% rename from markdown-hygiene/uncompressed.md rename to skills/markdown-hygiene/uncompressed.md diff --git a/markdown-hygiene/uncompressed.md.sha256 b/skills/markdown-hygiene/uncompressed.md.sha256 similarity index 100% rename from markdown-hygiene/uncompressed.md.sha256 rename to skills/markdown-hygiene/uncompressed.md.sha256 diff --git a/session-logging/SKILL.md b/skills/session-logging/SKILL.md similarity index 100% rename from session-logging/SKILL.md rename to skills/session-logging/SKILL.md diff --git a/skill-auditing/SKILL.md b/skills/skill-auditing/SKILL.md similarity index 100% rename from skill-auditing/SKILL.md rename to skills/skill-auditing/SKILL.md diff --git a/skill-auditing/SKILL.md.sha256 b/skills/skill-auditing/SKILL.md.sha256 similarity index 100% rename from skill-auditing/SKILL.md.sha256 rename to skills/skill-auditing/SKILL.md.sha256 diff --git a/skill-auditing/instructions.txt b/skills/skill-auditing/instructions.txt similarity index 84% rename from skill-auditing/instructions.txt rename to skills/skill-auditing/instructions.txt index 5ca724a4..976f8250 100644 --- a/skill-auditing/instructions.txt +++ b/skills/skill-auditing/instructions.txt @@ -19,7 +19,7 @@ Phase 2 — Skill Smoke Check: quick structural verification. 2. Inline/dispatch file consistency — file presence is definitive: any allowed dispatch instruction file (`instructions.txt`, `.md` in skill dir, or file referenced by SKILL.md) → dispatch; none → inline. If Check #1 and this disagree, flag conflict as finding, don't double-fail. Dispatch: verify SKILL.md is short routing card (see Check #3). Inline: verify SKILL.md has full procedure. Mismatch between file-system evidence and SKILL.md structure → FAIL. 3. Structure: Inline: frontmatter (`name`, `description`), direct instructions, self-contained. - Dispatch: instruction file exists and reachable; params typed (required/optional/defaults); output format specified; uses Dispatch agent (isolated), not background agent; SKILL.md is minimal routing content. + Dispatch: SKILL.md should be minimal lines routing content; instruction file exists and reachable; params typed (required/optional/defaults); output format specified; uses Dispatch agent (isolated), not background agent. `--uncompressed` mode dispatch: skip routing-card length constraint; verify full procedure content present instead. Stop gates in routing card (dispatch only): refusal conditions, eligibility guards, git-clean checks, path-escape rules in SKILL.md → NEEDS_REVISION. Finding: `stop gates belong in instructions.txt, not the routing card`. 4. Frontmatter — `name` and `description` present and accurate. 5. No duplication — not duplicating existing capability; if similar exists, recommend merge or distinguish. @@ -29,13 +29,13 @@ Phase 3 — Spec Compliance Audit: deep verification SKILL.md faithfully represe 1. Coverage — every normative req in spec represented in SKILL.md. Missing → FAIL. 2. No contradictions — SKILL.md mustn't contradict spec. Spec authoritative; SKILL.md subordinate. 3. No unauthorized additions — SKILL.md mustn't introduce normative reqs not in spec. -4. Conciseness — every line affects runtime behavior; no rationale (belongs in spec); no redundant explanations; agent-facing density. Named finding patterns: "too much why" (prose explaining why a rule exists → move to spec); "essay not reference card" (continuous prose instead of decision trees/tables); "prose conditionals" (if/else in prose → replace with decision tree or table); "meta-architectural label" (any line describing the skill's own execution pattern rather than instructing the agent — e.g. "this is an inline skill", "must not dispatch", "Worker runs directly" → these are design rationale, not instructions; the agent follows instructions as written and does not need to know its classification or be told what not to do; finding text: `meta-architectural label — remove, this is design rationale`). A skill passes only if an agent can skim it and know exactly what to do. +4. Conciseness (`standard` mode only; `--uncompressed` mode: skip) — Every line affects runtime behavior; no rationale (belongs in spec); no redundant explanations; agent-facing density. Named finding patterns: "too much why" (prose explaining why a rule exists → move to spec); "essay not reference card" (continuous prose instead of decision trees/tables); "prose conditionals" (if/else in prose → replace with decision tree or table). A skill passes only if an agent can skim it and know exactly what to do. 5. Completeness — all runtime instructions present; no implicit assumptions; edge cases addressed or excluded; defaults stated. 6. Breadcrumbs — ends with related skills/topics; references valid (targets exist); no stale references. 7. Cost analysis (dispatch only) — `--uncompressed` mode: SKIP. Uses Dispatch agent (zero-context isolation); instruction file <500 lines; sub-skills by pointer, not inlined; single dispatch turn when possible. 8. Markdown hygiene — report no errors on every `.md` file in skill dir. 9. No dispatch refs in instructions — `instructions.txt` mustn't tell agent to dispatch other skills; subagents can't dispatch, only host agent can; "Related" context refs OK; "run this skill"/"dispatch this" → FAIL; remediation: move dispatch steps to SKILL.md. -10. No spec breadcrumbs in runtime — SKILL.md and `instructions.txt` mustn't reference skill's own companion `spec.md` (pointer, breadcrumb, "see spec.md"); compressed runtime is self-contained. Exception: skills operating on specs as input (`spec-auditing`, `skill-auditing`) may reference spec under audit, never their own. Remediation: delete reference; if info genuinely needed at runtime, inline it. +10. No spec breadcrumbs in runtime — `--uncompressed` mode: SKIP. SKILL.md and `instructions.txt` mustn't reference skill's own companion `spec.md` (pointer, breadcrumb, "see spec.md"); compressed runtime is self-contained. Exception: skills operating on specs as input (`spec-auditing`, `skill-auditing`) may reference spec under audit, never their own. Remediation: delete reference; if info genuinely needed at runtime, inline it. Verdict Rules: PASS: all 3 phases pass. diff --git a/skills/skill-auditing/instructions.txt.sha256 b/skills/skill-auditing/instructions.txt.sha256 new file mode 100644 index 00000000..3a2f8024 --- /dev/null +++ b/skills/skill-auditing/instructions.txt.sha256 @@ -0,0 +1 @@ +25ff17dc4f5b7d8a1b1e20573c9e99654553d02884a914daf7b334d8f7b34221 instructions.txt \ No newline at end of file diff --git a/skill-auditing/instructions.uncompressed.md b/skills/skill-auditing/instructions.uncompressed.md similarity index 96% rename from skill-auditing/instructions.uncompressed.md rename to skills/skill-auditing/instructions.uncompressed.md index 6cc24c7e..59f4f876 100644 --- a/skill-auditing/instructions.uncompressed.md +++ b/skills/skill-auditing/instructions.uncompressed.md @@ -146,13 +146,6 @@ Named finding patterns to flag: - **"Prose conditionals"**: if/else logic written as prose paragraphs instead of a decision tree or table. Finding text: `replace prose conditionals with decision tree or table`. -- **"Meta-architectural label"**: any line describing the skill's own execution - pattern rather than instructing the agent what to do. Meta-architectural - labels are design rationale and must be flagged. Examples: "this is an inline - skill", "must not dispatch", "Worker runs directly". The agent follows - instructions as written — it does not need to know its classification or be - told what not to do. Finding text: `meta-architectural label — remove, this is - design rationale`. A skill passes conciseness only if an agent can skim it in one pass and know exactly what to do — no hunting through paragraphs for the operative rule. diff --git a/skills/skill-auditing/instructions.uncompressed.md.sha256 b/skills/skill-auditing/instructions.uncompressed.md.sha256 new file mode 100644 index 00000000..fc4b499a --- /dev/null +++ b/skills/skill-auditing/instructions.uncompressed.md.sha256 @@ -0,0 +1 @@ +07b257a45094b847046c2db607152df55556377fcddb7a8a47985b80a811e2c7 instructions.uncompressed.md \ No newline at end of file diff --git a/skill-auditing/spec.md b/skills/skill-auditing/spec.md similarity index 100% rename from skill-auditing/spec.md rename to skills/skill-auditing/spec.md diff --git a/skill-auditing/spec.md.sha256 b/skills/skill-auditing/spec.md.sha256 similarity index 100% rename from skill-auditing/spec.md.sha256 rename to skills/skill-auditing/spec.md.sha256 diff --git a/skill-auditing/uncompressed.md b/skills/skill-auditing/uncompressed.md similarity index 100% rename from skill-auditing/uncompressed.md rename to skills/skill-auditing/uncompressed.md diff --git a/skill-auditing/uncompressed.md.sha256 b/skills/skill-auditing/uncompressed.md.sha256 similarity index 100% rename from skill-auditing/uncompressed.md.sha256 rename to skills/skill-auditing/uncompressed.md.sha256 diff --git a/skill-index/SKILL.md b/skills/skill-index/SKILL.md similarity index 100% rename from skill-index/SKILL.md rename to skills/skill-index/SKILL.md diff --git a/skill-index/SKILL.md.sha256 b/skills/skill-index/SKILL.md.sha256 similarity index 100% rename from skill-index/SKILL.md.sha256 rename to skills/skill-index/SKILL.md.sha256 diff --git a/skill-index/skill-index-auditing/SKILL.md b/skills/skill-index/skill-index-auditing/SKILL.md similarity index 100% rename from skill-index/skill-index-auditing/SKILL.md rename to skills/skill-index/skill-index-auditing/SKILL.md diff --git a/skill-index/skill-index-auditing/SKILL.md.sha256 b/skills/skill-index/skill-index-auditing/SKILL.md.sha256 similarity index 100% rename from skill-index/skill-index-auditing/SKILL.md.sha256 rename to skills/skill-index/skill-index-auditing/SKILL.md.sha256 diff --git a/skill-index/skill-index-auditing/instructions.txt b/skills/skill-index/skill-index-auditing/instructions.txt similarity index 100% rename from skill-index/skill-index-auditing/instructions.txt rename to skills/skill-index/skill-index-auditing/instructions.txt diff --git a/skill-index/skill-index-auditing/instructions.txt.sha256 b/skills/skill-index/skill-index-auditing/instructions.txt.sha256 similarity index 100% rename from skill-index/skill-index-auditing/instructions.txt.sha256 rename to skills/skill-index/skill-index-auditing/instructions.txt.sha256 diff --git a/skill-index/skill-index-auditing/instructions.uncompressed.md b/skills/skill-index/skill-index-auditing/instructions.uncompressed.md similarity index 100% rename from skill-index/skill-index-auditing/instructions.uncompressed.md rename to skills/skill-index/skill-index-auditing/instructions.uncompressed.md diff --git a/skill-index/skill-index-auditing/instructions.uncompressed.md.sha256 b/skills/skill-index/skill-index-auditing/instructions.uncompressed.md.sha256 similarity index 100% rename from skill-index/skill-index-auditing/instructions.uncompressed.md.sha256 rename to skills/skill-index/skill-index-auditing/instructions.uncompressed.md.sha256 diff --git a/skill-index/skill-index-auditing/spec.md b/skills/skill-index/skill-index-auditing/spec.md similarity index 100% rename from skill-index/skill-index-auditing/spec.md rename to skills/skill-index/skill-index-auditing/spec.md diff --git a/skill-index/skill-index-auditing/spec.md.sha256 b/skills/skill-index/skill-index-auditing/spec.md.sha256 similarity index 100% rename from skill-index/skill-index-auditing/spec.md.sha256 rename to skills/skill-index/skill-index-auditing/spec.md.sha256 diff --git a/skill-index/skill-index-auditing/uncompressed.md b/skills/skill-index/skill-index-auditing/uncompressed.md similarity index 100% rename from skill-index/skill-index-auditing/uncompressed.md rename to skills/skill-index/skill-index-auditing/uncompressed.md diff --git a/skill-index/skill-index-auditing/uncompressed.md.sha256 b/skills/skill-index/skill-index-auditing/uncompressed.md.sha256 similarity index 100% rename from skill-index/skill-index-auditing/uncompressed.md.sha256 rename to skills/skill-index/skill-index-auditing/uncompressed.md.sha256 diff --git a/skill-index/skill-index-building/SKILL.md b/skills/skill-index/skill-index-building/SKILL.md similarity index 100% rename from skill-index/skill-index-building/SKILL.md rename to skills/skill-index/skill-index-building/SKILL.md diff --git a/skill-index/skill-index-building/SKILL.md.sha256 b/skills/skill-index/skill-index-building/SKILL.md.sha256 similarity index 100% rename from skill-index/skill-index-building/SKILL.md.sha256 rename to skills/skill-index/skill-index-building/SKILL.md.sha256 diff --git a/skill-index/skill-index-building/instructions.txt b/skills/skill-index/skill-index-building/instructions.txt similarity index 100% rename from skill-index/skill-index-building/instructions.txt rename to skills/skill-index/skill-index-building/instructions.txt diff --git a/skill-index/skill-index-building/instructions.txt.sha256 b/skills/skill-index/skill-index-building/instructions.txt.sha256 similarity index 100% rename from skill-index/skill-index-building/instructions.txt.sha256 rename to skills/skill-index/skill-index-building/instructions.txt.sha256 diff --git a/skill-index/skill-index-building/instructions.uncompressed.md b/skills/skill-index/skill-index-building/instructions.uncompressed.md similarity index 100% rename from skill-index/skill-index-building/instructions.uncompressed.md rename to skills/skill-index/skill-index-building/instructions.uncompressed.md diff --git a/skill-index/skill-index-building/instructions.uncompressed.md.sha256 b/skills/skill-index/skill-index-building/instructions.uncompressed.md.sha256 similarity index 100% rename from skill-index/skill-index-building/instructions.uncompressed.md.sha256 rename to skills/skill-index/skill-index-building/instructions.uncompressed.md.sha256 diff --git a/skill-index/skill-index-building/spec.md b/skills/skill-index/skill-index-building/spec.md similarity index 100% rename from skill-index/skill-index-building/spec.md rename to skills/skill-index/skill-index-building/spec.md diff --git a/skill-index/skill-index-building/spec.md.sha256 b/skills/skill-index/skill-index-building/spec.md.sha256 similarity index 100% rename from skill-index/skill-index-building/spec.md.sha256 rename to skills/skill-index/skill-index-building/spec.md.sha256 diff --git a/skill-index/skill-index-building/uncompressed.md b/skills/skill-index/skill-index-building/uncompressed.md similarity index 100% rename from skill-index/skill-index-building/uncompressed.md rename to skills/skill-index/skill-index-building/uncompressed.md diff --git a/skill-index/skill-index-building/uncompressed.md.sha256 b/skills/skill-index/skill-index-building/uncompressed.md.sha256 similarity index 100% rename from skill-index/skill-index-building/uncompressed.md.sha256 rename to skills/skill-index/skill-index-building/uncompressed.md.sha256 diff --git a/skill-index/skill-index-crawling/SKILL.md b/skills/skill-index/skill-index-crawling/SKILL.md similarity index 100% rename from skill-index/skill-index-crawling/SKILL.md rename to skills/skill-index/skill-index-crawling/SKILL.md diff --git a/skill-index/skill-index-crawling/SKILL.md.sha256 b/skills/skill-index/skill-index-crawling/SKILL.md.sha256 similarity index 100% rename from skill-index/skill-index-crawling/SKILL.md.sha256 rename to skills/skill-index/skill-index-crawling/SKILL.md.sha256 diff --git a/skill-index/skill-index-crawling/instructions.txt b/skills/skill-index/skill-index-crawling/instructions.txt similarity index 100% rename from skill-index/skill-index-crawling/instructions.txt rename to skills/skill-index/skill-index-crawling/instructions.txt diff --git a/skill-index/skill-index-crawling/instructions.txt.sha256 b/skills/skill-index/skill-index-crawling/instructions.txt.sha256 similarity index 100% rename from skill-index/skill-index-crawling/instructions.txt.sha256 rename to skills/skill-index/skill-index-crawling/instructions.txt.sha256 diff --git a/skill-index/skill-index-crawling/instructions.uncompressed.md b/skills/skill-index/skill-index-crawling/instructions.uncompressed.md similarity index 100% rename from skill-index/skill-index-crawling/instructions.uncompressed.md rename to skills/skill-index/skill-index-crawling/instructions.uncompressed.md diff --git a/skill-index/skill-index-crawling/instructions.uncompressed.md.sha256 b/skills/skill-index/skill-index-crawling/instructions.uncompressed.md.sha256 similarity index 100% rename from skill-index/skill-index-crawling/instructions.uncompressed.md.sha256 rename to skills/skill-index/skill-index-crawling/instructions.uncompressed.md.sha256 diff --git a/skill-index/skill-index-crawling/spec.md b/skills/skill-index/skill-index-crawling/spec.md similarity index 100% rename from skill-index/skill-index-crawling/spec.md rename to skills/skill-index/skill-index-crawling/spec.md diff --git a/skill-index/skill-index-crawling/spec.md.sha256 b/skills/skill-index/skill-index-crawling/spec.md.sha256 similarity index 100% rename from skill-index/skill-index-crawling/spec.md.sha256 rename to skills/skill-index/skill-index-crawling/spec.md.sha256 diff --git a/skill-index/skill-index-crawling/uncompressed.md b/skills/skill-index/skill-index-crawling/uncompressed.md similarity index 100% rename from skill-index/skill-index-crawling/uncompressed.md rename to skills/skill-index/skill-index-crawling/uncompressed.md diff --git a/skill-index/skill-index-crawling/uncompressed.md.sha256 b/skills/skill-index/skill-index-crawling/uncompressed.md.sha256 similarity index 100% rename from skill-index/skill-index-crawling/uncompressed.md.sha256 rename to skills/skill-index/skill-index-crawling/uncompressed.md.sha256 diff --git a/skill-index/skill-index-integration/SKILL.md b/skills/skill-index/skill-index-integration/SKILL.md similarity index 100% rename from skill-index/skill-index-integration/SKILL.md rename to skills/skill-index/skill-index-integration/SKILL.md diff --git a/skill-index/skill-index-integration/SKILL.md.sha256 b/skills/skill-index/skill-index-integration/SKILL.md.sha256 similarity index 100% rename from skill-index/skill-index-integration/SKILL.md.sha256 rename to skills/skill-index/skill-index-integration/SKILL.md.sha256 diff --git a/skill-index/skill-index-integration/spec.md b/skills/skill-index/skill-index-integration/spec.md similarity index 100% rename from skill-index/skill-index-integration/spec.md rename to skills/skill-index/skill-index-integration/spec.md diff --git a/skill-index/skill.index b/skills/skill-index/skill.index similarity index 100% rename from skill-index/skill.index rename to skills/skill-index/skill.index diff --git a/skill-index/skill.index.md b/skills/skill-index/skill.index.md similarity index 100% rename from skill-index/skill.index.md rename to skills/skill-index/skill.index.md diff --git a/skill-index/skill.index.md.sha256 b/skills/skill-index/skill.index.md.sha256 similarity index 100% rename from skill-index/skill.index.md.sha256 rename to skills/skill-index/skill.index.md.sha256 diff --git a/skill-index/skill.index.sha256 b/skills/skill-index/skill.index.sha256 similarity index 100% rename from skill-index/skill.index.sha256 rename to skills/skill-index/skill.index.sha256 diff --git a/skill-index/spec.md b/skills/skill-index/spec.md similarity index 100% rename from skill-index/spec.md rename to skills/skill-index/spec.md diff --git a/skill-index/spec.md.sha256 b/skills/skill-index/spec.md.sha256 similarity index 100% rename from skill-index/spec.md.sha256 rename to skills/skill-index/spec.md.sha256 diff --git a/skill-index/uncompressed.md b/skills/skill-index/uncompressed.md similarity index 100% rename from skill-index/uncompressed.md rename to skills/skill-index/uncompressed.md diff --git a/skill-index/uncompressed.md.sha256 b/skills/skill-index/uncompressed.md.sha256 similarity index 100% rename from skill-index/uncompressed.md.sha256 rename to skills/skill-index/uncompressed.md.sha256 diff --git a/skill-writing/SKILL.md b/skills/skill-writing/SKILL.md similarity index 100% rename from skill-writing/SKILL.md rename to skills/skill-writing/SKILL.md diff --git a/skill-writing/SKILL.md.sha256 b/skills/skill-writing/SKILL.md.sha256 similarity index 100% rename from skill-writing/SKILL.md.sha256 rename to skills/skill-writing/SKILL.md.sha256 diff --git a/skill-writing/spec.md b/skills/skill-writing/spec.md similarity index 100% rename from skill-writing/spec.md rename to skills/skill-writing/spec.md diff --git a/skill-writing/spec.md.sha256 b/skills/skill-writing/spec.md.sha256 similarity index 100% rename from skill-writing/spec.md.sha256 rename to skills/skill-writing/spec.md.sha256 diff --git a/skill-writing/uncompressed.md b/skills/skill-writing/uncompressed.md similarity index 100% rename from skill-writing/uncompressed.md rename to skills/skill-writing/uncompressed.md diff --git a/skill-writing/uncompressed.md.sha256 b/skills/skill-writing/uncompressed.md.sha256 similarity index 100% rename from skill-writing/uncompressed.md.sha256 rename to skills/skill-writing/uncompressed.md.sha256 diff --git a/skills/skill.index b/skills/skill.index new file mode 100644 index 00000000..d6f07a1f --- /dev/null +++ b/skills/skill.index @@ -0,0 +1,15 @@ +audit-reporting: audit report output, report file convention, output path, audit report location +code-review: code review, review code, review diff, review PR, find findings, check code, another agent's code +compression: compress, compress markdown, compress text, shrink, condense, reduce tokens, smaller budget +dispatch: dispatch agent, subagent, background agent, foreground agent, model choice, how to dispatch +gh-cli/: github, gh, pr, pull request, issue, release, repo, workflow, actions, api, github cli +hash-stamp/: verify stamp, check sha256, stamp mismatch, write stamp, update sha256, hash drift, stamp integrity, restamp, file changed +markdown-hygiene: markdown, fix markdown, clean markdown, well formatted markdown, markdown formatting +session-logging: log session, session log, telegram log, interaction log, record session, session entry +skill-auditing: audit skill, review skill, evaluate skill, skill quality, skill drift, check skill +skill-index/: skill index, per-directory index, cascading index, agent skill discovery, find skill +skill-writing: write skill, create skill, author skill, new skill, writing a skill +spec-auditing: audit spec, verify spec, check spec, spec drift, validate spec, review spec, spec changed +spec-writing: write spec, create spec, author spec, specify, specification, requirements, new spec +tool-auditing: audit tool, review script, check tool, script audit, tool quality +tool-writing: write tool, create tool, author script, new script, bash script, powershell script, automate workflow diff --git a/skills/skill.index.md b/skills/skill.index.md new file mode 100644 index 00000000..a356b482 --- /dev/null +++ b/skills/skill.index.md @@ -0,0 +1,61 @@ +# electrified-cortex skills + +## audit-reporting + +Defines where and how audit skills write report files — applied inline when producing output from any audit skill. + +## code-review + +Comprehensive review of a diff — your change, another agent's, or an outside PR. Output is findings; fixes are yours to apply. + +## compression + +Shrinks a markdown or text file without losing meaning. Common use: a skill that is too long to load cheaply. + +## dispatch + +How to dispatch another agent well — when to, which model, prompt shape, known failure modes. + +## gh-cli + +All GitHub operations — pull requests, issues, Actions, releases, repos, API. + +## hash-stamp + +SHA-256 integrity stamp suite — verify whether stamped files have drifted (audit) or write/update `.sha256` companions after edits (stamp). + +## markdown-hygiene + +Fix any formatting problems in a markdown file without changing the content itself. + +## session-logging + +Standards for creating session log entries — where they go, what they contain, when to write them. + +## skill-auditing + +Evaluates a skill — is it well-written, on-spec, correctly classified. Read-only output. + +## skill-index + +Cascading per-directory index system — lets agents discover skills without walking the filesystem. + +## skill-writing + +Read before writing or authoring any skill. Skills drift in style over time; do not copy an existing one as a template. + +## spec-auditing + +Verify a spec still holds up — after you wrote or changed it, or after its subject changed. + +## spec-writing + +Authoring a new spec — requirements before implementation, phrased so they are actually verifiable. + +## tool-auditing + +Check a Bash or PowerShell script against conventions — error handling, path safety, no interactive prompts. + +## tool-writing + +Writing a Bash or PowerShell script — argument parsing, exit codes, structured output. diff --git a/skills/skill.index.sha256 b/skills/skill.index.sha256 new file mode 100644 index 00000000..83a8eda4 --- /dev/null +++ b/skills/skill.index.sha256 @@ -0,0 +1 @@ +9442fa0428ccd34a947fb083382825bc53a87a9bf81171828908e6b216bec24b diff --git a/spec-auditing/SKILL.md b/skills/spec-auditing/SKILL.md similarity index 100% rename from spec-auditing/SKILL.md rename to skills/spec-auditing/SKILL.md diff --git a/spec-auditing/SKILL.md.sha256 b/skills/spec-auditing/SKILL.md.sha256 similarity index 100% rename from spec-auditing/SKILL.md.sha256 rename to skills/spec-auditing/SKILL.md.sha256 diff --git a/spec-auditing/instructions.txt b/skills/spec-auditing/instructions.txt similarity index 100% rename from spec-auditing/instructions.txt rename to skills/spec-auditing/instructions.txt diff --git a/spec-auditing/instructions.txt.sha256 b/skills/spec-auditing/instructions.txt.sha256 similarity index 100% rename from spec-auditing/instructions.txt.sha256 rename to skills/spec-auditing/instructions.txt.sha256 diff --git a/spec-auditing/instructions.uncompressed.md b/skills/spec-auditing/instructions.uncompressed.md similarity index 100% rename from spec-auditing/instructions.uncompressed.md rename to skills/spec-auditing/instructions.uncompressed.md diff --git a/spec-auditing/instructions.uncompressed.md.sha256 b/skills/spec-auditing/instructions.uncompressed.md.sha256 similarity index 100% rename from spec-auditing/instructions.uncompressed.md.sha256 rename to skills/spec-auditing/instructions.uncompressed.md.sha256 diff --git a/spec-auditing/spec.md b/skills/spec-auditing/spec.md similarity index 100% rename from spec-auditing/spec.md rename to skills/spec-auditing/spec.md diff --git a/spec-auditing/spec.md.sha256 b/skills/spec-auditing/spec.md.sha256 similarity index 100% rename from spec-auditing/spec.md.sha256 rename to skills/spec-auditing/spec.md.sha256 diff --git a/spec-auditing/uncompressed.md b/skills/spec-auditing/uncompressed.md similarity index 100% rename from spec-auditing/uncompressed.md rename to skills/spec-auditing/uncompressed.md diff --git a/spec-auditing/uncompressed.md.sha256 b/skills/spec-auditing/uncompressed.md.sha256 similarity index 100% rename from spec-auditing/uncompressed.md.sha256 rename to skills/spec-auditing/uncompressed.md.sha256 diff --git a/spec-writing/.markdownlint.json b/skills/spec-writing/.markdownlint.json similarity index 100% rename from spec-writing/.markdownlint.json rename to skills/spec-writing/.markdownlint.json diff --git a/spec-writing/SKILL.md b/skills/spec-writing/SKILL.md similarity index 100% rename from spec-writing/SKILL.md rename to skills/spec-writing/SKILL.md diff --git a/spec-writing/SKILL.md.sha256 b/skills/spec-writing/SKILL.md.sha256 similarity index 100% rename from spec-writing/SKILL.md.sha256 rename to skills/spec-writing/SKILL.md.sha256 diff --git a/spec-writing/audit-haiku-1.md b/skills/spec-writing/audit-haiku-1.md similarity index 100% rename from spec-writing/audit-haiku-1.md rename to skills/spec-writing/audit-haiku-1.md diff --git a/spec-writing/audit-haiku-2.md b/skills/spec-writing/audit-haiku-2.md similarity index 100% rename from spec-writing/audit-haiku-2.md rename to skills/spec-writing/audit-haiku-2.md diff --git a/spec-writing/spec.md b/skills/spec-writing/spec.md similarity index 100% rename from spec-writing/spec.md rename to skills/spec-writing/spec.md diff --git a/spec-writing/spec.md.sha256 b/skills/spec-writing/spec.md.sha256 similarity index 100% rename from spec-writing/spec.md.sha256 rename to skills/spec-writing/spec.md.sha256 diff --git a/spec-writing/uncompressed.md b/skills/spec-writing/uncompressed.md similarity index 100% rename from spec-writing/uncompressed.md rename to skills/spec-writing/uncompressed.md diff --git a/spec-writing/uncompressed.md.sha256 b/skills/spec-writing/uncompressed.md.sha256 similarity index 100% rename from spec-writing/uncompressed.md.sha256 rename to skills/spec-writing/uncompressed.md.sha256 diff --git a/tool-auditing/SKILL.md b/skills/tool-auditing/SKILL.md similarity index 100% rename from tool-auditing/SKILL.md rename to skills/tool-auditing/SKILL.md diff --git a/tool-auditing/SKILL.md.sha256 b/skills/tool-auditing/SKILL.md.sha256 similarity index 100% rename from tool-auditing/SKILL.md.sha256 rename to skills/tool-auditing/SKILL.md.sha256 diff --git a/tool-auditing/spec.md b/skills/tool-auditing/spec.md similarity index 100% rename from tool-auditing/spec.md rename to skills/tool-auditing/spec.md diff --git a/tool-auditing/spec.md.sha256 b/skills/tool-auditing/spec.md.sha256 similarity index 100% rename from tool-auditing/spec.md.sha256 rename to skills/tool-auditing/spec.md.sha256 diff --git a/tool-writing/SKILL.md b/skills/tool-writing/SKILL.md similarity index 100% rename from tool-writing/SKILL.md rename to skills/tool-writing/SKILL.md diff --git a/tool-writing/SKILL.md.sha256 b/skills/tool-writing/SKILL.md.sha256 similarity index 100% rename from tool-writing/SKILL.md.sha256 rename to skills/tool-writing/SKILL.md.sha256 diff --git a/tool-writing/spec.md b/skills/tool-writing/spec.md similarity index 100% rename from tool-writing/spec.md rename to skills/tool-writing/spec.md diff --git a/tool-writing/spec.md.sha256 b/skills/tool-writing/spec.md.sha256 similarity index 100% rename from tool-writing/spec.md.sha256 rename to skills/tool-writing/spec.md.sha256