[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-luiseiman-hookify-zh-CN":3,"guides-for-luiseiman-hookify":766,"similar-k174ed0b4e6yg5gke05fxp9evh86mgh3-zh-CN":767},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":239,"isFallback":231,"parentExtension":244,"providers":273,"relations":277,"repo":278,"tags":764,"workflow":765},1778692488329.0178,"k174ed0b4e6yg5gke05fxp9evh86mgh3",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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":12},"luiseiman/claude-kit","hookify","https://github.com/luiseiman/claude-kit",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":222,"workflow":237},1778693386498.389,"kn71m2pasga47317b6tyms0dy586ngxt","en",{"checks":20,"evaluatedAt":192,"extensionSummary":193,"features":194,"nonGoals":200,"promptVersionExtension":204,"promptVersionScoring":205,"purpose":206,"rationale":207,"score":208,"summary":209,"tags":210,"targetMarket":215,"tier":216,"useCases":217},[21,26,29,32,36,39,44,48,51,54,58,62,65,69,72,75,78,81,84,87,91,95,99,103,107,110,113,116,120,123,126,129,132,135,138,142,146,150,153,157,160,163,166,169,173,176,179,182,185,189],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of creating dynamic hook rules from natural language and identifies the target artifact (.claude/hookify.*.local.md files) and user intent (warn or block operations).",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers a clear value proposition by allowing users to generate hook rules from natural language, which is significantly more user-friendly than manually editing configuration files or directly writing complex hooks.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill appears production-ready, capable of generating hook rules based on user intent and providing clear instructions for generating, confirming, and testing these rules.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill has a clear and focused responsibility: generating dynamic hook rules from natural language descriptions for the .claude/hookify system.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the skill's functionality, clearly stating its purpose and how it's triggered.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This check is not applicable as the skill itself is the tool and does not expose other tools.",{"category":45,"check":46,"severity":42,"summary":47},"Documentation","Configuration & parameter reference","The skill does not appear to have explicit configuration parameters or options that require documentation beyond the core functionality described.",{"category":33,"check":49,"severity":42,"summary":50},"Tool naming","This check is not applicable as the skill does not expose user-facing tools or commands.",{"category":33,"check":52,"severity":42,"summary":53},"Minimal I/O surface","This check is not applicable as the skill's primary interaction is through natural language and generated file content, not tool parameters or structured output.",{"category":55,"check":56,"severity":24,"summary":57},"License","License usability","The MIT license is clearly declared in the LICENSE file, permitting broad usage.",{"category":59,"check":60,"severity":24,"summary":61},"Maintenance","Commit recency","The repository shows recent commits as of May 13, 2026, indicating active maintenance.",{"category":59,"check":63,"severity":42,"summary":64},"Dependency Management","The skill appears to be a self-contained script using only standard libraries, thus has no third-party dependencies to manage.",{"category":66,"check":67,"severity":24,"summary":68},"Security","Secret Management","The skill does not handle or expose any secrets, and its functionality does not involve sensitive data.",{"category":66,"check":70,"severity":24,"summary":71},"Injection","The skill operates on user-provided natural language descriptions to generate configuration files and does not load or execute external data as instructions.",{"category":66,"check":73,"severity":24,"summary":74},"Transitive Supply-Chain Grenades","The skill does not fetch external content at runtime and operates solely on its bundled code and user input.",{"category":66,"check":76,"severity":24,"summary":77},"Sandbox Isolation","The skill's core function is generating configuration files and does not involve operations that would modify files outside its intended scope or the project directory.",{"category":66,"check":79,"severity":24,"summary":80},"Sandbox escape primitives","The skill's operation of generating configuration files does not involve detached processes or retry loops that could lead to sandbox escapes.",{"category":66,"check":82,"severity":24,"summary":83},"Data Exfiltration","The skill does not perform any outbound calls or references to confidential data; it only generates local configuration files.",{"category":66,"check":85,"severity":24,"summary":86},"Hidden Text Tricks","The bundled content and descriptions appear to be free of hidden text tricks or malicious formatting.",{"category":88,"check":89,"severity":24,"summary":90},"Hooks","Opaque code execution","The skill's code appears to be plain, readable Python and does not involve obfuscation techniques like base64 encoding or runtime fetched scripts.",{"category":92,"check":93,"severity":24,"summary":94},"Portability","Structural Assumption","The skill correctly assumes it will generate files within the `.claude/hookify/` directory and does not make assumptions about user project structure outside of that context.",{"category":96,"check":97,"severity":24,"summary":98},"Trust","Issues Attention","With 0 open and 0 closed issues in the last 90 days, the repository is not actively used for issue discussion, but this is acceptable for a tool of this scope.",{"category":100,"check":101,"severity":24,"summary":102},"Versioning","Release Management","The project has a `CHANGELOG.md` file and recent commits, indicating a managed release process, and the latest commit is recent.",{"category":104,"check":105,"severity":24,"summary":106},"Code Execution","Validation","The skill parses natural language to extract structured data, implying internal validation and sanitization of user input to construct valid rule configurations.",{"category":66,"check":108,"severity":24,"summary":109},"Unguarded Destructive Operations","The skill only generates files and does not perform any destructive operations.",{"category":104,"check":111,"severity":24,"summary":112},"Error Handling","The skill is expected to handle errors gracefully during natural language parsing and file generation, exiting non-zero on failure with clear messages.",{"category":104,"check":114,"severity":42,"summary":115},"Logging","The skill's core function is file generation and user interaction, not destructive actions or outbound calls, making explicit audit logging less critical.",{"category":117,"check":118,"severity":24,"summary":119},"Compliance","GDPR","The skill does not operate on personal data; it processes natural language descriptions to generate configuration rules.",{"category":117,"check":121,"severity":24,"summary":122},"Target market","The skill is language-agnostic and operates on file system operations relevant to Claude Code, making it globally applicable.",{"category":92,"check":124,"severity":24,"summary":125},"Runtime stability","The skill appears to rely on standard Python libraries and bash commands, making it portable across POSIX-compliant systems.",{"category":45,"check":127,"severity":24,"summary":128},"README","The README provides a comprehensive overview of the dotforge project, including the hookify skill, and is well-structured.",{"category":33,"check":130,"severity":42,"summary":131},"Tool surface size","This check is not applicable as the skill itself is the tool and does not expose multiple distinct commands or tools.",{"category":40,"check":133,"severity":42,"summary":134},"Overlapping near-synonym tools","This check is not applicable as the skill does not expose multiple tools or commands.",{"category":45,"check":136,"severity":24,"summary":137},"Phantom features","All advertised features, such as generating rules from natural language and creating specific file types, are implemented in the provided code.",{"category":139,"check":140,"severity":24,"summary":141},"Install","Installation instruction","The README provides clear installation instructions via a curl command and includes examples of usage.",{"category":143,"check":144,"severity":24,"summary":145},"Errors","Actionable error messages","Given the nature of the skill, errors during natural language parsing or file generation would likely be actionable, guiding the user on how to correct their input or environment.",{"category":147,"check":148,"severity":24,"summary":149},"Execution","Pinned dependencies","The skill relies on standard Python and bash, and any dependencies are implicitly managed by the Claude Code environment, suggesting no unusual pinning is required.",{"category":33,"check":151,"severity":42,"summary":152},"Dry-run preview","The skill's function is to generate configuration files, which is not a destructive operation and does not involve sending data outward in a way that would require a dry-run preview.",{"category":154,"check":155,"severity":42,"summary":156},"Protocol","Idempotent retry & timeouts","The skill does not involve remote calls or state-changing operations that require idempotency or timeouts.",{"category":117,"check":158,"severity":24,"summary":159},"Telemetry opt-in","The skill does not appear to emit any telemetry.",{"category":40,"check":161,"severity":24,"summary":162},"Precise Purpose","The description precisely states the skill's purpose: creating dynamic hook rules from natural language, targeting .claude/hookify.*.local.md files, and lists trigger phrases.",{"category":40,"check":164,"severity":24,"summary":165},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the skill's core capability and triggers.",{"category":45,"check":167,"severity":24,"summary":168},"Concise Body","The SKILL.md body is concise, outlining steps and providing examples without excessive verbosity or embedding large external materials.",{"category":170,"check":171,"severity":24,"summary":172},"Context","Progressive Disclosure","The SKILL.md structure with clear steps and examples within the main file, without needing external references for this scope, adheres to progressive disclosure.",{"category":170,"check":174,"severity":42,"summary":175},"Forked exploration","The skill is not an exploration-heavy tool; it directly generates configuration based on input, so forked exploration is not applicable.",{"category":22,"check":177,"severity":24,"summary":178},"Usage examples","The SKILL.md provides clear, end-to-end examples of natural language inputs and the expected rule generation outcome.",{"category":22,"check":180,"severity":24,"summary":181},"Edge cases","The SKILL.md documentation addresses potential edge cases and limitations, such as complex regex patterns and the preference for 'warn' over 'block'.",{"category":104,"check":183,"severity":42,"summary":184},"Tool Fallback","The skill does not appear to rely on external tools like an MCP server, thus fallback mechanisms are not applicable.",{"category":186,"check":187,"severity":24,"summary":188},"Safety","Halt on unexpected state","The skill's generation process implies it would halt and report errors if unexpected input or state prevented rule creation.",{"category":92,"check":190,"severity":24,"summary":191},"Cross-skill coupling","The skill is self-contained and does not rely on other specific skills being loaded simultaneously.",1778693386386,"This skill generates .claude/hookify.*.local.md files from natural language descriptions, allowing users to create dynamic rules for warning or blocking operations. It handles intent parsing (event type, action, pattern, field) and generates rule files with multi-condition support.",[195,196,197,198,199],"Create dynamic hook rules from natural language","Generate .claude/hookify.*.local.md files","Support for warn or block actions","Parse event type, action, pattern, and field","Handle multi-condition rules with 'conditions' block",[201,202,203],"Manually writing hook rule files","Managing complex regular expressions without clear intent","Operating outside the .claude/hookify system","3.0.0","4.4.0","To empower users to create and manage complex Claude Code hook rules using natural language, simplifying runtime policy enforcement.","This skill is exceptionally well-documented and implemented, addressing a clear user need with a focused scope and robust examples, leading to a verified tier.",99,"Excellent skill for generating dynamic hook rules from natural language.",[211,212,213,214],"automation","configuration","code-generation","rules-engine","global","verified",[218,219,220,221],"Warn when using dangerous commands like 'rm -rf'","Block editing sensitive files like '.env'","Require specific actions (e.g., running tests) before session end","Create custom rules for application-specific code patterns",{"codeQuality":223,"collectedAt":225,"documentation":226,"maintenance":229,"security":234,"testCoverage":236},{"hasLockfile":224},false,1778693372521,{"descriptionLength":227,"readmeSize":228},242,35166,{"closedIssues90d":8,"forks":230,"hasChangelog":231,"openIssues90d":8,"pushedAt":232,"stars":233},1,true,1778672535000,6,{"hasNpmPackage":224,"license":235,"smitheryVerified":224},"MIT",{"hasCi":231,"hasTests":231},{"updatedAt":238},1778693386498,{"basePath":240,"githubOwner":241,"githubRepo":242,"locale":18,"slug":13,"type":243},"stacks/hookify/skills/hookify","luiseiman","claude-kit","skill",{"_creationTime":245,"_id":246,"community":247,"display":248,"identity":252,"parentExtension":255,"providers":256,"relations":267,"tags":269,"workflow":270},1778692488329.0103,"k177jbzwkybyg95prfv25npnas86m60g",{"reviewCount":8},{"description":249,"installMethods":250,"name":251,"sourceUrl":14},"Dynamic hook rules from natural language. Create .claude/hookify.*.local.md files that act as warn/block rules without editing hooks.json.",{"claudeCode":251},"dotforge-stack-hookify",{"basePath":253,"githubOwner":241,"githubRepo":242,"locale":18,"slug":13,"type":254},"stacks/hookify","plugin",null,{"evaluate":257,"extract":263},{"promptVersionExtension":204,"promptVersionScoring":205,"score":258,"tags":259,"targetMarket":215,"tier":216},97,[260,261,262,212,211],"claude-code","hooks","rules",{"commitSha":264,"license":235,"plugin":265},"HEAD",{"mcpCount":8,"provider":266,"skillCount":230},"classify",{"repoId":268},"kd79wqc8an5wh20cc2znr8tyb586mxwx",[211,260,212,261,262],{"evaluatedAt":271,"extractAt":272,"updatedAt":271},1778692689033,1778692488329,{"evaluate":274,"extract":276},{"promptVersionExtension":204,"promptVersionScoring":205,"score":208,"tags":275,"targetMarket":215,"tier":216},[211,212,213,214],{"commitSha":264},{"parentExtensionId":246,"repoId":268},{"_creationTime":279,"_id":268,"identity":280,"providers":281,"workflow":760},1778692481646.1384,{"githubOwner":241,"githubRepo":242,"sourceUrl":14},{"classify":282,"discover":735,"github":738},{"commitSha":264,"extensions":283},[284,301,367,376,384,392,400,408,416,429,437,445,455,465,473,481,491,501,517,525,546,554,562,570,578,586,594,602,610,618,626,634,642,650,658,666,674,682,690,698,703,711,719,727],{"basePath":285,"description":286,"displayName":287,"installMethods":288,"rationale":289,"selectedPaths":290,"source":299,"sourceLanguage":18,"type":300},"","Configuration governance for Claude Code — bootstrap, audit, sync, and evolve .claude/ across projects","dotforge",{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[291,294,296],{"path":292,"priority":293},".claude-plugin/marketplace.json","mandatory",{"path":295,"priority":293},"README.md",{"path":297,"priority":298},"LICENSE","high","rule","marketplace",{"basePath":285,"description":302,"displayName":287,"installMethods":303,"license":235,"rationale":304,"selectedPaths":305,"source":299,"sourceLanguage":18,"type":254},"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":287},"plugin manifest at .claude-plugin/plugin.json",[306,308,309,310,313,315,317,319,321,323,325,327,329,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365],{"path":307,"priority":293},".claude-plugin/plugin.json",{"path":295,"priority":293},{"path":297,"priority":298},{"path":311,"priority":312},"skills/audit-project/SKILL.md","medium",{"path":314,"priority":312},"skills/benchmark/SKILL.md",{"path":316,"priority":312},"skills/bootstrap-project/SKILL.md",{"path":318,"priority":312},"skills/capture-practice/SKILL.md",{"path":320,"priority":312},"skills/diff-project/SKILL.md",{"path":322,"priority":312},"skills/domain-extract/SKILL.md",{"path":324,"priority":312},"skills/export-config/SKILL.md",{"path":326,"priority":312},"skills/forge-behavior/SKILL.md",{"path":328,"priority":312},"skills/init-project/SKILL.md",{"path":330,"priority":312},"skills/learn-project/SKILL.md",{"path":332,"priority":312},"skills/mcp-add/SKILL.md",{"path":334,"priority":312},"skills/plugin-generator/SKILL.md",{"path":336,"priority":312},"skills/reset-project/SKILL.md",{"path":338,"priority":312},"skills/rule-effectiveness/SKILL.md",{"path":340,"priority":312},"skills/scout-repos/SKILL.md",{"path":342,"priority":312},"skills/session-insights/SKILL.md",{"path":344,"priority":312},"skills/sync-template/SKILL.md",{"path":346,"priority":312},"skills/update-practices/SKILL.md",{"path":348,"priority":312},"skills/watch-upstream/SKILL.md",{"path":350,"priority":298},"agents/architect.md",{"path":352,"priority":298},"agents/code-reviewer.md",{"path":354,"priority":298},"agents/implementer.md",{"path":356,"priority":298},"agents/researcher.md",{"path":358,"priority":298},"agents/security-auditor.md",{"path":360,"priority":298},"agents/session-reviewer.md",{"path":362,"priority":298},"agents/test-runner.md",{"path":364,"priority":298},"hooks/detect-claude-changes.sh",{"path":366,"priority":298},"hooks/hooks.json",{"basePath":368,"description":369,"displayName":370,"installMethods":371,"rationale":372,"selectedPaths":373,"source":299,"sourceLanguage":18,"type":254},"stacks/aws-deploy","AWS CDK/SAM/CloudFormation infrastructure-as-code rules for Claude Code.","dotforge-stack-aws-deploy",{"claudeCode":370},"plugin manifest at stacks/aws-deploy/plugin.json",[374],{"path":375,"priority":293},"plugin.json",{"basePath":377,"description":378,"displayName":379,"installMethods":380,"rationale":381,"selectedPaths":382,"source":299,"sourceLanguage":18,"type":254},"stacks/data-analysis","SQLite/PostgreSQL, pandas/polars, and Jupyter notebook rules for data analysis with Claude Code.","dotforge-stack-data-analysis",{"claudeCode":379},"plugin manifest at stacks/data-analysis/plugin.json",[383],{"path":375,"priority":293},{"basePath":385,"description":386,"displayName":387,"installMethods":388,"rationale":389,"selectedPaths":390,"source":299,"sourceLanguage":18,"type":254},"stacks/devcontainer","Dev Container configuration, image pinning, and features rules for Claude Code.","dotforge-stack-devcontainer",{"claudeCode":387},"plugin manifest at stacks/devcontainer/plugin.json",[391],{"path":375,"priority":293},{"basePath":393,"description":394,"displayName":395,"installMethods":396,"rationale":397,"selectedPaths":398,"source":299,"sourceLanguage":18,"type":254},"stacks/docker-deploy","Docker Compose and Dockerfile best practices, health checks, and deployment rules for Claude Code.","dotforge-stack-docker-deploy",{"claudeCode":395},"plugin manifest at stacks/docker-deploy/plugin.json",[399],{"path":375,"priority":293},{"basePath":401,"description":402,"displayName":403,"installMethods":404,"rationale":405,"selectedPaths":406,"source":299,"sourceLanguage":18,"type":254},"stacks/gcp-cloud-run","GCP Cloud Run container deployment, Cloud Build, and health check rules for Claude Code.","dotforge-stack-gcp-cloud-run",{"claudeCode":403},"plugin manifest at stacks/gcp-cloud-run/plugin.json",[407],{"path":375,"priority":293},{"basePath":409,"description":410,"displayName":411,"installMethods":412,"rationale":413,"selectedPaths":414,"source":299,"sourceLanguage":18,"type":254},"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":411},"plugin manifest at stacks/go-api/plugin.json",[415],{"path":375,"priority":293},{"basePath":253,"description":249,"displayName":251,"installMethods":417,"rationale":418,"selectedPaths":419,"source":299,"sourceLanguage":18,"type":254},{"claudeCode":251},"plugin manifest at stacks/hookify/plugin.json",[420,421,423,425,427],{"path":375,"priority":293},{"path":422,"priority":312},"skills/hookify/SKILL.md",{"path":424,"priority":298},"hooks/hookify-pretooluse.py",{"path":426,"priority":298},"hooks/hookify-stop.py",{"path":428,"priority":298},"hooks/hookify-userpromptsubmit.py",{"basePath":430,"description":431,"displayName":432,"installMethods":433,"rationale":434,"selectedPaths":435,"source":299,"sourceLanguage":18,"type":254},"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":432},"plugin manifest at stacks/java-spring/plugin.json",[436],{"path":375,"priority":293},{"basePath":438,"description":439,"displayName":440,"installMethods":441,"rationale":442,"selectedPaths":443,"source":299,"sourceLanguage":18,"type":254},"stacks/node-express","Node.js 20+ with Express/Fastify, TypeScript, and ESM module rules for Claude Code.","dotforge-stack-node-express",{"claudeCode":440},"plugin manifest at stacks/node-express/plugin.json",[444],{"path":375,"priority":293},{"basePath":446,"description":447,"displayName":448,"installMethods":449,"rationale":450,"selectedPaths":451,"source":299,"sourceLanguage":18,"type":254},"stacks/python-fastapi","Python 3.12+ with FastAPI, async/await, type hints, and Ruff linting rules for Claude Code.","dotforge-stack-python-fastapi",{"claudeCode":448},"plugin manifest at stacks/python-fastapi/plugin.json",[452,453],{"path":375,"priority":293},{"path":454,"priority":298},"hooks/lint-python.sh",{"basePath":456,"description":457,"displayName":458,"installMethods":459,"rationale":460,"selectedPaths":461,"source":299,"sourceLanguage":18,"type":254},"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":458},"plugin manifest at stacks/react-vite-ts/plugin.json",[462,463],{"path":375,"priority":293},{"path":464,"priority":298},"hooks/lint-ts.sh",{"basePath":466,"description":467,"displayName":468,"installMethods":469,"rationale":470,"selectedPaths":471,"source":299,"sourceLanguage":18,"type":254},"stacks/redis","Redis Streams, caching patterns, and pub/sub rules for Claude Code.","dotforge-stack-redis",{"claudeCode":468},"plugin manifest at stacks/redis/plugin.json",[472],{"path":375,"priority":293},{"basePath":474,"description":475,"displayName":476,"installMethods":477,"rationale":478,"selectedPaths":479,"source":299,"sourceLanguage":18,"type":254},"stacks/supabase","Supabase migrations, RLS policies, Edge Functions, and database rules for Claude Code.","dotforge-stack-supabase",{"claudeCode":476},"plugin manifest at stacks/supabase/plugin.json",[480],{"path":375,"priority":293},{"basePath":482,"description":483,"displayName":484,"installMethods":485,"rationale":486,"selectedPaths":487,"source":299,"sourceLanguage":18,"type":254},"stacks/swift-swiftui","Swift 5.9+ with SwiftUI, iOS 17+, @Observable, async/await, and SPM rules for Claude Code.","dotforge-stack-swift-swiftui",{"claudeCode":484},"plugin manifest at stacks/swift-swiftui/plugin.json",[488,489],{"path":375,"priority":293},{"path":490,"priority":298},"hooks/lint-swift.sh",{"basePath":492,"description":493,"displayName":494,"installMethods":495,"rationale":496,"selectedPaths":497,"source":299,"sourceLanguage":18,"type":254},"stacks/tdd","TDD workflow enforcement with auto-test hook","tdd",{"claudeCode":494},"plugin manifest at stacks/tdd/plugin.json",[498,499],{"path":375,"priority":293},{"path":500,"priority":298},"hooks/test-on-edit.sh",{"basePath":502,"description":503,"displayName":504,"installMethods":505,"rationale":506,"selectedPaths":507,"source":299,"sourceLanguage":18,"type":254},"stacks/trading","Trading & investment analysis — thesis tracking, earnings watch, screening, catalyst calendar, backtesting ADR gate. AR + US markets.","dotforge-stack-trading",{"claudeCode":504},"plugin manifest at stacks/trading/plugin.json",[508,509,511,513,515],{"path":375,"priority":293},{"path":510,"priority":312},"skills/catalyst-calendar/SKILL.md",{"path":512,"priority":312},"skills/earnings-watch/SKILL.md",{"path":514,"priority":312},"skills/screen/SKILL.md",{"path":516,"priority":312},"skills/thesis-tracker/SKILL.md",{"basePath":518,"description":519,"displayName":520,"installMethods":521,"rationale":522,"selectedPaths":523,"source":299,"sourceLanguage":18,"type":254},"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":520},"plugin manifest at stacks/vps-ssh/plugin.json",[524],{"path":375,"priority":293},{"basePath":526,"description":527,"displayName":528,"installMethods":529,"rationale":530,"selectedPaths":531,"source":299,"sourceLanguage":18,"type":243},"integrations/openclaw","dotforge configuration factory — audit, sync, status, insights across projects from any channel","forge",{"claudeCode":12},"SKILL.md frontmatter at integrations/openclaw/SKILL.md",[532,534,536,538,540,542,544],{"path":533,"priority":293},"SKILL.md",{"path":535,"priority":312},"AGENTS.md",{"path":537,"priority":312},"HEARTBEAT.md",{"path":539,"priority":312},"IDENTITY.md",{"path":541,"priority":312},"SOUL.md",{"path":543,"priority":312},"TOOLS.md",{"path":545,"priority":312},"USER.md",{"basePath":547,"description":548,"displayName":549,"installMethods":550,"rationale":551,"selectedPaths":552,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at skills/audit-project/SKILL.md",[553],{"path":533,"priority":293},{"basePath":555,"description":556,"displayName":557,"installMethods":558,"rationale":559,"selectedPaths":560,"source":299,"sourceLanguage":18,"type":243},"skills/benchmark","Compare Claude Code output with full config vs minimal config using standardized tasks per stack.","benchmark",{"claudeCode":12},"SKILL.md frontmatter at skills/benchmark/SKILL.md",[561],{"path":533,"priority":293},{"basePath":563,"description":564,"displayName":565,"installMethods":566,"rationale":567,"selectedPaths":568,"source":299,"sourceLanguage":18,"type":243},"skills/bootstrap-project","Initializes the Claude Code configuration in a new or existing project using the dotforge template.","bootstrap-project",{"claudeCode":12},"SKILL.md frontmatter at skills/bootstrap-project/SKILL.md",[569],{"path":533,"priority":293},{"basePath":571,"description":572,"displayName":573,"installMethods":574,"rationale":575,"selectedPaths":576,"source":299,"sourceLanguage":18,"type":243},"skills/capture-practice","Captures an insight or practice discovered during work and registers it in the dotforge practices/inbox.","capture-practice",{"claudeCode":12},"SKILL.md frontmatter at skills/capture-practice/SKILL.md",[577],{"path":533,"priority":293},{"basePath":579,"description":580,"displayName":581,"installMethods":582,"rationale":583,"selectedPaths":584,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at skills/diff-project/SKILL.md",[585],{"path":533,"priority":293},{"basePath":587,"description":588,"displayName":589,"installMethods":590,"rationale":591,"selectedPaths":592,"source":299,"sourceLanguage":18,"type":243},"skills/domain-extract","Extract domain knowledge from existing project sources and generate domain rules. Also handles vault sync and domain listing.","domain-extract",{"claudeCode":12},"SKILL.md frontmatter at skills/domain-extract/SKILL.md",[593],{"path":533,"priority":293},{"basePath":595,"description":596,"displayName":597,"installMethods":598,"rationale":599,"selectedPaths":600,"source":299,"sourceLanguage":18,"type":243},"skills/export-config","Export dotforge configuration to other AI code editors (Cursor, Codex, Windsurf, OpenClaw).","export-config",{"claudeCode":12},"SKILL.md frontmatter at skills/export-config/SKILL.md",[601],{"path":533,"priority":293},{"basePath":603,"description":604,"displayName":605,"installMethods":606,"rationale":607,"selectedPaths":608,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at skills/forge-behavior/SKILL.md",[609],{"path":533,"priority":293},{"basePath":611,"description":612,"displayName":613,"installMethods":614,"rationale":615,"selectedPaths":616,"source":299,"sourceLanguage":18,"type":243},"skills/init-project","Quick-start Claude Code configuration. Auto-detects stack, asks 4 questions to understand the project, generates complete config.","init-project",{"claudeCode":12},"SKILL.md frontmatter at skills/init-project/SKILL.md",[617],{"path":533,"priority":293},{"basePath":619,"description":620,"displayName":621,"installMethods":622,"rationale":623,"selectedPaths":624,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at skills/learn-project/SKILL.md",[625],{"path":533,"priority":293},{"basePath":627,"description":628,"displayName":629,"installMethods":630,"rationale":631,"selectedPaths":632,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at skills/mcp-add/SKILL.md",[633],{"path":533,"priority":293},{"basePath":635,"description":636,"displayName":637,"installMethods":638,"rationale":639,"selectedPaths":640,"source":299,"sourceLanguage":18,"type":243},"skills/plugin-generator","Generate a Claude Code plugin package from the current project's dotforge configuration, ready for marketplace submission.","plugin-generator",{"claudeCode":12},"SKILL.md frontmatter at skills/plugin-generator/SKILL.md",[641],{"path":533,"priority":293},{"basePath":643,"description":644,"displayName":645,"installMethods":646,"rationale":647,"selectedPaths":648,"source":299,"sourceLanguage":18,"type":243},"skills/reset-project","Restore a project's .claude/ directory to the dotforge template from scratch, with backup and rollback option.","reset-project",{"claudeCode":12},"SKILL.md frontmatter at skills/reset-project/SKILL.md",[649],{"path":533,"priority":293},{"basePath":651,"description":652,"displayName":653,"installMethods":654,"rationale":655,"selectedPaths":656,"source":299,"sourceLanguage":18,"type":243},"skills/rule-effectiveness","Analyze which rules are actively used vs inert. Detect coverage gaps. Recommend pruning to reduce token consumption.","rule-effectiveness",{"claudeCode":12},"SKILL.md frontmatter at skills/rule-effectiveness/SKILL.md",[657],{"path":533,"priority":293},{"basePath":659,"description":660,"displayName":661,"installMethods":662,"rationale":663,"selectedPaths":664,"source":299,"sourceLanguage":18,"type":243},"skills/scout-repos","Fetch .claude/ configs from curated repos in sources.yml, compare against dotforge template, report novel patterns.","scout-repos",{"claudeCode":12},"SKILL.md frontmatter at skills/scout-repos/SKILL.md",[665],{"path":533,"priority":293},{"basePath":667,"description":668,"displayName":669,"installMethods":670,"rationale":671,"selectedPaths":672,"source":299,"sourceLanguage":18,"type":243},"skills/session-insights","Analyze past Claude Code sessions to extract patterns, metrics, and recommendations.","session-insights",{"claudeCode":12},"SKILL.md frontmatter at skills/session-insights/SKILL.md",[673],{"path":533,"priority":293},{"basePath":675,"description":676,"displayName":677,"installMethods":678,"rationale":679,"selectedPaths":680,"source":299,"sourceLanguage":18,"type":243},"skills/sync-template","Update an existing project's Claude Code configuration against the current dotforge template, without losing local customizations.","sync-template",{"claudeCode":12},"SKILL.md frontmatter at skills/sync-template/SKILL.md",[681],{"path":533,"priority":293},{"basePath":683,"description":684,"displayName":685,"installMethods":686,"rationale":687,"selectedPaths":688,"source":299,"sourceLanguage":18,"type":243},"skills/update-practices","Process the practices inbox, evaluate, incorporate into dotforge, and suggest propagation to projects.","update-practices",{"claudeCode":12},"SKILL.md frontmatter at skills/update-practices/SKILL.md",[689],{"path":533,"priority":293},{"basePath":691,"description":692,"displayName":693,"installMethods":694,"rationale":695,"selectedPaths":696,"source":299,"sourceLanguage":18,"type":243},"skills/watch-upstream","Fetch official Anthropic/Claude Code docs, detect changes relevant to dotforge, report deltas.","watch-upstream",{"claudeCode":12},"SKILL.md frontmatter at skills/watch-upstream/SKILL.md",[697],{"path":533,"priority":293},{"basePath":240,"description":10,"displayName":13,"installMethods":699,"rationale":700,"selectedPaths":701,"source":299,"sourceLanguage":18,"type":243},{"claudeCode":12},"SKILL.md frontmatter at stacks/hookify/skills/hookify/SKILL.md",[702],{"path":533,"priority":293},{"basePath":704,"description":705,"displayName":706,"installMethods":707,"rationale":708,"selectedPaths":709,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at stacks/trading/skills/catalyst-calendar/SKILL.md",[710],{"path":533,"priority":293},{"basePath":712,"description":713,"displayName":714,"installMethods":715,"rationale":716,"selectedPaths":717,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at stacks/trading/skills/earnings-watch/SKILL.md",[718],{"path":533,"priority":293},{"basePath":720,"description":721,"displayName":722,"installMethods":723,"rationale":724,"selectedPaths":725,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at stacks/trading/skills/screen/SKILL.md",[726],{"path":533,"priority":293},{"basePath":728,"description":729,"displayName":730,"installMethods":731,"rationale":732,"selectedPaths":733,"source":299,"sourceLanguage":18,"type":243},"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":12},"SKILL.md frontmatter at stacks/trading/skills/thesis-tracker/SKILL.md",[734],{"path":533,"priority":293},{"sources":736},[737],"manual",{"closedIssues90d":8,"description":739,"forks":230,"homepage":740,"license":235,"openIssues90d":8,"pushedAt":232,"readmeSize":228,"stars":233,"topics":741},"Configuration governance for Claude Code. Bootstrap, audit, sync, and evolve .claude/ across projects.","https://github.com/luiseiman/dotforge",[742,743,260,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759],"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":761,"discoverAt":762,"extractAt":763,"githubAt":763,"updatedAt":761},1778692487649,1778692481646,1778692485708,[211,213,212,214],{"evaluatedAt":238,"extractAt":272,"updatedAt":238},[],[768,801,830,852,882,914],{"_creationTime":769,"_id":770,"community":771,"display":772,"identity":778,"providers":783,"relations":794,"tags":797,"workflow":798},1778699234184.6157,"k177tdbfgqmwhtaqv771f2ych586nne9",{"reviewCount":8},{"description":773,"installMethods":774,"name":776,"sourceUrl":777},"Worktree-first dev environment manager for issues, PRs, and features with optional tmux sessions",{"claudeCode":775},"Yeachan-Heo/oh-my-claudecode","Project Session Manager","https://github.com/Yeachan-Heo/oh-my-claudecode",{"basePath":779,"githubOwner":780,"githubRepo":781,"locale":18,"slug":782,"type":243},"skills/project-session-manager","Yeachan-Heo","oh-my-claudecode","project-session-manager",{"evaluate":784,"extract":793},{"promptVersionExtension":204,"promptVersionScoring":205,"score":785,"tags":786,"targetMarket":215,"tier":216},100,[787,788,789,790,211,791,792],"git","development-environment","workflow","tmux","cli","developer-tool",{"commitSha":264,"license":235},{"parentExtensionId":795,"repoId":796},"k17brg5egdw1jbncj1j4wfv3fh86n639","kd74zv63fryf9prygtq7gf4es986n22y",[211,791,792,788,787,790,789],{"evaluatedAt":799,"extractAt":800,"updatedAt":799},1778699613343,1778699234184,{"_creationTime":802,"_id":803,"community":804,"display":805,"identity":811,"providers":814,"relations":822,"tags":825,"workflow":826},1778699505679.3464,"k1751nm85mw95gw3rsqgrdqspx86ncq2",{"reviewCount":8},{"description":806,"installMethods":807,"name":809,"sourceUrl":810},"无需 OAuth 即可创建公开的 Google Docs 或 Google Sheet 文件。使用此技能创建和编辑 Google Docs 和 Sheets，无需登录 Google。文档可通过共享链接查看。首次使用时自动注册。",{"claudeCode":808},"zagmoai/public-google-drive","public-google-drive","https://github.com/zagmoai/public-google-drive",{"basePath":285,"githubOwner":812,"githubRepo":809,"locale":813,"slug":809,"type":243},"zagmoai","zh-CN",{"evaluate":815,"extract":821},{"promptVersionExtension":204,"promptVersionScoring":205,"score":785,"tags":816,"targetMarket":215,"tier":216},[817,818,819,211,820],"google-docs","google-sheets","productivity","api-client",{"commitSha":264},{"repoId":823,"translatedFrom":824},"kd776ynh73t0d6samn4bnxdf3x86n8mj","k1707pszx7h026a651dp5tvaxd86m3ag",[820,211,817,818,819],{"evaluatedAt":827,"extractAt":828,"updatedAt":829},1778699485884,1778699468747,1778699505679,{"_creationTime":831,"_id":832,"community":833,"display":834,"identity":837,"providers":840,"relations":848,"tags":849,"workflow":850},1778699234184.611,"k179b6dkc777g1rgyecze04wqn86m6y4",{"reviewCount":8},{"description":835,"installMethods":836,"name":781,"sourceUrl":777},"Process-first advisor routing for Claude, Codex, or Gemini via `omc ask`, with artifact capture and no raw CLI assembly",{"claudeCode":775},{"basePath":838,"githubOwner":780,"githubRepo":781,"locale":18,"slug":839,"type":243},"skills/ask","ask",{"evaluate":841,"extract":847},{"promptVersionExtension":204,"promptVersionScoring":205,"score":785,"tags":842,"targetMarket":215,"tier":216},[791,211,843,844,845,846],"llm","prompting","code-review","artifact-generation",{"commitSha":264,"license":235},{"parentExtensionId":795,"repoId":796},[846,211,791,845,843,844],{"evaluatedAt":851,"extractAt":800,"updatedAt":851},1778699303045,{"_creationTime":853,"_id":854,"community":855,"display":856,"identity":862,"providers":867,"relations":874,"tags":877,"workflow":878},1778699366078.7817,"k173mj3k9wcdq512bp1532xkwx86nrh4",{"reviewCount":8},{"description":857,"installMethods":858,"name":860,"sourceUrl":861},"当工作依赖于用户实时浏览器会话或可见的渲染状态，而不是静态抓取时使用，尤其是在浏览器调试上下文或 DevTools 选择的元素或请求、登录仪表板或 CMS 流程、localhost 应用、上传、下载、媒体检查、DOM 或 iframe 检查、Shadow DOM，或看起来像软 404、身份验证墙、反机器人检查或速率限制的浏览器故障时。",{"claudeCode":859},"xixu-me/skills","使用我的浏览器","https://github.com/xixu-me/skills",{"basePath":863,"githubOwner":864,"githubRepo":865,"locale":813,"slug":866,"type":243},"skills/use-my-browser","xixu-me","skills","use-my-browser",{"evaluate":868,"extract":873},{"promptVersionExtension":204,"promptVersionScoring":205,"score":785,"tags":869,"targetMarket":215,"tier":216},[870,871,211,872,753],"browser","debugging","ux",{"commitSha":264,"license":235},{"repoId":875,"translatedFrom":876},"kd77r2vb42jmgam0qbr9f2c6kn86mebv","k179cgk616p3xva37r5jqsfwvh86mcp2",[211,870,871,753,872],{"evaluatedAt":879,"extractAt":880,"updatedAt":881},1778699261239,1778699106670,1778699366078,{"_creationTime":883,"_id":884,"community":885,"display":886,"identity":892,"providers":895,"relations":905,"tags":909,"workflow":910},1778699289329.1182,"k172jykxz0jywjekjxjt5thj5x86nm3n",{"reviewCount":8},{"description":887,"installMethods":888,"name":890,"sourceUrl":891},"当用户需要通过 Xquik 获取 X (Twitter) 数据或执行需要确认的 X 操作时使用：推文搜索、用户查找、关注者提取、媒体下载、监控、Webhook、MCP、SDK、发布、点赞、私信和个人资料更新。需要 Xquik API 密钥。切勿索要 X 登录凭据。",{"claudeCode":889},"Xquik-dev/x-twitter-scraper","x-twitter-scraper","https://github.com/Xquik-dev/x-twitter-scraper",{"basePath":893,"githubOwner":894,"githubRepo":890,"locale":813,"slug":890,"type":243},"skills/x-twitter-scraper","Xquik-dev",{"evaluate":896,"extract":904},{"promptVersionExtension":204,"promptVersionScoring":205,"score":785,"tags":897,"targetMarket":215,"tier":216},[898,899,900,901,211,902,903],"twitter","x","api","data-retrieval","mcp","sdk",{"commitSha":264},{"parentExtensionId":906,"repoId":907,"translatedFrom":908},"k17axvhmvwp90strpqcd5b0h7986m80d","kd783enpnwhry153ka0z65ear186mjbh","k172e8vt4zcz50bb0vfp6ptb1n86mf90",[900,211,901,902,903,898,899],{"evaluatedAt":911,"extractAt":912,"updatedAt":913},1778699230863,1778699170774,1778699289329,{"_creationTime":915,"_id":916,"community":917,"display":918,"identity":924,"providers":928,"relations":934,"tags":936,"workflow":937},1778697652123.8982,"k175ckmrqc4x6sjm90k7ejbj3s86ntxs",{"reviewCount":8},{"description":919,"installMethods":920,"name":922,"sourceUrl":923},"Use the Slack tool to react, pin/unpin, send, edit, delete messages, or fetch Slack member info.",{"claudeCode":921},"steipete/clawdis","slack","https://github.com/steipete/clawdis",{"basePath":925,"githubOwner":926,"githubRepo":927,"locale":18,"slug":922,"type":243},"skills/slack","steipete","clawdis",{"evaluate":929,"extract":933},{"promptVersionExtension":204,"promptVersionScoring":205,"score":785,"tags":930,"targetMarket":215,"tier":216},[922,931,932,211,900],"messaging","communication",{"commitSha":264},{"repoId":935},"kd738npxg9yh3xf3vddzy9fyfh86nhng",[900,211,932,931,922],{"evaluatedAt":938,"extractAt":939,"updatedAt":938},1778698950505,1778697652123]