Skip to main content
A skill is encoded domain expertise scoped to a user or group. Skills are reusable instructions Atlas draws on while reasoning, capturing how you or your team approach specific kinds of problems. See Adding a Personal Skill & System Memory for a workflow guide.

Endpoints

MethodPathDescription
POST/skillsCreate a skill
GET/skillsList skills
GET/skills/{skill_id}Get a skill
PATCH/skills/{skill_id}Update a skill
DELETE/skills/{skill_id}Delete a skill
GET/skills/{skill_id}/versionsList version history
POST/skills/{skill_id}/rollbackRoll back to a previous version

Create a skill

POST /skills Request body:
FieldRequiredTypeDescription
nameYesstringKebab-case identifier, 1–64 characters (e.g. power-budget-analysis)
descriptionYesstringWhat the skill does, 1–1024 characters
power_commandYesstringSlash-command name Atlas recognizes. Kebab-case, no leading slash
instructionsYesstringThe procedure Atlas follows when this skill is active (markdown supported)
scopeNostringuser (personal, default) or global (org-wide)
group_idNoUUIDGroup to scope this skill to (for group-scoped skills)
Example request:
curl -X POST "https://spacex.atlas.arenaphysica.com/api/v1/skills" \
  -H "Authorization: Bearer $ATLAS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "power-budget-analysis",
    "description": "Standard procedure for analyzing power budget violations.",
    "scope": "user",
    "power_command": "power-budget-analysis",
    "instructions": "When analyzing power issues:\n1. Check rail voltages against nominal spec.\n2. Identify load contributors sorted by draw.\n3. Flag any component exceeding 90% of its rated power.\n4. Check for inrush at startup."
  }'
Response fields:
FieldTypeNullableDescription
uuidUUIDNoSkill identifier
namestringNoKebab-case name
descriptionstringNoSkill description
scopestringNouser or global
statusstringNoApproval status
power_commandstringNoCommand identifier
instructionsstringNoSkill content
current_versionintegerNoCurrent version number
pending_versionintegerYesVersion pending approval, if any
created_bystringNoCreator email
group_idUUIDYesAssociated group
job_idUUIDYesAssociated job, if any
created_atstringNoISO 8601 creation timestamp
updated_atstringNoISO 8601 last-update timestamp
Example response:
{
  "uuid": "e1f2a3b4-c5d6-7890-efab-901234567890",
  "name": "power-budget-analysis",
  "description": "Standard procedure for analyzing power budget violations.",
  "scope": "user",
  "status": "active",
  "power_command": "power-budget-analysis",
  "instructions": "When analyzing power issues:\n1. Check rail voltages against nominal spec.\n2. Identify load contributors sorted by draw.\n3. Flag any component exceeding 90% of its rated power.\n4. Check for inrush at startup.",
  "current_version": 1,
  "pending_version": null,
  "created_by": "engineer@example.com",
  "group_id": null,
  "job_id": null,
  "created_at": "2026-04-13T12:00:00.000000",
  "updated_at": "2026-04-13T12:00:00.000000"
}

List skills

GET /skills Query parameters:
ParameterTypeDescription
scopestringFilter by scope: user or global
statusstringFilter by approval status
searchstringSearch by name or power command
Example request:
curl "https://spacex.atlas.arenaphysica.com/api/v1/skills" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Returns {"items": [...], "count": N} where each item is a skill object with the same fields as the create response.

Get a skill

GET /skills/{skill_id} Example request:
curl "https://spacex.atlas.arenaphysica.com/api/v1/skills/$SKILL_ID" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Returns a single skill object with the same fields as the create response.

Delete a skill

DELETE /skills/{skill_id} Example request:
curl -X DELETE "https://spacex.atlas.arenaphysica.com/api/v1/skills/$SKILL_ID" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Returns 204 No Content.

Update a skill

PATCH /skills/{skill_id} All fields are optional. Each update creates a new version.
FieldTypeDescription
namestringNew kebab-case name
descriptionstringUpdated description
scopestringuser or global
power_commandstringUpdated command identifier
instructionsstringUpdated skill content
change_summarystringNotes describing what changed in this version
Example request:
curl -X PATCH "https://spacex.atlas.arenaphysica.com/api/v1/skills/$SKILL_ID" \
  -H "Authorization: Bearer $ATLAS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "When analyzing power issues:\n1. Check rail voltages against nominal spec.\n2. Review thermal derating curves.\n3. Identify top load contributors.\n4. Flag components above 90% rated power.\n5. Check startup inrush.",
    "change_summary": "Added thermal derating step"
  }'
Returns the updated skill object with the same fields as the create response.

Version history and rollback

GET /skills/{skill_id}/versions Returns all versions of a skill.
curl "https://spacex.atlas.arenaphysica.com/api/v1/skills/$SKILL_ID/versions" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Response fields (array):
FieldTypeDescription
uuidUUIDVersion identifier
version_numberintegerVersion number (1-indexed)
namestringSkill name at this version
descriptionstringDescription at this version
scopestringScope at this version
power_commandstringPower command at this version
instructionsstringSkill content at this version
statusstringApproval status
created_bystringAuthor email
created_atstringISO 8601 creation timestamp
change_summarystringNotes describing what changed
Example response:
[
  {
    "uuid": "f1a2b3c4-d5e6-7890-fabc-012345678901",
    "version_number": 2,
    "name": "power-budget-analysis",
    "description": "Standard procedure for analyzing power budget violations.",
    "scope": "user",
    "power_command": "power-budget-analysis",
    "instructions": "When analyzing power issues:\n1. Check rail voltages against nominal spec.\n2. Review thermal derating curves.\n3. Identify top load contributors.\n4. Flag components above 90% rated power.\n5. Check startup inrush.",
    "status": "active",
    "created_by": "engineer@example.com",
    "created_at": "2026-04-13T12:05:00.000000",
    "change_summary": "Added thermal derating step"
  },
  {
    "uuid": "e1f2a3b4-c5d6-7890-efab-901234567890",
    "version_number": 1,
    "name": "power-budget-analysis",
    "description": "Standard procedure for analyzing power budget violations.",
    "scope": "user",
    "power_command": "power-budget-analysis",
    "instructions": "When analyzing power issues:\n1. Check rail voltages against nominal spec.\n2. Identify load contributors sorted by draw.\n3. Flag any component exceeding 90% of its rated power.\n4. Check for inrush at startup.",
    "status": "active",
    "created_by": "engineer@example.com",
    "created_at": "2026-04-13T12:00:00.000000",
    "change_summary": null
  }
]

POST /skills/{skill_id}/rollback Rolls back to a previous version. Request body:
FieldRequiredTypeDescription
version_numberYesintegerVersion to roll back to
Example request:
curl -X POST "https://spacex.atlas.arenaphysica.com/api/v1/skills/$SKILL_ID/rollback" \
  -H "Authorization: Bearer $ATLAS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"version_number": 1}'
Returns the updated skill object with the same fields as the create response, reflecting the rolled-back version.