numerology/PROFILE-SYSTEM.md
rpriven fd6e171586
Add comprehensive numerology calculator with 10 specialized tools
- Core calculations (Life Path, Expression, Soul Urge, Birthday)
- Advanced numbers (Maturity, Personality, Hidden Passion, Karmic Lessons)
- Timing cycles and optimal days finder
- Compatibility analysis and name optimizer
- Telos integration for personal development
- Professional PDF report generation
- Profile management system
- Security fix: Add .claude/ to .gitignore

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 14:00:15 -06:00

7 KiB

Profile Management System

Overview

The profile management system allows you to save your numerology data (name and birthdate) once and reuse it across all numerology tools. No more typing --name "..." --birthdate "..." every time!

Features

  • Create profiles with auto-generated or custom identifiers
  • List all profiles to see what's saved
  • Show profile details including creation/update dates
  • Delete profiles when no longer needed
  • Use profiles everywhere across all 10+ numerology tools

Storage

Profiles are stored in JSON format at:

~/.numerology/profiles/<identifier>.json

Each profile contains:

{
  "name": "John Smith",
  "birthdate": "3/15/1990",
  "created": "2025-10-15T12:27:34.567Z",
  "updated": "2025-10-15T12:27:34.567Z"
}

Commands

Create a Profile

# Auto-generate identifier from first name
bun profile.ts create --name "John Smith" --birthdate "3/15/1990"
# → Creates profile 'john'

# Custom identifier
bun profile.ts create johns --name "John Smith" --birthdate "3/15/1990"

# Update existing profile (same command)
bun profile.ts create rob --name "John Smith" --birthdate "3/15/1990"

Options:

  • --name, -n NAME - Full name (required)
  • --birthdate, -b DATE - Birthdate in mm/dd/yyyy format (required)

List Profiles

bun profile.ts list

Shows all saved profiles with:

  • Identifier
  • Name
  • Birthdate
  • Creation date

Show Profile Details

bun profile.ts show rob

Shows detailed information:

  • Name
  • Birthdate
  • Created timestamp
  • Updated timestamp

Delete Profile

bun profile.ts delete rob

Permanently removes the profile from storage.

Using Profiles

Once created, use --profile (or -p) flag with any numerology tool:

Main Calculator

# Basic calculation
bun numerology.ts --profile john

# With detailed meanings
bun numerology.ts --profile john --detailed

# With advanced numbers
bun numerology.ts --profile john --advanced

# With timing cycles
bun numerology.ts --profile john --cycles

# All together
bun numerology.ts --profile john --detailed --advanced --cycles

PDF Report Generator

# Generate comprehensive PDF report
bun generate-report.ts --profile john

# Custom output location
bun generate-report.ts --profile john --output ~/reports/rob-numerology.pdf

Other Tools

# Compatibility analysis
bun compatibility.ts --profile john --person2 "Jane:1/1/1990"

# Optimal days finder
bun optimal-days.ts --profile john --day 1

# Year-ahead calendar
bun year-ahead.ts --profile john

# Pinnacles & life stages
bun pinnacles.ts --profile john

# Advanced numbers
bun advanced-numbers.ts --profile john --detailed

# Name change analysis (current name loaded from profile)
bun name-change.ts --profile john --alternative "John Smith"

# Name optimizer (base name loaded from profile)
bun name-optimizer.ts --profile john --find-masters

Use Cases

Personal Use

Save your own profile and quickly run any calculation:

bun profile.ts create --name "Your Name" --birthdate "mm/dd/yyyy"
bun numerology.ts --profile yourname --detailed --advanced --cycles

Family Profiles

Store profiles for family members:

bun profile.ts create --name "Partner Name" --birthdate "mm/dd/yyyy"
bun profile.ts create --name "Child Name" --birthdate "mm/dd/yyyy"

# Compare compatibility
bun compatibility.ts --profile partner1 --profile partner2

Professional/Client Use

Numerology practitioners can store client profiles:

# Create client profiles
bun profile.ts create client1 --name "Client Name" --birthdate "mm/dd/yyyy"

# Generate professional reports
bun generate-report.ts --profile client1 --output ~/clients/client1-report.pdf

Multiple Profiles

Test different scenarios with saved profiles:

# Create variations
bun profile.ts create john-legal --name "John Smith" --birthdate "3/15/1990"
bun profile.ts create john-nick --name "John Smith" --birthdate "3/15/1990"

# Compare
bun numerology.ts --profile john-legal --detailed
bun numerology.ts --profile john-nick --detailed

Architecture

File Structure

profile-manager.ts  # Core CRUD operations
profile.ts          # CLI interface
~/.numerology/
  └── profiles/
      ├── rob.json
      ├── jane.json
      └── ...

API Functions

From profile-manager.ts:

// Save or update a profile
saveProfile(identifier: string, name: string, birthdate: string): void

// Load a profile
loadProfile(identifier: string): Profile | null

// List all profiles
listProfiles(): Array<{ identifier: string; profile: Profile }>

// Delete a profile
deleteProfile(identifier: string): boolean

// Check if profile exists
profileExists(identifier: string): boolean

// Generate identifier from name
generateIdentifier(name: string): string

Profile Interface

interface Profile {
  name: string;
  birthdate: string;
  created: string;     // ISO 8601 timestamp
  updated: string;     // ISO 8601 timestamp
}

Implementation Details

Identifier Generation

Auto-generated identifiers:

  • Extract first name from full name
  • Convert to lowercase
  • Remove non-alphanumeric characters

Example: "John Smith" → "rob"

File Naming

Profile files use sanitized identifiers:

  • Lowercase
  • Replace invalid characters with hyphens
  • Only a-z, 0-9, -, _ allowed

Example: "Rob's Profile" → robs-profile.json

Timestamp Tracking

  • created - Never changes, set on first save
  • updated - Updates every time profile is modified

Error Handling

  • Profile not found → Helpful error message with suggestion to list profiles
  • Invalid data → Validation errors with clear instructions
  • File system errors → Caught and reported gracefully

Future Enhancements

Potential additions to the profile system:

  1. Profile metadata - Add notes, tags, or categories
  2. Import/export - Share profiles or backup to file
  3. Profile groups - Organize profiles by family, clients, etc.
  4. Search - Find profiles by name or birthdate pattern
  5. Aliases - Multiple identifiers for same profile
  6. Defaults - Set default profile for quick access
  7. Cloud sync - Sync profiles across devices
  8. History - Track calculation history per profile

Benefits

Convenience - Type once, use everywhere Consistency - Same data across all tools Speed - Faster workflow for repeated calculations Organization - Manage multiple people systematically Professional - Clean interface for client work Portable - Simple JSON format, easy to backup

Compatibility

Works with all numerology tools:

  • numerology.ts (main calculator)
  • generate-report.ts (PDF reports)
  • optimal-days.ts
  • pinnacles.ts
  • compatibility.ts
  • year-ahead.ts
  • advanced-numbers.ts
  • name-change.ts
  • name-optimizer.ts
  • telos-week.ts
  • And more...

Status: Fully Implemented (Phase 6) Version: 1.0 Date: October 15, 2025