Building the Nevada AI Research Institute Website

Detailed edition · Overview edition

This playbook, like the software it describes, was written by an AI agent under the direction of its user. Nothing in it has been reviewed by security, privacy or university IT specialists. It describes a working prototype on a single machine, not a production university service.

Contents

1. Abstract

This playbook records how the website of the Nevada AI Research Institute (NAIRI) at the University of Nevada, Reno was built by talking to Claude, an AI coding agent from Anthropic, in Claude Code. The site is a Django and PostgreSQL application on a single Ubuntu machine. It lists AI funding calls, faculty and their publications, projects, events, playbooks, videos, news and a blog. An administrative assistant curates it from a review queue and can edit any wording on the site in place.

The first day, 7 September 2026, produced the plan, the running site, a daily agent that searches Grants.gov and other sources for funding calls and new faculty, and a first real crawl. The rest came in short sittings over the next four weeks:

The user wrote 102 prompts and no code. The agent wrote about 16,000 lines of Python, including 464 tests, in about 50 commits, over about 11½ hours of working time. With no API key, relevance is scored by keywords rather than a language model, and the weekly newsletter, the chat assistant and the local-model connection are not yet built.

The playbook gives the prompts verbatim, leaving out 17 housekeeping ones, with what the agent did and where the user's judgement changed the course. No security, privacy or university IT specialist has reviewed it.

2. How to read this

Section 3 is the conversation, in order, grouped by topic. Each prompt appears with a heading and a line of metadata:

Then come the prompt, verbatim, including its typos; a condensed account of what the agent did, quoting it where the wording matters; and, where it helps, how this steered the work. Boxes marked Needs expert review flag what a specialist would have to check. Screenshots are of the site as published on 29 September 2026; there are none from earlier, so they show where the work ended up, not how it looked at each step.

Four things are specific to this project:

A few terms recur:

3. The conversation

3.1 Scoping and the plan (prompts 1–8)

Prompt 1 · Mon 7 Sep 2026, 13:14 PDT

Model: Fable 5.1 · agent time: 12 min · 7 tool calls

Words marked […] were removed from this quote at the user's request.

I want to 1. Install a database backed website for the Nevada AI Research Institute at UNR. […] The website will connect faculty interested in AI at UNR. We want to highlight AI related funding opportunities, funded and unfunded projects, upcoming events, and such. We also want an easy interface through an admin role to access and validate the entries in the database from which the website is populated. We want an agent that runs every day to scour federal, state, industry and other promising websites for new funding opportunities, new faculty that have joined UNR that might be interested in AI, and for any results from Nevada AI Research Institute (NAIRI) catalyzed projects to be a candidate for being highlighted on the website. Curated websites should be validated and stored in a database table. Note that projects need not be funded and might simply involve help given to local businesses and their success with AI. We will want people to create an account on the website so that they can register to receive a weekly email. This email will be drafted by an AI - a local open weight AI running on a dgx spark on this network and then edited by the admin before being sent out to everyone through […] UNR email. I will also want support for an AI conference we will be holding once a year for the state. This conference will include academia, industry, state government, K-12, utilities, and others. We will also host a library or repository of AI playbooks which will need to categorized and be searchable. Faculty should be able to find suitable partners in order to quickly form teams and apply for funding. We will also need a youtube channel for project and other videos or we will need our own self hosted video respository. What else might be a good idea to get the NAIRI website off the ground and received well? Ask. We want a good business - like website, clean, modern, but warm and sporting some subtle hint of UNR wolfpack blue. We should identify ourselves as part of the Pack AI initiative. The website database curator will be an admin assistant so make sure the curaton can be done really easily. The website itself will be maintained by our system administrator. Ask questions, then make a good plan, then we can go step by step. Once the plan is approved we can switch to Opus and sonnet for execution.

What the agent did. It looked at the machine first (Ubuntu, a home network address, the installed software), then wrote PLAN.md: Django with PostgreSQL, Redis, Celery and Caddy; a review queue built for a non-programmer instead of the raw Django admin; a daily agent that would use official APIs where they exist; a weekly newsletter drafted by the local model and pushed into Outlook through Microsoft Graph; faculty matching, a playbook library, a video catalogue, a conference module, a chat assistant, and twelve suggested additions. It flagged two concerns the prompt had not raised: the machine was on a home network, not the campus, and UNR Marketing would need to approve the use of university marks. The full reply is in the overview edition.

How this steered the work. The prompt fixed the audience, the scope and a way of working: questions, then a plan, then approval, then step by step. It also set up a hand-off between models, planning on one and executing on others.

Prompt 2 · Mon 7 Sep 2026, 13:26 PDT

Model: Fable 5.1 · agent time: 3 min · 0 tool calls

Let's build on my home network and on this machine that is dedicated to the NAIRI website. I am the sysadmin and will be sitting here with your. Before proceeding, explain why we need docker and if we build and test it here without docker, can we add docker later?

What the agent did. Explained what Docker buys (reproducibility, portability, isolation, rollback) and what it costs (another layer to debug, slower iteration), and recommended building natively. It listed the habits that would keep containerising an afternoon's work later: one .env file, TCP rather than sockets, one media directory, pinned dependencies, one systemd unit per process.

How this steered the work. The user, as sysadmin, made an infrastructure decision the agent had defaulted the other way. Nothing later needed Docker.

Prompt 3 · Mon 7 Sep 2026, 13:29 PDT

Model: Fable 5.1 · agent time: 6 min · 7 tool calls

Ok, build natively. Publish the plan to a shareable web page. Then get approval before starting

What the agent did. Published the revised plan as a private web page and asked for approval.

Prompt 4 · Mon 7 Sep 2026, 13:35 PDT

Model: Fable 5.1 · agent time: 3 min · 1 tool call

Put the plan under the docs folder. I want everything local.

What the agent did. Moved the plan into docs/ as Markdown and HTML, and recorded in its memory that the user wants everything kept local.

Prompt 5 · Mon 7 Sep 2026, 13:38 PDT

Model: Fable 5.1 · agent time: 4 min · 2 tool calls

One more thing. We want an AI chat interface backed by the local AI for interacting with the website's contents.

What the agent did. Added a chat assistant to the plan: answers grounded in approved site content with citations, running on the local model, with private fields never indexed. It was planned but never built (see section 6).

Prompt 6 · Mon 7 Sep 2026, 13:42 PDT

Model: Fable 5.1 · agent time: 5 min · 7 tool calls

We will not need the .html plan any more. I have installed obsidian. Now proceed

What the agent did. Wrote the project skeleton and a one-shot install script, which needed the user's sudo password, so it asked the user to run it.

Prompt 7 · Mon 7 Sep 2026, 13:46 PDT

Model: Fable 5.1 · agent time: 11 min · 8 tool calls

ERROR: Could not find a profile matching 'OpenSSH'

What the agent did. The firewall step had failed because the SSH server was not installed. The agent finished Phase 0 anyway: the Django project, accounts with email sign-in, the brand template, systemd units, a backup timer, the Caddy configuration and a runbook. It asked the user to finish the firewall, create the admin account (a password only the user should type) and name the git author.

Prompt 8 · Mon 7 Sep 2026, 13:57 PDT

Model: Fable 5.1 · agent time: 1 min · 3 tool calls

Done, use Sushil Louis for commits

What the agent did. Committed Phase 0 and verified all eight services were running.

3.2 Content, curation and the scout (prompts 9–17)

Prompt 9 · Mon 7 Sep 2026, 14:18 PDT

