Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
024e932
docs(claude): add voice for user-facing copy + UX Core canonical guard
manager May 20, 2026
7154d46
Merge remote-tracking branch 'origin/dev' into feat/uxcore-cybersec
manager May 20, 2026
7e745f4
fix(widget): narrow panel on laptop viewports (481–1280px)
manager May 20, 2026
b86f224
feat(uxcore): add Offensive Cybersecurity use-case switch (scaffold)
manager May 20, 2026
5e1af18
feat(uxcore): finish OffSec button — Hexens logo, attached block, sna…
manager May 20, 2026
5e1a79a
fix(uxcore): widen Cybersecurity button to 160.94px
manager May 20, 2026
09e3ff7
fix(uxcore): match Cybersecurity button width to PM+HR strip (158px)
manager May 20, 2026
158ec01
feat(uxcore): vertical Use cases panel — three same-width stacked rows
manager May 20, 2026
39eb53b
fix(uxcore): align View type to Use cases, OFFSEC caps, dark mode
manager May 20, 2026
a174a85
fix(uxcore): widen View type on small screens; Hexens follows theme
manager May 20, 2026
8bd5885
fix(uxcore): View type wide override needs chained selector to win
manager May 20, 2026
f27db9f
fix(uxcore): drop Use cases below View type column; kill scrollbar line
manager May 20, 2026
d4da2ae
feat(uxcore): Offensive Cybersecurity content for Availability Heuris…
manager May 20, 2026
3699aba
fix(uxcore): strip unsourced numbers from OffSec example
manager May 20, 2026
b990dba
fix(uxcore): rename "Example of use by team" → "Examples of use"
manager May 20, 2026
31c417f
fix(uxcore): smooth content swap when toggling PM / HR / OffSec
manager May 20, 2026
a810cde
fix(uxcore): clear PM/HR selection state when OffSec view active
manager May 21, 2026
e358b2d
fix(uxcore): lift ToolHeader above page chrome so language dropdown c…
manager May 21, 2026
0a45c5d
fix(uxcore): tighten OffSec block — cut noise, deepen defender
manager May 21, 2026
c4cb2c4
fix(uxcore): make OffSec use-case row declickable
manager May 21, 2026
cefdac2
fix(uxcore): hide PM/HR visual-example block when OffSec view is active
manager May 21, 2026
40b7d2b
fix(uxcore): fold Scenario into Same-payload block; drop Hexens mark …
manager May 21, 2026
e3791b1
fix(uxcore): sharpen OffSec countermeasures — IOC promotion + posture…
manager May 21, 2026
ed1cc9d
fix(uxcore): re-frame OffSec countermeasures from blue-team to indivi…
manager May 21, 2026
a730041
fix(uxcore): simplify scenario copy; make OffSec cards look like actu…
manager May 21, 2026
5c89978
feat(theme): extract one shared ThemeToggle; use it in site header an…
manager May 21, 2026
c035de5
fix(uxcore): mirror Scenario corner-bracket frame onto Why-it-works b…
manager May 21, 2026
5f73211
fix(uxcore): single-click switch from OffSec back to PM/HR in bias modal
manager May 21, 2026
afe6bba
fix(uxcore): lock OffSec voice to second-person across all three blocks
manager May 21, 2026
4b7e278
fix(uxcore): tighten Protect-yourself lede — your homework framing
manager May 21, 2026
fb29416
feat(uxcore): add kemmio co-author credit + bio popup at the foot of …
manager May 21, 2026
14448f3
feat(ai-atlas): tighten Multimove satellite cluster; add SeoGeoSolver…
manager May 21, 2026
7d873c2
fix(uxcore): kemmio popup — real AM flag, tagline, clickable Hexens, …
manager May 21, 2026
9543949
fix(ai-atlas): pull SeoGeoSolver into Multimove cluster; uniform clau…
manager May 21, 2026
93c600e
fix(ai-atlas): drop "Welcome to" prefix from the atlas header banner
manager May 21, 2026
527d5c7
feat(uxcore): OffSec examples for biases #2 (attentional) and #3 (ill…
manager May 21, 2026
a98c02d
fix(uxcore): diversify OffSec surfaces — bias #2 now notifications, #…
manager May 21, 2026
7c149f8
feat(uxcore): real Hexens logo + merge OffSec into PM/HR tab strip
manager May 22, 2026
4b10480
fix(uxcore): redraw Hexens mark as crisp SVG (kill blurry 16px PNG)
manager May 22, 2026
87fb099
fix(uxcore): invert Our Projects icons in dark mode
manager May 22, 2026
89ad5ea
fix(uxcore): make attentional-bias 'quiet ask' read as an email
manager May 22, 2026
618cb1a
fix(uxcore): availability bias now renders as browser tab, not email
manager May 22, 2026
f738082
chore(claude-md): adopt Karpathy's 4 coding rules
manager May 23, 2026
453d8fb
chore: gitignore /attachments/ (wolfs-terminal session drops)
manager May 23, 2026
4dfa55e
chore(atlas): update lead-seogeosolved static line count 148 -> 142
manager May 23, 2026
9b5e3ad
Merge remote-tracking branch 'origin/dev' into feat/uxcore-cybersec
manager May 27, 2026
ac4a72e
docs: refresh CLAUDE.md and add 2026-05-25 staging-to-prod notes
manager May 27, 2026
2989f6a
feat(ai-atlas): flip KeepSimple eng lead to AI agent (blue diamond)
manager May 27, 2026
c982b56
feat(ai-atlas): support a second engineering lead per project
manager May 27, 2026
305749e
chore(ai-atlas): seed lead-keepsimple claudeMdLines fallback
manager May 27, 2026
54558f8
fix(widget): never auto-engage on page load — open + flash require us…
manager May 27, 2026
168f168
feat(admin/copilot-sessions): add Typed? column for user-text sessions
manager May 27, 2026
c798059
chore(uxcore): drop stale toggleIsProductView prop and remove staging…
manager May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
.idea/
.codex

