build-template-agent
Skill1 starsChanged 22 days agoMITView on GitHub
Copy, build, smoke-test, and run a finished .NET 10 agent template: Release Evidence Reviewer, Docs Q&A, Operations Data Analyst, or Ticket Triage. Use for ready/prebuilt agents, not custom generation or existing apps.
- Reads credentials
In this repository7 other files it gives its agents.
- build-custom-agentSkill
- cost-reportSkill
- coverage-gapsSkill
- generate-evalSkill
- health-checkSkill
- instrument-agentSkill
- trace-triageSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 4 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Run the documented app or smoke command directly and let the app report missing configuration.
- Very specific: line 19
Use the bundled templates.json in this skill directory for the exact IDs, project filenames, and three smoke-case IDs.
- Distinctive: line 33
Do not ask domain/design questions or route to the custom builder.
- Very specific: line 50
Run dotnet build "<absolute-target>/<catalog-project>".
- Very specific: line 54
Never source or copy a parent .env.
- Very specific: line 76
Do not add another tracing wrapper.
- Distinctive: line 84
Start the already-built web app on an OS-assigned loopback port.
- Very specific: line 91
Keep that process running and actively read its own standard Now listening on: http://127.0.0.1:<port> line.
- Very specific: line 103
Verify /api/health only at the exact reported URL.
- Distinctive: line 131
Keep the cleanup offer conditional: a successful run does not establish that user-secrets were used.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Build a ready agent template
Copy the selected finished asset without generating or customizing source. This workflow writes one new project folder.
Throughout intake, build, testing, and troubleshooting, never run
dotnet user-secrets list, read secret-store files, or dump environment values.
This also forbids listing only key names, checking which keys exist, or filtering
or redacting the output: those operations still inspect the secret store.
Run the documented app or smoke command directly and let the app report missing
configuration. Report only the missing key names and refer to the README;
never request, inspect, or print credential values.
Use the bundled templates.json in this skill directory for the exact IDs,
project filenames, and three smoke-case IDs. A platform handoff supplies the
selected template ID:
| ID | Data and experience |
release-evidence-reviewer | Markdown release evidence; contextual review chat and New review |
docs-qa | Markdown Q&A; source-scoped questions and follow-ups (local lexical RAG) |
operations-data-analyst | Mock CSV; ask questions, inspect KPIs, and change the dashboard view |
ticket-triage | JSON inbox and Markdown policy; questions and temporary intake scenarios |
Honor the requested ID or unambiguous display name. An explicitly unknown
template is an error, not a request to invent one. If no template is specified,
preserve the release-evidence-reviewer default. The default target is ./<id>.
Do not ask domain/design questions or route to the custom builder.
Workflow
Require the .NET 10 SDK. Locate this skill's own directory and read the selected catalog entry. Run its package-free .NET file-based helper:
dotnet run --file <skill-directory>/scripts/copy-template.cs -- --template <id> --target <target>The copier accepts only a missing target or a real empty directory. It must succeed before continuing. Do not work around a refusal, overwrite content, or reconstruct the asset from memory. This customer workflow does not require Python.
--listprints the catalog without creating a project.- Resolve the copied project directory to an absolute path (
<absolute-target>). Rundotnet build "<absolute-target>/<catalog-project>". Do not modify the copied source to make the build pass; report an asset defect if the unchanged template fails. Never source or copy a parent
.env. The app reads local settings from .NET user-secrets as documented in the copied README. Run all three local cases withdotnet run --project "<absolute-target>/<catalog-project>" -- --smoke. Parse the single-lineSMOKE_REPORT=<json>marker and require overallpassplus exactly the three passing case IDs from the selected catalog entry. Do not accept skipped tests, another template's cases, or a report from an earlier run.Azure OpenAI settings (
AzureOpenAI:Endpoint,AzureOpenAI:Deployment, and the optionalAzureOpenAI:ApiKeywhen local Azure identity is not used) andProgress:Observability:ApiKey(an Integration credential) are app inputs. If configuration is missing, follow the credential-handling rule above and point to the copied README's user-secrets commands; do not inspect configuration as a prerequisite check. Mock data describes bundled business fixtures, not a mock model: smoke cases and UI actions call configured Azure OpenAI. A successful run used available app configuration; never infer that credentials or model access are unnecessary.Preserve the bundled tracing setup: every template uses one
AddObservability()chat-client wrapper and temporarily clears/restores the caller activity without creating a custom span. Its tools useAddToolObservability()when tracing and content capture are enabled, adding argument/result spans alongside the automatic metadata-only tool spans. Do not add another tracing wrapper. Tool-only responses may have empty Output text; their structured calls are recorded by the SDK.Progress:Observability:RecordInputsandProgress:Observability:RecordOutputsdefault totrue. Setting either flag tofalsedisables both directions of agent/chat/tool content; use the README's process-specific overrides when requested. SDK exception text remains outside these switches.Start the already-built web app on an OS-assigned loopback port. Use the same absolute target so this command works from any working directory:
dotnet run --project "<absolute-target>/<catalog-project>" --no-build -- --urls http://127.0.0.1:0Keep that process running and actively read its own standard
Now listening on: http://127.0.0.1:<port>line. Use the host's persistent terminal or background-process mechanism with readable stdout and stderr. Once launched, immediately read that process's output in the same turn unless the URL is already present. Use short bounded reads for at most 30 seconds total and stop if the process exits. Do not wait for the server command to complete, because a healthy server remains running, and do not end the turn with a passive "Waiting..." status. If process output is not directly readable, use one combined launch log beside the requested target, never a shared/tmpfilename. Disclose if the process cannot outlive the session.Verify
/api/healthonly at the exact reported URL. Never guess, scan, or reuse a default or nearby port. A process exit or missing listening line at the deadline fails the health gate. Never start a replacement because an output read was incomplete, and never restart an already healthy process. Require HTTP 200 withstatus=readyfrom/api/healthand HTTP 200 from/; a degraded health response is not a pass. Read HTTP results directly without creating health-check files (for example,curl --fail --silent --show-error <actual-url>/api/health). If browser tools are available, also exercise the selected page's main action and inspect its result/error state. Never claim a browser interaction was checked when only HTTP was used.- Return exactly one Progress Observability Tracing page link:
https://observability.progress.com/observations. Do not resolve, construct, or list per-trace deep links.
Report success only after copy, build, all three smoke cases, and UI health pass. Return the absolute project path, verified local UI link, one Progress Observability Tracing page link, and the three smoke-case results. Smoke results are local execution evidence; this workflow does not verify backend ingestion. State explicitly that backend trace ingestion is not independently verified by this workflow. On a failure, report the failed gate and the smallest safe retry; do not claim the template is ready.
Append this note verbatim to the successful handoff:
Development use only: This agent is in a local development environment. .NET user-secrets stores credentials unencrypted in a JSON file in your user profile. For production deployment, inject credentials through environment variables backed by your deployment’s secret manager. If you used user-secrets or entered credentials directly in terminal commands, I can guide you through removing the saved development credentials and relevant shell-history entries when you finish testing.
Keep the cleanup offer conditional: a successful run does not establish that
user-secrets were used. Do not inspect secret-store contents or shell history
to decide. Perform cleanup only when requested, after testing; explain that
Progress.AgentBuilder.Mvp is shared across all five agents before removing
settings. Refer to the copied README for targeted removal and shell-specific
guidance; do not automatically clear the store or unrelated shell history.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

