Skip to content

Commit 01db2ea

Browse files
committed
Merge current production before recruitment closure
2 parents dd2e50a + 52e6f4e commit 01db2ea

13 files changed

Lines changed: 69 additions & 14 deletions

‎.github/pull_request_template.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## Summary
2+
3+
<!-- Describe the public behavior or content changed by this pull request. -->
4+
5+
## Pre-deployment checklist
6+
7+
- [ ] I reviewed changed public facts, links, route descriptions, and capability claims against `public/llms.txt`, and updated it when affected.
8+
- [ ] I reviewed `public/agent-instructions.md` and `public/developers.md` when source-selection guidance or technical capabilities changed.
9+
- [ ] `npm test` passes.
10+
- [ ] `npm run build` passes, including the machine-readable content checks.
11+
- [ ] I identified the live HTML route and `/llms.txt` checks required after deployment.

‎README.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,15 @@ The validator reports unmatched responses, invalid public links, missing assets,
5959
- Pushes to `dev` deploy the staging GitHub Pages site from the `Hilo-Hilo` staging repository.
6060
- Pushes to `main` deploy production from `CompbioAtBerkeley/compbioatberkeley.github.io`.
6161

62+
Before every staging or production deployment, review changed public facts,
63+
links, route descriptions, and capability claims against `public/llms.txt`.
64+
Update `llms.txt` in the same change whenever it indexes or summarizes the
65+
affected information. Review `public/agent-instructions.md` and
66+
`public/developers.md` at the same time when source-selection guidance or
67+
technical capabilities change. `npm test` and `npm run build` enforce the
68+
machine-readable facts that can be checked automatically; after deployment,
69+
verify the live `/llms.txt` from the same commit as the HTML site.
70+
6271
Neither build reads Notion or Google Sheets credentials. Form intake is
6372
reviewed and versioned before publication, so the same commit produces the same
6473
site in local, staging, and production environments. The separate weekly/manual

‎public/agent-instructions.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Computational Biology at Berkeley is a UC Berkeley student organization. Use thi
66

