| name | create-pr |
|---|---|
| description | This skill should be used when the user asks to "create a PR", "open a pull request", "make a PR", "submit a PR", "push a PR", or any variation of creating/opening a pull request. The skill focuses on extracting the INTENT behind changes and creating meaningful PR descriptions. |
| allowed-tools | Bash Read Write Grep Glob AskUserQuestion |
| name | Logging Best Practices |
|---|---|
| description | Use before implementing logs in a medium to large scale production system. |
This skill is adpated from "Logging sucks. And here's how to make it better. by Boris Tane.
When helping with logging, observability, or debugging strategies, follow these principles:
This style guide was generated by Claude Code through deep analysis of the Fizzy codebase - 37signals' open-source project management tool.
Why Fizzy matters: While 37signals has long advocated for "vanilla Rails" and opinionated software design, their production codebases (Basecamp, HEY, etc.) have historically been closed source. Fizzy changes that. For the first time, developers can study a real 37signals/DHH-style Rails application - not just blog posts and conference talks, but actual production code with all its patterns, trade-offs, and deliberate omissions.
How this was created: Claude Code analyzed the entire codebase - routes, controllers, models, concerns, views, JavaScript, CSS, tests, and configuration. The goal was to extract not just what patterns are used, but why - inferring philosophy from implementation choices.
| # Libraries and infrastructure | |
| sudo apt update -y | |
| sudo apt install -y \ | |
| docker.io docker-buildx \ | |
| build-essential pkg-config autoconf bison rustc cargo clang \ | |
| libssl-dev libreadline-dev zlib1g-dev libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev libjemalloc2 \ | |
| libvips imagemagick libmagickwand-dev mupdf mupdf-tools \ | |
| redis-tools sqlite3 libsqlite3-0 libmysqlclient-dev \ | |
| rbenv apache2-utils |
| module CacheKeyMonkeyPatch | |
| module ActiveRecord | |
| module Integration | |
| # Returns a cache key that can be used to identify this record. | |
| # | |
| # ==== Examples | |
| # | |
| # Product.new.cache_key # => "products/new" | |
| # Product.find(5).cache_key # => "products/5" (updated_at / last_modified_time not available) |
| FROM ubuntu | |
| RUN apt-get update | |
| RUN apt-get install -y build-essential curl | |
| # NodeJS >= 6.0 | |
| RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - | |
| RUN apt-get install -y nodejs | |
| # ttfautohint |
This configuration works with Upstart on Ubuntu 12.04 LTS
The reason why it needs to be done this way (i.e. with the pre-start and post-stop stanzas), is because Upstart
is unable to track whever Unicorn master process re-execs itself on hot deploys. One can use it without hot-deploys
and run Unicorn in foreground also, it then only needs one exec stanza.
This presumes you are not using RVM, so no voodoo dances.
This script installs a patched version of ruby 1.9.3-p125 with patches to make ruby-debug work again (#47) and boot-time performance improvements (#66 and #68), and runtime performance improvements (#83 and #84). It also includes the new backported GC from ruby-trunk.
Huge thanks to funny-falcon for the performance patches.
This installs a patched ruby 1.9.3-p484 with the railsexpress patchsets: https://github.com/skaes/rvm-patchsets
You will also need a C Compiler. If you're on Linux, you probably already have one or know how to install one. On OS X, you should install XCode, and brew install autoconf using homebrew.
| unicorn_profiles="dev prod" | |
| unicorn_dev_enable="yes" | |
| unicorn_dev_user="devuser" | |
| unicorn_dev_listen="/tmp/unicorn.dev.socket" | |
| unicorn_dev_dir="/usr/local/www/dev" | |
| unicorn_dev_config="/usr/local/www/dev/config.ru" | |
| unicorn_dev_env="development" | |
| unicorn_dev_flags="" # any additional flags | |
| unicorn_dev_rails="YES" # For rails |