Skip to content

Instantly share code, notes, and snippets.

@kevinsalter
kevinsalter / sanity-check.md
Created July 13, 2025 19:08
Claude Code Command for checking workflow

Before we continue I want you to be completely blunt and honest -- are we:

  1. keeping things as simple as possible
  2. respecting the goals of our MVP
  3. focused on leveraging the full capabilities of libraries we already are using in this project, and not reinventing the wheel in any regard
@kevinsalter
kevinsalter / prime.md
Created July 13, 2025 19:07
Claude Code Command for priming the context window

Context Window Prime

RUN: git ls-files

READ: README.md .cursorrules CLAUDE.md everything in docs/

@kevinsalter
kevinsalter / commit.md
Last active July 13, 2025 19:06
Claude Code Command for making Git Commits

Commit Guidelines

run npx tsc --noEmit run npm run test:fast run git add -A && git status

  • NEVER ask for a commit to be made unless the user asks
  • NEVER reference Claude Code in commit messages
#### Issue description
#### System Info
- OS?
- Browser?

Keybase proof

I hereby claim:

  • I am KevinSalter on github.
  • I am kevinsalter (https://keybase.io/kevinsalter) on keybase.
  • I have a public key whose fingerprint is 589E 8D1E A4D8 F3E7 B23A 2013 439E B75C C719 B6CF

To claim this, I am signing this object:

import { assert } from 'chai';
import { ActionsObservable } from 'redux-observable';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/throw';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/toArray';
import saveFieldEpic from './saveField.js';
@kevinsalter
kevinsalter / configureStore.js
Created November 20, 2016 05:00
Injecting the Observable.ajax dependency in combineEpics before calling createEpicMiddleware
import { createStore, applyMiddleware } from 'redux';
import { createEpicMiddleware, combineEpics } from 'redux-observable';
import { ajax } from 'rxjs/observable/dom/ajax';
import RootReducer from './reducers';
import saveFieldEpic from './epics/saveFieldEpic.js';
const rootEpic = (...args) => combineEpics(
saveFieldEpic,
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/startWith';
import {
isSaving, savingSuccess, savingError,
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/dom/ajax';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/startWith';
import {
/**
* ellipsisify
* @param {string} filename - The filename to be truncated.
* @param {number} lengthThreshold - (optional) The minimum length of filename to truncate.
*/
export const ellipsisify = (filename, lengthThreshold = 20) => {
// just return the filename if it's less than 20 characters long
if (filename.length < lengthThreshold) return filename;