nip/profiles/MIGRATION.md

4.1 KiB

Profile Migration Summary

Migration Date

November 18, 2025

What Was Migrated

Profiles were moved from the private .kiro/nip/profiles/ directory to the public nip/profiles/ directory to make them accessible to users.

New Structure

nip/profiles/
├── README.md              # Profile system documentation
├── MIGRATION.md          # This file
├── security/             # Security profiles for Nippels
│   ├── workstation.kdl   # Work computers
│   ├── homestation.kdl   # Home use (default)
│   ├── satellite.kdl     # Laptops/mobile
│   ├── network-iot.kdl   # Embedded/IoT
│   └── server.kdl        # Server deployments
├── build/                # Build profiles for compilation
│   ├── desktop.kdl       # Desktop build config
│   ├── server.kdl        # Server build config
│   └── minimal.kdl       # Minimal build config
└── examples/             # Example custom profiles
    ├── gaming-rig.kdl    # Gaming-optimized
    ├── ml-workstation.kdl # Machine learning
    ├── developer.kdl     # Developer workstation
    └── fleet-node.kdl    # Fleet management

Profile Types

1. Security Profiles (security/)

Define isolation levels and security settings for Nippels (user-level application environments):

  • Workstation: Standard isolation + desktop integration
  • Homestation: Standard isolation + relaxed network (default)
  • Satellite: Strict isolation + limited network
  • Network/IOT: Strict isolation + minimal resources
  • Server: Strict isolation + no desktop + enhanced auditing

2. Build Profiles (build/)

Define compiler flags and optimization levels for building packages:

  • Desktop: Modern graphics, audio, user experience
  • Server: Security hardened, performance optimized
  • Minimal: Small size, essential features only

3. Example Profiles (examples/)

Additional profiles for specific use cases:

  • Gaming Rig: Gaming-optimized configuration
  • ML Workstation: Machine learning workstation
  • Developer: Developer workstation
  • Fleet Node: Fleet management node

Why This Migration?

  1. User-Facing Feature: Profiles are a public feature that users need to see and understand
  2. Documentation: Profiles should be documented alongside the code
  3. Customization: Users can learn from and customize existing profiles
  4. Version Control: Profile changes should be tracked in the public repo
  5. Distribution: Profiles should ship with the nip package

Old Location (Deprecated)

The old location .kiro/nip/profiles/ is now deprecated and should not be used. The .kiro/ directory is for:

  • Internal specs and planning
  • Development coordination
  • AI context

But NOT for user-facing features like profiles.

Usage

Security Profiles

# Create Nippel with specific security profile
nip cell create dev-env --profile Workstation

# Use default profile (Homestation)
nip cell create my-env

Build Profiles

# Build package with specific profile
nip build vim --profile desktop

# Build with server profile
nip build nginx --profile server

Custom Profiles

# Copy and customize
cp nip/profiles/security/homestation.kdl ~/.config/nip/profiles/security/my-profile.kdl
vim ~/.config/nip/profiles/security/my-profile.kdl

# Use custom profile
nip cell create my-env --profile my-profile

Next Steps

  1. Profiles migrated to public location
  2. Documentation created (README.md)
  3. Security profiles created for Nippels
  4. Build profiles organized
  5. Example profiles provided
  6. 🔄 Update Nippels spec to reference new location
  7. 🔄 Update implementation to load from new location
  8. 🔄 Add profile validation and testing

Migration completed successfully! 🎉

Profiles are now in the public repository where they belong, making them accessible to users and properly documented.