Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Museum Exhibit Studio starters

Choose the directory for your workshop language and work directly inside it. After you change into it, open that same folder in your editor (code . from inside it, or any other editor's open-folder command) and keep your terminal there. These starters contain pinned dependencies, a minimal executable, and one pre-built curator helper module. The helpers hold the plumbing you never have to write: the approved fact sets and their bounds, the pre-built approved_fact_lookup local tool that hands those facts to the curator, the pre-built approved_wikipedia_fact_lookup local tool that returns captured research and citations when usable research exists, a streaming printer, deterministic exhibit validation, the scoped Wikipedia MCP server and its deny-by-default permission handler, the single-file exhibit.html write permission, and small terminal prompts. You never edit the helpers.

The starters do not include the curator system message, the exhibit prompt, session configuration, tool registration, or any orchestration. You write those during the lessons: one session, then streaming, then the curator voice, the fact tool registration and its prompt with a bounded session runner, the validation report, scoped Wikipedia research, and an interactive exhibit.html page. Each starter entrypoint carries comments marking exactly where each step's code goes. Start at workshop/museum-00-preflight.md.

Step 6 conditionally registers the Wikipedia lookup alongside the approved-fact lookup and asks the curator to call both before writing the narrative and visitor questions. Research remains supplemental, not educator-verified; approved facts take precedence. Declining research or receiving no usable cited summary leaves generation with only approved_fact_lookup.

Language Helper module Change directory, build, and run
.NET Helpers/Curator*.cs cd start-museum/dotnet && dotnet build && dotnet run
Node.js src/curator.ts cd start-museum/nodejs && npm ci && npm run build && npm start
Python curator.py cd start-museum/python && python -m venv .venv && .venv/bin/python -m pip install -r requirements.txt && .venv/bin/python main.py
Go curator.go cd start-museum/go && go build -mod=readonly ./... && go run .
Rust src/lib.rs cd start-museum/rust && cargo check --locked && cargo run --locked
Java src/main/java/workshop/Curator*.java cd start-museum/java && ./mvnw compile && ./mvnw exec:java

Running the starter prints its identity and does not start Copilot or require authentication. Because you edit these files in place, your work shows up in git status. That is expected. Run git checkout -- . from the repository root to restore a clean starter.

Every starter already pins the dependencies the finished application needs, so you never edit a project manifest during the workshop. The Rust starter builds the museum_exhibit_studio library crate from src/lib.rs; import the helpers from it in src/main.rs.