Model: Opus 5 · agent time: 27 min · 44 tool calls

I have switched to Opus 5. Let's go with phase 1

What the agent did. Built Phase 1: nine content models sharing one review workflow, public listing and detail pages with live filtering, member submissions, two-factor authentication for staff, a seeded taxonomy, and the curator queue at /curate/ with keyboard shortcuts and an audit log. It wrote a curator guide for the administrative assistant. Example data was clearly labelled and removable with one command. 77 tests passed.

Prompt 10 · Mon 7 Sep 2026, 14:56 PDT

Model: Opus 5 · agent time: 30 min · 53 tool calls

Done, restarted. I don't have an API key, can we just do the crawl and populate the database and website

What the agent did. Built Phase 2 without a language model. Federal sources return structured data, so reading them needs no model; for relevance it wrote a keyword scorer that records which terms produced each score, so the curator can see why. The first real crawl saw 231 items from eleven sources and queued 29 genuine federal funding calls. The tests caught three real bugs on the way: Grants.gov's agency filter silently returning nothing, a grants officer's name arriving in the sponsor field, and HTML entities left undecoded.

How this steered the work. "I don't have an API key" turned a planned AI feature into a transparent rule-based one. It stayed that way: every score on the site can be explained term by term.

The funding list: open calls with sponsor, deadline, amount and AI relevance score

The funding list as it stood at the end of September.

Prompt 11 · Mon 7 Sep 2026, 15:26 PDT

Model: Opus 5 · agent time: 20 min · 38 tool calls

Look into health and medical agencies, institutions, and industry as well. Add a short news article on the new AI Minor in the CSE Department at UNR. Crawl for UNR faculty who would be interested in AI or a related field.

What the agent did. Found that most health agency and foundation feeds were dead or blocked automated readers, and covered health through seven targeted Grants.gov searches instead. It added an NIH RePORTER reader, which found seven AI-related NIH awards held at UNR, and a faculty crawl that read 248 profile pages across nine departments. For the minor, it could find nothing published, so it drafted the article, quoted nothing, and listed what had to be filled in. It also flagged that the faculty profiles described real colleagues who had not written them, and recommended inviting each to claim theirs.

Prompt 12 · Mon 7 Sep 2026, 15:47 PDT

Model: Opus 5 · agent time: 4 min · 3 tool calls

can I get to the website from another machine on the local net?

What the agent did. Added the machine's network address to the allowed hosts, made the trusted origins for form posts follow automatically, and warned that debug mode was still on.

Prompt 13 · Mon 7 Sep 2026, 15:51 PDT

Model: Opus 5 · agent time: 6 min · 1 tool call

still shows the disallowed host error when I go to 192.168.1.111

What the agent did. Found that the running service had started an hour before the configuration changed. The file was right; the process had not reloaded it.

How this steered the work. The first instance of a pattern that runs through this playbook: the agent's tests ran the new code, while the live site ran whatever was loaded at its last restart.

Prompt 14 · Mon 7 Sep 2026, 15:57 PDT

Model: Opus 5 · agent time: under a minute · 1 tool call

i see it now. good. are the faculty you found queued up for curation?

What the agent did. Confirmed all 41 faculty stubs were pending, repeated its concern about publishing colleagues' profiles, and listed four people scored just below the threshold who looked like misses, Ankita Shukla among them.

Prompt 15 · Mon 7 Sep 2026, 17:11 PDT

Model: Opus 5 · agent time: 17 min · 17 tool calls

Definitely include Ankita

What the agent did. Found three bugs behind her score of 22: plural forms never matched ("Large Language Models" against "large language model"), a person's page title is their name, so their real subject was discounted, and the reader skipped the "Summary" heading where UNR pages put the biography. Re-scoring moved 185 of 400 stored candidates. It found a fourth bug it called the one that "actually worries me most": promoting a skipped profile had been failing silently, because it had suppressed its own error output.

How this steered the work. The user's knowledge of one colleague exposed four bugs that no test had caught.

Prompt 16 · Mon 7 Sep 2026, 17:28 PDT

Model: Opus 5 · agent time: 13 min · 35 tool calls

let's add a link to each faculty member's Google scholar page, if they have one. then. also for each funding source, read through and from your knowledge of faculty (Google scholar and other public info), suggest teams that might apply for that project. let's re-curate the funding opportunities with this new info. in the curating cards, put down why you think each person fits. in the future, for faculty duration, put down their score amd values for the score components so the curator has more information upon which to base their decision

What the agent did. Linked Scholar profiles where UNR pages already did, and offered a labelled search for the rest rather than guessing. For each funding call it ranked faculty by overlapping vocabulary, weighting rare overlaps more and explaining each match. It declined to draw on its own recollection of colleagues' work, saying that attributing research to a named person from memory "would risk being confidently wrong about a real person", and wrongly said Scholar would block it. Each card now showed how its score was built.

Prompt 17 · Mon 7 Sep 2026, 17:41 PDT

Model: Opus 5 · agent time: 9 min · 31 tool calls

for faculty, do a web search to see if you can find faculty scholar profiles and or web pages even if they do not link to it from unr web pages. link to these on our website and use their information to propose teams for funding opportunities. put the teams along with funding opportunities on the cards

What the agent did. Searched the web for the 24 faculty without a Scholar link and found 20 links for 16 people, each held for the curator's approval with its evidence. Two researchers named Hao Xu work at UNR; it told them apart by email address. It noted that refreshing this "needs a web search" and repeated that Scholar blocks automated readers.

3.3 The local model and Google Scholar (prompts 18–22)

Prompt 18 · Mon 7 Sep 2026, 18:54 PDT

No reply: the user interrupted before the agent answered.

ok, i want to set up my local dgx spark with an open weight model. It has nothing install but is up to date. Proceed to tell me how to do this.

The user interrupted twice, then sent the prompt again:

Prompt 19 · Mon 7 Sep 2026, 18:56 PDT

Model: Opus 5 · agent time: 2 min · 3 tool calls

ok, i want to set up my local dgx spark with an open weight model. The spark (named minimax) up to date. Proceed to tell me how to do this..

What the agent did. Gave a path for the DGX Spark: check the machine, install Ollama first to prove the GPU works, try OpenAI's open-weight 120B model, expose it on the local network only, and move to vLLM for real traffic. It pointed to vLLM's own guide rather than writing container commands from memory, and noted that the site had settings for a local model but no code to use it yet.

Prompt 20 · Mon 7 Sep 2026, 20:02 PDT

Model: Opus 5 · agent time: 5 min · 5 tool calls

Why can't you get to people's google scholar profiles?

What the agent did. Checked instead of repeating itself, and found it had been wrong. Google's robots file disallows Scholar's search pages but explicitly allows profile pages (Allow: /citations?user=), and a plain request returned the full profile. Its reply opened: "I was wrong, and the answer is that I can get to them."

A profile carries an affiliation and a verified email domain, so a proposed link could confirm itself. Of three it checked, two showed a verified unr.edu address. The third, Mohamed A. Moustafa, listed both UNR and NYU Abu Dhabi, which showed that the agent's own note, that a different Mohamed Moustafa worked at NYU, was wrong too. Scholar's interest labels were also better than what it had stored. It proposed adding a Scholar reader to the daily scout.

How this steered the work. A one-line question from someone who knew Scholar profiles are public overturned an assumption the agent had built code around.

Prompt 21 · Mon 7 Sep 2026, 20:06 PDT

No reply: the user interrupted before the agent answered.

In addition to their scholar profiles, see if you can find personal academic web pages for faculty. Many have claimed domains based on their names and that page contains significant information on their research interests.

