adaline-prompts — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited adaline-prompts (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Prompts are the central artifact in Adaline's Prompt surface. A prompt has metadata, a draft, optional playground data, and deployable snapshots.
Key terms:
settingscontent arrays{{variable}} placeholders and returned on prompt/draft resourcesSet these environment variables when credentials are available:
ADALINE_API_KEY — workspace API key from Admin > API KeysADALINE_PROJECT_ID — project to create/list prompts inBase URL: https://api.adaline.ai/v2
| Symptom | First Fix |
|---|---|
| List returns empty | Include the correct projectId query parameter |
| Pagination skips records | Use pagination.nextCursor, not legacy page-number pagination |
| Prompt creation fails | Ensure draft.messages[].content is an array of content objects |
| Tool schema fails | Use { "type": "function", "definition": { ... } }, not legacy top-level name/parameters |
| Draft changes not in production | Deploy a prompt snapshot in the Platform UI, then fetch with the deployments skill |
# List prompts
curl "https://api.adaline.ai/v2/prompts?projectId=$ADALINE_PROJECT_ID&limit=20" \
-H "Authorization: Bearer $ADALINE_API_KEY"
# Create prompt
curl -X POST "https://api.adaline.ai/v2/prompts" \
-H "Authorization: Bearer $ADALINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"projectId": "project_abc123",
"title": "Support triage",
"icon": { "type": "emoji", "value": "🎧" },
"draft": {
"config": {
"provider": "openai",
"model": "gpt-4o",
"settings": { "temperature": 0.3 }
},
"messages": [
{
"role": "system",
"content": [
{ "modality": "text", "value": "You are a helpful support assistant." }
]
},
{
"role": "user",
"content": [
{ "modality": "text", "value": "Answer {{question}}" }
]
}
],
"tools": []
}
}'{
"config": {
"provider": "openai",
"model": "gpt-4o",
"settings": {
"temperature": 0.3,
"maxTokens": 1024
}
},
"messages": [
{
"role": "system",
"content": [
{ "modality": "text", "value": "You are helpful." }
]
}
],
"tools": [
{
"type": "function",
"definition": {
"name": "lookup_order",
"description": "Look up an order by ID",
"parameters": {
"type": "object",
"properties": {
"order_id": { "type": "string" }
},
"required": ["order_id"]
}
}
}
]
}Prompt message content is structured. Supported modality values include text, image, pdf, tool-call, tool-response, reasoning, search-result, and error.
{
"role": "user",
"content": [
{ "modality": "text", "value": "Describe this image." },
{
"modality": "image",
"detail": "auto",
"value": { "type": "url", "url": "https://example.com/image.png" }
}
]
}The current TypeScript and Python SDKs expose prompt namespace clients:
await adaline.prompts.list({ projectId, limit: 20 });
await adaline.prompts.create({ prompt });
await adaline.prompts.get({ promptId, expand: 'playground' });
await adaline.prompts.update({ promptId, prompt: { title: 'New title' } });
await adaline.prompts.draft.get({ promptId });await adaline.prompts.list(project_id=project_id, limit=20)
await adaline.prompts.create(prompt=prompt)
await adaline.prompts.get(prompt_id=prompt_id, expand="playground")
await adaline.prompts.update(prompt_id=prompt_id, prompt=patch)
await adaline.prompts.draft.get(prompt_id=prompt_id)limit + cursor) for list endpoints.config.settings.variables arrays.See references/api.md for the full REST contract and examples.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.