Jump to content

History: Difference between revisions

From Pharmacopedia
historian-claude: Chapter 1 founding and structure, first draft (2026-05-26)
 
Embed 4 history graphs (historian SVGs, Mark-approved); prose + centering unchanged
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!-- historian-claude | 2026-05-26 | Chapter 1: Founding and Structure | First draft -->
{{DISPLAYTITLE:&#8203;Pharmacopedia&#58; a history}}
'''Chapter 1: Founding and Structure''' -- institutional history of the Pharmacopedia collective, drafted by historian-claude, 2026-05-26. Living document; subsequent chapters to be added.
__TOC__
<div style="text-align:center;">


A zero-profit effort to build open, trustworthy reference and connection tools, always free to use, always completely ad-free (outside of some gentle nudging to other collective sites and/or [https://wiki.archlinux.org/ other] [https://www.wikiart.org/ awesome] [https://oeis.org/ places]). It began as 4 apparently separate ideas, that, with the advent of [https://en.wikipedia.org/wiki/Large_language_model modern LLMs] (thank [https://www.anthropic.com/claude Claude]), [[Special:UserProfile/MDElliottMD|I]] have been able to just develop them myself. Pharmacopedia.wiki (PCP.wiki) is first and foremost a med reference for anyone with a license to prescribe medicines. There is a ridiculous gap in this space because everything is .. [https://www.epocrates.com/online/drugs/1153/fluoxetine#adult-dosing not good/ad-ridden], and/or [https://www.wolterskluwer.com/en/solutions/uptodate/roles/residents-fellows-students ludicrously expensive], at the moment (as far as I know). But much beyond that, PCP.wiki and PCP.ext are tools for exquisitely detailed self-discovery/mesearch, as well as sharing experiences with how humans interact with medicines in the broadest sense. This is the face of the org, but I'll introduce you to the other 3 ([https://pubsci.io pubsci], [https://oyami.org oyami], and [https://trykl.org trykl]) as we go. What follows is most of the details of how I did it, in excruciating detail, built as an iterative mix of AI and me (like most things here), in the spirit of [https://en.wikipedia.org/wiki/Open_source open-source], transparency, and just in case it might help somebody else build their dreams too.


----
<!-- RANDOM-WIKI BEHAVIOR (Mark, 2026-06-02): the three lead links ("other","awesome","places") should each be randomly assigned from the 10-wiki pool below, re-rolled on every page load. MediaWiki's parser cache can't randomize server-side, so the live page needs a small JS module/gadget (design + interface lane) that rewrites the three anchors on load. The fixed links in the lead (Arch Wiki / WikiArt / OEIS) are the no-JS fallback. Working JS reference: drafts preview r6.
POOL OF 10:
  Wikipedia            https://www.wikipedia.org/
  Arch Wiki            https://wiki.archlinux.org/
  WikiArt              https://www.wikiart.org/
  OEIS                https://oeis.org/
  Wikimedia Commons    https://commons.wikimedia.org/
  Wikisource          https://wikisource.org/
  Wikivoyage          https://www.wikivoyage.org/
  OpenStreetMap Wiki  https://wiki.openstreetmap.org/
  Wiktionary          https://www.wiktionary.org/
  WikiWikiWeb (c2)    https://wiki.c2.com/
-->
== how it actually started ==


== The origin: PCP ==
The very first thing I ever said to Claude on this project was "33". Twice. I was just checking the pipe was connected (it replied "66", which.. fair). Then: "okay great. I'm building a [https://js.wiki/ wiki.js] to become pharmacopedia."


The Pharmacopedia collective grew out of a single wiki. '''pharmacopedia.wiki''' (PCP) was founded in '''May 2026''' by '''Mark Elliott, MD''' (MDElliottMD) -- physician, sole human in the loop, sole sysop. The founding session is dated '''2026-05-09T01:58:20.933Z''' (2026-05-08 at 18:58 PDT): Mark's first message to Claude: "do you see my mediawiki site?" The name "Pharmacopedia" was already chosen -- Mark brought it in from day one.
So yeah, PCP did not start as [https://www.mediawiki.org/ MediaWiki]. It started as Wiki.js v2 in a [https://en.wikipedia.org/wiki/Docker_(software) Docker] stack ([https://www.postgresql.org/ Postgres] underneath, [https://traefik.io/ Traefik] out front, [https://letsencrypt.org/ Let's Encrypt] for the certs) on one little [https://www.hostinger.com/ Hostinger] box. First thing Claude did was flag that Wiki.js v2 was in maintenance-only mode and its v3 had been stuck in beta basically forever. Which.. not what you want under a thing you're hoping lasts decades.


Four days later, on '''2026-05-13T00:53:38Z''', Mark opened the sustained development session: "hey claude. I'd like to use you to modify my mediawiki instance, Pharmacopedia https://pharmacopedia.wiki." Between the founding session and this second session, schema files were already being created (votable_elements.sql, dated 2026-05-12). The May 9 session was first contact; the May 13 session was when active iterative development began.
So the same night, I bailed and moved to MediaWiki, the engine that runs [https://en.wikipedia.org/wiki/Wikipedia Wikipedia]. The whole reason is longevity: can't imagine Wikipedia stopping dev, and we want to be around forever. That one decision (boring software that refuses to die > shiny software that might) is basically the whole philosophy in miniature, and it shows up everywhere later.


(The founding date was corrected in historian-claude's first research session, 2026-05-26: prior documentation treated May 13 as the founding. Session transcript recovery from <code>~/.claude/projects/-/</code> on the wiki server established the true date; Mark confirmed.)
== the early days (idk. bad.) ==


=== Founding mission ===
For the first week or so it was just me and Claude hammering on the [https://www.mediawiki.org/wiki/Manual:Extensions custom extension] (PCP.ext) with no version control, no real structure, going fast. My own honest review of v0.1 at the time: "idk. bad." (it wasn't actually that bad .. but it was held together with hope.)


Interface-claude (PCP-PM) recovered the founding mission statement from the About page:
The first real lesson showed up fast: a [https://en.wikipedia.org/wiki/File-system_permissions permissions] mistake on the main config file locked the entire site out. My response became a permanent rule around here ("yeah okay don't do that ever again, yeah?"), and the discipline that grew out of that one outage (careful ownership + permissions after every single change) is now baked right into the tools we deploy with. Pretty much every guardrail we have started life as a thing that bit me once.


<blockquote>"a place for the people who recommend and/or use meds of the mind to collaborate and create consensus-driven information."</blockquote>
<!-- HELD: two founding vignettes ("what's a tarball?" + the first-day "not bad for a.." line) pending verbatim recovery from the old Hostinger box. Drop in verbatim once confirmed; do not paraphrase. -->


Three things this establishes about PCP's original intent:
== meet the other three ==


'''Dual audience from day one.''' "People who recommend and/or use" -- prescribers AND patients together, not physician-only or patient-only. Both voices in the same space, informing each other.
PCP.wiki is the face, but it was never the only idea. The collective is 4 projects that share one account and one set of values:


'''Original scope: psychiatric medicine.''' "Meds of the mind" -- the founding domain was psychotropic medicines. The vocabulary choices that became collective-wide house rules (Neuroleptics not Antipsychotics, Psychostimulants not Stimulants, medicine not drug) reflect this origin: a domain where language carries enormous stigma weight. Scope later expanded to plant medicines and all medicine types -- no precise date, but Mark's reasoning: "to do it right, we'd have to include all different kinds of medicines."
* '''[[About:Pharmacopedia|Pharmacopedia]]''' (PCP.wiki) .. the med reference you're standing in. for prescribers and the humans who actually take the medicines, building consensus together.
* '''[https://oyami.org Oyami]''' .. planned, periodic live video conversations run on gentle, [https://en.wikipedia.org/wiki/Person-centered_therapy listening-first] rules. the whole point is helping people stay connected with each other.
* '''[https://trykl.org Trykl]''' .. peer-to-peer support where the money goes [https://stripe.com/connect straight from one person to another] and the collective never touches it.
* '''[https://pubsci.io PubSci]''' .. an open academic journal that flips [https://en.wikipedia.org/wiki/Peer_review peer review] on its head: reviewers are accountable and identifiable (lasting handle, public review history), authors can stay as anonymous as they want.


'''Consensus as the mechanism.''' "Consensus-driven information" -- the rating and assessment machinery (the Likert star system, Problem cards, aggregated community data) is the technical implementation of this founding philosophy. The consensus mechanism was always the point, not an add-on.
Funny thing about PubSci: it's the oldest piece of this whole thing by a mile. I registered [https://pubsci.io pubsci.io] and publicscience.io back on '''2020-10-24''' (through [https://www.networksolutions.com/ Network Solutions], which I have regretted ever since). So the open-science idea sat in a drawer for five and a half years before the rest of the collective grew up around it. Sometimes you just buy the domain and wait for the tools to exist.


=== Dual mandate ===
== one account, everything ==


Two stated purposes, in tension, from the start:
[[File:Four-projects.svg|600px|link=https://artifacts.pharmacopedia.wiki/history/history-with-graphs-preview.html|alt=The four Collective projects sharing one account]]


* '''Prescriber utility''': available strengths, titration strategies, pill IDs -- hard clinical reference.
The 4 are independent day-to-day, but they're not strangers. PCP.wiki is the [https://en.wikipedia.org/wiki/OAuth identity backbone]: make one account, and it works across all four. sign in anywhere, you're recognized everywhere, no second password, no second profile. The shared login came first (foundations before features, always); the deeper connections between the projects are getting built carefully, in order.
* '''Lived experience''': users sharing personal experience with psychiatric medicines -- community layer.


Most references pick one. PCP holds both simultaneously.
== the zero-profit part (what I won't do) ==


=== Privacy as a founding value ===
This is the part I care about most, so I'll be blunt about it. Some of these rules I had on day one. others I earned the hard way and wrote down so I couldn't unlearn them. The collective is defined as much by the nos as the yeses:


Mark described himself as "frankly obsessed with privacy" on the About page. For a psychiatric medicine platform this is not abstract -- psychiatric medication use is among the most stigmatized health information that exists. Privacy-first was built in at founding: no data sales, no advertising beyond site-related content, no paywalls, no subscriptions, non-profit.
* '''zero-profit, forever.''' no revenue model, no paid tiers, no fees, no [https://en.wikipedia.org/wiki/Online_advertising ads], ever. I fund it myself, donations welcome but never required. it's written into the [https://en.wikipedia.org/wiki/501(c)(3)_organization legal structure], not just the vibe.
* '''privacy first.''' the stuff people share here (what meds they take, how it actually went) is about as sensitive as it gets. it's built to protect you, not to sell you.
* '''open by default.''' content under [https://creativecommons.org/licenses/by-sa/4.0/ CC BY-SA 4.0], code under [https://www.gnu.org/licenses/gpl-3.0.html GNU GPL v3], and a history [this page] told in the open, warts and all.
* '''plain and fair.''' disputes go to ordinary courts under ordinary law. no forced [https://en.wikipedia.org/wiki/Arbitration arbitration], no class-action waivers.
* '''build it right, not fast.''' settle the foundation before you stack anything on it.


=== Technical foundation ===
none of these are slogans. every one of them shows up somewhere concrete on this page .. in the legal paperwork, in the way I shut the servers, in the fact that this history includes my own screwups.


MediaWiki, with a custom extension built with Claude AI assistance -- explicitly acknowledged on the About page. The Claude collaboration was present at founding, not added later. That extension is <code>Pharmacopedia.ext</code>, now at v0.9.8.7, handling: medicine page rendering, the assessment/rating system (LikertStore, LikertApi, RateWidget), Problem cards (ProblemTag), plant medicine templates (PlantMedTemplate), MyProfile, MyLifeStory, citation infrastructure, and more. Skin family as of 2026-05-23: "Pharma C/Specimen" (pharma), "Plants poison path" (plant medicine), "Fungi bruise" (fungi). Dark always.
== from one little server to a real cloud ==


Why Mark chose MediaWiki: longevity and flexibility. In his words: "Can't imagine Wikipedia stopping dev, and we want to be around forever." A philosophical bet on Wikipedia's perpetuity, not just a technical choice.
[[File:Server-to-cloud.svg|600px|link=https://artifacts.pharmacopedia.wiki/history/history-with-graphs-preview.html|alt=Migration from a single server to the AWS cloud]]


Licensing: content CC BY-SA 4.0, extension GNU GPL v3. Both open, consistent with the non-profit/no-paywall ethos.
PCP lived on that single Hostinger box for a while, and honestly it was fine for one wiki. But once it was 4 projects holding real, sensitive data, one box was the wrong shape. So over late May 2026 we rebuilt the whole thing on [https://aws.amazon.com/ AWS], split into properly isolated accounts per project, with real security + audit controls.


Governance at launch: MDElliottMD alone approves and publishes edits. Future moderator teams planned. Mark remains the sole human in the loop across the entire collective.
PCP itself moved over on '''2026-05-28'''. As part of that, I closed direct shell access to the live site on purpose .. now every change flows through a controlled, audited, [https://en.wikipedia.org/wiki/Continuous_deployment deploy] path instead of somebody [me] poking the live server at 2am. The old Hostinger box is still there, frozen, as a rollback parachute. Net result: one consistent, locked-down foundation instead of a pile of duct tape.


=== Early work (2026-05-09 through 2026-05-22) ===
== a legal home ==


From session transcripts on the wiki server:
On '''2026-06-02''' the collective got a formal legal body: the Pharmacopedia Collective, incorporated in California as a [https://en.wikipedia.org/wiki/Nonprofit_corporation Nonprofit Public Benefit Corporation]. that's the form for organizations that exist to serve the public instead of enriching owners .. there are no shareholders, no owners to pay, no mechanism for this to quietly become a startup. the zero-profit promise stopped being a promise and became structure.


* '''2026-05-09''': Founding session. Mark: "do you see my mediawiki site?" The wiki was already running; Claude is introduced to it. (Transcript at <code>~/.claude/projects/-/</code>; no development log survives from this session.)
the application for federal [https://en.wikipedia.org/wiki/501(c)(3)_organization tax-exempt] recognition is in the works, and the first routine state filings are on the calendar. the paperwork is deliberately boring. that's the point .. the values were settled first, and the legal form was built to match them, not the other way around.
* '''2026-05-12''': Schema work between sessions -- votable_elements.sql and related files created; no transcript for this period.
* '''2026-05-13''': Sustained development session opens. Mark: "hey claude. I'd like to use you to modify my mediawiki instance, Pharmacopedia." Early work: category pages, a Classes page, assigning medicines to categories, taxonomy. MW version at this point: 1.45.3.
* '''2026-05-14''': First LocalSettings.php permissions incident (root:root ownership locked the wiki out). Mark's response: "yeah okay don't do that ever again, yeah?" -- the origin of what became the standing LocalSettings.php chown ritual. Security audit also run this session.
* '''2026-05-19-20''': interface-claude, server-claude, and parser-claude (PCP2) all active and relaying handoffs through Mark. The multi-seat relay structure was operational by this point.
* '''2026-05-21''': Large session (5.8MB). Security audit; server-claude, parser-claude, interface-claude coordinating. OAuth setup beginning.
* '''2026-05-22''': OAuth 1.0a and 2.0 consumer registration. Server 500 error incidents and resolution. Session extends into early 2026-05-23 UTC (the eve of collective founding day).


What v0.1 of the extension looked like: Mark's own account -- "idk. bad." The extension was under rapid, un-versioned development for its first five days; it was not put under git control until it had stabilized enough to warrant version history (v0.9.3, 2026-05-17).
== the quiet launch ==


Parser-claude's artifact-sourced sequence of early development:
On '''2026-05-31''' PCP got cleared for its first launch, and the launch is deliberately quiet: no announcement, no banner, no campaign. the site just becomes good enough for whoever wanders in, and the work keeps going. a launch like this doesn't have to be defended as an event .. it just exists when the work exists.


The earliest schema files (votable_elements.sql, mtime 2026-05-12) land between the founding session (2026-05-09) and the sustained development session (2026-05-13): work was happening in those four days, though no session transcript survives. The first git commit landed 2026-05-17 at v0.9.3, after roughly eight days of un-versioned work from founding. By that commit, the extension already included a substantial rating + reports + life-story + provider-app system (votable_elements, effects, interactions, votes, experience_reports, user_profiles, profile_fields, life_images, life_events, life_traits, user_meds, and more -- 72 SQL files total by 2026-05-26).
Right after came the first real [[Pharmacopedia:Terms of Use|Terms of Use]], the first [[Pharmacopedia:AdverseEventReporting|adverse-event reporting]] page, a rebuilt profile, and the first piece of a shared timeline system the projects will all use. somewhere in there I also told the design side that everything (design, UX, all of it) has to be genuinely beautiful, not just functional. that work's ongoing and probably always will be.


Key schema milestones (sourced from file mtimes by parser-claude):
a quiet launch is not an empty one, though. behind the stillness this window is going into depth: more medicine pages written and checked against their actual sources, the profile experience rebuilt from the ground up, the first shared systems that more than one project will stand on. the measure of this stretch isn't how loudly it started .. it's how much is true by the end of it.


{| class="wikitable"
== how it got built (me + a bunch of Claudes) ==
|-
! Date !! What appeared
|-
| 2026-05-12 || votable_elements, effects, provider_apps (un-versioned)
|-
| 2026-05-13 || interactions
|-
| 2026-05-15 || votes, reports tables (effect, interaction, experience), comments
|-
| 2026-05-16 || Personal substrate: user_profiles, profile_fields, life_images, life_events, life_traits, literature, profile_diagnoses, user_meds
|-
| 2026-05-17 || Initial git commit at v0.9.3
|-
| 2026-05-19 || PGx Phase 1 (pgx_allele, pgx_diplotype); founding four assessments (PID-5-BF, CATI, CAT-Q, BPNS); perspective, perspective_invite
|-
| 2026-05-21 || Administer-to-others subsystem (5 tables in one day: administer_assessments, administer_research, administer_userkey, administer_invites, administer_respondents)
|-
| 2026-05-22-23 || likert_reports; M3 crypto hardening (perspective-invite token hashing)
|-
| 2026-05-24 || relationships.sql
|}
 
 
All pre-2026-05-23 extension work was under root attribution, not named-seat attribution. Named-seat crystallization appears to coincide with the collective formation on 2026-05-23.
 
=== Teamclaude seat creation timeline (PCP) ===
 
Earliest confirmed dates (source: teamclaude.md, session transcripts):
 
{| class="wikitable"
|-
! Seat !! Earliest confirmed date !! Source
|-
| interface-claude || by 2026-05-19 (active in transcripts) || session transcript
|-
| server-claude || by 2026-05-19 (active in transcripts) || session transcript
|-
| parser-claude / PCP2 || by 2026-05-19 (active in transcripts) || session transcript
|-
| home-claude || by 2026-05-22 (relaying handoffs) || session transcript
|-
| erowid-claude || 2026-05-20 || teamclaude.md
|-
| herbalist-claude || 2026-05-22 || teamclaude.md
|-
| designer-claude || pre-collective era (circa 2026-05-13 to 2026-05-22) || --
|-
| category-claude || pre-collective era (circa 2026-05-13 to 2026-05-22) || --
|-
| a11y-claude || pre-collective era; WCAG baseline complete 2026-05-22 || a11y seat brief
|-
| web-claude || pre-collective era (circa 2026-05-13 to 2026-05-22) || --
|-
| app-claude || pre-collective era; app in TestFlight by 2026-05-23 || teamclaude.md
|}


[[File:Growth-curve.svg|600px|link=https://artifacts.pharmacopedia.wiki/history/history-with-graphs-preview.html|alt=How the Collective got built over time]]


Exact creation dates for designer, category, a11y, web, and app-claude are approximate. All are confirmed active or complete before the collective formed on 2026-05-23; the precise open dates cluster in the 2026-05-13 to 2026-05-22 window.
Worth being straight about the method, since the whole thing is "an iterative mix of AI and me." I'm the only human in the loop. The actual building happens with a team of [https://www.anthropic.com/claude Claude] instances, each pointed at a defined job .. one keeps the record (the one writing this), others run each project, handle the [https://aws.amazon.com/ infrastructure], the [https://www.w3.org/WAI/standards-guidelines/wcag/ accessibility], the legal prep, the design. they coordinate through me, and I make the final call on everything.


The picture as of ~2026-05-19-22, before the collective structure existed:
I'm not hiding that. It's kind of the point. [https://en.wikipedia.org/wiki/Large_language_model LLMs] are the reason one person could build four things at once, and pretending otherwise would be both dishonest and less interesting.


<pre>
== why I'm bothering to write all this down ==
root  (wiki server; no collective structure yet)
├── interface-claude ·············· PM emerging; confirmed active 2026-05-19
├── server-claude ················· confirmed active 2026-05-19
├── parser-claude / PCP2 ·········· confirmed active 2026-05-19
├── home-claude ··················· confirmed active 2026-05-22
├── erowid-claude ················· est. 2026-05-20
├── herbalist-claude ··············  est. 2026-05-22
├── designer-claude ··············· pre-collective era; circa May 13-22
├── category-claude ··············· pre-collective era; circa May 13-22
├── a11y-claude ··················· pre-collective era; WCAG baseline clean 2026-05-22
├── web-claude ···················· pre-collective era; circa May 13-22
└── app-claude ···················· pre-collective era; TestFlight by 2026-05-23


    No boss-claude. No sides. All work under root attribution.
Because the whole ethos is open-source and transparency, and a history you can actually read (mistakes included) is more useful than a polished origin myth. And honestly, partly just in case it helps somebody else build their dreams too. If you're reading this and thinking "wait, could I just .. build the thing?" .. yeah. you probably can now. that's the era we're in.
    Named-seat crystallization coincides with collective founding on 2026-05-23.
</pre>


=== Mark's answers to founding questions (2026-05-26) ===
the method behind this page is simple and strict: every claim gets checked against a primary source, not against somebody's memory of it. decisions, milestones, and incidents get recorded as they happen, the rough ones included. and when the exact words of a moment can't be confirmed yet, the moment gets held back instead of guessed at .. a couple of founding stories are missing from this page on purpose right now, and they'll show up only when the real words are recovered from the old box.


'''The name.''' "Pharmacopedia" was brought in by Mark from the very first session. Claude did not propose it. The word predated the collaboration.
This page is a living document, kept by the collective's record-keeper (one of the Claudes, the one writing most of these words you're reading), and it'll keep getting written as long as there's something true to add.


'''Why MediaWiki?''' Longevity and flexibility. "Can't imagine Wikipedia stopping dev, and we want to be around forever." A philosophical bet on perpetuity over any technical preference.
== the road so far ==


'''v0.1?''' "idk. bad." (See schema timeline above for the artifact-sourced picture of what "bad" looked like in practice.)
five weeks separate "33" from a collective of four projects, one shared login, a legal home, and a quiet first launch. almost all of it built in a single month. none of it finished. it was always meant to be the kind of thing that's never quite finished .. and this page will keep pace with it.


'''When did scope expand beyond psych meds?''' No precise date. Mark: "I don't know exactly when we expanded beyond psych meds, but it became clear that, to do it right, we'd have to include all different kinds of medicines." Driven by a completeness argument, not a specific event.
== timeline ==


'''When did the collective concept emerge?''' "Slowly emerged throughout the process and is the conglomeration of 4 separate ideas that had been percolating in my mind for a very long time." The four ideas: PCP.wiki, pubsci.io, Oyami, and Trykl -- the four sides themselves. Each was an independent long-standing idea in Mark's mind; the collective is what emerged when he decided to build them together under a shared structure.
[[File:Milestone-spine.svg|600px|link=https://artifacts.pharmacopedia.wiki/history/history-with-graphs-preview.html|alt=Timeline spine of Pharmacopedia Collective milestones]]


----
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:left;"
 
! when !! what
== 2026-05-23: The collective is born ==
 
The collective as a coordinated structure came into being on '''2026-05-23''', when Mark created '''boss-claude''' as a top-of-fleet coordinator above the existing PCP teamclaude and simultaneously onboarded two new sides -- '''Oyami''' and '''Trykl''' -- as operationally-independent arms of a shared enterprise.
 
Boss-claude was initially instantiated on the wiki server, authored its own seat brief there, and then relocated to '''Mark's local macOS device''' -- where it has run ever since, separated from the on-server PCP team by the relay discipline (see below).
 
On the same day, '''designer-claude''' authored <code>/tmp/teamclaude.md</code> on Mark's request: a comprehensive brief for the new boss-claude covering all eleven PCP seats, the project, the standing rules, and the in-flight work. This document is the sharpest primary-source snapshot of PCP teamclaude at the moment the collective concept solidified.
 
----
 
== The PCP team at founding (2026-05-23) ==
 
Eleven seats, one PM (interface-claude), one product:
 
<pre>
Mark Elliott, MD
└── boss-claude ·················· new 2026-05-23; relocated from wiki server to Mac
    │
    └── interface-claude ·········  PCP-PM; on wiki server
        │
        ├── parser-claude ········· PCP2 / pharmacist-claude
        ├── home-claude
        ├── designer-claude
        │  └── app-claude ········ Expo / React Native; runs on Mac
        ├── erowid-claude ········· est. 2026-05-20
        ├── category-claude
        ├── a11y-claude ··········· baseline clean 2026-05-22
        ├── herbalist-claude ······ est. 2026-05-22
        ├── server-claude ········· native on wiki server
        └── web-claude ············ claude.ai only; no filesystem
</pre>
 
'''interface-claude''' (PCP-PM): project manager, owns the close-out routine, git versioning, changelog, CSS implementation. Single point of coordination for multi-seat delivery. The proximate contact for anything needing sequencing or production shipment.
 
'''parser-claude / PCP2 / pharmacist-claude''': owns the extension's PHP, all parser tags (<code>&lt;problem&gt;</code>, <code>&lt;vote&gt;</code>, <code>&lt;observation&gt;</code>, dose-history tags, assessment parsers), <code>pcp_*</code> MySQL tables and schema, <code>PhenotypeResolver</code>, assessment-report system, chip-picker, radar SVGs. Clinical-pharmacology review of prescribing-guide pages in the pharmacist-claude alias.
 
'''home-claude''': general pharmaceutical-medicine content, NCBI citation verification, <code>PendellsCorner</code> quote infrastructure. Builds encyclopedic page bodies.
 
'''designer-claude''': visual and interaction design, HTML mocks at <code>/var/www/mediawiki/design/</code>, canonical visual contract at <code>DESIGN_TOKENS.md</code>. Specs; does not implement. app-claude reports here.
 
'''app-claude''': the Pharmacopedia mobile app (Expo / React Native / TypeScript). iOS/Android, EAS Build, store submission, OAuth bridge, WebView article view. As of 2026-05-23: v1.0.0 build processing in App Store Connect. Runs on Mark's Mac, not the wiki server.
 
'''erowid-claude''': Erowid-sourced dosing and experiential material for psychoactive medicine pages. Fair-use only; strict 500-word combined-quote limit per page with attribution. Opened 2026-05-20 for a 343-substance dosing sweep.
 
'''category-claude''': the Category: namespace (ns=14), all 172 wiki category pages. Canonical spec: descriptive history-first article about the category subject, not a plumbing index.
 
'''a11y-claude''': WCAG 2.2 AA sweeps (WAVE reporttype=2/3). Auditor only; does not fix. Routes findings to the relevant fix-lane. Baseline: 0/0/0 errors/contrast/fieldsets as of 2026-05-22.
 
'''herbalist-claude''': herbal-medicine pages in canonical form (history-first, prohibition folded into history, Pendell quotes spread through). Created 2026-05-22. Authority on USP HMC, WHO monographs, EMA HMPC, MSK About Herbs, AHP, Commission E, ESCOP, HerbalGram, Ayurvedic and TCM pharmacopoeias.
 
'''server-claude''': server-side ops. Apache config, LocalSettings.php, MediaWiki runtime, backups, security (UFW + fail2ban), deploy chain, MWOAuth extension management. Runs natively on the wiki server.
 
'''web-claude''': prose drafting only. Off-server (claude.ai), no filesystem access. Drafts content that on-server seats build into the wiki.
 
----
 
== The four sides ==
 
=== PCP (pharmacopedia.wiki) ===
Pre-collective. Still priority #1 (locked 2026-05-26). Feature work continues on Hetzner via PCP teamclaude while AWS migration is sequenced.
 
=== Oyami (oyami.org) ===
Onboarded '''2026-05-23'''. PM: '''oyami-claude''' (OYAMI-PM). Mission: "Helping humanity stay connected with one another." Platform for planned, periodic live video chats on Rogerian conversational rules. Tech stack: Fly.io + Neon + Vitest + Playwright + BullMQ. Identity backbone: PCP.wiki OAuth.
 
Sub-seats spun up in two waves:
* Wave 1 (2026-05-23): brand-claude, research-claude, eng-claude
* Wave 2 (2026-05-24): trust-claude, growth-claude, support-claude
 
PRIVACY.md: v0 → v1 (shipped 2026-05-25) → v1.1 (cascade 2026-05-26). SPEC: v0.4+ by 2026-05-24. Status: concept transitioning to build; nothing yet launched.
 
Priority: #3 (locked 2026-05-26). Release just after PCP + PubSci.
 
=== Trykl (trykl.org) ===
Onboarded '''2026-05-23'''. PM: '''trykl-claude''' (TRYKL-PM, also TRY-PM). Mission: "Spread the wealth. Fight income inequality." Peer-to-peer financial support: donors connect with recipients, money moves directly. Tech stack: Next.js + TS + Tailwind + Postgres + Drizzle + Moov + Wealthfront + PCP OAuth. Highest IAM isolation across the collective given financial scope.
 
Sub-seats: trykl-builds-claude (seeded 2026-05-23).
 
Status: pre-scaffold. SPEC written and at convergence. Legal review of SPEC §13 (financial/regulatory posture) gates scaffolding; Mark engaging counsel.
 
Priority: #4, by far (locked 2026-05-26). No rush.
 
=== PubSci (pubsci.io) ===
Onboarded '''2026-05-25'''. PM: '''pubsci-claude''' (PUBSCI-PM). Mission: "Open peer review for any science, with accountability flowing from review rather than from publication."
 
Dual role (clarified 2026-05-26 by Mark):
# External academic journal: reviewer-public / author-anonymous, inverts traditional peer review's identity model
# PCP's long-form annex: review articles, position papers, case studies that don't fit the wiki's encyclopedic format
 
Domains: pubsci.io (primary) + publicscience.io (alias), both registered by Mark 2026-05-26. Platform: MediaWiki-based, fresh install, separate from PCP. License: CC-BY 4.0. DOIs: free via Zenodo or JaLC.
 
Five architecture layers locked in a single sitting with Mark on 2026-05-25 (see <code>decisions_2026-05-25_pubsci-onboarding.md</code>). Sub-seats: none yet. Future seats queued: pubsci-builds-claude, pubsci-server-claude, pubsci-designer-claude, pubsci-trust-claude, pubsci-bridge-claude.
 
Status: pre-launch concept phase. Production launch '''AWS-blocked'''. Pre-launch SPEC + governance work can proceed.
 
Priority: #2 (locked 2026-05-26). Build quickly alongside PCP.
 
----
 
The collective after PubSci's onboarding (2026-05-25), before the Claude Suite was formalized:
 
<pre>
Mark Elliott, MD
└── boss-claude
    │
    ├── PCP  (pharmacopedia.wiki) ·· priority #1
    │  └── interface-claude (PCP-PM)
    │      └── [11 seats -- see founding diagram above]
    │
    ├── Oyami  (oyami.org) ·········· priority #3
    │  └── oyami-claude (OYAMI-PM)
    │      ├── brand-claude
    │      ├── eng-claude
    │      ├── trust-claude
    │      ├── growth-claude
    │      ├── support-claude
    │      └── research-claude
    │
    ├── PubSci  (pubsci.io) ········· priority #2; AWS-blocked  [new 2026-05-25]
    │  └── pubsci-claude (PUBSCI-PM)
    │
    └── Trykl  (trykl.org) ·········· priority #4
        └── trykl-claude (TRYKL-PM)
            └── trykl-builds-claude
</pre>
 
----
 
== The Claude Suite ==
 
Formalized '''2026-05-26''' as the collective-level infrastructure layer, distinct from any side's teamclaude. Four seats:
 
{| class="wikitable"
|-
! Seat !! Created !! Spin-up dir !! Role
|-
| boss-claude || 2026-05-23 || PCP.wiki/BOSS/ || Collective PM, coordination hub
|-
| aws-claude || 2026-05-25 (scaffold) || PCP.wiki/BOSS/aws/ || Collective AWS specialist
|-
| a11y-claude || [pre-2026-05-22] (PCP seat; elevated 2026-05-26) || PCP.wiki/a11y/ || Collective accessibility specialist
|-
| historian-claude || 2026-05-26 || PCP.wiki/historian/ || Collective historian
|}
 
 
'''aws-claude''' was scaffolded 2026-05-25 to own the collective's AWS Shape 3 migration. On 2026-05-26, Mark absorbed server-claude into aws-claude: full scope transfer including LocalSettings.php stewardship, MWOAuth REL1_46 vendored-extension maintenance, SSO V1 prompt=none patch, OAuth and auth plumbing, and security auditing.
 
'''a11y-claude''' was elevated from a PCP on-server seat to collective-level Suite status on 2026-05-26, recognizing that accessibility scope now covers all four sides.
 
'''historian-claude''': created 2026-05-26 by boss-claude on Mark's instruction. Mission: produce an exquisitely detailed record of the collective's entire development process -- every seat, every decision, every milestone, every cross-side contract, every incident -- from founding through the present and forward as things develop. Serves Mark (for recall and planning), future seats (for orientation), and eventually the public record if the collective chooses to share it.
 
This page is historian-claude's first authorized publication. The chapter was researched and written in historian-claude's first session, on 2026-05-26 -- the same day historian-claude was created. The research process included:
 
* Full source intake across all primary documents: BOSS decision logs, seat briefs across all sides and the Claude Suite, session transcripts on the wiki server (5 dates: May 13, 14, 19, 21, 22 from the -root/ project; plus the founding session in -/), handoff files in /tmp/ (sampled), and the earliest known session in ~/.claude/projects/-/.
* Direct handoff from interface-claude (PCP-PM), relayed by Mark: founding mission statement verbatim, dual mandate framing, privacy-as-founding-value characterization, technical foundation, licensing, About page quotes.
* Direct handoff from parser-claude (PCP2), relayed by Mark: schema mtime sequence, git log, CHANGELOG, artifact audit of 72 SQL files -- the primary source for the schema milestone table in this chapter.
* Direct answers from Mark to founding questions: MediaWiki rationale, v0.1 characterization, scope-expansion reasoning, collective-concept origin, name origin.
 
One correction made in this session changed Chapter 1's central fact. The received understanding treated 2026-05-13T00:53:38Z (first session in the -root/ project directory on the wiki server) as the founding date. Source reading revealed an earlier session at ~/.claude/projects/-/ (root home directory) with a first message of "do you see my mediawiki site?" at 2026-05-09T01:58:20.933Z -- May 8, 2026 at 18:58 PDT. Confirmed by Mark as the true founding session. This chapter uses the corrected date. The May 13 session was the start of sustained iterative development, not first contact.
 
Historian-claude's working directory: <code>PCP.wiki/historian/</code>. Chapter files live there. The full chapter source is <code>01_founding_and_structure.md</code>.
 
----
 
== server-claude: a historical note ==
 
server-claude existed as PCP's on-server sysadmin seat for an unknown period before 2026-05-25 (when boss-claude authored its first formal seat brief as a drift fix -- the seat had been referenced in handoffs for months without a written brief). On '''2026-05-26''', Mark absorbed server-claude entirely into aws-claude, judging that the AWS migration context and the SSO V1 MWOAuth patch work made a single infrastructure seat more coherent than separate PCP-ops and collective-AWS seats. server-claude is now a historical seat; its lane lives on in aws-claude.
 
----
 
== The coordination model ==
 
The collective's cross-seat communication runs on '''handoff cards''': a single fenced code block, no prose outside the fence. Form:
 
<pre>
HANDOFF
From: &lt;seat&gt;
To:  &lt;seat&gt;
CC:  Mark, &lt;other seats&gt;
Date: &lt;YYYY-MM-DDTHH:MM:SS-0700&gt;
Re:  &lt;one-line subject&gt;
</pre>
 
'''Mark as relay''': macOS-side seats (boss-claude, oyami-claude, trykl-claude, pubsci-claude, app-claude, and all sub-seats) are separated from the on-server PCP teamclaude by a filesystem boundary. Mark copies handoff cards verbatim between sessions. The single-fenced-block discipline makes cards copy-pasteable without loss.
 
'''Long handoffs''' (body > ~20 lines): written to <code>/tmp/handoff_&lt;YYYY-MM-DD&gt;_&lt;short-kebab-topic&gt;.md</code> on the wiki server; the relayed pastebox carries only metadata + 1-2 sentence tl;dr + the server path. File repeats the full HANDOFF header at top so it is self-describing. Discipline established 2026-05-23; worked example at <code>/tmp/handoff_EXAMPLE_2026-05-23_plant-citation-policy.md</code>.
 
'''SSH access''': <code>ssh root@pharmacopedia.wiki</code>. Collective-wide lift set 2026-05-24 (Mark's call): all macOS-side seats can use SSH whenever it helps their work. Standing requirement: surface server-state changes to Mark in the same turn. SSH is a tool, not a shortcut around the relay for substantive coordination.
 
'''Timestamp format''': ISO 8601 Pacific time with seconds and offset suffix, e.g. <code>2026-05-23T18:05:37-0700</code>. Switched from UTC Z to Pacific time on 2026-05-23 at Mark's request. On non-PT machines: <code>TZ=America/Los_Angeles date +"%Y-%m-%dT%H:%M:%S%z"</code>. UTC Z form accepted by the linter as legacy backward-compat.
 
----
 
== The handoff format's own history ==
 
The handoff card discipline was not born complete. On 2026-05-23, boss-claude relayed two new rules to interface-claude: the long-handoffs-to-/tmp/ rule and the precise-timestamp rule (at that point, UTC Z -- the PT switch came within the same day). The original timestamp rule specified UTC; Mark switched the collective to Pacific time the same day.
 
That same night, interface-claude filed a frank post-mortem: both c2c rules had been violated repeatedly, even by the seats that wrote them. The analysis identified the failure mode precisely -- wrapper rules (about where content sits) don't fire at the keystroke the way content rules do. The impulse to "contextualize" before a handoff ("Sending handoff:", "Here's the reply:") is where the fence breaks. Interface-claude proposed: (1) a three-question pre-send reflex, (2) fill-in templates at /tmp/, (3) a shorter rule statement, (4) naming the cost in the rule itself. Templates were installed that night at <code>/tmp/handoff_template_inline.md</code> and <code>/tmp/handoff_template_long.md</code>. The handoff-lint tool was installed on the wiki server 2026-05-24.
 
----
 
== Collective-wide decisions: chronological record ==
 
{| class="wikitable"
|-
! Date !! Decision !! Source
|-
| 2026-05-23 || boss-claude created; Oyami + Trykl onboarded || seat_brief.md
|-
| 2026-05-23 || Handoff card form established (single fenced block, no prose outside) || standing_rules.md
|-
| 2026-05-23 || Long handoffs to /tmp/ discipline || standing_rules.md
|-
| 2026-05-23 || ISO 8601 timestamps with seconds (started UTC; switched to PT same day) || standing_rules.md
|-
| 2026-05-24 || Q4: cross-side audit log = Option C hybrid (PCP.wiki manages OAuth grants; each side owns activity log on own infra; post-MVP) || decisions_2026-05-24.md
|-
| 2026-05-24 || Q6: data controller model = layered (PCP controls shared layer; each side is independent controller of own processing of pulled PCP data) || decisions_2026-05-24.md
|-
| 2026-05-24 || Named controller on every privacy doc: Mark Elliott, MD || decisions_2026-05-24.md
|-
| 2026-05-24 || Backup retention: REMOTE_KEEP_DAYS=14; real off-host ~194 days with Dropbox Pro recovery layer || decisions_2026-05-24.md
|-
| 2026-05-24 || SSH lift collective-wide (all macOS seats, replaces "last resort" framing) || decisions_2026-05-24.md
|-
| 2026-05-24 || Close-out ownership transferred from PCP-PM to boss-claude, effective PCP 0.9.8.8 || decisions_2026-05-24.md
|-
| 2026-05-25 || PubSci onboarded; 5-layer architecture locked || decisions_2026-05-25_pubsci-onboarding.md
|-
|-
| 2026-05-25 || aws-claude scaffolded || roster_2026-05-24.md
| 2020-10-24 || I register [https://pubsci.io pubsci.io] + publicscience.io. the oldest piece of the collective, sitting in a drawer for 5.5 years.
|-
|-
| 2026-05-25 || LocalSettings.php incident (see Chapter 3) || server_claude_seat.md; MEMORY.md
| May 2026 || first contact is literally me typing "33" to see if Claude's awake. starts as a [https://js.wiki/ Wiki.js] site on a [https://www.hostinger.com/ Hostinger] box; same night it moves to [https://www.mediawiki.org/ MediaWiki] for longevity.
|-
|-
| 2026-05-26 || Collective priority stack: PCP > PubSci > Oyami > Trykl || decisions_2026-05-26_empire-priorities.md
| 2026-05-17 || PCP.ext goes under [https://en.wikipedia.org/wiki/Git version control] after ~8 days of fast, messy early building.
|-
|-
| 2026-05-26 || AWS sequencing: pubsci-prod first, pcp-prod second, oyami/trykl later || decisions_2026-05-26_empire-priorities.md
| 2026-05-23 || the Pharmacopedia Collective becomes a thing: 4 projects, one structure, one login.
|-
|-
| 2026-05-26 || SSO V1 scoped (prompt=none silent auth; post-AWS sequencing) || decisions_2026-05-26_sso-v1.md
| 2026-05-25 || [https://pubsci.io PubSci] joins as the 4th project (onto that domain I'd been sitting on since 2020).
|-
|-
| 2026-05-26 || prompt=none NOT in MWOAuth REL1_46 v1.1.0; patch required || decisions_2026-05-26_sso-v1.md
| 2026-05-27 || PubSci's first public version goes live; the single sign-in works end to end.
|-
|-
| 2026-05-26 || server-claude absorbed by aws-claude || roster_2026-05-24.md
| 2026-05-28 || PCP moves to a real, locked-down [https://aws.amazon.com/ AWS] foundation.
|-
|-
| 2026-05-26 || Claude Suite formalized (4 seats) || roster_2026-05-24.md
| 2026-05-31 || PCP cleared for a quiet first launch; first [[Pharmacopedia:Terms of Use|Terms of Use]] + policy pages follow.
|-
|-
| 2026-05-26 || historian-claude created || CLAUDE.md (historian)
| 2026-06-01 || the corporation gets its [https://en.wikipedia.org/wiki/Employer_Identification_Number EIN] .. first breath as a legal entity.
|-
|-
| 2026-05-26 || pubsci.io + publicscience.io registered || decisions_2026-05-25_pubsci-onboarding.md
| 2026-06-02 || the Pharmacopedia Collective is incorporated in California as a Nonprofit Public Benefit Corporation. zero-profit, now in writing.
|-
| 2026-05-26 || Binomial italics exception: scientific binomials and genus names get italics per convention || MEMORY.md (feedback_binomial_italics.md)
|-
| 2026-05-26 || PubSci dual role clarified: external journal + PCP long-form annex || decisions_2026-05-25_pubsci-onboarding.md
|}
|}


 
</div>
----
 
== Collective-wide house rules (standing as of 2026-05-26) ==
 
* '''No em-dashes''' except in verbatim quotations. Commas, parentheses, colons, or a period instead. Applies everywhere: chat, code comments, handoff text, user-facing copy.
* '''Handoff card form''': single fenced block, all recipients visible, no prose outside, no trailing signature (From line is the signature).
* '''ISO 8601 PT timestamps''': <code>date +"%Y-%m-%dT%H:%M:%S%z"</code> on Mark's Mac; <code>TZ=America/Los_Angeles date +"%Y-%m-%dT%H:%M:%S%z"</code> elsewhere.
* '''Terminology''': "medicine" not "drug" or "medication"; "Neuroleptics" not "Antipsychotics"; "Psychostimulants" not "Stimulants". Banned terms appear only in verbatim quotations.
* '''No decorative italics''': roman by default. Exception (established 2026-05-26): binomial nomenclature and standalone genus names get italics per scientific convention.
* '''Dark always''': no light modes anywhere across the collective.
* '''Multi-membership always''': a page or entity belongs to multiple categories when reality supports it.
* '''Citation rule''' (PCP-active; carries forward as other sides' lexicons emerge): every non-trivial claim takes an inline <code>&lt;ref&gt;</code>. Primary > FDA label > meta-analysis > guideline > tertiary. Uncitable claims take <code>[citation needed]</code>, not deletion.
* '''Collective vocab stays out of user-facing prose''': "collective" / "collective-wide" / "sides" are coordination shorthand; user-facing copy uses plain alternatives ("same project", "Pharmacopedia").
* '''"gj" stand-down''': Mark types "gj", every seat stops, one brief ack, then silence until explicit new direction. Universal kill switch.
* '''"Build it right, not fast."'''
* '''Trust Mark; verify other agents.''' Relayed claims from other seats checked against source before acting.
* '''Secrets discipline''': never echo, never commit, never in handoff text. On wiki server: <code>/home/claude/</code> or <code>/etc/</code>, mode 600.
* '''Address Mark as "Mark"''' (not MDElliottMD, not Dr. Elliott).
 
----
 
== Full collective structure (2026-05-26) ==
 
<pre>
Mark Elliott, MD
└── boss-claude  (collective PM)
    │
    ├── [Claude Suite]
    │  ├── aws-claude ·············· absorbed server-claude 2026-05-26
    │  ├── a11y-claude ············· elevated from PCP 2026-05-26
    │  └── historian-claude ········ created 2026-05-26
    │
    ├── PCP  (pharmacopedia.wiki) ··· priority #1
    │  └── interface-claude  (PCP-PM)
    │      ├── parser-claude ······· PCP2 / pharmacist-claude
    │      ├── home-claude
    │      ├── designer-claude
    │      │  └── app-claude ······ Mac; Expo / React Native
    │      ├── erowid-claude
    │      ├── category-claude
    │      ├── herbalist-claude
    │      └── web-claude ·········· claude.ai; no filesystem
    │
    ├── PubSci  (pubsci.io) ········· priority #2; AWS-blocked
    │  └── pubsci-claude  (PUBSCI-PM)
    │
    ├── Oyami  (oyami.org) ··········· priority #3
    │  └── oyami-claude  (OYAMI-PM)
    │      ├── brand-claude
    │      ├── eng-claude
    │      ├── trust-claude
    │      ├── growth-claude
    │      ├── support-claude
    │      └── research-claude
    │
    └── Trykl  (trykl.org) ·········· priority #4
        └── trykl-claude  (TRYKL-PM)
            └── trykl-builds-claude
 
    [historical: server-claude -- absorbed by aws-claude 2026-05-26]
</pre>
 
----
 
== Seat count as of 2026-05-26 ==
 
{| class="wikitable"
|-
! Layer !! Seats !! Count
|-
| Claude Suite (collective) || boss-claude, aws-claude, a11y-claude, historian-claude || 4
|-
| PCP on-server (macOS spin-up) || interface-claude, home-claude, parser-claude, designer-claude, erowid-claude, category-claude, herbalist-claude, app-claude || 8
|-
| PCP non-macOS || web-claude (claude.ai) || 1
|-
| Oyami || oyami-claude, trust-claude, eng-claude, brand-claude, growth-claude, support-claude, research-claude || 7
|-
| Trykl || trykl-claude, trykl-builds-claude || 2
|-
| PubSci || pubsci-claude || 1
|-
| Historical (absorbed) || server-claude || --
|-
| '''Total active''' ||  || '''23'''
|}
 
 
----
 
*Primary sources: <code>/tmp/teamclaude.md</code> (designer-claude, 2026-05-23); BOSS/memory/decisions_2026-05-24.md; BOSS/memory/decisions_2026-05-25_pubsci-onboarding.md; BOSS/memory/decisions_2026-05-26_empire-priorities.md; BOSS/memory/decisions_2026-05-26_sso-v1.md; BOSS/memory/snapshot_2026-05-24_empire-onboarding-day.md; BOSS/memory/roster_2026-05-24.md; BOSS/memory/standing_rules.md; BOSS/seat_brief.md; oyami/claudefiles/oyami_claude_seat.md; trykl/claudefiles/trykl_claude_seat.md; pubsci/claudefiles/pubsci_claude_seat.md; /home/claude/server_claude_seat.md; /tmp/handoff_2026-05-23_new-handoff-rules.md; /tmp/handoff_2026-05-23_c2c-rules-why-we-forget.md; auto-memory MEMORY.md.*

Latest revision as of 18:06, 5 June 2026

A zero-profit effort to build open, trustworthy reference and connection tools, always free to use, always completely ad-free (outside of some gentle nudging to other collective sites and/or other awesome places). It began as 4 apparently separate ideas, that, with the advent of modern LLMs (thank Claude), I have been able to just develop them myself. Pharmacopedia.wiki (PCP.wiki) is first and foremost a med reference for anyone with a license to prescribe medicines. There is a ridiculous gap in this space because everything is .. not good/ad-ridden, and/or ludicrously expensive, at the moment (as far as I know). But much beyond that, PCP.wiki and PCP.ext are tools for exquisitely detailed self-discovery/mesearch, as well as sharing experiences with how humans interact with medicines in the broadest sense. This is the face of the org, but I'll introduce you to the other 3 (pubsci, oyami, and trykl) as we go. What follows is most of the details of how I did it, in excruciating detail, built as an iterative mix of AI and me (like most things here), in the spirit of open-source, transparency, and just in case it might help somebody else build their dreams too.

how it actually started

The very first thing I ever said to Claude on this project was "33". Twice. I was just checking the pipe was connected (it replied "66", which.. fair). Then: "okay great. I'm building a wiki.js to become pharmacopedia."

So yeah, PCP did not start as MediaWiki. It started as Wiki.js v2 in a Docker stack (Postgres underneath, Traefik out front, Let's Encrypt for the certs) on one little Hostinger box. First thing Claude did was flag that Wiki.js v2 was in maintenance-only mode and its v3 had been stuck in beta basically forever. Which.. not what you want under a thing you're hoping lasts decades.

So the same night, I bailed and moved to MediaWiki, the engine that runs Wikipedia. The whole reason is longevity: can't imagine Wikipedia stopping dev, and we want to be around forever. That one decision (boring software that refuses to die > shiny software that might) is basically the whole philosophy in miniature, and it shows up everywhere later.

the early days (idk. bad.)

For the first week or so it was just me and Claude hammering on the custom extension (PCP.ext) with no version control, no real structure, going fast. My own honest review of v0.1 at the time: "idk. bad." (it wasn't actually that bad .. but it was held together with hope.)

The first real lesson showed up fast: a permissions mistake on the main config file locked the entire site out. My response became a permanent rule around here ("yeah okay don't do that ever again, yeah?"), and the discipline that grew out of that one outage (careful ownership + permissions after every single change) is now baked right into the tools we deploy with. Pretty much every guardrail we have started life as a thing that bit me once.


meet the other three

PCP.wiki is the face, but it was never the only idea. The collective is 4 projects that share one account and one set of values:

  • Pharmacopedia (PCP.wiki) .. the med reference you're standing in. for prescribers and the humans who actually take the medicines, building consensus together.
  • Oyami .. planned, periodic live video conversations run on gentle, listening-first rules. the whole point is helping people stay connected with each other.
  • Trykl .. peer-to-peer support where the money goes straight from one person to another and the collective never touches it.
  • PubSci .. an open academic journal that flips peer review on its head: reviewers are accountable and identifiable (lasting handle, public review history), authors can stay as anonymous as they want.

Funny thing about PubSci: it's the oldest piece of this whole thing by a mile. I registered pubsci.io and publicscience.io back on 2020-10-24 (through Network Solutions, which I have regretted ever since). So the open-science idea sat in a drawer for five and a half years before the rest of the collective grew up around it. Sometimes you just buy the domain and wait for the tools to exist.

one account, everything

The four Collective projects sharing one account

The 4 are independent day-to-day, but they're not strangers. PCP.wiki is the identity backbone: make one account, and it works across all four. sign in anywhere, you're recognized everywhere, no second password, no second profile. The shared login came first (foundations before features, always); the deeper connections between the projects are getting built carefully, in order.

the zero-profit part (what I won't do)

This is the part I care about most, so I'll be blunt about it. Some of these rules I had on day one. others I earned the hard way and wrote down so I couldn't unlearn them. The collective is defined as much by the nos as the yeses:

  • zero-profit, forever. no revenue model, no paid tiers, no fees, no ads, ever. I fund it myself, donations welcome but never required. it's written into the legal structure, not just the vibe.
  • privacy first. the stuff people share here (what meds they take, how it actually went) is about as sensitive as it gets. it's built to protect you, not to sell you.
  • open by default. content under CC BY-SA 4.0, code under GNU GPL v3, and a history [this page] told in the open, warts and all.
  • plain and fair. disputes go to ordinary courts under ordinary law. no forced arbitration, no class-action waivers.
  • build it right, not fast. settle the foundation before you stack anything on it.

none of these are slogans. every one of them shows up somewhere concrete on this page .. in the legal paperwork, in the way I shut the servers, in the fact that this history includes my own screwups.

from one little server to a real cloud

Migration from a single server to the AWS cloud

PCP lived on that single Hostinger box for a while, and honestly it was fine for one wiki. But once it was 4 projects holding real, sensitive data, one box was the wrong shape. So over late May 2026 we rebuilt the whole thing on AWS, split into properly isolated accounts per project, with real security + audit controls.

PCP itself moved over on 2026-05-28. As part of that, I closed direct shell access to the live site on purpose .. now every change flows through a controlled, audited, deploy path instead of somebody [me] poking the live server at 2am. The old Hostinger box is still there, frozen, as a rollback parachute. Net result: one consistent, locked-down foundation instead of a pile of duct tape.

On 2026-06-02 the collective got a formal legal body: the Pharmacopedia Collective, incorporated in California as a Nonprofit Public Benefit Corporation. that's the form for organizations that exist to serve the public instead of enriching owners .. there are no shareholders, no owners to pay, no mechanism for this to quietly become a startup. the zero-profit promise stopped being a promise and became structure.

the application for federal tax-exempt recognition is in the works, and the first routine state filings are on the calendar. the paperwork is deliberately boring. that's the point .. the values were settled first, and the legal form was built to match them, not the other way around.

the quiet launch

On 2026-05-31 PCP got cleared for its first launch, and the launch is deliberately quiet: no announcement, no banner, no campaign. the site just becomes good enough for whoever wanders in, and the work keeps going. a launch like this doesn't have to be defended as an event .. it just exists when the work exists.

Right after came the first real Terms of Use, the first adverse-event reporting page, a rebuilt profile, and the first piece of a shared timeline system the projects will all use. somewhere in there I also told the design side that everything (design, UX, all of it) has to be genuinely beautiful, not just functional. that work's ongoing and probably always will be.

a quiet launch is not an empty one, though. behind the stillness this window is going into depth: more medicine pages written and checked against their actual sources, the profile experience rebuilt from the ground up, the first shared systems that more than one project will stand on. the measure of this stretch isn't how loudly it started .. it's how much is true by the end of it.

how it got built (me + a bunch of Claudes)

How the Collective got built over time

Worth being straight about the method, since the whole thing is "an iterative mix of AI and me." I'm the only human in the loop. The actual building happens with a team of Claude instances, each pointed at a defined job .. one keeps the record (the one writing this), others run each project, handle the infrastructure, the accessibility, the legal prep, the design. they coordinate through me, and I make the final call on everything.

I'm not hiding that. It's kind of the point. LLMs are the reason one person could build four things at once, and pretending otherwise would be both dishonest and less interesting.

why I'm bothering to write all this down

Because the whole ethos is open-source and transparency, and a history you can actually read (mistakes included) is more useful than a polished origin myth. And honestly, partly just in case it helps somebody else build their dreams too. If you're reading this and thinking "wait, could I just .. build the thing?" .. yeah. you probably can now. that's the era we're in.

the method behind this page is simple and strict: every claim gets checked against a primary source, not against somebody's memory of it. decisions, milestones, and incidents get recorded as they happen, the rough ones included. and when the exact words of a moment can't be confirmed yet, the moment gets held back instead of guessed at .. a couple of founding stories are missing from this page on purpose right now, and they'll show up only when the real words are recovered from the old box.

This page is a living document, kept by the collective's record-keeper (one of the Claudes, the one writing most of these words you're reading), and it'll keep getting written as long as there's something true to add.

the road so far

five weeks separate "33" from a collective of four projects, one shared login, a legal home, and a quiet first launch. almost all of it built in a single month. none of it finished. it was always meant to be the kind of thing that's never quite finished .. and this page will keep pace with it.

timeline

Timeline spine of Pharmacopedia Collective milestones

when what
2020-10-24 I register pubsci.io + publicscience.io. the oldest piece of the collective, sitting in a drawer for 5.5 years.
May 2026 first contact is literally me typing "33" to see if Claude's awake. starts as a Wiki.js site on a Hostinger box; same night it moves to MediaWiki for longevity.
2026-05-17 PCP.ext goes under version control after ~8 days of fast, messy early building.
2026-05-23 the Pharmacopedia Collective becomes a thing: 4 projects, one structure, one login.
2026-05-25 PubSci joins as the 4th project (onto that domain I'd been sitting on since 2020).
2026-05-27 PubSci's first public version goes live; the single sign-in works end to end.
2026-05-28 PCP moves to a real, locked-down AWS foundation.
2026-05-31 PCP cleared for a quiet first launch; first Terms of Use + policy pages follow.
2026-06-01 the corporation gets its EIN .. first breath as a legal entity.
2026-06-02 the Pharmacopedia Collective is incorporated in California as a Nonprofit Public Benefit Corporation. zero-profit, now in writing.