The user interrupted, then sent a fuller version:

Prompt 22 · Mon 7 Sep 2026, 20:09 PDT

Model: Opus 5 · agent time: 17 min · 20 tool calls

In addition to their scholar profiles, see if you can find personal academic web pages for ALL faculty. Many have claimed domains based on their names and that page contains significant information on their research interests. Store these links with their other data. So for every faculty member on the institute's web pages. Store their website link and their google scholar profile link with their most recent papers first. Do this for all faculty and update the website. Modify the scout to do this as it scouts for new faculty not already on the institute's list.

What the agent did. Found the real obstacle in its own code: Python's standard robots parser applies the first matching rule instead of the most specific one, so it read Scholar's file as a refusal, and had been quietly narrowing every source the scout read. It wrote a longest-match parser. Across 48 faculty it linked 37 Scholar profiles, stored 703 papers and published four personal pages. A profile showing a verified unr.edu email and a Reno affiliation was accepted automatically; anything else waited for the curator, including a name-based domain proposed for both Hao Xus. Papers were stored only for confirmed profiles, and the scout now enriches new faculty itself and re-reads publication lists weekly.

Needs expert review: privacy and records policy. Attaching a publication record to a named colleague on an institute website is a claim about a real person. The rule for accepting a profile automatically, and republishing public faculty information at all, should be checked against university policy.

3.4 Agreeing the words on the front page (prompts 23–32)

Prompt 23 · Mon 7 Sep 2026, 20:26 PDT

Model: Opus 5 · agent time: 8 min · 1 tool call

Where do I change the text on the landing page. I want to make changes to the header, the main content and the footer

What the agent did. Listed the files and line numbers for the header, the home page sections and the footer, and said, wrongly as it turned out, that template edits would show on refresh without a restart.

Prompt 24 · Mon 7 Sep 2026, 20:34 PDT

Model: Opus 5 · agent time: 7 min · 10 tool calls

I want to rewrie: Nevada's AI Research and Innovation Institute. Supercharging research and innovation through

What the agent did. Rewrote the hero as three lines: an eyebrow, the headline, and the strapline in Wolf Pack blue. It explained two changes beyond the words given.

Prompt 25 · Mon 7 Sep 2026, 20:41 PDT

Model: Opus 5 · agent time: 5 min · 9 tool calls

Can we rewrite the text. Don't mention Pack AI. We need to mention Innovation. We also want to point out that we do research in AI and we supercharge teams with AI to generate better proposals, do better research, and work on larger problems. And we help industry with AI. And we help our faculty to team with industry. Make it sound good.

What the agent did. Rewrote the paragraph to carry the user's four points in order, took Pack AI out of the page title, rewrote the three closing cards to match, and noted that Pack AI still appeared elsewhere. It also owned up to having committed an editor autosave file earlier by staging everything without looking.

Prompt 26 · Mon 7 Sep 2026, 20:46 PDT

Model: Opus 5 · agent time: 3 min · 3 tool calls

Let's work on the text. We don't want to use the word "Supercharging" find another for that sentence. Then here is what I like, please improve it: We advance artificial intelligence, and we put it to work for researchers in every field. We help Nevada industry apply AI and we bring faculty and companies together on problems neither would take on alone.

What the agent did. Replaced "Supercharging" with "Accelerating" and offered two alternatives, then edited the user's paragraph, changing "apply AI" to "apply it" so the page said AI fewer times.

Prompt 27 · Mon 7 Sep 2026, 20:49 PDT

No reply: the user interrupted before the agent answered.

Ok, let's make it so.

The user interrupted, then:

Prompt 28 · Mon 7 Sep 2026, 20:50 PDT

Model: Opus 5 · agent time: 7 min · 5 tool calls

Let's go with your edited draft. Ignore the missing sentence.

What the agent did. Confirmed the wording and found a real problem while doing so: the live site was still serving "Supercharging". Django wraps its template loaders in a cache even in debug mode and relies on the development server to notice changes; under the production server nothing does. Its earlier claim had come from testing with the development server. It fixed the loaders so templates are read fresh while debug is on, and called the mistake its own.

Prompt 29 · Mon 7 Sep 2026, 20:57 PDT

Model: Opus 5 · agent time: 5 min · 6 tool calls

I still don't like it. Let s agree on some text before we change the website again. Here is a new version. Rewrite this to suite an academic industry and funder readers better. We advance artificial intelligence, and we put AI to work for researchers in every field. We help Nevada industry apply AI, and we bring academy-industry teams together to work on funding and solving significant problems confronting our state and country.

What the agent did. Committed a version the user had not yet agreed to, and found that its loader fix itself was not active yet, because the user's restart had landed 45 seconds before the change. It proved this by inserting a marker into the template and watching it fail to appear.

How this steered the work. "Let s agree on some text before we change the website again" set a rule the agent kept for the rest of the project: wording is agreed in conversation first, then changed once.

Prompt 30 · Mon 7 Sep 2026, 21:02 PDT

Model: Opus 5 · agent time: 2 min · 0 tool calls

Still not happy. Here is a new draft. Give me a better draft in your response. We advance artificial intelligence, and we put AI to work for researchers in every field. We help Nevada industry adopt AI, and we build university-industry teams that win funding and take on and solve significant problems facing our state and the nation.

What the agent did. Gave a draft in its reply without touching the site, as asked. It changed "take on and solve" to "solve" and "significant" to "the hardest", added "major" before funding, and stopped doing one thing: "in three previous drafts I kept removing the repeated 'AI' and you kept putting it back. You are right and I was wrong to keep overriding it." It offered a less superlative version in case "hardest" overclaimed.

Prompt 31 · Mon 7 Sep 2026, 21:03 PDT

Model: Opus 5 · agent time: 1 min · 3 tool calls

I like the draft. Go with it. When you have made changes, I can restart the website services

What the agent did. Made the change and verified the four changed phrases rendered.

Prompt 32 · Mon 7 Sep 2026, 21:04 PDT

Model: Opus 5 · agent time: 2 min · 3 tool calls

Hmm, let go with hard rather than hardest

What the agent did. Changed "the hardest" to "hard", and agreed that "hardest" is "a claim a new institute has to keep defending".

How this steered the work. Ten prompts for one paragraph. The user's ear for how a sentence lands with funders and industry decided it; the agent's contribution was grammar, options and, in the end, restraint.

3.5 Editable text and the AI news feed (prompts 33–38)

Prompt 33 · Tue 8 Sep 2026, 18:49 PDT

Model: Opus 5 · agent time: 11 min · 2 tool calls

We need to modify the website to have two modes. 1 . for a UNR external audience and 2. A mode for UNR faculty. The UNR external audience in addition to information about the institute's progress on its projects, should have a news feed. This news feed should feature summaries and links to news articles dealing with AI, especially local AI stories in Reno, Northern Nevada, and in Nevada. Then new developments outside Nevada; especially new science done with AI, new advances in foundation models, and new developments in Robotics. Each article should have an article summary, article date, and a link to the article. Since I don't have an API key, what I would like to do is to log in to you every morning and ask you to run a predefined prompt that runs in the background scouring the web for new news articles to be added to our news feed and gets ride of articles that are older than a week at the maximum. Something like google news. The UNR internal website accessed by logging in should have the information on UNR AI faculty as in the current website, as well as the funding opportunities. Events, playbooks, and Videos are available to all. Tell me what you think before executing. Ask questions for clarification. Note that you are an expert in developing this kind of site.