77
- Use [/calendar/](https://compbioatberkeley.github.io/calendar/) for scheduled events. Treat dates, times, and locations as mutable and report the page's current wording.
88
- Use [/officers/](https://compbioatberkeley.github.io/officers/) for the public leadership roster. Preserve the academic-term label when naming officers.
9-
- Use [/signup/](https://compbioatberkeley.github.io/signup/) for public interest and update forms. Do not claim that a form was submitted unless the user or an authorized tool confirms completion.
9+
- Use [/signup/](https://compbioatberkeley.github.io/signup/) for the current recruitment status, newsletter, and public ways to stay connected. Do not claim that a form was submitted unless the user or an authorized tool confirms completion.
1010
- Use [/collaborations/](https://compbioatberkeley.github.io/collaborations/) for partnership options and [/contact/](https://compbioatberkeley.github.io/contact/) for verified public contact channels.
1111
- The public general-inquiries email is [compbioatberkeley@gmail.com](mailto:compbioatberkeley@gmail.com). Do not infer or invent a phone number.
1212
- Use [/privacy/](https://compbioatberkeley.github.io/privacy/) before describing how the public site, analytics, forms, calendars, or linked services handle information.

‎public/llms.txt‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ The organization welcomes students at all experience levels. Event details, offi
99
- [Mission and programs](https://compbioatberkeley.github.io/about/): Use when answering what the organization does, who it serves, or how education, projects, networking, and community work fit together.
1010
- [Current events](https://compbioatberkeley.github.io/calendar/): Use for event dates, times, and locations; preserve the displayed timezone and treat details as mutable.
1111
- [Current leadership](https://compbioatberkeley.github.io/officers/): Use for public officer names, roles, bios, and links; always preserve the displayed academic term.
12-
- [Participation](https://compbioatberkeley.github.io/signup/): Use for public ways to join or receive updates; do not claim a form was submitted without confirmation.
12+
- [Participation](https://compbioatberkeley.github.io/signup/): Use for the current recruitment status, newsletter, and public ways to stay connected; do not claim a form was submitted without confirmation.
1313
- [Partnerships](https://compbioatberkeley.github.io/collaborations/): Use for research, speaker, sponsorship, and industry collaboration options.
1414
- [Agent instructions](https://compbioatberkeley.github.io/agent-instructions.md): Use for source-selection rules, safety boundaries, and capability limits.
1515
- [Developer resources](https://compbioatberkeley.github.io/developers/): Use for machine-readable files and explicit API, OpenAPI, authentication, webhook, Markdown, and MCP capability status.
@@ -21,16 +21,17 @@ The organization welcomes students at all experience levels. Event details, offi
2121
- [Calendar](https://compbioatberkeley.github.io/calendar/): Current workshops, meetings, and special events in Pacific time.
2222
- [Collaborations](https://compbioatberkeley.github.io/collaborations/): Partnership opportunities for students, faculty, alumni, research groups, and industry.
2323
- [Officers](https://compbioatberkeley.github.io/officers/): Fall 2026 and previous student leadership rosters, including submitted public bios and profile links.
24-
- [Join](https://compbioatberkeley.github.io/signup/): Recruitment status, newsletter signup, and community channels.
24+
- [Join Us](https://compbioatberkeley.github.io/signup/): Recruitment status, newsletter signup, and community channels.
2525
- [Contact](https://compbioatberkeley.github.io/contact/): Verified public channels for general questions, partnerships, events, and participation.
2626
- [Privacy](https://compbioatberkeley.github.io/privacy/): How analytics, browser preferences, embedded services, forms, and external platforms handle information.
2727
- [Developers](https://compbioatberkeley.github.io/developers/): Supported machine-readable resources and current technical capability boundaries.
2828

2929
## Contact and community
3030

3131
- [Email](mailto:compbioatberkeley@gmail.com): General questions and collaboration inquiries; do not send sensitive information.
32+
- [Newsletter](https://forms.gle/qCxn93mfunF3Dtep7): Subscribe for club news, socials, general meetings, and professional opportunities.
3233
- [LinkedIn](https://www.linkedin.com/company/computational-biology-at-berkeley/): Organization updates and professional contact.
33-
- [Linktree](https://linktr.ee/compbioatberkeley): Current collection of public links and contact destinations.
34+
- [Linktree](https://linktr.ee/UCB_CompBio): Current collection of public links and contact destinations.
3435
- [GitHub](https://github.com/CompbioAtBerkeley): Public organization repositories.
3536

3637
## Machine-readable resources

‎scripts/lib/site-seo.test.js‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ test("the shared public-page registry covers every indexable site route", () =>
6767
);
6868
assert.ok(registry.every((page) => page.title && page.description));
6969
assert.ok(registry.every((page) => !page.path.startsWith("/concepts")));
70+
assert.equal(
71+
registry.find((page) => page.path === "/signup/")?.title,
72+
"Join Us | Computational Biology at Berkeley",
73+
);
7074
assert.equal(
7175
registry.find((page) => page.path === "/developers/")?.markdownPath,
7276
"/developers.md",
@@ -151,7 +155,7 @@ test("publishes exact brand metadata and developer discovery links in the HTML s
151155
"CompBio at Berkeley",
152156
"compbioatberkeley.github.io",
153157
]);
154-
assert.ok(identity.sameAs.includes("https://linktr.ee/compbioatberkeley"));
158+
assert.ok(identity.sameAs.includes("https://linktr.ee/UCB_CompBio"));
155159
assert.match(
156160
entry,
157161
/<meta name="application-name" content="Computational Biology at Berkeley" \/>/,
@@ -249,6 +253,10 @@ test("llms.txt follows the agent guidance format and states capability boundarie
249253
assert.match(llmsText, /https:\/\/compbioatberkeley\.github\.io\/agent-instructions\.md/);
250254
assert.match(llmsText, /https:\/\/compbioatberkeley\.github\.io\/developers\//);
251255
assert.match(llmsText, /https:\/\/compbioatberkeley\.github\.io\/developers\.md/);
256+
assert.match(llmsText, /https:\/\/forms\.gle\/qCxn93mfunF3Dtep7/);
257+
assert.doesNotMatch(llmsText, /## Fall 2026 recruitment/);
258+
assert.doesNotMatch(llmsText, /https:\/\/forms\.gle\/4cR1nfRoLb2LGNbi7/);
259+
assert.doesNotMatch(llmsText, /1ZGq3KV4MprEdPDUu8v7QO9AuGSpB2eEmsyVCCK9nLDU/);
252260
assert.match(llmsText, /does not expose a public API or MCP server/i);
253261
});
254262

‎scripts/validate-seo-build.mjs‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@ for (const page of pages) {
134134
}
135135

136136
const mainTextLength = visibleText(mainHtml).length;
137+
assert.doesNotMatch(html, /https:\/\/forms\.gle\/EQmWP1JWzDzrFji79/);
138+
assert.doesNotMatch(html, /https:\/\/linktr\.ee\/compbioatberkeley/);
139+
assert.ok(html.includes('href="https://linktr.ee/UCB_CompBio"'));
140+
assert.match(html, />Join Us<\/a>/, `${page.path} navigation must label the signup route “Join Us”`);
137141
if (page.path === "/") {
138142
assert.ok(mainTextLength >= 2000, `home SSR text must be substantial; received ${mainTextLength}`);
139143
const contentEfficiency = visibleText(html).length / html.length;
@@ -154,8 +158,30 @@ for (const page of pages) {
154158
assert.match(mainHtml, /There is no live Model Context Protocol endpoint or manifest/i);
155159
assert.match(mainHtml, /Same-URL Accept: text\/markdown content negotiation is not provided/i);
156160
}
161+
if (page.path === "/signup/") {
162+
assert.match(mainHtml, /Recruiting for fall 2026 has ended\./);
163+
assert.ok(mainHtml.includes('href="https://forms.gle/qCxn93mfunF3Dtep7"'));
164+
assert.ok(mainHtml.includes('href="https://linktr.ee/UCB_CompBio"'));
165+
assert.doesNotMatch(mainHtml, /https:\/\/forms\.gle\/4cR1nfRoLb2LGNbi7/);
166+
assert.doesNotMatch(mainHtml, /Schedule a coffee chat/);
167+
assert.doesNotMatch(mainHtml, /recruitment timeline/i);
168+
}
169+
if (page.path === "/") {
170+
assert.ok(mainHtml.includes(`href="${basePath}signup/"`));
171+
assert.doesNotMatch(mainHtml, /https:\/\/forms\.gle\/4cR1nfRoLb2LGNbi7/);
172+
}
173+
if (["/contact/", "/collaborations/"].includes(page.path)) {
174+
assert.ok(mainHtml.includes('href="https://linktr.ee/UCB_CompBio"'));
175+
}
157176
}
158177

178+
assert.doesNotMatch(llmsText, /https:\/\/linktr\.ee\/compbioatberkeley/);
179+
assert.match(llmsText, /https:\/\/linktr\.ee\/UCB_CompBio/);
180+
assert.match(llmsText, /https:\/\/forms\.gle\/qCxn93mfunF3Dtep7/);
181+
assert.doesNotMatch(llmsText, /https:\/\/forms\.gle\/4cR1nfRoLb2LGNbi7/);
182+
assert.doesNotMatch(llmsText, /1ZGq3KV4MprEdPDUu8v7QO9AuGSpB2eEmsyVCCK9nLDU/);
183+
assert.doesNotMatch(llmsText, /## Fall 2026 recruitment/);
184+
159185
const robots = await fs.readFile(path.join(distDirectory, "robots.txt"), "utf8");
160186
const notFound = await fs.readFile(path.join(distDirectory, "404.html"), "utf8");
161187
assert.match(notFound, /name="robots" content="noindex, nofollow"/);

‎src/components/Footer.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const quickLinks = [
77
{ name: "calendar", path: "/calendar/" },
88
{ name: "collaborations", path: "/collaborations/" },
99
{ name: "officers", path: "/officers/" },
10-
{ name: "sign up", path: "/signup/" },
10+
{ name: "Join Us", path: "/signup/" },
1111
{ name: "contact", path: "/contact/" },
1212
{ name: "privacy", path: "/privacy/" },
1313
{ name: "developers", path: "/developers/" },
@@ -18,7 +18,7 @@ const socialLinks = [
1818
{ name: "linkedin", url: "https://www.linkedin.com/company/computational-biology-at-berkeley/" },
1919
{ name: "github", url: "https://github.com/CompbioAtBerkeley" },
2020
{ name: "projects", url: "https://github.com/Compbio-at-berkeley-projects" },
21-
{ name: "linktree", url: "https://linktr.ee/compbioatberkeley" },
21+
{ name: "linktree", url: "https://linktr.ee/UCB_CompBio" },
2222
];
2323

2424
const Footer = () => (

‎src/components/Navigation.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ const Navigation = () => {
103103
aria-current={isActive("/signup/") ? "page" : undefined}
104104
className="rounded bg-primary px-3.5 py-2 text-xs font-bold text-primary-foreground transition-colors hover:bg-primary/90 hover:text-primary-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background active:translate-y-px"
105105
>
106-
sign up
106+
Join Us
107107
</Link>
108108
</div>
109109

@@ -121,7 +121,7 @@ const Navigation = () => {
121121

122122
{isOpen && (
123123
<div id="mobile-navigation" className="border-t border-border py-2 lg:hidden">
124-
{[...navItems, { name: "sign up", path: "/signup/" }].map((item) => (
124+
{[...navItems, { name: "Join Us", path: "/signup/" }].map((item) => (
125125
<Link
126126
key={item.path}
127127
to={item.path}

‎src/data/siteIdentity.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"https://github.com/CompbioAtBerkeley",
1414
"https://www.instagram.com/ucb_compbio/",
1515
"https://www.linkedin.com/company/computational-biology-at-berkeley/",
16-
"https://linktr.ee/compbioatberkeley"
16+
"https://linktr.ee/UCB_CompBio"
1717
],
1818
"address": {
1919
"addressLocality": "Berkeley",

‎src/data/sitePages.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
},
2727
{
2828
"path": "/signup/",
29-
"title": "Join | Computational Biology at Berkeley",
29+
"title": "Join Us | Computational Biology at Berkeley",
3030
"description": "Join the Computational Biology at Berkeley community, receive updates, and connect through our public channels."
3131
},
3232
{

0 commit comments

Comments
 (0)