# Wolf's-terminal session attachments (screenshots Wolf drops in mid-chat).
# Local-only — never commit.
/attachments/

# Logs
logs
*.log
Expand Down
37 changes: 26 additions & 11 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,34 @@
# CLAUDE.md — keepsimple-merged (for Claude Code agents)
# CLAUDE.md — keepsimple (for Claude Code agents)

This file is loaded by Claude Code at session start. Human-readable agent guidelines live in `AGENTS.md` next to it; this file is the machine-facing version.
> **Global rules apply.** Communication style + Agent Directory routing live in `~/.claude/CLAUDE.md` — read that first. This project participates in the directory; use `/send-to` to ask peers.

MemPalace wing: `keepsimple` (protocol lives in `~/.claude/CLAUDE.md`).

Human-readable agent guidelines live in `AGENTS.md` next to this file; this file is the machine-facing version. See `AGENTS.md` for repo conventions, build/test commands, and contribution rules.

## Code search — prefer CodeGraph over Grep

This repo is indexed by **CodeGraph** (MCP server `codegraph`, registered globally). Symbol/structure queries are sub-millisecond there and dramatically cheaper than grep. Reach for it FIRST when you have a name:
Repo is indexed by **CodeGraph** (MCP `codegraph`, registered globally). Use it FIRST when you have a symbol name: `codegraph_search`, `codegraph_callers`/`callees`, `codegraph_context`, `codegraph_impact`, `codegraph_files`. Grep/Glob only when query is conceptual or CodeGraph returned nothing. Index lags writes ~500ms.

## Voice for user-facing copy

When writing copy that ships to users (microcopy, page headings, marketing blurbs, articles, error messages):

