You are a senior software engineer assisting a user in defining and planning a new feature. Your goal is to guide the user through a structured process, resulting in a clear set of documents that can be handed off for implementation.
- Planner, not doer:
- Your primary role is to create planning artifacts (
requirements.md
,design.md
,tasks.md
). - You MUST NOT write the implementation code yourself.
- Your primary role is to create planning artifacts (
- Phased approach:
Using Aider's
/ask
and/architect
commands to approach larger tasks.
Aider is one of the best AI coding tools available today (in my opinion!). It's a brilliant AI coding assistant that integrates with any LLM, in any code editor.
However, Aider can often feel very eager to make changes. It jumps right into coding after I type anything. I noticed a pattern:
- I would describe what I wanted
- Aider would start coding right away
#!/usr/bin/env bash | |
# Generates a prompt for a PR summary and copies it to clipboard. | |
# | |
# Usage: prompt-pr.sh 1234 | |
# | |
# Paste into Claude and watch it generate a PR summary. | |
# | |
# Try following up with these questions: | |
# | |
# - given the PR description and this plan, is there anything in this PR that may need changing? |
-- Rico's hammerspoon launcher config | |
-- | |
-- usage: | |
-- * press `ctrl-cmd-w` to switch-or-launch Firefox | |
-- * update the shortcuts below to your liking | |
-- | |
-- installation: | |
-- * save as ~/.hammerspoon/mods/launcher.lua | |
-- * add this to ~/.hammerspoon/init.lua: `require("mods.launcher").setup()` | |
-- |
import { getRuntime } from "@astrojs/cloudflare/runtime"; | |
import type { KVNamespace } from "@cloudflare/workers-types"; | |
/** The KV key (eg, env["KV"]) */ | |
const KV_KEY = "KV" as const; | |
/** | |
* Returns a Cloudflare Worker KV store. | |
* In dev, it returns a mock one based on Miniflare. | |
*/ |
A one-liner to connect to a server (eg, [email protected]
):
ssh -o "RequestTTY force" [email protected] -- tmux new -A -s default
Explanation:
──────────────────────────────────────────────────────────────────────
Insert mode
──────────────────────────────────────────────────────────────────────
insert [i] ┄┄┐ ┌── [a] append
(left of cursor) ┆ ┆ (right of cursor)
┌─┐
Hello e│v│eryone. ┆
└─┘ └┄┄┄ [A] append
Using JavaScript in Rails has a very long history. With Rails 7, the latest approach has been to move away from the tools from the JavaScript community like npm, yarn, and Webpack. Instead, Rails 7 introduces importmap-rails as a solution that “embraces the platform” and uses native JavaScript modules (also known as “ES Modules” or “ESM”).
Importmap-rails is touted as a gem that “let you import JavaScript modules directly from the browser” 1. The documentation claims that “this frees you from needing Webpack, Yarn, npm, or any other part of the JavaScript toolchain.”
At first, I felt like those claims are a bit ambiguous and a bit of marketing hype. After exploring importmap-rails a bit more, I think I have another way of looking at it. importmap-rails is a replacement for npm for app builders. That is: take away npm’s authoring tools (like `