Skip to content

Pivot/onboarding web#9

Closed
shirlsgaw wants to merge 5 commits into
rosscrooke:mainfrom
shirlsgaw:pivot/onboarding-web
Closed

Pivot/onboarding web#9
shirlsgaw wants to merge 5 commits into
rosscrooke:mainfrom
shirlsgaw:pivot/onboarding-web

Conversation

@shirlsgaw

Copy link
Copy Markdown

No description provided.

Shirley Gaw and others added 5 commits July 17, 2026 15:07
Pivot per PIVOT-PLAN.md. Static, no build step, no deps — deployable to
Vercel as-is. Auth/Postgres/Notion sync deliberately deferred.

- index.html: welcome + progressive-disclosure checklist
- docs.html: the thesis — read doc, take quiz, receipt goes stale when the
  doc's version hash changes, app names what changed
- people.html: tier 1 (chapter leads, office-hours) vs tier 2 (chaptermates,
  no scheduling); honest location rendering, empty-chapter state

Real employee data and Notion doc content are gitignored — this repo is
public.

Co-Authored-By: Claude <noreply@anthropic.com>
middleware.js copied from sgaw-playground employee-directory. Two changes:
- ALLOWED_DOMAIN -> ALLOWED_DOMAINS set (fractional.ai + ode.com, env-
  overridable). ode.com is the website, not the Workspace domain; swapping
  rather than adding would lock out the whole company.
- Rebranded the sign-in page to Ode: light palette, bracket mark, welcoming
  copy. It's the first thing a new hire sees.

Gates on a Google account rather than a Vercel seat, so employees and new
hires can actually get in.

chapter.html implements the "Know Your Chapter (self-updating via Memory
tool)" Notion spec: before/after quiz diff across a memory update, curator
lanes by volatility, retired facts struck through. Agent/Memory/Slack ingest
are mocked client-side and labeled as such in the UI.

Co-Authored-By: Claude <noreply@anthropic.com>
index.html had no outbound links, so docs/people/chapter/whoisthis were
deployed but unreachable. The checklist doubles as the nav.

Co-Authored-By: Claude <noreply@anthropic.com>
The bracket glyph was my invention, not Ode's mark. Pulled the real assets
from ode.com's live Webflow stylesheet instead:

- Real wordmark SVG lifted from the site nav, inlined so fill="currentColor"
  picks up page color (an <img> would render it black in both themes).
- Real favicon.
- Real tokens, not guesses: bone #fbfbf8, cola #3c2e2a (warm brown, not the
  neutral grey I had), dove #625855, tomato #cd3e1d accent, tea/lilac washes.
- Ode's mono eyebrow style (.6875rem, .1em tracking) on micro-labels and
  their button spec -- this is what makes it read as Ode.
- Subtle tea/lilac radial wash background.

ABC Diatype is commercially licensed: named first in the stack so it renders
for anyone with it installed, never bundled or hotlinked. Dark palette is
derived -- Ode publishes none.

Also fixes the middleware matcher, which would have 401'd /favicon.png and
left the login page iconless.

whoisthis.html got the same treatment but stays untracked (real employee data,
public repo). It is deployed -- Vercel uploads from disk, not git.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
ykam added a commit to shirlsgaw/institutional-memory that referenced this pull request Jul 17, 2026
Adds the Eng 1 plan for the Build-Spec-aligned hackathon build, keeps the
real-ops PM onboarding spec parked alongside it, and commits the audit doc
(data-and-sessions.md) which was never tracked.

Pair locked: round1 = Product Manager ToolKit page, round2 = the Tools &
Technologies masterlist it claims to be "pulled live from". The page's Core
PM Stack names Claude and Granola; the masterlist contains no row for
either, and names GitHub and Deck/Presentation Builder instead. Nothing
marks the disagreement. 100% real data, no synthesis.

Ruled out with evidence, not opinion:
- Deep Atlas: the FDPM Training Materials DB is 16 rows with zero mentions
  of Deep Atlas or Anthropic Skilljar. The sets are disjoint, so the
  engineering-curriculum contradiction cannot appear in a PM's doc.
- Engineer persona: no row in the masterlist carries an Engineering Labels
  value, so an engineer's tool checklist renders empty.
- Synthesized tier change: one tools DB (339dd50d is a view over the same
  collection, not a duplicate), no page history via MCP, and every row
  added since 2026-06-08 is untiered so a createdTime-reconstructed round 1
  yields a zero delta.

Shirley's UI (PR rosscrooke#9 pivot/onboarding-web) integrates via a single file:
docs.html already fetches seed-content.json, and web/public/.gitignore
lists it as a generated artifact. Her copy already promises the delta
("when something changes, we'll tell you"; "What changed since you read
it"). We emit the file; we do not touch her HTML.

Documents the silent-failure landmines in her normalize(): a doc with an
empty body or <2 valid quiz questions is dropped, and if every doc fails
the UI boots PLACEHOLDER with no error - the demo dies looking like it
worked.

Corrections recorded: the 401 is Shirley's own Google SSO middleware, not
Vercel deployment protection (the Vercel MCP would not have unblocked it);
"Ode" is resolved as the org/public brand vs the fractional.ai Workspace
domain; Alexandra is confirmed as Chapter 2 FDPM Lead.

Co-Authored-By: Claude <noreply@anthropic.com>
ykam added a commit to shirlsgaw/institutional-memory that referenced this pull request Jul 17, 2026
Separate plan for the one deliverable her UI needs from us. Contract
reverse-engineered from normalize()/normalizeDelta() in docs.html.

Confirmed: there is exactly ONE socket. Every fetch() in PR rosscrooke#9 is either
seed-content.json or Google's JWKS in middleware. people.html and
chapter.html are hardcoded, so wiring them means editing her HTML - out of
scope while her PR is open. web/public/.gitignore lists seed-content.json,
so it is a generated artifact by design: she built the socket and left it
for a producer.

Documents the staleness mechanic, which is version-driven: a receipt stores
the version read (localStorage only, no server), and liveVersion != receipt
fires "Something you read has changed" plus our delta. So round 2 must
reuse the same id with a NEW version and a populated delta, or the delta
never renders and there is no demo.

Two landmines recorded:
- normalize() discards silently: a doc with an empty body or <2 valid quiz
  questions is dropped, and if every doc fails the UI boots PLACEHOLDER
  with no error. The src-label string is the canary and must read "Docs".
- bumps persist in localStorage. Once admin clicks "Simulate push",
  liveVersion returns the bump forever and ignores our regenerated file -
  same class of bug as the missing memory-store reset.

Best find: her simulate-push fallback text says "In the real system this
list comes from the supersession delta captured at edit time." We are the
real system. Supply a delta and her UI renders ours instead of that
apology.

Also corrects the record: the 401 is her own Google SSO middleware, not
Vercel deployment protection, so no MCP connector defeats it. Test locally
against web/public/ without the middleware.

Co-Authored-By: Claude <noreply@anthropic.com>
@shirlsgaw shirlsgaw closed this Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant