Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
11 changes: 11 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## Summary

<!-- Describe the public behavior or content changed by this pull request. -->

## Pre-deployment checklist

- [ ] I reviewed changed public facts, links, route descriptions, and capability claims against `public/llms.txt`, and updated it when affected.
- [ ] I reviewed `public/agent-instructions.md` and `public/developers.md` when source-selection guidance or technical capabilities changed.
- [ ] `npm test` passes.
- [ ] `npm run build` passes, including the machine-readable content checks.
- [ ] I identified the live HTML route and `/llms.txt` checks required after deployment.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,15 @@ The validator reports unmatched responses, invalid public links, missing assets,
- Pushes to `dev` deploy the staging GitHub Pages site from the `Hilo-Hilo` staging repository.
- Pushes to `main` deploy production from `CompbioAtBerkeley/compbioatberkeley.github.io`.

Before every staging or production deployment, review changed public facts,
links, route descriptions, and capability claims against `public/llms.txt`.
Update `llms.txt` in the same change whenever it indexes or summarizes the
affected information. Review `public/agent-instructions.md` and
`public/developers.md` at the same time when source-selection guidance or
technical capabilities change. `npm test` and `npm run build` enforce the
machine-readable facts that can be checked automatically; after deployment,
verify the live `/llms.txt` from the same commit as the HTML site.

Neither build reads Notion or Google Sheets credentials. Form intake is
reviewed and versioned before publication, so the same commit produces the same
site in local, staging, and production environments. The separate weekly/manual
Expand Down
2 changes: 1 addition & 1 deletion public/agent-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Computational Biology at Berkeley is a UC Berkeley student organization. Use thi

