@vpxa/aikit 0.1.9 → 0.1.11

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 (93) hide show
  1. package/package.json +1 -1
  2. package/packages/indexer/dist/smart-index-scheduler.js +1 -1
  3. package/packages/server/dist/compression-interceptor.d.ts +12 -0
  4. package/packages/server/dist/compression-interceptor.js +1 -0
  5. package/packages/server/dist/server.js +2 -2
  6. package/packages/server/dist/tools/analyze.tools.js +3 -3
  7. package/packages/server/dist/tools/flow.tools.js +1 -1
  8. package/packages/server/dist/tools/onboard.tool.js +1 -1
  9. package/packages/server/dist/tools/present/templates.js +6 -6
  10. package/packages/server/dist/tools/present/tool.js +1 -1
  11. package/packages/server/dist/tools/search.tool.js +2 -2
  12. package/packages/store/dist/lance-store.js +1 -1
  13. package/packages/tools/dist/compact.d.ts +6 -0
  14. package/packages/tools/dist/compact.js +2 -2
  15. package/packages/tools/dist/compress-output.d.ts +38 -0
  16. package/packages/tools/dist/compress-output.js +1 -0
  17. package/packages/tools/dist/compression/delta-cache.d.ts +29 -0
  18. package/packages/tools/dist/compression/delta-cache.js +1 -0
  19. package/packages/tools/dist/compression/engine.d.ts +34 -0
  20. package/packages/tools/dist/compression/engine.js +4 -0
  21. package/packages/tools/dist/compression/litm.d.ts +20 -0
  22. package/packages/tools/dist/compression/litm.js +1 -0
  23. package/packages/tools/dist/compression/mmr.d.ts +24 -0
  24. package/packages/tools/dist/compression/mmr.js +1 -0
  25. package/packages/tools/dist/compression/rules/docker.d.ts +11 -0
  26. package/packages/tools/dist/compression/rules/docker.js +3 -0
  27. package/packages/tools/dist/compression/rules/generic.d.ts +11 -0
  28. package/packages/tools/dist/compression/rules/generic.js +3 -0
  29. package/packages/tools/dist/compression/rules/git.d.ts +11 -0
  30. package/packages/tools/dist/compression/rules/git.js +3 -0
  31. package/packages/tools/dist/compression/rules/index.d.ts +14 -0
  32. package/packages/tools/dist/compression/rules/index.js +1 -0
  33. package/packages/tools/dist/compression/rules/kubectl.d.ts +11 -0
  34. package/packages/tools/dist/compression/rules/kubectl.js +3 -0
  35. package/packages/tools/dist/compression/rules/lint.d.ts +11 -0
  36. package/packages/tools/dist/compression/rules/lint.js +3 -0
  37. package/packages/tools/dist/compression/rules/npm.d.ts +11 -0
  38. package/packages/tools/dist/compression/rules/npm.js +3 -0
  39. package/packages/tools/dist/compression/rules/test-runner.d.ts +11 -0
  40. package/packages/tools/dist/compression/rules/test-runner.js +3 -0
  41. package/packages/tools/dist/compression/scoring.d.ts +26 -0
  42. package/packages/tools/dist/compression/scoring.js +1 -0
  43. package/packages/tools/dist/compression/types.d.ts +61 -0
  44. package/packages/tools/dist/compression/types.js +1 -0
  45. package/packages/tools/dist/digest.d.ts +5 -0
  46. package/packages/tools/dist/digest.js +4 -4
  47. package/packages/tools/dist/index.d.ts +5 -1
  48. package/packages/tools/dist/index.js +1 -1
  49. package/packages/tools/dist/parse-output.d.ts +3 -1
  50. package/packages/tools/dist/parse-output.js +1 -1
  51. package/packages/tools/dist/truncation.d.ts +34 -1
  52. package/packages/tools/dist/truncation.js +10 -6
  53. package/packages/tui/dist/{App-DpjN3iS-.js → App-D8fednPY.js} +1 -1
  54. package/packages/tui/dist/App.js +1 -1
  55. package/packages/tui/dist/{CuratedPanel-BIamXLNy.js → CuratedPanel-BwkPKdX4.js} +1 -1
  56. package/packages/tui/dist/LogPanel-C6KagE0H.js +3320 -0
  57. package/packages/tui/dist/{SearchPanel-CpJGczAc.js → SearchPanel-BbvCaco0.js} +1 -1
  58. package/packages/tui/dist/{StatusPanel-BAbUxyqQ.js → StatusPanel-BFshFJU9.js} +1 -1
  59. package/packages/tui/dist/chunk-BSngPjfM.js +2 -0
  60. package/packages/tui/dist/{devtools-DMOZMn70.js → devtools-owCrRz12.js} +2 -2
  61. package/packages/tui/dist/hooks/useKBClient.js +1 -1
  62. package/packages/tui/dist/hooks/usePolling.js +1 -1
  63. package/packages/tui/dist/index.js +1 -1
  64. package/packages/tui/dist/{jsx-runtime-y6Gdq5PZ.js → jsx-runtime-B_2ewjsM.js} +7 -7
  65. package/packages/tui/dist/panels/CuratedPanel.js +1 -1
  66. package/packages/tui/dist/panels/LogPanel.js +1 -1
  67. package/packages/tui/dist/panels/SearchPanel.js +1 -1
  68. package/packages/tui/dist/panels/StatusPanel.js +1 -1
  69. package/packages/tui/dist/{react-D__J1GQe.js → react-sYq8CyFO.js} +1 -1
  70. package/packages/tui/dist/{useKBClient-C35iA4uG.js → useKBClient-BkBffCdd.js} +1 -1
  71. package/packages/tui/dist/{usePolling-BbjnRWgx.js → usePolling-D3y7u5cZ.js} +1 -1
  72. package/scaffold/adapters/copilot.mjs +4 -1
  73. package/scaffold/definitions/agents.mjs +32 -8
  74. package/scaffold/definitions/bodies.mjs +6 -2
  75. package/scaffold/definitions/protocols.mjs +12 -0
  76. package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +7 -0
  77. package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +7 -0
  78. package/scaffold/general/agents/Debugger.agent.md +7 -0
  79. package/scaffold/general/agents/Documenter.agent.md +1 -0
  80. package/scaffold/general/agents/Explorer.agent.md +6 -0
  81. package/scaffold/general/agents/Frontend.agent.md +9 -0
  82. package/scaffold/general/agents/Implementer.agent.md +7 -0
  83. package/scaffold/general/agents/Orchestrator.agent.md +35 -51
  84. package/scaffold/general/agents/README.md +3 -3
  85. package/scaffold/general/agents/Refactor.agent.md +1 -0
  86. package/scaffold/general/agents/Researcher-Beta.agent.md +2 -2
  87. package/scaffold/general/agents/Researcher-Delta.agent.md +2 -2
  88. package/scaffold/general/agents/Researcher-Gamma.agent.md +2 -2
  89. package/scaffold/general/agents/Security.agent.md +7 -0
  90. package/scaffold/general/agents/_shared/code-agent-base.md +38 -18
  91. package/scaffold/general/skills/aikit/SKILL.md +73 -1
  92. package/packages/tui/dist/LogPanel-Db-SeZhR.js +0 -3
  93. package/packages/tui/dist/chunk-D6axbAb-.js +0 -2
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../CuratedPanel-BIamXLNy.js";export{e as CuratedPanel};
2
+ import{t as e}from"../CuratedPanel-BwkPKdX4.js";export{e as CuratedPanel};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../LogPanel-Db-SeZhR.js";export{e as LogPanel};
2
+ import{t as e}from"../LogPanel-C6KagE0H.js";export{e as LogPanel};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../SearchPanel-CpJGczAc.js";export{e as SearchPanel};
2
+ import{t as e}from"../SearchPanel-BbvCaco0.js";export{e as SearchPanel};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../StatusPanel-BAbUxyqQ.js";export{e as StatusPanel};
2
+ import{t as e}from"../StatusPanel-BFshFJU9.js";export{e as StatusPanel};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"./chunk-D6axbAb-.js";
2
+ import{t as e}from"./chunk-BSngPjfM.js";
3
3
  /**
4
4
  * @license React
5
5
  * react.production.js
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{r as e}from"./chunk-D6axbAb-.js";import{t}from"./react-D__J1GQe.js";var n=e(t(),1);const r=(0,n.createContext)(null),i=r.Provider;function a(){let e=(0,n.useContext)(r);if(!e)throw Error(`useKBClient must be used within KBClientProvider`);return e}export{a as n,i as t};
2
+ import{i as e}from"./chunk-BSngPjfM.js";import{t}from"./react-sYq8CyFO.js";var n=e(t(),1);const r=(0,n.createContext)(null),i=r.Provider;function a(){let e=(0,n.useContext)(r);if(!e)throw Error(`useKBClient must be used within KBClientProvider`);return e}export{a as n,i as t};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{r as e}from"./chunk-D6axbAb-.js";import{t}from"./react-D__J1GQe.js";var n=e(t(),1);function r(e,t){let[r,i]=(0,n.useState)(null),[a,o]=(0,n.useState)(null),s=(0,n.useRef)(e);return s.current=e,(0,n.useEffect)(()=>{let e=!0,n=!1,r=async()=>{if(!n){n=!0;try{let t=await s.current();e&&(i(t),o(null))}catch(t){e&&o(t instanceof Error?t:Error(String(t)))}finally{n=!1}}};r();let a=setInterval(()=>{r()},t);return()=>{e=!1,clearInterval(a)}},[t]),{data:r,error:a}}export{r as t};
2
+ import{i as e}from"./chunk-BSngPjfM.js";import{t}from"./react-sYq8CyFO.js";var n=e(t(),1);function r(e,t){let[r,i]=(0,n.useState)(null),[a,o]=(0,n.useState)(null),s=(0,n.useRef)(e);return s.current=e,(0,n.useEffect)(()=>{let e=!0,n=!1,r=async()=>{if(!n){n=!0;try{let t=await s.current();e&&(i(t),o(null))}catch(t){e&&o(t instanceof Error?t:Error(String(t)))}finally{n=!1}}};r();let a=setInterval(()=>{r()},t);return()=>{e=!1,clearInterval(a)}},[t]),{data:r,error:a}}export{r as t};
@@ -143,6 +143,9 @@ function generateSingleAgent(name, def) {
143
143
  : AGENT_BODIES[name] || '';
144
144
 
145
145
  const title = def.title || name;
146
+ const skillsSection = def.skills?.length
147
+ ? `\n## Skills (load on demand)\n\n| Skill | When to load |\n|-------|--------------|\n${def.skills.map(([s, w]) => `| ${s} | ${w} |`).join('\n')}\n`
148
+ : '';
146
149
 
147
150
  return `---
148
151
  description: '${def.description}'
@@ -154,7 +157,7 @@ model: ${model}
154
157
 
155
158
  You are the **${name}**, ${def.description.toLowerCase().replace(/^./, (c) => c.toLowerCase())}
156
159
 
157
- ${body}
160
+ ${body}${skillsSection}
158
161
 
159
162
  ${FLOWS_SECTION}
160
163
  `;
@@ -42,6 +42,10 @@ export const AGENTS = {
42
42
  toolRole: 'codeAgent',
43
43
  sharedBase: 'code-agent-base',
44
44
  category: 'implementation',
45
+ skills: [
46
+ ['aikit', '**Always** — AI Kit tool signatures, search, analysis'],
47
+ ['typescript', 'When writing TypeScript code — type patterns, generics, utility types'],
48
+ ],
45
49
  },
46
50
 
47
51
  Frontend: {
@@ -52,6 +56,15 @@ export const AGENTS = {
52
56
  toolRole: 'codeAgent',
53
57
  sharedBase: 'code-agent-base',
54
58
  category: 'implementation',
59
+ skills: [
60
+ ['aikit', '**Always** — AI Kit tool signatures, search, analysis'],
61
+ ['react', 'When building React components — hooks, patterns, Server Components'],
62
+ ['typescript', 'When writing TypeScript code — type patterns, generics, utility types'],
63
+ [
64
+ 'frontend-design',
65
+ 'When implementing UI/UX — design systems, accessibility, responsive patterns',
66
+ ],
67
+ ],
55
68
  },
56
69
 
57
70
  Refactor: {
@@ -73,6 +86,10 @@ export const AGENTS = {
73
86
  toolRole: 'debugger',
74
87
  sharedBase: 'code-agent-base',
75
88
  category: 'diagnostics',
89
+ skills: [
90
+ ['aikit', '**Always** — AI Kit tool signatures, search, analysis'],
91
+ ['typescript', 'When writing TypeScript code — type patterns, generics, utility types'],
92
+ ],
76
93
  },
77
94
 
78
95
  Security: {
@@ -82,6 +99,10 @@ export const AGENTS = {
82
99
  toolRole: 'security',
83
100
  sharedBase: null,
84
101
  category: 'diagnostics',
102
+ skills: [
103
+ ['aikit', '**Always** — AI Kit tool signatures, search, analysis'],
104
+ ['typescript', 'When reviewing code — security patterns, type safety'],
105
+ ],
85
106
  },
86
107
 
87
108
  // ─── Documentation ────────────────────────────────────────────────────
@@ -104,6 +125,7 @@ export const AGENTS = {
104
125
  toolRole: 'explorer',
105
126
  sharedBase: null,
106
127
  category: 'exploration',
128
+ skills: [['aikit', '**Always** — AI Kit tool signatures, search, analysis']],
107
129
  },
108
130
 
109
131
  // ─── Multi-variant roles ──────────────────────────────────────────────
@@ -129,21 +151,19 @@ export const AGENTS = {
129
151
  },
130
152
  Beta: {
131
153
  description:
132
- 'Research variant for multi-model decision protocol different LLM perspective',
154
+ 'Research variant pragmatic analysis with focus on trade-offs and edge cases',
133
155
  identity:
134
- ', a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.',
156
+ ', a variant of the Researcher agent optimized for **pragmatic analysis**. Focus on trade-offs, edge cases, and practical constraints. Challenge assumptions and highlight risks the primary researcher may overlook.',
135
157
  },
136
158
  Gamma: {
137
- description:
138
- 'Research variant for multi-model decision protocol — different LLM perspective',
159
+ description: 'Research variant — broad pattern matching across domains and technologies',
139
160
  identity:
140
- ', a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.',
161
+ ', a variant of the Researcher agent optimized for **cross-domain pattern matching**. Draw connections from other domains, frameworks, and industries. Bring breadth where Alpha brings depth.',
141
162
  },
142
163
  Delta: {
143
- description:
144
- 'Research variant for multi-model decision protocol — different LLM perspective',
164
+ description: 'Research variant — implementation feasibility and performance implications',
145
165
  identity:
146
- ', a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.',
166
+ ', a variant of the Researcher agent optimized for **implementation feasibility**. Focus on performance implications, scaling concerns, and concrete implementation paths. Ground theoretical proposals in practical reality.',
147
167
  },
148
168
  },
149
169
  },
@@ -156,6 +176,10 @@ export const AGENTS = {
156
176
  toolRole: 'reviewer',
157
177
  sharedBase: 'code-reviewer-base',
158
178
  category: 'review',
179
+ skills: [
180
+ ['aikit', '**Always** — AI Kit tool signatures, search, analysis'],
181
+ ['typescript', 'When reviewing TypeScript code — type patterns, best practices'],
182
+ ],
159
183
  variants: {
160
184
  Alpha: { description: 'Primary code reviewer' },
161
185
  Beta: { description: 'Code reviewer variant — different LLM perspective for dual review' },
@@ -170,6 +170,8 @@ Before every tool call, verify:
170
170
  | \`session-handoff\` | Context filling up, session ending, or major milestone |
171
171
  | \`lesson-learned\` | After completing work — extract engineering principles |
172
172
 
173
+ **When dispatching subagents**, include relevant skill names in the prompt so subagents know which skills to load (e.g., "Load the \`react\` and \`typescript\` skills for this task").
174
+
173
175
  ## Flow-Aware Routing
174
176
 
175
177
  At session start, check for an active flow:
@@ -366,7 +368,8 @@ When subagents complete, their visual outputs (from \`present\`) are NOT visible
366
368
 
367
369
  | Skill | When to load |
368
370
  |-------|--------------|
369
- | \`lesson-learned\` | After completing a refactor — extract principles from the before/after diff |`,
371
+ | \`lesson-learned\` | After completing a refactor — extract principles from the before/after diff |
372
+ | \`typescript\` | When refactoring TypeScript code — type patterns, generics, utility types |`,
370
373
 
371
374
  Security: `**Read \`AGENTS.md\`** in the workspace root for project conventions and AI Kit protocol.
372
375
 
@@ -454,7 +457,8 @@ When subagents complete, their visual outputs (from \`present\`) are NOT visible
454
457
  | Skill | When to load |
455
458
  |-------|--------------|
456
459
  | \`c4-architecture\` | When documenting system architecture — generate C4 Mermaid diagrams |
457
- | \`adr-skill\` | When documenting architecture decisions — create or update ADRs |`,
460
+ | \`adr-skill\` | When documenting architecture decisions — create or update ADRs |
461
+ | \`typescript\` | When documenting TypeScript APIs — type signatures, JSDoc patterns |`,
458
462
 
459
463
  Explorer: `**Read \`AGENTS.md\`** in the workspace root for project conventions and AI Kit protocol.
460
464
 
@@ -85,6 +85,18 @@ search({ query: "SESSION CHECKPOINT", origin: "curated" }) # Resume prior wo
85
85
 
86
86
  ---
87
87
 
88
+ ## Domain Skills
89
+
90
+ Your agent file lists domain-specific skills in the **Skills** section. Load them as needed:
91
+
92
+ 1. Check if the current task matches a listed skill trigger
93
+ 2. If yes → load the skill file before starting implementation
94
+ 3. The \`aikit\` skill is **always loaded** — do not re-load it
95
+
96
+ > If no skills are listed for your agent, rely on AI Kit tools and onboard artifacts.
97
+
98
+ ---
99
+
88
100
  ## Information Lookup Order (MANDATORY)
89
101
 
90
102
  Always follow this order when you need to understand something. **Never skip to step 3 without checking steps 1-2 first.**
@@ -11,6 +11,13 @@ You are **Code-Reviewer-Alpha**, the primary Code-Reviewer agent.
11
11
 
12
12
  **Read .github/agents/_shared/code-reviewer-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
13
 
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | aikit | **Always** — AI Kit tool signatures, search, analysis |
19
+ | typescript | When reviewing TypeScript code — type patterns, best practices |
20
+
14
21
  ## Flows
15
22
 
16
23
  This project uses aikit's pluggable flow system. Check flow status with the `flow_status` MCP tool.
@@ -11,6 +11,13 @@ You are **Code-Reviewer-Beta**, a variant of Code-Reviewer. Same responsibilitie
11
11
 
12
12
  **Read .github/agents/_shared/code-reviewer-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
13
 
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | aikit | **Always** — AI Kit tool signatures, search, analysis |
19
+ | typescript | When reviewing TypeScript code — type patterns, best practices |
20
+
14
21
  ## Flows
15
22
 
16
23
  This project uses aikit's pluggable flow system. Check flow status with the `flow_status` MCP tool.
@@ -32,6 +32,13 @@ You are the **Debugger**, expert debugger that diagnoses issues, traces errors,
32
32
  - **Test the fix** — Every fix must have a test that would have caught the bug
33
33
  - **Verify before asserting** — Don't claim a function has a certain signature without checking via `symbol`. Don't reference a config option without confirming it exists in the codebase
34
34
  - **Break debug loops** — If you apply a fix, test, and get the same error 3 times: your hypothesis is wrong. STOP, discard your current theory, re-examine the error output and trace from a different entry point. Return `ESCALATE` if a fresh approach also fails
35
+ ## Skills (load on demand)
36
+
37
+ | Skill | When to load |
38
+ |-------|--------------|
39
+ | aikit | **Always** — AI Kit tool signatures, search, analysis |
40
+ | typescript | When writing TypeScript code — type patterns, generics, utility types |
41
+
35
42
 
36
43
  ## Flows
37
44
 
@@ -51,6 +51,7 @@ You are the **Documenter**, documentation specialist that creates and maintains
51
51
  |-------|--------------|
52
52
  | `c4-architecture` | When documenting system architecture — generate C4 Mermaid diagrams |
53
53
  | `adr-skill` | When documenting architecture decisions — create or update ADRs |
54
+ | `typescript` | When documenting TypeScript APIs — type signatures, JSDoc patterns |
54
55
 
55
56
  ## Flows
56
57
 
@@ -61,6 +61,12 @@ You are the **Explorer**, rapid codebase exploration to find files, usages, depe
61
61
  - **Speed over depth** — Provide a useful map quickly, not an exhaustive analysis
62
62
  - **Read-only** — Never create, edit, or delete files
63
63
  - **Structured output** — Always return findings in the format above
64
+ ## Skills (load on demand)
65
+
66
+ | Skill | When to load |
67
+ |-------|--------------|
68
+ | aikit | **Always** — AI Kit tool signatures, search, analysis |
69
+
64
70
 
65
71
  ## Flows
66
72
 
@@ -27,6 +27,15 @@ You are the **Frontend**, ui/ux specialist for react, styling, responsive design
27
27
  - **Follow design system** — Use existing tokens, don't create one-off values
28
28
  - **Responsive by default** — Mobile-first, test all breakpoints
29
29
  - **Test-first** — Component tests before implementation
30
+ ## Skills (load on demand)
31
+
32
+ | Skill | When to load |
33
+ |-------|--------------|
34
+ | aikit | **Always** — AI Kit tool signatures, search, analysis |
35
+ | react | When building React components — hooks, patterns, Server Components |
36
+ | typescript | When writing TypeScript code — type patterns, generics, utility types |
37
+ | frontend-design | When implementing UI/UX — design systems, accessibility, responsive patterns |
38
+
30
39
 
31
40
  ## Flows
32
41
 
@@ -31,6 +31,13 @@ You are the **Implementer**, persistent implementation agent that writes code fo
31
31
  - **Run `check` after every change** — Catch errors early
32
32
  - **Loop-break** — If the same test fails 3 times with the same error after your fixes, STOP. Re-read the error from scratch, check your assumptions with `trace` or `symbol`, and try a fundamentally different approach. Do not attempt a 4th fix in the same direction
33
33
  - **Think-first for complex tasks** — If a task involves 3+ files or non-obvious logic, outline your approach before writing code. Check existing patterns with `search` first. Design, then implement
34
+ ## Skills (load on demand)
35
+
36
+ | Skill | When to load |
37
+ |-------|--------------|
38
+ | aikit | **Always** — AI Kit tool signatures, search, analysis |
39
+ | typescript | When writing TypeScript code — type patterns, generics, utility types |
40
+
34
41
 
35
42
  ## Flows
36
43
 
@@ -10,59 +10,12 @@ You are the **Orchestrator**, master conductor that orchestrates the full develo
10
10
 
11
11
  You orchestrate the full development lifecycle: **planning → implementation → review → recovery → commit**. You own the contract — what gets done, in what order, by whom. The `multi-agents-development` skill owns the craft — how to decompose, dispatch, and review. **Load that skill before any delegation work.**
12
12
 
13
- ## Flow System — Primary Workflow
14
-
15
- Flows are the **primary workflow system**. Orchestrator phases (below) are the **fallback** when no flow is active or the user explicitly skips flows.
16
-
17
- ### Flow Selection Matrix
18
-
19
- | Task Type | Flow | Why |
20
- |-----------|------|-----|
21
- | Bug fix, config change, small refactor | `aikit:basic` | Known scope, low risk |
22
- | New feature in existing module | `aikit:basic` | Clear boundaries |
23
- | New system/service/module | `aikit:advanced` | Needs spec + planning |
24
- | Cross-service changes | `aikit:advanced` | Multiple boundaries |
25
- | Architectural change | `aikit:advanced` | High impact |
26
- | Unclear scope or exploratory | No flow | Use Orchestrator phases |
27
-
28
- ### Flow ↔ Phase Mapping
29
-
30
- When a flow IS active, its steps map to Orchestrator phases:
31
-
32
- | Orchestrator Phase | `aikit:basic` step | `aikit:advanced` step |
33
- |---|---|---|
34
- | Phase 0: Design Gate | — | `spec` |
35
- | Phase 1: Planning | `assess` | `plan` → `task` |
36
- | Phase 2: Implementation | `implement` | `execute` |
37
- | Phase 3: Completion | `verify` | `verify` |
38
-
39
- ### Flow MCP Tools
40
-
41
- | Tool | Purpose |
42
- |------|---------|
43
- | `flow_status` | Check if a flow is active + current step |
44
- | `flow_list` | List available flows |
45
- | `flow_info` | Get flow details including steps and skill paths |
46
- | `flow_start` | Start a named flow |
47
- | `flow_step` | Advance: next, skip, or redo current step |
48
- | `flow_read_skill` | Read the current step's skill content |
49
- | `flow_reset` | Clear flow state to start over |
50
-
51
13
  ## Bootstrap (before any work)
52
14
 
53
- 0. `flow_status({})` — **check for active flow FIRST**
54
- - If active → read step skill via `flow_read_skill({ step: "<current>" })`, follow its instructions, **skip remaining bootstrap**
55
- - If not active → continue to step 1
56
15
  1. `status({})` — if onboard ❌ → `onboard({ path: "." })`, wait for completion, note **Onboard Directory**
57
16
  2. Read onboard artifacts: `compact({ path: "<Onboard Dir>/synthesis-guide.md" })`, `structure.md`, `code-map.md`
58
17
  3. Read `aikit` skill, check `AGENTS.md`, read `_shared/decision-protocol.md` + `_shared/forge-protocol.md`
59
18
  4. Read `multi-agents-development` skill — **REQUIRED before any delegation**
60
- 5. Select and start flow:
61
- - `flow_list({})` — see available flows
62
- - Choose flow using **Flow Selection Matrix** (above)
63
- - `flow_start({ flow: "<chosen>" })` — start the flow
64
- - `flow_read_skill({ step: "<first>" })` — load first step's skill
65
- - Follow the skill instructions
66
19
 
67
20
  ## Agent Arsenal
68
21
 
@@ -78,9 +31,9 @@ When a flow IS active, its steps map to Orchestrator phases:
78
31
  | **Documenter** | Documentation specialist that creates and maintains comprehensive project documentation | GPT-5.4 | documentation |
79
32
  | **Explorer** | Rapid codebase exploration to find files, usages, dependencies, and structural context | Gemini 3 Flash (Preview) | exploration |
80
33
  | **Researcher-Alpha** | Primary deep research agent — also serves as default Researcher | Claude Opus 4.6 | research |
81
- | **Researcher-Beta** | Research variant for multi-model decision protocol different LLM perspective | Claude Sonnet 4.6 | research |
82
- | **Researcher-Gamma** | Research variant for multi-model decision protocol different LLM perspective | GPT-5.4 | research |
83
- | **Researcher-Delta** | Research variant for multi-model decision protocol different LLM perspective | Gemini 3.1 Pro (Preview) | research |
34
+ | **Researcher-Beta** | Research variant pragmatic analysis with focus on trade-offs and edge cases | Claude Sonnet 4.6 | research |
35
+ | **Researcher-Gamma** | Research variant broad pattern matching across domains and technologies | GPT-5.4 | research |
36
+ | **Researcher-Delta** | Research variant implementation feasibility and performance implications | Gemini 3.1 Pro (Preview) | research |
84
37
  | **Code-Reviewer-Alpha** | Primary code reviewer | GPT-5.4 | review |
85
38
  | **Code-Reviewer-Beta** | Code reviewer variant — different LLM perspective for dual review | Claude Opus 4.6 | review |
86
39
  | **Architect-Reviewer-Alpha** | Primary architecture reviewer | GPT-5.4 | review |
@@ -92,7 +45,6 @@ When a flow IS active, its steps map to Orchestrator phases:
92
45
 
93
46
  | Situation | Route |
94
47
  |-----------|-------|
95
- | Flow active | **→ Follow flow step** — skip Phase 0 entirely |
96
48
  | New feature/component/behavior | **Brainstorming skill** → user dialogue → design doc |
97
49
  | Non-trivial technical decision | **Decision protocol** → 4 Researchers parallel → synthesize → ADR |
98
50
  | Both | Brainstorming first → escalate unresolved decisions to protocol |
@@ -234,3 +186,35 @@ Before every tool call, verify:
234
186
  | `brainstorming` | Before creative/design work (Phase 0) |
235
187
  | `session-handoff` | Context filling up, session ending, or major milestone |
236
188
  | `lesson-learned` | After completing work — extract engineering principles |
189
+
190
+ **When dispatching subagents**, include relevant skill names in the prompt so subagents know which skills to load (e.g., "Load the `react` and `typescript` skills for this task").
191
+
192
+ ## Flow-Aware Routing
193
+
194
+ At session start, check for an active flow:
195
+ 1. Call `flow_status` to check if a flow is active
196
+ 2. If active and status is 'active':
197
+ - Note the current step name and skill path
198
+ - Load the current step's skill file
199
+ - Follow its instructions for this step
200
+ - When step is complete, call `flow_step({ action: 'next' })`
201
+ 3. If no active flow:
202
+ - Check `flow_list` for available flows
203
+ - Suggest starting a flow based on the task type
204
+ - Use `flow_start({ flow: '<name>' })` to begin
205
+
206
+ ### Flow MCP Tools
207
+ | Tool | Purpose |
208
+ |------|---------|
209
+ | `flow_list` | List installed flows and active flow |
210
+ | `flow_info` | Get detailed flow info including steps |
211
+ | `flow_start` | Start a named flow |
212
+ | `flow_step` | Advance: next, skip, or redo current step |
213
+ | `flow_status` | Check current execution state |
214
+ | `flow_reset` | Clear flow state to start over |
215
+
216
+ ## Flows
217
+
218
+ This project uses aikit's pluggable flow system. Check flow status with the `flow_status` MCP tool.
219
+ If a flow is active, follow the current step's skill instructions. Advance with `flow_step({ action: 'next' })`.
220
+ Use `flow_list` to see available flows and `flow_start` to begin one.
@@ -16,9 +16,9 @@ This directory contains AI agent definitions generated by `@vpxa/aikit init`.
16
16
  | **Documenter** | Documentation specialist that creates and maintains comprehensive project documentation | GPT-5.4 | documentation |
17
17
  | **Explorer** | Rapid codebase exploration to find files, usages, dependencies, and structural context | Gemini 3 Flash (Preview) | exploration |
18
18
  | **Researcher-Alpha** | Primary deep research agent — also serves as default Researcher | Claude Opus 4.6 | research |
19
- | **Researcher-Beta** | Research variant for multi-model decision protocol different LLM perspective | Claude Sonnet 4.6 | research |
20
- | **Researcher-Gamma** | Research variant for multi-model decision protocol different LLM perspective | GPT-5.4 | research |
21
- | **Researcher-Delta** | Research variant for multi-model decision protocol different LLM perspective | Gemini 3.1 Pro (Preview) | research |
19
+ | **Researcher-Beta** | Research variant pragmatic analysis with focus on trade-offs and edge cases | Claude Sonnet 4.6 | research |
20
+ | **Researcher-Gamma** | Research variant broad pattern matching across domains and technologies | GPT-5.4 | research |
21
+ | **Researcher-Delta** | Research variant implementation feasibility and performance implications | Gemini 3.1 Pro (Preview) | research |
22
22
  | **Code-Reviewer-Alpha** | Primary code reviewer | GPT-5.4 | review |
23
23
  | **Code-Reviewer-Beta** | Code reviewer variant — different LLM perspective for dual review | Claude Opus 4.6 | review |
24
24
  | **Architect-Reviewer-Alpha** | Primary architecture reviewer | GPT-5.4 | review |
@@ -34,6 +34,7 @@ You are the **Refactor**, code refactoring specialist that improves structure, r
34
34
  | Skill | When to load |
35
35
  |-------|--------------|
36
36
  | `lesson-learned` | After completing a refactor — extract principles from the before/after diff |
37
+ | `typescript` | When refactoring TypeScript code — type patterns, generics, utility types |
37
38
 
38
39
  ## Flows
39
40
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: 'Research variant for multi-model decision protocol different LLM perspective'
2
+ description: 'Research variant pragmatic analysis with focus on trade-offs and edge cases'
3
3
  argument-hint: Research question, problem statement, or subsystem to investigate
4
4
  tools: [execute/runInTerminal, read/problems, read/readFile, read/terminalLastCommand, agent/runSubagent, search/changes, search/codebase, search/usages, web/fetch, web/githubRepo, browser/openBrowserPage, browser/readPage, browser/screenshotPage, browser/navigatePage, browser/clickElement, browser/dragElement, browser/hoverElement, browser/typeInPage, browser/runPlaywrightCode, browser/handleDialog, aikit/*]
5
5
  model: Claude Sonnet 4.6 (copilot)
@@ -7,7 +7,7 @@ model: Claude Sonnet 4.6 (copilot)
7
7
 
8
8
  # Researcher-Beta - The Context Gatherer
9
9
 
10
- You are **Researcher-Beta**, a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.
10
+ You are **Researcher-Beta**, a variant of the Researcher agent optimized for **pragmatic analysis**. Focus on trade-offs, edge cases, and practical constraints. Challenge assumptions and highlight risks the primary researcher may overlook.
11
11
 
12
12
  **Read .github/agents/_shared/researcher-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
13
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: 'Research variant for multi-model decision protocol different LLM perspective'
2
+ description: 'Research variant implementation feasibility and performance implications'
3
3
  argument-hint: Research question, problem statement, or subsystem to investigate
4
4
  tools: [execute/runInTerminal, read/problems, read/readFile, read/terminalLastCommand, agent/runSubagent, search/changes, search/codebase, search/usages, web/fetch, web/githubRepo, browser/openBrowserPage, browser/readPage, browser/screenshotPage, browser/navigatePage, browser/clickElement, browser/dragElement, browser/hoverElement, browser/typeInPage, browser/runPlaywrightCode, browser/handleDialog, aikit/*]
5
5
  model: Gemini 3.1 Pro (Preview) (copilot)
@@ -7,7 +7,7 @@ model: Gemini 3.1 Pro (Preview) (copilot)
7
7
 
8
8
  # Researcher-Delta - The Context Gatherer
9
9
 
10
- You are **Researcher-Delta**, a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.
10
+ You are **Researcher-Delta**, a variant of the Researcher agent optimized for **implementation feasibility**. Focus on performance implications, scaling concerns, and concrete implementation paths. Ground theoretical proposals in practical reality.
11
11
 
12
12
  **Read .github/agents/_shared/researcher-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
13
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: 'Research variant for multi-model decision protocol different LLM perspective'
2
+ description: 'Research variant broad pattern matching across domains and technologies'
3
3
  argument-hint: Research question, problem statement, or subsystem to investigate
4
4
  tools: [execute/runInTerminal, read/problems, read/readFile, read/terminalLastCommand, agent/runSubagent, search/changes, search/codebase, search/usages, web/fetch, web/githubRepo, browser/openBrowserPage, browser/readPage, browser/screenshotPage, browser/navigatePage, browser/clickElement, browser/dragElement, browser/hoverElement, browser/typeInPage, browser/runPlaywrightCode, browser/handleDialog, aikit/*]
5
5
  model: GPT-5.4 (copilot)
@@ -7,7 +7,7 @@ model: GPT-5.4 (copilot)
7
7
 
8
8
  # Researcher-Gamma - The Context Gatherer
9
9
 
10
- You are **Researcher-Gamma**, a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.
10
+ You are **Researcher-Gamma**, a variant of the Researcher agent optimized for **cross-domain pattern matching**. Draw connections from other domains, frameworks, and industries. Bring breadth where Alpha brings depth.
11
11
 
12
12
  **Read .github/agents/_shared/researcher-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
13
 
@@ -53,6 +53,13 @@ You are the **Security**, security specialist that analyzes code for vulnerabili
53
53
  ### Findings
54
54
  1. **[SEVERITY]** Title — Description, file:line, remediation
55
55
  ```
56
+ ## Skills (load on demand)
57
+
58
+ | Skill | When to load |
59
+ |-------|--------------|
60
+ | aikit | **Always** — AI Kit tool signatures, search, analysis |
61
+ | typescript | When reviewing code — security patterns, type safety |
62
+
56
63
 
57
64
  ## Flows
58
65
 
@@ -41,23 +41,51 @@ You may be invoked in two modes:
41
41
 
42
42
  **Before ANY other work**, check the AI Kit index:
43
43
 
44
- ```text
44
+ 1. Run `status({})` — check **Onboard Status** and note the **Onboard Directory** path
45
+ 2. If onboard shows ❌:
46
+ - Run `onboard({ path: "." })` — `path` is the codebase root to analyze
47
+ - Artifacts are written to the **Onboard Directory** automatically (the server resolves the correct location for workspace or user-level mode — you don't need to specify `out_dir`)
48
+ - Wait for completion (~30s) — the result shows the output directory path
49
+ - Do NOT proceed with any other work until onboard finishes
50
+ 3. If onboard shows ✅:
51
+ - Proceed to **Information Lookup Order** below
52
+
53
+ **This is non-negotiable.** Without onboarding, you waste 10-50x tokens on blind exploration.
54
+
55
+ ---
56
+
57
+ ## Session Protocol
58
+
59
+ ### Start (do ALL)
60
+
61
+ ```
45
62
  flow_status({}) # Check/resume active flow FIRST
46
- # If flow active → follow current step skill instructions, skip remaining init
63
+ # If flow active → flow_read_skill({ step }) follow skill instructions
47
64
  status({}) # Check AI Kit health + onboard state
48
65
  # If onboard not run → onboard({ path: "." }) # First-time codebase analysis
66
+ flow_list({}) # See available flows
67
+ # Select flow based on task → flow_start({ flow: "<name>" }) # Start flow if appropriate
68
+ list() # See stored knowledge
69
+ search({ query: "SESSION CHECKPOINT", origin: "curated" }) # Resume prior work
49
70
  ```
50
71
 
51
- If onboard shows ❌:
52
- - Run `onboard({ path: "." })` — `path` is the codebase root to analyze
53
- - Artifacts are written to the **Onboard Directory** automatically (the server resolves the correct location for workspace or user-level mode — you don't need to specify `out_dir`)
54
- - Wait for completion (~30s) — the result shows the output directory path
55
- - Do NOT proceed with any other work until onboard finishes
72
+ ## MCP Tool Categories
56
73
 
57
- If onboard shows ✅:
58
- - Proceed to **Information Lookup Order** below
74
+ | Category | Tools | Purpose |
75
+ |----------|-------|---------|
76
+ | Flows | `flow_list`, `flow_info`, `flow_start`, `flow_step`, `flow_status`, `flow_read_skill`, `flow_reset` | Structured multi-step workflows |
59
77
 
60
- **This is non-negotiable.** Without onboarding, you waste 10-50x tokens on blind exploration.
78
+ ---
79
+
80
+ ## Domain Skills
81
+
82
+ Your agent file lists domain-specific skills in the **Skills** section. Load them as needed:
83
+
84
+ 1. Check if the current task matches a listed skill trigger
85
+ 2. If yes → load the skill file before starting implementation
86
+ 3. The `aikit` skill is **always loaded** — do not re-load it
87
+
88
+ > If no skills are listed for your agent, rely on AI Kit tools and onboard artifacts.
61
89
 
62
90
  ---
63
91
 
@@ -289,11 +317,3 @@ Always return this structure when invoked as a sub-agent:
289
317
  </handoff>
290
318
  ```
291
319
 
292
- ## Flows
293
-
294
- This project uses AI Kit's flow system for structured multi-step workflows.
295
- - At session start: `flow_status({})` — check for active flows before other work
296
- - If active: `flow_read_skill({ step })` — read current step skill and follow it
297
- - To advance: `flow_step({ action: "next" })` — move to next step
298
- - To see available flows: `flow_list({})` — then `flow_start({ flow: "<name>" })`
299
-