Initial project scaffold — plan, branding, and wiki access docs

This commit is contained in:
2026-03-19 17:44:41 -06:00
commit 0bae347e65
4 changed files with 1892 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# CLAUDE.md — Forward Assist Project Context
## What Is This
> *Project concept pending — to be defined in initial planning session.*
## Source of Truth
- **Wiki:** https://wiki.jfamily.io — Forward Assist collection has full PDR, changelog, feature ideas
- **Wiki API:** `Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT`
- **Collection ID:** `d1f85b19-030d-4a39-a6fd-317d6825fdfe`
## Before Making Changes
1. Read the PDR on the wiki for architecture and design decisions
2. Check the Changelog on the wiki for recent changes
3. Update the Claude Code Log after each session
## Key Infrastructure
| Host | IP | Access |
|------|----|--------|
| Ragnar (Proxmox) | 192.168.1.107 | SSH root (key from MacBook) |
| HAOS | 192.168.1.140 | SSH root (key), web :8123 |
| Infrastructure LXC (104) | 192.168.1.204 | Gitea, wiki (Outline) |
| Frigate LXC (108) | 192.168.1.211 | NVR with dual Coral TPUs |
| Wiki | https://wiki.jfamily.io | Outline API |
| Gitea | http://192.168.1.204:3000 | user: eric |
## Wiki Documents
| Document | ID | Purpose |
|----------|----|---------|
| Master Prompt | 82ea3344-b55e-46d9-bcb6-a03eec252261 | Session context |
| PDR | f33885c7-261f-46ed-9ff9-5348615b5b2e | Full project spec |
| Claude Code Log | 7ce13c60-dc93-4af3-85ae-8e407c5ca66b | Session work log |
| User Manual | ebc0b8ea-8e4b-4e35-9817-77d31c0ed3ea | End-user docs |
| Changelog | 7a3b0ae0-3d0a-4433-aca8-e494f9fd8fa2 | Dated changes |
| ScratchPad | d15c7e5d-b6f5-4e2a-aecb-a3782f8dc694 | Informal notes |
| Bugs! | 172adb16-ca91-4005-89d4-5ff0c90221e2 | Bug tracking |
| Change Orders! | cdaff737-aa78-4d85-b28b-8745968d9294 | Design deviations |
| Feature Ideas! | 3d5e036f-33c3-4bea-b129-74e5464ed182 | Future ideas |
## Tech Stack
> *To be determined.*
+67
View File
@@ -0,0 +1,67 @@
## Forward Assist — Wiki & Gitea Access
**Wiki (Outline):** https://wiki.jfamily.io/api/
- Auth: `Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT`
- No MCP available — use curl to Outline REST API
- Key endpoints: `documents.list`, `documents.info`, `documents.create`, `documents.update`, `documents.search`, `collections.list`
- All POST, all take JSON body, all return JSON
### Forward Assist Collection
- **Collection ID:** `d1f85b19-030d-4a39-a6fd-317d6825fdfe`
- **Master Prompt:** `82ea3344-b55e-46d9-bcb6-a03eec252261`
- **Project Design Reference (PDR):** `f33885c7-261f-46ed-9ff9-5348615b5b2e`
- **Claude Code Log:** `7ce13c60-dc93-4af3-85ae-8e407c5ca66b`
- **User Manual:** `ebc0b8ea-8e4b-4e35-9817-77d31c0ed3ea`
- **Changelog:** `7a3b0ae0-3d0a-4433-aca8-e494f9fd8fa2`
- **The ScratchPad:** `d15c7e5d-b6f5-4e2a-aecb-a3782f8dc694`
- **Bugs!:** `172adb16-ca91-4005-89d4-5ff0c90221e2` (child of ScratchPad)
- **Change Orders!:** `cdaff737-aa78-4d85-b28b-8745968d9294` (child of ScratchPad)
- **Feature Ideas!:** `3d5e036f-33c3-4bea-b129-74e5464ed182` (child of ScratchPad)
```bash
# List collections
curl -s -X POST "https://wiki.jfamily.io/api/collections.list" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" -d '{}'
# List docs in a collection
curl -s -X POST "https://wiki.jfamily.io/api/documents.list" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"collectionId": "<id>"}'
# Read a doc
curl -s -X POST "https://wiki.jfamily.io/api/documents.info" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"id": "<doc-id>"}'
# Update a doc
curl -s -X POST "https://wiki.jfamily.io/api/documents.update" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"id": "<doc-id>", "text": "<full markdown>"}'
# Create a doc
curl -s -X POST "https://wiki.jfamily.io/api/documents.create" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"title": "...", "text": "...", "collectionId": "<id>", "publish": true}'
# Create a child doc (add parentDocumentId)
curl -s -X POST "https://wiki.jfamily.io/api/documents.create" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"title": "...", "text": "...", "collectionId": "<id>", "parentDocumentId": "<parent-id>", "publish": true}'
```
**Tip:** For long/complex markdown, use Python `urllib.request` + `json.dumps()` instead of inline curl to avoid JSON escaping headaches.
---
**Gitea:** git@git.jfamily.io (SSH, port 2222)
- SSH alias configured: `ssh git@git.jfamily.io`
- Web: http://192.168.1.204:3000 (user: eric)
- API: http://192.168.1.204:3000/api/v1/
- To generate API tokens: `ssh ragnar "pct exec 104 -- docker exec -u git gitea gitea admin user generate-access-token --username eric --token-name <name> --scopes all"`
File diff suppressed because it is too large Load Diff
+146
View File
@@ -0,0 +1,146 @@
==NOT PART OF PROMPT: DO NOT USE THIS WITHOUT THE TECHNICAL KNOWLEDGE TO UNDERSTAND WHAT IT DOES!==
## Who I Am
I'm Eric (eric@ejattorney.com). I'm building **Forward Assist** as a personal project. I work from a MacBook Pro M1 with SSH keys for most major servers on the network.
**My preferences:** Brief, direct answers. No stuffy/formal language. "Humanized" writing — conversational, not corporate. Less is more. Don't over-explain unless I ask for details.
**Writing voice:** When drafting any documents, wiki pages, communications, or written content, Claude writes as me (Eric) — first person. Use "I", "we", "our", not "you" or "the user." The output should read like I wrote it myself.
---
## What Forward Assist Is
> *To be defined — project concept pending initial planning session.*
---
## Architecture
> *To be defined.*
---
## Tech Stack
> *To be determined.*
---
## Infrastructure
### Relevant Servers
| Server | IP | Role |
|--------|----|------|
| Ragnar (Proxmox host) | 192.168.1.107 | Hypervisor — runs all LXCs/VMs |
| Home Assistant (Ares) | 192.168.1.140 | Automation hub, HA OS |
| Infrastructure LXC (104) | 192.168.1.204 | Gitea, wiki (Outline), other infra |
| Frigate LXC (108) | 192.168.1.211 | NVR with dual Coral TPUs |
### Access
| Service | Access Method |
|---------|---------------|
| Ragnar SSH | `ssh ragnar` (key-based, root) |
| Home Assistant Web | http://192.168.1.140:8123 or https://home.jfamily.cloud |
| Home Assistant SSH | Key-based, root |
| Home Assistant CLI | `hass-cli` (env vars in ~/.zshrc) |
| Gitea Web | http://192.168.1.204:3000 (user: eric) |
| Gitea SSH | `ssh git@git.jfamily.io` (key-based, alias in ~/.ssh/config) |
| Gitea API | http://192.168.1.204:3000/api/v1/ |
| Wiki (Outline) | https://wiki.jfamily.io |
| Wiki API | https://wiki.jfamily.io/api/ (Bearer: ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT) |
### Network Context
- **Main LAN:** 192.168.1.0/24 (J-Home)
- **IoT VLAN:** 192.168.4.0/24 (J-IoT, VLAN 4)
- **Protect VLAN:** 192.168.30.0/24 (J-Protect, VLAN 30)
- **Gateway:** UDM-SE (192.168.1.1)
---
## Git Repo
> *To be created once project concept is defined.*
**Gitea:** git@git.jfamily.io (SSH, port 2222)
- Web: http://192.168.1.204:3000 (user: eric)
- To generate API tokens: `ssh ragnar "pct exec 104 -- docker exec -u git gitea gitea admin user generate-access-token --username eric --token-name <name> --scopes all"`
### File Manifest
| File | Purpose |
|------|---------|
| `CLAUDE_ACCESS_PROMPT.md` | Wiki & Gitea access details |
| `CLAUDE.md` | Quick-reference project context for Claude Code |
| `MASTER_PROMPT.md` | This file — full session context |
### Working Directory (Mac)
`/Users/jungbauerfamily/Library/Mobile Documents/com~apple~CloudDocs/Claude Working Folder/Forward Assist/`
---
## Documentation — Wiki Is the Source of Truth
**Wiki collection:** Forward Assist (https://wiki.jfamily.io)
**Wiki API base:** `https://wiki.jfamily.io/api/`
**Auth header:** `Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT`
**Collection ID:** `d1f85b19-030d-4a39-a6fd-317d6825fdfe`
### Wiki Documents
| Document | ID | Purpose |
|----------|----|---------|
| Master Prompt | 82ea3344-b55e-46d9-bcb6-a03eec252261 | Session context (this file mirrors it) |
| Project Design Reference (PDR) | f33885c7-261f-46ed-9ff9-5348615b5b2e | Full project spec |
| Claude Code Log | 7ce13c60-dc93-4af3-85ae-8e407c5ca66b | Session-by-session work log |
| User Manual | ebc0b8ea-8e4b-4e35-9817-77d31c0ed3ea | End-user documentation |
| Changelog | 7a3b0ae0-3d0a-4433-aca8-e494f9fd8fa2 | Dated change entries |
| The ScratchPad | d15c7e5d-b6f5-4e2a-aecb-a3782f8dc694 | Informal notes/workspace |
| Bugs! | 172adb16-ca91-4005-89d4-5ff0c90221e2 | Bug tracking (child of ScratchPad) |
| Change Orders! | cdaff737-aa78-4d85-b28b-8745968d9294 | Design deviations (child of ScratchPad) |
| Feature Ideas! | 3d5e036f-33c3-4bea-b129-74e5464ed182 | Future ideas (child of ScratchPad) |
### Wiki Update Rule
Any time changes are made to the project, Claude MUST update the relevant wiki documentation:
- **Changelog** — Log what changed and when
- **PDR** — Update if architecture or technical design changed
- **Claude Code Log** — Log session work
- **Bugs!** — Track any issues discovered
- **Change Orders!** — Log any deviations from the PDR
- **Feature Ideas!** — Capture new ideas that come up during work
### Wiki API Quick Reference
```bash
# List docs in collection
curl -X POST "https://wiki.jfamily.io/api/documents.list" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"collectionId": "d1f85b19-030d-4a39-a6fd-317d6825fdfe"}'
# Update a document
curl -X POST "https://wiki.jfamily.io/api/documents.update" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"id": "<doc-id>", "text": "<full markdown content>"}'
# Create a new document
curl -X POST "https://wiki.jfamily.io/api/documents.create" \
-H "Authorization: Bearer ol_api_yHXypRyqf4CscWDzPluGfPev9GhdFg6mwrXwkT" \
-H "Content-Type: application/json" \
-d '{"title": "...", "text": "...", "collectionId": "d1f85b19-030d-4a39-a6fd-317d6825fdfe", "publish": true}'
```
---
## Current Focus
> *Project concept pending — awaiting initial planning session with Eric.*