- Use [/calendar/](https://compbioatberkeley.github.io/calendar/) for scheduled events. Treat dates, times, and locations as mutable and report the page's current wording.
- Use [/officers/](https://compbioatberkeley.github.io/officers/) for the public leadership roster. Preserve the academic-term label when naming officers.
- 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.
- Use [/signup/](https://compbioatberkeley.github.io/signup/) for the current application, coffee-chat signup, recruitment timeline, newsletter, and public ways to join. Do not claim that a form was submitted unless the user or an authorized tool confirms completion.
- Use [/collaborations/](https://compbioatberkeley.github.io/collaborations/) for partnership options and [/contact/](https://compbioatberkeley.github.io/contact/) for verified public contact channels.
- The public general-inquiries email is [compbioatberkeley@gmail.com](mailto:compbioatberkeley@gmail.com). Do not infer or invent a phone number.
- Use [/privacy/](https://compbioatberkeley.github.io/privacy/) before describing how the public site, analytics, forms, calendars, or linked services handle information.
Expand Down
18 changes: 16 additions & 2 deletions public/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The organization welcomes students at all experience levels. Event details, offi
- [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.
- [Current events](https://compbioatberkeley.github.io/calendar/): Use for event dates, times, and locations; preserve the displayed timezone and treat details as mutable.
- [Current leadership](https://compbioatberkeley.github.io/officers/): Use for public officer names, roles, bios, and links; always preserve the displayed academic term.
- [Participation](https://compbioatberkeley.github.io/signup/): Use for public ways to join or receive updates; do not claim a form was submitted without confirmation.
- [Participation](https://compbioatberkeley.github.io/signup/): Use for the current application, coffee-chat signup, recruitment timeline, newsletter, and public ways to join; do not claim a form was submitted without confirmation.
- [Partnerships](https://compbioatberkeley.github.io/collaborations/): Use for research, speaker, sponsorship, and industry collaboration options.
- [Agent instructions](https://compbioatberkeley.github.io/agent-instructions.md): Use for source-selection rules, safety boundaries, and capability limits.
- [Developer resources](https://compbioatberkeley.github.io/developers/): Use for machine-readable files and explicit API, OpenAPI, authentication, webhook, Markdown, and MCP capability status.
Expand All @@ -21,11 +21,25 @@ The organization welcomes students at all experience levels. Event details, offi
- [Calendar](https://compbioatberkeley.github.io/calendar/): Current workshops, meetings, and special events in Pacific time.
- [Collaborations](https://compbioatberkeley.github.io/collaborations/): Partnership opportunities for students, faculty, alumni, research groups, and industry.
- [Officers](https://compbioatberkeley.github.io/officers/): Fall 2026 and previous student leadership rosters, including submitted public bios and profile links.
- [Join](https://compbioatberkeley.github.io/signup/): Interest form, newsletter signup, and community channels.
- [Join Us](https://compbioatberkeley.github.io/signup/): Fall 2026 application, coffee-chat signup, recruitment timeline, newsletter signup, and community channels.
- [Contact](https://compbioatberkeley.github.io/contact/): Verified public channels for general questions, partnerships, events, and participation.
- [Privacy](https://compbioatberkeley.github.io/privacy/): How analytics, browser preferences, embedded services, forms, and external platforms handle information.
- [Developers](https://compbioatberkeley.github.io/developers/): Supported machine-readable resources and current technical capability boundaries.

## Fall 2026 recruitment

- August 26: Applications and coffee chats open.
- [Application](https://forms.gle/4cR1nfRoLb2LGNbi7): Applications close September 11 at 5 PM.
- [Coffee chats](https://docs.google.com/document/d/1ZGq3KV4MprEdPDUu8v7QO9AuGSpB2eEmsyVCCK9nLDU/edit?usp=sharing): Current coffee-chat scheduling document.
- [Newsletter](https://forms.gle/qCxn93mfunF3Dtep7): Subscribe for club news, socials, general meetings, and professional opportunities.
- August 27: Calapalooza and tabling.
- September 2: Info session #1, 8–10 PM in Hildebrand B56.
- September 3: Meet the PMs and officers, 6–8 PM at the Glade.
- September 8: Applicant social, 6–8 PM; location TBD.
- September 9: Info session #2, 8–10 PM in VLSB 2030.
- September 12–13: Interviews.
- Re-fetch the [Join Us page](https://compbioatberkeley.github.io/signup/) before answering because recruitment dates, locations, and forms may change.

## Contact and community

- [Email](mailto:compbioatberkeley@gmail.com): General questions and collaboration inquiries; do not send sensitive information.
Expand Down
9 changes: 9 additions & 0 deletions scripts/lib/site-seo.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,15 @@ test("llms.txt follows the agent guidance format and states capability boundarie
assert.match(llmsText, /https:\/\/compbioatberkeley\.github\.io\/agent-instructions\.md/);
assert.match(llmsText, /https:\/\/compbioatberkeley\.github\.io\/developers\//);
assert.match(llmsText, /https:\/\/compbioatberkeley\.github\.io\/developers\.md/);
assert.match(llmsText, /## Fall 2026 recruitment/);
assert.match(llmsText, /https:\/\/forms\.gle\/4cR1nfRoLb2LGNbi7/);
assert.match(llmsText, /https:\/\/forms\.gle\/qCxn93mfunF3Dtep7/);
assert.match(
llmsText,
/https:\/\/docs\.google\.com\/document\/d\/1ZGq3KV4MprEdPDUu8v7QO9AuGSpB2eEmsyVCCK9nLDU\/edit\?usp=sharing/,
);
assert.match(llmsText, /September 11 at 5 PM/);
assert.match(llmsText, /September 12–13: Interviews/);
assert.match(llmsText, /does not expose a public API or MCP server/i);
});

Expand Down
10 changes: 10 additions & 0 deletions scripts/validate-seo-build.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,16 @@ for (const page of pages) {

assert.doesNotMatch(llmsText, /https:\/\/linktr\.ee\/compbioatberkeley/);
assert.match(llmsText, /https:\/\/linktr\.ee\/UCB_CompBio/);
assert.match(llmsText, /https:\/\/forms\.gle\/4cR1nfRoLb2LGNbi7/);
assert.match(llmsText, /https:\/\/forms\.gle\/qCxn93mfunF3Dtep7/);
assert.match(
llmsText,
/https:\/\/docs\.google\.com\/document\/d\/1ZGq3KV4MprEdPDUu8v7QO9AuGSpB2eEmsyVCCK9nLDU\/edit\?usp=sharing/,
);
assert.match(llmsText, /September 2: Info session #1, 8–10 PM in Hildebrand B56/);
assert.match(llmsText, /September 9: Info session #2, 8–10 PM in VLSB 2030/);
assert.match(llmsText, /September 11 at 5 PM/);
assert.match(llmsText, /September 12–13: Interviews/);

const robots = await fs.readFile(path.join(distDirectory, "robots.txt"), "utf8");
const notFound = await fs.readFile(path.join(distDirectory, "404.html"), "utf8");
Expand Down