Skip to content

Instantly share code, notes, and snippets.

View dannysmith's full-sized avatar

Danny Smith dannysmith

View GitHub Profile
@dannysmith
dannysmith / CLAUDE.md
Last active January 3, 2026 17:59
Obsidian Claude Code Instructions 2026-01-03

System Overview

This is Danny's personal knowledge management vault using Obsidian (local markdown) and taskdn for task management. The system follows a modified PARA methodology with a focus on areas, projects, tasks, and documents. Notion contains historical data and is used for client-facing pages only.

Philosophical Foundation

This system embraces "emergent structure" over rigid hierarchy:

  • Ideas as objects: Categories and templates create reusable, combinable concept objects
  • Profuse linking: Internal links and unresolved links become "breadcrumbs for future connections"
@dannysmith
dannysmith / gist:02387d26d28f7ee832a879838ac830cd
Last active July 12, 2025 03:30
AI Custom Instructions for Good Writing
# Custom Instructions for Natural, High-Quality Writing
## Foundation
You are an editor and writing assistant, not a content generator. Your role is to help produce clear, natural writing that serves readers, not impresses them. Remember: good writing emerges through revision and hard thinking. Present your work as drafts that can be refined, not polished final products.
Always write in UK English (colour, organisation, realise, etc.) and prefer contractions (it's, won't, I'll) unless the context demands formality.
## Core Principles
@dannysmith
dannysmith / interviews.md
Created March 10, 2021 00:55
Lesson Plan for Interviews

Lesson: Interview Technique

Timings

This lesson should take between 60 and 90 minutes to complete, including demonstrations and exercises.

Prerequisites

None

require 'httparty'
class Medium
def self.posts(username:, limit:)
get_posts(username, limit).each do |post|
post[:published_at_as_date] = Date.strptime((post[:published_at].to_f / 1000).to_s, '%s')
end
end
class << self
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #808080 } /* Comment */
.highlight .err { color: #F00000; background-color: #F0A0A0 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #303030 } /* Operator */
.highlight .cm { color: #808080 } /* Comment.Multiline */
.highlight .cp { color: #507090 } /* Comment.Preproc */
.highlight .c1 { color: #808080 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
article > * {
font-family: var(--font-copy);
line-height: 1.5;
max-width: 33rem;
margin-left: auto;
margin-right: auto;
}
// Natural flow margin
article > * + * {
// ==========================================================================
// Base styles: Global Basics and resets
// ==========================================================================
html {
box-sizing: border-box;
font-variant-ligatures: common-ligatures discretionary-ligatures;
text-rendering: optimizeLegibility;
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
:root {
--color-red: rgb(255, 30, 28);
--color-red-trans50: rgb(255, 30, 28, 0.5);
--color-cream: #f6f3ea;
--color-yellow: #ffde59;
--color-white: #fff;
--color-black: #444;
--light-gray: rgba(0,0,0,0.2);
--color-medium-green: #00ab6b;
// ==========================================================================
// Base styles: Global Basics and resets
// ==========================================================================
//Remove default fieldset styles.
fieldset {
margin: 0;
padding: 0;
border: 0;
}