Commit graph

22 commits

Author SHA1 Message Date
Claude
7405298b4b
fix: resolve the actionable reported issues (#954, #949, #933, #931, #969, #968, #924, #885)
- #954: strip non-spec source/attribution keys from all 39 plugin.json
  manifests so Claude Code's validator accepts them; metadata preserved in
  new .claude-plugin/authoring-notes.json sidecars; check_plugin_json.py now
  hard-fails manifests carrying those keys and sanity-checks the sidecar;
  CLAUDE.md ClawHub schema section updated to the new rule.
- #949: move the c-level-agents plugin out of c-level-advisor/ to a
  top-level directory so the two marketplace sources no longer overlap;
  updated marketplace.json source, homepage, descriptions, all
  cross-references, docs, harness manifest, mirror-tree symlinks/indexes,
  and rebased the moved files' relative links; domain counters trued up
  (18 -> 19 domains).
- #933: replace dead links to the gitignored maintainer-local megaprompts/
  tree with annotated plain-text references (44 files: SKILL.md, READMEs,
  agents, commands).
- #931: DynamoDB on-demand pricing updated to post-Nov-2024 rates
  ($0.625/M writes, $0.125/M strongly consistent reads).
- #969: skill_security_auditor.py and the three dossier scripts reconfigure
  stdout/stderr to UTF-8 (errors=replace) so legacy Windows codepages no
  longer crash at print time; PYTHONUTF8=1 documented.
- #968: Windows Notes section in INSTALLATION.md + README pointer for the
  core.symlinks mirror-tree checkout caveat.
- #924/#885 residuals: hook commands quote "${CLAUDE_PLUGIN_ROOT}" paths in
  all plugin hooks.json/settings.json (space-safe roots); removed the stale
  pre-rename status/review mirror symlinks and index entries left over from
  the memory-status/memory-review rename.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
2026-08-21 05:47:37 +00:00
Claude
3349509db4
fix(scripts,plugins): exclude tool-sync dirs from convert.sh; rename si plugin's status/review skills
- convert.sh's SKILL.md finder now excludes .claude, .codex, .codex-plugin,
  .gemini, .hermes, .vibe, and docs — these are generated/symlinked mirrors
  for other tools, not source-of-truth skills. On platforms where git
  materializes symlinks as plain text (e.g. Git Bash on Windows), the
  mirrored files were being parsed as SKILL.md candidates and failing
  frontmatter extraction, flooding the run with "Skipping invalid
  frontmatter" warnings (#897).

- Renamed the self-improving-agent (si) plugin's `status` and `review`
  skills to `memory-status` and `memory-review` so their bare `name:`
  values no longer collide with Claude Code's built-in `/status` and
  `/review` commands (#885). Updated all in-plugin references
  (CLAUDE.md, README, agents, hooks, references, settings.json,
  plugin.json) to the new `/si:memory-status` / `/si:memory-review`
  invocations.

Fixes #897 (duplicate of #896), #885.
2026-07-08 05:37:03 +00:00
Claude
aecfb8e0bb
feat(skills): wave-3 optimization — domain overhauls per newgen audit
marketing: context-file unified on .claude/product-marketing-context.md;
ai-seo merged into aeo (2 new cited references, folder deleted); index +
marketing-ops routers rebuilt honestly; 24 orphan scripts wired with exact
CLIs; prompt-engineer-toolkit stub references rewritten with cited content;
Meta 20%-rule + GA4 terminology freshness; 5 zips + 3 planning docs removed

c-level-advisor: role registry 9->14 across all 6 routing surfaces; decision
memory unified on ~/.claude/decisions/{raw,approved}; onboarding schema
canonicalized; 12 phantom commands resolved; index repaired (33/37/68 real
counts); ma-playbook sourced + verification loop; 28 trigger descriptions

engineering(+team): agent-designer 279->76 lines and rag-architect 318->71
lines rebuilt around their tools (stale ada-002/pricing gone); release-manager
merged into changelog-generator (version_bumper + hotfix refs moved, crashing
release_planner dropped); 6 skills' orphan scripts wired; ms365 tools gained
real CLIs; 5 brochure skills de-filled; 4 unreferenced zips removed;
bundle counts trued (25->37, 23->32); 18 trigger descriptions

product/research/compliance/bizops: apple-hig-expert rebuilt around
hig_checker's real CLI with web-verified facts; notebooklm re-verified against
live product; 5 index skills converted to honest routers; research-summarizer
repaired with explicit lane statement; 8 over-1024 descriptions compressed;
9 sub-skills gained fenced CLI examples; GDPR one-month (Art. 12(3)) with
calendar-month deadline math; MDR PSUR table per Art. 86(1); 12 ra-qm zips
removed; 24 trigger descriptions

Verified: check_paths 0 findings; check_dual_publish 0 drifted; smoke 581/581;
check_plugin_json 77 OK; compileall rc=0; all descriptions <=1024 chars

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 03:58:41 +00:00
Claude
b99505446a
fix: resolve 11 P0 correctness defects from newgen audit
- fda-consultant-specialist: QMSR transition (eff. 2026-02-02) correctly framed;
  legacy QSR sections mapped to ISO 13485:2016 clauses (17-row mapping)
- risk-management-specialist: ALARP-with-cost-benefit replaced by AFAP per
  EU MDR Annex I GSPR 1-4 + EN ISO 14971:2019/A11
- eu-ai-act-specialist: Art. 5(1)(f) sample corrected (workplace, not retail);
  both dual-published copies kept byte-identical
- financial-analyst: 4 scripts now read bundled sample shape (and flat shape),
  exit non-zero on missing data; verified real outputs (ROE 25%, DCF $13.90/sh)
- deal-desk: fixed-COGS margin math unified across script/reference/SKILL.md;
  margin scoring recalibrated (30% discount on 80% GM now scores 25, not 37)
- senior-qa/backend/frontend + email-template-builder: 8 corrupted code
  literals from past bulk YAML-quoting sweep reconstructed
- google-workspace-cli: install coordinates fixed to verified upstream
  (@googleworkspace/cli); phantom subcommands replaced with verified syntax
- project-management: fabricated Atlassian MCP tool names replaced with the 30
  real Remote MCP tools; new canonical references/atlassian-mcp-tools.md;
  unavailable capabilities routed to UI/REST; orphaned scripts wired
- command-guide: retired (documented a different repo's ecosystem)
- markdown-html: stale v2.10.0 'foundation' text replaced; routing now targets
  the shipped converters; never hand-render
- webinar_funnel_scorer.py: argparse added (--help/--sample/stdin)
- handoff redaction linter: missing 17th pattern (private CIDR) added

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-10 14:32:43 +00:00
Claude
0f88555485
chore(versioning,docs): normalize stale versions to 2.9.0 + refresh counts
Version normalization (scope: only plugins/skills older than 2.7.0):
- Bumped 52 plugin.json + 21 SKILL.md `version` fields from pre-2.7.0
  values (1.0.0 / 2.0.x / 2.2.x / 2.3.x / 2.4.x / 2.5.x) to 2.9.0.
  Left 2.7.0+ packages untouched. Tool mirrors (.codex/.gemini/.vibe/
  .hermes) excluded. All manifests still pass check_plugin_json --all.

Doc count refresh (recomputed raw figures: 338 skills, 16 domains,
62 plugins, 533 Python tools, 676 references):
- marketplace.json: both descriptions + metadata.version -> 2.9.0.
- Root README: headline, badges (Skills 338, Agents 51+, Commands 87+),
  intro counts, convert section (338 skills / 9 tools), and the full
  domain table rebuilt to 16 domains summing to 338 (adds research-ops,
  business-operations, commercial, compliance-os; corrects product 17,
  marketing 46, c-level 66, ra-qm 18, finance 4, engineering 51/78).
- Fixed stale per-skill README `Version:` lines left inconsistent by the
  bump (andreessen, c-level-agents, product-team, senior-qa).
- Fixed stale domain README footers (product-team 17/17, c-level 66/66,
  project-management 9/9).
- CLAUDE.md scope line, structure tree, highlight, and footer synced to
  the raw figures.

https://claude.ai/code/session_01PUNmQVE4WYvcrzpq2anC3D
2026-05-27 05:22:59 +00:00
Claude
8fd3155868
fix(plugin-schema): align with live Claude Code spec — migrate to "./"-prefixed skills field
Resolves #712 and #714.

Claude Code's plugin spec (code.claude.com/docs/en/plugins-reference) requires
"All paths must be relative to the plugin root and start with ./". CC 2.1.144+
rejects the bare "skills" form with `Validation errors: skills: Invalid input`,
breaking plugin installs from this repo.

Changes:
- 47 plugin.json manifests migrated from "skills": "skills" → ["./skills"]
  (canonical post-CC 2.1.144 form, also accepts string "./skills")
- scripts/check_plugin_json.py rewritten to enforce the live spec:
  * Hard-fails on non-"./"-prefixed strings (except the legacy "skills" literal)
  * Hard-fails on empty strings/arrays and non-string array entries
  * Emits WARN (non-fatal) on the legacy "skills" literal as a safety net
    for copied templates — the WARN tolerance can be removed later
  * Tested against all four canonical forms + 3 garbage forms
- CLAUDE.md §5 rewritten to document the live spec, including the historical
  context of the v2.1.107 → v2.1.144 regression window that's now closed
- 15 stale broken symlinks under .gemini/skills/ removed (orphans from older
  reorgs that the sync script didn't prune because its cleanup is disabled)

Verification:
- scripts/check_plugin_json.py --all → 0 FAIL, 0 WARN, exit 0 (69 files OK)
- pytest tests/ → 2103 passed
- find . -type l ! -exec test -e {} \; → 0 broken symlinks
- Live spec forms tested: ["./"], ["./skills"], "./skills", ["./a","./b"] all pass
- Garbage forms rejected: bare "./", empty array, non-string entries, plain strings
2026-05-21 07:03:11 +00:00
Claude
663bc8afa2
fix(plugin.json): drop "./" prefix from skills field to clear /doctor warning (#686)
Claude Code 2.1.133+ rejects "skills": "./skills" with a "Path escapes
plugin directory" warning, even though ./skills resolves to a valid
subdirectory inside the plugin root. Per the upstream docs example, the
correct value is "skills" (no ./ prefix), which works across all CC
versions and other tools (Codex, Gemini CLI, etc.).

Applied to all 47 plugin.json files that used "./skills"; updated
CLAUDE.md ClawHub publishing constraints to document the new convention
and reference the issue.
2026-05-19 03:43:34 +00:00
Claude
b69842562a
fix(self-improving-agent): forbid reserved 'claude'/'anthropic' fragments in generated names
The /si:extract command and its skill-extractor agent had no guard
against the Claude Code skill-spec reserved name fragments. Users
reported the agent autogenerating skills like 'claude-code-settings',
'claude-mcp-tools', etc. — all of which violate the spec.

- Add explicit reserved-fragment rule to both the slash-command
  SKILL.md and the agent definition.
- Recommend the 'cc-' prefix for Claude Code-specific skills
  (cc-settings, cc-maintenance, cc-mcp-tools).
- Add the check to both quality-gate checklists so the agent
  surfaces a rename before writing files.

Closes #537
2026-05-11 13:14:39 +00:00
Sobro inc.
571b5921dd fix(agents): add maxTurns + skills + narrow tools per spec completeness
Karpathy-style review of commit 3806b9b (the prior PR commit) caught real
issues that I missed: agents weren't fully equipped per the optional but
recommended fields in the official sub-agents spec.

Changes:
- engineering/agenthub/agents/hub-coordinator.md: narrow Bash(node *) (too
  broad per defense-in-depth) -> moved node into disallowedTools; add
  maxTurns: 100 (orchestrators run long); add skills: agenthub:agenthub
  (preload the plugin's own guidance into agent context)
- engineering-team/self-improving-agent/agents/memory-analyst.md:
  add maxTurns: 30 to bound runaway analysis loops
- engineering-team/self-improving-agent/agents/skill-extractor.md:
  add disallowedTools (rm/curl/wget) — agent has Write+Edit so defense-in-
  depth applies; add maxTurns: 30
- engineering/karpathy-coder/agents/karpathy-reviewer.md: fix skills field
  format from path-style "engineering/karpathy-coder" to spec-correct
  namespaced name "karpathy-coder:karpathy-coder" (the path syntax is the
  cs-* orchestrator template convention; the official sub-agents spec uses
  skill names per code.claude.com/docs/en/sub-agents); add maxTurns: 30

All 6 plugin agents (4 here + 2 in playwright-pro from prior commit) +
the 1 user agent (tech-ingester) now have name + description + tools +
disallowedTools (where write-capable) + model + maxTurns. The skills:
field is set on agents that benefit from preloaded domain skill content.

Functional smoke tests post-fix:
- memory-analyst: PASS (2 turns, 25s, 24K tokens, found 1 real orphan)
- skill-extractor: PASS (0 tool uses, 34s, 17K tokens, generated correct
  plan staying read-only with new disallowedTools in effect)
- karpathy-reviewer: PASS (verified in prior session, 28 tool uses)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 23:05:34 -04:00
Sobro inc.
3806b9b723 fix(agents): add missing YAML frontmatter and modernize tool fields
Per https://code.claude.com/docs/en/sub-agents, agents require YAML
frontmatter with name + description, and the field is `tools:` not
`allowed-tools:` (deprecated). Bare `Bash` allows any command including
curl/wget/rm, which violates defense-in-depth.

Changes:
- engineering/agenthub/agents/hub-coordinator.md: add full frontmatter
  (name, description, tools allowlist for git/python/node/Agent,
  disallowedTools for rm -rf / curl / wget / git push --force, model)
- engineering-team/self-improving-agent/agents/memory-analyst.md:
  add frontmatter, read-only tools (Read, Glob, Grep)
- engineering-team/self-improving-agent/agents/skill-extractor.md:
  add frontmatter, write tools (Read, Write, Edit, Glob, Grep)
- engineering-team/playwright-pro/agents/test-architect.md:
  rename allowed-tools to tools, add model: inherit
- engineering-team/playwright-pro/agents/migration-planner.md:
  same rename
- engineering-team/playwright-pro/agents/test-debugger.md:
  rename + narrow bare Bash to npx playwright / node / npm patterns,
  add disallowedTools for rm / curl / wget / destructive git
- engineering/karpathy-coder/agents/karpathy-reviewer.md:
  narrow bare Bash to git read-ops + python, add disallowedTools

All registered agents now load cleanly under the sub-agents spec rather
than falling through to permissive registration.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 22:01:42 -04:00
Reza Rezvani
2717c8f933 fix(plugins): bump versions to force /plugin update to pick up #587 fix
PR #587 fixed `"skills": "./"` in 35 plugin.json files but did not bump
versions. Claude Code uses version as the cache key — same version string
means /plugin update is a no-op and users keep loading the cached
plugin.json with the broken path. The /plugin UI shows "1 error" on
every plugin from this marketplace because the installed cache is stale.

Per the official version-management docs:
> If you set `version` in `plugin.json`, you must bump it every time
> you want users to receive changes. Pushing new commits alone is not
> enough.

Bump every plugin.json by one patch using max(plugin_version,
marketplace_version) as the base so no version moves backward. Sync the
new versions back into .claude-plugin/marketplace.json.

After this lands, users run `/plugin marketplace update claude-code-skills`
followed by `/plugin update --all` to pull the fixed manifests.
2026-05-02 22:14:12 +02:00
Reza Rezvani
014abcad80 Merge remote-tracking branch 'origin/dev' into fix/plugin-json-skills-path-539
# Conflicts:
#	engineering-team/self-improving-agent/.claude-plugin/plugin.json
2026-05-02 22:01:18 +02:00
Reza Rezvani
55e7e45512 fix(plugins): repair skills path in 35 plugin.json files (#539)
Claude Code v2.1.107+ rejects bare "skills": "./" with "Path escapes
plugin directory: ./". This blocks every plugin in the marketplace from
loading. Replace with the layout-appropriate form per the official
plugins reference:

- Single-skill plugin (SKILL.md at root):
    "skills": ["./"]                  array form (per docs example)
- Plugin with skills/ subdir:
    "skills": "./skills"              standard subdir layout
- Multi-skill domain plugin (skills are subfolders at root):
    "skills": ["./sub1", "./sub2"]    explicit list of skill dirs

The multi-skill case omits "./" from the array so the index SKILL.md
at the plugin root does not register as a skill — that would create
a redundant `marketing-skills:marketing-skills` namespace.

Verified by running `claude plugin validate` against all 35 manifests.

Closes #539
2026-05-02 21:55:58 +02:00
Scot Campbell
ed71c8b5bc
fix(self-improving-agent): correct skill discovery by moving root SKILL.md to skills/ and updating skills path in plugin.json
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.
2026-04-13 12:24:09 -04:00
Reza Rezvani
84ec346e78 fix(self-improving-agent): remove broken relative hook paths from docs (#506)
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>
2026-04-11 02:12:12 +02:00
Reza Rezvani
a4498aff75 fix(self-improving-agent): register /si:* slash commands correctly (#505)
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>
2026-04-11 02:09:10 +02:00
Reza Rezvani
95f8bd42b2 fix(plugins): normalize author fields and versions in 4 plugin.json files
- executive-mentor: add url to author, add homepage + repository
- self-improving-agent: add url to author, version 1.0.0 → 2.1.2
- playwright-pro: fix author name (Reza → Alireza), replace email with url, version 1.0.0 → 2.1.2
- google-workspace-cli: add url to author

All plugin.json files now use consistent author object format.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:07:08 +01:00
Reza Rezvani
217b199ff8 fix(self-improving-agent): use CLAUDE_PLUGIN_ROOT for hook paths
Relative paths (./hooks/error-capture.sh) resolve against the project
working directory, not the plugin root. Replaced with
${CLAUDE_PLUGIN_ROOT}/hooks/error-capture.sh in both hooks.json and
settings.json.

Fixes #392

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 09:32:57 +01:00
Alireza Rezvani
8902ba79d7
release: v2.1.1 — skill optimization, agents, commands, reference splits (#297) 2026-03-09 15:54:25 +01:00
Reza Rezvani
88eb7b27e2 fix: use record format for self-improving-agent hooks.json
Claude Code expects hooks as a record keyed by event name, not an array.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:19:33 +01:00
Reza Rezvani
a46d3b0b37 fix: resolve remaining plugin.json schema errors
- playwright-pro: change repository from object to string
- self-improving-agent: replace skills/agents/hooks/settings arrays with
  "skills": "./" auto-discovery, remove displayName, add author

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:07:38 +01:00
Alireza Rezvani
e09d202aa3
feat: add self-improving-agent plugin — auto-memory curation for Claude Code (#260)
New plugin: engineering-team/self-improving-agent/
- 5 skills: /si:review, /si:promote, /si:extract, /si:status, /si:remember
- 2 agents: memory-analyst, skill-extractor
- 1 hook: PostToolUse error capture (zero overhead on success)
- 3 reference docs: memory architecture, promotion rules, rules directory patterns
- 2 templates: rule template, skill template
- 20 files, 1,829 lines

Integrates natively with Claude Code's auto-memory (v2.1.32+).
Reads from ~/.claude/projects/<path>/memory/ — no duplicate storage.
Promotes proven patterns from MEMORY.md to CLAUDE.md or .claude/rules/.

Also:
- Added to marketplace.json (18 plugins total)
- Added to README (Skills Overview + install section)
- Updated badge count to 88+
- Regenerated .codex/skills-index.json + symlink

Co-authored-by: Leo <leo@openclaw.ai>
2026-03-05 17:16:53 +01:00