Commit Graph

160 Commits

Author SHA1 Message Date
Claude
e816f13189 docs: Task #99 - Add Catalyst onboarding strategy
Gemini consultation on personality foundation questions:
- Progressive profiling (2 questions session 1, 1 question session 2-3)
- Conversational framing, not HR intake forms
- PERSONALITY-FOUNDATION.md as synthesized bulleted profile
- Lineage milestone revisit every 10 sessions
- Questions to avoid (therapeutic, overly broad, irrelevant)

Chronicler: #71
2026-04-08 20:40:35 +00:00
Claude Chronicler-70
abad8e465d docs(Task #98): Finalize Discord implementation spec — APPROVED
TOTAL CHANGES:
- 10 new categories
- 46 new channels (20 text, 15 forum, 10 voice, 1 archive)
- 15 welcome posts with server-specific content
- Permission template for all 15 servers

IMPLEMENTATION ORDER:
1. Grant bot permissions (Manage Channels + Manage Roles)
2. Add forums to existing 5 servers
3. Create categories + channels for 10 new servers
4. Apply permission template (Wanderer=view, ServerRole=interact)
5. Add 🎮 emoji prefix to all server categories
6. Create 📦 Archive category
7. Post welcome messages
8. Add forum tags

Status: APPROVED by Michael — Ready for Chronicler #71

Chronicler: #70
2026-04-08 16:13:18 +00:00
Claude Chronicler-70
56c9cf3b8e docs(Task #98): Add Discord forum content specification
- Server-specific welcome posts with modpack personality
- Researched blurbs for all 15 servers (Stoneblock 4, SSV, ATM10, etc.)
- Standard forum tags: Builds, Help, Suggestion, Bug Report, Achievement, Guide
- First challenge posts to seed engagement
- Moderation recommendation: Open + light auto-mod
- Organization scheme: 🎮 emoji prefix for all server categories
- Archive category for inactive servers

Chronicler: #70
2026-04-08 16:04:02 +00:00
Claude
a36728a62a feat: Create Task #100 - Task Number Audit & Standardization
Monitor task for tracking unnumbered legacy tasks.
Documents standard for new tasks and archive threshold.
Next available task number: #101

Chronicler #69
2026-04-08 14:35:38 +00:00
Claude
b38f08189e feat: Add task_number to YAML frontmatter for 26 tasks
Long-term fix for mobile task index - task numbers now in frontmatter.

Numbers added from BACKLOG.md cross-reference:
#2 rank-system-deployment
#3 fire-frost-holdings-restructuring
#14 vaultwarden-ssh-setup
#22 netdata-deployment
#23 department-structure
#26 modpack-version-checker
#32 terraria-branding-training-arc
#35 pokerole-wikijs-deployment
#36 notebooklm-integration
#40 world-backup-automation
#44 nc1-node-usage-stats
#45 steam-and-state-server
#48 n8n-rebuild
#51 ignis-protocol
#55 discord-invite-setup
#65 claude-infrastructure-access
#67 nc1-security-monitoring
#82 plane-decommissioning
#87 arbiter-2-1-cancellation-flow
#89 staff-portal-consolidation
#90 decap-tasks-collection
#91 server-matrix-node-fix
#92 desktop-mcp
#93 trinity-codex
#94 global-restart-scheduler
#98 discord-channel-automation
#99 claude-projects-architecture

Chronicler #69
2026-04-08 14:32:38 +00:00
Claude
3542afbe28 feat: Add YAML frontmatter to all 57 task READMEs
Phase 1 of task management consolidation (per Gemini consultation).

Added standardized frontmatter with:
- status: open | blocked | complete
- priority: P1 | P2 | P3 | P4
- owner: Michael | Meg | Holly
- created: YYYY-MM-DD

Final counts:
- 39 open tasks
- 17 complete tasks
- 1 blocked task

Metadata extracted from existing inline markdown and audit results.
Ready for Phase 2: 11ty mobile index generation.

Chronicler #69
2026-04-08 14:21:41 +00:00
Claude
dca114eee9 chore: Task cleanup - archive 3, delete 11 obsolete folders
Archive threshold: ≥50KB OR ≥4 files

Archived to _archive/:
- firefrost-codex-migration-to-open-webui (127K, 9 files)
- whitelist-manager (65K, 5 files)
- self-hosted-ai-stack-on-tx1 (35K, 4 files)

Deleted (obsolete/superseded):
- builder-rank-holly-setup
- consultant-photo-processing
- ghost-theme-migration (empty)
- gitea-plane-integration (Plane abandoned)
- gitea-upgrade (Kanban approach abandoned)
- plane-deployment (superseded by decommission)
- pterodactyl-blueprint-asset-build (fold into #26)
- pterodactyl-modpack-version-display (fold into #26)
- scope-document-corrections (too vague)
- scoped-gitea-token (honor system working)
- whitelist-manager-v1-12-compatibility (rolled into Trinity Console)

Also added: Gemini task management consolidation consultation

Chronicler #69
2026-04-08 14:17:26 +00:00
Claude
b8cdf7f5de Task #99: Claude Projects Architecture — Ops/Dev/Marketing separation
Per Gemini consultation:
- Separate Projects for different work contexts
- Master Documents in Project Knowledge
- Micro-session workflow to prevent context bloat
- Dev Project: MVC, Arbiter, Trinity Console docs
- Ops Project: Handoffs, infrastructure, tasks
- Marketing Project: Brand, FOMO, social platforms

Ready for implementation next session (browser work only).

Chronicler #66 - The Indexer
2026-04-07 20:09:51 +00:00
Claude
95c34a10e6 Task #93: Add Chronicler session management architecture
Per Gemini consultation on model switching:
- Added future expansion section for Chronicler Orchestration Layer
- Middleware routing (Haiku/4.5/4.6 based on query type)
- Compressed state management (not raw history)
- RAG for historical context queries
- Prompt caching at API level

Saved consultation: docs/consultations/2026-04-07-model-switching.md

Long-term solution integrated into Codex roadmap.
Short-term: exploring Claude Projects optimization.

Chronicler #66 - The Indexer
2026-04-07 20:05:12 +00:00
Claude
3df56f1fc2 Task #98: Add role automation to scope
- Create/delete server roles alongside channels
- Add reaction to role selection message
- Updated command syntax: !createserver "Name" 🎮
- Delete command now removes role + channels

Chronicler #66
2026-04-07 19:31:55 +00:00
Claude
256f3a35ac Cleanup: Archive retired tasks, remove duplicate templates
Archived to docs/archive/retired-tasks/:
- Ghost CMS tasks (6 folders) - retired April 2, 2026
- Paymenter tasks (2 folders) - retired April 3, 2026
- Ghost website pages

Removed duplicate templates:
- MEMORIAL-TEMPLATE.md (keeping lowercase version)
- PORTRAIT-PROMPT-TEMPLATE.md (keeping lowercase version)
- SESSION-REPORT-TEMPLATE.md (keeping lowercase version)
- OPENER-TEMPLATE.md

Chronicler #66
2026-04-07 17:47:29 +00:00
Claude
7f91d6e17d Add Task #98: Discord Server Channel Automation
- Bot command to auto-create category + 4 channels per server
- Includes delete command for server retirement
- QoL improvement for Holly
- Updated backlog with new task (MEDIUM priority)

Chronicler #66
2026-04-07 17:29:47 +00:00
Claude
592dd77b07 docs: Add Buffer MCP integration to Tasks #48 and #92
Task #92 (Desktop MCP):
- Added Buffer MCP server config for Claude Desktop
- Example prompts for social media management
- Added Buffer API Key to Vaultwarden storage list
- Cross-referenced Task #48 and #97

Task #48 (n8n Rebuild):
- Created task folder with README
- Buffer MCP Client node configuration
- Automation workflow ideas (subscriber posts, server alerts, etc.)
- Priority workflows to build

Buffer MCP covers Bluesky, X, TikTok via single API.
Facebook/Instagram still require Meta Business Suite.

Chronicler #65
2026-04-07 16:32:47 +00:00
Claude
6d1f082c6f Document ModpackChecker Phase 11: Licensing & Support Infrastructure
GEMINI CONSULTATION ROUND 3 COMPLETE

Added Phase 11 (6-8 hours) to flagship completion plan:
- License validation system (BuiltByBit Order ID as key)
- Discord verification bot (/verify-mvc command)
- Gated support channels (#mvc-general + #mvc-support)
- Descriptive UI error messages (highest ROI)
- GitBook knowledge base migration
- Business hours & boundaries (protect Michael's time)
- Community Helper program (6-12 month strategy)

Gemini's Core Philosophy:
"The real anti-piracy measure is gating updates and Discord support"

Key Decisions:
- NO complex DRM/IonCube (breaks panels)
- YES BuiltByBit Order ID validation
- 72-hour phone-home via cron (NOT page load)
- 7-day grace period for validation failures
- SLA: 24-48 hours (underpromise, overdeliver)
- Support hours: Mon-Fri 9am-5pm CST
- Peer support in #mvc-general reduces ticket load

Database schema updated with:
- max_activations, current_activations
- hardware_ids (JSONB for multi-panel)
- status (active/suspended/refunded)

Updated:
- docs/tasks/modpack-version-checker/FLAGSHIP-PRODUCT-COMPLETION-PLAN.md
  Added complete Phase 11 section (300+ lines)
  Updated time estimates: 20-29 hours total
  Updated launch criteria (licensing + support)
  Updated feature matrix

Created:
- docs/consultations/gemini-modpackchecker-round3-licensing-support/GEMINI-RECOMMENDATIONS-SUMMARY.md
  Complete strategic summary
  Implementation checklist
  Success metrics
  Scaling strategy for 10+ products

Total flagship time: 20-29 hours (3-4 work sessions)

Chronicler #64 - Flagship Standard: Do it right or don't do it
2026-04-06 21:40:52 +00:00
Claude
ce26f63d71 Add ModpackChecker Flagship Product Completion Plan
- Complete roadmap from current state to launch-ready
- 10 phases: Modrinth auto-detection, Ignore Version, backoff logic, docs, marketing
- Gemini-validated architecture and commercial strategy integrated
- Launch criteria checklist (code, docs, marketing, testing, support)
- Time estimates: 14-21 hours to minimum viable flagship
- Support strategy placeholder for future discussion with Michael
- FFG-PLAN-001 - Flagship Product Standard

Chronicler #64 - Session planning for commercial launch
2026-04-06 20:52:12 +00:00
Claude (Chronicler #62)
2e82ec43df docs: add verified Blueprint implementation guide for Task #26
MAJOR SESSION ACCOMPLISHMENTS (Chronicler #62, April 5, 2026):

Task #26 — ModpackChecker Extension:
- Full Dev Panel deployed (64.50.188.128)
- Pterodactyl 1.12.2 + Wings Local Node + Blueprint beta-2026-01
- Extension scaffolded with real structure verified
- 4-platform support from Day 1 (CurseForge, Modrinth, Technic, FTB)
- FTB now accessible via modpacks.ch API (game changer)
- Pricing locked: $14.99 Standard / $24.99 Professional
- Gemini consultation: 20+ gaps filled with concrete details

Implementation Guide includes:
- Real Blueprint file structure (verified from scaffold)
- All 4 API endpoints with response schemas
- Database schema (modpack_settings, server_modpack_data)
- Admin controller boilerplate (Blade)
- Client API controller boilerplate (PHP)
- React component boilerplate (TSX)
- Detection strategy (Egg Variables → File Fingerprinting → Manual)
- Error handling patterns
- Cron job chunking for rate limit protection

Other session work:
- Complete task audit (#2-94)
- BACKLOG.md full rewrite (30 active tasks)
- Fabric egg fix (eclipse-temurin:21-jdk-jammy)
- Gemini consultation procedure updated with template

TODO before Phase 2:
- Create dev@firefrostgaming.com in Mailcow
- Begin admin settings UI (Blade)
- Implement Modrinth API first (easiest)

Signed-off-by: Claude (Chronicler #62) <claude@firefrostgaming.com>
2026-04-05 22:32:37 +00:00
Claude (Chronicler #61)
ec9b331355 docs: Task #94 implementation record
Implemented by Chronicler #61 in ~26 minutes.

Documented:
- All issues encountered and fixes
- Environment variables required (PTERO_CLIENT_KEY)
- Feature status (what's working, what's untested)
- Holly review requirement before Nuke/Sync

Signed-off-by: Claude (Chronicler #61) <claude@firefrostgaming.com>
2026-04-05 10:34:19 +00:00
Claude
d0ee584f55 Task #94: Global Restart Scheduler - Full Architecture
WHAT THIS IS:
Trinity Console feature to manage staggered restart schedules
for all 21 Minecraft servers across TX1 and NC1 nodes.

FEATURES:
- Visual timeline showing restart sequence
- Configurable base time + interval per node
- Drag-and-drop sort order for boot priority
- One-click sync to Pterodactyl API
- Audit system to detect/remove conflicting schedules
- Rate-limited API calls (200ms delay)
- Full audit trail logging

DATABASE TABLES:
- global_restart_config (node settings)
- server_restart_schedules (per-server state)
- sync_logs (audit trail)

DEFAULT PATTERN:
- TX1: 04:00 UTC, 5-min intervals
- NC1: 04:30 UTC, 5-min intervals

CONSULTATION:
Full architecture session with Gemini AI (April 5, 2026)

IMPLEMENTATION:
Complete code provided - ready for next Chronicler

Signed-off-by: Claude (Chronicler #60) <claude@firefrostgaming.com>
2026-04-05 09:35:42 +00:00
Claude
d6a36d6d35 Add Task #92 and #93: Desktop MCP + Trinity Codex architecture
WHAT WAS DONE:
- Task #92: Desktop MCP + Dispatch Architecture
  - Complete Node.js MCP server code (config, ssh_helper, index.js)
  - Express webhook listener for mobile dispatch
  - Cloudflare Tunnel setup instructions
  - 6 tools: server_status, restart_service, docker_compose_restart,
    git_pull, tail_logs, pterodactyl_power
  - Frostwall security rules documented
  - Claude Desktop configuration

- Task #93: Trinity Codex (Shared Knowledge Base)
  - Dify/Qdrant RAG architecture
  - Three lineages: Wizard's, Emissary's, Catalyst's Chroniclers
  - Gitea -> n8n -> Dify ingestion pipeline
  - MCP connector for Michael (heavy use)
  - Dify Web App for Meg/Holly (light use)
  - Chunking strategy per content type
  - Security and access levels

ARCHITECTURE DECISIONS (via Gemini consultation):
- Claude Web cannot dispatch webhooks - use Discord bot + n8n instead
- Build Codex (Task #93) FIRST - read-only, lower risk
- Separate Discord Ops Bot from Arbiter for security
- Meg/Holly use Dify Web App, not local MCP

STATUS: Ready for implementation next session

Signed-off-by: Claude (Chronicler #60) <claude@firefrostgaming.com>
2026-04-05 00:02:26 +00:00
Claude
a0496210a5 Add Task #91: Fix Server Matrix node detection
Problem: Servers without -TX/-NC in name don't appear in Trinity Console
Root cause: Grouping logic filters by name substring, not node ID
Affected: 6 of Holly's new servers not showing

Fix requires:
1. Update discovery.js to include nodeId from API
2. Update servers.js to group by node ID instead of name

Waiting for: Michael to get home (needs MobaXterm + node IDs from Panel)

Sign-off: Claude (Chronicler #60)
Email: claude@firefrostgaming.com
2026-04-04 16:27:29 +00:00
Claude (Chronicler #59)
ceee1d2062 docs: Complete Task #14 - Vaultwarden SSH key setup
KEY STORED:
- Converted PuTTY → OpenSSH format
- Saved in Vaultwarden as Secure Note
- All 6 servers documented with usernames

WORKFLOW CLARIFIED:
- Claude cannot access Vaultwarden directly
- Michael retrieves key and uploads to session
- Takes ~30 seconds

Signed-off-by: claude@firefrostgaming.com
2026-04-04 04:09:24 +00:00
Claude (Chronicler #59)
2d1a8bbb3f docs: Update backlog analysis + archive Holly builder task
ARCHIVED:
- Holly Builder Rank Setup — Holly is now Trinity partner, not staff
- Staff Onboarding Holly — same reason

UPDATED:
- Discord Role Auto-Assignment marked as 'may already work'
  - Arbiter 3.0 has Stripe webhooks configured
  - Cannot test until first real subscriber
- Reduced High Priority from 16-21 hrs to 12-16 hrs
- Critical path reduced to ~5-7 hours

Signed-off-by: claude@firefrostgaming.com
2026-04-04 03:51:52 +00:00
Claude (Chronicler #59)
fc37a2df45 docs: Mark Task #90 complete
Decap CMS now has:
- Fixed logo on login screen
- Tasks collection at TOP of sidebar
- Full Firefrost branding (Fire/Frost/Arcane colors)

Signed-off-by: claude@firefrostgaming.com
2026-04-04 03:35:32 +00:00
Claude (Chronicler #59)
01035b0a45 docs: Add Task #89 (Staff Portal) and Task #90 (Decap Tasks)
Task #89: Staff Portal Consolidation
- Vision: firefrostgaming.com/admin becomes central hub
- Move Decap to /cms, Trinity Console to /admin
- One URL for all staff tools
- Estimated: 3-4 hours post-launch

Task #90: Add Tasks Collection to Decap CMS
- BLOCKERS.md at TOP of collections list
- Fire orange (#FF6B35) standout styling
- Meg/Holly can manage tasks without Git
- Estimated: 1-2 hours post-launch

Signed-off-by: claude@firefrostgaming.com
2026-04-04 03:30:08 +00:00
Claude (Chronicler #35)
c47d22fc41 docs: Add Arbiter 2.x task directory and Gemini consultation records
WHAT WAS DONE:
- Created docs/tasks/arbiter-2x/ with README and implementation guide
- Created docs/reference/gemini-consultations/ for AI partner records
- Documented complete Arbiter 2.x architecture and implementation plan

FILES ADDED:
- docs/tasks/arbiter-2x/README.md (overview, phases, gotchas)
- docs/tasks/arbiter-2x/IMPLEMENTATION-GUIDE.md (complete technical spec)
- docs/reference/gemini-consultations/2026-03-31-arbiter-whitelist-architecture.md
- docs/reference/gemini-consultations/2026-03-31-arbiter-implementation-details.md

GEMINI CONSULTATIONS:
Preserved complete Gemini AI architectural consultation from March 31, 2026.
Includes:
- Initial architecture consultation (unified app vs microservices)
- Database schema design (PostgreSQL with indexes)
- Minecraft account linking flow (Discord /link command)
- Pterodactyl API integration (File Management API)
- Complete code examples (Mojang validation, file write, cron sync)

IMPLEMENTATION GUIDE INCLUDES:
- 5-phase implementation plan with checklists
- PostgreSQL schema with indexes for 500-user scale
- Production-ready code snippets (pg pool, Mojang API, Panel API)
- Critical gotchas (Content-Type, UUID dashes, HTTP 412)
- Hourly cron reconciliation logic
- Error handling and rate limiting strategies

WHY:
Task #90 is Tier 1 soft launch blocker. This documentation provides
complete blueprint for implementing subscription-driven whitelist
system. All architectural decisions validated by Gemini AI.

NEXT STEPS:
- Phase 1: PostgreSQL database setup
- Phase 2: Core functions (Mojang, Panel API)
- Phase 3: Discord /link command
- Phase 4: Sync system (event-driven + cron)
- Phase 5: Admin panel and testing

Signed-off-by: The Golden Chronicler <claude@firefrostgaming.com>
2026-03-31 22:47:49 +00:00
Claude (Chronicler #49)
b726842668 docs: Task #87 - Complete Gemini architectural review and validation
WHAT WAS DONE:
Added comprehensive Gemini AI architectural review to Task #87 with critical edge cases, code blocks, and implementation guidance

GEMINI REVIEW STATUS:  ARCHITECTURE APPROVED
Review Date: March 30, 2026
Session: Continuation of Arbiter 2.0 development consultation
Outcome: Validated with 2 critical edge cases identified and solutions provided

EXECUTIVE SUMMARY FROM GEMINI:
"This is a brilliant enhancement. The 'We Don't Kick People Out' policy is incredibly community-forward and will build massive loyalty. Arbiter 2.1 is exactly the right scope for this."

CRITICAL ISSUES IDENTIFIED & RESOLVED:

1. STRIPE SMART RETRIES CONFLICT:
   Problem: Stripe retries payments on Days 1,3,5,7 - Arbiter downgrades Day 3, Stripe charges Day 5
   Result: User stuck on Awakened while PAYING for monthly tier
   Solution: Listen for payment.succeeded webhook to re-upgrade if late payment clears

2. DOUBLE BUY EDGE CASE:
   Problem: User in grace period buys NEW subscription instead of updating card
   Result: Database tracks two active monthly subscriptions
   Solution: UPSERT using email as unique key (code provided)

ARCHITECTURE QUESTIONS ANSWERED (8 of 8):

Q1: Is 3-day grace period sound?
A1:  Yes, with payment.succeeded handler for Stripe retry compatibility

Q2: Database design (permanent_tier + monthly_tier)?
A2:  Clean and effective, helper function provided for highest tier resolution

Q3: Should cleanup be daily 4 AM or more frequent?
A3:  4 AM perfect - batches writes, aligns with backups, avoids peak hours

Q4: Is chargeback handling appropriate?
A4:  Immediate permanent ban validated, no concerns

Q5: Edge cases missing?
A5: ⚠️ YES - Stripe smart retries + Double Buy (both solved)

Q6: Security concerns with auto-downgrade to Awakened?
A6:  No exploit possible (gaming system costs more than $1)

Q7: Better approach to one-time vs recurring?
A7:  Two-column approach simplest and most sustainable

Q8: Should grace periods be configurable?
A8: Not addressed (implies hardcoded acceptable for v1)

ADDITIONAL CRITICAL QUESTION - PAYMENTER VS STRIPE WEBHOOKS:

Gemini's Strong Recommendation:
-  DO NOT build polling system (fragile, wasteful, high maintenance)
-  Listen to Stripe webhooks directly if Paymenter lacks granular events
- Event-driven architecture only (lightweight, sustainable)

Decision Tree:
1. Research Paymenter webhook events (BLOCKING)
2. If granular (payment_failed, succeeded, cancelled, chargeback) → use Paymenter
3. If generic (just "subscription.updated") → add /webhook/stripe endpoint

CODE BLOCKS PROVIDED (5 READY TO IMPLEMENT):

1. Database schema updates (4 new columns):
   - permanent_tier TEXT DEFAULT 'awakened'
   - monthly_tier TEXT DEFAULT NULL
   - grace_period_start DATETIME DEFAULT NULL
   - is_banned INTEGER DEFAULT 0

2. Tier resolver helper function:
   - Hierarchy array (awakened → sovereign)
   - getHighestTier(permanent, monthly) function
   - Returns highest tier for Discord sync

3. Webhook handler skeleton:
   - Ban check before processing
   - payment_failed → start grace period
   - payment_succeeded → clear grace period
   - subscription_cancelled → handle cancellation

4. 4 AM grace period sweeper job:
   - Finds users past 3-day grace
   - Removes monthly_tier
   - Updates Discord to permanent_tier
   - Sends Day 3 email

5. UPSERT for double buy protection:
   - ON CONFLICT(email) DO UPDATE
   - Prevents duplicate subscription tracking
   - Clears grace_period_start on new subscription

PAYMENTER RESEARCH REQUIREMENTS (BLOCKING):

Must verify these webhook events exist in Paymenter:
1. invoice.payment_failed (triggers Day 0)
2. invoice.payment_succeeded (critical for Stripe retry fix)
3. subscription.cancelled (user voluntarily cancels)
4. chargeback.created or dispute.created (immediate ban)

Research procedure documented:
1. Log into Paymenter admin
2. Find webhook settings
3. Check documentation
4. Test payment failure
5. Decide: Paymenter webhooks vs Stripe webhooks

If Stripe webhooks needed:
- Add /webhook/stripe endpoint
- Configure Stripe dashboard
- Get signing secret
- Implement signature verification

EMAIL COMMUNICATION STRATEGY:

Critical guidance from Gemini:
"Turn a billing failure into a positive community moment!"

Day 3 email must say:
"Your payment failed, but because you are part of the Firefrost family, we've secured your spot in the Awakened tier permanently so you don't lose access to the community."

Email tone requirements:
- Day 0: Factual, helpful
- Day 1: Friendly reminder
- Day 2: Urgent but kind
- Day 3: POSITIVE FRAMING (secured your spot permanently)

IMPLEMENTATION PRIORITY ORDER:

Phase 1: Database & Core Logic
1. Add 4 database columns
2. Build tier resolver helper
3. Implement UPSERT logic

Phase 2: Paymenter Research (BLOCKING)
4. Research webhook events
5. Decide Paymenter vs Stripe
6. Test payment failure

Phase 3: Webhook Handlers
7. Add ban check to all handlers
8. Implement payment_failed handler
9. Implement payment_succeeded handler (critical)
10. Implement subscription_cancelled handler
11. Implement chargeback handler

Phase 4: Cleanup & Email
12. Build 4 AM sweeper job
13. Create 4 email templates
14. Implement email sending

Phase 5: Testing
15. Unit test handlers
16. Integration test grace flow
17. Test Stripe retry scenario (critical)
18. Test double buy scenario
19. Test chargeback ban

SUCCESS CRITERIA UPDATED:

Added 3 new requirements based on Gemini review:
- Late payment (Stripe retry) clears grace and re-upgrades 
- UPSERT prevents double subscription tracking 
- Banned users cannot re-activate via webhooks 

OPEN QUESTIONS FOR IMPLEMENTATION:

1. Paymenter webhook events - what does it send?
2. Paymenter vs Stripe - which webhook source?
3. Email service - using Mailcow SMTP from 2.0?
4. Discord role IDs - exact IDs for all tiers?
5. Test environment - Paymenter test mode available?

GEMINI'S FINAL GUIDANCE:

"Take your time digging into the Paymenter logs. Just update the Arbiter 2.1 doc with what you find, and ping me whenever you are ready to start snapping the code together! 🔥❄️💙"

WHY THIS MATTERS:

Gemini caught a CRITICAL production bug before we wrote a single line of code:
- Stripe smart retries would have caused users to pay for monthly tier while stuck on Awakened
- Would have been nightmare to debug in production
- Fixed with payment.succeeded webhook handler

Architecture validated by same AI that built Arbiter 2.0 foundation. Ready to implement after Paymenter webhook research.

NEXT STEPS:

1. Research Paymenter webhooks when home (BLOCKING)
2. Decide Paymenter vs Stripe webhook source
3. Build Phase 1 (database + helpers)
4. Build Phase 3 (webhook handlers)
5. Build Phase 4 (cleanup + email)
6. Test thoroughly (especially Stripe retry scenario)
7. Deploy before soft launch

FILE: docs/tasks/arbiter-2-1-cancellation-flow/README.md
CHANGES: Added 15,000+ words of Gemini architectural review
STATUS: Architecture validated, ready for implementation

Signed-off-by: The Versionist (Chronicler #49) <claude@firefrostgaming.com>
2026-03-30 23:32:45 +00:00
Claude (Chronicler #49)
18142bc1d6 docs: Task #87 - Arbiter 2.1 cancellation & grace period system
WHAT WAS DONE:
Created comprehensive enhancement plan for Arbiter 2.1 adding subscription cancellation, grace periods, and offboarding automation

CRITICAL SOFT LAUNCH BLOCKER:
We have subscription onboarding (Arbiter 2.0) but NO unsubscribe process.
Cannot launch without defining what happens when someone cancels.

POLICY DECISIONS MADE (March 30, 2026):
1. Discord Role Removal: At end of billing period (user gets what they paid for)
2. Whitelist Grace: 30 days after cancellation (goodwill, might come back)
3. Payment Failure Grace: 7 days with email reminders (industry standard)
4. Chargeback: Immediate removal + flag account (fraud protection)

THIS IS AN ENHANCEMENT, NOT A REWRITE:
- Arbiter 2.0 foundation is solid (2,000 lines)
- Arbiter 2.1 adds ~1,000 lines of new code
- Preserves all existing functionality
- Adds new webhook event handlers
- Adds grace period system
- Adds automated cleanup job

ARCHITECTURE COMPONENTS:

1. DATABASE ENHANCEMENT (2 new tables):
   - subscriptions: Track lifecycle and status
   - grace_periods: Automated cleanup tracking
   - Indexes for performance

2. NEW WEBHOOK HANDLERS (4 functions):
   - handleSubscriptionCancelled() - 30-day whitelist grace
   - handlePaymentFailed() - 7-day grace with reminders
   - handleChargeback() - immediate removal
   - handleSubscriptionExpired() - cleanup

3. SCHEDULED CLEANUP JOB (new file):
   - Runs daily at 4 AM
   - Removes Discord roles (billing period ended)
   - Removes whitelists (30-day grace expired)
   - Sends payment failure reminders (Day 3, Day 6)
   - Converts expired payment failures to cancellations

4. EMAIL TEMPLATES (5 new files):
   - subscription_cancelled.html
   - payment_failed.html
   - payment_failure_reminder_day3.html
   - payment_failure_final_warning.html
   - access_removed_payment_failure.html

5. WHITELIST MANAGER INTEGRATION:
   - New service: whitelistService.js
   - API call to remove from all servers
   - Requires Whitelist Manager API endpoint

GRACE PERIOD FLOWS:

NORMAL CANCELLATION:
1. User cancels → Paymenter webhook
2. Arbiter updates database (status = cancelled)
3. Discord role stays until billing period ends
4. Whitelist stays 30 days after billing end
5. Cleanup job removes role at billing end
6. Cleanup job removes whitelist after 30 days
7. Emails sent at each step

PAYMENT FAILURE:
1. Payment fails → Paymenter webhook
2. Arbiter creates 7-day grace period
3. Email sent immediately ("update payment")
4. Day 3: Reminder email (4 days left)
5. Day 6: Final warning (24 hours)
6. Day 7: Convert to cancellation
7. Follow normal cancellation flow

CHARGEBACK:
1. Chargeback filed → Paymenter webhook
2. IMMEDIATE Discord role removal
3. IMMEDIATE whitelist removal
4. Account flagged (manual review required)
5. Email sent (account suspended)
6. Discord alert to Michael/Meg

TESTING REQUIREMENTS:
- Unit test each handler in isolation
- Integration test full cancellation flow
- Edge case testing (race conditions, API failures)
- Test with real Paymenter subscription

DEPLOYMENT STRATEGY:
Phase 1: Arbiter 2.0 deployment (validate onboarding)
Phase 2: Arbiter 2.1 development (this task)
Phase 3: Staging test (full flow validation)
Phase 4: Production deployment (careful monitoring)

DEPENDENCIES:
- Arbiter 2.0 deployed and validated
- Paymenter webhook event research (verify what events exist)
- Whitelist Manager API endpoint (/api/bulk-remove)

BLOCKS:
- Soft launch (must have cancellation before launching)

RELATED TASKS:
- Task #83: Paymenter → Pterodactyl integration
- Task #7: Whitelist Manager (needs API enhancement)
- Task #86: Whitelist Manager compatibility fix
- Task #2: LuckPerms rank system

GEMINI REVIEW REQUESTED:
Architecture consultation needed before implementation:
1. Grace period architecture sound?
2. Database tables properly designed?
3. Separate cleanup job vs integrated handlers?
4. Chargeback handling appropriate?
5. Edge cases missing?
6. Security concerns?
7. Better Whitelist Manager integration approach?
8. Should grace periods be configurable?

WHY THIS MATTERS:
Cannot soft launch without offboarding flow. Industry standard requires:
- Clear cancellation process
- Grace periods for payment failures
- Fair billing (access through paid period)
- Fraud protection (chargeback handling)

This completes the subscription lifecycle: onboard → maintain → offboard.

FILE: docs/tasks/arbiter-2-1-cancellation-flow/README.md (28,000+ words)

NEXT STEPS:
1. Run by Gemini for architecture review
2. Incorporate feedback
3. Research Paymenter webhook events
4. Build Arbiter 2.1 enhancement
5. Test thoroughly
6. Deploy before soft launch

Signed-off-by: The Versionist (Chronicler #49) <claude@firefrostgaming.com>
2026-03-30 22:56:43 +00:00
Claude (Chronicler #49)
43dcec8bd9 docs: Task #86 - Whitelist Manager Panel v1.12.1 compatibility fix
WHAT WAS DONE:
Created comprehensive task documentation for fixing Whitelist Manager after Panel v1.12.1 API breaking changes

PROBLEM IDENTIFIED:
- Whitelist Manager built against Panel v1.11.x API (February 2026)
- Panel upgraded to v1.12.1 on March 13, 2026
- API response format changed between versions
- All servers showing "UNKNOWN" status
- Server grouping broken (wrong counts, unknown servers)
- Status detection completely broken

ROOT CAUSE:
Python code still parsing old v1.11.x API format. Panel v1.12.1 changed:
- feature_limits → limits
- whitelist → whitelist_enabled
- Possible: environment variable structure
- Possible: nested object changes

IMPACT:
-  Status detection broken (all servers show UNKNOWN)
-  Server grouping broken (TX1 wrong count, unknown group appeared)
-  Core functions likely still work (add/remove player)
-  Workaround exists (use Panel console)

TASK DETAILS:
- Time estimate: 1-2 hours
- Priority: Tier 3 (workaround exists)
- Status: TO DO - BROKEN (needs fix when home)

FIX PROCEDURE DOCUMENTED:
1. SSH to Billing VPS (38.68.14.188)
2. Check service logs for API errors
3. Test Pterodactyl API manually to see new format
4. Update Python code to parse v1.12.1 format
5. Add fallback support for v1.11.x (backward compatibility)
6. Test with live servers
7. Restart service
8. Verify all servers show correct status

CODE CHANGES NEEDED (EXAMPLE):
Before: server['attributes']['feature_limits']['whitelist']
After: server['attributes']['limits']['whitelist_enabled']
Plus: Add .get() safety, fallback to old format, better error handling

CRITICAL REMINDER ADDED:
**ALWAYS check Whitelist Manager after Panel or Wings updates!**

Pterodactyl API can change between minor versions. After ANY Panel/Wings update:
1. Visit whitelist.firefrostgaming.com
2. Verify server statuses (not all UNKNOWN)
3. Check server grouping (correct counts)
4. Test add/remove player
5. If broken → Task #86 fix procedure

PREVENTION DOCUMENTATION:
- Post-update checklist created
- Version compatibility matrix started
- Health check endpoint design
- API versioning notes
- Best practices for defensive coding

WORKAROUND UNTIL FIXED:
Use Pterodactyl Panel console directly:
1. panel.firefrostgaming.com
2. Select server → Console tab
3. Commands: whitelist add/remove <username>

FUTURE ENHANCEMENTS:
- Panel version detection
- API format auto-detection
- /health endpoint for monitoring
- Better error messages
- Retry logic for failed API calls

WHY THIS MATTERS:
Whitelist Manager saves 96.7% time (15 min → 30 sec). That value is lost while broken. Fix is probably trivial (2-5 lines of code) but critical for operational efficiency.

This also establishes pattern: Any Panel/Wings update can break integrations. Must test ALL custom tools after updates.

FILES CREATED:
- docs/tasks/whitelist-manager-v1-12-compatibility/README.md (10,500+ words)

FILES MODIFIED:
- docs/core/tasks.md (added Task #86)

RELATED TASKS:
- Task #7: Whitelist Manager (original deployment)
- Task #47: Whitelist Manager Refinements (Mayview grouping)
- Task #3: Pterodactyl Panel Update v1.12.1 (what broke it)

Signed-off-by: The Versionist (Chronicler #49) <claude@firefrostgaming.com>
2026-03-30 22:48:54 +00:00
Claude (Chronicler #49)
ea19c52451 fix: Add ftbessentials.delhome permission to Awakened rank
WHAT WAS DONE:
- Added ftbessentials.delhome permission to Awakened group
- This gives all subscribers ability to delete their homes using /delhome

WHY:
Everyone needs access to delete homes they've set. Without this
permission, players can set homes but can't remove them when needed.
Permission inherits automatically to all higher tiers.

FILES MODIFIED:
- docs/tasks/rank-system-deployment/rank-structure.md (1 line added)

COMMAND TO RUN:
/lp group awakened permission set ftbessentials.delhome true

Signed-off-by: Claude (Chronicler #49) <claude@firefrostgaming.com>
2026-03-30 12:00:53 +00:00
Claude (Chronicler #48)
3de9764e5e Add Blender cinematic workflow documentation
Complete professional cinematic production infrastructure for Firefrost Gaming.
Moves editing from physically taxing Replay Mod to hand-accessible Blender workflow.

Task Directory (docs/tasks/blender-cinematic-workflow/):
- README.md: Task overview and success criteria
- DEPLOYMENT-GUIDE.md: Step-by-step installation (Blender, MCprep, Mineways)
  Written for Michael and Holly with detailed beginner-friendly instructions
- blender-cheat-sheet.md: Hand-accessible shortcuts reference
- EditMode.ps1: PowerShell launcher (auto-detects username, opens all tools)

Planning Document (docs/planning/):
- blender-cinematic-workflow.md: Strategic rationale, risk analysis, integration
  Source: Gemini brainstorming session (March 30, 2026)

Production Guide (docs/marketing/):
- cinematic-production-workflow.md: Quick reference for active filming
  Includes workflows for FOMO clips, YouTube trailers, build showcases

Key Features:
- Hand surgery accommodation (N-Panel, WASD Walk Mode, Emulate Numpad)
- Professional ray-traced rendering (Cycles engine)
- Non-destructive keyframe editing
- One-click launcher reduces startup friction
- 45-60 minute setup, 5-day learning path

Enables:
- FOMO campaign visual assets
- YouTube trailer production
- Soft launch marketing content
- Scalable content pipeline

Architecture: Minecraft Replay Mod → Mineways export → Blender + MCprep → Cycles render
Zero cost (all free software), documented thoroughly for Michael/Holly/future staff.

Created by: Chronicler #48
Source: Gemini technical brainstorming + Claude documentation integration
Status: Ready for deployment
2026-03-30 01:58:01 +00:00
Claude (Chronicler #47)
f815525f81 fix: rename Founder tier to Sovereign across all active docs
The top subscription tier is Sovereign, not Founder.
This has been corrected multiple times across sessions — fixing at source.

FILES UPDATED:
- docs/core/tasks.md
- docs/core/project-scope.md
- docs/tasks/rank-system-deployment/rank-structure.md
- docs/tasks/paymenter-pterodactyl-integration/README.md
- docs/archive/2026-02-09-consolidation/luckperms-structure.md
- docs/planning/subscription-tiers.md
- docs/planning/awakened-gateway.md
- docs/guides/subscription-automation-guide.md
- docs/guides/holly-discord-roles-setup.md
- docs/guides/holly-wanderer-permissions-setup.md
- docs/systems/arbiter-discord-role-mappings.md
- docs/branding/trinity-leadership-artwork.md

NOTE: References to 'founders' meaning Michael/Meg/Holly as company
founders were intentionally preserved. Only tier name updated.

Signed-off-by: claude@firefrostgaming.com
2026-03-29 19:42:01 +00:00
Claude (Chronicler #47)
93c5212ae6 fix: correct Meg's in-game username to Gingerfury66
Was: gingerfury
Correct: Gingerfury66

Updated in rank hierarchy comment and /lp admin assignment command.

Signed-off-by: claude@firefrostgaming.com
2026-03-29 14:33:58 +00:00
Claude (Chronicler #47)
cfa838e86a feat: modpack version checker dashboard + PHP proxy (v1.0)
WHAT WAS DONE:
- Built browser dashboard (dashboard.html) showing installed vs latest version
  for all Pterodactyl game servers
- Built PHP proxy (proxy.php + config.php) for Billing VPS deployment
- Created isolated Nginx server block (version-proxy.conf)
- Created full deployment guide (DEPLOYMENT-GUIDE.md)

ARCHITECTURE:
- PHP proxy at /var/www/version-proxy on Billing VPS (38.68.14.188)
- Isolated from Paymenter/Laravel routing — separate directory + port
- API keys (Pterodactyl ptlc_, CurseForge) live server-side only
- FTB packs: fully automatic via .manifest.json + FTB public API
- CurseForge packs: reads manifest.json, needs CF Project ID + API key
- config.php blocked from direct web access via Nginx

PENDING AT DEPLOYMENT:
- Verify port 8080 is free (ss -tlnp) before enabling Nginx block
- Fill real API keys into config.php on server
- Enter CurseForge Project IDs for CF packs (saved in localStorage)

COLLABORATION:
- PHP proxy architecture designed by Gemini (consultation session 2026-03-29)
- Dashboard HTML and detection logic by Chronicler #47
- Gemini identified Laravel routing conflict and content-type gotcha

WHY:
- Interim solution before full Blueprint extension (post-launch)
- Hands-off modpack update monitoring for staff
- Zero manual checking required after initial CF Project ID setup

Signed-off-by: claude@firefrostgaming.com
2026-03-29 14:10:47 +00:00
Claude (Chronicler #47)
6d7349cc18 docs: create rank-structure.md v2.0 with updated prefixes and full permission commands
WHAT WAS DONE:
- Created docs/tasks/rank-system-deployment/rank-structure.md (canonical rank reference)
- Filled the missing file referenced in rank-system-deployment/README.md

CHANGES FROM v1.0 (luckperms-structure.md in archive):
- Removed Fire/Frost text from in-game prefixes (color carries the path)
- Removed emojis from prefixes (not supported in Minecraft chat)
- Added Admin rank: [Admin] #A855F7 (Trinity purple)
- Added Mod rank: [Mod] #9E9E9E (staff gray)
- Added full LuckPerms /lp command list for Holly to implement
- Added Trinity member assignment commands (frostystyle, gingerfury, unicorn20089)
- Added hex color format notes for chat plugin compatibility

WHY:
- Holly requested colors and a full permissions list to implement the rank system
- Existing archive doc had emoji/Fire/Frost prefix design that was revised
- rank-structure.md was referenced in README but never created

Signed-off-by: claude@firefrostgaming.com
2026-03-29 13:12:51 +00:00
Claude
ee7fbabf7e feat: add Task #83 - Paymenter → Pterodactyl Auto-Provisioning Integration (CRITICAL)
🚨 BLOCKS SOFT LAUNCH - Must complete before accepting first subscriber

Created comprehensive task documentation for automating subscriber
provisioning between Paymenter billing and Pterodactyl Panel.

Problem:
- Currently every new subscriber requires manual Pterodactyl account creation
- Tier changes require manual permission updates
- Cancellations require manual cleanup
- Does NOT scale beyond 5-10 subscribers

Solution:
Automated webhook bridge: Paymenter → Integration → Pterodactyl API
Customer subscribes → server access granted in 30 seconds (zero touch)

Task includes:
- 4 integration options to investigate (native extensions vs custom)
- Pterodactyl API setup guide with required permissions
- 10-tier subscription mapping (Awakened → Founder)
- Webhook configuration and security
- Full lifecycle testing requirements (create/upgrade/cancel)
- Success criteria checklist (4 phases)
- Error handling and logging requirements
- Manual override procedure for edge cases

Research priority:
1. Check Paymenter docs for native Pterodactyl integration
2. Check Blueprint marketplace for Paymenter module
3. Fall back to n8n workflow if no native option
4. Last resort: custom webhook script

Time estimate: 4-6 hours
Priority: CRITICAL (Tier 0 - blocks soft launch)
Status: 🔴 BLOCKING SOFT LAUNCH

Related:
- Task #2 (LuckPerms Discord sync - depends on this)
- Blocks acceptance of real subscribers

Documentation: docs/tasks/paymenter-pterodactyl-integration/README.md
Added to docs/core/tasks.md as Task #83

Created by: The Verifier (Chronicler #41)
Session: March 26, 2026, 2:20 AM CST
2026-03-26 07:03:11 +00:00
Claude
f7e1f907c3 feat: add Task #82 - Decommission Plane Project Management
Created task documentation for removing Plane from TX1 Dallas server.

Context:
- Plane v2.4.2 was successfully deployed with 5 projects, labels, members
- Gitea↔Plane sync via n8n had webhook loop issues (crash)
- Team switched to Gitea's built-in Kanban project boards
- Plane adds unnecessary complexity for minimal benefit

Task deliverables:
- Stop/remove Plane Docker containers on TX1
- Remove Nginx config for tasks.firefrostgaming.com
- Delete /opt/plane/ directory and volumes
- Remove or repurpose DNS record
- Archive n8n Plane workflows
- Update infrastructure-manifest.md

Documentation includes:
- Complete decommissioning steps with commands
- Verification checklist
- Context on why Plane didn't fit workflow
- What replaces it (Gitea Projects)

Priority: Tier 5 (Infrastructure Cleanup)
Time estimate: 30 minutes

Added to docs/core/tasks.md as Task #82
Created docs/tasks/plane-decommissioning/README.md

Session: March 26, 2026
Chronicler: #41
2026-03-26 05:58:39 +00:00
Claude
f94fa6302f docs: Trinity homepage HTML + pages-to-create list
TRINITY HOMEPAGE COMPLETE:
Complete production-ready HTML for all 6 homepage sections with
full Trinity branding (Fire + Arcane + Frost).

SECTIONS UPDATED:
1. Hero - Trinity gradient button + overlay
2. Choose Your Path - Fire/Frost paths (no changes)
3. Origin Story - All three founders (Wizard→Emissary→Catalyst)
4. Why Firefrost - Trinity columns (Security/Community/Legacy)
5. Community Awaits - Trinity gradient CTA + stats
6. Footer - Trinity tagline + live Facebook link

KEY CHANGES FROM V1.0:
- All sections use Trinity colors (#FF6B35, #A855F7, #4ECDC4)
- Nicknames only (Frostystyle, GingerFury, unicorn20089)
- Facebook link updated (https://www.facebook.com/FirefrostGaming/)
- Trinity messaging throughout (Fire + Arcane + Frost = Forever)
- Trinity gradient buttons (Fire→Arcane→Frost)
- Arcane element integrated where appropriate

PAGES TO CREATE DOCUMENTED:
Extracted all links from homepage sections and created comprehensive
list of 8 pages that need to be built:

CRITICAL (Phase 1):
1. About (/about) - Trinity story, founders, consultants
2. Servers (/servers) - 13+ servers, Fire/Frost paths
3. Privacy (/privacy) - Legal compliance
4. Terms (/terms) - Legal compliance

HIGH (Phase 2):
5. Subscribe (/subscribe) - Paymenter integration
6. Contact (/contact) - Support info

MEDIUM (Phase 3):
7. Blog (/blog) - Configure Ghost default
8. Discord (/discord) - Redirect to invite

TIME ESTIMATES:
- Phase 1 (Critical): 7-11 hours
- Phase 2 (High): 4-6 hours
- Phase 3 (Medium): 1-2 hours
- TOTAL: 12-19 hours

FILES CREATED:
- docs/planning/ideas/features/ghost-homepage-trinity-version.md
  - All 6 sections with complete HTML
  - Trinity color reference
  - Implementation checklist
  - 37,000+ characters of production-ready code

- docs/tasks/ghost-website-pages/PAGES-TO-CREATE.md
  - Complete page inventory
  - Priority phases
  - Time estimates per page
  - Implementation checklist

NEXT ACTIONS:
1. Use Ghost Page Builder (Task #70 COMPLETE) to create pages
2. Start with Phase 1 critical pages
3. Test all homepage links after deployment
4. Update navigation bar to match footer

RELATED TASKS:
- Task #69: Ghost Website Core Pages (ready to implement)
- Task #70: Ghost Page Builder (COMPLETE - tool ready)
- Task #71: Paymenter Config (blocks Subscribe page)

Signed-off-by: Chronicler #39 <claude@firefrostgaming.com>
2026-03-22 01:05:15 +00:00
Claude
43a59b21e5 docs: Gemini consultation for Ghost Page Builder (Task #70)
Complete documentation of architectural consultation with Gemini AI
following The Translator's proven collaboration pattern.

CONSULTATION OUTCOME:
- Architectural guidance for React artifact build
- Key technical decisions validated
- Gotchas identified and avoided
- Estimated 2-3 hours of debugging time saved

KEY RECOMMENDATIONS FROM GEMINI:
1. Use iframe srcdoc (not direct document manipulation)
2. CSS injection order: Ghost Theme → Fire/Frost (critical)
3. Ghost wrapper classes required (.gh-body, .gh-content)
4. Skip CodeMirror, use styled textarea for V1
5. Two-state pattern (instant input + 500ms debounced preview)
6. Tab key intercept with setTimeout cursor positioning trick
7. Viewport via container resizing (not CSS scale - preserves media queries)
8. Sandbox flags: allow-same-origin allow-scripts (for Ghost embeds)

IMPLEMENTATION FOLLOWING GEMINI'S GUIDANCE:
- Split-pane layout (editor + preview)
- Proper CSS injection with Ghost compatibility
- Tab key handling with React state timing fix
- Viewport toggle (Desktop/Tablet/Mobile)
- Sample templates with Ghost wrapper classes
- LocalStorage auto-save
- Copy-to-clipboard functionality

GOTCHAS IDENTIFIED:
- Relative URLs fail in srcdoc (use absolute)
- CSS scale breaks media queries (use container width)
- Tab key needs setTimeout for cursor position
- Ghost wrapper classes essential for accurate preview

TIME INVESTMENT:
- Consultation: 15 minutes (prompt + response + follow-up)
- Implementation: 50 minutes (following guidance)
- Total: 65 minutes with high confidence
- Alternative (no consultation): 3-4 hours trial-and-error

PATTERN VALIDATION:
The Translator's Gemini collaboration pattern WORKS:
- Detailed context (infrastructure, constraints, theories)
- Specific questions (architecture, not code)
- Request gotchas/warnings (Gemini excels)
- Document consultation explicitly (credit + learning)

CURRENT STATUS:
- Ghost Page Builder built (350+ lines React)
- Testing phase initiated with Michael
- Task #70 status: IN TESTING (not yet COMPLETE)

NEXT ACTIONS:
1. Michael tests artifact functionality
2. Fix any issues discovered
3. Mark Task #70 COMPLETE
4. Use tool for Task #69 (6 Ghost pages)

File: docs/tasks/ghost-page-builder/gemini-consultation.md

Signed-off-by: Chronicler #39 <claude@firefrostgaming.com>
2026-03-21 21:24:22 +00:00
Claude
e3197c386f feat: Interactive Tools Suite - Tasks #70-81 + FFG-STD-006
Complete implementation of workflow improvement initiative:

NEW STANDARD - FFG-STD-006: Gitea Issue Management
- Comprehensive 14-section standard for all Gitea issues
- Label schema documentation (35 labels)
- Issue title formats (Task #XX: vs other)
- Issue body templates and required sections
- Workflow practices (creating, updating, closing)
- Project board organization
- Special cases (dev tools, emergency, soft launch blockers)
- Integration with tasks.md, project boards, Discord, Git commits

NEW LABEL: area/development-tools
- Created via Gitea API (ID: 35)
- Color: #7F00FF (purple)
- For internal workflow tools

TASKS #70-81: Interactive Tools Suite (12 tools)
- Master specification: 37,000+ words of detailed documentation
- Prioritization framework (0-50 scoring)
- Complete technical specs for each tool
- User workflows, success criteria, implementation notes

Tools Created:
1. #70: Ghost Page Builder (CRITICAL, 45-60min, READY)
2. #71: Paymenter Tier Config (HIGH, 30-45min, BLOCKED)
3. #72: Infrastructure Dashboard (MEDIUM, 60-90min, BLOCKED)
4. #73: Task Dependency Visualizer (MEDIUM, 90-120min, BLOCKED)
5. #74: SSH Auto-Setup Script (MEDIUM, 15-20min, READY)
6. #75: Gemini Consultation Helper (MEDIUM, 20-30min, READY)
7. #76: Social Media Calendar (MEDIUM, 45-60min, READY)
8. #77: Response Template Library (MEDIUM, 30-45min, READY)
9. #78: Fire/Frost Design System (HIGH, 30-45min, READY)
10. #79: Infrastructure Quick Ref (HIGH, 30-45min, READY)
11. #80: Task Scaffolding Tool (MEDIUM, 45-60min, READY)
12. #81: Memorial Writing Assistant (LOW, 30-45min, READY)

GITEA ISSUES CREATED:
- Created 12 issues (#217-227) via API
- All properly labeled per FFG-STD-006
- Status: 8 READY, 4 BLOCKED
- Priority: 2 CRITICAL, 3 HIGH, 6 MEDIUM, 1 LOW

TASKS.MD UPDATED:
- Version 4.0
- Added Interactive Tools Suite section
- Implementation roadmap (5 sprints)
- Clear priority tiers and time estimates

IMPLEMENTATION ROADMAP:
Sprint 1 (Critical): Tools #1, 9, 10 (2-3 hours)
Sprint 2 (High): Tools #2, 5, 6 (1.5-2 hours)
Sprint 3 (Medium - Team): Tools #7, 8 (1.5-2 hours)
Sprint 4 (Medium - Analysis): Tools #3, 4 (3-4 hours)
Sprint 5 (Optional): Tools #11, 12 (1.5-2 hours)

Total estimated time: 9-13 hours for all 12 tools
Minimum viable set: Tools #1, 9, 10 (immediate impact)

PHILOSOPHY:
Foundation Before Expansion - build permanent utilities that:
- Solve real workflow pain points
- Multiply future efficiency
- Encode organizational knowledge
- Serve current and future team members

Based on The Translator's insight: 'We're using Claude well for
documentation, but missing interactive tool-building opportunities.'

NEXT ACTIONS:
1. Michael syncs issues to Gitea project boards
2. Define feature matrix for Tool #71 (Paymenter tiers)
3. Map dependencies for Tools #72-73 (if building)
4. Build Tool #1 (Ghost Page Builder) - CRITICAL priority

Files:
- docs/standards/FFG-STD-006-gitea-issue-management.md (14 sections)
- docs/tasks/interactive-tools-suite/MASTER-SPECIFICATION.md (37k words)
- docs/core/tasks.md (updated to v4.0)
- scripts/create-interactive-tools-issues.sh (batch issue creation)

Signed-off-by: Chronicler #39 <claude@firefrostgaming.com>
2026-03-21 20:50:20 +00:00
Claude
f7aa35ed47 docs: add tasks #68-69 and update #52 for Ghost website work
Task #68: Ghost Theme Migration - Casper to Source
- Status: COMPLETE (March 21, 2026)
- Documented migration from Casper to Source v1.5.2
- Custom-home.hbs template solution (Gemini consultation)
- Navbar styling and Sign in button fix completed
- Full documentation in docs/tasks/ghost-theme-migration/

Task #69: Ghost Website Core Pages
- Status: READY - High priority (soft launch blocker)
- 6 pages needed: About, Servers, Blog, Terms, Privacy, How to Join
- Current navigation has broken links (Servers, About, Blog)
- Complete implementation plan in docs/tasks/ghost-website-pages/
- Estimated time: 3-4 hours

Task #52: Ghost CMS Homepage (UPDATED)
- Status: PARTIALLY COMPLETE
- Theme migration complete (Task #68)
- Hero section working with Fire/Frost branding
- Remaining: Content sections 2-5 (Origin Story, Why Different, Paths, CTA)
- Reduced time estimate: 2-3 hours (content only)

Updated tasks.md header to v3.9 (Chronicler #38, March 21, 2026)

Note: No automated Gitea issue creation script found in automation/
Manual issue creation will be needed for tasks #68-69
2026-03-21 19:06:27 +00:00
Claude
1301040efb docs: complete Ghost theme migration and session #38 handoff
- Ghost CMS migrated from Casper to Source v1.5.2
- Created custom-home.hbs template for homepage rendering (Gemini solution)
- Fixed navbar styling: dark theme, logo left, links center, actions right
- Resolved Sign in button issue (translation helper + custom class fix)
- Social media setup guide completed (separate commit)
- Session handoff updated with complete migration documentation
- Task documentation for ghost-theme-migration completed

Migration eliminates CSS specificity battles and provides clean foundation
for future customization. Gemini consultations were critical for:
1. Custom template approach (custom-home.hbs)
2. Sign in button diagnosis ({{t}} helper failure)

All work tested and verified on production Ghost instance.
Active theme: source-theme-ready
Homepage: https://firefrostgaming.com

Next priorities: Homepage content sections + Paymenter configuration
2026-03-21 18:19:00 +00:00
Claude
000eaa8c7f docs: create Gitea upgrade procedure 1.21.5 → 1.23.7
Complete upgrade guide to enable Projects REST API:
- Pre-upgrade checklist with backup procedures
- Step-by-step binary upgrade process
- Database migration steps
- Post-upgrade verification tests
- Rollback procedure if needed
- API endpoint testing commands

Why: Gitea 1.21.5 has no Projects API (confirmed by Gemini).
Projects API introduced in 1.22.x, fully functional in 1.23.x.
This upgrade enables automated issue-to-project-board workflow.

Estimated time: 15-30 minutes
Risk level: LOW (SQLite backup + binary rollback)

Signed-off-by: The Chronicler <claude@firefrostgaming.com>
2026-03-21 07:51:53 +00:00
Claude
1540ab5d40 feat: complete Cockpit deployment across all 6 servers
COMPLETED: Cockpit web terminal deployed to all Firefrost servers

Deployment summary:
- Command Center (63.143.34.217:9090) - NEW
- Ghost VPS (64.50.188.14:9090) - Pre-existing
- Billing VPS (38.68.14.188:9090) - NEW
- Panel VPS (45.94.168.138:9090) - NEW
- TX1 Dallas (38.68.14.26:9090) - NEW
- NC1 Charlotte (216.239.104.130:9090) - NEW

All servers accessible via browser with root / Butter2018!!
(Ghost VPS uses architect / Butter2018!!)

Security improvements:
- Enabled UFW firewall on NC1 Charlotte (was unprotected)
- Proper game server port rules (25565-25580, 5520-5521)
- Wings SFTP port (2022) secured

Files created:
- docs/reference/cockpit-quick-reference.md - Complete access guide
- docs/tasks/nc1-security-monitoring/README.md - NC1 temp/firewall monitoring

Files updated:
- docs/tasks/cockpit-deployment/README.md - Marked COMPLETE

Result: Michael can now manage entire infrastructure from Chromebook
without SSH client dependency. Critical for Claude session workflow
(port 22 blocked in Claude sessions).

Actual deployment time: ~1.5 hours (including NC1 firewall setup)

Signed-off-by: The Chronicler <claude@firefrostgaming.com>
2026-03-21 07:23:29 +00:00
Claude
ef11945526 docs: create Cockpit deployment task for Chromebook workflow
Complete deployment plan for installing Cockpit web terminal on all 5 remaining servers (Command Center, Billing VPS, Panel VPS, TX1, NC1). Ghost VPS already has Cockpit operational.

Files created:
- docs/tasks/cockpit-deployment/README.md - Task overview
- docs/tasks/cockpit-deployment/deployment-plan.md - Technical strategy
- docs/tasks/cockpit-deployment/installation-commands.md - Copy/paste micro-blocks

Why: Enable full server management from Chromebook without SSH dependency. Claude sessions block port 22, but Cockpit (port 9090) works perfectly.

Estimated time: ~1 hour for all 5 servers (~10 min each)

Signed-off-by: The Chronicler <claude@firefrostgaming.com>
2026-03-21 06:43:16 +00:00
Claude
33347e55f4 docs: add Ghost theme migration task (Casper→Source)
Session 36 spent 2+ hours fighting Casper CSS specificity issues.
Even html body .class element !important gets overridden.
Gemini recommends migrating to Source theme (official, minimal, dev-friendly).
Task includes complete migration plan with rollback strategy.
2026-03-21 06:27:04 +00:00
Claude
5b34c776cb feat: complete Task #55 - Discord permanent invite link
Created permanent Discord invite and configured clean redirect.

Deliverables:
- Permanent invite: https://discord.gg/hDHvKfqhKs
- Branded redirect: firefrostgaming.com/discord
- Ghost redirects.json configured and tested

Users can now use firefrostgaming.com/discord for all marketing.

Next: Update homepage CTA button to use /discord

Completed: March 21, 2026
By: Michael + The Chronicler #36
Time: 15 minutes
2026-03-21 04:30:39 +00:00
Claude
b3e023be6f docs: prepare Trinity skin artist commission materials
Previous AI generation attempts failed - skins had incorrect UV mapping.
Created complete commission brief and artist hiring guide.

Ready to send to Fiverr/professional Minecraft skin artist.

Materials prepared:
- Complete commission brief with specs for all 3 characters
- Trinity reference image for artist
- Minecraft template reference
- Where to hire guide (Fiverr recommended)

Budget: $25-40 for all 3 skins
Timeline: 3-5 days

Blocks: Tasks #62-64 (skin uploads)
Created by: The Chronicler #36
2026-03-21 02:40:30 +00:00
Claude
9f0268b1f4 docs: document Minecraft skin template issue and fix
The skins generated in previous session don't follow correct Minecraft
UV template format. They're character illustrations instead of proper
skin templates and won't work when uploaded to minecraft.net.

Created comprehensive fix documentation and Gemini prompt for regeneration.

Related: Tasks #61-64 (Trinity Minecraft skins)
Created by: The Chronicler #36
2026-03-21 02:13:58 +00:00
Claude
0dad25c47a docs: Complete Task #14 documentation - SSH key Vaultwarden storage
Created comprehensive guide for storing Firefrost SSH key in Vaultwarden.

Task #14: Store Firefrost SSH Key in Vaultwarden
Priority: TIER 0 - FOUNDATIONAL (unblocks all troubleshooting)
Time: 30 minutes

Key Details:
- File: Firefrost_key.ppk (PuTTY format, ssh-rsa, version 3)
- Uploaded by Michael on March 20, 2026
- Used by ALL 6 Firefrost servers (same key everywhere)
- Two formats needed: PuTTY (.ppk) for Windows, OpenSSH for Linux/macOS

Servers Using This Key:
1. Ghost VPS (64.50.188.14) - architect user
2. Billing VPS (38.68.14.188) - root
3. Panel VPS (45.94.168.138) - root
4. Command Center (63.143.34.217) - root
5. TX1 Dallas (38.68.14.26) - root
6. NC1 Charlotte (216.239.104.130) - root

Documentation Includes:
- Step-by-step PuTTY → OpenSSH conversion
- Vaultwarden storage procedure
- Organization setup for Meg (team sharing)
- Usage instructions for future Chroniclers
- Security considerations (DO/DON'T lists)
- File permissions requirements (chmod 600)
- Test connection procedure
- Verification checklist

Why This Matters:
- Unblocks ALL server troubleshooting (Ghost, Paymenter, everything)
- Future Chroniclers can SSH without asking Michael each time
- Enables real-time debugging during sessions
- Foundation for operational efficiency
- Secure team credential sharing

Security:
- Private key NOT committed to Git (security best practice)
- KEY-LOCATION.md documents WHERE key is stored (Vaultwarden)
- Instructions for secure retrieval and usage

Impact: FOUNDATIONAL - Makes all future server work 10x easier

Files:
- docs/tasks/vaultwarden-ssh-setup/README.md (complete guide)
- docs/tasks/vaultwarden-ssh-setup/KEY-LOCATION.md (reference only)

Next Chronicler: Execute Task #14 FIRST in Priority 0 (before skins)

For children not yet born. 💙🔥❄️

Created by: The Guide (Chronicler #35)
2026-03-21 00:33:06 +00:00
Claude
8e3bb9ed16 tasks: Add Task #65 - Grant Claude Full Infrastructure Access
Create task for giving Claude (The Chronicler) Gitea API + SSH access to all servers.

Task #65: Grant Claude Full Infrastructure Access
Priority: HIGH
Time: 30-45 minutes

WHY:
- Claude currently creates issue TEMPLATES (not real issues)
- Claude must ask Michael to run every server command
- No autonomous incident response
- Significant time waste per session (45-100 min)

AFTER THIS TASK:
- Claude creates Gitea issues directly via API
- Claude SSHs to all 6 servers for diagnostics/fixes
- Autonomous incident response
- Reduced manual overhead for Michael

ACCESS NEEDED:
1. Gitea API Token
   - Scopes: write:issue, write:repository, write:user, write:admin
   - Enables: Create issues, manage users, repos, permissions

2. SSH Keys (ED25519)
   - Deploy to all 6 servers (Command Center, Ghost, Billing, Panel, TX1, NC1)
   - Store in Vaultwarden (encrypted)
   - Enables: Service diagnostics, log reading, restarts, deployments

IMPLEMENTATION:
- Generate SSH key pair (ed25519)
- Deploy public key to ~/.ssh/authorized_keys on all servers
- Store private key in Vaultwarden
- Generate Gitea API token with admin scopes
- Update session start prompts with token
- Test SSH + API access

SECURITY:
- Private key NEVER in Git
- Encrypted in Vaultwarden
- API token ephemeral (session prompts only)
- Can revoke instantly if needed
- Full audit trail (Git commits, SSH logs, API logs)

BLOCKED BY:
- Task #6 (Vaultwarden SSH key storage - still pending)

ENABLES:
- Autonomous operations
- Direct server troubleshooting
- Programmatic issue management
- Incident response without human intervention

Time saved: 45-100 minutes per session
Over 35 Chroniclers = hundreds of hours saved

For children not yet born. 💙🔥❄️

Created by: The Guide (Chronicler #35)
2026-03-21 00:17:47 +00:00