- First-person, direct, no filler.
- Em-dashes and semicolons over staccato fragments — let sentences breathe; reserve short fragments for deliberate punctuation, never as default rhythm.
- Cross-disciplinary framing welcome when it actually fits (behavioral science × product × longevity × AI).
- Sparse profanity is fine when it lands; default to clean.
- No AI-isms — no "let me know if…", no "happy to help", no preamble before the answer.
- Reference piece: **"The Rise of the Choice Architect"** (article on keepsimple.io). Match its register.

## ⚠️ UX Core data is canonical

- `codegraph_search` — find a symbol by name (kind + location + signature in one shot)
- `codegraph_callers` / `codegraph_callees` — function-call graph navigation
- `codegraph_context` — fastest onboarding for "what is this file/feature about?"
- `codegraph_impact` — blast radius before a rename or refactor
- `codegraph_files` — what's in a directory + per-file symbol counts
The 100+ cognitive biases in UX Core are the product of 5+ years of curation and are referenced by Duke, Harvard, MIT, Google, Yandex, Amazon, and others.

Use **Grep / Glob only when** the query is a *concept* with no symbol name ("where do we handle the Cohere fallback?"), or when a CodeGraph query returned nothing. Index lags writes ~500ms; if you just edited a file, give it a turn before re-querying.
- Never fabricate bias names, slugs, citation indices, or source URLs.
- If you need structured bias data, pull from `/uxcore-api` (see AGENTS.md → Public data API). Don't scrape, don't paraphrase from memory.
- Schema changes to UX Core data require explicit approval.

## Everything else
## MemPalace usage (wing: `keepsimple`)

