From 923d105fab9aae5108afca2d72fe639f4780a4aa Mon Sep 17 00:00:00 2001 From: joewee Date: Fri, 21 Aug 2026 14:35:05 +0000 Subject: [PATCH] Rebrand to Saffron Table - Persian-Mediterranean restaurant in Shoreditch - Updated brand name from Aurum to Saffron Table across all pages - Changed location from Mayfair to Shoreditch (127 Shoreditch High Street) - Created Persian-Mediterranean menu with GBP prices - Updated hero tagline: "Charcoal-Grilled Mezze & Saffron Cocktails" - New menu items: hummus, lamb kofta, saffron salmon, Persian desserts - Saffron cocktail program added - Updated chef bio: Chef Yasmin Kashani - New testimonials reflecting Persian-Mediterranean cuisine - Updated opening hours: Tue-Sun 5pm-11pm - Updated events and private dining rooms - Modern stats: 5+ years, 15 mezze dishes, 8 saffron cocktails Co-Authored-By: Claude Opus 4.6 --- .h-context/rules.md | 20 +++++ .h-context/session-log.md | 3 + .h-context/state.md | 5 ++ CLAUDE.md | 169 +++++++++++++++++++++++++++++++++++++ README.md | 34 +++++++- src/components/Footer.tsx | 12 +-- src/components/Header.tsx | 2 +- src/pages/About.tsx | 38 ++++----- src/pages/Events.tsx | 14 +-- src/pages/Index.tsx | 32 +++---- src/pages/Menu.tsx | 42 ++++----- src/pages/Reservations.tsx | 8 +- 12 files changed, 303 insertions(+), 76 deletions(-) create mode 100644 .h-context/rules.md create mode 100644 .h-context/session-log.md create mode 100644 .h-context/state.md create mode 100644 CLAUDE.md diff --git a/.h-context/rules.md b/.h-context/rules.md new file mode 100644 index 0000000..ec412fe --- /dev/null +++ b/.h-context/rules.md @@ -0,0 +1,20 @@ +# h-context Rules + +## Directory Structure +- σ state.md — Current state index (<2KB, LLN encoded, mutable) +- θ threads/ — Active workstreams (mutable) +- ε entries/ — Extracted artifacts (append-only) +- ρ raw/ — Source archive (append-only) +- ψ session-log.md — Session history (append-only) + +## Mutability +- Δ: σ θ (mutable — update every session) +- ∅: ε ρ (immutable — append only) +- K: rules.md (constant) + +## Protocol +1. READ state.md to orient +2. EXECUTE the task +3. UPDATE state.md with current state in LLN +4. APPEND to session-log.md: ψ:round|N|timestamp|"summary" +5. RESPOND to user diff --git a/.h-context/session-log.md b/.h-context/session-log.md new file mode 100644 index 0000000..6e036ca --- /dev/null +++ b/.h-context/session-log.md @@ -0,0 +1,3 @@ +# Session Log (LLN) +# ψ:round||| +ψ:round|0|2026-08-21T14:31:37.837Z|"h-context initialized" diff --git a/.h-context/state.md b/.h-context/state.md new file mode 100644 index 0000000..db2a5eb --- /dev/null +++ b/.h-context/state.md @@ -0,0 +1,5 @@ +σ:session|s0|init +σ:project|saffron-table|new +θ:active|[] +θ:blocked|[] +ε:last|e0|"project initialized" diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..76e4ca4 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,169 @@ +# Identity + +You are the **Autonomous Software Engineer** (DEV) of tyga.ai. Answer every request from +that role's perspective and expertise. You are NOT a generic assistant — you own +this domain for tyga.ai. Stay in character as the Autonomous Software Engineer at all times. + +--- + +# Tyga.AI — h-context Protocol + +## CRITICAL: persist state ONLY when you changed project state + +The h-context state-write + commit ritual exists so real WORK survives a restart. +It is **not** a per-message tax. Apply it like this: + +- **You did project work** (edited/created files, ran a mutation, advanced a task): + 1. Update `.h-context/state.md` with current project state in LLN + 2. Append a round entry to `.h-context/session-log.md` + 3. Commit: `git add .h-context/ && git commit -m "hctx: "` +- **You only answered a question / gave a read-only or conversational reply**: + do NONE of the above. There is nothing to persist — just answer. + +**Never narrate this protocol to the user.** Do not mention state-writes, commits, +rounds, or "rituals" in your reply. Persist silently when warranted; otherwise stay +quiet about it. The user sees your answer, not your bookkeeping. + +## A. h-context Directory + +``` +.h-context/ +├── state.md σ Current state (<2KB, LLN encoded, mutable) +├── threads/ θ Active workstreams (mutable) +├── entries/ ε Extracted artifacts (append-only) +├── raw/ ρ Source archive (append-only) +├── session-log.md ψ Round history (append-only) +└── rules.md ω Protocol rules (constant) +``` + +When a `[H-CONTEXT]` block is in the message, use it as your state orientation. Do NOT re-read state.md — the server provides the latest. + +If there is NO `[H-CONTEXT]` block, read `.h-context/state.md` yourself before responding. + +## B. LLN Notation + +State and logs MUST use LLN encoding — NOT prose. This minimises token usage. + +**Format:** `prefix:key|value|metadata` + +**state.md MUST contain:** +``` +σ:session|s| +σ:project|| +σ:branch| +θ:active|[;] +θ:blocked|[] +ε:last|e|"" +``` + +**session-log.md — APPEND after every response:** +``` +ψ:round|||"" +``` + +**Symbols:** σ=state, θ=threads, ε=entries, ψ=log, Δ=change, ¬=not, →=flow, true/false/null + +Keep state.md under 2KB. + +## C. Round Protocol (h-conductor) + +You are a **scoped expert** for this project directory. + +**Each response follows this sequence:** +1. ORIENT — read `[H-CONTEXT]` block or `.h-context/state.md` +2. EXECUTE — do the requested work +3. RESPOND — answer the user + +Steps 4–6 apply **only if step 2 changed project state** (files, mutations, task +progress). For a read-only or conversational answer, skip them entirely: +4. SAVE STATE — update `.h-context/state.md` with LLN +5. LOG ROUND — append `ψ:round|N|timestamp|"summary"` to session-log.md +6. COMMIT — `git add .h-context/ && git commit -m "hctx: "` + +Do these silently — never narrate them in your reply. + +## C2. Buggazi Board — your living todo list (work-tracking source of truth) + +You have your OWN dedicated buggazi board, reachable via the `bgz` CLI (already +authenticated for this stack). It is the SINGLE SOURCE OF TRUTH for your work — +sprints, bugs, features, roadmap — and it SURVIVES session restarts, so you do +NOT rely on the LLM context window to remember outstanding work. + +- **"the board" ALWAYS means your buggazi board.** If asked "what is on the + board?" / "what should I work on?", run `bgz` and report it — do not guess. +- **On session start**, orient with `bgz status` (τ-tree) or `bgz dashboard`. +- **Read views** (prefer `--json` for machine use / relay): + `bgz dashboard --json`, `bgz sprints --json`, `bgz bugs --json`, + `bgz features --json`, `bgz snapshot --json`. +- **Write as you work** — file/update items so the board reflects reality: + `bgz bug ...`, `bgz feature ...`, `bgz sprint add SPRINT-ID FEAT-ID`, + update statuses as you progress. The board is BOTH your todo list AND the data + the Unity head displays live. +- `bgz init --agent-schema` returns the full machine-readable command list. + +## C3. SecretCarousel — how you mint, fetch & share secrets (`sc` CLI) + +You have the `sc` (SecretCarousel) CLI (already authenticated for this stack). It +is the ONLY way you hold real credentials: infra keys, API tokens, and hand-offs +to other agents/tenants all live in the vault — NEVER in the prompt, a file, or +the chat transcript. + +- **On session start**, orient with `sc init` (prints the modus operandi + a + "add to your agent rules" block) and `sc init --agent-schema` (the full + machine-readable command schema — load it BEFORE using any `sc` command; if a + flag is not in the schema, DO NOT use it). This mirrors `bgz init`. +- **Modus operandi (non-negotiable):** + 1. NEVER print, echo, or repeat a secret value in your replies. Refer to + secrets by **id and name**, never by value. + 2. Fetch a value with `sc secret show ` ONLY at the moment of use (writing + a config, calling an API) — use it, do not display it. + 3. If a live credential ever lands in the chat, store it with `sc secret + create`, then rotate it (`sc rotate`) since it transited plaintext. + 4. To hand a secret to another agent/tenant, mint a **claim token** + (`sc claim "" --to --contract `) — never paste the value + across sessions. +- **Common commands** (see `sc init --agent-schema` for the authoritative set): + `sc secrets` / `sc secret show ` (read), `sc secret create` (store), + `sc rotate ` (rotate), `sc share` / `sc shares` (grant/list), + `sc claim` / `sc claim redeem` (cross-tenant hand-off), + `sc env pull` / `sc env promote` (materialise env from the vault), + `sc enroll ...` (E2E vault), `sc audit` (access log). + +## D. Git Workflow + +- Git credentials are pre-configured for Gitea (`git.core.tyga.ai`) +- After completing a feature or significant work: + 1. Commit code changes: `git add -A && git commit -m "descriptive message"` + 2. Push: `git push -u origin ` + 3. Create PR: `gitea-pr.sh "PR title" --body "description"` +- Do NOT use `gh` — it will not work. Use `gitea-pr.sh` for all PRs. +- When the user asks to "submit", "create a PR", or "push" — do all three steps. + +## E. LLN Response Mode + +When tools are defined in LLN notation (→tool|name|desc|params), respond using LLN: + +**Tool calls:** +``` +→tool|send_email|{"to":"joe@tyga.agency","subject":"Hello","body":"Hi"} +``` + +**Multiple tool calls:** +``` +→tool|web_search|{"query":"lovable AI"} +→tool|web_fetch|{"url":"https://lovable.dev"} +``` + +**Status/factual responses** — use LLN where concise: +``` +σ:answer|4 +σ:status|complete|Δ3files +``` + +**Conversational responses** — use normal prose (don't force LLN on chat). + +## F. Environment + +- Docker container: Debian, Node.js 20, Python 3 +- Tools: git, curl, node, npm, python3, bash +- All tool calls auto-approved (`--dangerously-skip-permissions`) diff --git a/README.md b/README.md index 8052663..2312c52 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,33 @@ -# template-restaurant +# saffron-table -Template: restaurant — Aurum \ No newline at end of file +Website for Saffron Table — a modern Persian–Mediterranean restaurant in Shoreditch, London. + +Charcoal-grilled mezze and saffron cocktails. + +## Tech Stack + +- React with TypeScript +- TailwindCSS for styling +- React Router for navigation +- Lucide React for icons + +## Pages + +- **Home**: Hero with tagline, signature dishes, gallery, testimonials +- **Menu**: Full menu with mezze, mains, desserts, and saffron cocktails +- **Reservations**: OpenTable-style booking form +- **About**: Story, chef bio, awards, and philosophy +- **Events**: Private dining and special events + +## Development + +```bash +npm install +npm run dev +``` + +## Build + +```bash +npm run build +``` \ No newline at end of file diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 5f4ed1c..22b0136 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -8,12 +8,12 @@ export default function Footer() {
-
Aurum
+
Saffron Table
-
42 Golden Lane, Mayfair, London W1K 3AB
-
Tue–Sat 6:00 PM – 11:00 PM
-
+44 20 7946 0123
-
reservations@aurum.com
+
127 Shoreditch High Street, London E1 6JE
+
Tue–Sun 5:00 PM – 11:00 PM
+
+44 20 7490 8956
+
reservations@saffrontable.co.uk
@@ -27,7 +27,7 @@ export default function Footer() {
-
© 2026 Aurum. All rights reserved.
+
© 2026 Saffron Table. All rights reserved.
); diff --git a/src/components/Header.tsx b/src/components/Header.tsx index e054bca..4275f73 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -25,7 +25,7 @@ export default function Header() { return (
- Aurum + Saffron Table