@nseng-ai/command-backed-skill-registry 0.1.1

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 +26 -0
  2. package/src/index.ts +209 -0
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@nseng-ai/command-backed-skill-registry",
3
+ "version": "0.1.1",
4
+ "type": "module",
5
+ "files": [
6
+ "src"
7
+ ],
8
+ "engines": {
9
+ "node": ">=24.12.0",
10
+ "pnpm": ">=11.8.0"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "exports": {
16
+ ".": "./src/index.ts"
17
+ },
18
+ "dependencies": {
19
+ "@nseng-ai/branch-context": "0.1.1",
20
+ "@nseng-ai/ccc": "0.1.1",
21
+ "@nseng-ai/foundation": "0.1.1",
22
+ "@nseng-ai/flow": "0.1.1",
23
+ "@nseng-ai/handoffs": "0.1.1",
24
+ "@nseng-ai/objectives": "0.1.1"
25
+ }
26
+ }
package/src/index.ts ADDED
@@ -0,0 +1,209 @@
1
+ import { cccCommandBackedSkillRegistrations } from "@nseng-ai/ccc/pi";
2
+ import { flowCommandBackedSkillRegistrations } from "@nseng-ai/flow/pi";
3
+ import { handoffCommandBackedSkillRegistrations } from "@nseng-ai/handoffs/pi";
4
+ import { objectiveCommandBackedSkillRegistrations } from "@nseng-ai/objectives/pi";
5
+ import {
6
+ BRANCH_CONTEXT_FROM_PLAN_COMMAND_NAME,
7
+ IMPL_BRANCH_CONTEXT_COMMAND_NAME,
8
+ WRITE_PLAN_COMMAND_NAME,
9
+ } from "@nseng-ai/branch-context/pi";
10
+ import type {
11
+ CommandBackedSkillRegistration,
12
+ CommandBackedSkillRegistrationKind,
13
+ } from "@nseng-ai/foundation/command";
14
+
15
+ export type {
16
+ CommandBackedSkillRegistration,
17
+ CommandBackedSkillRegistrationKind,
18
+ } from "@nseng-ai/foundation/command";
19
+
20
+ /**
21
+ * Single source of truth for repo-local skills that Pi surfaces as slash
22
+ * commands instead of ordinary `/skill:<name>` invocations.
23
+ *
24
+ * Keep each mapping explicit: several surfaces intentionally do not follow a
25
+ * mechanical split of the skill name, and provider-owned command packages
26
+ * contribute their own specialized rows through this registry.
27
+ */
28
+ const COMMAND_BACKED_SKILL_REGISTRY = [
29
+ {
30
+ skillName: "branch-context-from-plan",
31
+ surface: BRANCH_CONTEXT_FROM_PLAN_COMMAND_NAME,
32
+ kind: "specialized-command",
33
+ },
34
+ {
35
+ skillName: "branch-context-impl",
36
+ surface: IMPL_BRANCH_CONTEXT_COMMAND_NAME,
37
+ kind: "specialized-command",
38
+ },
39
+ { skillName: "branch-retro", surface: "branch:retro", kind: "generic-backing-skill" },
40
+ // These ns:ccc:* rows are generic backing-skill aliases, not CCC provider-owned
41
+ // Pi commands; real CCC command registrations come from @nseng-ai/ccc/pi below.
42
+ {
43
+ skillName: "ccc-available-work",
44
+ surface: "ns:ccc:available-work",
45
+ kind: "generic-backing-skill",
46
+ },
47
+ {
48
+ skillName: "ccc-branch-triage",
49
+ surface: "ns:ccc:branch-triage",
50
+ kind: "generic-backing-skill",
51
+ },
52
+ ...cccCommandBackedSkillRegistrations,
53
+ { skillName: "ccc-stack-map", surface: "ns:ccc:stack-map", kind: "generic-backing-skill" },
54
+ { skillName: "changelog-update", surface: "changelog:update", kind: "generic-backing-skill" },
55
+ {
56
+ skillName: "code-gt-linearize-descendants",
57
+ surface: "code:gt-linearize-descendants",
58
+ kind: "generic-backing-skill",
59
+ },
60
+ {
61
+ skillName: "code-gt-restack-resolve",
62
+ surface: "code:gt-restack-resolve",
63
+ kind: "specialized-command",
64
+ },
65
+ { skillName: "code-just-fix", surface: "code:just-fix", kind: "specialized-command" },
66
+ {
67
+ skillName: "code-just-the-stack",
68
+ surface: "code:just-the-stack",
69
+ kind: "generic-backing-skill",
70
+ },
71
+ {
72
+ skillName: "code-resolve-merge-conflicts",
73
+ surface: "code:resolve-merge-conflicts",
74
+ kind: "generic-backing-skill",
75
+ },
76
+ { skillName: "code-thermostack", surface: "code:thermostack", kind: "generic-backing-skill" },
77
+ { skillName: "code-workflows", surface: "code:workflows", kind: "generic-backing-skill" },
78
+ {
79
+ skillName: "context-bundle-analysis",
80
+ surface: "context:bundle-analysis",
81
+ kind: "generic-backing-skill",
82
+ },
83
+ { skillName: "dignified-python", surface: "dignified:python", kind: "generic-backing-skill" },
84
+ {
85
+ skillName: "dignified-python-tripwire",
86
+ surface: "dignified:python-tripwire",
87
+ kind: "generic-backing-skill",
88
+ },
89
+ {
90
+ skillName: "enriched-plan-save",
91
+ surface: WRITE_PLAN_COMMAND_NAME,
92
+ kind: "specialized-command",
93
+ },
94
+ {
95
+ skillName: "fdt-refactor-mock-to-fake",
96
+ surface: "fdt:refactor-mock-to-fake",
97
+ kind: "generic-backing-skill",
98
+ },
99
+ ...handoffCommandBackedSkillRegistrations,
100
+ {
101
+ skillName: "improve-codebase-architecture",
102
+ surface: "improve:codebase-architecture",
103
+ kind: "generic-backing-skill",
104
+ },
105
+ ...objectiveCommandBackedSkillRegistrations,
106
+ {
107
+ skillName: "objective-refresh",
108
+ surface: "ns:objective:refresh",
109
+ kind: "generic-backing-skill",
110
+ },
111
+ {
112
+ skillName: "objective-review-briefing",
113
+ surface: "ns:objective:review-briefing",
114
+ kind: "generic-backing-skill",
115
+ },
116
+ { skillName: "pi-grill-ui", surface: "pi:grill-me", kind: "specialized-command" },
117
+ {
118
+ skillName: "pi-grill-with-docs-ui",
119
+ surface: "pi:grill-with-docs",
120
+ kind: "specialized-command",
121
+ },
122
+ { skillName: "pytest", surface: "python:pytest", kind: "generic-backing-skill" },
123
+ {
124
+ skillName: "python-fake-driven-test-layout",
125
+ surface: "python:fake-driven-test-layout",
126
+ kind: "generic-backing-skill",
127
+ },
128
+ {
129
+ skillName: "python-fake-driven-testing",
130
+ surface: "python:fake-driven-testing",
131
+ kind: "generic-backing-skill",
132
+ },
133
+ { skillName: "refactor-swarm", surface: "refactor:swarm", kind: "generic-backing-skill" },
134
+ {
135
+ skillName: "reinvented-abstractions-tripwire",
136
+ surface: "reinvented:abstractions-tripwire",
137
+ kind: "generic-backing-skill",
138
+ },
139
+ {
140
+ skillName: "roast-dry-but-not-too-dry",
141
+ surface: "roast:dry-but-not-too-dry",
142
+ kind: "generic-backing-skill",
143
+ },
144
+ {
145
+ skillName: "roast-improve-codebase-architecture",
146
+ surface: "roast:improve-codebase-architecture",
147
+ kind: "generic-backing-skill",
148
+ },
149
+ {
150
+ skillName: "roast-thermonuclear-review",
151
+ surface: "roast:thermonuclear-review",
152
+ kind: "generic-backing-skill",
153
+ },
154
+ { skillName: "ns-cli-design", surface: "ns:cli:design", kind: "generic-backing-skill" },
155
+ ...flowCommandBackedSkillRegistrations,
156
+ {
157
+ skillName: "ns-typescript-style-tripwire",
158
+ surface: "ns:typescript:style-tripwire",
159
+ kind: "generic-backing-skill",
160
+ },
161
+ { skillName: "skill-audit", surface: "skill:audit", kind: "generic-backing-skill" },
162
+ {
163
+ skillName: "skill-audit-improved",
164
+ surface: "skill:audit-improved",
165
+ kind: "generic-backing-skill",
166
+ },
167
+ { skillName: "skill-creator", surface: "skill:creator", kind: "generic-backing-skill" },
168
+ { skillName: "skill-management", surface: "skill:management", kind: "generic-backing-skill" },
169
+ { skillName: "skillx", surface: "skill:x", kind: "generic-backing-skill" },
170
+ {
171
+ skillName: "thermo-nuclear-code-quality-review",
172
+ surface: "thermo:nuclear-code-quality-review",
173
+ kind: "generic-backing-skill",
174
+ },
175
+ { skillName: "ts-morph-analyze", surface: "ts:morph-analyze", kind: "generic-backing-skill" },
176
+ { skillName: "ts-morph-refactor", surface: "ts:morph-refactor", kind: "generic-backing-skill" },
177
+ {
178
+ skillName: "writing-great-skills",
179
+ surface: "writing:great-skills",
180
+ kind: "generic-backing-skill",
181
+ },
182
+ ] as const satisfies readonly CommandBackedSkillRegistration[];
183
+
184
+ export function commandBackedSkillRegistrations(): readonly CommandBackedSkillRegistration[] {
185
+ return COMMAND_BACKED_SKILL_REGISTRY;
186
+ }
187
+
188
+ export function commandBackedSkillSurface(skillName: string): string | undefined {
189
+ return COMMAND_BACKED_SKILL_REGISTRY.find((registration) => registration.skillName === skillName)
190
+ ?.surface;
191
+ }
192
+
193
+ function registrationsOfKind(
194
+ kind: CommandBackedSkillRegistrationKind,
195
+ ): readonly CommandBackedSkillRegistration[] {
196
+ return COMMAND_BACKED_SKILL_REGISTRY.filter((registration) => registration.kind === kind);
197
+ }
198
+
199
+ export function genericBackingSkillRegistrations(): readonly CommandBackedSkillRegistration[] {
200
+ return registrationsOfKind("generic-backing-skill");
201
+ }
202
+
203
+ export function specializedCommandBackedSkillRegistrations(): readonly CommandBackedSkillRegistration[] {
204
+ return registrationsOfKind("specialized-command");
205
+ }
206
+
207
+ export function visibleCommandBackedReplacementSurfaces(): string[] {
208
+ return COMMAND_BACKED_SKILL_REGISTRY.map((registration) => registration.surface);
209
+ }