@relipa/ai-flow-kit 0.0.6-beta.0 → 0.0.7-beta.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 +33 -13
- package/bin/aiflow.js +58 -2
- package/custom/mcp-presets/gitnexus.json +8 -0
- package/custom/rules/java/spring-boot-examples.md +329 -329
- package/custom/skills/generate-spec/SKILL.md +7 -0
- package/custom/skills/impact-analysis/SKILL.md +10 -0
- package/custom/skills/read-study-requirement/SKILL.md +11 -0
- package/custom/skills/review-plan/SKILL.md +15 -0
- package/custom/templates/spring-boot.md +224 -224
- package/docs/common/AIFLOW.md +12 -6
- package/docs/common/CHANGELOG.md +49 -5
- package/docs/common/QUICK_START.md +13 -11
- package/docs/common/cli-reference.md +23 -0
- package/package.json +2 -7
- package/scripts/checkpoint.js +46 -0
- package/scripts/doctor.js +192 -89
- package/scripts/gitnexus-worker.js +94 -0
- package/scripts/guide.js +42 -51
- package/scripts/hooks/session-start.js +274 -244
- package/scripts/hooks/session-stop.js +55 -0
- package/scripts/init.js +293 -18
- package/scripts/prompt.js +2 -2
- package/scripts/remove.js +54 -0
- package/scripts/task.js +446 -384
- package/scripts/update.js +14 -4
- package/scripts/use.js +41 -0
- package/upstream/.claude-plugin/marketplace.json +4 -4
- package/upstream/.claude-plugin/plugin.json +2 -4
- package/upstream/.cursor-plugin/plugin.json +2 -4
- package/upstream/docs/plans/2025-11-22-opencode-support-design.md +1 -1
- package/upstream/docs/plans/2025-11-28-skills-improvements-from-user-feedback.md +2 -2
- package/upstream/docs/testing.md +2 -2
- package/upstream/skills/subagent-driven-development/SKILL.md +5 -6
- package/upstream/skills/subagent-driven-development/implementer-prompt.md +2 -3
- package/upstream/skills/systematic-debugging/CREATION-LOG.md +1 -1
- package/upstream/skills/systematic-debugging/root-cause-tracing.md +1 -1
- package/upstream/skills/tdd-lean/SKILL.md +127 -0
- package/upstream/skills/using-git-worktrees/SKILL.md +4 -5
- package/upstream/skills/writing-plans/SKILL.md +3 -9
- package/upstream/tests/brainstorm-server/package-lock.json +36 -0
package/README.md
CHANGED
|
@@ -23,11 +23,11 @@ Developers only need a single command to load ticket context → AI automaticall
|
|
|
23
23
|
> [!TIP]
|
|
24
24
|
> After running `aiflow init`, documentation files are automatically copied to `.aiflow/docs/` in your project for easy access.
|
|
25
25
|
|
|
26
|
-
- **[Quick Start Guide](https://
|
|
27
|
-
- **[Full Workflow (5 Gates)](https://
|
|
28
|
-
- **[Troubleshooting](https://
|
|
29
|
-
- **[Integration Guide](https://
|
|
30
|
-
- **[Changelog](https://
|
|
26
|
+
- **[Quick Start Guide](https://github.com/example/ai-flow-kit/blob/main/docs/common/QUICK_START.md)** — Step-by-step instructions for developers.
|
|
27
|
+
- **[Full Workflow (5 Gates)](https://github.com/example/ai-flow-kit/blob/main/docs/common/AIFLOW.md)** — In-depth look at the Gate process.
|
|
28
|
+
- **[Troubleshooting](https://github.com/example/ai-flow-kit/blob/main/docs/common/troubleshooting.md)** — Common issues and fixes.
|
|
29
|
+
- **[Integration Guide](https://github.com/example/ai-flow-kit/blob/main/docs/common/ai-integration.md)** — Advanced tool setup (Claude, Cursor, Gemini).
|
|
30
|
+
- **[Changelog](https://github.com/example/ai-flow-kit/blob/main/docs/common/CHANGELOG.md)** — Version history and release notes.
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
@@ -52,7 +52,7 @@ PM writes ticket on Backlog/Jira
|
|
|
52
52
|
▼
|
|
53
53
|
⛩️ GATE 3 — Code Generation (TDD) [AI]
|
|
54
54
|
AI writes tests first → implement → tests pass
|
|
55
|
-
|
|
55
|
+
Verify implementation works
|
|
56
56
|
│ Code done
|
|
57
57
|
▼
|
|
58
58
|
⛩️ GATE 4 — AI Self-Review [AI + DEV]
|
|
@@ -74,13 +74,13 @@ PM writes ticket on Backlog/Jira
|
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
76
|
# Stable version
|
|
77
|
-
npm install -g
|
|
77
|
+
npm install -g ai-flow-kit
|
|
78
78
|
|
|
79
79
|
# Beta version (recommend for newest features)
|
|
80
|
-
npm install -g
|
|
80
|
+
npm install -g ai-flow-kit@beta
|
|
81
81
|
|
|
82
82
|
# Uninstall
|
|
83
|
-
npm uninstall -g
|
|
83
|
+
npm uninstall -g ai-flow-kit
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
---
|
|
@@ -93,6 +93,7 @@ npm uninstall -g @relipa/ai-flow-kit
|
|
|
93
93
|
| `aiflow use <ticket>` | Load ticket context (Backlog/Jira). |
|
|
94
94
|
| `aiflow task` | Manage multiple tasks — pause, switch, resume. |
|
|
95
95
|
| `aiflow prompt` | Generate tool-optimized prompts (`--env cursor`). |
|
|
96
|
+
| `aiflow sync-skills` | Manually synchronize AI Instruction files with local custom skills. |
|
|
96
97
|
| `aiflow telemetry` | Manage telemetry tracking (enable/disable/status). |
|
|
97
98
|
| `aiflow guide` | View integrated multi-AI integration guide. |
|
|
98
99
|
|
|
@@ -104,8 +105,10 @@ Initial setup for the project. Run once per project.
|
|
|
104
105
|
# Single framework + adapter
|
|
105
106
|
aiflow init --framework spring-boot --adapter backlog
|
|
106
107
|
|
|
107
|
-
#
|
|
108
|
-
aiflow init --with-rtk
|
|
108
|
+
# Enable token savings tools
|
|
109
|
+
aiflow init --with-rtk # RTK: compress bash outputs (60–90% reduction)
|
|
110
|
+
# aiflow init --with-gitnexus # GitNexus: code intelligence (waits for index)
|
|
111
|
+
# aiflow init --with-gitnexus --no-wait # GitNexus: index in background
|
|
109
112
|
|
|
110
113
|
# Multiple frameworks and adapters
|
|
111
114
|
aiflow init --framework spring-boot,reactjs --adapter backlog,jira
|
|
@@ -126,6 +129,21 @@ aiflow init --framework spring-boot,reactjs --adapter backlog,jira
|
|
|
126
129
|
|
|
127
130
|
---
|
|
128
131
|
|
|
132
|
+
### `aiflow sync-skills`
|
|
133
|
+
|
|
134
|
+
Synchronize AI instruction files (`CLAUDE.md`, `GEMINI.md`, etc.) and Skills without upgrading the package version.
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
aiflow sync-skills
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Features:**
|
|
141
|
+
- Intelligent marker-based updates (`<!-- aiflow-kit-start -->`)
|
|
142
|
+
- Confirmation prompts before overwriting custom rules
|
|
143
|
+
- English notifications and status reports
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
129
147
|
### `aiflow use <ticket>`
|
|
130
148
|
|
|
131
149
|
Load ticket context into `.aiflow/context/current.json`.
|
|
@@ -179,6 +197,8 @@ aiflow task switch PROJ-99 # pause current + switch to another task
|
|
|
179
197
|
aiflow task resume PROJ-33 # resume a paused task (restores context + gate state)
|
|
180
198
|
aiflow task reset PROJ-33 # reset to Gate 1 (keeps ticket context, clears progress)
|
|
181
199
|
aiflow task remove PROJ-33 # permanently delete all saved data for the task
|
|
200
|
+
aiflow task next # approve current gate + prepare for fresh session
|
|
201
|
+
aiflow task next --ticket PROJ-33 # same, but specify ticket explicitly
|
|
182
202
|
```
|
|
183
203
|
|
|
184
204
|
**Use case — switching tasks mid-flow:**
|
|
@@ -337,7 +357,7 @@ ai-flow-kit/
|
|
|
337
357
|
|
|
338
358
|
**Custom skill:** create `custom/skills/<name>/SKILL.md`
|
|
339
359
|
|
|
340
|
-
Then run `aiflow update` to apply.
|
|
360
|
+
Then run `aiflow update` or `aiflow sync-skills` to apply.
|
|
341
361
|
|
|
342
362
|
---
|
|
343
363
|
|
|
@@ -355,7 +375,7 @@ Then run `aiflow update` to apply.
|
|
|
355
375
|
|
|
356
376
|
**`aiflow` not found:**
|
|
357
377
|
```bash
|
|
358
|
-
npm install -g
|
|
378
|
+
npm install -g ai-flow-kit
|
|
359
379
|
```
|
|
360
380
|
|
|
361
381
|
**Backlog load fails:**
|
package/bin/aiflow.js
CHANGED
|
@@ -16,6 +16,7 @@ const removeCommand = require('../scripts/remove');
|
|
|
16
16
|
const guideCommand = require('../scripts/guide');
|
|
17
17
|
const telemetryCommand= require('../scripts/telemetry/cli');
|
|
18
18
|
const taskCommand = require('../scripts/task');
|
|
19
|
+
const checkpointCommand = require('../scripts/checkpoint');
|
|
19
20
|
const { record } = require('../scripts/telemetry/record');
|
|
20
21
|
|
|
21
22
|
program
|
|
@@ -63,6 +64,8 @@ program
|
|
|
63
64
|
.option('-e, --env <types>', 'AI environment(s)/tool(s), comma-separated (e.g. cursor,gemini,copilot)')
|
|
64
65
|
.option('--with-rtk', 'force enable RTK token compression hook')
|
|
65
66
|
.option('--no-rtk', 'skip RTK setup even if RTK is detected')
|
|
67
|
+
// .option('--with-gitnexus', 'enable GitNexus code intelligence (indexes in background)')
|
|
68
|
+
// .option('--wait', 'wait for GitNexus indexing to complete before exiting')
|
|
66
69
|
.action((options) => {
|
|
67
70
|
options.frameworks = options.framework
|
|
68
71
|
? options.framework.split(',').map(s => s.trim()).filter(Boolean)
|
|
@@ -162,6 +165,15 @@ taskCmd
|
|
|
162
165
|
.description('Permanently delete all saved data for a task')
|
|
163
166
|
.action((ticketId) => { record('command.invoked', { command: 'task.remove' }); taskCommand('remove', { taskId: ticketId }); });
|
|
164
167
|
|
|
168
|
+
taskCmd
|
|
169
|
+
.command('next')
|
|
170
|
+
.description('Approve current gate and prepare next session (saves state for resume)')
|
|
171
|
+
.option('-t, --ticket <id>', 'ticket ID (defaults to active task)')
|
|
172
|
+
.action((opts) => {
|
|
173
|
+
record('command.invoked', { command: 'task.next' });
|
|
174
|
+
taskCommand('next', { taskId: opts.ticket });
|
|
175
|
+
});
|
|
176
|
+
|
|
165
177
|
// ── context ───────────────────────────────────────────────────
|
|
166
178
|
program
|
|
167
179
|
.command('context [action]')
|
|
@@ -176,6 +188,19 @@ program
|
|
|
176
188
|
contextCommand(action, options);
|
|
177
189
|
});
|
|
178
190
|
|
|
191
|
+
// ── checkpoint ────────────────────────────────────────────────
|
|
192
|
+
program
|
|
193
|
+
.command('checkpoint')
|
|
194
|
+
.description('Record token usage checkpoint (called by AI during gate work)')
|
|
195
|
+
.requiredOption('--gate <n>', 'gate number (1–5)', parseInt)
|
|
196
|
+
.requiredOption('--step <name>', 'step name (e.g. "tests-written")')
|
|
197
|
+
.requiredOption('--tokens <n>', 'estimated token count', parseInt)
|
|
198
|
+
.option('-t, --ticket <id>', 'ticket ID (defaults to active task)')
|
|
199
|
+
.action((opts) => {
|
|
200
|
+
record('command.invoked', { command: 'checkpoint' });
|
|
201
|
+
checkpointCommand({ gate: opts.gate, step: opts.step, tokens: opts.tokens, ticket: opts.ticket });
|
|
202
|
+
});
|
|
203
|
+
|
|
179
204
|
// ── validate ──────────────────────────────────────────────────
|
|
180
205
|
program
|
|
181
206
|
.command('validate <file>')
|
|
@@ -276,14 +301,45 @@ program
|
|
|
276
301
|
updateCommand(options);
|
|
277
302
|
});
|
|
278
303
|
|
|
304
|
+
// ── sync-skills ───────────────────────────────────────────────
|
|
305
|
+
program
|
|
306
|
+
.command('sync-skills')
|
|
307
|
+
.description('Manually synchronize AI Instruction files with local custom skills')
|
|
308
|
+
.action(async () => {
|
|
309
|
+
record('command.invoked', { command: 'sync-skills' });
|
|
310
|
+
const projectDir = process.cwd();
|
|
311
|
+
const { setupFramework, AI_TOOL_FILES, ensureAiflowGitignored } = require('../scripts/init');
|
|
312
|
+
const fs = require('fs-extra');
|
|
313
|
+
const path = require('path');
|
|
314
|
+
const chalk = require('chalk');
|
|
315
|
+
|
|
316
|
+
const stateFile = path.join(projectDir, '.aiflow', 'state.json');
|
|
317
|
+
if (!(await fs.pathExists(stateFile))) {
|
|
318
|
+
console.log(chalk.red('Project is not initialized. Please run `aiflow init` first.'));
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const state = await fs.readJson(stateFile);
|
|
323
|
+
const frameworks = state.frameworks || [];
|
|
324
|
+
const selectedTools = state.aiTools || Object.keys(AI_TOOL_FILES);
|
|
325
|
+
|
|
326
|
+
console.log(chalk.cyan('⟳ Syncing AI Instruction files...'));
|
|
327
|
+
for (const fw of frameworks) {
|
|
328
|
+
await setupFramework(projectDir, fw, frameworks.length > 1, selectedTools);
|
|
329
|
+
}
|
|
330
|
+
await ensureAiflowGitignored(projectDir);
|
|
331
|
+
console.log(chalk.green('✨ Sync completed!'));
|
|
332
|
+
});
|
|
333
|
+
|
|
279
334
|
// ── doctor ────────────────────────────────────────────────────
|
|
280
335
|
program
|
|
281
336
|
.command('doctor')
|
|
282
337
|
.description('Health check of AI Flow Kit setup')
|
|
338
|
+
.option('-t, --ticket <id>', 'show token breakdown for specific ticket')
|
|
283
339
|
.option('-v, --verbose', 'detailed output')
|
|
284
|
-
.action(() => {
|
|
340
|
+
.action((opts) => {
|
|
285
341
|
record('command.invoked', { command: 'doctor' });
|
|
286
|
-
doctorCommand();
|
|
342
|
+
doctorCommand({ ticket: opts.ticket, verbose: opts.verbose });
|
|
287
343
|
});
|
|
288
344
|
|
|
289
345
|
// ── telemetry ──────────────────────────────────────────────────
|