[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-plugin-luiseiman-node-express-zh-CN":3,"guides-for-luiseiman-node-express":759,"similar-k179bvp22xcxq4xg9bkgpkhw5s86mstq-zh-CN":760},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":251,"isFallback":242,"parentExtension":257,"providers":258,"relations":263,"repo":265,"tags":756,"workflow":757},1778692488329.0107,"k179bvp22xcxq4xg9bkgpkhw5s86mstq",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Node.js 20+ with Express/Fastify, TypeScript, and ESM module rules for Claude Code.",{"claudeCode":12},"dotforge-stack-node-express","dotforge","https://github.com/luiseiman/claude-kit",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":233,"workflow":249},1778692726682.6172,"kn7ep5c7fy3jcv8knmt8t7akph86mtg0","en",{"checks":20,"evaluatedAt":201,"extensionSummary":202,"features":203,"nonGoals":209,"promptVersionExtension":213,"promptVersionScoring":214,"purpose":215,"rationale":216,"score":217,"summary":218,"tags":219,"targetMarket":226,"tier":227,"useCases":228},[21,26,29,32,36,39,43,47,50,53,57,61,64,68,71,74,77,80,83,86,90,94,98,102,106,109,112,115,119,122,125,128,131,134,137,141,145,149,153,157,160,163,166,169,172,175,178,181,184,187,191,194,197],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of managing .claude/ configuration across multiple projects and enforcing runtime policies for agent behavior.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","Dotforge offers significant value over simple prompting by providing a declarative DSL for behavior governance, a compiler for hooks, runtime enforcement, and an audit system, which is beyond default Claude Code capabilities.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The plugin provides a comprehensive solution for managing Claude Code configurations, including setup, auditing, syncing, and evolving configurations across projects, covering the full lifecycle.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The plugin focuses on the domain of behavior governance and configuration management for Claude Code projects, with a coherent set of tools and features supporting this single purpose.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the plugin's functionality as a behavior governance tool for Claude Code, focusing on runtime policies and configuration management.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","The plugin exposes narrow, verb-noun specialist tools like `/forge init`, `/forge audit`, and `/forge sync`, facilitating clear agent selection.",{"category":44,"check":45,"severity":24,"summary":46},"Documentation","Configuration & parameter reference","The README provides extensive documentation for CLI commands, environment variables, and configuration parameters, including usage examples and precedence.",{"category":33,"check":48,"severity":24,"summary":49},"Tool naming","All exposed commands are descriptive, adhere to kebab-case, and clearly indicate their function within the dotforge domain.",{"category":33,"check":51,"severity":24,"summary":52},"Minimal I/O surface","Tool inputs are primarily command-line flags or structured input through commands like `/forge init`, and outputs are generally descriptive feedback or generated configuration files, without excessive diagnostic data.",{"category":54,"check":55,"severity":24,"summary":56},"License","License usability","The project is licensed under the MIT license, as indicated by a bundled LICENSE file and confirmed by the trust signals.",{"category":58,"check":59,"severity":24,"summary":60},"Maintenance","Commit recency","The last commit was on 2026-05-13, indicating recent maintenance within the last 3 months.",{"category":58,"check":62,"severity":24,"summary":63},"Dependency Management","The plugin primarily uses shell scripts and optionally Python/jq, with no complex third-party dependencies requiring advanced management.",{"category":65,"check":66,"severity":24,"summary":67},"Security","Secret Management","The plugin does not appear to handle sensitive secrets directly; configuration management focuses on .claude/ settings and project structure, with explicit documentation on environment variables.",{"category":65,"check":69,"severity":24,"summary":70},"Injection","The plugin is designed around shell scripts and configuration files. Its core function is managing code, and it doesn't appear to load or execute untrusted third-party data as instructions.",{"category":65,"check":72,"severity":24,"summary":73},"Transitive Supply-Chain Grenades","The plugin relies on bundled scripts and local execution, avoiding runtime downloads or execution of remote code. Installation is via a direct curl script, but it's a standard installation method and not a payload.",{"category":65,"check":75,"severity":24,"summary":76},"Sandbox Isolation","The plugin operates within the user's project directory and its own installation path (`~/.dotforge`), managing configuration files and generating scripts without attempting to modify arbitrary system files.",{"category":65,"check":78,"severity":24,"summary":79},"Sandbox escape primitives","The scripts are designed for local execution and configuration management, with no apparent use of detached processes or retry loops around denied tool calls.",{"category":65,"check":81,"severity":24,"summary":82},"Data Exfiltration","The plugin's primary function is local configuration management and audit. There are no documented outbound calls for telemetry or submitting confidential data.",{"category":65,"check":84,"severity":24,"summary":85},"Hidden Text Tricks","The README and code files appear to be free of hidden steering tricks, control characters, or unusual formatting designed to mislead the model.",{"category":87,"check":88,"severity":24,"summary":89},"Hooks","Opaque code execution","The plugin's hooks and scripts are primarily composed of readable bash and shell commands, with no apparent obfuscation or dynamically fetched code.",{"category":91,"check":92,"severity":24,"summary":93},"Portability","Structural Assumption","The plugin makes assumptions about the existence of a `.claude/` directory and project structure but handles these gracefully, providing commands to initialize and manage them.",{"category":95,"check":96,"severity":24,"summary":97},"Trust","Issues Attention","There are 0 open and 0 closed issues in the last 90 days, indicating no current engagement but also no active issues.",{"category":99,"check":100,"severity":24,"summary":101},"Versioning","Release Management","A meaningful version number (v3.7.0) is clearly indicated in the README and trust signals, and the installation uses a tagged URL.",{"category":103,"check":104,"severity":24,"summary":105},"Code Execution","Validation","The plugin utilizes standard shell scripting and argument parsing; while not explicitly using a schema library, the commands are well-defined and validated through their CLI structure.",{"category":65,"check":107,"severity":24,"summary":108},"Unguarded Destructive Operations","Destructive operations are primarily related to managing configuration files. The plugin emphasizes auditing and sync, and any potential destructive actions like `reset` are behind explicit commands and documented.",{"category":103,"check":110,"severity":24,"summary":111},"Error Handling","The scripts generally use standard bash error handling, exiting non-zero on failure and providing descriptive messages to stderr.",{"category":103,"check":113,"severity":24,"summary":114},"Logging","The plugin focuses on configuration and auditing, with actions potentially logged in the `registry/projects.yml` for tracking changes and scores. No explicit local audit log is mentioned.",{"category":116,"check":117,"severity":24,"summary":118},"Compliance","GDPR","The plugin manages project configuration and does not appear to handle personal data directly.",{"category":116,"check":120,"severity":24,"summary":121},"Target market","The plugin is a general-purpose configuration management tool for Claude Code and does not exhibit any regional or jurisdictional limitations; targetMarket is global.",{"category":91,"check":123,"severity":24,"summary":124},"Runtime stability","The plugin relies on standard bash and common CLI tools, with explicit mentions of Windows (WSL recommended) and POSIX compatibility.",{"category":44,"check":126,"severity":24,"summary":127},"README","The README is extensive, well-structured, and clearly articulates the plugin's purpose, features, and usage.",{"category":33,"check":129,"severity":24,"summary":130},"Tool surface size","The plugin exposes a focused set of approximately 15 commands under the `/forge` namespace, which is within the recommended range.",{"category":40,"check":132,"severity":24,"summary":133},"Overlapping near-synonym tools","Tool names are distinct and cover specific functions, avoiding near-synonyms that could cause confusion for the agent.",{"category":44,"check":135,"severity":24,"summary":136},"Phantom features","All features described in the README, such as the behavior catalogue, audit system, and practices pipeline, have corresponding implementations or documented usage within the plugin's structure.",{"category":138,"check":139,"severity":24,"summary":140},"Install","Installation instruction","The README provides clear, copy-pasteable installation instructions via curl and details on manual setup, along with usage examples for core commands.",{"category":142,"check":143,"severity":24,"summary":144},"Errors","Actionable error messages","The plugin's scripts provide descriptive error messages in stderr, indicating what failed and often suggesting remediation steps or pointing to documentation.",{"category":146,"check":147,"severity":24,"summary":148},"Execution","Pinned dependencies","The plugin's core dependencies are bash and optionally Python/jq, which are standard system utilities. Installation script points to a specific GitHub URL.",{"category":33,"check":150,"severity":151,"summary":152},"Dry-run preview","not_applicable","The plugin's core functionality is configuration management and auditing. While some commands like 'reset' could be considered state-changing, they are explicitly user-initiated and documented, and a dry-run mode is not applicable or necessary for its primary function.",{"category":154,"check":155,"severity":151,"summary":156},"Protocol","Idempotent retry & timeouts","The plugin operates locally and does not involve remote calls or state-changing operations that would necessitate idempotency or explicit timeouts.",{"category":116,"check":158,"severity":24,"summary":159},"Telemetry opt-in","The plugin does not appear to emit any telemetry by default. Any potential data collection would likely be related to its internal registry and auditing, which is opt-in via project registration and not external network transmission.",{"category":40,"check":161,"severity":24,"summary":162},"Name collisions","The plugin's commands are namespaced under `/forge`, preventing collisions with Claude Code built-ins or other plugins.",{"category":40,"check":164,"severity":151,"summary":165},"Hooks-off mechanism","This plugin does not appear to implement or rely on Claude Code hooks in a way that would necessitate a hooks-off mechanism.",{"category":40,"check":167,"severity":151,"summary":168},"Hook matcher tightness","The plugin itself does not appear to define or use Claude Code hooks that require matcher tightness evaluation.",{"category":65,"check":170,"severity":151,"summary":171},"Hook security","The plugin does not appear to implement any Claude Code hooks that would require specific security gating or disable toggles.",{"category":87,"check":173,"severity":151,"summary":174},"Silent prompt rewriting","The plugin does not interact with user prompts through Claude Code hooks.",{"category":65,"check":176,"severity":151,"summary":177},"Permission Hook","The plugin does not utilize `PermissionRequest` hooks.",{"category":116,"check":179,"severity":151,"summary":180},"Hook privacy","The plugin does not appear to implement hooks that handle logging or telemetry data transmission.",{"category":103,"check":182,"severity":151,"summary":183},"Hook dependency","The plugin does not rely on external hook scripts that would need to be evaluated for complexity or readability.",{"category":44,"check":185,"severity":24,"summary":186},"Feature Transparency","The README comprehensively documents the plugin's commands, features, and architecture, providing transparency into its functionality.",{"category":188,"check":189,"severity":24,"summary":190},"Convention","Layout convention adherence","The plugin follows standard Claude Code plugin conventions, with configuration managed in `.claude/` and executables in `bin/` (though not explicitly defined here, the structure implies adherence).",{"category":188,"check":192,"severity":24,"summary":193},"Plugin state","The plugin manages state through project configuration files and its own installation directory, aligning with expected persistence and uninstall behavior.",{"category":65,"check":195,"severity":24,"summary":196},"Keychain-stored secrets","The plugin does not appear to handle secrets that would require keychain storage; configuration is managed via settings.json or environment variables.",{"category":198,"check":199,"severity":24,"summary":200},"Installation","Clean uninstall","The installation process is a simple script download and execution, and uninstall would primarily involve removing the installed files and associated configurations, with no background daemons or persistent system-level changes.",1778692726231,"dotforge is a plugin designed to manage Claude Code configurations, enforce runtime policies on agent behavior, and audit configuration quality across multiple projects. It uses declarative YAML for behavior definitions and compiles them into bash hooks for enforcement.",[204,205,206,207,208],"Declarative behavior governance DSL","Runtime policy enforcement via hooks","Cross-project configuration registry with audit history","Automated configuration auditing and scoring","Continuous improvement pipeline for practices",[210,211,212],"Generating code or directly executing agent tasks.","Replacing Claude Code's core functionality; it complements it.","Providing a generic file management tool.","3.0.0","4.4.0","To provide a standardized, auditable, and evolving system for managing Claude Code configurations and enforcing runtime policies across development projects.","The plugin demonstrates high quality across all evaluated categories. It has a clear purpose, well-defined features, robust documentation, and secure implementation practices. All checks passed, contributing to a perfect score and verified tier.",100,"A robust and well-documented plugin for managing Claude Code configurations and enforcing runtime policies.",[220,221,222,223,224,225],"configuration","management","policy","auditing","bash","claudecode","global","verified",[229,230,231,232],"Managing consistent `.claude/` configurations across multiple repositories.","Enforcing team-wide runtime policies on agent behavior (e.g., 'search before writing').","Auditing and scoring the quality and security of Claude Code configurations.","Automating the discovery and propagation of best practices in agent configuration.",{"codeQuality":234,"collectedAt":236,"documentation":237,"maintenance":240,"security":246,"testCoverage":248},{"hasLockfile":235},false,1778692703262,{"descriptionLength":238,"readmeSize":239},83,35166,{"closedIssues90d":8,"forks":241,"hasChangelog":242,"manifestVersion":243,"openIssues90d":8,"pushedAt":244,"stars":245},1,true,"1.4.0",1778672535000,6,{"hasNpmPackage":235,"license":247,"smitheryVerified":235},"MIT",{"hasCi":242,"hasTests":242},{"updatedAt":250},1778692726682,{"basePath":252,"githubOwner":253,"githubRepo":254,"locale":18,"slug":255,"type":256},"stacks/node-express","luiseiman","claude-kit","node-express","plugin",null,{"evaluate":259,"extract":261},{"promptVersionExtension":213,"promptVersionScoring":214,"score":217,"tags":260,"targetMarket":226,"tier":227},[220,221,222,223,224,225],{"commitSha":262,"license":247},"HEAD",{"repoId":264},"kd79wqc8an5wh20cc2znr8tyb586mxwx",{"_creationTime":266,"_id":264,"identity":267,"providers":268,"workflow":752},1778692481646.1384,{"githubOwner":253,"githubRepo":254,"sourceUrl":14},{"classify":269,"discover":726,"github":729},{"commitSha":262,"extensions":270},[271,288,354,363,371,379,387,395,403,419,427,432,442,452,460,468,478,488,504,512,534,542,550,558,566,574,582,590,598,606,614,622,630,638,646,654,662,670,678,686,694,702,710,718],{"basePath":272,"description":273,"displayName":13,"installMethods":274,"rationale":276,"selectedPaths":277,"source":286,"sourceLanguage":18,"type":287},"","Configuration governance for Claude Code — bootstrap, audit, sync, and evolve .claude/ across projects",{"claudeCode":275},"luiseiman/claude-kit","marketplace.json at .claude-plugin/marketplace.json",[278,281,283],{"path":279,"priority":280},".claude-plugin/marketplace.json","mandatory",{"path":282,"priority":280},"README.md",{"path":284,"priority":285},"LICENSE","high","rule","marketplace",{"basePath":272,"description":289,"displayName":13,"installMethods":290,"license":247,"rationale":291,"selectedPaths":292,"source":286,"sourceLanguage":18,"type":256},"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":13},"plugin manifest at .claude-plugin/plugin.json",[293,295,296,297,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352],{"path":294,"priority":280},".claude-plugin/plugin.json",{"path":282,"priority":280},{"path":284,"priority":285},{"path":298,"priority":299},"skills/audit-project/SKILL.md","medium",{"path":301,"priority":299},"skills/benchmark/SKILL.md",{"path":303,"priority":299},"skills/bootstrap-project/SKILL.md",{"path":305,"priority":299},"skills/capture-practice/SKILL.md",{"path":307,"priority":299},"skills/diff-project/SKILL.md",{"path":309,"priority":299},"skills/domain-extract/SKILL.md",{"path":311,"priority":299},"skills/export-config/SKILL.md",{"path":313,"priority":299},"skills/forge-behavior/SKILL.md",{"path":315,"priority":299},"skills/init-project/SKILL.md",{"path":317,"priority":299},"skills/learn-project/SKILL.md",{"path":319,"priority":299},"skills/mcp-add/SKILL.md",{"path":321,"priority":299},"skills/plugin-generator/SKILL.md",{"path":323,"priority":299},"skills/reset-project/SKILL.md",{"path":325,"priority":299},"skills/rule-effectiveness/SKILL.md",{"path":327,"priority":299},"skills/scout-repos/SKILL.md",{"path":329,"priority":299},"skills/session-insights/SKILL.md",{"path":331,"priority":299},"skills/sync-template/SKILL.md",{"path":333,"priority":299},"skills/update-practices/SKILL.md",{"path":335,"priority":299},"skills/watch-upstream/SKILL.md",{"path":337,"priority":285},"agents/architect.md",{"path":339,"priority":285},"agents/code-reviewer.md",{"path":341,"priority":285},"agents/implementer.md",{"path":343,"priority":285},"agents/researcher.md",{"path":345,"priority":285},"agents/security-auditor.md",{"path":347,"priority":285},"agents/session-reviewer.md",{"path":349,"priority":285},"agents/test-runner.md",{"path":351,"priority":285},"hooks/detect-claude-changes.sh",{"path":353,"priority":285},"hooks/hooks.json",{"basePath":355,"description":356,"displayName":357,"installMethods":358,"rationale":359,"selectedPaths":360,"source":286,"sourceLanguage":18,"type":256},"stacks/aws-deploy","AWS CDK/SAM/CloudFormation infrastructure-as-code rules for Claude Code.","dotforge-stack-aws-deploy",{"claudeCode":357},"plugin manifest at stacks/aws-deploy/plugin.json",[361],{"path":362,"priority":280},"plugin.json",{"basePath":364,"description":365,"displayName":366,"installMethods":367,"rationale":368,"selectedPaths":369,"source":286,"sourceLanguage":18,"type":256},"stacks/data-analysis","SQLite/PostgreSQL, pandas/polars, and Jupyter notebook rules for data analysis with Claude Code.","dotforge-stack-data-analysis",{"claudeCode":366},"plugin manifest at stacks/data-analysis/plugin.json",[370],{"path":362,"priority":280},{"basePath":372,"description":373,"displayName":374,"installMethods":375,"rationale":376,"selectedPaths":377,"source":286,"sourceLanguage":18,"type":256},"stacks/devcontainer","Dev Container configuration, image pinning, and features rules for Claude Code.","dotforge-stack-devcontainer",{"claudeCode":374},"plugin manifest at stacks/devcontainer/plugin.json",[378],{"path":362,"priority":280},{"basePath":380,"description":381,"displayName":382,"installMethods":383,"rationale":384,"selectedPaths":385,"source":286,"sourceLanguage":18,"type":256},"stacks/docker-deploy","Docker Compose and Dockerfile best practices, health checks, and deployment rules for Claude Code.","dotforge-stack-docker-deploy",{"claudeCode":382},"plugin manifest at stacks/docker-deploy/plugin.json",[386],{"path":362,"priority":280},{"basePath":388,"description":389,"displayName":390,"installMethods":391,"rationale":392,"selectedPaths":393,"source":286,"sourceLanguage":18,"type":256},"stacks/gcp-cloud-run","GCP Cloud Run container deployment, Cloud Build, and health check rules for Claude Code.","dotforge-stack-gcp-cloud-run",{"claudeCode":390},"plugin manifest at stacks/gcp-cloud-run/plugin.json",[394],{"path":362,"priority":280},{"basePath":396,"description":397,"displayName":398,"installMethods":399,"rationale":400,"selectedPaths":401,"source":286,"sourceLanguage":18,"type":256},"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":398},"plugin manifest at stacks/go-api/plugin.json",[402],{"path":362,"priority":280},{"basePath":404,"description":405,"displayName":406,"installMethods":407,"rationale":408,"selectedPaths":409,"source":286,"sourceLanguage":18,"type":256},"stacks/hookify","Dynamic hook rules from natural language. Create .claude/hookify.*.local.md files that act as warn/block rules without editing hooks.json.","dotforge-stack-hookify",{"claudeCode":406},"plugin manifest at stacks/hookify/plugin.json",[410,411,413,415,417],{"path":362,"priority":280},{"path":412,"priority":299},"skills/hookify/SKILL.md",{"path":414,"priority":285},"hooks/hookify-pretooluse.py",{"path":416,"priority":285},"hooks/hookify-stop.py",{"path":418,"priority":285},"hooks/hookify-userpromptsubmit.py",{"basePath":420,"description":421,"displayName":422,"installMethods":423,"rationale":424,"selectedPaths":425,"source":286,"sourceLanguage":18,"type":256},"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":422},"plugin manifest at stacks/java-spring/plugin.json",[426],{"path":362,"priority":280},{"basePath":252,"description":10,"displayName":12,"installMethods":428,"rationale":429,"selectedPaths":430,"source":286,"sourceLanguage":18,"type":256},{"claudeCode":12},"plugin manifest at stacks/node-express/plugin.json",[431],{"path":362,"priority":280},{"basePath":433,"description":434,"displayName":435,"installMethods":436,"rationale":437,"selectedPaths":438,"source":286,"sourceLanguage":18,"type":256},"stacks/python-fastapi","Python 3.12+ with FastAPI, async/await, type hints, and Ruff linting rules for Claude Code.","dotforge-stack-python-fastapi",{"claudeCode":435},"plugin manifest at stacks/python-fastapi/plugin.json",[439,440],{"path":362,"priority":280},{"path":441,"priority":285},"hooks/lint-python.sh",{"basePath":443,"description":444,"displayName":445,"installMethods":446,"rationale":447,"selectedPaths":448,"source":286,"sourceLanguage":18,"type":256},"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":445},"plugin manifest at stacks/react-vite-ts/plugin.json",[449,450],{"path":362,"priority":280},{"path":451,"priority":285},"hooks/lint-ts.sh",{"basePath":453,"description":454,"displayName":455,"installMethods":456,"rationale":457,"selectedPaths":458,"source":286,"sourceLanguage":18,"type":256},"stacks/redis","Redis Streams, caching patterns, and pub/sub rules for Claude Code.","dotforge-stack-redis",{"claudeCode":455},"plugin manifest at stacks/redis/plugin.json",[459],{"path":362,"priority":280},{"basePath":461,"description":462,"displayName":463,"installMethods":464,"rationale":465,"selectedPaths":466,"source":286,"sourceLanguage":18,"type":256},"stacks/supabase","Supabase migrations, RLS policies, Edge Functions, and database rules for Claude Code.","dotforge-stack-supabase",{"claudeCode":463},"plugin manifest at stacks/supabase/plugin.json",[467],{"path":362,"priority":280},{"basePath":469,"description":470,"displayName":471,"installMethods":472,"rationale":473,"selectedPaths":474,"source":286,"sourceLanguage":18,"type":256},"stacks/swift-swiftui","Swift 5.9+ with SwiftUI, iOS 17+, @Observable, async/await, and SPM rules for Claude Code.","dotforge-stack-swift-swiftui",{"claudeCode":471},"plugin manifest at stacks/swift-swiftui/plugin.json",[475,476],{"path":362,"priority":280},{"path":477,"priority":285},"hooks/lint-swift.sh",{"basePath":479,"description":480,"displayName":481,"installMethods":482,"rationale":483,"selectedPaths":484,"source":286,"sourceLanguage":18,"type":256},"stacks/tdd","TDD workflow enforcement with auto-test hook","tdd",{"claudeCode":481},"plugin manifest at stacks/tdd/plugin.json",[485,486],{"path":362,"priority":280},{"path":487,"priority":285},"hooks/test-on-edit.sh",{"basePath":489,"description":490,"displayName":491,"installMethods":492,"rationale":493,"selectedPaths":494,"source":286,"sourceLanguage":18,"type":256},"stacks/trading","Trading & investment analysis — thesis tracking, earnings watch, screening, catalyst calendar, backtesting ADR gate. AR + US markets.","dotforge-stack-trading",{"claudeCode":491},"plugin manifest at stacks/trading/plugin.json",[495,496,498,500,502],{"path":362,"priority":280},{"path":497,"priority":299},"skills/catalyst-calendar/SKILL.md",{"path":499,"priority":299},"skills/earnings-watch/SKILL.md",{"path":501,"priority":299},"skills/screen/SKILL.md",{"path":503,"priority":299},"skills/thesis-tracker/SKILL.md",{"basePath":505,"description":506,"displayName":507,"installMethods":508,"rationale":509,"selectedPaths":510,"source":286,"sourceLanguage":18,"type":256},"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":507},"plugin manifest at stacks/vps-ssh/plugin.json",[511],{"path":362,"priority":280},{"basePath":513,"description":514,"displayName":515,"installMethods":516,"rationale":517,"selectedPaths":518,"source":286,"sourceLanguage":18,"type":533},"integrations/openclaw","dotforge configuration factory — audit, sync, status, insights across projects from any channel","forge",{"claudeCode":275},"SKILL.md frontmatter at integrations/openclaw/SKILL.md",[519,521,523,525,527,529,531],{"path":520,"priority":280},"SKILL.md",{"path":522,"priority":299},"AGENTS.md",{"path":524,"priority":299},"HEARTBEAT.md",{"path":526,"priority":299},"IDENTITY.md",{"path":528,"priority":299},"SOUL.md",{"path":530,"priority":299},"TOOLS.md",{"path":532,"priority":299},"USER.md","skill",{"basePath":535,"description":536,"displayName":537,"installMethods":538,"rationale":539,"selectedPaths":540,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at skills/audit-project/SKILL.md",[541],{"path":520,"priority":280},{"basePath":543,"description":544,"displayName":545,"installMethods":546,"rationale":547,"selectedPaths":548,"source":286,"sourceLanguage":18,"type":533},"skills/benchmark","Compare Claude Code output with full config vs minimal config using standardized tasks per stack.","benchmark",{"claudeCode":275},"SKILL.md frontmatter at skills/benchmark/SKILL.md",[549],{"path":520,"priority":280},{"basePath":551,"description":552,"displayName":553,"installMethods":554,"rationale":555,"selectedPaths":556,"source":286,"sourceLanguage":18,"type":533},"skills/bootstrap-project","Initializes the Claude Code configuration in a new or existing project using the dotforge template.","bootstrap-project",{"claudeCode":275},"SKILL.md frontmatter at skills/bootstrap-project/SKILL.md",[557],{"path":520,"priority":280},{"basePath":559,"description":560,"displayName":561,"installMethods":562,"rationale":563,"selectedPaths":564,"source":286,"sourceLanguage":18,"type":533},"skills/capture-practice","Captures an insight or practice discovered during work and registers it in the dotforge practices/inbox.","capture-practice",{"claudeCode":275},"SKILL.md frontmatter at skills/capture-practice/SKILL.md",[565],{"path":520,"priority":280},{"basePath":567,"description":568,"displayName":569,"installMethods":570,"rationale":571,"selectedPaths":572,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at skills/diff-project/SKILL.md",[573],{"path":520,"priority":280},{"basePath":575,"description":576,"displayName":577,"installMethods":578,"rationale":579,"selectedPaths":580,"source":286,"sourceLanguage":18,"type":533},"skills/domain-extract","Extract domain knowledge from existing project sources and generate domain rules. Also handles vault sync and domain listing.","domain-extract",{"claudeCode":275},"SKILL.md frontmatter at skills/domain-extract/SKILL.md",[581],{"path":520,"priority":280},{"basePath":583,"description":584,"displayName":585,"installMethods":586,"rationale":587,"selectedPaths":588,"source":286,"sourceLanguage":18,"type":533},"skills/export-config","Export dotforge configuration to other AI code editors (Cursor, Codex, Windsurf, OpenClaw).","export-config",{"claudeCode":275},"SKILL.md frontmatter at skills/export-config/SKILL.md",[589],{"path":520,"priority":280},{"basePath":591,"description":592,"displayName":593,"installMethods":594,"rationale":595,"selectedPaths":596,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at skills/forge-behavior/SKILL.md",[597],{"path":520,"priority":280},{"basePath":599,"description":600,"displayName":601,"installMethods":602,"rationale":603,"selectedPaths":604,"source":286,"sourceLanguage":18,"type":533},"skills/init-project","Quick-start Claude Code configuration. Auto-detects stack, asks 4 questions to understand the project, generates complete config.","init-project",{"claudeCode":275},"SKILL.md frontmatter at skills/init-project/SKILL.md",[605],{"path":520,"priority":280},{"basePath":607,"description":608,"displayName":609,"installMethods":610,"rationale":611,"selectedPaths":612,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at skills/learn-project/SKILL.md",[613],{"path":520,"priority":280},{"basePath":615,"description":616,"displayName":617,"installMethods":618,"rationale":619,"selectedPaths":620,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at skills/mcp-add/SKILL.md",[621],{"path":520,"priority":280},{"basePath":623,"description":624,"displayName":625,"installMethods":626,"rationale":627,"selectedPaths":628,"source":286,"sourceLanguage":18,"type":533},"skills/plugin-generator","Generate a Claude Code plugin package from the current project's dotforge configuration, ready for marketplace submission.","plugin-generator",{"claudeCode":275},"SKILL.md frontmatter at skills/plugin-generator/SKILL.md",[629],{"path":520,"priority":280},{"basePath":631,"description":632,"displayName":633,"installMethods":634,"rationale":635,"selectedPaths":636,"source":286,"sourceLanguage":18,"type":533},"skills/reset-project","Restore a project's .claude/ directory to the dotforge template from scratch, with backup and rollback option.","reset-project",{"claudeCode":275},"SKILL.md frontmatter at skills/reset-project/SKILL.md",[637],{"path":520,"priority":280},{"basePath":639,"description":640,"displayName":641,"installMethods":642,"rationale":643,"selectedPaths":644,"source":286,"sourceLanguage":18,"type":533},"skills/rule-effectiveness","Analyze which rules are actively used vs inert. Detect coverage gaps. Recommend pruning to reduce token consumption.","rule-effectiveness",{"claudeCode":275},"SKILL.md frontmatter at skills/rule-effectiveness/SKILL.md",[645],{"path":520,"priority":280},{"basePath":647,"description":648,"displayName":649,"installMethods":650,"rationale":651,"selectedPaths":652,"source":286,"sourceLanguage":18,"type":533},"skills/scout-repos","Fetch .claude/ configs from curated repos in sources.yml, compare against dotforge template, report novel patterns.","scout-repos",{"claudeCode":275},"SKILL.md frontmatter at skills/scout-repos/SKILL.md",[653],{"path":520,"priority":280},{"basePath":655,"description":656,"displayName":657,"installMethods":658,"rationale":659,"selectedPaths":660,"source":286,"sourceLanguage":18,"type":533},"skills/session-insights","Analyze past Claude Code sessions to extract patterns, metrics, and recommendations.","session-insights",{"claudeCode":275},"SKILL.md frontmatter at skills/session-insights/SKILL.md",[661],{"path":520,"priority":280},{"basePath":663,"description":664,"displayName":665,"installMethods":666,"rationale":667,"selectedPaths":668,"source":286,"sourceLanguage":18,"type":533},"skills/sync-template","Update an existing project's Claude Code configuration against the current dotforge template, without losing local customizations.","sync-template",{"claudeCode":275},"SKILL.md frontmatter at skills/sync-template/SKILL.md",[669],{"path":520,"priority":280},{"basePath":671,"description":672,"displayName":673,"installMethods":674,"rationale":675,"selectedPaths":676,"source":286,"sourceLanguage":18,"type":533},"skills/update-practices","Process the practices inbox, evaluate, incorporate into dotforge, and suggest propagation to projects.","update-practices",{"claudeCode":275},"SKILL.md frontmatter at skills/update-practices/SKILL.md",[677],{"path":520,"priority":280},{"basePath":679,"description":680,"displayName":681,"installMethods":682,"rationale":683,"selectedPaths":684,"source":286,"sourceLanguage":18,"type":533},"skills/watch-upstream","Fetch official Anthropic/Claude Code docs, detect changes relevant to dotforge, report deltas.","watch-upstream",{"claudeCode":275},"SKILL.md frontmatter at skills/watch-upstream/SKILL.md",[685],{"path":520,"priority":280},{"basePath":687,"description":688,"displayName":689,"installMethods":690,"rationale":691,"selectedPaths":692,"source":286,"sourceLanguage":18,"type":533},"stacks/hookify/skills/hookify","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\".","hookify",{"claudeCode":275},"SKILL.md frontmatter at stacks/hookify/skills/hookify/SKILL.md",[693],{"path":520,"priority":280},{"basePath":695,"description":696,"displayName":697,"installMethods":698,"rationale":699,"selectedPaths":700,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at stacks/trading/skills/catalyst-calendar/SKILL.md",[701],{"path":520,"priority":280},{"basePath":703,"description":704,"displayName":705,"installMethods":706,"rationale":707,"selectedPaths":708,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at stacks/trading/skills/earnings-watch/SKILL.md",[709],{"path":520,"priority":280},{"basePath":711,"description":712,"displayName":713,"installMethods":714,"rationale":715,"selectedPaths":716,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at stacks/trading/skills/screen/SKILL.md",[717],{"path":520,"priority":280},{"basePath":719,"description":720,"displayName":721,"installMethods":722,"rationale":723,"selectedPaths":724,"source":286,"sourceLanguage":18,"type":533},"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":275},"SKILL.md frontmatter at stacks/trading/skills/thesis-tracker/SKILL.md",[725],{"path":520,"priority":280},{"sources":727},[728],"manual",{"closedIssues90d":8,"description":730,"forks":241,"homepage":731,"license":247,"openIssues90d":8,"pushedAt":244,"readmeSize":239,"stars":245,"topics":732},"Configuration governance for Claude Code. Bootstrap, audit, sync, and evolve .claude/ across projects.","https://github.com/luiseiman/dotforge",[733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751],"ai-coding","anthropic","claude-code","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":753,"discoverAt":754,"extractAt":755,"githubAt":755,"updatedAt":753},1778692487649,1778692481646,1778692485708,[223,224,225,220,221,222],{"evaluatedAt":250,"extractAt":758,"updatedAt":250},1778692488329,[],[761,792,813,846,872,905],{"_creationTime":762,"_id":763,"community":764,"display":765,"identity":770,"providers":774,"relations":785,"tags":788,"workflow":789},1778699018122.7852,"k17ctxt5vn6b49n72hqfjs9tes86mrfw",{"reviewCount":8},{"description":766,"installMethods":767,"name":768,"sourceUrl":769},"Require a human approval signal before an AI agent can post PR reviews, comments, merges, or writes to CI config. Cedar-gated, receipt-signed, designed for the Hermes-style failure mode where a review bot posts without oversight.",{"claudeCode":768},"review-agent-governance","https://github.com/wshobson/agents",{"basePath":771,"githubOwner":772,"githubRepo":773,"locale":18,"slug":768,"type":256},"plugins/review-agent-governance","wshobson","agents",{"evaluate":775,"extract":782},{"promptVersionExtension":213,"promptVersionScoring":214,"score":776,"tags":777,"targetMarket":226,"tier":227},99,[778,779,222,780,781,223],"governance","security","code-review","compliance",{"commitSha":262,"license":247,"plugin":783},{"mcpCount":8,"provider":784,"skillCount":241},"classify",{"parentExtensionId":786,"repoId":787},"k17cywe30jfsfw3cdpncjfn8y186nvyw","kd74de64zj0axtg5b8t7eqqe2x86nske",[223,780,781,778,222,779],{"evaluatedAt":790,"extractAt":791,"updatedAt":790},1778700330078,1778699018122,{"_creationTime":793,"_id":794,"community":795,"display":796,"identity":798,"providers":800,"relations":809,"tags":810,"workflow":811},1778692488329.011,"k17b0q52q1b77nvq2sacqreth586n5hm",{"reviewCount":8},{"description":434,"installMethods":797,"name":435,"sourceUrl":14},{"claudeCode":435},{"basePath":433,"githubOwner":253,"githubRepo":254,"locale":18,"slug":799,"type":256},"python-fastapi",{"evaluate":801,"extract":808},{"promptVersionExtension":213,"promptVersionScoring":214,"score":217,"tags":802,"targetMarket":226,"tier":227},[803,804,805,806,220,807],"python","fastapi","linting","ruff","devops",{"commitSha":262},{"repoId":264},[220,807,804,805,803,806],{"evaluatedAt":812,"extractAt":758,"updatedAt":812},1778692747510,{"_creationTime":814,"_id":815,"community":816,"display":817,"identity":823,"providers":826,"relations":839,"tags":842,"workflow":843},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":818,"installMethods":819,"name":821,"sourceUrl":822},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":820},"hubspot-admin","HubSpot Admin Skills","https://github.com/TomGranot/hubspot-admin-skills",{"basePath":272,"githubOwner":824,"githubRepo":825,"locale":18,"slug":825,"type":256},"TomGranot","hubspot-admin-skills",{"evaluate":827,"extract":836},{"promptVersionExtension":213,"promptVersionScoring":214,"score":776,"tags":828,"targetMarket":226,"tier":227},[829,830,831,832,833,834,223,835],"hubspot","crm","administration","data-quality","automation","cleanup","marketing-automation",{"commitSha":262,"license":247,"plugin":837},{"mcpCount":8,"provider":784,"skillCount":838},32,{"parentExtensionId":840,"repoId":841},"k17dn1yxv80dbqc9xbkwfp9t6186nkhk","kd75kpec7arn6z2wz641vfaj8n86nab6",[831,223,833,834,830,832,829,835],{"evaluatedAt":844,"extractAt":845,"updatedAt":844},1778698168554,1778698144006,{"_creationTime":847,"_id":848,"community":849,"display":850,"identity":855,"providers":857,"relations":868,"tags":869,"workflow":870},1778699018122.782,"k178asgm8g5qs6xfken763bry186nrfc",{"reviewCount":8},{"description":851,"installMethods":852,"name":854,"sourceUrl":769},"Production-grade Bash scripting with defensive programming, POSIX compliance, and comprehensive testing",{"claudeCode":853},"shell-scripting","Shell Scripting Plugins",{"basePath":856,"githubOwner":772,"githubRepo":773,"locale":18,"slug":853,"type":256},"plugins/shell-scripting",{"evaluate":858,"extract":865},{"promptVersionExtension":213,"promptVersionScoring":214,"score":776,"tags":859,"targetMarket":226,"tier":227},[224,860,861,862,863,864,833,779],"shell","posix","scripting","ci-cd","testing",{"commitSha":262,"license":247,"plugin":866},{"mcpCount":8,"provider":784,"skillCount":867},3,{"parentExtensionId":786,"repoId":787},[833,224,863,861,862,779,860,864],{"evaluatedAt":871,"extractAt":791,"updatedAt":871},1778700105872,{"_creationTime":873,"_id":874,"community":875,"display":876,"identity":881,"providers":884,"relations":896,"tags":900,"workflow":901},1778688530317.6575,"k17bmz2ym9hq2bdg77t7ne9tts86nxzj",{"reviewCount":8},{"description":877,"installMethods":878,"name":879,"sourceUrl":880},"为 Claude Code 提供基于主题的自动记忆——跨会话或压缩时绝不会丢失上下文。",{"claudeCode":879},"claude-recap","https://github.com/hatawong/claude-recap",{"basePath":272,"githubOwner":882,"githubRepo":879,"locale":883,"slug":879,"type":256},"hatawong","zh-CN",{"evaluate":885,"extract":893},{"promptVersionExtension":213,"promptVersionScoring":214,"score":776,"tags":886,"targetMarket":226,"tier":227},[887,888,889,890,891,224,892],"memory","persistence","hooks","context-management","local-storage","nodejs",{"commitSha":262,"license":247,"plugin":894},{"mcpCount":8,"provider":784,"skillCount":895},4,{"parentExtensionId":897,"repoId":898,"translatedFrom":899},"k17944zm3ehfvm4ntncyz1dzyx86nc6v","kd78y3gm1ky53msejxede6b4x986nqyc","k17b9bmvrv1a5e41w678q1yvrh86m81g",[224,890,889,891,887,892,888],{"evaluatedAt":902,"extractAt":903,"updatedAt":904},1778688364899,1778688322101,1778688530317,{"_creationTime":906,"_id":907,"community":908,"display":909,"identity":915,"providers":919,"relations":925,"tags":927,"workflow":928},1778685949178.7913,"k178893jhzrwa53g69xtvqwt8h86n6p8",{"reviewCount":8},{"description":910,"installMethods":911,"name":913,"sourceUrl":914},"Essential safety hooks to prevent destructive operations in Claude Code. From cc-safe-setup (655+ hooks).",{"claudeCode":912},"hooks-safety","Hooks Safety","https://github.com/davepoon/buildwithclaude",{"basePath":916,"githubOwner":917,"githubRepo":918,"locale":18,"slug":912,"type":256},"plugins/hooks-safety","davepoon","buildwithclaude",{"evaluate":920,"extract":924},{"promptVersionExtension":213,"promptVersionScoring":214,"score":776,"tags":921,"targetMarket":226,"tier":227},[779,889,922,224,923],"safety","cli",{"commitSha":262,"license":247},{"repoId":926},"kd719kw54vhmcscq7ckdp59fg586mnt6",[224,923,889,922,779],{"evaluatedAt":929,"extractAt":930,"updatedAt":929},1778687676247,1778685949178]