Commit Graph

584 Commits

Author SHA1 Message Date
Dani fcad351c70 fix: address cubic review — redact denials and context, broader secret/destructive patterns, single-pass glob, fail-closed large-edit, quote-aware npm rewrite, serialized audit flushes under 4 MiB, bodyColumns and subagent-turn handling in every game, /diff-invaders command, safe file paths and legacy migration in the dashboard, stricter CI manifest checks, Mods checklist in CLAUDE.md 2026-09-16 12:15:11 -04:00
Dani b2fe9fecac fix: address review — pass mod dir to node as argv in CI; audit log limit in UTF-8 bytes, oversized records dropped 2026-09-16 11:53:57 -04:00
Dani a53ac929bc Merge branch 'main' of https://github.com/davila7/claude-code-templates into claude/function-hooks-review-574593
# Conflicts:
#	dashboard/public/components.json
#	dashboard/public/components/agents.json
#	dashboard/public/components/commands.json
#	dashboard/public/components/hooks.json
#	dashboard/public/components/mcps.json
#	dashboard/public/components/settings.json
#	dashboard/public/components/skills.json
#	dashboard/public/counts.json
#	dashboard/public/search-index.json
#	docs/components.json
2026-09-16 11:41:42 -04:00
Dani 45fdddf98f feat: Function Hooks become Mods — Anthropic plugin layout, real types, 14 new game mods
Anthropic renamed function hooks to "Claude Mods", committed to shipping them in
weeks and published the built-in mods' source plus the full TypeScript
declarations (anthropics/claude-code#91870, mods/ in the claude-code repo).
This aligns our component type with that.

Rename
- Component type `function-hooks` -> `mods` (dir, catalog key, route /mods,
  CLI `--mod` with `--function-hook` kept as a hidden alias, tracking `mod`).
  Old URLs redirect via dashboard/public/_redirects.
- Banners, blog, CLAUDE.md and .claude/rules updated from "proposal" to
  "early access behind CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 (2.1.259+)".

Format: one directory = one complete plugin (Anthropic's mods/ layout)
- cli-tool/components/mods/{category}/{name}/ with .claude-plugin/plugin.json
  (name, description, userConfig), hooks/hooks.json, hooks/** (any number of
  files, relative imports), optional types/, tests/, README.md.
- Generator: README.md is the content; every text file ships in the
  per-component content file (`files`), plus `modules` and `userConfig`.
- CLI: recursive download of the plugin directory (like skills), written
  verbatim to .claude/skills/{name}/; validates manifest + hooks.json + modules.
- Site: SkillExplorer generalized (componentType, mainFile, files) so the
  detail page shows README + the full file tree from the content file;
  SendToRepoModal writes the whole plugin.

Modules rewritten against the real API
- types/claude-code.d.ts (as /plugin-types writes it, 2.1.271), tsconfig and
  a CI job (mods-typecheck.yml) running tsc over every mod.
- All 10 existing mods fixed to the shipped shapes ($.fs.read(path),
  $.http.fetch(url, init), $.ui.ask, { refuse } on plugin.register, Box/Text
  elements, {result}/{deny}/context, static engine.create withholding) and
  verified on Claude Code 2.1.272: claude plugin validate passes on all, and
  deny / modifying / after / cache / audit / withhold+refuse were exercised
  end to end with `claude -p --plugin-dir --debug-file`.
- Options need `userConfig` in plugin.json and are read from user/managed
  settings (pluginConfigs[name].options), never project settings; documented.

Games
- games/cc-arcade vendored as-is (MIT, Seza Akgün) with two runtime fixes
  ($.clock.now() is a Promise in the 2.1.271 API).
- games/{snake,tetris,2048,minesweeper,flappy,pong,invaders,typing-test,
  doom,pet}: each cc-arcade game as its own installable mod with its own
  command (/tetris, /snake, ...), attributed to the original author.
- games/{pacman,tool-defense,diff-invaders}: new, written for aitmpl.
  Pac-Man with the original ghost behaviours; Tool Defense, a tower defense
  where every tool call Claude makes is an enemy; Diff Invaders, where every
  Edit/Write's added lines become the alien formation. Pure logic with bun
  tests, surface-module boards, typechecked and validated.

Catalog regenerated (24 mods).
2026-09-16 11:31:48 -04:00
Claude de178edc12 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JJNDUozNRgBkoTicVnJgVf
2026-09-16 14:06:23 +00:00
github-actions[bot] d2b1e748ae chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/35050138388)
2026-09-16 03:17:25 +00:00
Claude 41afe2db06 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011DM3QDqEZ7gNyD6ZsXR1PL
2026-09-15 14:05:04 +00:00
github-actions[bot] 560f2fccd9 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34923329518)
2026-09-15 03:10:42 +00:00
Daniel Avila fdb5185ec7 fix: narrow discernment-nudge code-execution exemption (#900)
The skill's "code the user will execute" exemption was blanket: it
suppressed the discernment nudge for any code the user would run,
including scripts that delete data, expose secrets, or change
production state, where merely running the code doesn't verify those
risks.

Restrict the exemption to trivial, local, reversible code, and keep
nudging code that affects production, external systems, security, or
data.

Addresses a cubic-dev-ai review finding (P1, confidence 8/10) on PR
#898 that landed after the PR was merged, so following up here rather
than reopening the merged PR.


Claude-Session: https://claude.ai/code/session_012T1LgFb24v87ZAUk9RjP6C

Co-authored-by: Claude <noreply@anthropic.com>
2026-09-14 15:38:11 -04:00
Daniel Avila 7faa175714 feat: Sync new skills from anthropics/skills (#898)
* feat: Sync new skills from anthropics/skills

Migrated from github.com/anthropics/skills (Apache 2.0):
- Add `academy-guide` (productivity) - recommends matching Claude Academy
  courses/tutorials for "how do I use Claude" style questions
- Add `discernment-nudge` (productivity) - prompts 2-3 follow-up questions
  after substantive answers to help users check facts/reasoning before acting
- Refresh `frontend-design` (creative-design) SKILL.md with the newer,
  more detailed upstream guidance on aesthetic direction and self-critique
- Fix placeholder copyright line in `web-artifacts-builder` LICENSE.txt to
  match upstream ("Copyright 2026 Anthropic, PBC.")

All other skills already present locally were compared against upstream
and left untouched: several (docx, pptx, xlsx, mcp-builder, skill-creator,
claude-api) have local customizations beyond the upstream reference
versions, and the rest (algorithmic-art, brand-guidelines, canvas-design,
internal-comms, theme-factory, slack-gif-creator, webapp-testing,
doc-coauthoring, web-artifacts-builder) are unchanged from upstream.

Regenerated the component catalog (docs/components.json,
dashboard/public/components.json and split artifacts) via
scripts/generate_components_json.py, which also refreshed live download
counts from Supabase.

Validated with the component-reviewer agent: no critical issues.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012T1LgFb24v87ZAUk9RjP6C

* chore: regenerate catalog after merging main

Claude-Session: https://claude.ai/code/session_01JVP5nv7a7bMkwvy67LgtPF

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-09-14 11:59:48 -04:00
Claude 284d66bf5c chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0135EPbidxSEkq5qVEV1tGyy
2026-09-14 14:10:50 +00:00
github-actions[bot] 2a5451bf14 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34801078394)
2026-09-14 03:09:56 +00:00
Claude d1eeb9a099 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YMPodqKSY6KjFzTVX1qXo6
2026-09-13 14:00:55 +00:00
github-actions[bot] a1e242f7d2 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34734401965)
2026-09-13 03:04:57 +00:00
Claude ec126b9ded chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019SmzBmdPojpL9c7fUxiDdj
2026-09-12 14:00:30 +00:00
github-actions[bot] 45291d0c56 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34669188575)
2026-09-12 03:11:26 +00:00
Claude c93d4ee1e1 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014EaJGDf59usQj4W6ezJMZE
2026-09-11 14:11:54 +00:00
github-actions[bot] 028931d584 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34556781132)
2026-09-11 03:08:57 +00:00
Claude b2680e53e9 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mw2tX9kKu9WdUsa8KsMYRb
2026-09-10 14:00:19 +00:00
github-actions[bot] e1fd519940 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34431634738)
2026-09-10 03:08:15 +00:00
Claude e3f33c4bee chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TjWBjyKfjrHU7XJe5GsCLc
2026-09-09 14:11:38 +00:00
github-actions[bot] aac87c8263 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34305449776)
2026-09-09 03:10:19 +00:00
Claude f43c5d9b59 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01235eRsdvq6CdPFXueuHiuy
2026-09-08 14:15:20 +00:00
github-actions[bot] d039df77c5 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34181987468)
2026-09-08 03:05:25 +00:00
github-actions[bot] 0aefdaadbc chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34078153192)
2026-09-07 03:06:54 +00:00
Claude 87e8e5bd60 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AjMs9S321Pm6TsGf7yA6Vy
2026-09-06 14:04:20 +00:00
github-actions[bot] c083cad8d4 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/34007890868)
2026-09-06 03:05:03 +00:00
Daniel Avila 45c9a81518 feat: add worktree-context-statusline setting (#860)
* feat: add worktree-context-statusline setting

Minimal worktree-aware status line: project | branch | model | context.
Shows the main project name (not the worktree dir) inside linked
worktrees, marks the branch with ⑂, and reads accurate context usage
from Claude Code's context_window (200k or 1M) instead of guessing.

Regenerates the component catalog.

Claude-Session: https://claude.ai/code/session_01QHCvqCvD9JD9J6ZeAK8NS7

* fix(cli): make statusline script paths scope-aware

- Detect the companion .py from the statusLine command, not only the statusline/ name prefix
- For user/enterprise installs, rewrite .claude/scripts/ in the command to the absolute scripts dir where the file is actually written

Claude-Session: https://claude.ai/code/session_01WsWgpvgeJgRMoLiYDcRXMU
2026-09-05 13:18:14 -04:00
Daniel Avila 0281438fc6 feat: Function Hooks section (experimental) — 10 hooks, CLI flag, blog (#867)
* feat: add Function Hooks component type (experimental) with 10 hooks and blog

Introduce "function-hooks" as a new first-class component type based on
the Anthropic proposal in anthropics/claude-code#91870 (TypeScript hooks
as Koa-style middleware on a $ engine interface). The feature is not
shipped; every API name is provisional and the section is labelled
experimental everywhere.

- 10 function hooks under cli-tool/components/function-hooks/
  (security, productivity, observability, ui, integrations, enterprise),
  each as a .md doc page plus the installable .ts/.tsx hooks-module
- CLI: --function-hook installs the module as a local plugin under
  .claude/plugins/<name>/ (plugin.json, hooks/hooks.json with modules)
  and prints the experimental warning
- Catalog generator: scan function-hooks and emit dashboard artifacts
- Dashboard: type wiring, /function-hooks page with experimental banner
  linking to the issue, Events/Module cards on the detail page,
  sitemap, cart, webmcp; track-download now accepts loop/function-hook
- Blog: "Claude Code Function Hooks (Experimental)" article with cover
- Docs: CLAUDE.md and cli-tool rule

Claude-Session: https://claude.ai/code/session_01YBoJbmNMcRCexuKpH9mQtW

* fix: store function hooks as hooks.json + module, install as skills-dir plugin

Function hooks are not markdown docs. Per the proposal's architecture doc,
a function hook is a plugin's hooks/hooks.json with a "modules" key naming
a .ts/.tsx hooks-module beside it. Align the catalog and the CLI with that:

- Components are now {name}.json (hooks.json + catalog description) plus
  the {name}.ts/.tsx module it names, mirroring how shell hooks store
  .json + .py/.sh. The .md docs are removed.
- Generator reads the named module into the per-component content file
  (module, moduleSource); the detail page renders the JSON and the module
  with the experimental notice.
- CLI --function-hook downloads hooks.json and every module it names,
  strips description, and writes the plugin to .claude/skills/{name}/,
  which Claude Code auto-loads as {name}@skills-dir per the plugins
  reference (no --plugin-dir needed).
- Docs and blog updated to the same install path.

Claude-Session: https://claude.ai/code/session_01YBoJbmNMcRCexuKpH9mQtW

* fix(function-hooks): address review findings

- CartSidebar: add --loop and --function-hook to TYPE_FLAGS so stack commands install them
- SendToRepoModal: export loops and function hooks (plugin layout with hooks.json + module)
- CLI: validate function hook identifier and hooks-module file names before building URLs/paths
- block-destructive-commands: rm rule now catches split flags, --recursive, quoted/trailing-slash targets, --no-preserve-root
- admin-capability-lockdown: shellPolicy deny|guardrail|allow; default withholds Bash, guardrail is labelled bypassable
- regenerate catalog

Claude-Session: https://claude.ai/code/session_01WsWgpvgeJgRMoLiYDcRXMU
2026-09-05 11:29:13 -04:00
github-actions[bot] 816d2f4404 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33940653409)
2026-09-05 03:10:29 +00:00
Claude 692668e806 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qw2xDdLRxHtU2HUJ1jtFxV
2026-09-04 14:02:40 +00:00
github-actions[bot] 4831745634 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33831615581)
2026-09-04 03:14:38 +00:00
Claude 781e34846c chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PRYYZfQq7NGfYBH8ahjRYF
2026-09-03 14:01:38 +00:00
github-actions[bot] 9006aaf3c6 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33713662431)
2026-09-03 04:18:36 +00:00
Claude 8a3613d31e chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0114d4jw9RCi8kEz2ZDXhb8M
2026-09-02 14:05:29 +00:00
github-actions[bot] 9166d76bae chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33585484408)
2026-09-02 03:06:41 +00:00
Claude cfe1367e1e chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbKEU4jSnAvhZk8xgLDLsY
2026-09-01 14:02:33 +00:00
github-actions[bot] be07c0b979 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33464620208)
2026-09-01 03:08:04 +00:00
github-actions[bot] 7ee5acdf24 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33352415951)
2026-08-31 03:06:35 +00:00
Claude 1ef6147558 chore: Update components and trending data 2026-08-30 14:05:21 +00:00
github-actions[bot] 1ae2c69618 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33289258766)
2026-08-30 03:16:41 +00:00
Claude 0740a8dd62 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmTw4jPTeW1SqPRbTs3tT
2026-08-29 14:04:56 +00:00
github-actions[bot] 6d13d28a05 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33230300128)
2026-08-29 03:10:36 +00:00
Claude 7c0ee51360 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WQ8tG1m5bUMoqS4ogncLAn
2026-08-28 14:04:40 +00:00
github-actions[bot] a0851ed10c chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33145265575)
2026-08-28 05:43:19 +00:00
Claude 5ee1dc20f3 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 14:04:27 +00:00
github-actions[bot] b1b3e1702f chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/33040127813)
2026-08-27 04:47:04 +00:00
Claude 37da5623a6 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WHGfFvma5yznzEU5MvL5tU
2026-08-26 14:09:49 +00:00
github-actions[bot] 3a2f8c0315 chore: Update components and trending data
🤖 Generated with [GitHub Actions](https://github.com/davila7/claude-code-templates/actions/runs/32926007357)
2026-08-26 03:25:48 +00:00
Claude a9bb1d65b2 chore: Update components and trending data
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FPfzENHbMwx9NUSjmVdyEV
2026-08-25 14:09:03 +00:00