[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-plugin-luiseiman-hookify-zh-CN":3,"guides-for-luiseiman-hookify":783,"similar-k177jbzwkybyg95prfv25npnas86m60g-zh-CN":784},{"_creationTime":4,"_id":5,"children":6,"community":44,"display":45,"evaluation":49,"identity":284,"isFallback":275,"parentExtension":287,"providers":288,"relations":294,"repo":295,"tags":781,"workflow":782},1778692488329.0103,"k177jbzwkybyg95prfv25npnas86m60g",[7],{"_creationTime":8,"_id":9,"community":10,"display":12,"identity":18,"providers":24,"relations":38,"tags":40,"workflow":41},1778692488329.0178,"k174ed0b4e6yg5gke05fxp9evh86mgh3",{"reviewCount":11},0,{"description":13,"installMethods":14,"name":16,"sourceUrl":17},"Create dynamic hook rules from natural language descriptions. Generates .claude/hookify.*.local.md files that warn or block operations matching patterns. Triggers on \"hookify\", \"create hook rule\", \"warn me when\", \"block when\", \"don't let me\".",{"claudeCode":15},"luiseiman/claude-kit","hookify","https://github.com/luiseiman/claude-kit",{"basePath":19,"githubOwner":20,"githubRepo":21,"locale":22,"slug":16,"type":23},"stacks/hookify/skills/hookify","luiseiman","claude-kit","en","skill",{"evaluate":25,"extract":36},{"promptVersionExtension":26,"promptVersionScoring":27,"score":28,"tags":29,"targetMarket":34,"tier":35},"3.0.0","4.4.0",99,[30,31,32,33],"automation","configuration","code-generation","rules-engine","global","verified",{"commitSha":37},"HEAD",{"parentExtensionId":5,"repoId":39},"kd79wqc8an5wh20cc2znr8tyb586mxwx",[30,32,31,33],{"evaluatedAt":42,"extractAt":43,"updatedAt":42},1778693386498,1778692488329,{"reviewCount":11},{"description":46,"installMethods":47,"name":48,"sourceUrl":17},"Dynamic hook rules from natural language. Create .claude/hookify.*.local.md files that act as warn/block rules without editing hooks.json.",{"claudeCode":48},"dotforge-stack-hookify",{"_creationTime":50,"_id":51,"extensionId":5,"locale":22,"result":52,"trustSignals":266,"workflow":282},1778692689033.2295,"kn7azmz46j8tz9xykfx87xrnpn86nf9p",{"checks":53,"evaluatedAt":238,"extensionSummary":239,"features":240,"nonGoals":246,"practices":250,"prerequisites":251,"promptVersionExtension":26,"promptVersionScoring":27,"purpose":252,"rationale":253,"score":254,"summary":255,"tags":256,"targetMarket":34,"tier":35,"useCases":260,"workflow":265},[54,59,62,65,69,72,76,80,83,86,90,94,98,102,105,108,111,114,117,120,124,128,132,136,140,143,146,149,153,156,159,162,165,168,171,175,179,183,186,190,193,196,199,202,205,208,211,214,217,220,224,227,230,234],{"category":55,"check":56,"severity":57,"summary":58},"Practical Utility","Problem relevance","pass","The description clearly names the problem of managing dynamic hook rules without direct editing of configuration files, addressing the pain point of managing complex `.claude/` setups.",{"category":55,"check":60,"severity":57,"summary":61},"Unique selling proposition","The extension provides a declarative DSL and compilation process to generate hook rules from natural language, offering significant value over manual configuration or simple prompt engineering.",{"category":55,"check":63,"severity":57,"summary":64},"Production readiness","The plugin appears production-ready, providing a complete workflow from rule definition to runtime enforcement via compiled hooks, with a clear lifecycle for managing rules and configurations.",{"category":66,"check":67,"severity":57,"summary":68},"Scope","Single responsibility principle","The plugin focuses specifically on managing dynamic hook rules and behavior governance for Claude Code, aligning with its described purpose without straying into unrelated domains.",{"category":66,"check":70,"severity":57,"summary":71},"Description quality","The displayed description accurately reflects the plugin's functionality of creating dynamic hook rules from natural language for Claude Code.",{"category":73,"check":74,"severity":57,"summary":75},"Invocation","Scoped tools","The plugin's hooks are specific to hook events (`PreToolUse`, `UserPromptSubmit`, `Stop`) and operate on structured rule data, avoiding general-purpose command execution.",{"category":77,"check":78,"severity":57,"summary":79},"Documentation","Configuration & parameter reference","The README and skill markdown provide detailed documentation on rule structure, conditions, events, actions, and management commands, including examples.",{"category":66,"check":81,"severity":57,"summary":82},"Tool naming","The plugin defines hooks and uses internal scripts, but no user-facing tools are directly exposed in a way that would require specific naming conventions for Claude Code commands.",{"category":66,"check":84,"severity":57,"summary":85},"Minimal I/O surface","The Python hooks process JSON input and produce JSON output, indicating a structured and minimal I/O surface for rule evaluation.",{"category":87,"check":88,"severity":57,"summary":89},"License","License usability","The project includes a LICENSE file with the MIT license, clearly indicating its usability for redistribution and modification.",{"category":91,"check":92,"severity":57,"summary":93},"Maintenance","Commit recency","The last commit was on 2026-05-13, indicating active maintenance within the last 3 months.",{"category":91,"check":95,"severity":96,"summary":97},"Dependency Management","not_applicable","The plugin has no third-party dependencies beyond standard Python libraries and shell scripts, so dependency management checks are not applicable.",{"category":99,"check":100,"severity":96,"summary":101},"Security","Secret Management","The plugin does not appear to handle secrets directly; it processes rule definitions and applies them to existing Claude Code hooks, with no indication of secret usage.",{"category":99,"check":103,"severity":57,"summary":104},"Injection","The Python scripts load rules from configuration files and process JSON input, and the rule engine appears designed to evaluate data against defined patterns, not execute arbitrary code.",{"category":99,"check":106,"severity":57,"summary":107},"Transitive Supply-Chain Grenades","The plugin bundles its core logic (Python scripts) and relies on standard system commands; it does not fetch external content at runtime for execution.",{"category":99,"check":109,"severity":57,"summary":110},"Sandbox Isolation","The plugin's Python scripts execute within their own context and do not appear to attempt writing to or modifying files outside of their designated rule processing scope.",{"category":99,"check":112,"severity":57,"summary":113},"Sandbox escape primitives","No evidence of detached process spawns or deny-retry loops in the provided hook scripts.",{"category":99,"check":115,"severity":57,"summary":116},"Data Exfiltration","The plugin's core function is to process local rule definitions and apply them within Claude Code's sandboxed environment; there's no indication of outbound data submission.",{"category":99,"check":118,"severity":57,"summary":119},"Hidden Text Tricks","The bundled content (README, scripts, config files) is free of hidden steering tricks, control characters, or obfuscated instructions.",{"category":121,"check":122,"severity":57,"summary":123},"Hooks","Opaque code execution","The hook scripts are written in plain Python and are readable, without obfuscation, base64 payloads, or runtime downloads for execution.",{"category":125,"check":126,"severity":57,"summary":127},"Portability","Structural Assumption","The plugin assumes standard Python and Claude Code environments but does not make assumptions about specific user project structures beyond where rule files are placed.",{"category":129,"check":130,"severity":57,"summary":131},"Trust","Issues Attention","With 0 issues opened and 0 closed in the last 90 days, the issue engagement is implicitly positive due to the low volume and likely low current need.",{"category":133,"check":134,"severity":57,"summary":135},"Versioning","Release Management","The project declares a meaningful version (2.0.0) in its plugin manifest and has a changelog.",{"category":137,"check":138,"severity":57,"summary":139},"Code Execution","Validation","The Python rule engine likely uses internal validation for rule structures and input data, as implied by its role in processing rules and evaluating conditions.",{"category":99,"check":141,"severity":57,"summary":142},"Unguarded Destructive Operations","The plugin's primary function is rule enforcement, not destructive operations; hooks are designed to warn or block, not to perform destructive actions themselves.",{"category":137,"check":144,"severity":57,"summary":145},"Error Handling","The Python scripts include basic error handling for JSON parsing and exit with non-zero codes on failure, suggesting a fail-closed behavior.",{"category":137,"check":147,"severity":96,"summary":148},"Logging","The plugin's hooks primarily process and output JSON for Claude Code's internal handling; there's no indication of local audit log generation.",{"category":150,"check":151,"severity":96,"summary":152},"Compliance","GDPR","The plugin processes rule definitions and does not appear to handle personal data directly.",{"category":150,"check":154,"severity":57,"summary":155},"Target market","The plugin is designed for Claude Code users globally and does not have any regional or jurisdictional logic, setting targetMarket to 'global'.",{"category":125,"check":157,"severity":57,"summary":158},"Runtime stability","The plugin relies on standard Python and bash, ensuring cross-platform compatibility without assumptions of specific OS or shell features beyond basic availability.",{"category":77,"check":160,"severity":57,"summary":161},"README","The README is comprehensive, clearly stating the extension's purpose and providing installation and usage instructions.",{"category":66,"check":163,"severity":96,"summary":164},"Tool surface size","The plugin exposes hooks and internal scripts rather than user-facing commands or tools, making direct tool count inapplicable.",{"category":73,"check":166,"severity":96,"summary":167},"Overlapping near-synonym tools","The plugin does not expose distinct user-facing tools, so there are no overlapping near-synonym tools to evaluate.",{"category":77,"check":169,"severity":57,"summary":170},"Phantom features","All features described in the README and plugin manifest have corresponding implementations in the scripts and hooks.",{"category":172,"check":173,"severity":57,"summary":174},"Install","Installation instruction","The README provides clear, copy-pasteable installation instructions via curl and offers manual setup steps.",{"category":176,"check":177,"severity":57,"summary":178},"Errors","Actionable error messages","The Python scripts include basic error handling with exit codes, and the overall design implies that errors would be surfaced through Claude Code's framework.",{"category":180,"check":181,"severity":57,"summary":182},"Execution","Pinned dependencies","The plugin uses standard Python libraries and bundled scripts, with no external dependencies requiring pinning. The scripts include shebangs.",{"category":66,"check":184,"severity":96,"summary":185},"Dry-run preview","The plugin's function is to evaluate rules and provide feedback to Claude Code's hook system, not to perform state-changing actions directly that would require a dry-run.",{"category":187,"check":188,"severity":96,"summary":189},"Protocol","Idempotent retry & timeouts","The plugin's hooks process input and return output; they do not involve remote calls or state-changing operations that would require idempotency or timeouts.",{"category":150,"check":191,"severity":96,"summary":192},"Telemetry opt-in","The plugin does not appear to emit telemetry data; its function is local rule processing.",{"category":73,"check":194,"severity":96,"summary":195},"Name collisions","This is a single plugin providing a specific hook capability, so there are no internal name collisions to evaluate.",{"category":73,"check":197,"severity":96,"summary":198},"Hooks-off mechanism","The plugin itself doesn't manage hooks in a way that requires a separate 'hooks-off' mechanism beyond Claude Code's own plugin management.",{"category":73,"check":200,"severity":57,"summary":201},"Hook matcher tightness","The Python hooks are designed to process specific hook events ('PreToolUse', 'UserPromptSubmit', 'Stop') and apply rules based on event types, implying tight matching.",{"category":99,"check":203,"severity":57,"summary":204},"Hook security","The hooks are designed to evaluate rules and provide feedback to Claude Code's system, not to perform destructive actions or network calls directly. They are scoped to specific hook events.",{"category":121,"check":206,"severity":96,"summary":207},"Silent prompt rewriting","The 'UserPromptSubmit' hook processes prompts but its output is intended for Claude Code's internal handling of rule evaluation, not direct modification of user prompts without logging.",{"category":99,"check":209,"severity":96,"summary":210},"Permission Hook","The plugin does not implement 'PermissionRequest' hooks; its focus is on rule evaluation for other hook types.",{"category":150,"check":212,"severity":96,"summary":213},"Hook privacy","The plugin's hooks process local rule data and do not send logging or telemetry data over the network.",{"category":137,"check":215,"severity":57,"summary":216},"Hook dependency","The hook scripts are readable Python files within the repository, not obfuscated code or external downloads.",{"category":77,"check":218,"severity":57,"summary":219},"Feature Transparency","The README clearly describes the plugin's functionality, how to create rules, and the purpose of the hooks.",{"category":221,"check":222,"severity":57,"summary":223},"Convention","Layout convention adherence","The plugin follows standard Claude Code plugin structure with hooks, rules, and skills in appropriate directories.",{"category":221,"check":225,"severity":96,"summary":226},"Plugin state","The plugin does not appear to have persistent state that would need to live under `${CLAUDE_PLUGIN_DATA}`.",{"category":99,"check":228,"severity":96,"summary":229},"Keychain-stored secrets","The plugin does not consume or manage secrets, so routing through `userConfig` is not applicable.",{"category":231,"check":232,"severity":57,"summary":233},"Dependencies","Tagged release sourcing","The plugin is sourced directly from the GitHub repository with a clear version (2.0.0) indicated, implying tagged release sourcing.",{"category":235,"check":236,"severity":57,"summary":237},"Installation","Clean uninstall","The plugin's installation involves downloading scripts and no background daemons or persistent services are registered, allowing for a clean uninstall.",1778692688921,"This plugin, `dotforge-stack-hookify`, provides a framework for creating and managing dynamic hook rules in Claude Code using natural language. It compiles these rules into executable hooks that can warn or block actions based on defined patterns and events.",[241,242,243,244,245],"Create dynamic hook rules from natural language","Supports warn/block actions","Targets specific hook events (PreToolUse, UserPromptSubmit, Stop)","Compiles rules into executable hooks","Generates rule files in `.claude/hookify.*.local.md`",[247,248,249],"Directly executing arbitrary commands outside of the defined hook system","Managing Claude Code configurations not related to dynamic hooks","Providing a graphical user interface for rule management",[],[],"To empower users to define and enforce runtime policies for Claude Code behavior through simple, natural language descriptions, streamlining the management of complex `.claude/` configurations.","The plugin is well-documented, secure, and adheres to best practices. The only minor point not applicable is related to features not present, and the excellent documentation and clear implementation contribute to a high score.",97,"A robust plugin for dynamically managing Claude Code hooks via natural language rules.",[257,258,259,31,30],"claude-code","hooks","rules",[261,262,263,264],"Define rules to prevent destructive git operations without editing `hooks.json`","Create warnings for using specific commands or editing sensitive files","Enforce policies on user prompts before they are processed","Automate the creation and management of hook rules based on behavioral intent",[],{"codeQuality":267,"collectedAt":269,"documentation":270,"maintenance":273,"security":279,"testCoverage":281},{"hasLockfile":268},false,1778692665529,{"descriptionLength":271,"readmeSize":272},138,35166,{"closedIssues90d":11,"forks":274,"hasChangelog":275,"manifestVersion":276,"openIssues90d":11,"pushedAt":277,"stars":278},1,true,"2.0.0",1778672535000,6,{"hasNpmPackage":268,"license":280,"smitheryVerified":268},"MIT",{"hasCi":275,"hasTests":275},{"updatedAt":283},1778692689033,{"basePath":285,"githubOwner":20,"githubRepo":21,"locale":22,"slug":16,"type":286},"stacks/hookify","plugin",null,{"evaluate":289,"extract":291},{"promptVersionExtension":26,"promptVersionScoring":27,"score":254,"tags":290,"targetMarket":34,"tier":35},[257,258,259,31,30],{"commitSha":37,"license":280,"plugin":292},{"mcpCount":11,"provider":293,"skillCount":274},"classify",{"repoId":39},{"_creationTime":296,"_id":39,"identity":297,"providers":298,"workflow":777},1778692481646.1384,{"githubOwner":20,"githubRepo":21,"sourceUrl":17},{"classify":299,"discover":752,"github":755},{"commitSha":37,"extensions":300},[301,318,384,393,401,409,417,425,433,446,454,462,472,482,490,498,508,518,534,542,563,571,579,587,595,603,611,619,627,635,643,651,659,667,675,683,691,699,707,715,720,728,736,744],{"basePath":302,"description":303,"displayName":304,"installMethods":305,"rationale":306,"selectedPaths":307,"source":316,"sourceLanguage":22,"type":317},"","Configuration governance for Claude Code — bootstrap, audit, sync, and evolve .claude/ across projects","dotforge",{"claudeCode":15},"marketplace.json at .claude-plugin/marketplace.json",[308,311,313],{"path":309,"priority":310},".claude-plugin/marketplace.json","mandatory",{"path":312,"priority":310},"README.md",{"path":314,"priority":315},"LICENSE","high","rule","marketplace",{"basePath":302,"description":319,"displayName":304,"installMethods":320,"license":280,"rationale":321,"selectedPaths":322,"source":316,"sourceLanguage":22,"type":286},"Behavior governance for Claude Code — declarative runtime policies on tool calls (search-first, no-destructive-git, verify-before-done, …) compiled to PreToolUse hooks, plus configuration governance: 18 skills, 7 agents, 16 stacks, audit scoring, practices pipeline.",{"claudeCode":304},"plugin manifest at .claude-plugin/plugin.json",[323,325,326,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382],{"path":324,"priority":310},".claude-plugin/plugin.json",{"path":312,"priority":310},{"path":314,"priority":315},{"path":328,"priority":329},"skills/audit-project/SKILL.md","medium",{"path":331,"priority":329},"skills/benchmark/SKILL.md",{"path":333,"priority":329},"skills/bootstrap-project/SKILL.md",{"path":335,"priority":329},"skills/capture-practice/SKILL.md",{"path":337,"priority":329},"skills/diff-project/SKILL.md",{"path":339,"priority":329},"skills/domain-extract/SKILL.md",{"path":341,"priority":329},"skills/export-config/SKILL.md",{"path":343,"priority":329},"skills/forge-behavior/SKILL.md",{"path":345,"priority":329},"skills/init-project/SKILL.md",{"path":347,"priority":329},"skills/learn-project/SKILL.md",{"path":349,"priority":329},"skills/mcp-add/SKILL.md",{"path":351,"priority":329},"skills/plugin-generator/SKILL.md",{"path":353,"priority":329},"skills/reset-project/SKILL.md",{"path":355,"priority":329},"skills/rule-effectiveness/SKILL.md",{"path":357,"priority":329},"skills/scout-repos/SKILL.md",{"path":359,"priority":329},"skills/session-insights/SKILL.md",{"path":361,"priority":329},"skills/sync-template/SKILL.md",{"path":363,"priority":329},"skills/update-practices/SKILL.md",{"path":365,"priority":329},"skills/watch-upstream/SKILL.md",{"path":367,"priority":315},"agents/architect.md",{"path":369,"priority":315},"agents/code-reviewer.md",{"path":371,"priority":315},"agents/implementer.md",{"path":373,"priority":315},"agents/researcher.md",{"path":375,"priority":315},"agents/security-auditor.md",{"path":377,"priority":315},"agents/session-reviewer.md",{"path":379,"priority":315},"agents/test-runner.md",{"path":381,"priority":315},"hooks/detect-claude-changes.sh",{"path":383,"priority":315},"hooks/hooks.json",{"basePath":385,"description":386,"displayName":387,"installMethods":388,"rationale":389,"selectedPaths":390,"source":316,"sourceLanguage":22,"type":286},"stacks/aws-deploy","AWS CDK/SAM/CloudFormation infrastructure-as-code rules for Claude Code.","dotforge-stack-aws-deploy",{"claudeCode":387},"plugin manifest at stacks/aws-deploy/plugin.json",[391],{"path":392,"priority":310},"plugin.json",{"basePath":394,"description":395,"displayName":396,"installMethods":397,"rationale":398,"selectedPaths":399,"source":316,"sourceLanguage":22,"type":286},"stacks/data-analysis","SQLite/PostgreSQL, pandas/polars, and Jupyter notebook rules for data analysis with Claude Code.","dotforge-stack-data-analysis",{"claudeCode":396},"plugin manifest at stacks/data-analysis/plugin.json",[400],{"path":392,"priority":310},{"basePath":402,"description":403,"displayName":404,"installMethods":405,"rationale":406,"selectedPaths":407,"source":316,"sourceLanguage":22,"type":286},"stacks/devcontainer","Dev Container configuration, image pinning, and features rules for Claude Code.","dotforge-stack-devcontainer",{"claudeCode":404},"plugin manifest at stacks/devcontainer/plugin.json",[408],{"path":392,"priority":310},{"basePath":410,"description":411,"displayName":412,"installMethods":413,"rationale":414,"selectedPaths":415,"source":316,"sourceLanguage":22,"type":286},"stacks/docker-deploy","Docker Compose and Dockerfile best practices, health checks, and deployment rules for Claude Code.","dotforge-stack-docker-deploy",{"claudeCode":412},"plugin manifest at stacks/docker-deploy/plugin.json",[416],{"path":392,"priority":310},{"basePath":418,"description":419,"displayName":420,"installMethods":421,"rationale":422,"selectedPaths":423,"source":316,"sourceLanguage":22,"type":286},"stacks/gcp-cloud-run","GCP Cloud Run container deployment, Cloud Build, and health check rules for Claude Code.","dotforge-stack-gcp-cloud-run",{"claudeCode":420},"plugin manifest at stacks/gcp-cloud-run/plugin.json",[424],{"path":392,"priority":310},{"basePath":426,"description":427,"displayName":428,"installMethods":429,"rationale":430,"selectedPaths":431,"source":316,"sourceLanguage":22,"type":286},"stacks/go-api","Go 1.22+ with standard library net/http, Go modules, and API patterns rules for Claude Code.","dotforge-stack-go-api",{"claudeCode":428},"plugin manifest at stacks/go-api/plugin.json",[432],{"path":392,"priority":310},{"basePath":285,"description":46,"displayName":48,"installMethods":434,"rationale":435,"selectedPaths":436,"source":316,"sourceLanguage":22,"type":286},{"claudeCode":48},"plugin manifest at stacks/hookify/plugin.json",[437,438,440,442,444],{"path":392,"priority":310},{"path":439,"priority":329},"skills/hookify/SKILL.md",{"path":441,"priority":315},"hooks/hookify-pretooluse.py",{"path":443,"priority":315},"hooks/hookify-stop.py",{"path":445,"priority":315},"hooks/hookify-userpromptsubmit.py",{"basePath":447,"description":448,"displayName":449,"installMethods":450,"rationale":451,"selectedPaths":452,"source":316,"sourceLanguage":22,"type":286},"stacks/java-spring","Java 21+ with Spring Boot 3.x, Maven/Gradle, records, and virtual threads rules for Claude Code.","dotforge-stack-java-spring",{"claudeCode":449},"plugin manifest at stacks/java-spring/plugin.json",[453],{"path":392,"priority":310},{"basePath":455,"description":456,"displayName":457,"installMethods":458,"rationale":459,"selectedPaths":460,"source":316,"sourceLanguage":22,"type":286},"stacks/node-express","Node.js 20+ with Express/Fastify, TypeScript, and ESM module rules for Claude Code.","dotforge-stack-node-express",{"claudeCode":457},"plugin manifest at stacks/node-express/plugin.json",[461],{"path":392,"priority":310},{"basePath":463,"description":464,"displayName":465,"installMethods":466,"rationale":467,"selectedPaths":468,"source":316,"sourceLanguage":22,"type":286},"stacks/python-fastapi","Python 3.12+ with FastAPI, async/await, type hints, and Ruff linting rules for Claude Code.","dotforge-stack-python-fastapi",{"claudeCode":465},"plugin manifest at stacks/python-fastapi/plugin.json",[469,470],{"path":392,"priority":310},{"path":471,"priority":315},"hooks/lint-python.sh",{"basePath":473,"description":474,"displayName":475,"installMethods":476,"rationale":477,"selectedPaths":478,"source":316,"sourceLanguage":22,"type":286},"stacks/react-vite-ts","React 18+ with Vite, TypeScript strict mode, Tailwind CSS, and Zustand rules for Claude Code.","dotforge-stack-react-vite-ts",{"claudeCode":475},"plugin manifest at stacks/react-vite-ts/plugin.json",[479,480],{"path":392,"priority":310},{"path":481,"priority":315},"hooks/lint-ts.sh",{"basePath":483,"description":484,"displayName":485,"installMethods":486,"rationale":487,"selectedPaths":488,"source":316,"sourceLanguage":22,"type":286},"stacks/redis","Redis Streams, caching patterns, and pub/sub rules for Claude Code.","dotforge-stack-redis",{"claudeCode":485},"plugin manifest at stacks/redis/plugin.json",[489],{"path":392,"priority":310},{"basePath":491,"description":492,"displayName":493,"installMethods":494,"rationale":495,"selectedPaths":496,"source":316,"sourceLanguage":22,"type":286},"stacks/supabase","Supabase migrations, RLS policies, Edge Functions, and database rules for Claude Code.","dotforge-stack-supabase",{"claudeCode":493},"plugin manifest at stacks/supabase/plugin.json",[497],{"path":392,"priority":310},{"basePath":499,"description":500,"displayName":501,"installMethods":502,"rationale":503,"selectedPaths":504,"source":316,"sourceLanguage":22,"type":286},"stacks/swift-swiftui","Swift 5.9+ with SwiftUI, iOS 17+, @Observable, async/await, and SPM rules for Claude Code.","dotforge-stack-swift-swiftui",{"claudeCode":501},"plugin manifest at stacks/swift-swiftui/plugin.json",[505,506],{"path":392,"priority":310},{"path":507,"priority":315},"hooks/lint-swift.sh",{"basePath":509,"description":510,"displayName":511,"installMethods":512,"rationale":513,"selectedPaths":514,"source":316,"sourceLanguage":22,"type":286},"stacks/tdd","TDD workflow enforcement with auto-test hook","tdd",{"claudeCode":511},"plugin manifest at stacks/tdd/plugin.json",[515,516],{"path":392,"priority":310},{"path":517,"priority":315},"hooks/test-on-edit.sh",{"basePath":519,"description":520,"displayName":521,"installMethods":522,"rationale":523,"selectedPaths":524,"source":316,"sourceLanguage":22,"type":286},"stacks/trading","Trading & investment analysis — thesis tracking, earnings watch, screening, catalyst calendar, backtesting ADR gate. AR + US markets.","dotforge-stack-trading",{"claudeCode":521},"plugin manifest at stacks/trading/plugin.json",[525,526,528,530,532],{"path":392,"priority":310},{"path":527,"priority":329},"skills/catalyst-calendar/SKILL.md",{"path":529,"priority":329},"skills/earnings-watch/SKILL.md",{"path":531,"priority":329},"skills/screen/SKILL.md",{"path":533,"priority":329},"skills/thesis-tracker/SKILL.md",{"basePath":535,"description":536,"displayName":537,"installMethods":538,"rationale":539,"selectedPaths":540,"source":316,"sourceLanguage":22,"type":286},"stacks/vps-ssh","SSH/VPS deployment — remote host conventions, key management, and rsync/scp patterns for bare-metal or self-hosted deploys (Oracle Free Tier, Hetzner, DigitalOcean).","dotforge-stack-vps-ssh",{"claudeCode":537},"plugin manifest at stacks/vps-ssh/plugin.json",[541],{"path":392,"priority":310},{"basePath":543,"description":544,"displayName":545,"installMethods":546,"rationale":547,"selectedPaths":548,"source":316,"sourceLanguage":22,"type":23},"integrations/openclaw","dotforge configuration factory — audit, sync, status, insights across projects from any channel","forge",{"claudeCode":15},"SKILL.md frontmatter at integrations/openclaw/SKILL.md",[549,551,553,555,557,559,561],{"path":550,"priority":310},"SKILL.md",{"path":552,"priority":329},"AGENTS.md",{"path":554,"priority":329},"HEARTBEAT.md",{"path":556,"priority":329},"IDENTITY.md",{"path":558,"priority":329},"SOUL.md",{"path":560,"priority":329},"TOOLS.md",{"path":562,"priority":329},"USER.md",{"basePath":564,"description":565,"displayName":566,"installMethods":567,"rationale":568,"selectedPaths":569,"source":316,"sourceLanguage":22,"type":23},"skills/audit-project","Audits the Claude Code configuration of a project against the dotforge template. Generates a report with score and gaps.","audit-project",{"claudeCode":15},"SKILL.md frontmatter at skills/audit-project/SKILL.md",[570],{"path":550,"priority":310},{"basePath":572,"description":573,"displayName":574,"installMethods":575,"rationale":576,"selectedPaths":577,"source":316,"sourceLanguage":22,"type":23},"skills/benchmark","Compare Claude Code output with full config vs minimal config using standardized tasks per stack.","benchmark",{"claudeCode":15},"SKILL.md frontmatter at skills/benchmark/SKILL.md",[578],{"path":550,"priority":310},{"basePath":580,"description":581,"displayName":582,"installMethods":583,"rationale":584,"selectedPaths":585,"source":316,"sourceLanguage":22,"type":23},"skills/bootstrap-project","Initializes the Claude Code configuration in a new or existing project using the dotforge template.","bootstrap-project",{"claudeCode":15},"SKILL.md frontmatter at skills/bootstrap-project/SKILL.md",[586],{"path":550,"priority":310},{"basePath":588,"description":589,"displayName":590,"installMethods":591,"rationale":592,"selectedPaths":593,"source":316,"sourceLanguage":22,"type":23},"skills/capture-practice","Captures an insight or practice discovered during work and registers it in the dotforge practices/inbox.","capture-practice",{"claudeCode":15},"SKILL.md frontmatter at skills/capture-practice/SKILL.md",[594],{"path":550,"priority":310},{"basePath":596,"description":597,"displayName":598,"installMethods":599,"rationale":600,"selectedPaths":601,"source":316,"sourceLanguage":22,"type":23},"skills/diff-project","Shows what changed in dotforge since the project's last sync, to decide whether running /forge sync is worthwhile.","diff-project",{"claudeCode":15},"SKILL.md frontmatter at skills/diff-project/SKILL.md",[602],{"path":550,"priority":310},{"basePath":604,"description":605,"displayName":606,"installMethods":607,"rationale":608,"selectedPaths":609,"source":316,"sourceLanguage":22,"type":23},"skills/domain-extract","Extract domain knowledge from existing project sources and generate domain rules. Also handles vault sync and domain listing.","domain-extract",{"claudeCode":15},"SKILL.md frontmatter at skills/domain-extract/SKILL.md",[610],{"path":550,"priority":310},{"basePath":612,"description":613,"displayName":614,"installMethods":615,"rationale":616,"selectedPaths":617,"source":316,"sourceLanguage":22,"type":23},"skills/export-config","Export dotforge configuration to other AI code editors (Cursor, Codex, Windsurf, OpenClaw).","export-config",{"claudeCode":15},"SKILL.md frontmatter at skills/export-config/SKILL.md",[618],{"path":550,"priority":310},{"basePath":620,"description":621,"displayName":622,"installMethods":623,"rationale":624,"selectedPaths":625,"source":316,"sourceLanguage":22,"type":23},"skills/forge-behavior","Manage dotforge v3 behavior governance — view status, toggle behaviors, adjust strictness. Use when the user asks about active behaviors, wants to disable one for the current session, or adjust escalation thresholds.","forge-behavior",{"claudeCode":15},"SKILL.md frontmatter at skills/forge-behavior/SKILL.md",[626],{"path":550,"priority":310},{"basePath":628,"description":629,"displayName":630,"installMethods":631,"rationale":632,"selectedPaths":633,"source":316,"sourceLanguage":22,"type":23},"skills/init-project","Quick-start Claude Code configuration. Auto-detects stack, asks 4 questions to understand the project, generates complete config.","init-project",{"claudeCode":15},"SKILL.md frontmatter at skills/init-project/SKILL.md",[634],{"path":550,"priority":310},{"basePath":636,"description":637,"displayName":638,"installMethods":639,"rationale":640,"selectedPaths":641,"source":316,"sourceLanguage":22,"type":23},"skills/learn-project","Scan project code to detect patterns, dependencies, and conventions. Propose domain rules based on what the code actually does.","learn-project",{"claudeCode":15},"SKILL.md frontmatter at skills/learn-project/SKILL.md",[642],{"path":550,"priority":310},{"basePath":644,"description":645,"displayName":646,"installMethods":647,"rationale":648,"selectedPaths":649,"source":316,"sourceLanguage":22,"type":23},"skills/mcp-add","Install an MCP server template from dotforge into a project or global Claude Code config with a single command.","mcp-add",{"claudeCode":15},"SKILL.md frontmatter at skills/mcp-add/SKILL.md",[650],{"path":550,"priority":310},{"basePath":652,"description":653,"displayName":654,"installMethods":655,"rationale":656,"selectedPaths":657,"source":316,"sourceLanguage":22,"type":23},"skills/plugin-generator","Generate a Claude Code plugin package from the current project's dotforge configuration, ready for marketplace submission.","plugin-generator",{"claudeCode":15},"SKILL.md frontmatter at skills/plugin-generator/SKILL.md",[658],{"path":550,"priority":310},{"basePath":660,"description":661,"displayName":662,"installMethods":663,"rationale":664,"selectedPaths":665,"source":316,"sourceLanguage":22,"type":23},"skills/reset-project","Restore a project's .claude/ directory to the dotforge template from scratch, with backup and rollback option.","reset-project",{"claudeCode":15},"SKILL.md frontmatter at skills/reset-project/SKILL.md",[666],{"path":550,"priority":310},{"basePath":668,"description":669,"displayName":670,"installMethods":671,"rationale":672,"selectedPaths":673,"source":316,"sourceLanguage":22,"type":23},"skills/rule-effectiveness","Analyze which rules are actively used vs inert. Detect coverage gaps. Recommend pruning to reduce token consumption.","rule-effectiveness",{"claudeCode":15},"SKILL.md frontmatter at skills/rule-effectiveness/SKILL.md",[674],{"path":550,"priority":310},{"basePath":676,"description":677,"displayName":678,"installMethods":679,"rationale":680,"selectedPaths":681,"source":316,"sourceLanguage":22,"type":23},"skills/scout-repos","Fetch .claude/ configs from curated repos in sources.yml, compare against dotforge template, report novel patterns.","scout-repos",{"claudeCode":15},"SKILL.md frontmatter at skills/scout-repos/SKILL.md",[682],{"path":550,"priority":310},{"basePath":684,"description":685,"displayName":686,"installMethods":687,"rationale":688,"selectedPaths":689,"source":316,"sourceLanguage":22,"type":23},"skills/session-insights","Analyze past Claude Code sessions to extract patterns, metrics, and recommendations.","session-insights",{"claudeCode":15},"SKILL.md frontmatter at skills/session-insights/SKILL.md",[690],{"path":550,"priority":310},{"basePath":692,"description":693,"displayName":694,"installMethods":695,"rationale":696,"selectedPaths":697,"source":316,"sourceLanguage":22,"type":23},"skills/sync-template","Update an existing project's Claude Code configuration against the current dotforge template, without losing local customizations.","sync-template",{"claudeCode":15},"SKILL.md frontmatter at skills/sync-template/SKILL.md",[698],{"path":550,"priority":310},{"basePath":700,"description":701,"displayName":702,"installMethods":703,"rationale":704,"selectedPaths":705,"source":316,"sourceLanguage":22,"type":23},"skills/update-practices","Process the practices inbox, evaluate, incorporate into dotforge, and suggest propagation to projects.","update-practices",{"claudeCode":15},"SKILL.md frontmatter at skills/update-practices/SKILL.md",[706],{"path":550,"priority":310},{"basePath":708,"description":709,"displayName":710,"installMethods":711,"rationale":712,"selectedPaths":713,"source":316,"sourceLanguage":22,"type":23},"skills/watch-upstream","Fetch official Anthropic/Claude Code docs, detect changes relevant to dotforge, report deltas.","watch-upstream",{"claudeCode":15},"SKILL.md frontmatter at skills/watch-upstream/SKILL.md",[714],{"path":550,"priority":310},{"basePath":19,"description":13,"displayName":16,"installMethods":716,"rationale":717,"selectedPaths":718,"source":316,"sourceLanguage":22,"type":23},{"claudeCode":15},"SKILL.md frontmatter at stacks/hookify/skills/hookify/SKILL.md",[719],{"path":550,"priority":310},{"basePath":721,"description":722,"displayName":723,"installMethods":724,"rationale":725,"selectedPaths":726,"source":316,"sourceLanguage":22,"type":23},"stacks/trading/skills/catalyst-calendar","Maintain calendar of upcoming catalysts for portfolio positions and watchlist. Earnings dates, ex-div dates, regulatory events, macro releases. Triggers on \"catalysts\", \"upcoming events\", \"earnings calendar\", \"what's coming up\", \"catalyst calendar\".","catalyst-calendar",{"claudeCode":15},"SKILL.md frontmatter at stacks/trading/skills/catalyst-calendar/SKILL.md",[727],{"path":550,"priority":310},{"basePath":729,"description":730,"displayName":731,"installMethods":732,"rationale":733,"selectedPaths":734,"source":316,"sourceLanguage":22,"type":23},"stacks/trading/skills/earnings-watch","Quick post-earnings analysis for portfolio holdings. Beat/miss, key metrics, thesis impact, estimate revision. Triggers on \"earnings update\", \"quarterly results\", \"Q1/Q2/Q3/Q4 results\", \"post-earnings\".","earnings-watch",{"claudeCode":15},"SKILL.md frontmatter at stacks/trading/skills/earnings-watch/SKILL.md",[735],{"path":550,"priority":310},{"basePath":737,"description":738,"displayName":739,"installMethods":740,"rationale":741,"selectedPaths":742,"source":316,"sourceLanguage":22,"type":23},"stacks/trading/skills/screen","Run quantitative or thematic stock screens to surface investment ideas. Supports AR (BYMA, CEDEARs) and US markets. Triggers on \"screen\", \"stock screen\", \"find stocks\", \"investment ideas\", \"what looks interesting\".","screen",{"claudeCode":15},"SKILL.md frontmatter at stacks/trading/skills/screen/SKILL.md",[743],{"path":550,"priority":310},{"basePath":745,"description":746,"displayName":747,"installMethods":748,"rationale":749,"selectedPaths":750,"source":316,"sourceLanguage":22,"type":23},"stacks/trading/skills/thesis-tracker","Track and update investment theses for portfolio positions and watchlist. Maintains scorecard of pillars, catalysts, and conviction level. Triggers on \"update thesis\", \"thesis check\", \"is my thesis intact\", \"add data point\", \"review positions\".","thesis-tracker",{"claudeCode":15},"SKILL.md frontmatter at stacks/trading/skills/thesis-tracker/SKILL.md",[751],{"path":550,"priority":310},{"sources":753},[754],"manual",{"closedIssues90d":11,"description":756,"forks":274,"homepage":757,"license":280,"openIssues90d":11,"pushedAt":277,"readmeSize":272,"stars":278,"topics":758},"Configuration governance for Claude Code. Bootstrap, audit, sync, and evolve .claude/ across projects.","https://github.com/luiseiman/dotforge",[759,760,257,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776],"ai-coding","anthropic","claude-code-agents","claude-code-config","claude-code-hooks","claude-code-plugins","claude-code-skills","claude-code-template","claude-md","cli-tools","configuration-management","developer-tools","claude-code-audit","claude-code-rules","claude-code-plugin","claude-plugin","mcp-servers","prompt-engineering",{"classifiedAt":778,"discoverAt":779,"extractAt":780,"githubAt":780,"updatedAt":778},1778692487649,1778692481646,1778692485708,[30,257,31,258,259],{"evaluatedAt":283,"extractAt":43,"updatedAt":283},[],[785,822,842,863,893,926],{"_creationTime":786,"_id":787,"community":788,"display":789,"identity":795,"providers":798,"relations":815,"tags":818,"workflow":819},1778683100520.2961,"k1754vkdjckrkqvz9x7tjrvhzn86n1gc",{"reviewCount":11},{"description":790,"installMethods":791,"name":793,"sourceUrl":794},"AI music generation workflow for Suno - album concepts, lyrics, prompts, mastering, release",{"claudeCode":792},"bitwize-music","Claude AI Music Skills","https://github.com/bitwize-music-studio/claude-ai-music-skills",{"basePath":302,"githubOwner":796,"githubRepo":797,"locale":22,"slug":797,"type":286},"bitwize-music-studio","claude-ai-music-skills",{"evaluate":799,"extract":811},{"promptVersionExtension":26,"promptVersionScoring":27,"score":800,"tags":801,"targetMarket":34,"tier":35},100,[802,803,804,805,806,807,808,809,810,257],"music-generation","ai","suno","audio-production","workflow","lyrics","mastering","cli","python",{"commitSha":37,"license":812,"plugin":813},"CC0-1.0",{"mcpCount":11,"provider":293,"skillCount":814},54,{"parentExtensionId":816,"repoId":817},"k17bfryzkzywswf1bkgrtch16d86n8t9","kd70cgrajsrnk5gmq60rhq30zd86nyc0",[803,805,257,809,807,808,802,810,804,806],{"evaluatedAt":820,"extractAt":821,"updatedAt":820},1778683131031,1778683100520,{"_creationTime":823,"_id":824,"community":825,"display":826,"identity":828,"providers":830,"relations":838,"tags":839,"workflow":840},1778692488329.011,"k17b0q52q1b77nvq2sacqreth586n5hm",{"reviewCount":11},{"description":464,"installMethods":827,"name":465,"sourceUrl":17},{"claudeCode":465},{"basePath":463,"githubOwner":20,"githubRepo":21,"locale":22,"slug":829,"type":286},"python-fastapi",{"evaluate":831,"extract":837},{"promptVersionExtension":26,"promptVersionScoring":27,"score":800,"tags":832,"targetMarket":34,"tier":35},[810,833,834,835,31,836],"fastapi","linting","ruff","devops",{"commitSha":37},{"repoId":39},[31,836,833,834,810,835],{"evaluatedAt":841,"extractAt":43,"updatedAt":841},1778692747510,{"_creationTime":843,"_id":844,"community":845,"display":846,"identity":848,"providers":850,"relations":859,"tags":860,"workflow":861},1778692488329.0107,"k179bvp22xcxq4xg9bkgpkhw5s86mstq",{"reviewCount":11},{"description":456,"installMethods":847,"name":304,"sourceUrl":17},{"claudeCode":457},{"basePath":455,"githubOwner":20,"githubRepo":21,"locale":22,"slug":849,"type":286},"node-express",{"evaluate":851,"extract":858},{"promptVersionExtension":26,"promptVersionScoring":27,"score":800,"tags":852,"targetMarket":34,"tier":35},[31,853,854,855,856,857],"management","policy","auditing","bash","claudecode",{"commitSha":37,"license":280},{"repoId":39},[855,856,857,31,853,854],{"evaluatedAt":862,"extractAt":43,"updatedAt":862},1778692726682,{"_creationTime":864,"_id":865,"community":866,"display":867,"identity":872,"providers":875,"relations":885,"tags":888,"workflow":889},1778692410306.4602,"k1754468vafhhveq2yzm512khn86n6tb",{"reviewCount":11},{"description":868,"installMethods":869,"name":870,"sourceUrl":871},"让 Claude 真正遵循您的规则。通过自然语言保存规则，通过钩子强制执行规则，跨会话记忆规则。",{"claudeCode":870},"obey","https://github.com/Lexxes-Projects/obey",{"basePath":302,"githubOwner":873,"githubRepo":870,"locale":874,"slug":870,"type":286},"Lexxes-Projects","zh-CN",{"evaluate":876,"extract":882},{"promptVersionExtension":26,"promptVersionScoring":27,"score":800,"tags":877,"targetMarket":34,"tier":35},[259,878,879,880,881],"enforcement","llm-behavior","ai-assistant","productivity",{"commitSha":37,"license":280,"plugin":883},{"mcpCount":11,"provider":293,"skillCount":884},3,{"repoId":886,"translatedFrom":887},"kd75x7p4gkt5vx785rmc3msdhs86neap","k17ccytjrakavnrzgdbzkbcjj186nr1f",[880,878,879,881,259],{"evaluatedAt":890,"extractAt":891,"updatedAt":892},1778692293423,1778692275424,1778692410306,{"_creationTime":894,"_id":895,"community":896,"display":897,"identity":902,"providers":907,"relations":919,"tags":922,"workflow":923},1778675056600.2026,"k171b5pw3erme9qy3334r4gbv586mzhf",{"reviewCount":11},{"description":898,"installMethods":899,"name":900,"sourceUrl":901},"Self-Improving Agent: curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills. Provides /si:review, /si:promote, /si:extract, /si:status, and /si:remember slash commands.",{"claudeCode":900},"si","https://github.com/alirezarezvani/claude-skills",{"basePath":903,"githubOwner":904,"githubRepo":905,"locale":22,"slug":906,"type":286},"engineering-team/self-improving-agent","alirezarezvani","claude-skills","self-improving-agent",{"evaluate":908,"extract":916},{"promptVersionExtension":26,"promptVersionScoring":27,"score":800,"tags":909,"targetMarket":34,"tier":35},[910,911,912,913,259,914,915],"memory","auto-memory","self-improvement","learning","skills","code-curation",{"commitSha":37,"license":280,"plugin":917},{"mcpCount":11,"provider":293,"skillCount":918},4,{"parentExtensionId":920,"repoId":921},"k17dce6sbramb6sxm7ksr3928x86ncfs","kd7ff9s1w43mfyy1n7hf87816186m6px",[911,915,913,910,259,912,914],{"evaluatedAt":924,"extractAt":925,"updatedAt":924},1778675366945,1778675056600,{"_creationTime":927,"_id":928,"community":929,"display":930,"identity":935,"providers":939,"relations":947,"tags":950,"workflow":951},1778698371743.7026,"k175pn6bnbbfyybfj0c7g5xm8h86nc75",{"reviewCount":11},{"description":931,"installMethods":932,"name":933,"sourceUrl":934},"Automatic long-term memory for Claude Code via Hindsight. Recalls relevant memories before each prompt, retains conversation transcripts, and provides knowledge page tools.",{"claudeCode":933},"hindsight-memory","https://github.com/vectorize-io/hindsight",{"basePath":936,"githubOwner":937,"githubRepo":938,"locale":22,"slug":257,"type":286},"hindsight-integrations/claude-code","vectorize-io","hindsight",{"evaluate":940,"extract":945},{"promptVersionExtension":26,"promptVersionScoring":27,"score":28,"tags":941,"targetMarket":34,"tier":35},[910,938,942,943,257,944],"llm","long-term-memory","agent",{"commitSha":37,"license":280,"plugin":946},{"mcpCount":11,"provider":293,"skillCount":274},{"parentExtensionId":948,"repoId":949},"k178tthvkav2341vt1q8d8j8yn86ncbf","kd7etqyey7pjacrkp7wzfh4vts86nq1z",[944,257,938,942,943,910],{"evaluatedAt":952,"extractAt":953,"updatedAt":952},1778698417908,1778698371743]