What the agent did. Read the code, then gave an assessment before building, as asked. It proposed one site with a sign-in gate, warned that hiding the faculty directory would contradict the front page's promise to industry, proposed keeping AI news in its own table rather than reusing the institute's news, and suggested making the morning routine a slash command (/news) rather than a pasted prompt. It asked eight questions.

Prompt 34 · Tue 8 Sep 2026, 18:59 PDT

Model: Opus 5 · agent time: 4 min · 7 tool calls

I like you recommendations. Remove Pack AI from the header. I like the "trusted partner" flag. Keep on front door. I would like one more feature. I would like an easy way to edit text on the site not just during curation but at any time. The curator or admin should be able to easily change information on the website updating the database and website. Make sense? I am finding it really difficult to edit the front page, for example.

What the agent did. Wrote three pieces into the plan: editable text everywhere, the public and internal split, and the news feed. It made two decisions on the user's behalf and said so: faculty emails stay internal, and text edits go live without review.

Prompt 35 · Tue 8 Sep 2026, 19:03 PDT

Model: Opus 5 · agent time: 19 min · 83 tool calls

go, and remove Pack AI from the footer and About too

What the agent did. Built editable site text: every block of wording on the site has a key, the template supplies the default, and a curator edits it in place with history and revert. 74 blocks were editable at once, and every approved item gained an edit button on its own page. Pack AI was removed from the header, footer, About page and README.

How this steered the work. "I am finding it really difficult to edit the front page" turned a chain of one-paragraph requests into a tool the curator could use without the agent.

Prompt 36 · Tue 8 Sep 2026, 19:35 PDT

Model: Opus 5 · agent time: 19 min · 56 tool calls

Let's cancel 17B in the plan, it does not seem worth it. Let's work on the news.

What the agent did. Marked the split as cancelled in the plan and built the news feed: its own table, an ingest command that refuses stale or duplicate items, a prune command (7 days for outside stories, 30 for Nevada), RSS, and the /news command with its instructions in DAILY_NEWS_PROMPT.md. The first run found only five items. It reported why rather than padding: the seven-day window refused the strongest Nevada story, and several outlets refuse automated reading. It also noted that Pack AI is a real UNR initiative, in case Marketing asked.

Prompt 37 · Tue 8 Sep 2026, 19:54 PDT

Model: Opus 5 · agent time: 1 min · 4 tool calls

what's your url ? 192.168.1.111 does not seem to work

What the agent did. Found every page returning an error: the running service had the old URL configuration but was reading the new templates, which named a page it did not have. It admitted calling a restart optional when it was mandatory, and from then on said which changes needed one.

Prompt 38 · Tue 8 Sep 2026, 20:06 PDT

Model: Opus 5 · agent time: 10 min · 33 tool calls

add the major AI labs blogs, announcements, public release sites to your news sources. also look for the innermost loop as a source. whenever you find news that refers to a source try to summarize and link to the source. keep track of Yan LeCun, Jeff Hinton, Denis hassabis, and Jeff Dean

What the agent did. Added sixteen AI labs' blogs and release pages, an open-weight release watch for models that fit the local machine, and the UK, US and EU AI safety bodies. The Innermost Loop became a lead-finder only: read it, follow it to the primary source, cite that. Every article could now carry a link straight to its primary source. The four people became database rows with aliases, matched as whole words; Jeff Dean matches on his full name only, since "Dean" would tag every college dean. It caught itself having guessed one announcement's address, and the instructions now require opening a source before recording it.

3.6 Announcements, the reading shelf and pictures (prompts 39–43)

Prompt 39 · Tue 8 Sep 2026, 20:31 PDT

Model: Opus 5 · agent time: 6 min · 15 tool calls

we are conflating featured or highlights and news. let us put the article on the minor as an announcement. all others can be news. put the announcement more prominently, equivalent to the news feed, on the front page

What the agent did. Made the minor an announcement, gave announcements and AI news equal weight on the home page, and dropped "Featured". It then pointed out that seven of the eight remaining "news" items were outside blog posts collected before the feed existed, and offered to retire them or keep them as a curated shelf.

Prompt 40 · Tue 8 Sep 2026, 20:37 PDT

Model: Opus 5 · agent time: 9 min · 10 tool calls

go with 2

What the agent did. Created the Worth reading shelf, and a Keep button on every AI news card that promotes an article to the shelf before the feed drops it. A reading card's title links to the source, not to the site's own page about it.

The Worth reading shelf: cards with publisher pictures, each linking to the source

The Worth reading shelf.

Prompt 41 · Tue 8 Sep 2026, 20:46 PDT

Model: Opus 5 · agent time: 10 min · 12 tool calls

Remove the section that has the number of open funding calls, number of faculty listed, number of projects etc.

What the agent did. Removed the statistics strip and its queries, and kept the retired wording on record in case it was wanted back.

Prompt 42 · Tue 8 Sep 2026, 20:56 PDT

Model: Opus 5 · agent time: 15 min · 32 tool calls

Let's move the Worth Reading under announcements and ensure that the news feed and Worth Reading end approximately evenly

What the agent did. Moved the shelf and checked the result in a browser. Looking at the page found a worse problem than layout: five kept items had a category label ("Data Management", "Health & Bioscience") as their summary, scraped from a listing page when the scout first ran. Nothing had displayed them prominently, so nobody had noticed. It rewrote them and suggested a check that would have caught them at crawl time.

Prompt 43 · Tue 8 Sep 2026, 21:11 PDT

Model: Opus 5 · agent time: 14 min · 24 tool calls

Keep the cards, since they look visually distinctive. But only display enough on the front page to match the news feed. Put the rest under "The whole shelf." For the news articles and the worth reading, see if there is an image that can be placed with the article or worth reading card. If so, add that now and to news.md

What the agent did. Restored the cards, showed three to match the feed, and added publishers' pictures: the site stores the image's address and the reader's browser fetches it from the publisher, so no photograph is copied onto a UNR server. Two bugs had already written bad data: an empty image tag resolved to the article's own address, and five items had been given the same house graphic.

Needs expert review: copyright. The feed shows summaries written by the agent and pictures loaded from publishers' servers. Whether that, and the kept articles on the reading shelf, is acceptable on a university site is a question for university counsel.

3.7 Taking the box to the office (prompts 44–49)

Prompt 44 · Tue 8 Sep 2026, 21:25 PDT

Model: Opus 5 · agent time: 11 min · 17 tool calls

Ok, what do we need to do to pick up this box, take it to my office, and run it there with a UNR ip, so I can demo it.

What the agent did. Wrote a script that reads the new address, updates the settings, turns debug off and restarts everything, and a demo guide. It found two problems that would have broken the demo silently: with debug off, cookies were forced to HTTPS only, so sign-in would fail without a word over plain HTTP; and the stylesheet build failed with debug off, which would have made every page an error. It also found the machine set to suspend when idle. It warned that a campus address is not a public one and that the site held 48 colleagues' email addresses.

Prompt 45 · Tue 8 Sep 2026, 21:39 PDT

Model: Opus 5 · agent time: 5 min · 1 tool call

I have an more than one network port available in my office. I have a monitor/keyboard etc. We should be good running on this box

What the agent did. Turned off idle suspend, left the screen-lock setting to the user because it is a security setting, and suggested a cold reboot at home first.

Prompt 46 · Tue 8 Sep 2026, 21:44 PDT

Model: Opus 5 · agent time: 3 min · 1 tool call

I rebooted after restarting nairi-web, it looks good. When I demo it, I would ask someone on campus to go to the machine URL and walk them through it, or run a zoom/teams session sharing the website screen. That should work right