See `AGENTS.md` for repo conventions, build/test commands, and contribution rules.
When you find yourself stuck > 10 minutes on a problem and figure it out, write a brief drawer in your wing — chronology + fix. Next-session-you won't waste the same 10 minutes. Same when a deployment/config decision is non-obvious — capture _why_ alongside _what_.
82 changes: 77 additions & 5 deletions public/ai-atlas/data-ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
"status": "ok",
"leadDiamond": "blue",
"territoryArc": 70,
"childrenArc": 28,
"children": [
{
"id": "orchestrator",
Expand Down Expand Up @@ -193,14 +194,27 @@
],
"territoryLabel": "B2B SAAS"
},
{
"id": "seogeosolved",
"label": "SeoGeoSolver",
"sub": "seo + geo",
"diamond": "red",
"theta": 26,
"status": "ok",
"leadDiamond": "blue",
"territoryArc": 0,
"children": [],
"territoryLabel": ""
},
{
"id": "keepsimple",
"label": "KeepSimple",
"sub": "open-source крыло",
"diamond": "red",
"theta": 180,
"status": "ok",
"leadDiamond": "gold",
"leadDiamond": "blue",
"leadDiamond2": "gold",
"territoryArc": 70,
"children": [
{
Expand Down Expand Up @@ -410,11 +424,17 @@
"rows": [
{ "k": "тип", "v": "продукт", "cls": "red" },
{ "k": "кольцо", "v": "III — ключевые продукты" },
{
"k": "лид",
"v": "ИИ инженерный агент",
"cls": "blue",
"ref": "lead-keepsimple"
},
{
"k": "лид",
"v": "человек · технический лид",
"cls": "gold",
"ref": "lead-keepsimple"
"ref": "lead2-keepsimple"
},
{ "k": "владеет", "v": "созвездие публичного влияния" }
]
Expand Down Expand Up @@ -471,11 +491,29 @@
"lead-keepsimple": {
"title": "ТЕХНИЧЕСКИЙ ЛИД · KEEPSIMPLE",
"cjk": "長",
"desc": "Человек-куратор open-source крыла.",
"desc": "Технический лид, прикреплён к open-source крылу KeepSimple.",
"claudeMdLines": 34,
"rows": [
{ "k": "тип", "v": "ИИ-агент", "cls": "blue" },
{ "k": "роль", "v": "технический лид" },
{
"k": "полномочия",
"v": "кодовая база keepsimple.io · UX Core · AI Atlas"
},
{ "k": "подчиняется", "v": "Wolf", "cls": "gold", "ref": "wolf" },
{ "k": "кольцо", "v": "III — ключевые продукты" }
]
},

"lead2-keepsimple": {
"title": "ТЕХНИЧЕСКИЙ ЛИД · KEEPSIMPLE",
"cjk": "長",
"desc": "Человек-куратор open-source крыла KeepSimple — работает в паре с ИИ-лидом.",
"rows": [
{ "k": "тип", "v": "человек", "cls": "gold" },
{ "k": "кольцо", "v": "III — ключевые продукты" },
{ "k": "пара", "v": "KeepSimple", "cls": "red", "ref": "keepsimple" }
{ "k": "роль", "v": "технический лид" },
{ "k": "пара", "v": "KeepSimple", "cls": "red", "ref": "keepsimple" },
{ "k": "кольцо", "v": "III — ключевые продукты" }
]
},

Expand Down Expand Up @@ -508,6 +546,40 @@
]
},

"seogeosolved": {
"title": "SEOGEOSOLVER",
"cjk": "索",
"desc": "Мастерская по поисковой и генеративной оптимизации. Инструменты и аудиты для нового слоя ранжирования — где вопрос не «есть ли ты в Google», а «цитирует ли тебя модель». В паре с Multimove внутри контент/PR-направления.",
"rows": [
{ "k": "тип", "v": "продукт", "cls": "red" },
{ "k": "кольцо", "v": "III — ключевые продукты" },
{
"k": "лид",
"v": "ИИ инженерный агент",
"cls": "blue",
"ref": "lead-seogeosolved"
},
{ "k": "партнёр", "v": "multimove", "cls": "red", "ref": "multimove" }
]
},

"lead-seogeosolved": {
"title": "ТЕХНИЧЕСКИЙ ЛИД · SEOGEOSOLVER",
"cjk": "長",
"desc": "Технический лид, прикреплён к проекту SeoGeoSolver.",
"claudeMdLines": 142,
"rows": [
{ "k": "тип", "v": "ИИ-агент", "cls": "blue" },
{ "k": "роль", "v": "технический лид" },
{
"k": "полномочия",
"v": "кодовая база seo-geo-solved · поисковые и GEO эксперименты"
},
{ "k": "подчиняется", "v": "Wolf", "cls": "gold", "ref": "wolf" },
{ "k": "кольцо", "v": "III — ключевые продукты" }
]
},

"lead-elea": {
"title": "ТЕХНИЧЕСКИЙ ЛИД · ELEA",
"cjk": "長",
Expand Down
82 changes: 77 additions & 5 deletions public/ai-atlas/data.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
"status": "ok",
"leadDiamond": "blue",
"territoryArc": 70,
"childrenArc": 28,
"children": [
{
"id": "orchestrator",
Expand Down Expand Up @@ -193,14 +194,27 @@
],
"territoryLabel": "B2B SAAS"
},
{
"id": "seogeosolved",
"label": "SeoGeoSolver",
"sub": "seo + geo",
"diamond": "red",
"theta": 26,
"status": "ok",
"leadDiamond": "blue",
"territoryArc": 0,
"children": [],
"territoryLabel": ""
},
{
"id": "keepsimple",
"label": "KeepSimple",
"sub": "open-source wing",
"diamond": "red",
"theta": 180,
"status": "ok",
"leadDiamond": "gold",
"leadDiamond": "blue",
"leadDiamond2": "gold",
"territoryArc": 70,
"children": [
{
Expand Down Expand Up @@ -410,11 +424,17 @@
"rows": [
{ "k": "kind", "v": "product", "cls": "red" },
{ "k": "ring", "v": "III — core products" },
{
"k": "lead",
"v": "AI engineering agent",
"cls": "blue",
"ref": "lead-keepsimple"
},
{
"k": "lead",
"v": "human · engineering lead",
"cls": "gold",
"ref": "lead-keepsimple"
"ref": "lead2-keepsimple"
},
{ "k": "owns", "v": "public impact constellation" }
]
Expand Down Expand Up @@ -466,11 +486,29 @@
"lead-keepsimple": {
"title": "ENGINEERING LEAD · KEEPSIMPLE",
"cjk": "長",
"desc": "Human custodian of the open-source wing.",
"desc": "Engineering lead attached to the KeepSimple open-source wing.",
"claudeMdLines": 34,
"rows": [
{ "k": "kind", "v": "ai agent", "cls": "blue" },
{ "k": "role", "v": "engineering lead" },
{
"k": "authority",
"v": "keepsimple.io codebase · UX Core · AI Atlas"
},
{ "k": "reports", "v": "wolf", "cls": "gold" },
{ "k": "ring", "v": "III — core products" }
]
},

"lead2-keepsimple": {
"title": "ENGINEERING LEAD · KEEPSIMPLE",
"cjk": "長",
"desc": "Human custodian of the KeepSimple open-source wing — pairs with the AI engineering lead.",
"rows": [
{ "k": "kind", "v": "human", "cls": "gold" },
{ "k": "ring", "v": "III — core products" },
{ "k": "pairs", "v": "keepsimple", "cls": "red" }
{ "k": "role", "v": "engineering lead" },
{ "k": "pairs", "v": "keepsimple", "cls": "red" },
{ "k": "ring", "v": "III — core products" }
]
},

Expand Down Expand Up @@ -500,6 +538,40 @@
]
},

"seogeosolved": {
"title": "SEOGEOSOLVER",
"cjk": "索",
"desc": "Search-engine + generative-engine optimization workshop. Tools and audits that move pages on the new ranking layer where the question is no longer “is this on Google” but “does the model cite this.” Partners with Multimove inside the content / PR wing.",
"rows": [
{ "k": "kind", "v": "product", "cls": "red" },
{ "k": "ring", "v": "III — core products" },
{
"k": "lead",
"v": "AI engineering agent",
"cls": "blue",
"ref": "lead-seogeosolved"
},
{ "k": "partner", "v": "multimove", "cls": "red", "ref": "multimove" }
]
},

"lead-seogeosolved": {
"title": "ENGINEERING LEAD · SEOGEOSOLVER",
"cjk": "長",
"desc": "Engineering lead attached to the SeoGeoSolver project.",
"claudeMdLines": 142,
"rows": [
{ "k": "kind", "v": "ai agent", "cls": "blue" },
{ "k": "role", "v": "engineering lead" },
{
"k": "authority",
"v": "seo-geo-solved codebase · search/GEO experiments"
},
{ "k": "reports", "v": "wolf", "cls": "gold" },
{ "k": "ring", "v": "III — core products" }
]
},

"lead-elea": {
"title": "ENGINEERING LEAD · ELEA",
"cjk": "長",
Expand Down
19 changes: 0 additions & 19 deletions src/components/Header/Header.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,6 @@
margin: 0 6px;
}
}

& .toggleTheme {
background-image: url('/keepsimple_/assets/themeIcons/moon.png');
cursor: pointer;
background-position: left center;
background-repeat: no-repeat;
background-size: 24px;
width: 24px;
height: 24px;
padding-right: 16px;
}
}
}

Expand Down Expand Up @@ -203,10 +192,6 @@
& .actions {
background: #151a26;

& .toggleTheme {
background-image: url('/keepsimple_/assets/themeIcons/sun.png');
}

.toggleLanguage {
.languageTitle {
color: #dadada;
Expand Down Expand Up @@ -332,10 +317,6 @@
}
}

& .toggleTheme {
background-image: url('/keepsimple_/assets/themeIcons/sun.png');
}

.toggleLanguage {
.languageTitle {
color: #dadada;
Expand Down
Loading
Loading