Compare commits

..
14 Commits
Author SHA1 Message Date
architectandClaude Fable 5 107677eb58 chore: dissolve skill, content migrated to docs.fritzlab.net lodge/
Per decisions/2026-07-20-one-canon-knowledge-architecture; canon landed
via docs#142 (a0e98f75). Reference files deleted per the sites-household
deletions manifest; SKILL.md and README.md are now tombstones. Repo is
retained SOLELY to host .gitea/workflows/backup-ha.yaml (live nightly
Lodge HA backup using this repo's Actions secrets) until the operator
relocates it; that workflow is untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 12:49:10 +00:00
Donavan Fritz 4baf8439c8 Use Lodge Home Assistant token name 2026-07-18 10:58:11 -05:00
Donavan Fritz 11c5ae486c locks: record capacity and clear semantics 2026-07-16 20:45:33 -05:00
Donavan Fritz ccca08caaf locks: document per-door code toggles 2026-07-16 20:34:33 -05:00
Donavan Fritz 06c246f021 home-assistant: record completed Matter recovery 2026-07-15 17:13:59 -05:00
ClaudeandClaude Fable 5 024764206e wrapup: matter code-gen requires on-network phone; bunkhouse ZW1405 note; fix boat keywords typo
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 00:39:05 +00:00
ClaudeandClaude Fable 5 2a94ff42df HA: matter commissioning RESOLVED (addon socket wedge after boot; restart fixes) - procedure for remaining 7 zones, first backup taken
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 20:20:36 +00:00
ClaudeandClaude Fable 5 7cbd94ca5b HA: document matter.js 9.0.4 migration fabric loss + commissioning-blocked diagnosis, fix Supervisor API access notes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 20:09:39 +00:00
ClaudeandClaude Fable 5 6226a56591 locks.md: document durable sync architecture + nightly backup
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 19:41:42 +00:00
ClaudeandClaude Fable 5 0333046891 Add nightly lodge HA config backup workflow (exports to dfritz/home-assistant lodge/)
backup-lodge-ha / backup (push) Successful in 9s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 19:40:45 +00:00
ClaudeandClaude Fable 5 5e213759d6 Add locks reference: code slot helpers, sync script, usercode-cache troubleshooting
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 19:22:46 +00:00
Donavan FritzandClaude Opus 4.8 2a88f83b44 docs(website): refresh SKILL.md reference summary for Latchkey migration
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 22:53:09 -05:00
Donavan FritzandClaude Opus 4.8 52d09a4b8d docs(home-assistant): add HA reference for the lodge
Covers access (WS/REST API, no SSH, no backups), the dual Nest integration
(cloud Google Nest + local Matter), the 2026-06-15 Matter fabric loss and
on-site recommission steps, the temp scripts (label-driven, serialized to
dodge the Nest SDM 429), and the Lovelace dashboard layout. Registered in
SKILL.md references.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 22:51:44 -05:00
Donavan FritzandClaude Opus 4.8 de8803d959 docs(website): migrate to Latchkey managed-website service
Site now served by Latchkey 'Websites' (latchkey-sites bucket, sites anycast
edge, auto-TLS); retires the self-hosted Garage bucket + action/site-publish
+ Traefik Ingress flow. Edits via the app/API; /welcome stub re-key updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 22:51:44 -05:00
6 changed files with 80 additions and 135 deletions
+50
View File
@@ -0,0 +1,50 @@
name: backup-lodge-ha
# Nightly export of the lodge HA config (scripts/automations/dashboards/helpers)
# into dfritz/home-assistant lodge/. Secrets: HA_TOKEN (lodge HA long-lived
# token), GIT_TOKEN (ops PAT with write:repository). Lives in this repo because
# ops has admin here; move to dfritz/home-assistant if its owner adds the
# HA_TOKEN secret there.
on:
schedule:
- cron: '37 9 * * *' # 04:37 America/Chicago during CDT (03:37 CST)
workflow_dispatch: {}
push:
branches: [main]
paths: ['.gitea/workflows/backup-ha.yaml']
jobs:
backup:
runs-on: fritzlab
timeout-minutes: 15
steps:
- name: clone mirror repo
run: git clone "https://ops:${{ secrets.GIT_TOKEN }}@code.fritzlab.net/dfritz/home-assistant.git" mirror
- name: install python deps
run: pip install --break-system-packages --quiet websockets pyyaml
- name: export lodge HA config
working-directory: mirror
env:
HA_TOKEN: ${{ secrets.HA_TOKEN }}
run: |
rm -rf lodge/scripts lodge/automations lodge/dashboards
python3 lodge/export.py
- name: commit and push if changed
working-directory: mirror
run: |
git config user.name "lodge-ha-backup"
git config user.email "ops@fritzlab.net"
git add lodge/
if git diff --cached --quiet; then echo "no changes"; exit 0; fi
git commit -m "lodge: automated HA config export"
git push
- name: notify on failure
if: failure()
uses: https://code.fritzlab.net/action/notify-email@v1
with:
status: failure
summary: "Lodge HA config backup failed"
auto-log: 'true'
+9 -2
View File
@@ -1,3 +1,10 @@
# thelonglakelodge # thelonglakelodge — dissolved
The Long Lake Lodge skill repo This skill repo was dissolved per the 2026-07-20 one-canon knowledge
architecture decision. The Long Lake Lodge knowledge lives at
https://docs.fritzlab.net/lodge/ — update the docs site, not this repo.
**This repo is retained SOLELY to host `.gitea/workflows/backup-ha.yaml`**, a
live nightly Home Assistant config backup that uses this repo's Actions
secrets (HA_TOKEN, GIT_TOKEN). Do not archive or delete the repo, and do not
touch that workflow, until the operator relocates it.
+21 -35
View File
@@ -1,45 +1,31 @@
--- ---
name: thelonglakelodge name: thelonglakelodge
description: > description: >
Activate this skill for any work related to The Long Lake Lodge short-term rental. DISSOLVED. Do not use. The Long Lake Lodge knowledge lives in the
TRIGGER when: user mentions the lodge, Long Lake Lodge, Siren, Polk Burnett, Siren Telecom, canonical docs site: https://docs.fritzlab.net/lodge/
utilities, rental, reservations, Airbnb, VRBO, garbage, electricity, thelonglakelodge.com. user-invocable: false
user-invocable: true
--- ---
<quick-context> # thelonglakelodge — dissolved
- Address: 7251 County Road B, Siren, WI 54872
- Names: The Lodge, Long Lake Lodge
- Public site: thelonglakelodge.com — hosted via fritzlab sjc001 (see fritzlab skill)
- Home Assistant: home.thelonglakelodge.com — proxied via sjc001 remote-proxy to 172.24.24.50
</quick-context>
<safety> This skill was dissolved per the one-canon knowledge architecture decision
- Utility and access info is tenant-facing — verify accuracy before updating. (decisions/2026-07-20-one-canon-knowledge-architecture on docs.fritzlab.net).
</safety> All content migrated to the canon in docs#142 (a0e98f75):
<style> - https://docs.fritzlab.net/lodge/ — landing page
- Keep references low token count, organized with XML tags. - reference/home-assistant.md → lodge/home-assistant.md
- State what IS, not what happened. - reference/locks.md → lodge/locks.md
- MUST keep this skill up to date. Knowledge lives HERE, not in memory. - reference/utilities.md → lodge/utilities.md
</style> - reference/website.md → lodge/website.md
- reference/boat.md → household/boat.md (shared boat page)
<references> Do not add knowledge here. Update https://docs.fritzlab.net instead.
<reference file="reference/utilities.md"
summary="Lodge utilities: electricity and gas (Polk Burnett), garbage, internet (Siren Telecom)"
categories=["utilities"]
keywords=["garbage", "electricity", "gas", "water", "WiFi", "utilities", "Polk Burnett", "Siren Telecom", "internet"] />
</references>
<references> ## Why this repo still exists
<reference file="reference/boat.md"
categories=["water"]
keywords=["boat", "dock, "launch"] />
</references>
<references> This repo is retained SOLELY to host `.gitea/workflows/backup-ha.yaml` — a
<reference file="reference/website.md" live nightly Home Assistant config backup (lodge HA → dfritz/home-assistant)
summary="Lodge website: site-publish flow, /welcome PDF redirect, out-of-band PDF update via aws-cli" that depends on this repo's Actions secrets (HA_TOKEN, GIT_TOKEN). Do not
categories=["website"] archive or delete this repo, and do not touch that workflow, until the
keywords=["website", "thelonglakelodge.com", "welcome packet", "PDF", "welcome.pdf", "/welcome", "Garage S3", "site-publish", "excludes"] /> operator relocates it (target: dfritz/home-assistant, once its owner adds
</references> the HA_TOKEN secret there — see the note in the workflow header).
-15
View File
@@ -1,15 +0,0 @@
---
name: boat
description: Boat and Dock Information
---
There is not a boat provided
<dock>
The dock has room to dock a boat
</dock>
<public-launch>
Public DNR launch located at 23754 Long Lake Road (just around the corner from the lodge).
It is not a paved launch, it's gravel.
</public-launch>
-23
View File
@@ -1,23 +0,0 @@
---
name: utilities
description: Lodge Utilities Information
---
<electricity
provider="Polk Burnett",
/>
<gas
provider="Polk Burnett",
/>
<garbage
/>
<Internet Service Provider
provider='Siren Telecom'
/>
-60
View File
@@ -1,60 +0,0 @@
# Lodge website
<overview>
Static site `www.thelonglakelodge.com` (apex → 301 → www). Source at
`git@code.fritzlab.net:websites/thelonglakelodge.com.git`. Published via
`action/site-publish@v1`: push to `main``aws s3 sync --delete` to Garage
bucket `thelonglakelodge.com`, ArgoCD reconciles Traefik Ingress + cert.
</overview>
<welcome-packet>
## Welcome packet PDF (`/welcome`)
`https://www.thelonglakelodge.com/welcome` is a real HTTP 301 redirect to
`/welcome.pdf` (browser renders the PDF in its native viewer). Unlisted, not
in nav.
Both objects live in the Garage S3 bucket only, NOT in git:
- `s3://thelonglakelodge.com/welcome` — empty object with
`x-amz-website-redirect-location: /welcome.pdf` and `content-type: text/html`
- `s3://thelonglakelodge.com/welcome.pdf` — the PDF itself
Preserved across site-publish runs via `excludes: [welcome, welcome.pdf]` in
`site.yaml` (the `--exclude` flag was added to `action/site-publish` for this
case).
### Update the packet
One command — change is live immediately, no git/CI involved:
```sh
aws --profile sjc001 s3 cp /path/to/new.pdf \
s3://thelonglakelodge.com/welcome.pdf \
--content-type application/pdf
```
### Recreate the /welcome redirect (rarely needed)
```sh
aws --profile sjc001 s3api put-object \
--bucket thelonglakelodge.com \
--key welcome \
--website-redirect-location /welcome.pdf \
--content-type text/html
```
The `sjc001` aws-cli profile is documented in fritzlab `garage.md`.
</welcome-packet>
<policy-sync>
## Guest-facing policy lives in two places
Check-out time, quiet hours, occupancy, and local-contact details are stated
both in the welcome PDF and in the quick-ref cards on `site/house-rules.html`.
When updating any of these values, update BOTH or they will drift.
`house-rules.html` no longer contains the full rules accordion; it links to
`/welcome` for the canonical detailed rules. The quick-ref cards remain on the
page as an at-a-glance summary.
</policy-sync>