What the agent did. Verified the cold boot from its side and agreed a screen share was the safest demo. It warned against anyone signing in over plain HTTP, and that sign-up looks as if it works but sends no email.

Prompt 47 · Wed 9 Sep 2026, 11:11 PDT

Model: Opus 5 · agent time: 6 min · 6 tool calls

can you run the server on a different port temporarily, like port 8080 and can you answer to pings?

What the agent did. Found the site already answering on its campus address, explained that campus networks often filter pings even where web traffic passes, and added a --port option to the demo script.

Prompt 48 · Wed 9 Sep 2026, 17:06 PDT

Model: Opus 5 · agent time: 3 min · 1 tool call

How can I run this and open it to the world to visit? Put it on port 8080?

What the agent did. Explained that the port was a red herring: the address is private, behind the campus firewall. It gave three routes (a hostname from OIT, a tunnel cleared with OIT first, or proper hosting) and five things to fix before any of them, starting with email that does not send and backups that nothing ran.

Prompt 49 · Wed 9 Sep 2026, 21:05 PDT

Model: Opus 5 · agent time: 1 min · 0 tool calls

I have a web page at www.cse.unr.edu/~sushil. but I dont have control of that machine. can I run everything on your box but update on that machine under my web page folder?

What the agent did. Said yes, by publishing a static snapshot rather than running Django there, explained what would and would not survive, and flagged that a personal faculty URL undersells a statewide institute.

3.8 The news skill, on a branch (prompts 50–53)

These four prompts sit on a branch: the later conversation continued from a copy taken before them (see section 2). What they built stayed in the repository.

Prompt 50 · Fri 11 Sep 2026, 13:59 PDT

Model: Opus 5 · agent time: 9 min · 40 tool calls

let's wait for this. For now, lets run /news

What the agent did. Ran the morning news: four added, five expired. It found that /news was not registered in this session, because the command file lived in the project folder while the session ran one level up, and linked it. The Nevada outlets refused a plain fetch but accepted the scout's own polite reader, so it exposed that as scripts/read-page.py for the morning run. It also found that Jeff Dean had left Google to co-found a research-automation company, and corrected his entry on the followed list.

Prompt 51 · Mon 14 Sep 2026, 10:53 PDT

Model: Sonnet 5 · agent time: 5 min · 27 tool calls

run the news skill

What the agent did. Ran the news again: four added. Nothing from the four followed people that week: "Not a gap in searching; just a quiet week for them specifically." It noted that the Skill tool still did not recognise the news skill and that it had followed the command file by hand.

Prompt 52 · Mon 14 Sep 2026, 12:34 PDT

Model: Sonnet 5 · agent time: 4 min · 16 tool calls

fix the registration gap

What the agent did. Found that a project's slash commands and the Skill tool are two unrelated systems, wrote a thin skill that points at the same instructions, and packaged it for the user to save, since registering a skill is the user's act. It skipped the skill-creator's evaluation runs on purpose: they would have searched and written against the live news database just to benchmark the skill.

Prompt 53 · Mon 14 Sep 2026, 12:52 PDT

Model: Sonnet 5 · agent time: 4 min · 14 tool calls

Had to reboot. Let's hold on the skill. How do I get this to run as a secure server?

The user interrupted a few seconds in. The agent's work carried on for three minutes, adding a robots.txt and starting on a backup timer, until the user stopped it again at a tool call. The conversation then resumed from the earlier copy.

3.9 The static copy on the CSE web space (prompts 54–59)

Prompt 54 · Mon 14 Sep 2026, 12:58 PDT

Model: Sonnet 5, Opus 5 · agent time: 12 min · 41 tool calls

Yes, I can ssh into cse.unr.edu and write to ~sushil/public_html/. I want the whole site exported.

What the agent did. Built manage.py export_static and scripts/publish.sh. The exporter renders every public page under the subpath /~sushil/nairi/, swaps sign-up buttons for an email link, drops search bars and sign-in, and ends by checking that every internal link reaches a file it wrote; that check caught five dead links while it was being built. Two faults would each have broken the copy silently: listings paginated, dropping everything past the first 24 items, and the feeds carried localhost in their links. The copy uses rsync --delete, so the script refuses to target the web folder itself, which would have deleted the user's personal page. 96 pages, checked in a real browser under the subpath.

Prompt 55 · Mon 14 Sep 2026, 15:56 PDT

Model: Opus 5 · agent time: 7 min · 2 tool calls

Where does it go on a dry run?

What the agent did. Explained the three parts of a dry run, and in checking found the export folder was not ignored by git: nine megabytes of generated files would have landed in the next broad commit.

Prompt 56 · Mon 14 Sep 2026, 16:04 PDT

Model: Opus 5 · agent time: 3 min · 11 tool calls

I ran the command directly and copied it to /home/sushil/staging. It looks like the style sheets were not copied since it renders pretty badly.. fix

What the agent did. Found nothing missing: every address in the export is absolute to where the copy will live, so opening it from another folder shows an unstyled page. It added scripts/preview.sh to serve any copy at the right path, and checked the user's folder with it in a browser.

Prompt 57 · Mon 14 Sep 2026, 16:07 PDT

Model: Opus 5 · agent time: 7 min · 3 tool calls

setup passwordless ssh with cse.unr.edu please

What the agent did. Made a key, configured SSH, and left the one step needing the CSE password to the user. It said plainly that the key had no passphrase, what that meant if the file were taken, and how to add one.

Prompt 58 · Mon 14 Sep 2026, 16:14 PDT

Model: Opus 5 · agent time: under a minute · 1 tool call

works well. Can I make this copying a skill like the news skill?

The user interrupted before the agent answered and moved on:

Prompt 59 · Mon 14 Sep 2026, 16:16 PDT

Model: Opus 5 · agent time: 6 min · 16 tool calls

Now let's make a change to the front page. Let's swap the locations of the Deadlines coming up and What is happening in AI on the web page.

What the agent did. Swapped the sections, re-laid the deadline rows for half width, and showed twelve of them so the columns still ended level. A test caught a real bug the move created: the band was shown only when there was AI news, so a site without news would have lost its funding deadlines from the front page.

3.10 MatchMaker and the teams page (prompts 60–64)

Prompt 60 · Mon 14 Sep 2026, 16:32 PDT

Model: Fable 5.1 · agent time: 3 min · 4 tool calls

Well done. Now we need to create a new skill called MatchMaker. Using the information in the database and looking at our faculty publications, we need to find good matches of faculty teams to funding opportunities. Make a plan for MatchMaker, get it approved, then we can execute.

What the agent did. Planned before building, as asked, in section 18 of the plan. The existing suggestions could not read the call (most calls' eligibility field held only Grants.gov's placeholder text), could not read the record (707 papers unused), and scored people rather than teams. MatchMaker would read each solicitation and the shortlisted faculty's papers, propose up to three teams with roles, a rationale citing specific papers, an eligibility check and the gaps, or say that no credible team exists. An ingest command would refuse any proposal citing a paper not in the database. It asked four questions, starting with keeping proposals off the public site: "A page saying "we think X, Y and Z should apply" names colleagues for work they haven't agreed to."

Prompt 61 · Tue 15 Sep 2026, 17:29 PDT

Model: Fable 5.1 · agent time: 36 min · 47 tool calls

Sounds good. I agree with your decision recommendations. What's next?

