@zibby/skill-ids 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +31 -0
  2. package/src/index.js +150 -0
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@zibby/skill-ids",
3
+ "version": "0.1.0",
4
+ "description": "Single authoritative Zibby skill-id map (zero-dep leaf). The one source of truth for well-known skill ids — every consumer (agent-workflow, core, skills, backend, templates) imports it, so the ids can never drift.",
5
+ "type": "module",
6
+ "main": "src/index.js",
7
+ "exports": {
8
+ ".": "./src/index.js",
9
+ "./package.json": "./package.json"
10
+ },
11
+ "files": [
12
+ "src"
13
+ ],
14
+ "engines": {
15
+ "node": ">=18.0.0"
16
+ },
17
+ "keywords": [
18
+ "zibby",
19
+ "skills",
20
+ "agent-workflow",
21
+ "constants"
22
+ ],
23
+ "author": "Zibby",
24
+ "license": "MIT",
25
+ "homepage": "https://zibby.dev",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/ZibbyDev/zibby-agent"
29
+ },
30
+ "dependencies": {}
31
+ }
package/src/index.js ADDED
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @zibby/skill-ids — the SINGLE authoritative skill-id map (zero-dep leaf).
3
+ *
4
+ * Well-known skill IDs live HERE, once. Everyone imports this leaf:
5
+ *
6
+ * @zibby/skill-ids (zero deps, bottom of the graph)
7
+ * ↑ ↑ ↑ ↑
8
+ * agent-workflow core skills backend / frontend / templates
9
+ *
10
+ * - `agent-workflow` (the engine) does NOT import this — it binds skills by
11
+ * string id via its registry, so it stays decoupled from concrete ids.
12
+ * - `@zibby/skills` re-exports `SKILL_IDS as SKILLS` (its `registerSkill()`
13
+ * calls + `SKILLS.X` references resolve off this object).
14
+ * - `@zibby/core` re-exports `SKILL_IDS as SKILLS`, so the ~71 templates that
15
+ * `import { SKILLS } from '@zibby/core'` get the COMPLETE map — no drift.
16
+ *
17
+ * Being a zero-dependency leaf, nothing it imports can create a cycle
18
+ * (dep order is agent-workflow → core → skills → templates; this sits below
19
+ * all of them).
20
+ *
21
+ * GOVERNANCE (pin these):
22
+ * - Ids are APPEND-ONLY. Never remove or rename an id — frozen template
23
+ * bundles resolve `SKILLS.X` forever. Renames go through an alias here.
24
+ * - This map is the union superset of every id any consumer has ever
25
+ * exposed, so re-pointing a consumer's `SKILLS` export at it can only ADD
26
+ * keys, never drop one (non-breaking within a caret-locked minor).
27
+ */
28
+
29
+ export const SKILL_IDS = Object.freeze({
30
+ BROWSER: 'browser',
31
+ JIRA: 'jira',
32
+ GITHUB: 'github',
33
+ GITLAB: 'gitlab',
34
+ // `figma` — read-only design context over the Figma REST API (figmaSkill in
35
+ // @zibby/skills). OAuth integration; resolves the access token per-call via
36
+ // the backend. Declaring SKILLS.FIGMA gates deploy on a connected Figma
37
+ // (backend SKILL_INTEGRATION_MAP: 'figma' → INTEGRATIONS.FIGMA).
38
+ FIGMA: 'figma',
39
+ // `linear` — api-key paste-token issue tracker (linearSkill, served over MCP
40
+ // via bin/mcp-skill.mjs). Backend SKILL_INTEGRATION_MAP: 'linear' →
41
+ // INTEGRATIONS.LINEAR.
42
+ LINEAR: 'linear',
43
+ // `plane` — api-key issue tracker (planeSkill spawns the official
44
+ // plane-mcp-server).
45
+ PLANE: 'plane',
46
+ // `open-design` — design/deck authoring + export over the OpenDesign REST API
47
+ // (the Zibby-managed `open-design` app; the id equals the catalog appType).
48
+ // OPTIONAL: declaring it does NOT gate deploy (no requiresIntegration).
49
+ OPEN_DESIGN: 'open-design',
50
+ // `git` — provider-agnostic clone/list/explore tools. Auto-auths against
51
+ // GitHub OR GitLab depending on which token the runner injected. Backend
52
+ // SKILL_INTEGRATION_MAP renders this as "GitHub or GitLab" via {any:[...]}.
53
+ GIT: 'git',
54
+ // `git-write` — REQUIRED extension of `git`: the same read tools PLUS the
55
+ // provider-agnostic mutation tool git_open_pr. Repo-MUTATING agents declare
56
+ // this so deploy is gated on "GitHub OR GitLab" connected; backend maps it to
57
+ // REQUIRED_INTEGRATION_MAP {any:[github,gitlab]}. Read-only clone agents keep
58
+ // GIT. Backed by gitWriteSkill.
59
+ GIT_WRITE: 'git-write',
60
+ SLACK: 'slack',
61
+ LARK: 'lark',
62
+ // `discord` — post messages / list channels in the user's Discord server as
63
+ // their bot (paste-token integration, provider 'discord'). Backed by
64
+ // discordSkill (served over bin/mcp-skill.mjs as mcp__discord__* tools).
65
+ DISCORD: 'discord',
66
+ // Notion OAuth — multi-workspace integration. Used by notify-notion and as a
67
+ // destination for any report-producing parent template.
68
+ NOTION: 'notion',
69
+ // `google-docs` — create/append/read Google Docs (googleDocsSkill, served over
70
+ // MCP as mcp__gdocs__* tools). Backed by the drive.file-scoped 'google' OAuth;
71
+ // backend REQUIRED_INTEGRATION_MAP: 'google-docs' → INTEGRATIONS.GOOGLE.
72
+ GOOGLE_DOCS: 'google-docs',
73
+ // `lark-docs` — read/create/append Lark/Feishu documents (larkDocsSkill, served
74
+ // over MCP as mcp__larkdocs__* tools). REUSES the connected Lark app
75
+ // (integration 'lark'); backend REQUIRED_INTEGRATION_MAP: 'lark-docs' →
76
+ // INTEGRATIONS.LARK.
77
+ LARK_DOCS: 'lark-docs',
78
+ // `doc_source` — INTEGRATION-GATE MARKER (like `circleci`), not a runtime MCP
79
+ // skill: no skill registers under this id (the resolver warns + skips it).
80
+ // Declaring it gates deploy on a document source via the OR-group
81
+ // {any:[google, notion, lark]}. Used by the prd-review template.
82
+ DOC_SOURCE: 'doc_source',
83
+ // `linkedin` — publish to the connected PERSONAL LinkedIn profile
84
+ // (linkedinSkill → linkedin_publish_post).
85
+ LINKEDIN: 'linkedin',
86
+ // `chat_notify` — provider-agnostic chat notification. Routes to Slack OR Lark
87
+ // depending on which integration the project has connected. Backend renders
88
+ // this as "Slack OR Lark" via {any:[...]}.
89
+ CHAT_NOTIFY: 'chat_notify',
90
+ SENTRY: 'sentry',
91
+ MEMORY: 'memory',
92
+ RUNNER: 'runner',
93
+ SKILL_INSTALLER: 'skill-installer',
94
+ CORE_TOOLS: 'core-tools',
95
+ CHAT_MEMORY: 'chat-memory',
96
+ // `kv-memory` — general-purpose per-agent persistent KV. Auto-namespaces every
97
+ // key by WORKFLOW_TYPE so each agent gets a disjoint key space in the same
98
+ // per-project partition. Backed by kvMemorySkill.
99
+ KV_MEMORY: 'kv-memory',
100
+ // `dataset-store` — durable, queryable structured-record store (append rows,
101
+ // run SQL-style aggregations later for reports). Auths with the run's OWN
102
+ // project token → UNGATED, like kv-memory. Opt-in (NOT alwaysLoad). Backed by
103
+ // datasetStoreSkill.
104
+ DATASET_STORE: 'dataset-store',
105
+ // `chart-render` — LOCAL server-side chart rendering (ECharts SVG SSR +
106
+ // @resvg/resvg-js PNG). Tier ① (API-only/local) → UNGATED. Opt-in. Backed by
107
+ // chartRenderSkill.
108
+ CHART_RENDER: 'chart-render',
109
+ // `social-card` — LOCAL server-side branded "concept card" renderer
110
+ // (hand-authored SVG → PNG). Tier ① → UNGATED. Opt-in. Backed by
111
+ // socialCardSkill; pairs with the linkedin skill (returns a PNG `path`).
112
+ SOCIAL_CARD: 'social-card',
113
+ // `code-scan` — AGENT-DRIVEN, stack-smart deterministic linter over a
114
+ // checked-out repo (JS/TS→oxlint, …). Tier ① (fully local) → UNGATED. Opt-in.
115
+ // No-connection TOGGLEABLE (default ON). Backed by codeScanSkill.
116
+ CODE_SCAN: 'code-scan',
117
+ // `codebase-memory` — code-graph + semantic index over the checked-out repo,
118
+ // backed by the codebase-memory-mcp binary BAKED INTO the agent image. Fully
119
+ // local → UNGATED. No-connection TOGGLEABLE (default ON). Opt-in. Backed by
120
+ // codebaseMemorySkill.
121
+ CODEBASE_MEMORY: 'codebase-memory',
122
+ WORKFLOW_BUILDER: 'workflow-builder',
123
+ // `trigger-agent` — the agent-callable `trigger_agent` MCP tool
124
+ // (triggerAgentSkill): fire another Zibby workflow/agent run in this project
125
+ // (fire-and-forget, returns the executionId). Declares no requiresIntegration.
126
+ TRIGGER_AGENT: 'trigger-agent',
127
+ // `circleci` — INTEGRATION-GATE MARKER, not a runtime MCP skill: no skill
128
+ // registers under this id. Declaring it gates deploy on a connected CircleCI
129
+ // (the flaky-test-fixer pattern).
130
+ CIRCLECI: 'circleci',
131
+ // LLM-provider admin/billing skills (paste-token integrations). See
132
+ // @zibby/skills' llm-billing.js + backend/src/handlers/llm-billing.js.
133
+ OPENAI_BILLING: 'openai_billing',
134
+ ANTHROPIC_BILLING: 'anthropic_billing',
135
+ CURSOR_ADMIN: 'cursor_admin',
136
+ // `session` — opt-in conversation continuity for Claude-backed nodes. The
137
+ // skill is registered separately via `registerSkill(sessionSkill())` (from
138
+ // @zibby/core) and wired declaratively through `.zibby.config.mjs` `skills:`.
139
+ // Kept in the id map so `SKILLS.SESSION` resolves in any consumer.
140
+ SESSION: 'session',
141
+ });
142
+
143
+ /**
144
+ * SKILL_META — pure-data static metadata per id (toggleable / requiresIntegration
145
+ * / tier / display / binary). STUB for now: Phase 2 of the skills-platform
146
+ * migration populates this and points each skill object's `meta` at
147
+ * SKILL_META[id]. Exported empty today so P2 can fill it without another wiring
148
+ * change. See strategy/skills-platform-architecture.md.
149
+ */
150
+ export const SKILL_META = Object.freeze({});