From prisme-ai
Create a Prisme.ai bootstrap workspace that provisions an Agent Factory agent, attaches Storage-backed file or URL sources, seeds Agent Evaluations cases, runs evaluation, and validates the setup through the supported product apps Agents, Storage, and Evaluation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/prisme-ai:agent-workspaceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to build a consumer/bootstrap DSUL workspace whose purpose is to create and validate an Agent Factory agent with Storage sources and Evaluation test cases.
Use this skill to build a consumer/bootstrap DSUL workspace whose purpose is to create and validate an Agent Factory agent with Storage sources and Evaluation test cases.
Agents for agent creation, configuration, tools, messages, and cleanup.Storage for file or URL sources, vector stores, indexing, listing, and cleanup.Evaluation for test cases, evaluation runs, run polling, exports/results, and cleanup.fetch to Agent Factory, Storage, or Agent Evaluations. For this bootstrap workspace, avoid fetch: entirely unless the user explicitly adds an unrelated external integration.Agents, Storage, and Evaluation among Prisme product apps.one-product label to the generated workspace.Before editing files:
docs/agent-factory/automations.mddocs/storage/automations.mddocs/agent-evaluations/automations.mdworkspaces/agent-factory-consumer/ for Agents.* app method usage.workspaces/agent-evaluations-consumer/ for evaluation app method usage; translate AgentEvaluations.* calls to this skill's Evaluation.* import alias.workspaces/ai-act-agent/ only for high-level workspace shape. Do not copy its domain filters or any raw HTTP cleanup pattern.After confirmation, create a local workspace under workspaces/{slug}/:
workspaces/{slug}/
├── index.yml
├── security.yml
├── imports/
│ ├── Agents.yml
│ ├── Storage.yml
│ └── Evaluation.yml
├── automations/
│ ├── createBootstrap.yml
│ ├── createAgent.yml
│ ├── createStorageSources.yml
│ ├── createEvaluationCases.yml
│ ├── runEvaluation.yml
│ └── tests/
│ └── bootstrap.yml
└── tests/
└── README.md
tests/ is required for fixtures, status notes, and a human-readable test contract. Executable DSUL tests live under automations/tests/ so the workspace loader can run them.
Use these import slugs exactly unless the user explicitly asks for a different local alias.
# imports/Agents.yml
slug: Agents
appSlug: Agents
config:
apiKey: '{{secret.agentFactoryApiKey}}'
# imports/Storage.yml
slug: Storage
appSlug: Storage
config: {}
# imports/Evaluation.yml
slug: Evaluation
appSlug: agentEvaluations
config:
apiKey: '{{secret.agentEvaluationsApiKey}}'
Keep index.yml focused on bootstrap state and secrets:
agent-bootstrap, rag, or the customer/domain name. Do not include one-product.agentFactoryApiKey and agentEvaluationsApiKey.agent: id, name, model, instructions, optional temperature.storage: vectorStoreId, provider, chunking/embedding defaults when needed.bootstrap.sources: source list classified as url, file_id, or local_file, with names, filenames, MIME types, source values, and tags.bootstrap.evaluationCases: question, expected answer, and criteria list.Create small automations with one responsibility each:
createAgent.yml: calls Agents.createAgent with config.agent.name, config.agent.instructions, config.agent.model, and config.agent.temperature, stores config.agent.id, returns the created agent.createStorageSources.yml: calls Storage.createVectorStore, Agents.addTool with type: file_search, then attaches each source with Storage.addFileToVectorStore.
url, file_name, mime_type, tags, metadata, optional headers, optional force_recrawl, and agent_id directly to Storage.addFileToVectorStore.file_id to Storage.addFileToVectorStore.Storage.uploadFile when the local file can be represented by the app's supported arguments. If the needed upload shape is not exposed by the app, stop and report the missing method.Storage.listVectorStoreFiles or Storage.getVectorStoreFile until each file reaches a terminal indexed or failed state before sending messages or starting evaluation.createEvaluationCases.yml: calls Evaluation.importCases or Evaluation.createCase, then Evaluation.listCases.runEvaluation.yml: calls Evaluation.startRun, polls Evaluation.getRun until completed, failed, cancelled, or timeout, then returns the run and result summary.createBootstrap.yml: endpoint automation that runs the full flow in order and returns IDs plus next steps.Use comment: instructions for explanations inside DSUL. Do not use YAML comments in automation files.
private: true.automations/tests/bootstrap.yml must set slug: tests/bootstrap, a matching name such as /tests/bootstrap, and when.endpoint: true.security.yml must define the intended authorization posture. Default to manual/admin bootstrap endpoints; do not expose bootstrap or test endpoints as unauthenticated public endpoints unless the user explicitly requests it.The first implementation must include a runnable bootstrap test. It must create temporary resources, verify them, run evaluation, and clean up.
Executable automation: automations/tests/bootstrap.yml.
Required checks:
run.correlationId; use it in names, tags, and metadata.Agents.createAgent.Storage.createVectorStore.Agents.addTool as file_search.Storage.addFileToVectorStore using the url argument.Evaluation.importCases or Evaluation.createCase.Agents.sendMessage and verify a non-empty task response after Storage indexing is complete.Evaluation.startRun.Evaluation.getRun; never use fetch for run creation or polling.Agents.getAgent returns the agent.Storage.getVectorStore returns the vector store.Storage.listVectorStoreFiles or Storage.getVectorStoreFile shows each source file in a terminal indexed or failed state.Evaluation.listCases returns the seeded cases.If the test fails because the generated DSUL is wrong, fix and rerun. Iterate until it passes or until a product app capability is missing. If a product app capability is missing, stop, report the missing method, and propose an app update.
Use try/catch cleanup blocks so failed setup attempts cleanup for captured IDs. Keep cleanup outputs in the test result.
Before reporting completion:
automations/tests/bootstrap.yml, with validate_automation. If the validation tool is unavailable, report that explicitly.rg -ni "Knowledge[[:space:]-]*Client|KnowledgeClient|AI[[:space:]-]*Knowledge|AI[[:space:]-]*Store|ai-knowledge|ai-store|appSlug:\\s*Knowledge|one-product|fetch:" workspaces/{slug}
There should be no matches in generated files. If the user explicitly requested an unrelated external integration and a legitimate unrelated fetch: exists, explain why it is outside Agent Factory, Storage, and Evaluation.
/test-automation workflow when available.When the workspace is ready locally, report:
npx claudepluginhub prismeai/prismeai-mcp --plugin prisme-aiGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.