Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
e95ef8d
fix: write algorithmVersion to settings.json at session end
Mar 1, 2026
127f255
docs: Update repo location from ~/Tools/Personal_AI_Infrastructure to…
HyggeHacker Jan 20, 2026
e7b4b4a
feat: Add per-vault context loading for client workflows
HyggeHacker Jan 21, 2026
12d515a
docs: Add hybrid development workflow guide
HyggeHacker Jan 21, 2026
c6d84a0
Add Azure Pentest skill pack with 9 specialized skills
HyggeHacker Jan 29, 2026
e002cb1
feat: Add internal and external pentest skill packs
HyggeHacker Feb 7, 2026
8ce9c53
feat: Add Phase 0 passive sniffing script and methodology updates
HyggeHacker Feb 7, 2026
9fca5a3
fix: Update passive sniffing script with expanded functionality
HyggeHacker Feb 8, 2026
6aa35eb
Rename custom skills to _ALLCAPS convention for PAI migration
HyggeHacker Feb 8, 2026
1dbabf2
fix: Add audio playback queue to prevent overlapping voice notifications
Feb 10, 2026
cce7458
feat: Add voice input pack scaffolding (v0.1.0)
Feb 10, 2026
ce29379
feat: Add CORE Components build system and Algorithm version history
Feb 11, 2026
3ff4ef4
feat: Expand MITM6 coverage and improve Responder guidance in interna…
Feb 14, 2026
3fe6763
feat: Consolidate 9 Azure skills into 3 orchestration skills (v3.1.0)
Feb 17, 2026
06f592d
security: Remove pentest packs from public fork
Feb 17, 2026
6202e53
chore: Add Private-Packs to gitignore
Feb 17, 2026
826d88d
Add Observability dashboard to v3.0 release
Feb 17, 2026
91e5c9a
Add obs-cmds and obs-tui CLI tools to Observability
Feb 17, 2026
2251d3c
Add observability.ts hook library for dashboard event integration
Feb 17, 2026
e063078
Change entire statusline color palette to cyan theme
Feb 18, 2026
dbfcb83
Revert full cyan theme, only cyan the PAI header line
Feb 18, 2026
f43dd12
pai CLI: load PAI config via --settings overlay
Feb 19, 2026
6f5c8c6
sync: push local modifications from Jamess-MacBook-Air
Feb 23, 2026
cd8dd94
safety: add .gitignore entries for MEMORY/ and COLLECTIVE/ in release…
Feb 23, 2026
ee4d157
sync: push local modifications from Jamess-MacBook-Air
Feb 23, 2026
308a8c1
chore: normalize file permissions to 644 across release dir
Feb 23, 2026
d6f4365
fix: update pai CLI version string from v2.0 to v3.0
Feb 23, 2026
f17889a
fix: restore --settings overlay so PAI hooks load on all nodes
Feb 23, 2026
71b9009
fix: slim pai-settings.json to overlay-only, add missing file fallback
Feb 23, 2026
46fad3d
fix: correct schema URL in pai-settings.json, fix banner v2.0 fallback
Feb 23, 2026
4daf2f4
revert: remove pai-settings.json overlay, sync settings.json via private
Feb 23, 2026
949cdfb
fix: un-gitignore package.json, add to release for hook dependencies
Feb 23, 2026
9013cd1
fix: PAI_ACTIVE env, Banner algo/counts fallback, statusline algo path
Mar 2, 2026
116ffa1
Merge remote-tracking branch 'upstream/main'
Mar 2, 2026
c5758c9
fix: restore iMac bug fixes to v4.0 release (Banner, pai.ts, statusline)
Mar 2, 2026
57577d2
migrate: remove v4.0 release directory, fully switched to v4.0.0
Mar 2, 2026
e2f728c
fix: gate LoadContext.hook.ts on PAI_ACTIVE env var
Mar 2, 2026
38ba44e
fix: restore cyan PAI header branding in statusline
Mar 2, 2026
5134e49
Merge tag 'v4.0.3'
Mar 2, 2026
5dd68f0
fix: apply v4.0.3 patches to working tree (PRs #800, #836, #817, #846)
Mar 2, 2026
675143c
feat: add .pai-release version file for cross-machine deploy
Mar 2, 2026
7a63c70
feat: add Sales and WriteStory skills to v4.0.0 release
Mar 2, 2026
d18635b
Revert "feat: add Sales and WriteStory skills to v4.0.0 release"
Mar 2, 2026
44cd54a
Merge remote-tracking branch 'upstream/main'
Mar 10, 2026
50b1ee0
feat(utilities): add SyncPrivateSkills workflow for custom skill sync
Mar 10, 2026
e49a68d
docs: remove references to unimplemented AlgorithmTab.hook.ts
Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
98 changes: 45 additions & 53 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,68 +1,60 @@
# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.Spotlight-V100
.Trashes
Library

# API keys and secrets
# Build outputs
# Cache
# Environment files
.env
.env.local
.env.*.local
# IDE
# Logs
# Node/Bun
# PAI Update System (sideloading)
# Personal/Private data
# Temporary files
# macOS
*.cache
*.cer
*.cert
*.crt
*.env

# API keys and secrets
*.pem
*.key
*.cert
*.log
*.p12
*.pem
*.pfx
*.swo
*.swp
*.tmp
*_rsa
*_rsa.pub
*.crt
*.cer

# Logs
*.log
logs/
Library/Logs/

# Node/Bun
node_modules/
*~
.AppleDouble
.DS_Store
.LSOverride
.Spotlight-V100
.Trashes
._*
.cache/
.claude/.pai-sync-history
.claude/pai_backups/
.claude/pai_updates/
.env
.env.*.local
.env.local
.idea/
.npm
.yarn
.pnp.*

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# Temporary files
tmp/
temp/
*.tmp

# Build outputs
dist/
.yarn
Icon
Library
Library/Logs/
Private-Packs/
build/
credentials/
dist/
logs/
node_modules/
out/

# Cache
.cache/
*.cache

# Personal/Private data
private/
secrets/
credentials/

# PAI Update System (sideloading)
.claude/pai_updates/
.claude/pai_backups/
.claude/.pai-sync-history
temp/
tmp/
1 change: 1 addition & 0 deletions .pai-release
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v4.0.0
176 changes: 176 additions & 0 deletions HYBRID-WORKFLOW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
# PAI Hybrid Development Workflow

This documents the hybrid workflow for PAI development: iterate fast in `~/.claude`, formalize to Packs when ready.

## The Two Locations

**Installation Directory (`~/.claude/`):**
- Where PAI actually runs
- Fast iteration and testing
- Changes take effect immediately
- Not version controlled directly

**Repository Directory (`~/PAI/Packs/`):**
- Source code in version control
- Proper Pack structure
- Syncs to `~/.claude` via `update-pai.sh`

## Hybrid Workflow

### Phase 1: Development (Fast Iteration)

Work directly in `~/.claude` for quick iteration:

```bash
# Edit files directly in installation
vim ~/.claude/hooks/SomeHook.ts
vim ~/.claude/skills/SomeSkill/SKILL.md

# Test immediately - changes are live
claude

# Iterate quickly until stable
```

### Phase 2: Formalization (Version Control)

Once stable, copy to Pack structure:

```bash
# 1. Find which Pack owns the file
find ~/PAI/Packs -name "SomeHook.ts"

# 2. Copy from installation to Pack
cp ~/.claude/hooks/SomeHook.ts ~/PAI/Packs/pai-hook-system/src/hooks/

# 3. Stage and commit
cd ~/PAI
git add Packs/
git commit -m "feat: Description of changes"

# 4. Push to your fork
git push origin main
```

### Phase 3: Deployment (Optional)

Deploy Pack changes back to `~/.claude`:

```bash
cd ~/PAI
./update-pai.sh
```

This re-deploys from Packs to `~/.claude`. Useful if:
- You want to test the Pack deployment process
- You've updated from upstream
- You're setting up on a new machine

## File Mapping Reference

Common file locations:

| Installation (`~/.claude`) | Pack Source (`~/PAI/Packs`) |
|---------------------------|----------------------------|
| `hooks/LoadContext.hook.ts` | `pai-hook-system/src/hooks/LoadContext.hook.ts` |
| `skills/CORE/SKILL.md` | `pai-core-install/src/skills/CORE/SKILL.md` |
| `vault-examples/` | `pai-core-install/src/vault-examples/` |

## Finding Which Pack Owns a File

```bash
# Search by filename
find ~/PAI/Packs -name "LoadContext.hook.ts"

# Search by path component
find ~/PAI/Packs -path "*/hooks/*" -name "*.ts"
find ~/PAI/Packs -path "*/skills/CORE/*"
```

## Quick Reference Commands

**Sync installation → Pack:**
```bash
cp ~/.claude/path/to/file.ts ~/PAI/Packs/pack-name/src/path/to/file.ts
```

**Commit to git:**
```bash
cd ~/PAI
git add Packs/
git commit -m "feat: Your change description"
git push origin main
```

**Deploy Pack → installation:**
```bash
cd ~/PAI
./update-pai.sh
```

## Best Practices

1. **Develop in `~/.claude`** - Fast, immediate feedback
2. **Test thoroughly** - Make sure it works before formalizing
3. **Copy to Packs when stable** - Version control the working solution
4. **Commit with good messages** - Describe what and why
5. **Push regularly** - Keep your fork up to date

## Example: Vault Loading Feature

This feature followed the hybrid workflow:

### Development Phase:
- Modified `~/.claude/hooks/LoadContext.hook.ts` directly
- Added vault section to `~/.claude/skills/CORE/SKILL.md`
- Created `~/.claude/vault-examples/`
- Tested with sample vaults
- Iterated on implementation

### Formalization Phase:
- Copied LoadContext.hook.ts to `Packs/pai-hook-system/src/hooks/`
- Copied SKILL.md to `Packs/pai-core-install/src/skills/CORE/`
- Copied vault-examples/ to `Packs/pai-core-install/src/`
- Committed: "feat: Add per-vault context loading"
- Pushed to fork

### Result:
- Working feature in `~/.claude`
- Version controlled in `~/PAI`
- Ready to contribute upstream if desired
- Can be deployed to new machines via `update-pai.sh`

## When to Skip Formalization

Some changes should stay in `~/.claude` only:

- **Personal customizations** - Specific to your workflow
- **Experimental features** - Still iterating, not stable
- **Machine-specific config** - Paths, credentials, etc.
- **USER/ tier content** - Your personal data, not infrastructure

For these, `.gitignore` them or keep them out of Packs entirely.

## Upstream Contribution

To contribute to danielmiessler/PAI:

1. Ensure feature is in Pack structure (formalized)
2. Test with `update-pai.sh` deployment
3. Document in Pack's README.md
4. Create pull request to upstream:
```bash
cd ~/PAI
git push origin feature-branch
# Then create PR on GitHub: HyggeHacker/PAI → danielmiessler/PAI
```

## Summary

**Hybrid workflow = Best of both worlds:**
- ✅ Fast iteration in `~/.claude`
- ✅ Version control in `~/PAI`
- ✅ Proper architecture when ready
- ✅ Can contribute upstream

**The key:** Don't let perfect be the enemy of good. Iterate fast, formalize when stable.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!--
🔨 GENERATED FILE - Do not edit directly
Edit: ~/.claude/skills/CORE/Components/
Build: bun ~/.claude/skills/CORE/Tools/CreateDynamicCore.ts
-->
---
name: CORE
description: Personal AI Infrastructure core. The authoritative reference for how PAI works.
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

# Intro to PAI

The PAI system is designed to magnify human capabilities. It is a general problem-solving system that uses the PAI Algorithm.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

# RESPONSE DEPTH SELECTION (Read First)

**Nothing escapes the Algorithm. The only variable is depth.**

The FormatReminder hook uses AI inference to classify depth. Its classification is **authoritative** — do not override it.

| Depth | When | Format |
|-------|------|--------|
| **FULL** | Any non-trivial work: problem-solving, implementation, design, analysis, thinking | 7 phases with ISC Tasks |
| **ITERATION** | Continuing/adjusting existing work in progress | Condensed: What changed + Verify |
| **MINIMAL** | Pure social with zero task content: greetings, ratings (1-10), acknowledgments only | Header + Summary + Voice |

**ITERATION Format** (for back-and-forth on existing work):
```
🤖 PAI ALGORITHM ═════════════
🔄 ITERATION on: [existing task context]

🔧 CHANGE: [What you're doing differently]
✅ VERIFY: [Evidence it worked]
🗣️ {DAIDENTITY.NAME}: [Result summary]
```

**Default:** FULL. MINIMAL is rare — only pure social interaction with zero task content. Short prompts can demand FULL depth. The word "just" does not reduce depth.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{ALGORITHM_VERSION}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

## Configuration

Custom values in `settings.json`:
- `daidentity.name` - DA's name ({DAIDENTITY.NAME})
- `principal.name` - User's name
- `principal.timezone` - User's timezone

---

## Exceptions (ISC Depth Only - FORMAT STILL REQUIRED)

These inputs don't need deep ISC tracking, but **STILL REQUIRE THE OUTPUT FORMAT**:
- **Ratings** (1-10) - Minimal format, acknowledge
- **Simple acknowledgments** ("ok", "thanks") - Minimal format
- **Greetings** - Minimal format
- **Quick questions** - Minimal format

**These are NOT exceptions to using the format. Use minimal format for simple cases.**

---

## Key takeaways !!!

- We can't be a general problem solver without a way to hill-climb, which requires GRANULAR, TESTABLE ISC Criteria
- The ISC Criteria ARE the VERIFICATION Criteria, which is what allows us to hill-climb towards IDEAL STATE
- YOUR GOAL IS 9-10 implicit or explicit ratings for every response. EUPHORIC SURPRISE. Chase that using this system!
- ALWAYS USE THE ALGORITHM AND RESPONSE FORMAT !!!

Loading