Move completed design/implementation docs from docs/plans/ to docs/archive/ to keep the plans folder focused on active and future work. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9.3 KiB
Complete Rebrand: Patherly → ResolutionFlow
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: Replace every remaining "Patherly" reference in the codebase with "ResolutionFlow" so the brand is consistent across frontend, backend, docs, and comments.
Architecture: The frontend rebrand is already complete (PR #26). This plan covers the backend (config, API metadata, log messages, model docstrings, seed scripts), the root README, and CLAUDE.md. No database schema changes — the database name patherly and Docker container patherly_postgres stay as-is (infrastructure identifiers, not user-facing brand).
Tech Stack: Python/FastAPI backend, Markdown docs
Scope Summary
| Area | Files | Type of Change |
|---|---|---|
| Backend config | config.py |
APP_NAME value |
| Backend API | main.py |
OpenAPI metadata, log messages, root endpoint |
| Backend models | user.py, category.py, step_category.py |
Docstring/comment text |
| Seed scripts | seed_data.py, seed_trees.py |
Comments and print output |
| Root docs | README.md |
Full rewrite of heading and tagline |
| Project context | CLAUDE.md |
Update branding table and env var example |
NOT changed (infrastructure identifiers):
- Database name
patherly, Docker containerpatherly_postgres - Repository directory name
patherly/ - Production URLs
app.patherly.com/api.patherly.com - Railway service name
patherly - File paths like
C:\Dev\Projects\patherly
Task 1: Backend Config — APP_NAME
Files:
- Modify:
backend/app/core/config.py:8
Step 1: Update APP_NAME
Change line 8 from:
APP_NAME: str = "Patherly"
to:
APP_NAME: str = "ResolutionFlow"
Step 2: Verify no other references in config.py
Search config.py for "Patherly" — should return 0 matches after the edit.
Task 2: Backend API — main.py
Files:
- Modify:
backend/app/main.py:21,28,33,47,74
Step 1: Update startup log (line 21)
# FROM:
logger.info("Starting Patherly API server...")
# TO:
logger.info("Starting ResolutionFlow API server...")
Step 2: Update shutdown log (line 28)
# FROM:
logger.info("Shutting down Patherly API server...")
# TO:
logger.info("Shutting down ResolutionFlow API server...")
Step 3: Update OpenAPI description (line 33)
# FROM:
description="Patherly - Take the path MOST traveled. Guided troubleshooting with automatic documentation.",
# TO:
description="ResolutionFlow - Take the path MOST traveled. Guided troubleshooting with automatic documentation.",
Step 4: Update CORS comment (line 47)
# FROM:
# PLUS the explicit allowed_origins list (for custom domains like app.patherly.com)
# TO:
# PLUS the explicit allowed_origins list (for custom domains like app.resolutionflow.com)
Note: The actual CORS origin values in config.py are correct as-is (they use the real domain). This is just a comment.
Step 5: Update root endpoint response (line 74)
# FROM:
"message": "Patherly API",
# TO:
"message": "ResolutionFlow API",
Step 6: Run backend tests
Run: cd backend && python -m pytest -x -q
Expected: All tests pass (no test references "Patherly" in assertions)
Step 7: Commit
git add backend/app/core/config.py backend/app/main.py
git commit -m "feat: Rebrand backend config and API metadata to ResolutionFlow"
Task 3: Backend Model Docstrings
Files:
- Modify:
backend/app/models/user.py:53 - Modify:
backend/app/models/category.py:19 - Modify:
backend/app/models/step_category.py:18
Step 1: Update user.py docstring (line 53)
# FROM:
"""Returns True if user is a global (Patherly) admin."""
# TO:
"""Returns True if user is a global (ResolutionFlow) admin."""
Step 2: Update category.py docstring (line 19)
# FROM:
- Global (team_id=NULL): Created by Patherly admins, visible to all
# TO:
- Global (team_id=NULL): Created by ResolutionFlow admins, visible to all
Step 3: Update step_category.py docstring (line 18)
# FROM:
- Global (team_id=NULL): Created by Patherly admins, visible to all
# TO:
- Global (team_id=NULL): Created by ResolutionFlow admins, visible to all
Step 4: Commit
git add backend/app/models/user.py backend/app/models/category.py backend/app/models/step_category.py
git commit -m "docs: Update backend model docstrings from Patherly to ResolutionFlow"
Task 4: Seed Scripts
Files:
- Modify:
backend/scripts/seed_data.py:3,409,461 - Modify:
backend/scripts/seed_trees.py:5,3437
Step 1: Update seed_data.py docstring (line 3)
# FROM:
Seed data script for Patherly decision trees.
# TO:
Seed data script for ResolutionFlow decision trees.
Step 2: Update seed_data.py print output (line 409)
# FROM:
print("\n[*] Patherly Database Seeder")
# TO:
print("\n[*] ResolutionFlow Database Seeder")
Step 3: Update seed_data.py argparse description (line 461)
# FROM:
parser = argparse.ArgumentParser(description="Seed the Patherly database with example trees")
# TO:
parser = argparse.ArgumentParser(description="Seed the ResolutionFlow database with example trees")
Step 4: Update seed_trees.py docstring (line 5)
# FROM:
This script populates Patherly with realistic troubleshooting decision trees
# TO:
This script populates ResolutionFlow with realistic troubleshooting decision trees
Step 5: Update seed_trees.py argparse description (line 3437)
# FROM:
description="Seed the Patherly database with MSP/SMB troubleshooting trees"
# TO:
description="Seed the ResolutionFlow database with MSP/SMB troubleshooting trees"
Step 6: Commit
git add backend/scripts/seed_data.py backend/scripts/seed_trees.py
git commit -m "docs: Update seed script references from Patherly to ResolutionFlow"
Task 5: README.md
Files:
- Modify:
README.md(full update)
Step 1: Update README heading and tagline (lines 1-2)
# FROM:
# Patherly
> Take the path MOST traveled.
# TO:
# ResolutionFlow
> Take the path MOST traveled.
Step 2: Search the rest of README for "Patherly"
The README is a legacy planning doc from early in the project. It doesn't reference "Patherly" elsewhere in the body text. Only the heading needs updating.
Step 3: Commit
git add README.md
git commit -m "docs: Update README heading from Patherly to ResolutionFlow"
Task 6: CLAUDE.md — Branding Table and Env Var
Files:
- Modify:
CLAUDE.md:25,236
Step 1: Update branding table (line 25)
The branding table row for Backend APP_NAME should now reflect the change:
# FROM:
| Backend (FastAPI, env vars, APP_NAME) | Patherly |
# TO:
| Backend (FastAPI, env vars, APP_NAME) | ResolutionFlow |
Step 2: Update env var example (line 236)
# FROM:
APP_NAME=Patherly
# TO:
APP_NAME=ResolutionFlow
Step 3: Update CORS comment references (lines 471, 476)
These reference app.patherly.com which is the current production URL. Keep as-is — they're accurate infrastructure references, not brand names.
Step 4: Commit
git add CLAUDE.md
git commit -m "docs: Update CLAUDE.md to reflect backend rebrand to ResolutionFlow"
Task 7: Final Verification
Step 1: Search entire codebase for remaining "Patherly" references
Run: grep -r "Patherly" --include="*.py" --include="*.ts" --include="*.tsx" --include="*.md" --include="*.html" --include="*.css" --include="*.json" .
Expected remaining matches (all legitimate):
CLAUDE.md— only in the branding table context rows (repo name, database, URLs) and historical rebrand descriptionREBRAND-IMPLEMENTATION-GUIDE.md— historical guide documenting the rebrand processdocs/plans/2026-02-04-complete-rebrand.md— this plan file itself
No matches should appear in:
backend/app/**/*.pyfrontend/src/**/*README.md
Step 2: Run frontend build
Run: cd frontend && npm run build
Expected: Build succeeds with no errors
Step 3: Run backend tests
Run: cd backend && python -m pytest -x -q
Expected: All tests pass
Step 4: Push
git push origin main
Risk Assessment
Risk: Backend tests break after APP_NAME change
- Likelihood: Low — no tests assert on APP_NAME or the root endpoint message
- Mitigation: Run
pytestafter Task 2
Risk: Production deployment affected
- Likelihood: None — APP_NAME only affects OpenAPI metadata and log messages
- Mitigation: Railway auto-deploys on merge, no config change needed (APP_NAME is a code default, not an env var override)
Risk: .env file has APP_NAME=Patherly hardcoded
- Note: The
.envfile may override the code default. If so, update.envtoAPP_NAME=ResolutionFlowlocally. Railway env vars may also need updating in the dashboard. - This plan updates the code default. The
.envfile and Railway dashboard are manual steps flagged below.
Manual Steps (Not in Git)
- Local
.env: Ifbackend/.envhasAPP_NAME=Patherly, update toAPP_NAME=ResolutionFlow - Railway Dashboard: If
APP_NAMEis set as an env var in Railway, update it there too - Domain rename (future): If/when
patherly.com→resolutionflow.com, update production URLs in CLAUDE.md, config.py CORS, and Railway settings