ai-factory 2.15.0 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/wizard/skill-hints.d.ts.map +1 -1
- package/dist/cli/wizard/skill-hints.js +1 -0
- package/dist/cli/wizard/skill-hints.js.map +1 -1
- package/dist/core/agents.js +2 -2
- package/dist/core/agents.js.map +1 -1
- package/package.json +1 -1
- package/skills/aif/SKILL.md +6 -1
- package/skills/aif/references/config-template.yaml +9 -5
- package/skills/aif-architecture/SKILL.md +60 -19
- package/skills/aif-architecture/references/architecture.md +272 -162
- package/skills/aif-fix/SKILL.md +14 -1
- package/skills/aif-implement/SKILL.md +1 -0
- package/skills/aif-improve/SKILL.md +14 -2
- package/skills/aif-improve/references/CHECK-MODE.md +2 -0
- package/skills/aif-improve/references/EXAMPLES.md +2 -0
- package/skills/aif-improve/references/LIST-MODE.md +2 -0
- package/skills/aif-loop/SKILL.md +1 -1
- package/skills/aif-plan/SKILL.md +11 -3
- package/skills/aif-plan/references/TASK-FORMAT.md +3 -2
- package/skills/aif-qa/SKILL.md +1 -1
- package/skills/aif-qa-check/SKILL.md +247 -0
- package/skills/aif-qa-check/templates/QA-CHECK.md +44 -0
- package/skills/aif-skill-generator/references/SECURITY-SCANNING.md +1 -1
- package/skills/aif-skill-generator/scripts/security-scan.py +3 -3
- package/skills/aif-verify/SKILL.md +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-hints.d.ts","sourceRoot":"","sources":["../../../src/cli/wizard/skill-hints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-hints.d.ts","sourceRoot":"","sources":["../../../src/cli/wizard/skill-hints.ts"],"names":[],"mappings":"AA2CA,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EACpC,aAAa,GAAE,MAAgC,GAChD,MAAM,CAGR"}
|
|
@@ -18,6 +18,7 @@ const SKILL_HINTS = {
|
|
|
18
18
|
'aif-loop': 'Iterative quality refinement loop',
|
|
19
19
|
'aif-plan': 'Plan tasks for feature',
|
|
20
20
|
'aif-qa': 'QA change-summary, test-plan, test-cases',
|
|
21
|
+
'aif-qa-check': 'Execute QA cases with human/browser',
|
|
21
22
|
'aif-reference': 'Create knowledge refs from URLs/docs',
|
|
22
23
|
'aif-review': 'Review staged changes/PR',
|
|
23
24
|
'aif-roadmap': 'Roadmap and milestones',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-hints.js","sourceRoot":"","sources":["../../../src/cli/wizard/skill-hints.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAA2B;IACxC,KAAK,EAAE,mBAAmB;IAC1B,aAAa,EAAE,qCAAqC;IACpD,kBAAkB,EAAE,6BAA6B;IACjD,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,uBAAuB;IAC/C,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,4BAA4B;IAC1C,kBAAkB,EAAE,6BAA6B;IACjD,eAAe,EAAE,0BAA0B;IAC3C,UAAU,EAAE,iCAAiC;IAC7C,YAAY,EAAE,4BAA4B;IAC1C,aAAa,EAAE,2BAA2B;IAC1C,SAAS,EAAE,2BAA2B;IACtC,cAAc,EAAE,+BAA+B;IAC/C,eAAe,EAAE,4BAA4B;IAC7C,aAAa,EAAE,+BAA+B;IAC9C,UAAU,EAAE,mCAAmC;IAC/C,UAAU,EAAE,wBAAwB;IACpC,QAAQ,EAAE,0CAA0C;IACpD,eAAe,EAAE,sCAAsC;IACvD,YAAY,EAAE,0BAA0B;IACxC,aAAa,EAAE,wBAAwB;IACvC,WAAW,EAAE,+BAA+B;IAC5C,iBAAiB,EAAE,+BAA+B;IAClD,wBAAwB,EAAE,0BAA0B;IACpD,qBAAqB,EAAE,2BAA2B;IAClD,YAAY,EAAE,oCAAoC;CACrD,CAAC;AAEF,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AACrD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,SAAS,YAAY,CAAC,IAAY,EAAE,SAAiB;IACjD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,OAAO,GAAG,IAAI,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,OAAe,EACf,UAAoC,EACpC,gBAAwB,uBAAuB;IAE/C,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;IAChE,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"skill-hints.js","sourceRoot":"","sources":["../../../src/cli/wizard/skill-hints.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAA2B;IACxC,KAAK,EAAE,mBAAmB;IAC1B,aAAa,EAAE,qCAAqC;IACpD,kBAAkB,EAAE,6BAA6B;IACjD,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,uBAAuB;IAC/C,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,4BAA4B;IAC1C,kBAAkB,EAAE,6BAA6B;IACjD,eAAe,EAAE,0BAA0B;IAC3C,UAAU,EAAE,iCAAiC;IAC7C,YAAY,EAAE,4BAA4B;IAC1C,aAAa,EAAE,2BAA2B;IAC1C,SAAS,EAAE,2BAA2B;IACtC,cAAc,EAAE,+BAA+B;IAC/C,eAAe,EAAE,4BAA4B;IAC7C,aAAa,EAAE,+BAA+B;IAC9C,UAAU,EAAE,mCAAmC;IAC/C,UAAU,EAAE,wBAAwB;IACpC,QAAQ,EAAE,0CAA0C;IACpD,cAAc,EAAE,qCAAqC;IACrD,eAAe,EAAE,sCAAsC;IACvD,YAAY,EAAE,0BAA0B;IACxC,aAAa,EAAE,wBAAwB;IACvC,WAAW,EAAE,+BAA+B;IAC5C,iBAAiB,EAAE,+BAA+B;IAClD,wBAAwB,EAAE,0BAA0B;IACpD,qBAAqB,EAAE,2BAA2B;IAClD,YAAY,EAAE,oCAAoC;CACrD,CAAC;AAEF,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AACrD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,SAAS,YAAY,CAAC,IAAY,EAAE,SAAiB;IACjD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,OAAO,GAAG,IAAI,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,OAAe,EACf,UAAoC,EACpC,gBAAwB,uBAAuB;IAE/C,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;IAChE,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;AACnD,CAAC"}
|
package/dist/core/agents.js
CHANGED
|
@@ -167,8 +167,8 @@ const BUILTIN_AGENT_REGISTRY = {
|
|
|
167
167
|
displayName: 'Universal / Other',
|
|
168
168
|
configDir: '.agents',
|
|
169
169
|
skillsDir: '.agents/skills',
|
|
170
|
-
settingsFile:
|
|
171
|
-
supportsMcp:
|
|
170
|
+
settingsFile: '.mcp.json',
|
|
171
|
+
supportsMcp: true,
|
|
172
172
|
skillsCliAgent: null,
|
|
173
173
|
source: 'builtin',
|
|
174
174
|
},
|
package/dist/core/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/core/agents.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/core/agents.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skills/aif/SKILL.md
CHANGED
|
@@ -264,6 +264,7 @@ After language resolution and config write, analyze the codebase to detect:
|
|
|
264
264
|
- Naming conventions (camelCase, snake_case, PascalCase)
|
|
265
265
|
- Module boundaries (src/core/, src/cli/, src/utils/)
|
|
266
266
|
- Error handling patterns (try/catch, error codes)
|
|
267
|
+
- Control flow patterns (guard clauses, early returns/continues, nested conditionals)
|
|
267
268
|
- Logging patterns (console.log, winston, pino)
|
|
268
269
|
- Test patterns (jest, mocha, vitest)
|
|
269
270
|
|
|
@@ -289,6 +290,10 @@ Create `.ai-factory/rules/base.md` with detected conventions. Use resolved `lang
|
|
|
289
290
|
|
|
290
291
|
- [detected error handling pattern]
|
|
291
292
|
|
|
293
|
+
## Control Flow
|
|
294
|
+
|
|
295
|
+
- Prefer flat, readable control flow over deeply nested conditionals. Use guard clauses, early `return`/`continue`, small named helper methods, or explicit classification logic when they make the code easier to follow. Handle edge cases and irrelevant branches early so the main path stays visible.
|
|
296
|
+
|
|
292
297
|
## [Localized heading: Logging]
|
|
293
298
|
|
|
294
299
|
- [detected logging pattern]
|
|
@@ -517,7 +522,7 @@ AI Factory writes MCP config to `{{settings_file}}`, but the outer settings shap
|
|
|
517
522
|
|
|
518
523
|
| Runtime | Write under | Entry shape |
|
|
519
524
|
|---------|-------------|-------------|
|
|
520
|
-
| Standard MCP runtimes (Claude Code, Cursor, Roo Code, Kilo Code, Qwen Code) | `mcpServers.<server>` | `{ "command": "...", "args": [...], "env": {...} }` |
|
|
525
|
+
| Standard MCP runtimes (Claude Code, Cursor, Roo Code, Kilo Code, Qwen Code, Universal / Other) | `mcpServers.<server>` | `{ "command": "...", "args": [...], "env": {...} }` |
|
|
521
526
|
| OpenCode | `mcp.<server>` | `{ "type": "local", "command": ["...", "..."], "environment": {...} }` |
|
|
522
527
|
| GitHub Copilot | `servers.<server>` | `{ "type": "stdio", "command": "...", "args": [...], "env": {...} }` |
|
|
523
528
|
| Codex app | `[mcp_servers.<server>]` in `.codex/config.toml` | `command = "..."`, optional `args = [...]`, credential placeholders as `env_vars = ["VAR"]`, literal values under `[mcp_servers.<server>.env]` |
|
|
@@ -107,11 +107,15 @@ paths:
|
|
|
107
107
|
rules: .ai-factory/rules/
|
|
108
108
|
|
|
109
109
|
# QA artifacts root directory
|
|
110
|
-
# /aif-qa stores change-summary, test-plan, and test-cases here
|
|
111
|
-
#
|
|
112
|
-
#
|
|
113
|
-
#
|
|
114
|
-
#
|
|
110
|
+
# /aif-qa stores change-summary, test-plan, and test-cases here.
|
|
111
|
+
# /aif-qa-check stores qa-check.md here and binds execution results to
|
|
112
|
+
# the tested revision/build identifier plus deterministic test-cases
|
|
113
|
+
# digests.
|
|
114
|
+
# Both commands use the same deterministic, filesystem-safe derived
|
|
115
|
+
# branch slug as a subdirectory: <qa>/<branch-slug>/
|
|
116
|
+
# The slug uses mandatory 40-character safe-slug truncation plus a short
|
|
117
|
+
# hash suffix for collision resistance (see skills/aif-qa/SKILL.md for
|
|
118
|
+
# the exact algorithm).
|
|
115
119
|
# Default: .ai-factory/qa/
|
|
116
120
|
qa: .ai-factory/qa/
|
|
117
121
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: aif-architecture
|
|
3
3
|
description: Generate architecture guidelines for the project. Analyzes tech stack from DESCRIPTION.md, recommends an architecture pattern, and creates .ai-factory/ARCHITECTURE.md. Use when setting up project architecture, asking "which architecture", or after /aif setup.
|
|
4
|
-
argument-hint: "[
|
|
4
|
+
argument-hint: "[microservices|layers|structured|structured-layers|structured-vertical|explicit|explicit-layers|explicit-vertical|explicit-flat] (legacy aliases: clean, ddd, monolith, vertical → mapped to explicit or structured)"
|
|
5
5
|
allowed-tools: Read Write Glob Grep Bash(mkdir *) AskUserQuestion Questions
|
|
6
6
|
disable-model-invocation: false
|
|
7
7
|
---
|
|
@@ -64,19 +64,31 @@ codebase conventions, and tech-stack analysis. These rules are tailored to the c
|
|
|
64
64
|
**Enforcement:** After generating any output artifact, verify it against all skill-context rules.
|
|
65
65
|
If any rule is violated — fix the output before presenting it to the user.
|
|
66
66
|
|
|
67
|
-
### Step 1:
|
|
67
|
+
### Step 1: Recommend Architecture
|
|
68
68
|
|
|
69
69
|
Based on project context, evaluate against the decision matrix and recommend an architecture:
|
|
70
70
|
|
|
71
71
|
**If `$ARGUMENTS` specifies an architecture** (e.g., `/aif-architecture explicit`):
|
|
72
|
-
-
|
|
73
|
-
- `
|
|
74
|
-
- `
|
|
75
|
-
- `
|
|
76
|
-
- `
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
72
|
+
- **Direct mapping** (no suffix needed):
|
|
73
|
+
- `layers` → Layered Architecture
|
|
74
|
+
- `microservices` → Microservices
|
|
75
|
+
- `structured` → Structured Modules (ask variant — see below)
|
|
76
|
+
- `explicit` → Explicit Architecture (ask variant — see below)
|
|
77
|
+
- **Legacy aliases** (deprecated, mapped to current patterns — may be removed in future):
|
|
78
|
+
- `clean` → Explicit Architecture
|
|
79
|
+
- `ddd` → Explicit Architecture
|
|
80
|
+
- `monolith` → Structured Modules
|
|
81
|
+
- `vertical` → Explicit Architecture (Vertical Slice By Entity)
|
|
82
|
+
- **With suffix** (variant is determined, no need to ask):
|
|
83
|
+
- `structured-layers` → Structured Modules (Technical Layer)
|
|
84
|
+
- `structured-vertical` → Structured Modules (Vertical Slices By Entity)
|
|
85
|
+
- `explicit-layers` → Explicit Architecture (Technical Layer)
|
|
86
|
+
- `explicit-vertical` → Explicit Architecture (Vertical Slice By Entity)
|
|
87
|
+
- `explicit-flat` → Explicit Architecture (Flat Vertical Slice - Simplified)
|
|
88
|
+
- **Without suffix** (ask user to choose variant):
|
|
89
|
+
- If `structured` is specified without a suffix: ASK the user: "Which folder structure variant do you prefer for Structured Modules? 1. Technical Layer (simpler) or 2. Vertical Slices by Entity (better for large modules)". Wait for their answer before generating the artifact.
|
|
90
|
+
- If `explicit` is specified without a suffix: ASK the user: "Which folder structure variant do you prefer for Explicit Architecture? 1. Technical Layer or 2. Explicit Architecture (Vertical Slice By Entity) or 3. Explicit Architecture (Flat Vertical Slice - Simplified)". Wait for their answer before generating the artifact.
|
|
91
|
+
- Use the resolved architecture directly, skip the recommendation step and proceed to Step 1.5
|
|
80
92
|
|
|
81
93
|
**If no specific architecture requested:**
|
|
82
94
|
- Evaluate the project against the decision matrix (see `references/architecture.md`)
|
|
@@ -97,15 +109,34 @@ Which architecture pattern should we use?
|
|
|
97
109
|
```
|
|
98
110
|
|
|
99
111
|
Architecture options:
|
|
100
|
-
- **Structured Modules (Technical
|
|
101
|
-
- **Structured Modules (Vertical Slices
|
|
102
|
-
- **Explicit Architecture (Technical
|
|
103
|
-
- **Explicit Architecture (Vertical
|
|
104
|
-
- **
|
|
105
|
-
- **
|
|
112
|
+
- **Structured Modules (Technical Layer)**
|
|
113
|
+
- **Structured Modules (Vertical Slices By Entity)**
|
|
114
|
+
- **Explicit Architecture (Technical Layer)**
|
|
115
|
+
- **Explicit Architecture (Vertical Slice By Entity)**
|
|
116
|
+
- **Explicit Architecture (Flat Vertical Slice - Simplified)**
|
|
117
|
+
- **Microservices**
|
|
118
|
+
- **Layered Architecture**
|
|
119
|
+
(See `references/architecture.md` for detailed descriptions of these patterns to formulate your recommendation).
|
|
106
120
|
|
|
107
121
|
**CRITICAL INSTRUCTION:** You MUST read `references/architecture.md` before generating the `ARCHITECTURE.md` artifact to ensure correct terminology, dependency directions.
|
|
108
122
|
|
|
123
|
+
### Step 1.5: Codebase Alignment Check
|
|
124
|
+
|
|
125
|
+
**CRITICAL:** Before generating the document, compare the chosen architecture's ideal folder structure (from `references/architecture.md`) against the actual existing codebase structure.
|
|
126
|
+
|
|
127
|
+
- If the project is empty or mostly matches: proceed to Step 2.
|
|
128
|
+
- **If there are significant discrepancies:** DO NOT silently merge the ideal architecture with the messy reality. You MUST stop and ask the user how to proceed via `AskUserQuestion`:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
The current project structure differs significantly from the ideal [Pattern Name] architecture.
|
|
132
|
+
[Briefly list 1-2 major differences]
|
|
133
|
+
|
|
134
|
+
How should we generate the ARCHITECTURE.md?
|
|
135
|
+
1. Adapt the guidelines to fit the existing application structure (document reality).
|
|
136
|
+
2. Generate the pure, strict architecture guidelines (requires refactoring the application later to match).
|
|
137
|
+
```
|
|
138
|
+
Wait for their decision before proceeding to Step 2.
|
|
139
|
+
|
|
109
140
|
### Step 2: Generate the Architecture Artifact
|
|
110
141
|
|
|
111
142
|
Create the parent directory for the resolved architecture path if needed.
|
|
@@ -145,6 +176,18 @@ Generate the resolved architecture artifact (default: `.ai-factory/ARCHITECTURE.
|
|
|
145
176
|
2. [Principle 2]
|
|
146
177
|
3. [Principle 3]
|
|
147
178
|
|
|
179
|
+
[If the user chose Option 2 (strict architecture) in Step 1.5, add the following section:]
|
|
180
|
+
## Legacy vs New Code Policy
|
|
181
|
+
- **New Features:** All new code MUST strictly follow the architecture defined in this document.
|
|
182
|
+
- **Legacy Code Modification:** Do NOT automatically refactor unrelated legacy code to fit this architecture. Touch legacy code only when necessary for bug fixes, when tasked with explicit refactoring, or when adapting it to be consumed by new features.
|
|
183
|
+
- **Interoperability:** When new code must call legacy code, isolate the interaction using adapters, interfaces, or facades so that legacy patterns do not pollute the new architecture.
|
|
184
|
+
|
|
185
|
+
[If the user chose Option 1 (adapt to reality) in Step 1.5, add the following lighter section:]
|
|
186
|
+
## Code Organization Note
|
|
187
|
+
- **New Features:** All new code should follow the architecture defined in this document where practical.
|
|
188
|
+
- **Existing Code:** Document the current structure as-is. When modifying existing code, prefer following the architectural conventions in this document, but do not force a rewrite of unrelated code.
|
|
189
|
+
- **Interoperability:** When new code must call existing code, prefer clean interfaces but do not refactor purely for structural alignment.
|
|
190
|
+
|
|
148
191
|
## Code Examples
|
|
149
192
|
|
|
150
193
|
### [Example 1 title]
|
|
@@ -166,7 +209,7 @@ Generate the resolved architecture artifact (default: `.ai-factory/ARCHITECTURE.
|
|
|
166
209
|
- Adapt ALL examples to the project's language and framework (don't use TypeScript examples for a Go project)
|
|
167
210
|
- Use the project's actual conventions (import paths, naming, etc.)
|
|
168
211
|
- Keep it practical — focus on rules that affect day-to-day development
|
|
169
|
-
-
|
|
212
|
+
- Base the generated folder structure on the user's decision in Step 1.5 (either adapted to reality or strict pure architecture). Do not automatically merge them without user consent.
|
|
170
213
|
|
|
171
214
|
### Step 3: Update DESCRIPTION.md
|
|
172
215
|
|
|
@@ -215,5 +258,3 @@ Present the confirmation in resolved `language.ui` and report the resolved archi
|
|
|
215
258
|
- Read-only context: roadmap, rules, research, and plan artifacts unless user explicitly requests otherwise.
|
|
216
259
|
|
|
217
260
|
---
|
|
218
|
-
|
|
219
|
-
---
|