What the agent did. Built it in three phases and ran it on all 18 open calls: 13 teams proposed, 6 calls marked no team with the reason, none refused by the validator. One finding changed the outcome: the keyword shortlist named nearly the same ten people for every call, and missed the people who fit the precision-medicine calls, so the brief now carries the whole roster. The recurring gaps were the directory's blind spots: no clinician, no mathematician, no K-12 educator, no partner organisation on record. It was plain about the method's limit: rationales are "argued from titles and venues, not abstracts — good enough to decide whom to talk to, not a substitute for talking to them."

Needs expert review: research development. Whether a proposed team is eligible and competitive is a judgement for a research development officer who reads the full solicitation, and approaching colleagues needs their agreement. The agent read solicitations and paper titles, not the papers.

Prompt 62 · Wed 16 Sep 2026, 16:53 PDT

Model: Fable 5.1 · agent time: 4 min · 5 tool calls

I need to be able to see all the funding calls with their approved teams somewhere not accessible to the general public but not under the admin or curator role logins since I copy the static pages over to my cse.unr.edu/~sushil/nairi page. Any ideas

What the agent did. Tested the CSE server before recommending anything: it is Apache over HTTPS, honours per-folder .htaccess, and returned a test page with the right password and refused it without. It recommended a password-protected folder generated by the exporter, and laid out two alternatives and why it preferred this one.

Prompt 63 · Wed 16 Sep 2026, 16:57 PDT

Model: Fable 5.1 · agent time: 17 min · 56 tool calls

approved

What the agent did. Built the teams page, protected by one password file that both Django and Apache read, and published it. It verified from outside: refused without the password, served with it, the password file itself forbidden, and no public page linking to it. The publish script now checks this after every copy and deletes the folder if the page is ever served without a password. It gave the user the initial password in the reply and said to change it at once, "since it has been in this chat".

Prompt 64 · Fri 18 Sep 2026, 12:42 PDT

Model: Fable 5.1 · agent time: 1 min · 3 tool calls

just approved another entry, copy site over again

What the agent did. Found the approval had never landed: the live server was still running code from before MatchMaker, so the approve button posted to a route it did not have. It asked for a restart and a second approval.

3.11 Defense, DARPA and SAM.gov (prompts 65–66)

Prompt 65 · Mon 21 Sep 2026, 11:17 PDT

Model: Fable 5.1 · agent time: 11 min · 33 tool calls

Make sure you are looking at department of defense grants and grants from darpa, dept of labor, dept. of agriculture, and dept. of education. Update the funding list with another search

What the agent did. Added five sources and re-searched: Defense, DARPA, Agriculture and Education queued 21 calls between them; Labor had nothing AI-related. Grants.gov's agency filter silently returns nothing for any department with sub-agencies, so the fetcher now scans the whole result set and matches agency codes itself. A DARPA office-wide announcement scores zero on keywords because its short synopsis never says "AI", so these sources have low thresholds: the agency is the reason to look. It also found that morning's scheduled run had failed with no network, and re-ran it.

Prompt 66 · Fri 25 Sep 2026, 10:37 PDT

Model: Fable 5.1 · agent time: 11 min · 18 tool calls

let's add sam.gov

What the agent did. Built a SAM.gov fetcher for DARPA and Defense notices against a recorded response, since a key is tied to a person's account and only the user can request one. A personal key allows only a few requests a day and expires every 90 days, so each run makes one search and reads at most four full descriptions. Until a key exists, the sources say each morning that they are waiting for one.

3.12 The front page, again (prompts 67–69)

Prompt 67 · Fri 25 Sep 2026, 10:48 PDT

Model: Fable 5.1 · agent time: 11 min · 81 tool calls

First: update the news, there are two local tv interviews on AI and Robotics topics that you need to find and add. Second: Let's replace "From the Institute" with "Our news" and rename "Our News" to "Local News." Keep the Minor in AI available there.

What the agent did. Searched the four Reno stations and found two September interviews with UNR faculty on Fox 11, added them with the station's pictures, renamed the two sections, and ran the morning news (15 added). It published the copy to CSE.

Prompt 68 · Fri 25 Sep 2026, 11:00 PDT

Model: Fable 5.1 · agent time: 2 min · 10 tool calls

Let's exchange the positions of "Our News" and "Local News" on the landing page.

What the agent did. Swapped the sections and published.

Prompt 69 · Fri 25 Sep 2026, 11:17 PDT

Model: Opus 5.5 · agent time: 8 min · 23 tool calls

balance "Worth Reading" and "Deadlines coming up" so their bottoms align. You can cut "worth Reading" articles and put them in the "worth reading" page. Need a header link for "worth reading" as well. GO

What the agent did. Measured the gap first: the left column ran 651 pixels longer. Since the gap changes every day with titles and pictures, it wrote a small script that measures both columns when the page loads, keeps as many reading cards as still end level, and shows between 6 and 20 deadlines to close the rest. It measured the result at four widths (within 21 pixels), added a header link for Worth reading, and checked that the header still fit.

The home page band: News and Worth reading on the left, deadlines on the right, ending level

The levelled columns, as later published.

3.13 Sign-in without email or two-factor (prompts 70–72)

Prompt 70 · Fri 25 Sep 2026, 11:28 PDT

Model: Opus 5.5 · agent time: 4 min · 3 tool calls

Please disable 2FA since you can't send email and I am not getting any to verify

What the agent did. Did not finish: Claude Code's permission system blocked both routes it tried, changing the user's account record directly and reading the confirmation link out of the server log, and the agent said those were "sensible places for it to stop". It gave the user the two commands to run, and explained that two-factor had nothing to do with email: turning it off would not have fixed sign-in.

Prompt 71 · Fri 25 Sep 2026, 11:32 PDT

Model: Opus 5.5 · agent time: 1 min · 5 tool calls

Make it optional and I'll check in on you remotely in a few minutes.

What the agent did. Made email confirmation a setting, optional on this machine and mandatory by default in code, so it changes back once the site can send mail.

Prompt 72 · Mon 28 Sep 2026, 11:48 PDT

Model: Opus 5.5 · agent time: 3 min · 5 tool calls

Now, I am trying to curate and it is asking for a 6 digit code from my authenticator app. I never set this up. Can I just have a simple password login. 2FA is too much for this simple website

What the agent did. Turned two-factor off through the existing setting. It found the user's account did have an authenticator enrolled, on 7 September during the first session, and noted the trade-off: a curator can publish straight to the site, so the password now carries all the weight.

Needs expert review: information security. The site now signs curators in with an email and a password only, over plain HTTP on the campus network, and accepts accounts whose email was never confirmed. Each was a deliberate choice for a prototype on one machine. Before anything is public, a security reviewer should decide what has to change: HTTPS, two-factor for staff, rate limits on sign-in, and a mail service.

3.14 News, people we follow, the blog and the minor (prompts 73–79)

Prompt 73 · Mon 28 Sep 2026, 11:54 PDT

Model: Opus 5.5 · agent time: 6 min · 35 tool calls

/news

What the agent did. Ran the news: seven added, three aged off, two refused by the ingest command because they were older than seven days. It called the two refusals its own miss: "That was my miss, and the ingest caught it."

Prompt 74 · Mon 28 Sep 2026, 12:00 PDT

Model: Opus 5.5 · agent time: 2 min · 9 tool calls

let's also follow Sam Altman, Elon musk, and the Moonshot podcast hosts

What the agent did. Added six people as database rows. Salim Ismail matches on his full name only, and the instructions now say a mention of Altman or Musk is not news by itself; they get an item only when they say or do something substantive.

Prompt 75 · Mon 28 Sep 2026, 12:02 PDT

