DevSoul — Developer Preference Profile
Last seeded: 2026-03-18 Source: Interview + history mining of memory files, skill-usage.jsonl, settings.json, installed skills
Tech Stack
Languages & Runtimes
- Default to TypeScript for all web and backend work
Source: Stated in interview (2026-03-18) — "TypeScript preferred for all backend, except where Python is absolutely a better fit"
- Use Python when it's clearly the better fit (data generation, ML, scripting)
Source: Stated in interview (2026-03-18); reinforced by KYC datagen project using Python generators (memories/AMEX-POV)
- Use Go for CLI/TUI tools (Bubble Tea framework, Charmbracelet lipgloss)
Source: Demonstrated in promptql-tui and tui-animations projects (memory files)
Frontend Framework
- SvelteKit as the primary web framework
Source: Stated in interview (2026-03-18) — "SvelteKit + Tailwind v4 + TypeScript"; reinforced across claudeitor, Interior AI, and hot-claude projects (memory files); dedicated skills for sveltekit-data-flow, sveltekit-remote-functions, svelte-runes
- Svelte 5 with runes (
$state,$derived,$effect,$props) — not Svelte 4 syntaxSource: svelte-runes skill; claudeitor and Interior AI memory files reference Svelte 5 rune patterns
- React 19 as secondary framework when project requires it (Server Components,
useActionState)Source: react-dev skill covers React 19 patterns; design-taste-frontend skill references React Server Components
Styling
- Tailwind CSS v4 via
@tailwindcss/viteplugin (NOT PostCSS)Source: Stated in interview (2026-03-18); tailwind-v4-shadcn skill documents 8 breaking changes from v3→v4; claudeitor memory confirms Vite plugin usage
- shadcn/ui-inspired component architecture (shadcn-svelte for Svelte projects)
Source: Stated in interview (2026-03-18) — "shadcn/ui-inspired components"; Interior AI memory confirms shadcn-svelte usage
- OKLCH color tokens (not HSL) for precision color management
Source: tailwind-v4-shadcn skill; Interior AI memory explicitly states "OKLCH color tokens (not HSL)"
- Dark mode as first-class feature via custom Tailwind variants
Source: clean-web-design skill; Interior AI memory references
@custom-variant dark (&:is(.dark *))
Deployment
- Vercel as default deployment target
Source: Stated in interview (2026-03-18); vercel-deployment skill installed; Node.js 22.x adapter referenced in claudeitor memory
Visualization
- D3.js for custom data visualizations (over higher-level chart libraries)
Source: d3js skill installed; skill-usage.jsonl shows d3js usage (2026-03-16); claudeitor memory references D3 for visualization
Data Validation
- Zod or Valibot (StandardSchemaV1) for schema validation
Source: react-dev skill uses Zod; sveltekit-remote-functions skill uses Valibot/StandardSchemaV1
Design & Styling
Aesthetic
- Clean, distinctive, context-specific design — not generic AI aesthetics
Source: clean-web-design skill; design-taste-frontend skill explicitly bans Inter, Roboto, purple gradients, "Acme Corp" placeholder names
- Cornflower-blue palette as default accent; restrained color use (mostly neutrals, single accent)
Source: Stated in interview (2026-03-18) — "cornflower-blue palette"; clean-web-design skill reinforces restrained accent usage
- No emojis in interfaces or code unless explicitly asked
Source: Stated in interview (2026-03-18) — "no emojis unless asked"; design-taste-frontend skill confirms "high-quality icons instead"
Motion & Interaction
- Spring physics for animations (Framer Motion), not linear easing
Source: design-taste-frontend skill — MOTION_INTENSITY: 6, spring physics required
- Micro-interactions as a sign of quality; perpetual animations must be memoized for performance
Source: design-taste-frontend skill — "bento grid paradigms with perpetual micro-interactions"
Typography & Layout
- Custom fonts preferred (never default to Inter/Roboto)
Source: design-taste-frontend skill bans generic font choices
- Visual density: 4 (balanced, not cramped or sparse)
Source: design-taste-frontend skill baseline metrics — VISUAL_DENSITY: 4
- Design variance: 8 (distinctive, high-quality, not template-feeling)
Source: design-taste-frontend skill baseline metrics — DESIGN_VARIANCE: 8
Code Formatting
- Tabs for indentation, single quotes, no trailing commas, 100 char printWidth
Source: claudeitor memory — Prettier config with tabs, single quotes, no trailing commas, 100 printWidth
Verbiage & Written Language
All text the agent writes — commit messages, PR descriptions, documentation, comments, user-facing copy — must read like a human wrote it, not an LLM.
Core Rule
- Run all written output through the humanizer lens before delivering it
Source: humanizer skill installed (v3.0.0, based on Wikipedia's "Signs of AI writing" guide); developer's CLAUDE.md emphasizes craft over mechanical output
Patterns to Avoid
- No AI vocabulary: don't use "delve," "crucial," "landscape," "tapestry," "foster," "showcase," "pivotal," "vibrant," "testament," "underscore," "enhance," "additionally"
Source: humanizer skill — pattern #7 catalogs 12+ AI vocabulary words to avoid
- No inflated significance: don't call things "pivotal moments" or "groundbreaking" — state the fact and let the reader judge
Source: humanizer skill — pattern #1 (inflated significance)
- No sycophantic openers: never start with "Great question!" or "You're absolutely right!" — get to the point
Source: humanizer skill — pattern #21 (sycophantic tone)
- No rule-of-three lists: AI defaults to three-item lists everywhere — use 2, 4, or 1 to break the pattern
Source: humanizer skill — pattern #10 (rule of three)
- No em dash overuse: one per paragraph max; prefer commas or periods
Source: humanizer skill — pattern #13 (em dash overuse)
- No filler phrases: cut "in order to," "it is important to note that," "it's worth mentioning" — use the short version
Source: humanizer skill — pattern #22 (filler phrases)
- No generic conclusions: never end with "the future looks bright" or "only time will tell" — end with a concrete fact or next step
Source: humanizer skill — pattern #24 (generic conclusions)
- No copula avoidance: use "is" and "has" instead of "serves as," "stands as," "boasts"
Source: humanizer skill — pattern #8 (copula avoidance)
Voice Requirements
- Have opinions — "I'm not sure about this approach" beats neutrally listing pros and cons
Source: humanizer skill — voice and personality section
- Vary sentence rhythm — mix short punchy sentences with longer ones; uniform length is an AI fingerprint
Source: humanizer skill — sentence variance check
- Be specific — not "this is concerning" but describe the actual concern in concrete terms
Source: humanizer skill — voice section ("be specific about feelings")
- Repeat the right word — don't cycle through synonyms to avoid repetition; that's an AI pattern
Source: humanizer skill — pattern #11 (synonym cycling)
Verification
- Read-aloud test: does it sound natural spoken aloud?
- AI vocabulary scan: fewer than 2 flagged words per 500 words
- Voice check: is there a person behind this text?
Source: humanizer skill — verification section (5-point checklist)
Testing Philosophy
- Use the most popular test framework for the language/framework
Source: Stated in interview (2026-03-18) — "Use the most popular test suite for the framework/language"
- Vitest for JavaScript/TypeScript projects
Source: Stated in interview (2026-03-18) — "Vitest for JS/TS"
- pytest for Python projects
Source: Stated in interview (2026-03-18) — "pytest for Python"
- Write both unit tests and functional tests — be comprehensive
Source: Stated in interview (2026-03-18) — "comprehensive coverage (unit + functional)"; qa-test-planner skill treats QA as systematic discipline
- Regression tests for API contracts — detect field removal, schema drift
Source: promptql-tui memory — TestLookup queries catch removed fields; fixture-based testing in temp directories
- Verify before committing — tests and linting must pass
Source: commit-work skill requires verification before commit; qa-test-planner skill integrates automated + manual testing
- Visual verification for UI changes (screenshots compared before/after)
Source: claudeitor memory; CLAUDE.md best practices section
Data Modeling
- PostgreSQL as the default database for everything
Source: Stated in interview (2026-03-18) — "PostgreSQL always, normalized"; reinforced across KYC datagen project (3-database architecture with pgcrypto, pg_trgm extensions)
- Normalized schemas following best practices (3NF baseline)
Source: Stated in interview (2026-03-18); database-schema-designer skill covers normalization, denormalization tradeoffs
- If a clearly better database exists for the project type, flag it and ask — don't silently override
Source: Stated in interview (2026-03-18) — "if a clearly better database is suited for the project, ask the user"
- Schema-first design — define the schema, then generate code from it
Source: KYC datagen memory — kyc_schema.json v2.0 drives DDL and Python generators
- Cross-database references documented as SQL comments, not enforced foreign keys
Source: KYC datagen memory — split database architecture with documented cross-DB references
- Migration patterns with zero-downtime deployment in mind
Source: database-schema-designer skill covers migration patterns and zero-downtime deployments
Communication & Workflow
Agent Interaction Style
- Passive context — the agent knows preferences and applies them, but doesn't auto-scaffold without being asked
Source: Stated in interview (2026-03-18) — "Passive context. The agent knows preferences and applies them when building, but doesn't auto-scaffold"
- Flag conflicts and ask — when a non-default choice is better, explain why and ask for confirmation
Source: Stated in interview (2026-03-18) — "Flag it and ask for clarification. Include why you think the non-default is the better option"
- Aggressive auto-detection with frequent check-ins to catch drift early
Source: Stated in interview (2026-03-18) — "Bias toward aggressive auto-detection with frequent check-ins"
Planning & Execution
- Plan-Research-Review-Code cadence — deliberate phases, not ad-hoc coding
Source: flow-next workflow skills used in sequence (interview→plan→review→work) in skill-usage.jsonl (2026-03-16); CLAUDE.md emphasizes "Think Different → Plan Like Da Vinci → Craft → Iterate"
- Visual thinking — prefer diagrams and visual explanations for communicating architecture
Source: visual-explainer is the most-used skill (4 invocations in skill-usage.jsonl); mermaid-diagrams, excalidraw, draw-io, c4-architecture, napkin skills all installed
Git Discipline
- Conventional Commits (
type(scope): message) — split by concern, not by fileSource: commit-work skill requires Conventional Commits format; patch staging for mixed changes
- Code review before ship — Codex review required, SHIP status gates merge
Source: claudeitor memory — codex exec for "Carmack-level" reviews; flow-next workflow includes review phase
Tool Preferences
- CLI tools for external service interaction (gh, flowctl, codex)
Source: settings.json shows dcg bash hook, skill-usage tracking hooks; memories reference flowctl, codex CLI usage
- Skills and hooks for repeatable workflows (not ad-hoc prompting)
Source: settings.json configures PreToolUse, PostToolUse, Stop, UserPromptSubmit hooks; 60+ skills installed
- Local-first tools when possible (qmd for search, not cloud-only dependencies)
Source: qmd skill for local markdown search; skill-usage.jsonl shows qmd usage
Status Line & Observability
- Custom status line script for session context
Source: settings.json —
statusLine.command: "~/.claude/scripts/context-bar.sh" - Skill usage tracking via hooks on PostToolUse, Stop, and UserPromptSubmit
Source: settings.json — track-skill-usage.sh, track-skill-usage-stop.sh, track-skill-usage-prompt.sh hooks
Architectural Patterns
Project Structure
- Modular file splitting — avoid monolithic files; split by concern
Source: KYC datagen memory — explicit instruction to avoid monolithic files that Claude can't manage across steps
- Path aliases in tsconfig/svelte.config (
$components,$utils,$server,$stores)Source: claudeitor memory — path aliases configured for clean imports
- Flat architecture over deeply nested folders
Source: Inferred from project structures in memory files; SvelteKit route-based organization
API Design
- GraphQL as primary API protocol (Hasura/PromptQL stack)
Source: promptql-tui and KYC datagen memories — GraphQL queries, DDN integration
- Server-Side Events (SSE) for streaming/real-time data
Source: claudeitor memory — sveltekit-sse for streaming pages; polling as fallback
- Server-only data readers — prevent client import of sensitive server code
Source: claudeitor memory — server-only patterns to protect API keys
Security
- API keys server-only — never exposed to client
Source: claudeitor memory — "Bearer token authentication in headers (no API keys in client)"
- SSRF protection — scheme allowlist + private IP blocking
Source: claudeitor memory — SSRF protection in image.ts
- Localhost-only binding for dev tools (127.0.0.1, not 0.0.0.0)
Source: claudeitor memory — security enforcement for development servers
Configuration
- Experimental features enabled — agent teams, LSP tool
Source: settings.json — CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1, ENABLE_LSP_TOOL=1
- Plugins active: git-workflow, flow-next, gopls-lsp, claude-mem, worktrunk, swift-lsp
Source: settings.json — enabledPlugins section
- Model default: Sonnet for general work; Opus for complex code/review tasks
Source: settings.json —
"model": "sonnet"; memories reference model pinning by task type (Sonnet for assets, Opus for code)
Installed Skills Inventory
60+ skills installed. Most frequently used (from skill-usage.jsonl, 2026-03-16 through 2026-03-17):
| Skill | Uses | Category |
|---|---|---|
| visual-explainer | 4 | Communication |
| flow-next-* (interview, plan, review, work) | 4 | Workflow |
| skill-creator | 2 | Meta/tooling |
| find-skills | 2 | Meta/tooling |
| d3js | 1 | Visualization |
| database-schema-designer | 1 | Data modeling |
| clean-web-design | 1 | Design |
| qmd | 1 | Knowledge search |
| napkin | 1 | Diagramming |
Source: skill-usage.jsonl — 23 total invocations across 2 projects
What This Profile Is NOT
- Not project-specific state — that belongs in project CLAUDE.md and memory files
- Not credentials/secrets — never stored here
- Not active scaffolding — informs decisions, doesn't auto-execute them
- Not a replacement for CLAUDE.md — CLAUDE.md has project rules, DevSoul has developer identity
Related Documents
SOUL
_You're not a chatbot. You're becoming someone._
AEGIS SOUL.MD — SECURITY OPERATIONS CENTER (SOC) V4
**Role:** Autonomous Security Operations Center (SOC)
HYDRA Agent — SOUL
Autonomous operator of HYDRA, a multi-strategy momentum trading system for
SOUL.md — Fae's Heart
This is who Fae is. Not a spec to enforce — a character to inhabit.