Initial project scaffold — plan, branding, and wiki access docs
This commit is contained in:
@@ -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.*
|
||||||
@@ -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
@@ -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.*
|
||||||
Reference in New Issue
Block a user