@vpxa/aikit 0.1.73 → 0.1.74
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.
- package/package.json +4 -1
- package/packages/cli/dist/index.js +2 -2
- package/packages/cli/dist/{init-D_OGLUN1.js → init-DQkar6Es.js} +4 -4
- package/packages/cli/dist/scaffold-ukCDW3wQ.js +2 -0
- package/packages/cli/dist/{templates-DJ7EC5vw.js → templates-ArdAVWoY.js} +13 -3
- package/packages/cli/dist/user-CopNWxHP.js +5 -0
- package/packages/dashboard/dist/assets/index-C6D-PCp0.js.map +1 -1
- package/packages/flows/dist/index.d.ts +29 -0
- package/packages/flows/dist/index.js +1 -1
- package/packages/server/dist/index.js +1 -1
- package/packages/server/dist/{server-B9Mx1aK-.js → server-CVhVH5cT.js} +127 -127
- package/packages/tools/dist/index.d.ts +19 -1
- package/packages/tools/dist/index.js +39 -39
- package/scaffold/{flows → _preview/flows}/aikit-advanced/README.md +1 -1
- package/scaffold/{flows → _preview/flows}/aikit-basic/README.md +1 -1
- package/scaffold/adapters/flows.mjs +27 -0
- package/scaffold/adapters/skills.mjs +25 -0
- package/scaffold/compiled/flows-data.mjs +1571 -0
- package/scaffold/compiled/skills-data.mjs +11678 -0
- package/scaffold/definitions/exclusions.mjs +58 -0
- package/scaffold/definitions/plugins.mjs +44 -44
- package/scaffold/generate.mjs +24 -14
- package/packages/cli/dist/scaffold-CJwkHf-q.js +0 -2
- package/packages/cli/dist/user-BEmVW8Tp.js +0 -5
- package/scaffold/flows/aikit-advanced/flow.json +0 -69
- package/scaffold/flows/aikit-basic/flow.json +0 -45
- /package/scaffold/{general → _preview}/agents/Architect-Reviewer-Alpha.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Architect-Reviewer-Beta.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Code-Reviewer-Alpha.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Code-Reviewer-Beta.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Debugger.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Documenter.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Explorer.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Frontend.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Implementer.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Orchestrator.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Planner.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/README.md +0 -0
- /package/scaffold/{general → _preview}/agents/Refactor.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Researcher-Alpha.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Researcher-Beta.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Researcher-Delta.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Researcher-Gamma.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/Security.agent.md +0 -0
- /package/scaffold/{general → _preview}/agents/_shared/architect-reviewer-base.md +0 -0
- /package/scaffold/{general → _preview}/agents/_shared/code-agent-base.md +0 -0
- /package/scaffold/{general → _preview}/agents/_shared/code-reviewer-base.md +0 -0
- /package/scaffold/{general → _preview}/agents/_shared/decision-protocol.md +0 -0
- /package/scaffold/{general → _preview}/agents/_shared/forge-protocol.md +0 -0
- /package/scaffold/{general → _preview}/agents/_shared/researcher-base.md +0 -0
- /package/scaffold/{general → _preview}/agents/templates/adr-template.md +0 -0
- /package/scaffold/{general → _preview}/agents/templates/execution-state.md +0 -0
- /package/scaffold/{flows → _preview/flows}/_epilogue/steps/docs-sync/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-advanced/steps/design/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-advanced/steps/execute/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-advanced/steps/plan/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-advanced/steps/spec/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-advanced/steps/task/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-advanced/steps/verify/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-basic/steps/assess/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-basic/steps/design/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-basic/steps/implement/README.md +0 -0
- /package/scaffold/{flows → _preview/flows}/aikit-basic/steps/verify/README.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-ask.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-debug.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-design.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-flow-add.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-flow-create.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-flow-manage.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-implement.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-plan.prompt.md +0 -0
- /package/scaffold/{general → _preview}/prompts/aikit-review.prompt.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/assets/templates/adr-madr.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/assets/templates/adr-readme.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/assets/templates/adr-simple.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/references/adr-conventions.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/references/examples.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/references/review-checklist.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/references/template-variants.md +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/scripts/bootstrap_adr.js +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/scripts/new_adr.js +0 -0
- /package/scaffold/{general → _preview}/skills/adr-skill/scripts/set_adr_status.js +0 -0
- /package/scaffold/{general → _preview}/skills/aikit/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/brainstorming/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/brainstorming/spec-document-reviewer-prompt.md +0 -0
- /package/scaffold/{general → _preview}/skills/c4-architecture/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/c4-architecture/references/advanced-patterns.md +0 -0
- /package/scaffold/{general → _preview}/skills/c4-architecture/references/c4-syntax.md +0 -0
- /package/scaffold/{general → _preview}/skills/c4-architecture/references/common-mistakes.md +0 -0
- /package/scaffold/{general → _preview}/skills/c4-architecture/references/html-design-system.md +0 -0
- /package/scaffold/{general → _preview}/skills/c4-architecture/references/html-template.html +0 -0
- /package/scaffold/{general → _preview}/skills/docs/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/diataxis-anti-patterns.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/diataxis-compass.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/diataxis-quadrants.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/diataxis-quality.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/diataxis-templates.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/flow-artifacts-guide.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/project-knowledge-gotchas.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/project-knowledge-templates.md +0 -0
- /package/scaffold/{general → _preview}/skills/docs/references/project-knowledge-workflow.md +0 -0
- /package/scaffold/{general → _preview}/skills/frontend-design/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/lesson-learned/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/lesson-learned/references/anti-patterns.md +0 -0
- /package/scaffold/{general → _preview}/skills/lesson-learned/references/se-principles.md +0 -0
- /package/scaffold/{general → _preview}/skills/multi-agents-development/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/multi-agents-development/architecture-review-prompt.md +0 -0
- /package/scaffold/{general → _preview}/skills/multi-agents-development/code-quality-review-prompt.md +0 -0
- /package/scaffold/{general → _preview}/skills/multi-agents-development/implementer-prompt.md +0 -0
- /package/scaffold/{general → _preview}/skills/multi-agents-development/parallel-dispatch-example.md +0 -0
- /package/scaffold/{general → _preview}/skills/multi-agents-development/spec-review-prompt.md +0 -0
- /package/scaffold/{general → _preview}/skills/present/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/react/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/repo-access/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/repo-access/references/error-patterns.md +0 -0
- /package/scaffold/{general → _preview}/skills/repo-access/references/platform-matrix.md +0 -0
- /package/scaffold/{general → _preview}/skills/requirements-clarity/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/session-handoff/SKILL.md +0 -0
- /package/scaffold/{general → _preview}/skills/session-handoff/references/handoff-template.md +0 -0
- /package/scaffold/{general → _preview}/skills/session-handoff/references/resume-checklist.md +0 -0
- /package/scaffold/{general → _preview}/skills/session-handoff/scripts/check_staleness.js +0 -0
- /package/scaffold/{general → _preview}/skills/session-handoff/scripts/create_handoff.js +0 -0
- /package/scaffold/{general → _preview}/skills/session-handoff/scripts/list_handoffs.js +0 -0
- /package/scaffold/{general → _preview}/skills/session-handoff/scripts/validate_handoff.js +0 -0
- /package/scaffold/{general → _preview}/skills/typescript/SKILL.md +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permanent Exclusions — things aikit intentionally will NOT do.
|
|
3
|
+
*
|
|
4
|
+
* Each exclusion includes rationale grounded in the Bitter Lesson:
|
|
5
|
+
* systems should leverage computation over hand-crafted features.
|
|
6
|
+
* These exclusions are injected into copilot-instructions.md.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const PERMANENT_EXCLUSIONS = [
|
|
10
|
+
{
|
|
11
|
+
name: 'Hard-coded lint rules',
|
|
12
|
+
rationale:
|
|
13
|
+
'Project-specific linting belongs in ESLint or Biome config, not baked into agent instructions. Configurable tooling and automated checks scale better than hand-crafted rules embedded in prompts.',
|
|
14
|
+
bitterLessonSafe: true,
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
{
|
|
18
|
+
name: 'Framework-specific boilerplate generation',
|
|
19
|
+
rationale:
|
|
20
|
+
'Framework CLIs and IDE scaffolds already generate boilerplate from evolving upstream knowledge. Delegating to those computational systems is safer than freezing hand-written templates into aikit instructions.',
|
|
21
|
+
bitterLessonSafe: true,
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
{
|
|
25
|
+
name: 'Git workflow enforcement',
|
|
26
|
+
rationale:
|
|
27
|
+
'Branch policies, commit formatting, and merge gates belong in git hooks and CI where they can be enforced automatically. Reliable computation beats informal agent-side reminders and hand-crafted behavior rules.',
|
|
28
|
+
bitterLessonSafe: true,
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
{
|
|
32
|
+
name: 'IDE-specific keybinding and config guidance',
|
|
33
|
+
rationale:
|
|
34
|
+
'Editor shortcuts, panel layouts, and workspace settings are IDE concerns that change across clients and teams. Runtime tooling and local editor config are the right computational layer, not static agent instructions.',
|
|
35
|
+
bitterLessonSafe: true,
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
{
|
|
39
|
+
name: 'Package manager lock file manipulation',
|
|
40
|
+
rationale:
|
|
41
|
+
'Lock files should be produced by the package manager and verified in CI or release pipelines, not manually curated by agent policy. Deterministic tool execution is more robust than hand-crafted lockfile guidance.',
|
|
42
|
+
bitterLessonSafe: true,
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
{
|
|
46
|
+
name: 'Hard-coded file naming conventions',
|
|
47
|
+
rationale:
|
|
48
|
+
'Naming rules vary by repository and should live in project generators, linters, or review automation. Letting configurable computation enforce conventions scales better than embedding brittle file-name doctrine in prompts.',
|
|
49
|
+
bitterLessonSafe: true,
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
{
|
|
53
|
+
name: 'Runtime environment variable validation',
|
|
54
|
+
rationale:
|
|
55
|
+
'Environment validation belongs in application startup code, schemas, and deployment checks where real runtime state is available. Computed validation with executable code outperforms hand-crafted agent assumptions about env shape.',
|
|
56
|
+
bitterLessonSafe: true,
|
|
57
|
+
},
|
|
58
|
+
];
|
|
@@ -5,143 +5,143 @@
|
|
|
5
5
|
* Claude Code: Maps to tool_use permissions and MCP config
|
|
6
6
|
* Claude Code: Referenced via CLAUDE.md or MCP
|
|
7
7
|
*
|
|
8
|
-
* Skills are NOT generated — they live in scaffold/
|
|
8
|
+
* Skills are NOT generated — they live in scaffold/skills/.
|
|
9
9
|
* This file defines WHICH skills to copy and their metadata.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
export const PLUGINS = {
|
|
13
13
|
aikit: {
|
|
14
14
|
description: 'AI Kit search, analysis, memory, and developer tools',
|
|
15
|
-
source: 'scaffold/
|
|
15
|
+
source: 'scaffold/skills/aikit/SKILL.md',
|
|
16
16
|
required: true,
|
|
17
17
|
},
|
|
18
18
|
|
|
19
19
|
brainstorming: {
|
|
20
20
|
description: 'Brainstorming & design exploration workflow',
|
|
21
|
-
source: 'scaffold/
|
|
21
|
+
source: 'scaffold/skills/brainstorming/SKILL.md',
|
|
22
22
|
required: true,
|
|
23
|
-
sidecars: ['scaffold/
|
|
23
|
+
sidecars: ['scaffold/skills/brainstorming/spec-document-reviewer-prompt.md'],
|
|
24
24
|
},
|
|
25
25
|
|
|
26
26
|
'multi-agents-development': {
|
|
27
27
|
description:
|
|
28
28
|
'Multi-agent orchestration, task decomposition, parallel dispatch, and review pipeline patterns',
|
|
29
|
-
source: 'scaffold/
|
|
29
|
+
source: 'scaffold/skills/multi-agents-development/SKILL.md',
|
|
30
30
|
required: true,
|
|
31
31
|
sidecars: [
|
|
32
|
-
'scaffold/
|
|
33
|
-
'scaffold/
|
|
34
|
-
'scaffold/
|
|
35
|
-
'scaffold/
|
|
36
|
-
'scaffold/
|
|
32
|
+
'scaffold/skills/multi-agents-development/implementer-prompt.md',
|
|
33
|
+
'scaffold/skills/multi-agents-development/spec-review-prompt.md',
|
|
34
|
+
'scaffold/skills/multi-agents-development/code-quality-review-prompt.md',
|
|
35
|
+
'scaffold/skills/multi-agents-development/architecture-review-prompt.md',
|
|
36
|
+
'scaffold/skills/multi-agents-development/parallel-dispatch-example.md',
|
|
37
37
|
],
|
|
38
38
|
},
|
|
39
39
|
|
|
40
40
|
'adr-skill': {
|
|
41
41
|
description:
|
|
42
42
|
'Architecture Decision Records — create, maintain, and review ADRs for significant technical decisions',
|
|
43
|
-
source: 'scaffold/
|
|
43
|
+
source: 'scaffold/skills/adr-skill/SKILL.md',
|
|
44
44
|
required: true,
|
|
45
45
|
sidecars: [
|
|
46
|
-
'scaffold/
|
|
47
|
-
'scaffold/
|
|
48
|
-
'scaffold/
|
|
49
|
-
'scaffold/
|
|
50
|
-
'scaffold/
|
|
51
|
-
'scaffold/
|
|
52
|
-
'scaffold/
|
|
53
|
-
'scaffold/
|
|
54
|
-
'scaffold/
|
|
55
|
-
'scaffold/
|
|
46
|
+
'scaffold/skills/adr-skill/assets/templates/adr-madr.md',
|
|
47
|
+
'scaffold/skills/adr-skill/assets/templates/adr-readme.md',
|
|
48
|
+
'scaffold/skills/adr-skill/assets/templates/adr-simple.md',
|
|
49
|
+
'scaffold/skills/adr-skill/references/adr-conventions.md',
|
|
50
|
+
'scaffold/skills/adr-skill/references/examples.md',
|
|
51
|
+
'scaffold/skills/adr-skill/references/review-checklist.md',
|
|
52
|
+
'scaffold/skills/adr-skill/references/template-variants.md',
|
|
53
|
+
'scaffold/skills/adr-skill/scripts/bootstrap_adr.js',
|
|
54
|
+
'scaffold/skills/adr-skill/scripts/new_adr.js',
|
|
55
|
+
'scaffold/skills/adr-skill/scripts/set_adr_status.js',
|
|
56
56
|
],
|
|
57
57
|
},
|
|
58
58
|
|
|
59
59
|
'c4-architecture': {
|
|
60
60
|
description:
|
|
61
61
|
'C4 model architecture diagrams using Mermaid — system context, container, component, and deployment views',
|
|
62
|
-
source: 'scaffold/
|
|
62
|
+
source: 'scaffold/skills/c4-architecture/SKILL.md',
|
|
63
63
|
required: true,
|
|
64
64
|
sidecars: [
|
|
65
|
-
'scaffold/
|
|
66
|
-
'scaffold/
|
|
67
|
-
'scaffold/
|
|
65
|
+
'scaffold/skills/c4-architecture/references/advanced-patterns.md',
|
|
66
|
+
'scaffold/skills/c4-architecture/references/c4-syntax.md',
|
|
67
|
+
'scaffold/skills/c4-architecture/references/common-mistakes.md',
|
|
68
68
|
],
|
|
69
69
|
},
|
|
70
70
|
|
|
71
71
|
'frontend-design': {
|
|
72
72
|
description:
|
|
73
73
|
'Frontend design system — visual design thinking, typography, color, layout, motion, accessibility, and anti-pattern detection',
|
|
74
|
-
source: 'scaffold/
|
|
74
|
+
source: 'scaffold/skills/frontend-design/SKILL.md',
|
|
75
75
|
required: false,
|
|
76
76
|
},
|
|
77
77
|
|
|
78
78
|
'lesson-learned': {
|
|
79
79
|
description: 'Extract engineering lessons from recent code changes via git history analysis',
|
|
80
|
-
source: 'scaffold/
|
|
80
|
+
source: 'scaffold/skills/lesson-learned/SKILL.md',
|
|
81
81
|
required: true,
|
|
82
82
|
sidecars: [
|
|
83
|
-
'scaffold/
|
|
84
|
-
'scaffold/
|
|
83
|
+
'scaffold/skills/lesson-learned/references/anti-patterns.md',
|
|
84
|
+
'scaffold/skills/lesson-learned/references/se-principles.md',
|
|
85
85
|
],
|
|
86
86
|
},
|
|
87
87
|
|
|
88
88
|
present: {
|
|
89
89
|
description:
|
|
90
90
|
'Rich interactive dashboards, charts, tables, timelines, and data visualizations via the present MCP tool',
|
|
91
|
-
source: 'scaffold/
|
|
91
|
+
source: 'scaffold/skills/present/SKILL.md',
|
|
92
92
|
required: true,
|
|
93
93
|
},
|
|
94
94
|
|
|
95
95
|
react: {
|
|
96
96
|
description:
|
|
97
97
|
'React development patterns — component architecture, React 19 APIs, Server Components, TypeScript integration',
|
|
98
|
-
source: 'scaffold/
|
|
98
|
+
source: 'scaffold/skills/react/SKILL.md',
|
|
99
99
|
required: false,
|
|
100
100
|
},
|
|
101
101
|
|
|
102
102
|
'requirements-clarity': {
|
|
103
103
|
description:
|
|
104
104
|
'Clarify ambiguous requirements through focused dialogue — score 0-100 until ≥90 before implementation',
|
|
105
|
-
source: 'scaffold/
|
|
105
|
+
source: 'scaffold/skills/requirements-clarity/SKILL.md',
|
|
106
106
|
required: true,
|
|
107
107
|
},
|
|
108
108
|
|
|
109
109
|
'session-handoff': {
|
|
110
110
|
description:
|
|
111
111
|
'Comprehensive handoff documents for seamless AI agent session transfers and context preservation',
|
|
112
|
-
source: 'scaffold/
|
|
112
|
+
source: 'scaffold/skills/session-handoff/SKILL.md',
|
|
113
113
|
required: true,
|
|
114
114
|
sidecars: [
|
|
115
|
-
'scaffold/
|
|
116
|
-
'scaffold/
|
|
117
|
-
'scaffold/
|
|
118
|
-
'scaffold/
|
|
119
|
-
'scaffold/
|
|
120
|
-
'scaffold/
|
|
115
|
+
'scaffold/skills/session-handoff/references/handoff-template.md',
|
|
116
|
+
'scaffold/skills/session-handoff/references/resume-checklist.md',
|
|
117
|
+
'scaffold/skills/session-handoff/scripts/check_staleness.js',
|
|
118
|
+
'scaffold/skills/session-handoff/scripts/create_handoff.js',
|
|
119
|
+
'scaffold/skills/session-handoff/scripts/list_handoffs.js',
|
|
120
|
+
'scaffold/skills/session-handoff/scripts/validate_handoff.js',
|
|
121
121
|
],
|
|
122
122
|
},
|
|
123
123
|
|
|
124
124
|
typescript: {
|
|
125
125
|
description:
|
|
126
126
|
'TypeScript development patterns — type system, compiler config, advanced types, async patterns, module organization',
|
|
127
|
-
source: 'scaffold/
|
|
127
|
+
source: 'scaffold/skills/typescript/SKILL.md',
|
|
128
128
|
required: false,
|
|
129
129
|
},
|
|
130
130
|
docs: {
|
|
131
131
|
description:
|
|
132
132
|
'Living documentation management — Diátaxis framework, docs/ convention, staleness detection, integration with adr-skill and c4-architecture',
|
|
133
|
-
source: 'scaffold/
|
|
133
|
+
source: 'scaffold/skills/docs/SKILL.md',
|
|
134
134
|
required: true,
|
|
135
135
|
},
|
|
136
136
|
|
|
137
137
|
'repo-access': {
|
|
138
138
|
description:
|
|
139
139
|
'Progressive repository access recovery for private and enterprise git repos — strategy ladder from HTTPS to SSH to CLI OAuth to PAT to local clone',
|
|
140
|
-
source: 'scaffold/
|
|
140
|
+
source: 'scaffold/skills/repo-access/SKILL.md',
|
|
141
141
|
required: true,
|
|
142
142
|
sidecars: [
|
|
143
|
-
'scaffold/
|
|
144
|
-
'scaffold/
|
|
143
|
+
'scaffold/skills/repo-access/references/platform-matrix.md',
|
|
144
|
+
'scaffold/skills/repo-access/references/error-patterns.md',
|
|
145
145
|
],
|
|
146
146
|
},
|
|
147
147
|
};
|
package/scaffold/generate.mjs
CHANGED
|
@@ -9,12 +9,8 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Architecture:
|
|
11
11
|
* definitions/ — IDE-agnostic data (agents, models, tools, prompts, hooks, plugins)
|
|
12
|
-
* adapters/ —
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* The copilot adapter writes directly to general/ since all IDEs currently
|
|
16
|
-
* consume the same VS Code-format .agent.md files. When a future adapter
|
|
17
|
-
* needs a different format, it gets its own output directory.
|
|
12
|
+
* adapters/ — Generator adapters (copilot, claude-code, skills, flows)
|
|
13
|
+
* _preview/ — Preview output directory (dev only — `aikit init` uses adapters directly)
|
|
18
14
|
*/
|
|
19
15
|
|
|
20
16
|
import { existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
@@ -22,12 +18,24 @@ import { dirname, resolve } from 'node:path';
|
|
|
22
18
|
import { fileURLToPath } from 'node:url';
|
|
23
19
|
import { generateClaudeCode } from './adapters/claude-code.mjs';
|
|
24
20
|
import { generateCopilot } from './adapters/copilot.mjs';
|
|
21
|
+
import { generateFlows } from './adapters/flows.mjs';
|
|
22
|
+
import { generateSkills } from './adapters/skills.mjs';
|
|
25
23
|
|
|
26
24
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
27
25
|
|
|
28
26
|
const ADAPTERS = {
|
|
29
|
-
copilot: {
|
|
30
|
-
|
|
27
|
+
copilot: {
|
|
28
|
+
generate: generateCopilot,
|
|
29
|
+
outDir: '_preview',
|
|
30
|
+
cleanDirs: ['agents', 'prompts', 'commands'],
|
|
31
|
+
},
|
|
32
|
+
'claude-code': {
|
|
33
|
+
generate: generateClaudeCode,
|
|
34
|
+
outDir: 'claude-code',
|
|
35
|
+
cleanDirs: ['agents', 'prompts', 'commands'],
|
|
36
|
+
},
|
|
37
|
+
skills: { generate: generateSkills, outDir: '_preview/skills', cleanDirs: null },
|
|
38
|
+
flows: { generate: generateFlows, outDir: '_preview/flows', cleanDirs: null },
|
|
31
39
|
};
|
|
32
40
|
|
|
33
41
|
// ─── Parse args ───────────────────────────────────────────────────────────
|
|
@@ -49,13 +57,15 @@ for (const ide of idesToRun) {
|
|
|
49
57
|
|
|
50
58
|
const outDir = resolve(__dirname, adapter.outDir);
|
|
51
59
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
if (adapter.cleanDirs) {
|
|
61
|
+
for (const subdir of adapter.cleanDirs) {
|
|
62
|
+
const sub = resolve(outDir, subdir);
|
|
63
|
+
if (existsSync(sub)) {
|
|
64
|
+
rmSync(sub, { recursive: true });
|
|
65
|
+
}
|
|
58
66
|
}
|
|
67
|
+
} else if (existsSync(outDir)) {
|
|
68
|
+
rmSync(outDir, { recursive: true });
|
|
59
69
|
}
|
|
60
70
|
|
|
61
71
|
console.log(`\n─── Generating ${ide} scaffold ───`);
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{existsSync as e,mkdirSync as t,readFileSync as n,readdirSync as r,rmSync as i,statSync as a,unlinkSync as o,writeFileSync as s}from"node:fs";import{dirname as c,resolve as l}from"node:path";import{createHash as u}from"node:crypto";const d=[`inputs`,`outputs`,`requires`,`relatedSkills`],f=[`model`],p=[`category`,`domain`,`applicability`],m=new Set([`__proto__`,`constructor`,`prototype`]);function h(e,t){return e.metadata[t]??e.fields[t]}function g(e,t){let n=h(e,t);return n?v(n):[]}function _(e){let t=Object.create(null),n=Object.create(null),r=[],i=e,a=e.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!a)return{fields:t,metadata:n,tools:r,body:i};let o=a[1];i=a[2];let s=!1;for(let e of o.split(/\r?\n/)){if(s){if(e.trim()===``)continue;let t=e.match(/^\s{2,}(\S+?):\s*(.*)$/);if(t){let[,e,r]=t;if(m.has(e))continue;n[e]=r;continue}s=!1}let i=e.match(/^(\S+?):\s*(.*)$/);if(!i)continue;let[,a,o]=i;if(a===`metadata`&&o.trim()===``){s=!0;continue}m.has(a)||(t[a]=o,a===`tools`&&(r=v(o)))}return{fields:t,metadata:n,tools:r,body:i}}function v(e){let t=e.trim();if(!t.startsWith(`[`)||!t.endsWith(`]`))return[];let n=t.slice(1,-1).trim();return n?n.split(`,`).map(e=>e.trim()).filter(Boolean):[]}function y(e){return`[${e.join(`, `)}]`}function b(e,t){let n=_(e),r=_(t),i={...n.fields},a={...n.metadata};for(let[e,t]of Object.entries(r.metadata))e in a||(a[e]=t);for(let e of f)r.fields[e]&&(i[e]=r.fields[e]);for(let e of p){let t=h(r,e);t&&(a[e]=t)}for(let e of[...p,...d])delete i[e];delete i.metadata;let o=n.tools,s=r.tools,c=new Set(o),l=s.filter(e=>!c.has(e)),u=[...o,...l];u.length>0&&(i.tools=y(u));for(let e of d){let t=g(n,e),i=g(r,e),o=new Set(t),s=i.filter(e=>!o.has(e)),c=[...t,...s];c.length>0?a[e]=y(c):delete a[e]}let m=[`---`],v=[`name`,`description`,`argument-hint`,`tools`,`model`],b=[`category`,`domain`,`applicability`,`inputs`,`outputs`,`requires`,`relatedSkills`],x=new Set;for(let e of v)e in i&&(m.push(`${e}: ${i[e]}`),x.add(e));for(let[e,t]of Object.entries(i))x.has(e)||m.push(`${e}: ${t}`);let S=[],C=new Set;for(let e of b){let t=a[e];t&&(S.push(` ${e}: ${t}`),C.add(e))}for(let[e,t]of Object.entries(a))!C.has(e)&&t&&S.push(` ${e}: ${t}`);return S.length>0&&(m.push(`metadata:`),m.push(...S)),m.push(`---`),`${m.join(`
|
|
2
|
-
`)}\n${n.body}`}function x(e){return u(`sha256`).update(e).digest(`hex`).slice(0,16)}function S(t){if(!e(t))return null;try{let e=n(t,`utf-8`),r=JSON.parse(e);return!r.version||!r.files?null:r}catch{return null}}function C(e,t){s(e,`${JSON.stringify(t,null,2)}\n`,`utf-8`)}function w(e){return e.endsWith(`.agent.md`)&&!e.startsWith(`_shared/`)&&!e.startsWith(`agents/_shared/`)&&!e.startsWith(`templates/`)||e.endsWith(`SKILL.md`)&&!e.startsWith(`_shared/`)&&!e.startsWith(`templates/`)?`merge-frontmatter`:`overwrite`}function T(e,t,n){if(!e)return`new`;let r=e.files[t];return r?r.sourceHash===x(n)?`current`:`outdated`:`new`}function E(e,t,n,r){e.files[t]={sourceHash:x(n),strategy:r??w(t),updatedAt:new Date().toISOString()}}function D(e){return{version:e,generatedAt:new Date().toISOString(),files:{}}}function O(i,o,u,d=``,f=!1){if(e(i)){t(o,{recursive:!0});for(let p of r(i)){let r=l(i,p),m=l(o,p),h=d?`${d}/${p}`:p;if(a(r).isDirectory()){O(r,m,u,h,f);continue}let g=n(r,`utf-8`);if(f){t(c(m),{recursive:!0}),s(m,g,`utf-8`),E(u,h,g);continue}let _=T(u,h,g);if(_!==`current`){if(_===`new`&&!e(m)){t(c(m),{recursive:!0}),s(m,g,`utf-8`),E(u,h,g);continue}if(_===`new`&&e(m)){E(u,h,g);continue}w(h)===`merge-frontmatter`&&e(m)?s(m,b(g,n(m,`utf-8`)),`utf-8`):(t(c(m),{recursive:!0}),s(m,g,`utf-8`)),E(u,h,g)}}}}function k(t,n,i,s){let c=new Set;if(e(t)){let e=(t,n)=>{for(let i of r(t)){let r=l(t,i),o=n?`${n}/${i}`:i;a(r).isDirectory()?e(r,o):c.add(`${s}/${o}`)}};e(t,``)}let u=[];for(let t of Object.keys(i.files)){if(!t.startsWith(`${s}/`)||c.has(t))continue;let r=l(n,t.slice(s.length+1));e(r)&&(o(r),u.push(t)),delete i.files[t]}return u}function A(t,n,r,i,a=!1){let o=l(n,`scaffold`,r),s=l(t,`.github`),c=l(s,`.aikit-scaffold.json`),u=S(c)??D(i);u.version=i;for(let t of[`agents`,`prompts`]){let n=l(o,t);e(n)&&O(n,l(s,t),u,t,a)}if(a)for(let e of[`agents`,`prompts`]){let t=k(l(o,e),l(s,e),u,e);for(let e of t)console.log(` Removed orphaned scaffold file: ${e}`)}C(c,u)}function j(t,n,r,i,a=!1){let o=l(t,`.github`),s=l(o,`.aikit-scaffold.json`),c=S(s)??D(i);c.version=i;for(let t of r){let r=l(n,`scaffold`,`general`,`skills`,t);e(r)&&O(r,l(o,`skills`,t),c,`skills/${t}`,a)}C(s,c)}function M(t,n,r,i,a=!1){let o=l(t,r);if(!e(o))return;let s=l(n,r),c=l(n,`.aikit-scaffold.json`),u=S(c)??D(i);if(u.version=i,O(o,s,u,r,a),a){let e=k(o,s,u,r);for(let t of e)console.log(` Removed orphaned scaffold file: ${t}`)}C(c,u)}function N(t,i,o,s){if(e(t))for(let c of r(t)){let r=l(t,c),u=o?`${o}/${c}`:c;if(a(r).isDirectory())N(r,l(i,c),u,s);else{let t=l(i,c),a=n(r,`utf-8`);e(t)?a===n(t,`utf-8`)?s.push({status:`current`,relativePath:u,sourcePath:r}):s.push({status:`outdated`,relativePath:u,sourcePath:r,content:a}):s.push({status:`new`,relativePath:u,sourcePath:r,content:a})}}}function P(e,t,n){let r=[],i=l(t,`scaffold`,n);for(let t of[`agents`,`prompts`])N(l(i,t),l(e,`.github`,t),t,r);return r}function F(t,n,r){let i=[];for(let a of r){let r=l(n,`scaffold`,`general`,`skills`,a);e(r)&&N(r,l(t,`.github`,`skills`,a),`skills/${a}`,i)}return i}function I(t,n,r,a,o=!1){let s=l(t,`.github`),c=l(s,`.aikit-scaffold.json`),u=S(c)??D(a);u.version=a;for(let t of r){let r=l(n,`scaffold`,`flows`,t,`steps`);if(!e(r))continue;let a=l(s,`flows`,t,`skills`);e(a)&&i(a,{recursive:!0,force:!0}),O(r,l(s,`flows`,t,`steps`),u,`flows/${t}/steps`,o)}C(c,u)}function L(t,n,r){let i=[];for(let a of r){let r=l(n,`scaffold`,`flows`,a,`steps`);e(r)&&N(r,l(t,`.github`,`flows`,a,`steps`),`flows/${a}/steps`,i)}return i}function R(i,o,c,d=!1){let f=l(o,`scaffold`,`claude-code`,`commands`);if(!e(f))return;let p=l(i,`.claude`),m=l(p,`.aikit-scaffold.json`),h;h=e(m)?JSON.parse(n(m,`utf-8`)):{version:c,generatedAt:new Date().toISOString(),files:{}},h.version=c,h.generatedAt=new Date().toISOString(),t(l(p,`commands`),{recursive:!0});let g=r(f);for(let t of g){let r=l(f,t);if(!a(r).isFile())continue;let i=`commands/${t}`,o=l(p,i),c=n(r,`utf-8`),m=u(`sha256`).update(c).digest(`hex`).slice(0,16),g=h.files[i];if(g&&!d&&e(o)){let e=n(o,`utf-8`);if(u(`sha256`).update(e).digest(`hex`).slice(0,16)!==g.sourceHash)continue}s(o,c,`utf-8`),h.files[i]={sourceHash:m,strategy:`overwrite`,updatedAt:new Date().toISOString()}}if(d){let e=k(f,l(p,`commands`),h,`commands`);for(let t of e)console.log(` Removed orphaned scaffold file: ${t}`)}s(m,JSON.stringify(h,null,2),`utf-8`)}export{L as guideFlows,P as guideScaffold,F as guideSkills,R as smartCopyClaudeCommands,I as smartCopyFlows,A as smartCopyScaffold,j as smartCopySkills,M as smartCopySubdir};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n,r,t as i}from"./constants-B8_CApx0.js";import{n as a,t as o}from"./templates-DJ7EC5vw.js";import{smartCopySubdir as s}from"./scaffold-CJwkHf-q.js";import{existsSync as c,mkdirSync as l,readFileSync as u,rmSync as d,unlinkSync as f,writeFileSync as p}from"node:fs";import{dirname as m,join as h,resolve as g}from"node:path";import{fileURLToPath as _}from"node:url";import{getGlobalDataDir as v,saveRegistry as y}from"../../core/dist/index.js";import{homedir as b}from"node:os";function x(e){let t=e;for(let e=0;e<10;e++){try{let e=h(t,`package.json`);if(c(e)&&JSON.parse(u(e,`utf8`)).name===`@vpxa/aikit`)return t}catch{}let e=m(t);if(e===t)break;t=e}return g(e,`..`,`..`,`..`)}function S(){let e=b(),t=process.platform,n=[],r=g(e,`.copilot`),i=g(r,`instructions`),a=g(e,`.claude`),o=g(e,`.cursor`),s=g(e,`.windsurf`);if(t===`win32`){let t=process.env.APPDATA??g(e,`AppData`,`Roaming`);n.push({ide:`VS Code`,configDir:g(t,`Code`,`User`),mcpConfigPath:g(t,`Code`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VS Code Insiders`,configDir:g(t,`Code - Insiders`,`User`),mcpConfigPath:g(t,`Code - Insiders`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VSCodium`,configDir:g(t,`VSCodium`,`User`),mcpConfigPath:g(t,`VSCodium`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`Cursor`,configDir:g(t,`Cursor`,`User`),mcpConfigPath:g(t,`Cursor`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Cursor Nightly`,configDir:g(t,`Cursor Nightly`,`User`),mcpConfigPath:g(t,`Cursor Nightly`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Windsurf`,configDir:g(t,`Windsurf`,`User`),mcpConfigPath:g(t,`Windsurf`,`User`,`mcp.json`),globalScaffoldRoot:s,instructionsRoot:null})}else if(t===`darwin`){let t=g(e,`Library`,`Application Support`);n.push({ide:`VS Code`,configDir:g(t,`Code`,`User`),mcpConfigPath:g(t,`Code`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VS Code Insiders`,configDir:g(t,`Code - Insiders`,`User`),mcpConfigPath:g(t,`Code - Insiders`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VSCodium`,configDir:g(t,`VSCodium`,`User`),mcpConfigPath:g(t,`VSCodium`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`Cursor`,configDir:g(t,`Cursor`,`User`),mcpConfigPath:g(t,`Cursor`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Cursor Nightly`,configDir:g(t,`Cursor Nightly`,`User`),mcpConfigPath:g(t,`Cursor Nightly`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Windsurf`,configDir:g(t,`Windsurf`,`User`),mcpConfigPath:g(t,`Windsurf`,`User`,`mcp.json`),globalScaffoldRoot:s,instructionsRoot:null})}else{let t=process.env.XDG_CONFIG_HOME??g(e,`.config`);n.push({ide:`VS Code`,configDir:g(t,`Code`,`User`),mcpConfigPath:g(t,`Code`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VS Code Insiders`,configDir:g(t,`Code - Insiders`,`User`),mcpConfigPath:g(t,`Code - Insiders`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VSCodium`,configDir:g(t,`VSCodium`,`User`),mcpConfigPath:g(t,`VSCodium`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`Cursor`,configDir:g(t,`Cursor`,`User`),mcpConfigPath:g(t,`Cursor`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Cursor Nightly`,configDir:g(t,`Cursor Nightly`,`User`),mcpConfigPath:g(t,`Cursor Nightly`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Windsurf`,configDir:g(t,`Windsurf`,`User`),mcpConfigPath:g(t,`Windsurf`,`User`,`mcp.json`),globalScaffoldRoot:s,instructionsRoot:null})}return n.push({ide:`Claude Code`,configDir:g(e,`.claude`),mcpConfigPath:g(e,`.claude`,`mcp.json`),globalScaffoldRoot:a,instructionsRoot:null}),n.push({ide:`Copilot CLI`,configDir:r,mcpConfigPath:g(r,`mcp-config.json`),globalScaffoldRoot:null,instructionsRoot:null}),n.filter(e=>c(e.configDir))}function C(e,t,r=!1){let{mcpConfigPath:i,configDir:a}=e,o={...n},s={};if(c(i)){try{let e=u(i,`utf-8`);s=JSON.parse(e)}catch{let e=`${i}.bak`;p(e,u(i,`utf-8`),`utf-8`),console.log(` Backed up invalid ${i} to ${e}`),s={}}if((s.servers??s.mcpServers??{})[t]&&!r){console.log(` ${e.ide}: ${t} already configured (use --force to update)`);return}}let d=new Set([`VS Code`,`VS Code Insiders`,`VSCodium`,`Windsurf`]).has(e.ide)?`servers`:`mcpServers`,f=s[d]??{};e.ide===`Copilot CLI`?f[t]={...o,tools:[`*`]}:f[t]=o,s[d]=f,l(a,{recursive:!0}),p(i,`${JSON.stringify(s,null,2)}\n`,`utf-8`),console.log(` ${e.ide}: configured ${t} in ${i}`)}const w=new Set([`VS Code`,`VS Code Insiders`,`VSCodium`]);function T(t,n=!1){if(!w.has(t.ide))return;let r=g(t.configDir,`settings.json`),i={};if(c(r))try{let e=u(r,`utf-8`);i=JSON.parse(e)}catch{console.log(` ${t.ide}: skipped settings.json (invalid JSON)`);return}let a=!1;for(let[t,r]of Object.entries(e))if(typeof r==`object`&&r){let e=typeof i[t]==`object`&&i[t]!==null?i[t]:{},n={...e,...r};JSON.stringify(n)!==JSON.stringify(e)&&(i[t]=n,a=!0)}else (n||!(t in i))&&(i[t]=r,a=!0);a&&(p(r,`${JSON.stringify(i,null,2)}\n`,`utf-8`),console.log(` ${t.ide}: updated settings.json`))}function E(e,n,r,u,f=!1){let m=new Set;for(let e of n)e.globalScaffoldRoot&&m.add(e.globalScaffoldRoot);if(m.size===0){console.log(` No IDEs with global scaffold support detected.`);return}let h=g(e,`scaffold`,`general`);for(let n of m){s(h,n,`agents`,u,f),s(h,n,`prompts`,u,f);let r=0;for(let e of t)c(g(h,`skills`,e))&&(s(h,n,`skills/${e}`,u,f),r++);for(let t of i){let r=g(e,`scaffold`,`flows`,t);if(!c(g(r,`steps`)))continue;let i=g(n,`flows`,t);l(i,{recursive:!0});let a=g(i,`skills`);c(a)&&(d(a,{recursive:!0,force:!0}),console.log(` ${n}: migrated ${t} flow to steps/ layout`)),s(r,i,`steps`,u,f)}console.log(` ${n}: scaffold updated (${r} skills)`)}let _=new Set,v=a(`aikit`,r),y=o(`aikit`,r);for(let e of n){if(!e.globalScaffoldRoot)continue;let t=e.globalScaffoldRoot;if(e.ide===`Claude Code`){let e=g(t,`CLAUDE.md`);p(e,`${v}\n---\n\n${y}`,`utf-8`),_.add(e)}else if(e.ide===`VS Code`||e.ide===`VS Code Insiders`||e.ide===`VSCodium`){let n=e.instructionsRoot??t;l(n,{recursive:!0});let r=g(n,`copilot-instructions.md`);_.has(r)||(p(r,`---\napplyTo: "**"\n---\n\n${v}\n---\n\n${y}`,`utf-8`),_.add(r));let i=g(b(),`.github`),a=g(i,`copilot-instructions.md`);_.has(a)||(l(i,{recursive:!0}),p(a,`${v}\n---\n\n${y}`,`utf-8`),_.add(a)),s(h,e.configDir,`prompts`,u,f)}else if(e.ide===`Cursor`||e.ide===`Cursor Nightly`){let e=g(t,`rules`);l(e,{recursive:!0});let n=g(e,`aikit.mdc`);_.has(n)||(p(n,`${v}\n---\n\n${y}`,`utf-8`),_.add(n))}else if(e.ide===`Windsurf`){let e=g(t,`rules`);l(e,{recursive:!0});let n=g(e,`aikit.md`);_.has(n)||(p(n,`${v}\n---\n\n${y}`,`utf-8`),_.add(n))}}_.size>0&&console.log(` Instruction files: ${[..._].join(`, `)}`)}function D(e){let t=[];for(let n of e){if(!n.globalScaffoldRoot)continue;let e=n.globalScaffoldRoot;if(n.ide===`VS Code`||n.ide===`VS Code Insiders`||n.ide===`VSCodium`){let r=n.instructionsRoot??e;t.push(g(r,`kb.instructions.md`)),t.push(g(r,`aikit.instructions.md`))}else n.ide===`Cursor`||n.ide===`Cursor Nightly`?t.push(g(e,`rules`,`kb.mdc`)):n.ide===`Windsurf`&&t.push(g(e,`rules`,`kb.md`))}for(let e of t)c(e)&&(f(e),console.log(` Removed legacy file: ${e}`))}async function O(e){let t=r,n=x(m(_(import.meta.url))),i=JSON.parse(u(g(n,`package.json`),`utf-8`)).version;console.log(`Initializing @vpxa/aikit v${i}...\n`);let a=v();l(a,{recursive:!0}),console.log(` Global data store: ${a}`),y({version:1,workspaces:{}}),console.log(` Created registry.json`);let o=S();if(o.length===0)console.log(`
|
|
2
|
-
No supported IDEs detected. You can manually add the MCP server config.`);else{console.log(`\n Detected ${o.length} IDE(s):`);for(let n of o)C(n,t,e.force),T(n,e.force)}console.log(`
|
|
3
|
-
Installing scaffold files:`),E(n,o,t,i,e.force),D(o),console.log(`
|
|
4
|
-
User-level AI Kit installation complete!`),console.log(`
|
|
5
|
-
Next steps:`),console.log(` 1. Open any workspace in your IDE`),console.log(` 2. The AI Kit server will auto-start and index the workspace`),console.log(` 3. Agents, prompts, skills & instructions are available globally`),console.log(` 4. No per-workspace init needed — just open a project and start coding`)}export{O as initUser};
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "aikit:advanced",
|
|
3
|
-
"version": "0.1.0",
|
|
4
|
-
"description": "Full development flow for new features, API design, and architecture changes",
|
|
5
|
-
"steps": [
|
|
6
|
-
{
|
|
7
|
-
"id": "design",
|
|
8
|
-
"name": "Design Gate",
|
|
9
|
-
"instruction": "steps/design/README.md",
|
|
10
|
-
"produces": ["design-decisions.md"],
|
|
11
|
-
"requires": [],
|
|
12
|
-
"agents": ["Researcher-Alpha", "Researcher-Beta", "Researcher-Gamma", "Researcher-Delta"],
|
|
13
|
-
"description": "Full brainstorming, FORGE classification, decision protocol with parallel research. ADR for critical-tier tasks."
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"id": "spec",
|
|
17
|
-
"name": "Specification",
|
|
18
|
-
"instruction": "steps/spec/README.md",
|
|
19
|
-
"produces": ["spec.md"],
|
|
20
|
-
"requires": ["design-decisions.md"],
|
|
21
|
-
"agents": ["Researcher-Alpha"],
|
|
22
|
-
"description": "Elicit requirements, clarify scope, define acceptance criteria"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"id": "plan",
|
|
26
|
-
"name": "Planning",
|
|
27
|
-
"instruction": "steps/plan/README.md",
|
|
28
|
-
"produces": ["plan.md"],
|
|
29
|
-
"requires": ["spec.md"],
|
|
30
|
-
"agents": ["Planner", "Explorer"],
|
|
31
|
-
"description": "Analyze codebase, design architecture, create implementation plan"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"id": "task",
|
|
35
|
-
"name": "Task Breakdown",
|
|
36
|
-
"instruction": "steps/task/README.md",
|
|
37
|
-
"produces": ["tasks.md"],
|
|
38
|
-
"requires": ["plan.md"],
|
|
39
|
-
"agents": ["Planner", "Architect-Reviewer-Alpha"],
|
|
40
|
-
"description": "Break plan into ordered implementation tasks with dependencies"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"id": "execute",
|
|
44
|
-
"name": "Execution",
|
|
45
|
-
"instruction": "steps/execute/README.md",
|
|
46
|
-
"produces": ["progress.md"],
|
|
47
|
-
"requires": ["tasks.md"],
|
|
48
|
-
"agents": ["Orchestrator", "Implementer", "Frontend", "Refactor"],
|
|
49
|
-
"description": "Implement all tasks, write code, write tests"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"id": "verify",
|
|
53
|
-
"name": "Verification",
|
|
54
|
-
"instruction": "steps/verify/README.md",
|
|
55
|
-
"produces": ["verify-report.md"],
|
|
56
|
-
"requires": ["progress.md"],
|
|
57
|
-
"agents": [
|
|
58
|
-
"Code-Reviewer-Alpha",
|
|
59
|
-
"Code-Reviewer-Beta",
|
|
60
|
-
"Architect-Reviewer-Alpha",
|
|
61
|
-
"Architect-Reviewer-Beta",
|
|
62
|
-
"Security"
|
|
63
|
-
],
|
|
64
|
-
"description": "Dual code review, architecture review, security review, test validation"
|
|
65
|
-
}
|
|
66
|
-
],
|
|
67
|
-
"artifacts_dir": ".spec",
|
|
68
|
-
"install": []
|
|
69
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "aikit:basic",
|
|
3
|
-
"version": "0.1.0",
|
|
4
|
-
"description": "Quick development flow for bug fixes, small features, and refactoring",
|
|
5
|
-
"steps": [
|
|
6
|
-
{
|
|
7
|
-
"id": "design",
|
|
8
|
-
"name": "Design Gate",
|
|
9
|
-
"instruction": "steps/design/README.md",
|
|
10
|
-
"produces": ["design-decisions.md"],
|
|
11
|
-
"requires": [],
|
|
12
|
-
"agents": ["Researcher-Alpha", "Researcher-Beta", "Researcher-Gamma", "Researcher-Delta"],
|
|
13
|
-
"description": "Evaluate task type, run brainstorming for features, FORGE classification. Auto-skips for bug fixes and refactors."
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"id": "assess",
|
|
17
|
-
"name": "Assessment",
|
|
18
|
-
"instruction": "steps/assess/README.md",
|
|
19
|
-
"produces": ["assessment.md"],
|
|
20
|
-
"requires": ["design-decisions.md"],
|
|
21
|
-
"agents": ["Explorer", "Researcher-Alpha"],
|
|
22
|
-
"description": "Understand scope, analyze codebase, identify approach"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"id": "implement",
|
|
26
|
-
"name": "Implementation",
|
|
27
|
-
"instruction": "steps/implement/README.md",
|
|
28
|
-
"produces": ["progress.md"],
|
|
29
|
-
"requires": ["assessment.md"],
|
|
30
|
-
"agents": ["Implementer", "Frontend"],
|
|
31
|
-
"description": "Write code following the assessment plan"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"id": "verify",
|
|
35
|
-
"name": "Verification",
|
|
36
|
-
"instruction": "steps/verify/README.md",
|
|
37
|
-
"produces": ["verify-report.md"],
|
|
38
|
-
"requires": ["progress.md"],
|
|
39
|
-
"agents": ["Code-Reviewer-Alpha", "Security"],
|
|
40
|
-
"description": "Review code, run tests, validate changes"
|
|
41
|
-
}
|
|
42
|
-
],
|
|
43
|
-
"artifacts_dir": ".spec",
|
|
44
|
-
"install": []
|
|
45
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/scaffold/{general → _preview}/skills/brainstorming/spec-document-reviewer-prompt.md
RENAMED
|
File without changes
|