Utilities & Scripts

PowerShell automation scripts and helper tools for project setup, integration, and maintenance. These utilities eliminate manual work and ensure consistent project configuration.

new-project.ps1

Create new projects from baseline

Details
add-baseline-to-existing-project.ps1

Integrate baseline into existing projects

Details
sync-agents.ps1

Sync agents across projects

Details

new-project.ps1

Create New Project from Baseline

Creates a complete new project with all baseline components

What It Does
  • Creates directory structure
  • Copies all baseline documentation
  • Copies coding standards (13 files)
  • Installs AI agents (10 agents)
  • Initializes Git repository
  • Replaces template variables (optional)
  • Creates .gitignore
  • Generates verification report
Parameters
Parameter Required Description
-ProjectName Yes Name of your project
-DestinationPath Yes Where to create project
-ConfigFile No JSON config for auto-replacement
-ContactEmail No Contact email address
-Domain No Project domain name
Usage Examples
Basic Usage
.\new-project.ps1 `
    -ProjectName "MyApp" `
    -DestinationPath "E:\projects\myapp"
With Configuration File
# Create config file
Copy-Item project-config.example.json project-config.json
# Edit project-config.json with your values

# Run with config
.\new-project.ps1 `
    -ProjectName "MyApp" `
    -DestinationPath "E:\projects\myapp" `
    -ConfigFile "project-config.json"
With Inline Parameters
.\new-project.ps1 `
    -ProjectName "MyApp" `
    -DestinationPath "E:\projects\myapp" `
    -ContactEmail "dev@myapp.com" `
    -Domain "myapp.com"
Result: Complete project structure ready for development in <1 minute

add-baseline-to-existing-project.ps1

Integrate Baseline into Existing Project

Safely adds baseline components to existing projects with conflict resolution

Safety Features
  • Automatic backups before any changes
  • Conflict detection - detects existing files
  • Merge strategies - skip, rename, or overwrite
  • Dry-run mode - preview changes first
  • Rollback capability - restore from backup
  • Verification - ensures successful integration
Parameters
Parameter Required Description
-ProjectPath Yes Path to existing project
-DryRun No Preview without making changes
-ConflictStrategy No skip | rename | overwrite
-Force No Skip confirmations
Usage Examples
Dry Run (Recommended First Step)
.\add-baseline-to-existing-project.ps1 `
    -ProjectPath "E:\projects\myapp" `
    -DryRun
Apply Changes (Skip Conflicts)
.\add-baseline-to-existing-project.ps1 `
    -ProjectPath "E:\projects\myapp" `
    -ConflictStrategy skip
Apply Changes (Rename Conflicts)
.\add-baseline-to-existing-project.ps1 `
    -ProjectPath "E:\projects\myapp" `
    -ConflictStrategy rename
Best Practice: Always run with -DryRun first to preview changes, then commit existing work before applying.

sync-agents.ps1

Sync AI Agents Across Projects

Update agents in multiple projects from the baseline repository

What It Does
  • Scans specified directory for projects
  • Detects projects with .claude/agents/
  • Compares agent versions
  • Updates outdated agents
  • Reports sync status
  • Maintains project-specific customizations (optional)
Parameters
Parameter Required
-ProjectsRoot Yes
-DryRun No
-Force No
Usage Examples
Sync All Projects in Directory
.\sync-agents.ps1 -ProjectsRoot "E:\projects"
Preview Changes (Dry Run)
.\sync-agents.ps1 `
    -ProjectsRoot "E:\projects" `
    -DryRun
Use Case: When agents are updated in the baseline, run this to propagate updates to all your projects.

backup-project.ps1

Project Backup Utility

Create timestamped backups of your project

Features
  • Timestamped backup directories
  • Excludes node_modules, .git, vendor
  • Compression option (zip)
  • Incremental backups
  • Backup verification
Usage
.\baseline_docs\backup-project.ps1 `
    -ProjectPath "E:\projects\myapp" `
    -BackupPath "E:\backups"

Creates: E:\backups\myapp-2025-11-12-143022\

Python Automation Scripts

Python scripts created during GitHub Pages setup (November 12, 2025)

check_github_pages_links.py

Scans all HTML files for broken links and reports findings

python check_github_pages_links.py
fix_github_pages_links.py

Automatically fixes broken links with pattern matching

python fix_github_pages_links.py
sanitize_github_pages.py

Removes hardcoded paths and usernames from HTML files

python sanitize_github_pages.py
scan_for_sensitive_data.py

Security scanner for sensitive data patterns

python scan_for_sensitive_data.py
add_about_nav_to_all_pages.py

Adds About link to navigation on all pages

python add_about_nav_to_all_pages.py
add_coffee_link_all_pages.py

Adds "Buy me a coffee" to all page headers and footer

python add_coffee_link_all_pages.py
Location: All Python scripts are in claude_wip/ directory

Configuration Files

File Purpose When to Use
project-config.example.json Full configuration template Copy and customize for automated setup
project-config.minimal.json Minimal configuration template Quick setup with only required fields
.gitignore Git exclusion patterns Automatically created by scripts
CLAUDE.md AI assistant guidance Guides Claude Code in your project

Best Practices

Do
  • Run scripts with -DryRun first
  • Commit existing work before adding baseline
  • Review generated files after setup
  • Keep baseline repository updated
  • Use configuration files for consistency
  • Test scripts in non-production first
Don't
  • Run scripts without reviewing parameters
  • Skip backups before major changes
  • Ignore conflict warnings
  • Modify scripts without testing
  • Use -Force without understanding impact
  • Run on production without dry-run first

Troubleshooting

Common Issues

Error: "cannot be loaded because running scripts is disabled"

Solution:

# Run PowerShell as Administrator
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Solution: Use quotes around paths with spaces

.\new-project.ps1 `
    -ProjectName "My App" `
    -DestinationPath "E:\My Projects\myapp"

Cause: Files are read-only or in use

Solution: Close editors, check file properties, run PowerShell as Administrator if needed