From 36eca4ca895df2311228d7103813a9c555280166 Mon Sep 17 00:00:00 2001 From: stateofshit Date: Wed, 29 Jul 2026 13:29:47 +0000 Subject: [PATCH] add 000-configs/, dashboard, templates, .obsidian/, bin/, model-identity --- .gitignore | 8 +- .obsidian/core-plugins.json | 3 + .obsidian/daily-notes.json | 7 + 000-configs/README.md | 30 +++ 000-configs/archive/README.md | 7 + 000-configs/modes/.gitkeep | 0 000-configs/modes/workplace-modes.md | 28 +++ 000-configs/prompts/.gitkeep | 0 000-configs/prompts/README.md | 33 +++ 000-configs/settings/.gitkeep | 0 000-configs/settings/README.md | 17 ++ 000-configs/skills/.gitkeep | 0 000-configs/skills/README.md | 18 ++ 000-configs/tools/GH_CLI_INSTRUCTIONS.md | 202 ++++++++++++++++++ .../tools/PLAYWRIGHT_BROWSER_INSTRUCTIONS.md | 95 ++++++++ 000-configs/tools/README.md | 26 +++ .../tools/VITE_PREVIEW_INSTRUCTIONS.md | 147 +++++++++++++ 000-configs/workspace/.gitkeep | 0 000-shit_admin/dashboard-queries.md | 104 +++++++++ 000-shit_admin/dashboard.md | 102 +++++++++ 01-logs/daily/.gitkeep | 0 04-models/Vault-Rules.md | 13 +- 04-models/model-identity.md | 37 ++++ README.md | 61 ++++-- bin/.gitkeep | 0 bin/README.md | 23 ++ bin/daily.sh | 39 ++++ tpl/daily.md | 37 ++++ tpl/handoff.md | 38 ++++ tpl/research.md | 39 ++++ tpl/task.md | 30 +++ 31 files changed, 1127 insertions(+), 17 deletions(-) create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/daily-notes.json create mode 100644 000-configs/README.md create mode 100644 000-configs/archive/README.md create mode 100644 000-configs/modes/.gitkeep create mode 100644 000-configs/modes/workplace-modes.md create mode 100644 000-configs/prompts/.gitkeep create mode 100644 000-configs/prompts/README.md create mode 100644 000-configs/settings/.gitkeep create mode 100644 000-configs/settings/README.md create mode 100644 000-configs/skills/.gitkeep create mode 100644 000-configs/skills/README.md create mode 100644 000-configs/tools/GH_CLI_INSTRUCTIONS.md create mode 100644 000-configs/tools/PLAYWRIGHT_BROWSER_INSTRUCTIONS.md create mode 100644 000-configs/tools/README.md create mode 100644 000-configs/tools/VITE_PREVIEW_INSTRUCTIONS.md create mode 100644 000-configs/workspace/.gitkeep create mode 100644 000-shit_admin/dashboard-queries.md create mode 100644 000-shit_admin/dashboard.md create mode 100644 01-logs/daily/.gitkeep create mode 100644 04-models/model-identity.md create mode 100644 bin/.gitkeep create mode 100644 bin/README.md create mode 100755 bin/daily.sh create mode 100644 tpl/daily.md create mode 100644 tpl/handoff.md create mode 100644 tpl/research.md create mode 100644 tpl/task.md diff --git a/.gitignore b/.gitignore index a40ae18..f979601 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ -# Add .obsidian to gitignore so personal config stays local -.obsidian/ \ No newline at end of file +# Personal Obsidian workspace state (don't sync) +.obsidian/workspace.json +.obsidian/workspace.json.bak + +# Plugin cache/state (per-device) +.obsidian/plugins/*/data.json diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..33953e4 --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,3 @@ +{ + "daily-notes": true +} diff --git a/.obsidian/daily-notes.json b/.obsidian/daily-notes.json new file mode 100644 index 0000000..913c1c1 --- /dev/null +++ b/.obsidian/daily-notes.json @@ -0,0 +1,7 @@ +{ + "folder": "01-logs/daily", + "format": "YYYY-MM-DD", + "template": "tpl/daily.md", + "autorun": false, + "autorunOnlyIfToday": false +} diff --git a/000-configs/README.md b/000-configs/README.md new file mode 100644 index 0000000..5d46d54 --- /dev/null +++ b/000-configs/README.md @@ -0,0 +1,30 @@ +--- +title: "000-configs" +status: "active" +folder: "000-configs" +tags: [config, index] +created: "2026-07-29" +updated: "2026-07-29" +version: "1.0.0" +--- + +# 000-configs + +Server, model, and workspace configuration docs. Mirror of `/home/user/000-configs/`. + +## Subfolders + +| Folder | What's In It | +|---|---| +| [[prompts/]] | Reusable system prompts | +| [[tools/]] | CLI / API tool docs (gh, playwright, vite, etc.) | +| [[skills/]] | Skill definitions | +| [[modes/]] | Model mode presets (creative, research, code, etc.) — incl. `workplace-modes.md` | +| [[workspace/]] | Workspace layouts and setup | +| [[settings/]] | Open WebUI / server settings | + +## Migration Note + +These docs used to live at `/home/user/000-configs/`. They've been moved here so the vault is the single source of truth. The `/home/user/000-configs/` directory still exists but is now a mirror. + +Sync: when adding a new tool doc, save it in the vault (`000-configs/tools/`) and symlink or copy to `/home/user/000-configs/` if needed. \ No newline at end of file diff --git a/000-configs/archive/README.md b/000-configs/archive/README.md new file mode 100644 index 0000000..8c564d4 --- /dev/null +++ b/000-configs/archive/README.md @@ -0,0 +1,7 @@ +# Configs Archive + +Old or deprecated configs. Don't delete — they explain why we moved off something. + +## How to archive + +Move the file here and set `status: "archive"` in its frontmatter. \ No newline at end of file diff --git a/000-configs/modes/.gitkeep b/000-configs/modes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/000-configs/modes/workplace-modes.md b/000-configs/modes/workplace-modes.md new file mode 100644 index 0000000..e161f75 --- /dev/null +++ b/000-configs/modes/workplace-modes.md @@ -0,0 +1,28 @@ +# Workplace Modes + +Mode configs — defines what context/models/prompts apply in different scenarios. + +## Examples + +- `research-mode.md` — web searches, note-taking +- `coding-mode.md` — git commits, code review +- `debug-mode.md` — logs, traces, error hunting +- `admin-mode.md` — server config, deployment + +## Format + +```markdown +# Mode Name + +## Active when +- User says "let's research X" +- User mentions "build mode" + +## Stack +- Prompt: `[[../prompts/research-prompt]]` +- Tools: `[[../tools/...]]` +- Skills: `[[../skills/...]]` + +## Rules +- +``` \ No newline at end of file diff --git a/000-configs/prompts/.gitkeep b/000-configs/prompts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/000-configs/prompts/README.md b/000-configs/prompts/README.md new file mode 100644 index 0000000..87fe27f --- /dev/null +++ b/000-configs/prompts/README.md @@ -0,0 +1,33 @@ +# Prompts + +System prompts, agent prompts, model-specific prompts. + +## Format + +Each prompt file: +```markdown +--- +title: "Prompt name" +status: "active" | "draft" | "archive" +tags: [prompt, , ] +created: YYYY-MM-DD +updated: YYYY-MM-DD +version: 1.0.0 +provider: openwebui | claude | gpt | local +use_case: research | coding | ops | etc +--- + +# Prompt Name + +[the actual prompt text] +``` + +## Naming + +- `openwebui-system.md` +- `claude-code-agent.md` +- `gpt-researcher.md` + +## Versioning + +Bump `version` on every edit. Major = rewrite. \ No newline at end of file diff --git a/000-configs/settings/.gitkeep b/000-configs/settings/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/000-configs/settings/README.md b/000-configs/settings/README.md new file mode 100644 index 0000000..59f773e --- /dev/null +++ b/000-configs/settings/README.md @@ -0,0 +1,17 @@ +# Settings + +Config file templates, environment variable docs, app settings. + +## Examples + +- `openwebui-env.md` — env vars for openwebui +- `obsidian-config.md` — vault config notes +- `git-config.md` — git config for this server + +## Format + +Each settings file: +- What the config controls +- Default values +- Current values on this server +- How to change \ No newline at end of file diff --git a/000-configs/skills/.gitkeep b/000-configs/skills/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/000-configs/skills/README.md b/000-configs/skills/README.md new file mode 100644 index 0000000..bdaef44 --- /dev/null +++ b/000-configs/skills/README.md @@ -0,0 +1,18 @@ +# Skills + +Skill docs — how-tos for tasks models do often on this server. + +## Examples + +- `obsidian-vault-workflow.md` +- `git-commit-messages.md` +- `research-web-search.md` +- `obsidian-dataview-patterns.md` + +## Format + +Each skill: +- What it does +- When to use +- Step-by-step +- Gotchas / server-specific notes \ No newline at end of file diff --git a/000-configs/tools/GH_CLI_INSTRUCTIONS.md b/000-configs/tools/GH_CLI_INSTRUCTIONS.md new file mode 100644 index 0000000..1764a57 --- /dev/null +++ b/000-configs/tools/GH_CLI_INSTRUCTIONS.md @@ -0,0 +1,202 @@ +# GitHub CLI (gh) Instructions for Open WebUI Models + +`gh` is the GitHub CLI — v2.96.0, fully installed and authenticated as **`stateofshit`**. + +This document covers how any model on this server can use `gh` for repo management, issues, PRs, and everything GitHub-related. + +--- + +## Quick Reference + +```bash +gh --help # full help +gh auth status # confirm you're logged in +gh repo list # list all repos +gh repo view # view a repo +gh issue list # list issues in current dir's repo +gh pr create # create a pull request +``` + +--- + +## Authentication Status + +Already logged in as **`stateofshit`** with token scopes: `admin:public_key`, `gist`, `read:org`, `repo`. + +To check: + +```bash +gh auth status +``` + +Expected output: +``` +✓ Logged in to github.com account stateofshit +✓ Git operations protocol: ssh +✓ Token scopes: 'admin:public_key', 'gist', 'read:org', 'repo' +``` + +--- + +## Repo Management + +### Create a new repo + +```bash +gh repo create / --private --description "what it is" +``` + +Flags: +- `--private` or `--public` +- `--clone` — also clone it locally after creating +- `--push` — push local branch to remote + +### List repos + +```bash +gh repo list stateofshit --limit 50 +``` + +### View a repo + +```bash +gh repo view stateofshit/shit_in_a_vault +``` + +### Delete a repo + +⚠️ **Irreversible.** + +```bash +gh repo delete stateofshit/shit_in_a_vault --yes +``` + +--- + +## Working With the Vault Repo + +The vault lives at `/home/user/02-repos/shit_in_a_vault/`. + +Before working with it, read the boot prompt: + +```bash +cat /home/user/02-repos/shit_in_a_vault/04-models/model-boot.md +``` + +### Everyday flow + +```bash +cd /home/user/02-repos/shit_in_a_vault + +# Check status +git status + +# Stage and commit +git add -A +git commit -m "description of changes" + +# Push +git push +``` + +No need to authenticate — `git` uses SSH which is already set up via `~/.ssh/config`. + +### Pull latest + +```bash +cd /home/user/02-repos/shit_in_a_vault +git pull +``` + +--- + +## Issues + +### Create an issue + +```bash +gh issue create --title "Bug: thing broken" --body "Details here" +``` + +### List issues + +```bash +gh issue list +``` + +### View / close + +```bash +gh issue view +gh issue close +``` + +--- + +## Pull Requests + +### Create a PR + +```bash +# From a feature branch +git checkout -b my-feature +# ... make changes, commit, push ... +gh pr create --title "Add feature" --body "What it does" +``` + +### List / view / merge + +```bash +gh pr list +gh pr view +gh pr merge +``` + +--- + +## Gists + +```bash +# Create +gh gist create file.txt + +# List +gh gist list + +# View +gh gist view +``` + +--- + +## Working With Other Repos + +Models can work with any repo `stateofshit` has access to. + +### Clone any accessible repo + +```bash +gh repo clone stateofshit/webby /home/user/02-repos/webby +``` + +Already cloned repos are in `/home/user/02-repos/`: +- `webby` — `stateofshit/webby` +- `shit_in_a_vault` — `stateofshit/shit_in_a_vault` + +--- + +## Environment + +- `gh` binary: `/usr/bin/gh` (system-installed) +- Config: `~/.config/gh/hosts.yml` +- Token is stored in that config — **do not expose it in chat or in files** +- Git protocol: SSH (key at `~/.ssh/github_openwebui`) + +--- + +## Notes + +- **Never** paste the token or `~/.config/gh/hosts.yml` contents into chat output. +- **Never** run `gh auth logout` — it will break all future model access. +- Deleting a repo is permanent. Use `--yes` with extreme care. +- `gh` respects the current directory's git remote. Run it inside a repo to act on that repo. \ No newline at end of file diff --git a/000-configs/tools/PLAYWRIGHT_BROWSER_INSTRUCTIONS.md b/000-configs/tools/PLAYWRIGHT_BROWSER_INSTRUCTIONS.md new file mode 100644 index 0000000..fe408e3 --- /dev/null +++ b/000-configs/tools/PLAYWRIGHT_BROWSER_INSTRUCTIONS.md @@ -0,0 +1,95 @@ +# Playwright Browser Instructions for Open WebUI Coding AI + +Use Playwright when the user asks you to inspect, test, debug, screenshot, or interact with a real webpage or web app. + +Playwright is available inside the Open WebUI terminal container. + +## What Playwright Is For + +Use Playwright for: + +- checking whether a webpage actually renders +- taking screenshots of an app +- testing buttons, forms, menus, routing, and mobile layouts +- inspecting page text after JavaScript runs +- debugging frontend errors that do not show up with `curl` +- verifying `https://preview.boogerclub.com` + +Do not use Playwright as a replacement for normal web search. Use it when browser rendering or interaction matters. + +## Quick Commands + +Take a screenshot: + +```bash +npx playwright screenshot --browser=chromium https://example.com /home/user/example.png +``` + +Take a screenshot of the live Vite preview: + +```bash +npx playwright screenshot --browser=chromium https://preview.boogerclub.com /home/user/preview.png +``` + +Open a mobile-sized screenshot: + +```bash +npx playwright screenshot --browser=chromium --viewport-size=390,844 https://preview.boogerclub.com /home/user/preview-mobile.png +``` + +Generate a Playwright test scaffold in an app: + +```bash +cd /home/user/projects/YOUR_APP +npm install -D @playwright/test +npx playwright install chromium +npx playwright test +``` + +## One-Off Page Inspection Script + +For quick rendered-page inspection, create a temporary script like this: + +```js +const { chromium } = require('playwright') + +;(async () => { + const browser = await chromium.launch({ headless: true }) + const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } }) + await page.goto('https://preview.boogerclub.com', { waitUntil: 'networkidle' }) + console.log(await page.title()) + console.log((await page.locator('body').innerText()).slice(0, 2000)) + await page.screenshot({ path: '/home/user/preview.png', fullPage: true }) + await browser.close() +})() +``` + +Run it with: + +```bash +node script-name.js +``` + +## Current Verified State + +Playwright Chromium has been installed and verified in this container. + +Smoke test that passed: + +```bash +cd /home/user +npx playwright screenshot --browser=chromium https://example.com /home/user/playwright-smoke.png +``` + +If Playwright later says browser binaries are missing, run: + +```bash +npx playwright install chromium +``` + +If Chromium fails with missing shared libraries, run this from the host against the Open WebUI compose stack: + +```bash +docker compose exec -u root open-terminal sh -lc 'cd /home/user && npx playwright install-deps chromium' +``` + diff --git a/000-configs/tools/README.md b/000-configs/tools/README.md new file mode 100644 index 0000000..5835534 --- /dev/null +++ b/000-configs/tools/README.md @@ -0,0 +1,26 @@ +# Tools + +Tool docs — CLI references, browser automation, frameworks, anything with a CLI or API. + +## Naming + +`TOOL_NAME_INSTRUCTIONS.md` — matches the existing convention from `/home/user/000-configs/`. + +## Current + +- `GH_CLI_INSTRUCTIONS.md` — GitHub CLI +- `PLAYWRIGHT_BROWSER_INSTRUCTIONS.md` — browser automation +- `VITE_PREVIEW_INSTRUCTIONS.md` — Vite preview server + +## Adding a new tool doc + +```bash +cd /home/user/02-repos/shit_in_a_vault/000-configs/tools +touch NEW_TOOL_INSTRUCTIONS.md +``` + +Include: +- Install location +- Auth status +- Common commands +- Server-specific quirks \ No newline at end of file diff --git a/000-configs/tools/VITE_PREVIEW_INSTRUCTIONS.md b/000-configs/tools/VITE_PREVIEW_INSTRUCTIONS.md new file mode 100644 index 0000000..5b88585 --- /dev/null +++ b/000-configs/tools/VITE_PREVIEW_INSTRUCTIONS.md @@ -0,0 +1,147 @@ +# Vite Preview Instructions for Open WebUI Coding AI + +Use this when the user asks to make a Vite/React app live, visible, public, previewable, or available at the preview URL. + +## Public Preview URL + +The stable public preview URL is: + +```text +https://preview.boogerclub.com +``` + +Caddy on the host already proxies this hostname to the `open-terminal` container on port `5173`: + +```text +preview.boogerclub.com -> open-terminal:5173 +``` + +Do not change the Open WebUI URL. Open WebUI stays at: + +```text +https://openwebui.boogerclub.com +``` + +## Where Apps Live + +Inside the Open WebUI terminal container: + +```text +/home/user/projects +/home/user/repos +``` + +On the host these map to: + +```text +/home/ubuntu/openwebui/projects +/home/ubuntu/repos +``` + +## Start Command + +For a Vite app, run this from the app directory: + +```bash +npm run dev -- --host 0.0.0.0 --port 5173 +``` + +Only one app can use the public preview slot at a time. If port `5173` is already in use, stop the old Vite dev server before starting the new one. + +## Required Vite Host Allowlist + +If the preview URL shows this error: + +```text +Blocked request. This host ("preview.boogerclub.com") is not allowed. +To allow this host, add "preview.boogerclub.com" to `server.allowedHosts` in vite.config.js. +``` + +Add this to `vite.config.ts` or `vite.config.js`: + +```ts +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +export default defineConfig({ + plugins: [react()], + server: { + allowedHosts: ['preview.boogerclub.com'], + }, +}) +``` + +If the config already has a `server` block, add only: + +```ts +allowedHosts: ['preview.boogerclub.com'] +``` + +Then restart Vite with: + +```bash +npm run dev -- --host 0.0.0.0 --port 5173 +``` + +## Verification + +From inside the terminal container, verify Vite is running: + +```bash +curl -I http://127.0.0.1:5173 +``` + +Expected result: + +```text +HTTP/1.1 200 OK +``` + +From the public internet, verify the live preview: + +```bash +curl -I https://preview.boogerclub.com +``` + +Expected result: + +```text +HTTP/2 200 +via: 1.1 Caddy +``` + +Also confirm Open WebUI still works: + +```bash +curl -I https://openwebui.boogerclub.com +``` + +Expected result: + +```text +HTTP/2 200 +``` + +## Common Fixes + +- `502` from `https://preview.boogerclub.com`: Caddy is up, but no Vite server is listening on `open-terminal:5173`. Start the app with the standard command. +- `Blocked request... host is not allowed`: add `preview.boogerclub.com` to `server.allowedHosts` in the app's Vite config and restart Vite. +- App works at `127.0.0.1:5173` but not the public URL: check `allowedHosts`, then check DNS for `preview.boogerclub.com`. +- Open WebUI should not be moved to the preview URL. Keep it on `https://openwebui.boogerclub.com`. + +## Current Known Working Example + +The current working example app is: + +```text +/home/user/projects/candlestick-dashboard +``` + +It is configured with: + +```ts +server: { + allowedHosts: ['preview.boogerclub.com'], +} +``` + diff --git a/000-configs/workspace/.gitkeep b/000-configs/workspace/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/000-shit_admin/dashboard-queries.md b/000-shit_admin/dashboard-queries.md new file mode 100644 index 0000000..6dddb9b --- /dev/null +++ b/000-shit_admin/dashboard-queries.md @@ -0,0 +1,104 @@ +--- +title: "Dashboard Query Block" +status: "active" +folder: "000-shit_admin" +tags: [dashboard, dataview, template] +created: "2026-07-29" +updated: "2026-07-29" +version: "1.0.0" +--- + +# Dataview Query Snippets + +Reusable Dataview blocks. Paste into any note. + +--- + +## Active Tasks + +```dataview +TABLE priority, due, owner +FROM "" +WHERE contains(tags, "task") AND status = "active" +SORT priority ASC, due ASC +``` + +## Today's Daily Note + +```dataview +LIST +FROM "01-logs/daily" +WHERE date = date(today) +``` + +## Recent Edits + +```dataview +LIST +FROM "" +WHERE status != "archive" +SORT updated DESC +LIMIT 10 +``` + +## Recent Archives + +```dataview +LIST +FROM "" +WHERE status = "archive" +SORT updated DESC +LIMIT 10 +``` + +## Inbox Count + +```dataview +LIST +FROM "00-inbox" +WHERE status = "draft" +``` + +## All Handoffs + +```dataview +TABLE from, to, date +FROM "05-handoffs" +SORT updated DESC +``` + +## Research by Tag + +```dataview +LIST +FROM "02-notes" +WHERE contains(tags, "research") +SORT updated DESC +``` + +## Tasks by Owner + +```dataview +TABLE priority, due, status +FROM "" +WHERE contains(tags, "task") AND owner = "stateofshit" +SORT priority ASC +``` + +## Tasks Due Soon + +```dataview +TABLE priority, due, status +FROM "" +WHERE contains(tags, "task") AND status = "active" AND due AND due <= date(today) + dur(7 days) +SORT due ASC +``` + +## Overdue + +```dataview +TABLE priority, due, owner +FROM "" +WHERE contains(tags, "task") AND status = "active" AND due AND due < date(today) +SORT due ASC +``` \ No newline at end of file diff --git a/000-shit_admin/dashboard.md b/000-shit_admin/dashboard.md new file mode 100644 index 0000000..da60b7c --- /dev/null +++ b/000-shit_admin/dashboard.md @@ -0,0 +1,102 @@ +--- +title: "Dashboard" +status: "active" +folder: "000-shit_admin" +tags: [dashboard, home] +created: "2026-07-29" +updated: "2026-07-29" +version: "1.0.0" +--- + +# Dashboard + +> Home for the vault. Dataview pulls live data from frontmatter. + +--- + +## Today + +```dataview +LIST +FROM "01-logs/daily" +WHERE file.day = date(today) +SORT file.day DESC +``` + +## Inbox (untriaged) + +```dataview +LIST +FROM "00-inbox" +WHERE status = "draft" +SORT created DESC +LIMIT 20 +``` + +## Active Tasks + +```dataview +TABLE priority, due, owner +FROM "" +WHERE contains(tags, "task") AND status = "active" +SORT priority ASC, due ASC +``` + +## Recent Logs + +```dataview +LIST +FROM "01-logs" +SORT updated DESC +LIMIT 5 +``` + +## Open Handoffs + +```dataview +LIST +FROM "05-handoffs" +WHERE status = "active" +SORT updated DESC +``` + +## Research WIP + +```dataview +LIST +FROM "02-notes" +WHERE contains(tags, "wip") AND status != "archive" +SORT updated DESC +LIMIT 10 +``` + +## Recently Archived + +```dataview +LIST +FROM "" +WHERE status = "archive" +SORT updated DESC +LIMIT 5 +``` + +--- + +## Quick Folders + +- [[000-shit_admin/README|000-shit_admin]] — your zone +- [[00-inbox/README|00-inbox]] +- [[01-logs/README|01-logs]] +- [[02-notes/README|02-notes]] +- [[03-archive/README|03-archive]] +- [[04-models/README|04-models]] +- [[05-handoffs/README|05-handoffs]] +- [[files/README|files]] +- [[tpl/README|tpl]] + +## Model Docs + +- [[04-models/Vault-Rules]] +- [[04-models/model-boot]] +- [[04-models/model-memory]] +- [[04-models/model-identity]] \ No newline at end of file diff --git a/01-logs/daily/.gitkeep b/01-logs/daily/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/04-models/Vault-Rules.md b/04-models/Vault-Rules.md index 2cbe477..3d8c46b 100644 --- a/04-models/Vault-Rules.md +++ b/04-models/Vault-Rules.md @@ -5,7 +5,8 @@ folder: "04-models" model_owner: "none" tags: [rules, model] created: "2026-07-28" -updated: "2026-07-28" +updated: "2026-07-29" +version: "1.1.0" --- # Vault Rules @@ -24,11 +25,16 @@ folder: "04-models" tags: [tag1, tag2] created: "YYYY-MM-DD" updated: "YYYY-MM-DD" +version: "1.0.0" --- ``` `folder` must match the physical folder this file lives in. `updated` gets bumped on every edit. +`version` follows semver: `major.minor.patch`. + - `major` — rewrite, restructure + - `minor` — new section, new content + - `patch` — typo fix, small edit ## 2. Tags @@ -54,6 +60,7 @@ draft -> active -> archive - Never delete a file. Move to `03-archive` and set `status: "archive"`. - `00-inbox` items should eventually move to `02-notes` or `04-models`. - `01-logs` stay forever (don't archive logs). +- `01-logs/daily/` is auto-managed by Obsidian Daily Notes plugin. Don't manually create files here. ## 4. Linking @@ -65,8 +72,10 @@ draft -> active -> archive | Folder | What Goes There | |---|---| -| `000-admin_shit` | Admin notes, config. User folder — models read-only. | +| `000-shit_admin` | Your zone. Models read-only. | +| `000-configs` | Server/model config docs (mirror of /home/user/000-configs/) | | `00-inbox` | Raw dumps, new ideas, unorganized stuff | +| `01-logs/daily` | Auto daily notes (Obsidian Daily Notes plugin) | | `01-logs` | Session logs, daily notes, timestamps | | `02-notes` | Research notes, findings, reference material | | `03-archive` | Done / superseded files | diff --git a/04-models/model-identity.md b/04-models/model-identity.md new file mode 100644 index 0000000..c40cbc8 --- /dev/null +++ b/04-models/model-identity.md @@ -0,0 +1,37 @@ +--- +title: "Model Identity" +status: "active" +folder: "04-models" +tags: [model, identity] +created: "2026-07-29" +updated: "2026-07-29" +version: "1.0.0" +--- + +# Model Identity + +Each model should fill this in on boot. Helps track who made what. + +| Field | Value | +|---|---| +| Model name | _fill on boot_ | +| Provider | _fill on boot_ | +| Boot date | _fill on boot_ | +| Last active | _fill on boot_ | + +## How To Use + +When a model starts working in this vault, append an entry below: + +```markdown +## Entries + +### YYYY-MM-DD — +- Provider: +- Capabilities: +- Notes: +``` + +## Entries + +_(models append here)_ \ No newline at end of file diff --git a/README.md b/README.md index 217cf79..0ac3dfe 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,61 @@ +--- +title: "shit_in_a_vault" +status: "active" +folder: "" +tags: [readme, home] +created: "2026-07-28" +updated: "2026-07-29" +version: "1.1.0" +--- + # shit_in_a_vault -Obsidian vault for openwebui models + research. +Obsidian vault for openwebui models + research. Private repo. ## Folders | Folder | Purpose | |---|---| -| `000-admin_shit/` | User admin — models read-only | -| `00-inbox/` | Raw dumps, new stuff | -| `01-logs/` | Session logs | -| `02-notes/` | Research notes | -| `03-archive/` | Dead/superseded | -| `04-models/` | Rules, memory, boot prompt | -| `05-handoffs/` | Model handoffs | -| `files/` | Attachments | -| `tpl/` | Templates | +| [[000-shit_admin/]] | Your zone — models read-only | +| [[000-configs/]] | Server/model config docs | +| [[00-inbox/]] | Raw dumps, unprocessed | +| [[01-logs/]] | Session logs | +| [[01-logs/daily/]] | Auto daily notes (Obsidian Daily Notes plugin) | +| [[02-notes/]] | Research notes + tasks | +| [[03-archive/]] | Superseded | +| [[04-models/]] | Rules, memory, boot prompt, model identity | +| [[05-handoffs/]] | Model-to-model handoffs | +| [[files/]] | Attachments | +| [[tpl/]] | Templates | +| [[bin/]] | Helper scripts | ## For Models -Boot: read `04-models/model-boot.md` -Rules: read `04-models/Vault-Rules.md` +Boot: read [[04-models/model-boot]] +Rules: read [[04-models/Vault-Rules]] +Identity: append to [[04-models/model-identity]] + +## For You (Obsidian PC) + +**Required plugins:** +- Daily Notes (built-in, auto-enabled by `.obsidian/core-plugins.json`) +- Templates (built-in) +- Dataview (community) +- Templater (community) + +**Daily note auto-create** — Daily Notes plugin uses: +- Folder: `01-logs/daily` +- Format: `YYYY-MM-DD` +- Template: `tpl/daily.md` + +Already pre-configured in `.obsidian/daily-notes.json`. + +## Dashboard + +[[000-shit_admin/dashboard]] — Dataview-driven home screen. ## Git -`git@github.com:stateofshit/shit_in_a_vault.git` \ No newline at end of file +- Remote: `git@github.com:stateofshit/shit_in_a_vault.git` +- Auth: SSH (`~/.ssh/github_openwebui`) + `gh` CLI +- Default branch: `master` \ No newline at end of file diff --git a/bin/.gitkeep b/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bin/README.md b/bin/README.md new file mode 100644 index 0000000..f334b28 --- /dev/null +++ b/bin/README.md @@ -0,0 +1,23 @@ +--- +title: "bin" +status: "active" +folder: "bin" +tags: [scripts, index] +created: "2026-07-29" +updated: "2026-07-29" +version: "1.0.0" +--- + +# bin + +Helper shell scripts. + +## Current + +- [[daily.sh]] — auto-create today's daily note from `tpl/daily.md`. Run from cron on the main server, not from openwebui. + +## Adding a script + +- Filename: `snake_case.sh` +- Must be executable (`chmod +x`) +- Add to this README \ No newline at end of file diff --git a/bin/daily.sh b/bin/daily.sh new file mode 100755 index 0000000..30d21d7 --- /dev/null +++ b/bin/daily.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# bin/daily.sh — auto-create today's daily note from template +# Cron: 0 6 * * * /home/user/02-repos/shit_in_a_vault/bin/daily.sh + +VAULT="/home/user/02-repos/shit_in_a_vault" +TPL="$VAULT/tpl/daily.md" +DEST_DIR="$VAULT/01-logs/daily" +DEST="$DEST_DIR/$(date +%Y-%m-%d).md" +DATE_STR=$(date +%Y-%m-%d) +YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) + +mkdir -p "$DEST_DIR" + +if [ -f "$DEST" ]; then + echo "Daily note $DEST already exists, skipping." + exit 0 +fi + +if [ ! -f "$TPL" ]; then + echo "Template not found: $TPL" >&2 + exit 1 +fi + +# Substitute {{date:YYYY-MM-DD}} and {{date:}} placeholders +sed -e "s|{{date:YYYY-MM-DD}}|$DATE_STR|g" \ + -e "s|{{date:}}|$DATE_STR|g" \ + -e "s|{{yesterday:YYYY-MM-DD}}|$YESTERDAY|g" \ + "$TPL" > "$DEST" + +echo "Created: $DEST" + +# Commit and push +cd "$VAULT" || exit 1 +git add "$DEST" +if git diff --cached --quiet; then + echo "Nothing to commit." + exit 0 +fi +git commit -m "daily: $DATE_STR" && git push diff --git a/tpl/daily.md b/tpl/daily.md new file mode 100644 index 0000000..dc9831e --- /dev/null +++ b/tpl/daily.md @@ -0,0 +1,37 @@ +--- +title: "{{date:YYYY-MM-DD}}" +status: "active" +folder: "01-logs/daily" +tags: [log, daily] +created: "{{date:YYYY-MM-DD}}" +updated: "{{date:YYYY-MM-DD}}" +version: "1.0.0" +date: {{date:YYYY-MM-DD}} +--- + +# {{date:YYYY-MM-DD}} + +## Agenda + +- + +## Notes + +- + +## Tasks Done + +- [ ] + +## Tasks Tomorrow + +- [ ] + +## Links + +- [[dashboard]] +- [[{{yesterday:YYYY-MM-DD}}]] (yesterday) + +## Handoff + +- Active: `[[05-handoffs/...]]` \ No newline at end of file diff --git a/tpl/handoff.md b/tpl/handoff.md new file mode 100644 index 0000000..a84fa64 --- /dev/null +++ b/tpl/handoff.md @@ -0,0 +1,38 @@ +--- +title: "Handoff: {{from}} → {{to}}" +status: "active" +folder: "05-handoffs" +tags: [handoff] +created: "{{date:YYYY-MM-DD}}" +updated: "{{date:YYYY-MM-DD}}" +version: "1.0.0" +from: "{{from}}" +to: "{{to}}" +--- + +# Handoff: {{from}} → {{to}} + +## Source + +`[[04-models/...]]` + +## Context + +- What was being worked on +- What got done +- What's left + +## Next Steps + +1. +2. +3. + +## Open Questions + +- + +## Files Touched + +- [ ] +- [ ] \ No newline at end of file diff --git a/tpl/research.md b/tpl/research.md new file mode 100644 index 0000000..0fbdd59 --- /dev/null +++ b/tpl/research.md @@ -0,0 +1,39 @@ +--- +title: "Research: {{topic}}" +status: "draft" +folder: "02-notes" +tags: [research, wip] +created: "{{date:YYYY-MM-DD}}" +updated: "{{date:YYYY-MM-DD}}" +version: "1.0.0" +--- + +# Research: {{topic}} + +## Question + +> What are we trying to find out? + +## Sources + +- [ ] + +## Findings + +- + +## Open Questions + +- [ ] + +## Related + +- [[]] + +## Status + +- [ ] Drafting +- [ ] Sources cited +- [ ] Findings written +- [ ] Reviewed +- [ ] Archived \ No newline at end of file diff --git a/tpl/task.md b/tpl/task.md new file mode 100644 index 0000000..46914be --- /dev/null +++ b/tpl/task.md @@ -0,0 +1,30 @@ +--- +title: "Task: {{title}}" +status: "active" +folder: "02-notes" +tags: [task, wip] +created: "{{date:YYYY-MM-DD}}" +updated: "{{date:YYYY-MM-DD}}" +version: "1.0.0" +priority: "med" +due: "{{date:YYYY-MM-DD}}" +owner: "stateofshit" +--- + +# Task: {{title}} + +## Description + +## Steps + +- [ ] + +## Notes + +## Related + +- [[]] + +## Done When + +- [ ] \ No newline at end of file