First-time domain setup — interviews you about your research field, discovers relevant scientific packages via PyPI and GitHub, then fills in all template placeholder sections across your SciAgent instruction files. No Python runtime or wizard dependency needed.
Install
npx skillscat add smestern/sciagent/configure-domain Install via the SkillsCat registry.
Configure Domain Knowledge
Set up your SciAgent installation for a specific research domain. This
skill walks you through a structured interview, discovers relevant
scientific packages, and fills in the <!-- REPLACE: ... --> placeholder
sections across your template files — turning generic SciAgent
instructions into domain-tuned guidance.
When to Use
- You just installed SciAgent templates and the instruction files still
contain unfilled<!-- REPLACE: ... -->placeholder comments. - You want to configure SciAgent for a new research domain from scratch.
- Another agent suggested running
/configure-domainbecause it
detected unfilled placeholders.
Procedure
Step 1 — Interview
Ask the user about their research domain. Gather the following
information through natural conversation (do not present this as a
rigid questionnaire — adapt based on answers):
- Research domain & sub-field — e.g. "cellular electrophysiology,
specifically patch-clamp recordings of cortical neurons" - Data types & file formats — e.g. ".abf files, .csv spike tables,
.nwb bundles" - Existing packages already in use — e.g. "we already use pyabf,
neo, and elephant" - Analysis goals — e.g. "spike detection, AP feature extraction,
dose-response fitting" - Common workflows — e.g. "load ABF → extract sweeps → detect
spikes → measure features → compare across conditions" - Value ranges & units — e.g. "membrane potential –100 to +60 mV,
currents –2000 to 2000 pA"
Confirm your understanding back to the user before proceeding.
Step 2 — Audit Templates
Scan the workspace for SciAgent instruction files and identify unfilled
placeholders:
- Search for files matching
*.instructions.md,operations.md,workflows.md,tools.md,library_api.md,skills.mdin.github/instructions/and the workspace root. - In each file, look for
<!-- REPLACE: key — description -->comments. - Build a checklist of every placeholder found, grouped by file.
- Show the checklist to the user: "I found N unfilled placeholders
across M files. Here's what needs filling: ..."
Step 3 — Discover Packages
Based on the interview answers, search for relevant scientific Python
packages:
- Formulate 2–3 targeted search queries from the domain keywords
(e.g. "electrophysiology patch clamp python", "ABF file analysis
python", "spike sorting library python"). - For each query, fetch the PyPI JSON API:
https://pypi.org/pypi/{candidate_name}/jsonfor known package
names the user mentioned or that are commonly associated with
the domain. - For packages with GitHub repositories, fetch the README to get a
quick overview of capabilities. - Present discovered packages to the user with:
- Package name and version
- One-line description
- Repository URL (if available)
- Relevance to their stated goals
Ask the user to confirm which packages to include.
Step 4 — Fill Template Placeholders
For each confirmed placeholder, generate domain-appropriate content and
use editFiles to replace the <!-- REPLACE: key — description -->
comment with the actual content.
Fill order (adjust based on which files have placeholders):
- operations.md — Standard workflows, analysis parameters,
parameter adjustment guidance, edge cases, reporting precision table - workflows.md — Workflow overview table, individual workflow
sections with steps, parameters, and expected outputs - library_api.md — Core classes, key functions, common pitfalls,
and quick-start recipes for confirmed packages - tools.md — Domain tool documentation and custom tool templates
- skills.md — Domain-specific skill entries (if any custom skills
are warranted by the domain)
For each placeholder, follow the examples provided in the comment's
description — each <!-- REPLACE: key — description. Example: ... -->
includes guidance on the expected format.
Step 5 — Append Domain-Specific Content
Beyond filling placeholders, add new content where warranted:
- Domain guardrails — Add forbidden patterns or warning patterns
specific to the domain (e.g. "never average across conditions before
checking for outliers") - Additional workflows — If the domain has standard pipelines not
covered by the placeholder structure - Custom skills — If the domain warrants specialized skill entries
Append new content below the existing sections — never overwrite content
that was already present before this session.
Step 6 — Lite Docs (Optional)
For each confirmed package, offer to create a minimal API reference:
- Fetch the package's PyPI metadata via
https://pypi.org/pypi/{name}/json - If a GitHub repository is listed, fetch the README
- Write a condensed reference to the
docs/directory following thelibrary_api.mdformat (Core Classes, Key Functions, Common
Pitfalls, Quick-Start Recipes)
For deeper documentation crawling, suggest the user invoke/docs-ingestor (requires sciagent[wizard]).
Step 7 — Verify
- Re-scan all template files for remaining
<!-- REPLACE: ... -->
placeholders. - Summarize what was changed:
- Files modified (with placeholder counts before/after)
- Packages included
- New sections added
- If any placeholders remain unfilled (e.g. the user deferred some),
note them and suggest running/update-domainlater.
Re-Run Safety
If invoked on a workspace that already has filled content:
- Detect existing content — Check whether placeholders have already
been replaced with domain content. - Ask before overwriting — If content exists, ask the user: "This
section already has domain content. Overwrite, skip, or append?" - Never silently overwrite — User-edited content is precious.
Default to skipping already-filled sections.
What This Skill Does NOT Do
- Does not execute Python code or run analysis
- Does not install packages (suggest
pip installcommands instead) - Does not require
sciagent[wizard]— works with VS Code's
built-infetchandeditFilestools only - Does not create new agent
.agent.mdfiles — it configures the
existing template files