Model: Opus 5.5 · agent time: 1 min · 2 tool calls

Let's add Emad Mostaque

What the agent did. Added him the same way.

Prompt 76 · Mon 28 Sep 2026, 13:20 PDT

Model: Sonnet 5.5 · agent time: 15 min · 56 tool calls

I need to add a blog. Assume the blog's first few lines will be on the front page under the "Get the weekly email", "find a collaborator", ... butons. The rest should be links to the article in a page of blogs, most recent first. The page should have a side pane with the list of all blogs. We will need to add blogs to the database. Let me know if you have questions.

What the agent did (Sonnet 5.5). Built a blog: posts in Markdown, sanitised to a short list of allowed tags; the newest post's first sixty words under the home page buttons; a blog page with the posts newest first and a list of all posts beside them; and a command to add a post from a Markdown file. It checked the layout at desktop and phone widths with temporary posts, then deleted them. On the way it found that the test run had hung waiting for an answer about an old test database, and that two tests had been failing since two-factor was turned off, because they read the machine's own settings. It fixed the tests to set their own.

Prompt 77 · Mon 28 Sep 2026, 13:59 PDT

Model: Sonnet 5.5 · agent time: 10 min · 0 tool calls

what is collectstatic

What the agent did. Explained that the command copies the stylesheets and scripts into the folder the web server serves, under fingerprinted names, and that the live site would show the old layout until it ran.

Prompt 78 · Tue 29 Sep 2026, 12:28 PDT

Model: Opus 5.5 · agent time: 9 min · 39 tool calls

@"/home/sushil/Downloads/AIMinorFlyer.pdf" Combine "Local News" and "Our News" and put the article on the Minor in AI up front. Here's a pdf of a flyer for the minor that you can use for the minor in AI article

What the agent did. The flyer was mostly an image. The agent decoded its QR code, which led to the University's page for the minor, and took the facts from there: open to every undergraduate, designed to fit any major in four years, housed in the College of Engineering. It merged the two news sections into one, put the minor first with the flyer as its picture, and redirected the old address. It noted that the summary now credits the College of Engineering, as the flyer does, and asked whether to name the department too. Checking the page in a browser also showed the header nine pixels too wide at laptop widths since the blog link was added, which it fixed.

The News page, led by the Minor in AI flyer

The combined News page.

Prompt 79 · Tue 29 Sep 2026, 15:21 PDT

Model: Opus 5.5 · agent time: 7 min · 18 tool calls

Please add Dr. Paromita Pain and Dean Yun from the Reynolds School of Journalism at UNR, to the people page

What the agent did. Found both on the Reynolds School of Journalism's directory and wrote their profiles from those pages, with their titles, Scholar links and research summaries, and listed its sources.

3.15 This playbook (prompts 80–85)

Prompt 80 · Sat 3 Oct 2026, 12:07 PDT

Model: Opus 5.5 · agent time: under a minute · 5 tool calls

Do you know how to make a playbook that will tutor others on how to recreate a website like this? I had given pretty good instructions for making such a playbook in one of my other pieces of Claude Work labeled as "Reno 3D fire/landslide simulation"

What the agent did. Searched every transcript and file on this machine and could not find the earlier session, which had run on another computer. It asked for the instructions instead of guessing at them.

Prompt 81 · Sat 3 Oct 2026, 12:25 PDT

Model: Opus 5.5 · agent time: 1 min · 0 tool calls

@"/home/sushil/.claude/uploads/eb4f74aa-5655-44a5-b0e1-b30c3c55d6a7/7a3533e4-PlaybookCreationInstructions.md" @"/home/sushil/.claude/uploads/eb4f74aa-5655-44a5-b0e1-b30c3c55d6a7/eb086380-extract_prompts.py" @"/home/sushil/.claude/uploads/eb4f74aa-5655-44a5-b0e1-b30c3c55d6a7/fac72cd0-build_playbook.py" @"/home/sushil/.claude/uploads/eb4f74aa-5655-44a5-b0e1-b30c3c55d6a7/a7926eaa-overview.tmpl.md" @"/home/sushil/.claude/uploads/eb4f74aa-5655-44a5-b0e1-b30c3c55d6a7/f34c2914-detailed1.tmpl.md" Here are instructions for creating a playbook based on my prior session on another computer with claude code. Along with the code. In addition, here are two templates. Ask me for the last one as your next step.

What the agent did. Read the instructions, both scripts and the two templates, and asked for the last one.

Prompt 82 · Sat 3 Oct 2026, 12:25 PDT

Model: Opus 5.5 · agent time: 23 min · 33 tool calls

@"/home/sushil/.claude/uploads/eb4f74aa-5655-44a5-b0e1-b30c3c55d6a7/38144a5a-detailed2.tmpl.md" ok, go

What the agent did. Found the work spread over two transcripts, the second repeating the first up to the branch, and changed the extraction script to count each record once. Its first agent-time figures included two prompts that appeared to run for 22 and 44 hours; both were permission prompts left waiting overnight, so it changed the measure to active working time. It read the whole conversation, drafted the abstract and two mock-ups, and asked four questions. The user chose to omit housekeeping prompts, which changed the numbering, so it recomputed every range in the mock-ups before showing them.

Prompt 83 · Sat 3 Oct 2026, 12:48 PDT

Model: Opus 5.5 · agent time: 4 min · 5 tool calls

Words marked […] were removed from this quote at the user's request.

Change the title to " Building the Nevada AI Research Institute Website." Remove the credits. Rewrite the playbooks and abstract to remove all references to […]. Instead of the word "human" use the word "user."

What the agent did. Made all four changes, and asked about the two places in the first prompt that mention the role; the alternatives were to mark them or keep the quote as typed.

Prompt 84 · Sat 3 Oct 2026, 12:53 PDT

Model: Opus 5.5 · agent time: 3 min · 0 tool calls

Mark the prompt as you suggest. Do you already have a playbook making skill?

What the agent did. Said there was no playbook skill in the project yet, and suggested packaging these instructions and scripts as one once this playbook was finished.

Prompt 85 · Sat 3 Oct 2026, 12:56 PDT

Model: Opus 5.5 · in progress when these documents were generated

abstract and structures are fine. Go ahead

What the agent did. Wrote these two documents. Every prompt, time and model name is generated from the session transcripts by script, so the quotes are exact, and the screenshots were taken fresh from the published copy.

4. Division of labour

Decision or contribution Who What it drew on
Purpose, audiences, features, and easy curation by an assistant User Running the institute
"Ask questions, then make a good plan, then we can go step by step" User Software-engineering practice
Native install, not Docker; everything local User System administration
Architecture, data model, every line of code and every test Agent Django, Python, web engineering
Keyword scoring instead of a language model Agent, after the user had no API key Making a limitation transparent
Which colleagues belong in the directory User Knowing the faculty
That Scholar profiles are public User Knowing the web
Wording of the front page User, with the agent's edits Writing for academic, industry and funder readers
Cancelling the public and internal split User Judging cost against value
Static copy on the CSE web server; the teams page behind a password Agent proposed, user approved Knowing what the CSE server allows
Refusing to scrape Scholar search or attribute work from memory Agent Accuracy about real people
Keeping team proposals off the public site Agent proposed, user agreed Respect for colleagues' consent
Two-factor off, email confirmation optional User, warned of the trade-off Usability for one curator
Every restart, every sudo command, every publish User Holding the passwords

