sync: auto-sync from GURU-5070 at 2026-06-15 09:41:53

Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-15 09:41:53
This commit is contained in:
2026-06-15 09:42:15 -07:00
parent 153be4abec
commit dc5c09b40b
26 changed files with 537 additions and 13 deletions

View File

@@ -10,6 +10,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Lexend:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500;600;700&family=Fraunces:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=Anton&family=Hanken+Grotesk:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="icon" href="assets/logo/acg-mark.svg" type="image/svg+xml" />
<script>(function(){try{var s=localStorage.getItem("acg-theme");var m=s||(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light");document.documentElement.setAttribute("data-theme",m);document.documentElement.setAttribute("data-skin",(localStorage.getItem("acg-skin")||"ledger"));document.documentElement.classList.add("js");}catch(e){}})();</script>
</head>
<body>
@@ -17,7 +18,7 @@
<header class="site-header">
<div class="wrap">
<a class="brand" href="index.html" aria-label="Arizona Computer Guru home">
<span class="brand__mark" aria-hidden="true">ACG</span>
<span class="brand__mark" aria-hidden="true"><svg viewBox="0 0 100 104" fill="none" stroke="currentColor" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(20 50 54)"><path d="M61.2 26.2 A30 30 0 1 1 38.8 26.2"/><line x1="50" y1="14" x2="50" y2="50"/></g></svg></span>
<span><span class="brand__name">Arizona Computer Guru</span><br /><span class="brand__since">Concierge IT &middot; Tucson &middot; since 2001</span></span>
</a>
<nav class="nav" aria-label="Primary">

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 104" role="img" aria-label="Arizona Computer Guru">
<g transform="rotate(20 50 54)" fill="none" stroke="#F2922E" stroke-width="11" stroke-linecap="round" stroke-linejoin="round">
<path d="M61.2 26.2 A30 30 0 1 1 38.8 26.2" />
<line x1="50" y1="14" x2="50" y2="50" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 348 B

View File

@@ -10,6 +10,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Lexend:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500;600;700&family=Fraunces:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=Anton&family=Hanken+Grotesk:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="icon" href="assets/logo/acg-mark.svg" type="image/svg+xml" />
<script>(function(){try{var s=localStorage.getItem("acg-theme");var m=s||(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light");document.documentElement.setAttribute("data-theme",m);document.documentElement.setAttribute("data-skin",(localStorage.getItem("acg-skin")||"ledger"));document.documentElement.classList.add("js");}catch(e){}})();</script>
</head>
<body>
@@ -17,7 +18,7 @@
<header class="site-header">
<div class="wrap">
<a class="brand" href="index.html" aria-label="Arizona Computer Guru home">
<span class="brand__mark" aria-hidden="true">ACG</span>
<span class="brand__mark" aria-hidden="true"><svg viewBox="0 0 100 104" fill="none" stroke="currentColor" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(20 50 54)"><path d="M61.2 26.2 A30 30 0 1 1 38.8 26.2"/><line x1="50" y1="14" x2="50" y2="50"/></g></svg></span>
<span><span class="brand__name">Arizona Computer Guru</span><br /><span class="brand__since">Concierge IT &middot; Tucson &middot; since 2001</span></span>
</a>
<nav class="nav" aria-label="Primary">

View File

@@ -10,6 +10,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Lexend:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500;600;700&family=Fraunces:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=Anton&family=Hanken+Grotesk:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="icon" href="assets/logo/acg-mark.svg" type="image/svg+xml" />
<script>(function(){try{var s=localStorage.getItem("acg-theme");var m=s||(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light");document.documentElement.setAttribute("data-theme",m);document.documentElement.setAttribute("data-skin",(localStorage.getItem("acg-skin")||"ledger"));document.documentElement.classList.add("js");}catch(e){}})();</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"LocalBusiness","name":"Arizona Computer Guru","image":"assets/images/contact.png","address":{"@type":"PostalAddress","streetAddress":"7437 E. 22nd St","addressLocality":"Tucson","addressRegion":"AZ","postalCode":"85710","addressCountry":"US"},"telephone":"+1-520-304-8300","email":"info@azcomputerguru.com","url":"https://azcomputerguru.com","openingHours":"Mo-Fr 09:00-17:00"}
@@ -20,7 +21,7 @@
<header class="site-header">
<div class="wrap">
<a class="brand" href="index.html" aria-label="Arizona Computer Guru home">
<span class="brand__mark" aria-hidden="true">ACG</span>
<span class="brand__mark" aria-hidden="true"><svg viewBox="0 0 100 104" fill="none" stroke="currentColor" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(20 50 54)"><path d="M61.2 26.2 A30 30 0 1 1 38.8 26.2"/><line x1="50" y1="14" x2="50" y2="50"/></g></svg></span>
<span><span class="brand__name">Arizona Computer Guru</span><br /><span class="brand__since">Concierge IT &middot; Tucson &middot; since 2001</span></span>
</a>
<nav class="nav" aria-label="Primary">

View File

@@ -297,11 +297,11 @@ h3 { font-size: 1.5rem; font-weight: 600; }
.site-header .wrap { display: flex; align-items: center; gap: 1.5rem;
min-height: calc(var(--base) * 3); }
.brand { display: flex; align-items: baseline; gap: 0.6rem; text-decoration: none; color: var(--ink); }
.brand__mark { /* CSS-drawn monogram, not an image icon */
font-family: var(--f-display); font-weight: 700; font-size: 1.05rem;
letter-spacing: 0.05em; color: var(--on-accent); background: var(--accent);
padding: 0.15rem 0.5rem; border-radius: 2px; align-self: center;
.brand__mark { /* official ACG "G" askew-power-symbol mark; tints to the active skin accent */
display: inline-flex; align-items: center; align-self: center;
color: var(--accent); line-height: 0;
}
.brand__mark svg { width: 34px; height: 35px; }
.brand__name { font-family: var(--f-display); font-weight: 600; font-size: 1.35rem;
letter-spacing: 0.005em; }
.brand__since { font-family: var(--f-mono); font-size: 0.66rem; letter-spacing: 0.18em;

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -10,6 +10,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Lexend:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500;600;700&family=Fraunces:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=Anton&family=Hanken+Grotesk:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="icon" href="assets/logo/acg-mark.svg" type="image/svg+xml" />
<script>
(function () { try {
var s = localStorage.getItem("acg-theme");
@@ -27,7 +28,7 @@
<header class="site-header">
<div class="wrap">
<a class="brand" href="index.html" aria-label="Arizona Computer Guru home">
<span class="brand__mark" aria-hidden="true">ACG</span>
<span class="brand__mark" aria-hidden="true"><svg viewBox="0 0 100 104" fill="none" stroke="currentColor" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(20 50 54)"><path d="M61.2 26.2 A30 30 0 1 1 38.8 26.2"/><line x1="50" y1="14" x2="50" y2="50"/></g></svg></span>
<span>
<span class="brand__name">Arizona Computer Guru</span><br />
<span class="brand__since">Concierge IT &middot; Tucson &middot; since 2001</span>

View File

@@ -10,6 +10,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Lexend:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500;600;700&family=Fraunces:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=Anton&family=Hanken+Grotesk:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="icon" href="assets/logo/acg-mark.svg" type="image/svg+xml" />
<script>(function(){try{var s=localStorage.getItem("acg-theme");var m=s||(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light");document.documentElement.setAttribute("data-theme",m);document.documentElement.setAttribute("data-skin",(localStorage.getItem("acg-skin")||"ledger"));document.documentElement.classList.add("js");}catch(e){}})();</script>
</head>
<body>
@@ -17,7 +18,7 @@
<header class="site-header">
<div class="wrap">
<a class="brand" href="index.html" aria-label="Arizona Computer Guru home">
<span class="brand__mark" aria-hidden="true">ACG</span>
<span class="brand__mark" aria-hidden="true"><svg viewBox="0 0 100 104" fill="none" stroke="currentColor" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(20 50 54)"><path d="M61.2 26.2 A30 30 0 1 1 38.8 26.2"/><line x1="50" y1="14" x2="50" y2="50"/></g></svg></span>
<span><span class="brand__name">Arizona Computer Guru</span><br /><span class="brand__since">Concierge IT &middot; Tucson &middot; since 2001</span></span>
</a>
<nav class="nav" aria-label="Primary">

View File

@@ -10,6 +10,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Anton&family=Hanken+Grotesk:wght@400;500;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/radical.css" />
<link rel="icon" href="assets/logo/acg-mark.svg" type="image/svg+xml" />
</head>
<body>
<a href="#main" class="sr-only">Skip to content</a>

View File

@@ -10,6 +10,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Lexend:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500;600;700&family=Fraunces:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=Anton&family=Hanken+Grotesk:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="icon" href="assets/logo/acg-mark.svg" type="image/svg+xml" />
<script>(function(){try{var s=localStorage.getItem("acg-theme");var m=s||(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light");document.documentElement.setAttribute("data-theme",m);document.documentElement.setAttribute("data-skin",(localStorage.getItem("acg-skin")||"ledger"));document.documentElement.classList.add("js");}catch(e){}})();</script>
</head>
<body>
@@ -17,7 +18,7 @@
<header class="site-header">
<div class="wrap">
<a class="brand" href="index.html" aria-label="Arizona Computer Guru home">
<span class="brand__mark" aria-hidden="true">ACG</span>
<span class="brand__mark" aria-hidden="true"><svg viewBox="0 0 100 104" fill="none" stroke="currentColor" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(20 50 54)"><path d="M61.2 26.2 A30 30 0 1 1 38.8 26.2"/><line x1="50" y1="14" x2="50" y2="50"/></g></svg></span>
<span><span class="brand__name">Arizona Computer Guru</span><br /><span class="brand__since">Concierge IT &middot; Tucson &middot; since 2001</span></span>
</a>
<nav class="nav" aria-label="Primary">

View File

@@ -213,3 +213,53 @@ still computes $952/mo; `node --check js/app.js` clean.
State: multipage 4-skin switcher (Paper / Midnight / Verdigris / Bold) at :4328, all in
light+dark. Bold is the dialed-back-then-premium-softened radical. Open: Mike to confirm
Bold is the keeper, or pick among the four skins for the real azcomputerguru.com redesign.
## Update: 09:41 PT (2026-06-15) — logo mark, errorlog skill fixes, Graphifyy eval
Three workstreams after the Bold-skin softening.
**1. Official ACG logo (partial).** Mike supplied the official wordmark ("Arizona ComputerGuru",
the "G" = an askew power symbol) and noted the short logo is just that stylized G. Hand-built the
short mark as a faithful SVG (`multipage/assets/logo/acg-mark.svg`, askew power symbol), wired it
as the header brand mark (tints to each skin's accent via currentColor) + favicon across all 6
multipage pages + radical.html. NOT done: the full wordmark — it's an exact brand asset with
custom type; can't save Mike's pasted raster from here and AI-recreation would be off-brand, so
the real file needs to be dropped into `multipage/assets/logo/` (color + a white/knockout for dark
skins). Open design choice for Mike: official fixed wordmark sitewide vs. keep the per-skin
adaptive lockup.
**2. errorlog review -> skill hardening.** 4 entries: #2 (py-on-Linux) + #3 ($CLAUDETOOLS_ROOT)
already resolved on this machine; #4 (sync.sh submodule abort) fixed upstream by the GURU-BEAST-ROG
coord broadcast (resolve_submodule_collisions; lands on next pull here). #1 (mailbox/FABB) was the
open one: app `fabb3421` is DELETED (AADSTS700016), and it held the only Mail.Send/ReadWrite/
Contacts scopes -> `/mailbox` + M365 contacts blocked, and the 3 legacy "old app only" tenants
(Valleywide/Dataforth/Cascades) now have NO working remediation app. Hardened the docs:
`gotchas.md` (DELETED + blast radius + URGENT migration), `mailbox.md` (BLOCKED/AADSTS700016
banner), `errorlog.md`. **Mike's decision:** Mail.Send belongs in the SUITE (real use = IR
victim-notification during box takeovers) -> add Mail.Send to the **Exchange Operator** tier;
implementation NOT executed (production multi-tenant app change, needs go + admin-consent). Also
surfaced 2 stale for-mike.md items: Intune Manager needs signInAudience->AzureADMultipleOrgs PATCH
(unblocks Cascades MDM); Mike's per-user Syncro key.
**3. Graphifyy vs GrepAI evaluation (`projects/graphifyy-eval/`).** Question: adopt Graphifyy
(getzep-style code+doc knowledge graph, `safishamsi/graphify`, PyPI `graphifyy`) for day-to-day?
Built a 3-arm protocol (A=GrepAI, B=Graphifyy, C=control) with a 10-query test set + rubric.
- Arm A (GrepAI): 18/20, ~3k ctx tokens/query, already indexed. 2 misses: phrasing-sensitivity
(C1) and stale-duplicate retrieval (D2 pulled superseded kittle-design).
- Arm B (Graphifyy): code extraction = AST (instant/free/local, but redundant with GrepAI).
Doc/non-code = generative LLM per chunk. Local ollama (apples-to-apples, since GrepAI uses
ollama embeddings) was IMPRACTICAL: qwen3:8b DNF 20 files/10min ("too small for JSON"),
codestral:22b got 1 of 2 chunks on 3 files/6min. Claude backend (vault gururmm anthropic key,
~$0.20 real spend) WORKED: 3 docs in 120s, but graphify reported ~$0.068/doc (recurring on an
active repo), and the decisive finding: `graphify query` returns the concept/relationship MAP,
NOT the content values (the prices were absent) -> you still Read the file for facts. GrepAI
returns content directly.
- **Verdict: keep GrepAI, do not adopt Graphifyy.** Cheap part duplicates GrepAI; unique part
(doc/relationship graph) is impractical local / costs recurring $ cloud / hands a map not facts.
Revisit only with GPU+fast local generative model, or a recurring architecture-relationship
need worth a metered ingest budget. Full writeup: `projects/graphifyy-eval/FINDINGS.md`.
- Cleanup done: GrepAI re-enabled in settings.local.json; graphifyy + openai uninstalled
(anthropic kept); scratch graphs deleted; PROTOCOL/results/FINDINGS retained.
Note: untracked discord-dm skill/command/scripts + 2 feedback memories present in the tree are
fleet additions (not this session's work); auto-sync sweeps them.