Same issue as engineering-team — 46 sub-skill folders stored directly in
the plugin root instead of skills/, making them undiscoverable by Claude Code.
Refs: #538#539#546
Claude Code discovers sub-skills only when they live inside a skills/
subdirectory of the plugin root. The engineering-team plugin stored all
36 sub-skill folders directly in the plugin root, so none of them were
discoverable — users saw zero skills when typing /engineering-skills:.
The executive-mentor plugin in this same repo uses the correct structure
(skills/board-prep/, skills/challenge/, etc.) and works as expected.
This commit brings engineering-skills into alignment with that convention.
Fixes: sub-skills not appearing in Claude Code skill listing
Refs: #538#539#546
Zero-dependency Node.js skill that captures full-page screenshots of web
pages via Chrome DevTools Protocol. Supports SPA scroll container
expansion, lazy-load triggering, DOM stability detection, and tiled
capture for very tall pages. Requires only Node.js 22+ and Chrome with
remote debugging enabled.
- Convert Augment integration from flat .augment/rules/*.md to directory-based .augment/skills/<name>/SKILL.md structure
- Align Augment format with Windsurf and OpenCode skill bundle pattern
- Copy supporting folders (scripts/, references/, templates/) to each Augment skill directory
- Update frontmatter from 'type: auto' to standard 'name' + 'description' fields
- Update README documentation for new directory-based installation path
This change is possible because Augment Code now supports skills in beta, allowing us to move from the flat rules format to full skill bundles. This gives Augment users access to the complete skill ecosystem including Python automation tools and reference documentation, not just the markdown content.
Updated the skill description to emphasize proactive usage and clarified triggers for cost optimization. Enhanced the context and steps for cost auditing, optimization, and architecture design.
The plugin.json configured 'skills': './' which scans the plugin root for SKILL.md files. This found the root SKILL.md (name: 'self-improving-agent') and stopped, preventing Claude Code from discovering the subskills (review, promote, extract, status, remember) in the skills/ subdirectories.
Fix: Move root SKILL.md to skills/self-improving-agent/SKILL.md and update plugin.json to 'skills': './skills/' so Claude Code recursively scans the skills/ directory and discovers all 5 subskills.
This enables the intended /si:review, /si:promote, /si:extract, /si:status, /si:remember slash command routing.
Phases 2+3 of the marketing skills improvement plan. Inspired by patterns
from claude-blog (466 stars) — dual-optimization for Google + AI citation
platforms, quality gates as hard stops, and AI content detection.
content-production additions:
- scripts/content_quality_gates.py — 8 non-negotiable publishing gates:
heading hierarchy, paragraph length (≤150 words), image alt text,
source citations for statistics, title length (50-60 chars), meta
description length (150-160), self-promotion limit (≤1 mention),
freshness signals. Verdicts: PUBLISH / TARGET / BLOCK. Demo included.
- references/ai-citation-readiness.md — how to optimize for AI citation
platforms (Perplexity, ChatGPT, AI Overviews): answer-first paragraphs,
passage-level citability (120-180 word chunks), entity clarity, Q&A
formatting, freshness signals
- references/content-templates.md — 12 content templates (how-to, listicle,
case study, comparison, pillar page, product review, thought leadership,
roundup, tutorial, news analysis, data research, FAQ) with auto-selection
logic based on user intent and target word counts
copy-editing additions:
- scripts/ai_content_detector.py — 3-method AI detection: burstiness
analysis (sentence length CV — human=0.5+, AI=0.2-0.35), vocabulary
diversity (sliding-window TTR — human=0.6+, AI=0.35-0.45), 30 known
AI phrases with density scoring. Composite 0-100: ≤20 LIKELY_HUMAN,
21-50 MIXED, 51+ LIKELY_AI. Includes humanization recommendations.
- references/ai-detection-patterns.md — full explanation of all 3 methods,
threshold tables, the 10 most common AI phrases with replacements,
scoring formula, caveats for technical writing
All scripts stdlib-only, --json + --help + --demo verified.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The agile-product-owner skill was available as part of the product-team
domain bundle but lacked its own .claude-plugin/plugin.json for standalone
installation via `/plugin install agile-product-owner@claude-code-skills`.
Adds:
- product-team/agile-product-owner/.claude-plugin/plugin.json (v2.3.0)
- .claude-plugin/marketplace.json entry (36th plugin, category: product)
Cross-tool availability verified:
- Codex CLI: present in skills-index.json (product category, 16 skills)
- Gemini CLI: present in skills-index.json
- Hermes Agent: discoverable via sync-hermes-skills.py
- Top-level agent: agents/product/cs-agile-product-owner.md exists
Security audit: PASS (0 critical, 0 high)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hermes Agent (github.com/NousResearch/hermes-agent) uses the agentskills.io
standard — the same SKILL.md format with YAML frontmatter that our repo uses.
Both tools expect: name, description, version, license in frontmatter, with
references/, templates/, assets/ subdirectories. No format conversion needed.
Adds scripts/sync-hermes-skills.py which symlinks (or copies) our 198 skills
into ~/.hermes/skills/claude-skills/<domain>/<skill-name>/ where Hermes
discovers them automatically via its skill_view/skills_list tools.
Usage:
python scripts/sync-hermes-skills.py --verbose # full sync
python scripts/sync-hermes-skills.py --domain engineering # one domain
python scripts/sync-hermes-skills.py --copy # copy instead of symlink
python scripts/sync-hermes-skills.py --dry-run # preview
After sync, Hermes users can invoke any of our skills via:
/skills (browse)
/<skill-name> (invoke directly)
Compatibility matrix after this change:
Claude Code — native plugin install
Codex CLI — sync-codex-skills.py
Gemini CLI — sync-gemini-skills.py
OpenClaw — openclaw-install.sh
Hermes Agent — sync-hermes-skills.py (NEW)
Cursor/Aider/etc — scripts/convert.sh
Ref #520
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements Karpathy's 4 coding principles (Think Before Coding, Simplicity
First, Surgical Changes, Goal-Driven Execution) as an active enforcement
plugin, not just passive guidelines. Derived from Karpathy's X post on LLM
coding pitfalls but goes far beyond the source material with automated
detection tools, a review agent, and CI integration patterns.
Differentiator vs forrestchang/andrej-karpathy-skills (prompt-only, single
SKILL.md): this version ships real tooling that DETECTS violations instead
of just documenting principles.
Plugin contents (engineering/karpathy-coder/):
- SKILL.md with `context: fork` for skill chaining
- 4 Python tools (stdlib only):
- complexity_checker.py — cyclomatic complexity, class density, nesting
depth, function length, premature abstractions (Principle #2)
- diff_surgeon.py — diff noise ratio: comment-only changes, whitespace,
style drift, drive-by refactors, quote-style swaps (Principle #3)
- assumption_linter.py — detects "just", "obviously", "should work",
vague actions, unscoped users, missing format specs (Principle #1)
- goal_verifier.py — scores plan steps 0-3 for verification quality,
flags vague criteria, checks for final verification (Principle #4)
- 1 sub-agent: karpathy-reviewer (runs all 4 principles against a diff)
- 1 slash command: /karpathy-check (dispatches the reviewer)
- 1 pre-commit hook: karpathy-gate.sh (non-blocking, warns on violations)
- 3 reference docs: karpathy-principles.md (full context + when to relax),
anti-patterns.md (10+ before/after examples), enforcement-patterns.md
(Husky, pre-commit framework, GitHub Actions CI integration)
- .claude-plugin/plugin.json manifest (v2.3.0)
- Cross-tool compatible: works with any AGENTS.md-based CLI
All 4 scripts verified: --help passes, smoke tests run correctly.
complexity_checker catches its own nesting depth. assumption_linter
correctly flags "just", "obviously", "should work". goal_verifier
correctly scores plans with/without verification steps.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Issue #506 reported that `hooks/hooks.json` used `./hooks/error-capture.sh`
which fails for any session started outside the plugin dir. That specific
file was already fixed in commit 217b199 (which closed#392) — both
`hooks/hooks.json` and `settings.json` already use `${CLAUDE_PLUGIN_ROOT}`.
However, two stale example paths were still surfacing the bug in
documentation:
1. `engineering-team/self-improving-agent/CLAUDE.md` line 74 — "To enable"
example with `./skills/self-improving-agent/hooks/error-capture.sh`
2. `engineering-team/self-improving-agent/hooks/error-capture.sh` header
comment — install example with the same broken path
Both examples would teach users to copy the broken pattern into their own
settings.json, reproducing the exact bug #506 describes.
Fix: rewrite both examples to use `${CLAUDE_PLUGIN_ROOT}/hooks/error-capture.sh`
and add explicit "do not use relative paths" warnings. Also clarify in
CLAUDE.md that manual hook wiring is NOT needed when installing via
`/plugin install` — the hook is registered automatically from the plugin's
hooks.json.
Fixes#506
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bug: after `/plugin install self-improving-agent@claude-code-skills`, only
1 skill appeared and `/si:review`, `/si:promote`, `/si:extract`, `/si:status`,
`/si:remember` were all unknown commands. The 5 sub-skills were silently
registered under the wrong namespace.
Root cause: two issues in the plugin manifest layer.
1. **Slash-command namespace is derived from `.claude-plugin/plugin.json`
`name`**, not from the marketplace entry name, the settings.json name, or
frontmatter. Previous `name: "self-improving-agent"` caused sub-skills to
register as `/self-improving-agent:review` etc — never matching the
documented `/si:*` commands.
2. **`command: /si:<op>` frontmatter in sub-skill SKILL.md files is a
non-standard field** not in the Claude Code Skills spec. Claude Code
silently ignores it. It created the illusion that the commands were being
registered when they were not.
Fix:
- Change `engineering-team/self-improving-agent/.claude-plugin/plugin.json`
`name` from "self-improving-agent" → "si". This is the namespace root; it
does NOT affect the marketplace install identifier (which stays
`self-improving-agent` via the marketplace.json `name` field). After the
fix, skills register as `/si:review`, `/si:promote`, `/si:extract`,
`/si:status`, `/si:remember` — matching the README and CLAUDE.md docs.
- Remove the non-standard `command: /si:<op>` frontmatter line from all 5
sub-skill SKILL.md files (review, promote, extract, status, remember).
Frontmatter now contains only `name` and `description` per the Claude Code
Skills spec.
- Bump plugin.json version 2.1.2 → 2.3.0 to match repo release.
- Update marketplace.json entry: version 2.2.0 → 2.3.0, expand description
to list all 5 slash commands and 2 sub-agents.
OpenClaw compat: the legacy `settings.json` inside the skill directory still
uses `"name": "self-improving-agent"` for OpenClaw's install path. Claude Code
ignores settings.json entirely, so this is safe to leave as-is.
Install flow (unchanged, verified correct after fix):
/plugin marketplace add alirezarezvani/claude-skills
/plugin install self-improving-agent@claude-code-skills
# → 5 skills register as /si:review, /si:promote, /si:extract,
# /si:status, /si:remember
Known related issue (not fixed in this PR to keep scope tight): `agenthub`
has the identical bug. Its plugin.json `name` is "agenthub", so sub-skills
register as `/agenthub:init` rather than the documented `/hub:init`. Same
fix applies: rename plugin.json `name` to "hub". Will file as a follow-up.
Fixes#505
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>