The user's knowledge of computing mattered in specific ways. As the sysadmin, the user decided against Docker and could judge the agent's answer. The user knew Scholar profiles were open when the agent said they were not, knew which colleagues work on AI when the scorer missed them, and noticed, every time, when the live site had not changed.

The agent's capabilities included writing and testing a full Django application; reading government APIs, feeds and web pages politely; checking pages in a browser; searching the web; decoding a QR code; and keeping notes between sessions. Its limits were that it could not type a password, restart the service, send email, request an API key, see the user's screen, or reach the CSE server beyond the user's own folder. Several of the problems in section 5 lived in exactly that gap.

Scripting carried the operations side: an install script, a demo script, a publish script with its own safety checks, a preview script, management commands for every repeatable job, and two Claude Code skills, /news and MatchMaker, whose instructions live in files the user can edit.

Software-engineering practice showed up as a written plan with phases, a commit at each step, 464 tests, one table owning each concept (institute news apart from AI news, site text apart from content), refusing bad data at ingest rather than cleaning it later, and keeping generated files out of version control.

5. How the agent checked its own work

Where these missed. Some problems passed every check and were found by the user:

Prompt What the user saw Why the agent's checks missed it
13 The site still refused the network address The configuration was right on disk; the running service predated it
15 A colleague who works on AI scored 22 The tests checked the scorer's arithmetic, not its vocabulary
20 "Why can't you get to people's google scholar profiles?" The agent had relied on Scholar's reputation, and its robots parser was wrong
37 Every page returned an error Tests ran the new code; the live service ran old code with new templates
64 An approval never landed The live service predated the route the button posted to
70 No confirmation email, so no sign-in The site cannot send mail, and email was mandatory
72 A six-digit code nobody remembered setting up The tests pass whatever two-factor setting the machine has

The pattern is the main practical lesson of this playbook: the agent's tests ran the code on disk, while the site people saw ran whatever was loaded at its last restart, and only the user could restart it. An agent working on a live service needs either the means to restart it or a habit of saying, every time, which changes need a restart. This agent learned the second at prompt 37.

6. What needs expert verification, by discipline

Nothing here has been reviewed by a specialist. The table lists what each part assumes and what is missing.

Component What the implementation assumes What was checked What is missing Discipline
Sign-in Email and password; two-factor off; email confirmation optional Tests; sign-in works over plain HTTP HTTPS; two-factor for staff; sign-in rate limits Information security
Teams page One shared password, Apache Basic authentication over HTTPS on the CSE server Refused without the password, served with it, password file forbidden, checked from outside after every publish Review of shared passwords and of CSE's policy Information security
Faculty profiles Public UNR pages and Scholar profiles; a profile with a verified unr.edu email accepted automatically; emails shown Duplicate names resolved by email; papers stored only for confirmed profiles Consent or a claim process; policy on showing emails Privacy and records policy
News feed and reading shelf Summaries of 30 to 40 words in the agent's own words; publisher pictures loaded from their servers No verbatim excerpts; images that fail are removed Fair-use judgement for a university site Copyright, university counsel
Funding data Grants.gov, NSF, NIH and agency fields as published; keyword relevance Real crawls; known API quirks handled Eligibility read by a person; coverage of state and industry funding Research development, sponsored programs
MatchMaker Teams argued from paper titles, venues and solicitations Every cited paper exists in the database and belongs to the named person Reading of full papers; colleagues' agreement before outreach Research development
Hosting One desk machine, a DHCP address, plain HTTP, a static copy on a personal faculty page Cold boot; services return after a reboot A university hostname, managed hosting, scheduled off-site backups University IT (OIT)
Branding UNR name and colours; Pack AI removed at the user's request None Approval of marks and voice Marketing and Communications
Accessibility Semantic HTML from templates None An audit against WCAG Accessibility (ADA)
Email and newsletter Not built; the site cannot send mail None A mail service, and the newsletter itself University IT; communications

A launch of this site as a university service would need an information security reviewer, the privacy or records office, university counsel for the news and pictures, a research development officer for the funding data and team proposals, OIT for hosting and a hostname, Marketing and Communications for the brand and voice, and an accessibility reviewer. The agent's contribution is a working prototype that these people can look at together.

7. Data sources accessed

Every data source the agent downloaded or queried.

Data Provider Used for Access
Funding opportunities, search and detail Grants.gov (U.S. Department of Health and Human Services) Funding calls from 20 searches and agency sources Grants.gov API
Contract opportunities SAM.gov (U.S. General Services Administration) DARPA and Defense notices; built, but no key yet, so never queried live Get Opportunities Public API
Upcoming funding opportunities National Science Foundation, RSS Funding calls NSF RSS
Funding opportunities NIH Guide, RSS Funding calls NIH Guide feed
Awards NIH RePORTER API NIH awards held at UNR and in Nevada RePORTER API
Faculty pages University of Nevada, Reno department directories Faculty names, titles and research interests UNR
Author profiles Google Scholar Interests, affiliation, verified email domain, recent papers Google Scholar
Personal and lab pages Individual faculty Links on profiles, after checking each page Linked from each profile
Research news UNR Nevada Today; FDA press releases; Google Research and Microsoft Research blogs Scout news sources Nevada Today
AI news Nevada and national outlets, AI labs' own sites, Fox 11 Reno The daily AI news feed Listed in DAILY_NEWS_PROMPT.md
Leads only The Innermost Loop Finding stories, never cited The Innermost Loop
Program and directory pages UNR's page for the Minor in AI; Reynolds School of Journalism directory The minor article; two faculty profiles Minor in AI
Web search Claude's web search tool 116 searches: faculty profiles, news, the DGX Spark, the Moonshots hosts —
Health funders (tried, not used) AHRQ, CDC, Robert Wood Johnson, Chan Zuckerberg, American Heart Association Feeds dead or refusing automated readers —

Scholar's search pages were deliberately not used, since its robots file disallows them. Images on the news cards are not downloaded; readers' browsers fetch them from the publishers.

8. References

Software

  1. Django 6.0. https://www.djangoproject.com/
  2. PostgreSQL 18. https://www.postgresql.org/
  3. Redis. https://redis.io/
  4. Celery and django-celery-beat. https://docs.celeryq.dev/
  5. Gunicorn. https://gunicorn.org/
  6. Caddy 2. https://caddyserver.com/
  7. Tailwind CSS v4, standalone build. https://tailwindcss.com/
  8. htmx 2. https://htmx.org/
  9. django-allauth. https://docs.allauth.org/
  10. django-otp. https://django-otp-official.readthedocs.io/
  11. WhiteNoise. https://whitenoise.readthedocs.io/
  12. bleach and Python-Markdown. https://bleach.readthedocs.io/ · https://python-markdown.github.io/
  13. Beautiful Soup and feedparser. https://www.crummy.com/software/BeautifulSoup/ · https://feedparser.readthedocs.io/
  14. bcrypt, Pillow and pypdf. https://pypi.org/project/bcrypt/ · https://python-pillow.org/ · https://pypdf.readthedocs.io/
  15. Ubuntu 26.04 LTS. https://ubuntu.com/
  16. Claude Code, Anthropic. https://claude.com/claude-code

Robots exclusion

  1. Koster, M., Illyes, G., Zeller, H., & Sassman, L. (2022). Robots Exclusion Protocol. RFC 9309. Internet Engineering Task Force. https://www.rfc-editor.org/rfc/rfc9309

The code itself is in this repository. The scout is in apps/scout/, MatchMaker in apps/funding/, the news feed in apps/news/, and the exporter in apps/core/management/commands/export_static.py. The plan, runbook and guides are in docs/.