-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathskill.json
More file actions
57 lines (57 loc) · 3.41 KB
/
Copy pathskill.json
File metadata and controls
57 lines (57 loc) · 3.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{
"type": "skill",
"_note": "SkillSchema. Seeded from docs/audits/2026-06-skillschema-property-liveness.md. skill-registry.ts + agent-runtime.ts are the runtime consumers. ⚠ EVIDENCE LIVES IN CLOUD/EE: the `packages/services/service-ai/...` paths cited below are the closed `@objectstack/service-ai` runtime in the CLOUD repo, NOT git-tracked framework code (the framework's own service-ai tree is a stale build artifact with no src/). These props are `live` because that cloud runtime consumes them; the OPEN framework edition does not — see content/docs/ai for the open/cloud boundary.",
"props": {
"name": {
"status": "live",
"evidence": "packages/services/service-ai/src/skill-registry.ts"
},
"surface": {
"status": "live",
"evidence": "packages/services/service-ai/src/agent-runtime.ts (resolveActiveSkills)",
"note": "ADR-0063 §3 / ADR-0064 — skill↔agent affinity. resolveActiveSkills hard-fails when a bound skill's surface ('ask'|'build'|'both') is incompatible with the agent's surface; the union of surface-compatible skills' tools IS the agent's tool set (no global fall-through)."
},
"label": {
"status": "live",
"evidence": "packages/services/service-ai/src/skill-registry.ts:247",
"note": "injected into the agent system prompt."
},
"description": {
"status": "live",
"evidence": "packages/services/service-ai/src/skill-registry.ts:247",
"note": "injected into prompt."
},
"instructions": {
"status": "live",
"evidence": "packages/services/service-ai/src/skill-registry.ts:247",
"note": "injected into prompt."
},
"tools": {
"status": "live",
"evidence": "packages/services/service-ai/src/skill-registry.ts:206",
"note": "tool-contribution path incl. action_* wildcard."
},
"triggerConditions": {
"status": "live",
"evidence": "packages/services/service-ai/src/skill-registry.ts:153",
"note": "THE activation gate — AND of {field,operator,value}."
},
"active": {
"status": "live",
"evidence": "packages/services/service-ai/src/skill-registry.ts:93",
"note": "inactive skills dropped."
},
"triggerPhrases": {
"status": "live",
"evidence": "objectui: packages/app-shell/src/views/metadata-admin/previews/SkillPreview.tsx:44",
"note": "LIVE via objectui metadata-admin authoring UI — the 2026-06 audit missed objectui; verified by reading the file."
},
"permissions": {
"status": "dead",
"evidence": "skill.form.ts + objectui SkillPreview.tsx:48 (both authoring-side echo only); no gate in the cloud SkillRegistry",
"authorWarn": true,
"authorHint": "Skill invocation is NOT permission-gated by this list — the registry reads only `active`/`triggerConditions`/`tools`. Agent-level `access`/`permissions` ARE enforced (#1884), so gate at the agent, or gate the underlying tools' actions via permission sets (ADR-0066).",
"note": "CORRECTED 2026-07 (#1878 §3 recheck): was marked live on the evidence of the metadata-admin PREVIEW renderer — an echo of what the author typed, not runtime consumption. Mirrors the identical `tool.permissions` entry. Cloud documents the intent ('Layer permissions via Skill.permissions independent of the agent's permissions', service-ai-studio/src/skills/metadata-authoring-skill.ts:15) without implementing it — enforce-or-prune tracked separately."
}
}
}