ai-factory 2.5.0 โ 2.6.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/README.md +2 -4
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +109 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +19 -0
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/package.json +1 -1
- package/skills/aif-evolve/SKILL.md +82 -5
- package/skills/aif-fix/SKILL.md +12 -8
- package/skills/aif-implement/SKILL.md +16 -12
- package/skills/aif-improve/SKILL.md +9 -8
- package/skills/aif-plan/SKILL.md +18 -3
- package/skills/aif-verify/references/CONTEXT-GATES-AND-OWNERSHIP.md +15 -15
package/README.md
CHANGED
|
@@ -84,15 +84,13 @@ npx ai-factory init
|
|
|
84
84
|
### Upgrading from v1 to v2
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
|
-
# 1) Update the CLI package
|
|
88
|
-
npm install -g ai-factory@latest
|
|
89
|
-
|
|
90
|
-
# 2) Migrate existing skills to v2 naming
|
|
91
87
|
ai-factory upgrade
|
|
92
88
|
```
|
|
93
89
|
|
|
94
90
|
`ai-factory upgrade` removes old bare-named skills (`commit`, `feature`, etc.) and installs new `aif-*` prefixed versions. Custom skills are preserved.
|
|
95
91
|
|
|
92
|
+
> **Note:** `ai-factory update` automatically checks npm for a newer CLI version and offers to install it before updating skills. You no longer need to run `npm install -g ai-factory@latest` manually.
|
|
93
|
+
|
|
96
94
|
### Example Workflow
|
|
97
95
|
|
|
98
96
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAoHA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA6JnD"}
|
|
@@ -1,10 +1,116 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import path from 'path';
|
|
3
|
+
import { realpathSync } from 'fs';
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
import inquirer from 'inquirer';
|
|
3
6
|
import { getCurrentVersion, loadConfig, saveConfig } from '../../core/config.js';
|
|
4
7
|
import { getAvailableSkills, partitionSkills, updateSkills } from '../../core/installer.js';
|
|
5
8
|
import { applyExtensionInjections } from '../../core/injections.js';
|
|
6
9
|
import { getExtensionsDir, loadExtensionManifest } from '../../core/extensions.js';
|
|
7
10
|
import { installExtensionSkillsForAllAgents, installSkillsForAllAgents, collectReplacedSkills, } from '../../core/extension-ops.js';
|
|
11
|
+
function parseVersion(v) {
|
|
12
|
+
const [core, ...rest] = v.split('-');
|
|
13
|
+
return {
|
|
14
|
+
parts: core.split('.').map(Number),
|
|
15
|
+
prerelease: rest.length > 0 ? rest.join('-') : null,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function isNewerVersion(latest, current) {
|
|
19
|
+
const l = parseVersion(latest);
|
|
20
|
+
const c = parseVersion(current);
|
|
21
|
+
for (let i = 0; i < 3; i++) {
|
|
22
|
+
if ((l.parts[i] ?? 0) > (c.parts[i] ?? 0))
|
|
23
|
+
return true;
|
|
24
|
+
if ((l.parts[i] ?? 0) < (c.parts[i] ?? 0))
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
// Equal major.minor.patch: prerelease is older than stable (semver ยง11)
|
|
28
|
+
if (c.prerelease && !l.prerelease)
|
|
29
|
+
return true;
|
|
30
|
+
if (!c.prerelease && l.prerelease)
|
|
31
|
+
return false;
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
async function getLatestVersion() {
|
|
35
|
+
try {
|
|
36
|
+
const response = await fetch('https://registry.npmjs.org/ai-factory/latest', {
|
|
37
|
+
signal: AbortSignal.timeout(5000),
|
|
38
|
+
});
|
|
39
|
+
if (!response.ok)
|
|
40
|
+
return null;
|
|
41
|
+
const data = await response.json();
|
|
42
|
+
if (!/^\d+\.\d+\.\d+(-[\w.]+)?$/.test(data.version))
|
|
43
|
+
return null;
|
|
44
|
+
return data.version;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function getInstallCommand(version) {
|
|
51
|
+
try {
|
|
52
|
+
const whichCmd = process.platform === 'win32' ? 'where' : 'which';
|
|
53
|
+
const binPath = execSync(`${whichCmd} ai-factory`, {
|
|
54
|
+
encoding: 'utf-8',
|
|
55
|
+
timeout: 5000,
|
|
56
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
57
|
+
}).split('\n')[0].trim();
|
|
58
|
+
const realPath = realpathSync(binPath).replaceAll('\\', '/');
|
|
59
|
+
if (realPath.includes('.bun/'))
|
|
60
|
+
return `bun add -g ai-factory@${version}`;
|
|
61
|
+
if (realPath.includes('/mise/'))
|
|
62
|
+
return `mise use -g npm:ai-factory@${version}`;
|
|
63
|
+
if (realPath.includes('/volta/'))
|
|
64
|
+
return `volta install ai-factory@${version}`;
|
|
65
|
+
if (realPath.includes('/pnpm/'))
|
|
66
|
+
return `pnpm add -g ai-factory@${version}`;
|
|
67
|
+
if (realPath.includes('/yarn/'))
|
|
68
|
+
return `yarn global add ai-factory@${version}`;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Binary not found or symlink resolution failed, default to npm
|
|
72
|
+
}
|
|
73
|
+
return `npm install -g ai-factory@${version}`;
|
|
74
|
+
}
|
|
75
|
+
async function selfUpdate(currentVersion) {
|
|
76
|
+
const latestVersion = await getLatestVersion();
|
|
77
|
+
if (!latestVersion) {
|
|
78
|
+
console.log(chalk.dim('Could not check for new versions\n'));
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (!isNewerVersion(latestVersion, currentVersion)) {
|
|
82
|
+
console.log(chalk.dim('ai-factory is up to date\n'));
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
console.log(chalk.cyan(`๐ฆ New version available: ${currentVersion} โ ${latestVersion}`));
|
|
86
|
+
if (!process.stdin.isTTY) {
|
|
87
|
+
console.log(chalk.dim('Non-interactive mode โ skipping self-update\n'));
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
const { shouldUpdate } = await inquirer.prompt([{
|
|
91
|
+
type: 'confirm',
|
|
92
|
+
name: 'shouldUpdate',
|
|
93
|
+
message: `Update ai-factory to ${latestVersion}?`,
|
|
94
|
+
default: true,
|
|
95
|
+
}]);
|
|
96
|
+
if (!shouldUpdate) {
|
|
97
|
+
console.log(chalk.dim('Skipping package update\n'));
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const installCmd = getInstallCommand(latestVersion);
|
|
102
|
+
console.log(chalk.dim(`\n$ ${installCmd}`));
|
|
103
|
+
execSync(installCmd, { stdio: 'inherit' });
|
|
104
|
+
console.log(chalk.green(`\nโ Updated to ${latestVersion}`));
|
|
105
|
+
console.log(chalk.cyan('Please re-run `ai-factory update` to update skills with the new version.\n'));
|
|
106
|
+
process.exitCode = 75; // EX_TEMPFAIL โ signals caller to re-run
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.log(chalk.yellow(`โ Self-update failed: ${error.message}`));
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
8
114
|
export async function updateCommand() {
|
|
9
115
|
const projectDir = process.cwd();
|
|
10
116
|
console.log(chalk.bold.blue('\n๐ญ AI Factory - Update Skills\n'));
|
|
@@ -17,6 +123,9 @@ export async function updateCommand() {
|
|
|
17
123
|
const currentVersion = getCurrentVersion();
|
|
18
124
|
console.log(chalk.dim(`Config version: ${config.version}`));
|
|
19
125
|
console.log(chalk.dim(`Package version: ${currentVersion}\n`));
|
|
126
|
+
const selfUpdated = await selfUpdate(currentVersion);
|
|
127
|
+
if (selfUpdated)
|
|
128
|
+
return;
|
|
20
129
|
console.log(chalk.dim('Updating skills...\n'));
|
|
21
130
|
try {
|
|
22
131
|
const availableSkills = await getAvailableSkills();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAuGA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAuGA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAwIpD"}
|
|
@@ -98,9 +98,13 @@ export async function upgradeCommand() {
|
|
|
98
98
|
process.exit(1);
|
|
99
99
|
}
|
|
100
100
|
// Step 1: Migrate legacy plan directories to .ai-factory/plans/
|
|
101
|
+
// Also ensure newer v2 working directories exist.
|
|
102
|
+
const aiFactoryDir = path.join(projectDir, '.ai-factory');
|
|
101
103
|
const featuresDir = path.join(projectDir, '.ai-factory', 'features');
|
|
102
104
|
const changesDir = path.join(projectDir, '.ai-factory', 'changes');
|
|
103
105
|
const plansDir = path.join(projectDir, '.ai-factory', 'plans');
|
|
106
|
+
const evolutionsDir = path.join(aiFactoryDir, 'evolutions');
|
|
107
|
+
const skillContextDir = path.join(aiFactoryDir, 'skill-context');
|
|
104
108
|
if (await fileExists(changesDir) && !(await fileExists(plansDir))) {
|
|
105
109
|
await fs.move(changesDir, plansDir);
|
|
106
110
|
console.log(chalk.green('โ Renamed .ai-factory/changes/ โ .ai-factory/plans/\n'));
|
|
@@ -109,6 +113,21 @@ export async function upgradeCommand() {
|
|
|
109
113
|
await fs.move(featuresDir, plansDir);
|
|
110
114
|
console.log(chalk.green('โ Renamed .ai-factory/features/ โ .ai-factory/plans/\n'));
|
|
111
115
|
}
|
|
116
|
+
// Newer v2 structure used by /aif-evolve for incremental patch processing.
|
|
117
|
+
await fs.ensureDir(evolutionsDir);
|
|
118
|
+
await fs.ensureDir(skillContextDir);
|
|
119
|
+
const legacyCursorPath = path.join(aiFactoryDir, 'patch-cursor.json');
|
|
120
|
+
const cursorPath = path.join(evolutionsDir, 'patch-cursor.json');
|
|
121
|
+
if (await fileExists(legacyCursorPath)) {
|
|
122
|
+
if (!(await fileExists(cursorPath))) {
|
|
123
|
+
await fs.move(legacyCursorPath, cursorPath);
|
|
124
|
+
console.log(chalk.green('โ Moved .ai-factory/patch-cursor.json โ .ai-factory/evolutions/patch-cursor.json\n'));
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
await removeFile(legacyCursorPath);
|
|
128
|
+
console.log(chalk.yellow(' WARN: Both cursor files existed; removed .ai-factory/patch-cursor.json and kept .ai-factory/evolutions/patch-cursor.json as source of truth\n'));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
112
131
|
const availableSkills = await getAvailableSkills();
|
|
113
132
|
for (const agent of config.agents) {
|
|
114
133
|
const agentConfig = getAgentConfig(agent.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -20,6 +20,18 @@ analyze recurring problems, tech-specific pitfalls, project conventions
|
|
|
20
20
|
enhance skills with project-specific rules, guards, and patterns
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
## Patch Consumption Policy
|
|
24
|
+
|
|
25
|
+
Use a two-layer learning model:
|
|
26
|
+
|
|
27
|
+
1. **Raw patches** (`.ai-factory/patches/*.md`) are the source material.
|
|
28
|
+
2. **Skill-context rules** (`.ai-factory/skill-context/*`) are the compact, reusable output.
|
|
29
|
+
|
|
30
|
+
Policy across workflow skills:
|
|
31
|
+
- `/aif-evolve` is the primary raw-patch analyzer. It processes patches **incrementally** using a cursor.
|
|
32
|
+
- `/aif-implement`, `/aif-fix`, and `/aif-improve` should prefer skill-context first; raw patches are fallback context only.
|
|
33
|
+
- Force full re-analysis only when needed (e.g., reset cursor and rerun evolve).
|
|
34
|
+
|
|
23
35
|
## Critical: Never Edit Built-in Skills Directly
|
|
24
36
|
|
|
25
37
|
**NEVER modify any files inside built-in `aif-*` skill directories** (`skills/aif-*/`).
|
|
@@ -97,12 +109,49 @@ If any rule is violated โ fix the output before presenting it to the user.
|
|
|
97
109
|
|
|
98
110
|
### Step 1: Collect Intelligence
|
|
99
111
|
|
|
100
|
-
**1.1: Read
|
|
112
|
+
**1.1: Read patches incrementally (cursor-based)**
|
|
101
113
|
|
|
102
114
|
```
|
|
103
115
|
Glob: .ai-factory/patches/*.md
|
|
104
116
|
```
|
|
105
117
|
|
|
118
|
+
Cursor file:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
.ai-factory/evolutions/patch-cursor.json
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Recommended shape:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"last_processed_patch": "YYYY-MM-DD-HH.mm.md",
|
|
129
|
+
"updated_at": "YYYY-MM-DD HH:mm"
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Processing rules:
|
|
134
|
+
|
|
135
|
+
1. Glob patch files and sort by filename ascending (timestamp format is lexical-friendly).
|
|
136
|
+
2. If no cursor file exists โ first run: read all patches.
|
|
137
|
+
3. If cursor file exists and referenced patch is present โ read only patches with filename `>` `last_processed_patch`.
|
|
138
|
+
4. If cursor file exists but referenced patch is missing (deleted/renamed) โ emit `WARN [evolve]` and do a full rescan.
|
|
139
|
+
5. Historical edits/deletes for patches older than cursor are not reliably detectable without a saved baseline (snapshot/hash manifest). Do NOT emit this warning by default.
|
|
140
|
+
6. Emit `WARN [evolve]` for historical drift only when a reliable baseline exists and drift is actually detected.
|
|
141
|
+
7. Full rescan procedure: delete `.ai-factory/evolutions/patch-cursor.json`, then run `/aif-evolve` again.
|
|
142
|
+
8. **Do not advance cursor in Step 1.1.** Cursor is updated only after successful apply/log write in Step 7.3.
|
|
143
|
+
|
|
144
|
+
**Overlap window (anti-miss guard):**
|
|
145
|
+
|
|
146
|
+
LLMs may miss prevention points on a single pass. To reduce the chance of "permanently skipping" a patch when running incrementally:
|
|
147
|
+
|
|
148
|
+
9. When running in incremental mode (cursor exists and referenced patch is present), ALSO read the newest 5 patches by filename (tail-5 of the sorted patch list), then de-duplicate by filename.
|
|
149
|
+
10. Track these separately in your own notes:
|
|
150
|
+
- "New patches" = patches with filename `>` `last_processed_patch`
|
|
151
|
+
- "Overlap patches" = tail-5 patches
|
|
152
|
+
- "Processed patches" = union(New, Overlap)
|
|
153
|
+
11. Cursor updates in Step 7.3 MUST be based on "New patches" only (never advance cursor when only overlap patches were processed).
|
|
154
|
+
|
|
106
155
|
Read every patch. For each one, extract:
|
|
107
156
|
- **Problem categories** (null-check, async, validation, types, API, DB, etc.)
|
|
108
157
|
- **Root cause patterns** (what classes of mistake were made)
|
|
@@ -112,7 +161,7 @@ Read every patch. For each one, extract:
|
|
|
112
161
|
- **Tags**
|
|
113
162
|
|
|
114
163
|
**Build a Prevention Point Registry** โ a flat list of ALL extracted prevention points across
|
|
115
|
-
|
|
164
|
+
the processed patch set in this run. This registry is the primary input for Step 5 gap analysis.
|
|
116
165
|
|
|
117
166
|
```
|
|
118
167
|
| # | Patch | Prevention Point (specific action) | Target Skill(s) |
|
|
@@ -126,6 +175,8 @@ all patches. This registry is the primary input for Step 5 gap analysis.
|
|
|
126
175
|
If a prevention point targets 2 skills, it appears once but with both skills listed โ
|
|
127
176
|
and EACH skill must be checked independently in Step 5.
|
|
128
177
|
|
|
178
|
+
When the run is incremental, this registry reflects the processed patch set for this run (new + overlap). Use full rescan when you need full historical backfill.
|
|
179
|
+
|
|
129
180
|
**1.2: Aggregate patterns**
|
|
130
181
|
|
|
131
182
|
Group patches by tags and categories. Identify:
|
|
@@ -291,6 +342,8 @@ of the existing rule against each prevention point individually.
|
|
|
291
342
|
**Verification:** After completing the registry scan, count: total prevention points,
|
|
292
343
|
covered, uncovered. If uncovered > 0 โ these are gaps for Step 6.
|
|
293
344
|
|
|
345
|
+
Note: in incremental mode, counts represent this run's processed patch set. For full historical recount, run a full rescan.
|
|
346
|
+
|
|
294
347
|
**5.2: Tech-stack gaps**
|
|
295
348
|
|
|
296
349
|
Compare project tech stack against skill instructions:
|
|
@@ -376,7 +429,10 @@ Based on:
|
|
|
376
429
|
|
|
377
430
|
**After presenting the full report, use `AskUserQuestion` to collect decisions:**
|
|
378
431
|
|
|
379
|
-
For improvements โ ask:
|
|
432
|
+
For improvements โ ask:
|
|
433
|
+
- Yes, apply all improvements
|
|
434
|
+
- Let me pick
|
|
435
|
+
- No, just save report (no changes applied)
|
|
380
436
|
|
|
381
437
|
**If user chooses "Let me pick":** present improvements in batches of up to 4
|
|
382
438
|
per `AskUserQuestion` call (same approach as Step 4 stale rules). For each
|
|
@@ -440,6 +496,27 @@ Create `.ai-factory/evolutions/YYYY-MM-DD-HH.mm.md`:
|
|
|
440
496
|
mkdir -p .ai-factory/evolutions
|
|
441
497
|
```
|
|
442
498
|
|
|
499
|
+
After saving the evolution log, update cursor state:
|
|
500
|
+
|
|
501
|
+
Definitions:
|
|
502
|
+
- "New patches processed" = patches with filename `>` `last_processed_patch`.
|
|
503
|
+
- If no cursor exists (first run): "New patches" is the full patch list.
|
|
504
|
+
- Overlap patches do NOT count as "New patches".
|
|
505
|
+
- "Improvements applied" = at least one approved improvement was written to disk
|
|
506
|
+
(skill-context updated and/or custom skill SKILL.md edited).
|
|
507
|
+
|
|
508
|
+
Cursor update rules:
|
|
509
|
+
|
|
510
|
+
1. If no new patches were processed, keep cursor unchanged.
|
|
511
|
+
2. If new patches were processed:
|
|
512
|
+
- If improvements were applied: advance the cursor to the newest "New patch" filename.
|
|
513
|
+
- If no improvements were applied (e.g., user chose "No, just save report" or skipped all):
|
|
514
|
+
- Do NOT advance cursor by default.
|
|
515
|
+
- Ask the user whether to advance cursor anyway.
|
|
516
|
+
- Recommended: keep cursor unchanged to allow reruns (LLMs may miss prevention points).
|
|
517
|
+
- If the user explicitly chooses to advance anyway, write the cursor as usual.
|
|
518
|
+
3. If execution fails before changes are finalized, do not advance cursor.
|
|
519
|
+
|
|
443
520
|
```markdown
|
|
444
521
|
# Evolution: YYYY-MM-DD HH:mm
|
|
445
522
|
|
|
@@ -481,7 +558,7 @@ Improvements applied: Y
|
|
|
481
558
|
|
|
482
559
|
### Context Cleanup
|
|
483
560
|
|
|
484
|
-
After completing evolution, suggest `/clear` or `/compact` โ context is heavy after
|
|
561
|
+
After completing evolution, suggest `/clear` or `/compact` โ context is heavy after patch analysis and skill processing.
|
|
485
562
|
|
|
486
563
|
## Rules
|
|
487
564
|
|
|
@@ -499,7 +576,7 @@ After completing evolution, suggest `/clear` or `/compact` โ context is heavy
|
|
|
499
576
|
Merges in Step 7 (combining narrow rules into a broader one) are allowed as long
|
|
500
577
|
as all prevention points are preserved in the merged rule.
|
|
501
578
|
12. **Installed only** โ do not evolve skills not installed in the project
|
|
502
|
-
13. **Ownership boundary** โ this command owns `.ai-factory/evolutions/*.md
|
|
579
|
+
13. **Ownership boundary** โ this command owns `.ai-factory/evolutions/*.md`, `.ai-factory/evolutions/patch-cursor.json`, and `.ai-factory/skill-context/*`; treat roadmap/rules/research/plan artifacts as read-only context unless explicitly asked
|
|
503
580
|
|
|
504
581
|
## Example
|
|
505
582
|
|
package/skills/aif-fix/SKILL.md
CHANGED
|
@@ -19,7 +19,8 @@ Fix a specific bug or problem in the codebase. Supports two modes: immediate fix
|
|
|
19
19
|
**If the file EXISTS:**
|
|
20
20
|
- Read `.ai-factory/FIX_PLAN.md`
|
|
21
21
|
- Inform the user: "Found existing fix plan. Executing fix based on the plan."
|
|
22
|
-
-
|
|
22
|
+
- Skip **Step 1** (problem intake/mode choice), but still run **Step 0.1** to load context
|
|
23
|
+
- Then continue to **Step 2: Investigate the Codebase**, using the plan as your guide
|
|
23
24
|
- Follow each step of the plan sequentially
|
|
24
25
|
- After the fix is fully applied and verified, **delete** `.ai-factory/FIX_PLAN.md`:
|
|
25
26
|
```bash
|
|
@@ -41,13 +42,6 @@ Fix a specific bug or problem in the codebase. Supports two modes: immediate fix
|
|
|
41
42
|
- Project architecture
|
|
42
43
|
- Coding conventions
|
|
43
44
|
|
|
44
|
-
**Read all patches from `.ai-factory/patches/`** if the directory exists:
|
|
45
|
-
- Use `Glob` to find all `*.md` files in `.ai-factory/patches/`
|
|
46
|
-
- Read each patch file to learn from past fixes
|
|
47
|
-
- Pay attention to recurring patterns, root causes, and solutions
|
|
48
|
-
- If the current problem resembles a past patch โ apply the same approach or avoid the same mistakes
|
|
49
|
-
- This is your accumulated experience. Use it.
|
|
50
|
-
|
|
51
45
|
**Read `.ai-factory/skill-context/aif-fix/SKILL.md`** โ MANDATORY if the file exists.
|
|
52
46
|
|
|
53
47
|
This file contains project-specific rules accumulated by `/aif-evolve` from patches,
|
|
@@ -68,6 +62,16 @@ codebase conventions, and tech-stack analysis. These rules are tailored to the c
|
|
|
68
62
|
**Enforcement:** After generating any output artifact, verify it against all skill-context rules.
|
|
69
63
|
If any rule is violated โ fix the output before presenting it to the user.
|
|
70
64
|
|
|
65
|
+
**Patch fallback (limited, only when skill-context is missing):**
|
|
66
|
+
|
|
67
|
+
- If `.ai-factory/skill-context/aif-fix/SKILL.md` does not exist and `.ai-factory/patches/` exists:
|
|
68
|
+
- Use `Glob` to find `*.md` files in `.ai-factory/patches/`
|
|
69
|
+
- Sort patch filenames ascending (lexical), then select the last **10** (or fewer if less exist)
|
|
70
|
+
- Read those selected patch files only
|
|
71
|
+
- Prioritize recurring **Root Cause** and **Prevention** patterns
|
|
72
|
+
- If skill-context exists, do **not** read all patches by default.
|
|
73
|
+
- Optionally inspect a small, targeted subset of recent patches when tags/files clearly match the current bug.
|
|
74
|
+
|
|
71
75
|
### Step 1: Understand the Problem & Choose Mode
|
|
72
76
|
|
|
73
77
|
From `$ARGUMENTS`, identify:
|
|
@@ -131,18 +131,6 @@ Based on choice:
|
|
|
131
131
|
- **ALWAYS follow these rules** when implementing โ they override general patterns
|
|
132
132
|
- Rules are short, actionable โ treat each as a hard requirement
|
|
133
133
|
|
|
134
|
-
**Read all patches from `.ai-factory/patches/`** if the directory exists:
|
|
135
|
-
- Use `Glob` to find all `*.md` files in `.ai-factory/patches/`
|
|
136
|
-
- Read each patch to learn from past fixes and mistakes
|
|
137
|
-
- Apply lessons learned: avoid patterns that caused bugs, use patterns that prevented them
|
|
138
|
-
- Pay attention to **Root Cause** and **Prevention** sections โ they tell you what NOT to do
|
|
139
|
-
|
|
140
|
-
**Use this context when implementing:**
|
|
141
|
-
- Follow the specified tech stack
|
|
142
|
-
- Use correct import patterns and conventions
|
|
143
|
-
- Apply proper error handling and logging as specified
|
|
144
|
-
- **Avoid pitfalls documented in patches** โ don't repeat past mistakes
|
|
145
|
-
|
|
146
134
|
**Read `.ai-factory/skill-context/aif-implement/SKILL.md`** โ MANDATORY if the file exists.
|
|
147
135
|
|
|
148
136
|
This file contains project-specific rules accumulated by `/aif-evolve` from patches,
|
|
@@ -163,6 +151,22 @@ codebase conventions, and tech-stack analysis. These rules are tailored to the c
|
|
|
163
151
|
**Enforcement:** After generating any output artifact, verify it against all skill-context rules.
|
|
164
152
|
If any rule is violated โ fix the output before presenting it to the user.
|
|
165
153
|
|
|
154
|
+
**Patch fallback (limited, only when skill-context is missing):**
|
|
155
|
+
|
|
156
|
+
- If `.ai-factory/skill-context/aif-implement/SKILL.md` does not exist and `.ai-factory/patches/` exists:
|
|
157
|
+
- Use `Glob` to find `*.md` files in `.ai-factory/patches/`
|
|
158
|
+
- Sort patch filenames ascending (lexical), then select the last **10** (or fewer if less exist)
|
|
159
|
+
- Read those selected patch files only
|
|
160
|
+
- Prioritize **Root Cause** and **Prevention** sections
|
|
161
|
+
- If skill-context exists, do **not** read all patches by default.
|
|
162
|
+
- Optionally read a few targeted recent patches only when a task clearly matches a known failure pattern.
|
|
163
|
+
|
|
164
|
+
**Use this context when implementing:**
|
|
165
|
+
- Follow the specified tech stack
|
|
166
|
+
- Use correct import patterns and conventions
|
|
167
|
+
- Apply proper error handling and logging as specified
|
|
168
|
+
- Avoid pitfalls documented in skill-context rules and relevant fallback patches
|
|
169
|
+
|
|
166
170
|
### Step 0.1: Find Plan File
|
|
167
171
|
|
|
168
172
|
**If `$ARGUMENTS` contains `@<path>`:**
|
|
@@ -108,16 +108,17 @@ Read `.ai-factory/DESCRIPTION.md` if it exists:
|
|
|
108
108
|
- Conventions
|
|
109
109
|
- Non-functional requirements
|
|
110
110
|
|
|
111
|
-
**1.3: Read patches (
|
|
111
|
+
**1.3: Read patches (limited fallback)**
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
Glob: .ai-factory/patches/*.md
|
|
115
|
-
```
|
|
113
|
+
Use patches as fallback context, not the default source:
|
|
116
114
|
|
|
117
|
-
If
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
115
|
+
- If `.ai-factory/skill-context/aif-improve/SKILL.md` does not exist and `.ai-factory/patches/` exists:
|
|
116
|
+
- `Glob: .ai-factory/patches/*.md`
|
|
117
|
+
- Sort patch filenames ascending (lexical), then select the last **10** (or fewer if less exist)
|
|
118
|
+
- Read those selected patch files only
|
|
119
|
+
- Focus on reusable Prevention/Root Cause patterns that affect planning quality
|
|
120
|
+
- If skill-context exists, do **not** read all patches by default.
|
|
121
|
+
- Optionally inspect a small targeted subset when refining around a known recurring issue.
|
|
121
122
|
|
|
122
123
|
**Read `.ai-factory/skill-context/aif-improve/SKILL.md`** โ MANDATORY if the file exists.
|
|
123
124
|
|
package/skills/aif-plan/SKILL.md
CHANGED
|
@@ -227,13 +227,29 @@ Copy context files so the worktree has full AI context:
|
|
|
227
227
|
```bash
|
|
228
228
|
WORKTREE="../${DIRNAME}-<branch-name-with-hyphens>"
|
|
229
229
|
|
|
230
|
+
# Ensure AI Factory directories exist before copy operations
|
|
231
|
+
mkdir -p "${WORKTREE}/.ai-factory"
|
|
232
|
+
mkdir -p "${WORKTREE}/.ai-factory/plans"
|
|
233
|
+
mkdir -p "${WORKTREE}/.ai-factory/patches"
|
|
234
|
+
mkdir -p "${WORKTREE}/.ai-factory/evolutions"
|
|
235
|
+
|
|
230
236
|
# Project context
|
|
231
237
|
cp .ai-factory/DESCRIPTION.md "${WORKTREE}/.ai-factory/DESCRIPTION.md" 2>/dev/null
|
|
232
238
|
cp .ai-factory/ARCHITECTURE.md "${WORKTREE}/.ai-factory/ARCHITECTURE.md" 2>/dev/null
|
|
233
239
|
cp .ai-factory/RESEARCH.md "${WORKTREE}/.ai-factory/RESEARCH.md" 2>/dev/null
|
|
234
240
|
|
|
235
|
-
#
|
|
236
|
-
cp -r .ai-factory/
|
|
241
|
+
# Skill-context (primary learning context)
|
|
242
|
+
cp -r .ai-factory/skill-context/ "${WORKTREE}/.ai-factory/skill-context/" 2>/dev/null
|
|
243
|
+
|
|
244
|
+
# Note: do not copy patch-cursor.json into a truncated patch set.
|
|
245
|
+
# The parallel worktree copies only a limited number of patches for fallback context.
|
|
246
|
+
# Copying the evolve cursor without the full patch history can cause /aif-evolve to skip patches
|
|
247
|
+
# or trigger a partial rescan.
|
|
248
|
+
|
|
249
|
+
# Limited patch fallback: copy only recent patches (latest 10 by filename)
|
|
250
|
+
for patch in $(ls -1 .ai-factory/patches/*.md 2>/dev/null | sort | tail -n 10); do
|
|
251
|
+
cp "${patch}" "${WORKTREE}/.ai-factory/patches/"
|
|
252
|
+
done
|
|
237
253
|
|
|
238
254
|
# Agent skills + settings
|
|
239
255
|
cp -r .claude/ "${WORKTREE}/.claude/" 2>/dev/null
|
|
@@ -247,7 +263,6 @@ fi
|
|
|
247
263
|
Create changes directory and switch:
|
|
248
264
|
|
|
249
265
|
```bash
|
|
250
|
-
mkdir -p "${WORKTREE}/.ai-factory/plans"
|
|
251
266
|
cd "${WORKTREE}"
|
|
252
267
|
```
|
|
253
268
|
|
|
@@ -7,21 +7,21 @@ Canonical contract for AI Factory workflow commands. This file defines:
|
|
|
7
7
|
|
|
8
8
|
## Command-to-Artifact Matrix
|
|
9
9
|
|
|
10
|
-
| Command | Primary write ownership
|
|
11
|
-
|
|
12
|
-
| `aif` | `.ai-factory/DESCRIPTION.md`, `AGENTS.md` (setup map), skill installation and MCP config
|
|
13
|
-
| `aif-architecture` | `.ai-factory/ARCHITECTURE.md`
|
|
14
|
-
| `aif-roadmap` | `.ai-factory/ROADMAP.md`
|
|
15
|
-
| `aif-rules` | `.ai-factory/RULES.md`
|
|
16
|
-
| `aif-plan` | `.ai-factory/PLAN.md`, `.ai-factory/plans/<branch>.md`
|
|
17
|
-
| `aif-implement` | Plan progress updates (checkboxes/task status)
|
|
18
|
-
| `aif-fix` | `.ai-factory/FIX_PLAN.md` (plan mode), `.ai-factory/patches/*.md`
|
|
19
|
-
| `aif-evolve` | `.ai-factory/evolutions/*.md`, `.ai-factory/skill-context/*`
|
|
20
|
-
| `aif-docs` | `README.md`, `docs/*`, `AGENTS.md` documentation section
|
|
21
|
-
| `aif-explore` | `.ai-factory/RESEARCH.md` only
|
|
22
|
-
| `aif-commit` | Git commit object/message only
|
|
23
|
-
| `aif-review` | Review output/comments only
|
|
24
|
-
| `aif-verify` | Verification report output
|
|
10
|
+
| Command | Primary write ownership | Read-only context | Approved exceptions |
|
|
11
|
+
|--------------------|----------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
12
|
+
| `aif` | `.ai-factory/DESCRIPTION.md`, `AGENTS.md` (setup map), skill installation and MCP config | Existing project files and context artifacts | May invoke `aif-architecture` to create/update `.ai-factory/ARCHITECTURE.md` during setup |
|
|
13
|
+
| `aif-architecture` | `.ai-factory/ARCHITECTURE.md` | `.ai-factory/DESCRIPTION.md` | May update `DESCRIPTION.md` architecture pointer and `AGENTS.md` context table |
|
|
14
|
+
| `aif-roadmap` | `.ai-factory/ROADMAP.md` | `.ai-factory/DESCRIPTION.md`, `.ai-factory/ARCHITECTURE.md` | `aif-implement` may mark completed milestones after implementation |
|
|
15
|
+
| `aif-rules` | `.ai-factory/RULES.md` | Existing project context | None |
|
|
16
|
+
| `aif-plan` | `.ai-factory/PLAN.md`, `.ai-factory/plans/<branch>.md` | `.ai-factory/DESCRIPTION.md`, `.ai-factory/ARCHITECTURE.md`, `.ai-factory/RESEARCH.md` | `aif-improve` may refine existing plan files |
|
|
17
|
+
| `aif-implement` | Plan progress updates (checkboxes/task status) | `.ai-factory/RULES.md`, `.ai-factory/ARCHITECTURE.md`, `.ai-factory/DESCRIPTION.md`, `.ai-factory/skill-context/*`, limited recent patches (fallback) | May update `.ai-factory/DESCRIPTION.md` and `.ai-factory/ARCHITECTURE.md` only when stack/structure changed; may update `.ai-factory/ROADMAP.md` milestone completion |
|
|
18
|
+
| `aif-fix` | `.ai-factory/FIX_PLAN.md` (plan mode), `.ai-factory/patches/*.md` | `.ai-factory/DESCRIPTION.md`, `.ai-factory/skill-context/*`, limited recent patches (fallback) | None (context artifacts remain read-only by default) |
|
|
19
|
+
| `aif-evolve` | `.ai-factory/evolutions/*.md`, `.ai-factory/evolutions/patch-cursor.json`, `.ai-factory/skill-context/*` | `.ai-factory/DESCRIPTION.md`, `.ai-factory/patches/*.md` (processed incrementally) | None |
|
|
20
|
+
| `aif-docs` | `README.md`, `docs/*`, `AGENTS.md` documentation section | Project/context files for factual docs | None |
|
|
21
|
+
| `aif-explore` | `.ai-factory/RESEARCH.md` only | All context and codebase files for analysis | None |
|
|
22
|
+
| `aif-commit` | Git commit object/message only | Context artifacts are read-only gates | No context artifact writes by default |
|
|
23
|
+
| `aif-review` | Review output/comments only | Context artifacts are read-only gates | No context artifact writes by default unless user explicitly asks |
|
|
24
|
+
| `aif-verify` | Verification report output | Context artifacts are read-only gates | May move to fix flow after user confirmation; no default context artifact writes |
|
|
25
25
|
|
|
26
26
|
## Artifact Update Policy (Recommended)
|
|
27
27
|
|