devflow-kit 1.5.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +9 -4
  3. package/dist/commands/ambient.js +1 -1
  4. package/dist/commands/init.js +8 -4
  5. package/dist/commands/uninstall.d.ts +9 -0
  6. package/dist/commands/uninstall.js +60 -4
  7. package/dist/plugins.js +23 -23
  8. package/dist/utils/post-install.js +6 -2
  9. package/package.json +1 -1
  10. package/plugins/devflow-accessibility/.claude-plugin/plugin.json +1 -1
  11. package/plugins/devflow-ambient/.claude-plugin/plugin.json +25 -4
  12. package/plugins/devflow-ambient/README.md +48 -29
  13. package/plugins/devflow-ambient/agents/coder.md +135 -0
  14. package/plugins/devflow-ambient/agents/reviewer.md +165 -0
  15. package/plugins/devflow-ambient/agents/scrutinizer.md +80 -0
  16. package/plugins/devflow-ambient/agents/shepherd.md +94 -0
  17. package/plugins/devflow-ambient/agents/simplifier.md +93 -0
  18. package/plugins/devflow-ambient/agents/skimmer.md +93 -0
  19. package/plugins/devflow-ambient/agents/validator.md +86 -0
  20. package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +76 -29
  21. package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +40 -35
  22. package/plugins/devflow-ambient/skills/debug-orchestration/SKILL.md +69 -0
  23. package/plugins/devflow-ambient/skills/implementation-orchestration/SKILL.md +92 -0
  24. package/plugins/devflow-ambient/skills/plan-orchestration/SKILL.md +71 -0
  25. package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +10 -1
  26. package/plugins/devflow-audit-claude/commands/audit-claude.md +4 -0
  27. package/plugins/devflow-code-review/.claude-plugin/plugin.json +2 -1
  28. package/plugins/devflow-code-review/agents/reviewer.md +10 -9
  29. package/plugins/devflow-code-review/commands/code-review-teams.md +43 -30
  30. package/plugins/devflow-code-review/commands/code-review.md +10 -1
  31. package/plugins/devflow-code-review/skills/knowledge-persistence/SKILL.md +128 -0
  32. package/plugins/devflow-code-review/skills/knowledge-persistence/references/examples.md +44 -0
  33. package/plugins/devflow-core-skills/.claude-plugin/plugin.json +1 -1
  34. package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +7 -2
  35. package/plugins/devflow-core-skills/skills/test-driven-development/SKILL.md +6 -5
  36. package/plugins/devflow-debug/.claude-plugin/plugin.json +5 -3
  37. package/plugins/devflow-debug/agents/synthesizer.md +211 -0
  38. package/plugins/devflow-debug/commands/debug-teams.md +28 -14
  39. package/plugins/devflow-debug/commands/debug.md +26 -12
  40. package/plugins/devflow-debug/skills/knowledge-persistence/SKILL.md +128 -0
  41. package/plugins/devflow-debug/skills/knowledge-persistence/references/examples.md +44 -0
  42. package/plugins/devflow-frontend-design/.claude-plugin/plugin.json +1 -1
  43. package/plugins/devflow-go/.claude-plugin/plugin.json +1 -1
  44. package/plugins/devflow-implement/.claude-plugin/plugin.json +2 -1
  45. package/plugins/devflow-implement/agents/coder.md +6 -1
  46. package/plugins/devflow-implement/agents/simplifier.md +32 -1
  47. package/plugins/devflow-implement/agents/skimmer.md +5 -0
  48. package/plugins/devflow-implement/commands/implement-teams.md +72 -55
  49. package/plugins/devflow-implement/commands/implement.md +44 -35
  50. package/plugins/devflow-implement/skills/knowledge-persistence/SKILL.md +128 -0
  51. package/plugins/devflow-implement/skills/knowledge-persistence/references/examples.md +44 -0
  52. package/plugins/devflow-java/.claude-plugin/plugin.json +1 -1
  53. package/plugins/devflow-python/.claude-plugin/plugin.json +1 -1
  54. package/plugins/devflow-react/.claude-plugin/plugin.json +1 -1
  55. package/plugins/devflow-resolve/.claude-plugin/plugin.json +4 -3
  56. package/plugins/devflow-resolve/agents/simplifier.md +32 -1
  57. package/plugins/devflow-resolve/commands/resolve-teams.md +16 -7
  58. package/plugins/devflow-resolve/commands/resolve.md +16 -7
  59. package/plugins/devflow-resolve/skills/knowledge-persistence/SKILL.md +128 -0
  60. package/plugins/devflow-resolve/skills/knowledge-persistence/references/examples.md +44 -0
  61. package/plugins/devflow-rust/.claude-plugin/plugin.json +1 -1
  62. package/plugins/devflow-self-review/.claude-plugin/plugin.json +10 -1
  63. package/plugins/devflow-self-review/agents/simplifier.md +32 -1
  64. package/plugins/devflow-self-review/commands/self-review.md +10 -4
  65. package/plugins/devflow-specify/.claude-plugin/plugin.json +1 -1
  66. package/plugins/devflow-specify/agents/skimmer.md +5 -0
  67. package/plugins/devflow-specify/commands/specify-teams.md +27 -20
  68. package/plugins/devflow-specify/commands/specify.md +26 -19
  69. package/plugins/devflow-typescript/.claude-plugin/plugin.json +1 -1
  70. package/scripts/hooks/ambient-prompt +10 -8
  71. package/scripts/hooks/background-memory-update +114 -85
  72. package/scripts/hooks/session-start-memory +34 -20
  73. package/shared/agents/coder.md +6 -1
  74. package/shared/agents/reviewer.md +10 -9
  75. package/shared/agents/simplifier.md +32 -1
  76. package/shared/agents/skimmer.md +5 -0
  77. package/shared/skills/ambient-router/SKILL.md +76 -29
  78. package/shared/skills/ambient-router/references/skill-catalog.md +40 -35
  79. package/shared/skills/debug-orchestration/SKILL.md +69 -0
  80. package/shared/skills/docs-framework/SKILL.md +7 -2
  81. package/shared/skills/implementation-orchestration/SKILL.md +92 -0
  82. package/shared/skills/knowledge-persistence/SKILL.md +128 -0
  83. package/shared/skills/knowledge-persistence/references/examples.md +44 -0
  84. package/shared/skills/plan-orchestration/SKILL.md +71 -0
  85. package/shared/skills/test-driven-development/SKILL.md +6 -5
  86. package/plugins/devflow-ambient/commands/ambient.md +0 -110
package/CHANGELOG.md CHANGED
@@ -5,6 +5,55 @@ All notable changes to DevFlow will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.6.1] - 2026-03-20
9
+
10
+ ### Added
11
+ - **`--dry-run` flag** for `devflow uninstall` — preview removal plan without deleting anything
12
+
13
+ ### Fixed
14
+ - **Ambient skill loading** — removed `allowed-tools` restriction from ambient-router so skills actually load via the Skill tool
15
+ - **Ambient hook preamble** — explicit Skill tool instruction ensures models invoke skills rather than responding directly
16
+ - **Init wizard** — hide `devflow-ambient` from plugin multiselect (auto-included via ambient prompt)
17
+ - **Working memory** — replaced broken `--resume` with transcript-based background updater
18
+
19
+ ---
20
+
21
+ ## [1.6.0] - 2026-03-19
22
+
23
+ ### Added
24
+ - **Ambient agent orchestration**: ORCHESTRATED tier spawns agent pipelines for IMPLEMENT, DEBUG, PLAN intents
25
+ - **Orchestration skills**: `implementation-orchestration`, `debug-orchestration`, `plan-orchestration` for ambient agent pipelines
26
+ - **`knowledge-persistence` skill** (#145) — extraction procedure, lock protocol, loading instructions for project knowledge
27
+ - **Knowledge loading phase** (#145) — `/debug`, `/specify`, `/self-review` now load project knowledge at startup
28
+ - **Pitfall recording phase** (#145) — `/code-review`, `/resolve` record pitfalls to `.memory/knowledge/pitfalls.md`
29
+ - **Knowledge directory** (#145) — `.memory/knowledge/` with `decisions.md` (ADR-NNN, append-only) and `pitfalls.md` (area-specific gotchas)
30
+
31
+ ### Changed
32
+ - **Ambient mode**: Three depth tiers (QUICK/GUIDED/ORCHESTRATED) replacing old QUICK/GUIDED/ELEVATE
33
+ - **Ambient mode**: GUIDED tier for small-scope IMPLEMENT (≤2 files), simple DEBUG, focused PLAN, and REVIEW — main session with skills + Simplifier
34
+ - **Ambient mode**: BUILD intent renamed to IMPLEMENT for clarity
35
+ - **Coder agent**: Added `test-driven-development` and `search-first` to permanent skills
36
+ - **Command phase numbering** (#145) — renumbered fractional phases to sequential integers across 12 command files
37
+
38
+ ### Fixed
39
+ - **Agent metadata** (#146) — fixed `subagent_type` in debug, added missing YAML frontmatter
40
+ - **Plugin count** (#146) — corrected to "8 core + 9 optional"
41
+ - **Skills catalog** (#146) — cataloged 3 missing skills in reference
42
+ - **Debug command** (#147) — removed non-standard `name=` parameter
43
+ - **Plugin descriptions** (#147, #148) — synced across plugin.json, plugins.ts, marketplace.json
44
+ - **Simplifier agent** (#148) — added Output/Boundaries sections
45
+ - **Plugin metadata** (#148) — added homepage/repository/license/keywords to 3 plugins
46
+
47
+ ### Removed
48
+ - **`/ambient` command**: Ambient mode is now hook-only. Use `devflow ambient --enable` to activate.
49
+
50
+ ### Behavioral Changes
51
+ - EXPLORE intent now always classifies as QUICK (was split QUICK/GUIDED)
52
+ - Simple text edits ("Update the README") classify as QUICK (was BUILD/GUIDED)
53
+ - Debug agent budget cap removed — agents scale to investigation needs
54
+
55
+ ---
56
+
8
57
  ## [1.5.0] - 2026-03-13
9
58
 
10
59
  ### Added
@@ -866,6 +915,8 @@ devflow init
866
915
  ---
867
916
 
868
917
  [Unreleased]: https://github.com/dean0x/devflow/compare/v1.4.0...HEAD
918
+ [1.6.1]: https://github.com/dean0x/devflow/compare/v1.6.0...v1.6.1
919
+ [1.6.0]: https://github.com/dean0x/devflow/compare/v1.5.0...v1.6.0
869
920
  [1.5.0]: https://github.com/dean0x/devflow/compare/v1.4.0...v1.5.0
870
921
  [1.4.0]: https://github.com/dean0x/devflow/compare/v1.3.3...v1.4.0
871
922
  [1.3.3]: https://github.com/dean0x/devflow/compare/v1.3.2...v1.3.3
package/README.md CHANGED
@@ -24,7 +24,7 @@ DevFlow adds structured commands that handle the full lifecycle: specify feature
24
24
  - **Full-lifecycle implementation** — spec, explore, plan, code, validate, refine in one command
25
25
  - **Automatic session memory** — survives restarts, `/clear`, and context compaction
26
26
  - **Parallel debugging** — competing hypotheses investigated simultaneously
27
- - **31 quality skills** — 9 auto-activating core, 8 optional language/ecosystem, plus specialized review and agent skills
27
+ - **35 quality skills** — 9 auto-activating core, 8 optional language/ecosystem, plus specialized review, agent, and orchestration skills
28
28
 
29
29
  ## Quick Start
30
30
 
@@ -48,7 +48,7 @@ Then in Claude Code:
48
48
  | `devflow-resolve` | `/resolve` | Process review issues — fix or defer to tech debt |
49
49
  | `devflow-debug` | `/debug` | Parallel hypothesis debugging |
50
50
  | `devflow-self-review` | `/self-review` | Self-review workflow (Simplifier + Scrutinizer) |
51
- | `devflow-ambient` | `/ambient` | Ambient mode — auto-loads relevant skills based on each prompt |
51
+ | `devflow-ambient` | (hook) | Ambient mode — intent classification with agent orchestration |
52
52
  | `devflow-core-skills` | (auto) | Auto-activating quality enforcement skills |
53
53
 
54
54
  ## Command Details
@@ -197,8 +197,10 @@ DevFlow creates project documentation in `.docs/` and working memory in `.memory
197
197
 
198
198
  .memory/
199
199
  ├── WORKING-MEMORY.md # Auto-maintained by Stop hook
200
- ├── PROJECT-PATTERNS.md # Accumulated patterns across sessions
201
- └── backup.json # Pre-compact git state snapshot
200
+ ├── backup.json # Pre-compact git state snapshot
201
+ └── knowledge/
202
+ ├── decisions.md # Architectural decisions (ADR-NNN, append-only)
203
+ └── pitfalls.md # Known pitfalls (area-specific gotchas)
202
204
  ```
203
205
 
204
206
  ## Workflow Examples
@@ -252,7 +254,10 @@ Session context is saved and restored automatically via Working Memory hooks —
252
254
  | Option | Description |
253
255
  |--------|-------------|
254
256
  | `--scope <user\|local>` | Uninstall scope (default: user) |
257
+ | `--plugin <names>` | Comma-separated plugin names to uninstall selectively |
255
258
  | `--keep-docs` | Preserve .docs/ directory |
259
+ | `--dry-run` | Show what would be removed without deleting anything |
260
+ | `--verbose` | Show detailed uninstall output |
256
261
 
257
262
  ## Building from Source
258
263
 
@@ -122,7 +122,7 @@ export const ambientCommand = new Command('ambient')
122
122
  }
123
123
  await fs.writeFile(settingsPath, updated, 'utf-8');
124
124
  p.log.success('Ambient mode enabled — UserPromptSubmit hook registered');
125
- p.log.info(color.dim('Relevant skills will now auto-load based on each prompt'));
125
+ p.log.info(color.dim('Skills auto-load and agents orchestrate based on each prompt'));
126
126
  }
127
127
  if (options.disable) {
128
128
  const updated = removeAmbientHook(settingsContent);
@@ -62,7 +62,7 @@ export const initCommand = new Command('init')
62
62
  .option('--plugin <names>', 'Install specific plugin(s), comma-separated (e.g., implement,code-review)')
63
63
  .option('--teams', 'Enable Agent Teams (peer debate, adversarial review)')
64
64
  .option('--no-teams', 'Disable Agent Teams (use parallel subagents instead)')
65
- .option('--ambient', 'Enable ambient mode (auto-loads relevant skills for every prompt)')
65
+ .option('--ambient', 'Enable ambient mode (classifies intent, loads skills, orchestrates agents)')
66
66
  .option('--no-ambient', 'Disable ambient mode')
67
67
  .option('--memory', 'Enable working memory (session context preservation)')
68
68
  .option('--no-memory', 'Disable working memory hooks')
@@ -121,14 +121,14 @@ export const initCommand = new Command('init')
121
121
  }
122
122
  else if (process.stdin.isTTY) {
123
123
  const choices = DEVFLOW_PLUGINS
124
- .filter(pl => pl.name !== 'devflow-core-skills')
124
+ .filter(pl => pl.name !== 'devflow-core-skills' && pl.name !== 'devflow-ambient')
125
125
  .map(pl => ({
126
126
  value: pl.name,
127
127
  label: pl.name.replace('devflow-', ''),
128
128
  hint: pl.description + (pl.optional ? ' (optional)' : ''),
129
129
  }));
130
130
  const preSelected = DEVFLOW_PLUGINS
131
- .filter(pl => !pl.optional && pl.name !== 'devflow-core-skills')
131
+ .filter(pl => !pl.optional && pl.name !== 'devflow-core-skills' && pl.name !== 'devflow-ambient')
132
132
  .map(pl => pl.name);
133
133
  const pluginSelection = await p.multiselect({
134
134
  message: 'Select plugins to install',
@@ -176,7 +176,7 @@ export const initCommand = new Command('init')
176
176
  const ambientChoice = await p.select({
177
177
  message: 'Enable ambient mode?',
178
178
  options: [
179
- { value: true, label: 'Yes (Recommended)', hint: 'Auto-loads relevant skills for each prompt' },
179
+ { value: true, label: 'Yes (Recommended)', hint: 'Classifies intent, loads skills, orchestrates agents' },
180
180
  { value: false, label: 'No', hint: 'Full control — load skills manually' },
181
181
  ],
182
182
  });
@@ -284,6 +284,10 @@ export const initCommand = new Command('init')
284
284
  if (pluginsToInstall.length > 0 && coreSkillsPlugin && !pluginsToInstall.includes(coreSkillsPlugin)) {
285
285
  pluginsToInstall = [coreSkillsPlugin, ...pluginsToInstall];
286
286
  }
287
+ const ambientPlugin = DEVFLOW_PLUGINS.find(p => p.name === 'devflow-ambient');
288
+ if (ambientEnabled && ambientPlugin && !pluginsToInstall.includes(ambientPlugin)) {
289
+ pluginsToInstall.push(ambientPlugin);
290
+ }
287
291
  const { skillsMap, agentsMap } = buildAssetMaps(pluginsToInstall);
288
292
  // Install: try native CLI first, fall back to file copy
289
293
  const cliAvailable = isClaudeCliAvailable();
@@ -9,5 +9,14 @@ export declare function computeAssetsToRemove(selectedPlugins: PluginDefinition[
9
9
  agents: string[];
10
10
  commands: string[];
11
11
  };
12
+ /**
13
+ * Format a dry-run plan showing what would be removed.
14
+ * Pure function — no I/O, fully testable.
15
+ */
16
+ export declare function formatDryRunPlan(assets: {
17
+ skills: string[];
18
+ agents: string[];
19
+ commands: string[];
20
+ }, extras?: string[]): string;
12
21
  export declare const uninstallCommand: Command;
13
22
  //# sourceMappingURL=uninstall.d.ts.map
@@ -2,7 +2,7 @@ import { Command } from 'commander';
2
2
  import { promises as fs } from 'fs';
3
3
  import * as path from 'path';
4
4
  import { fileURLToPath } from 'url';
5
- import { execSync } from 'child_process';
5
+ import { execFileSync } from 'child_process';
6
6
  import * as p from '@clack/prompts';
7
7
  import color from 'picocolors';
8
8
  import { getInstallationPaths, getClaudeDirectory, getDevFlowDirectory, getManagedSettingsPath } from '../utils/paths.js';
@@ -46,13 +46,37 @@ export function computeAssetsToRemove(selectedPlugins, allPlugins) {
46
46
  }
47
47
  return { skills, agents, commands };
48
48
  }
49
+ /**
50
+ * Format a dry-run plan showing what would be removed.
51
+ * Pure function — no I/O, fully testable.
52
+ */
53
+ export function formatDryRunPlan(assets, extras) {
54
+ const skills = [...new Set(assets.skills)];
55
+ const agents = [...new Set(assets.agents)];
56
+ const commands = [...new Set(assets.commands)];
57
+ const hasAssets = skills.length > 0 || agents.length > 0 || commands.length > 0;
58
+ const hasExtras = extras && extras.length > 0;
59
+ if (!hasAssets && !hasExtras) {
60
+ return 'Nothing to remove.';
61
+ }
62
+ const lines = [];
63
+ if (skills.length > 0)
64
+ lines.push(`Skills (${skills.length}): ${skills.join(', ')}`);
65
+ if (agents.length > 0)
66
+ lines.push(`Agents (${agents.length}): ${agents.join(', ')}`);
67
+ if (commands.length > 0)
68
+ lines.push(`Commands (${commands.length}): ${commands.join(', ')}`);
69
+ if (hasExtras)
70
+ lines.push(`Extras: ${extras.join(', ')}`);
71
+ return lines.join('\n');
72
+ }
49
73
  /**
50
74
  * Uninstall plugin using Claude CLI
51
75
  */
52
76
  function uninstallPluginViaCli(scope) {
53
77
  try {
54
78
  const cliScope = scope === 'local' ? 'project' : 'user';
55
- execSync(`claude plugin uninstall devflow --scope ${cliScope}`, { stdio: 'inherit' });
79
+ execFileSync('claude', ['plugin', 'uninstall', 'devflow', '--scope', cliScope], { stdio: 'inherit' });
56
80
  return true;
57
81
  }
58
82
  catch {
@@ -77,8 +101,10 @@ export const uninstallCommand = new Command('uninstall')
77
101
  .option('--scope <type>', 'Uninstall from specific scope only (default: auto-detect all)', /^(user|local)$/i)
78
102
  .option('--plugin <names>', 'Uninstall specific plugin(s), comma-separated (e.g., implement,review)')
79
103
  .option('--verbose', 'Show detailed uninstall output')
104
+ .option('--dry-run', 'Show what would be removed without actually removing anything')
80
105
  .action(async (options) => {
81
- p.intro(color.bgRed(color.white(' Uninstalling DevFlow ')));
106
+ const dryRun = options.dryRun ?? false;
107
+ p.intro(color.bgRed(color.white(dryRun ? ' DevFlow Uninstall (dry run) ' : ' Uninstalling DevFlow ')));
82
108
  const verbose = options.verbose ?? false;
83
109
  // Parse plugin selection
84
110
  let selectedPluginNames = [];
@@ -121,7 +147,7 @@ export const uninstallCommand = new Command('uninstall')
121
147
  p.log.info('Checked user scope (~/.claude/) and local scope (git-root/.claude/)');
122
148
  process.exit(1);
123
149
  }
124
- if (scopesToUninstall.length > 1) {
150
+ if (scopesToUninstall.length > 1 && !dryRun) {
125
151
  if (process.stdin.isTTY) {
126
152
  const scopeChoice = await p.select({
127
153
  message: 'Found DevFlow in multiple scopes. Uninstall from:',
@@ -144,6 +170,36 @@ export const uninstallCommand = new Command('uninstall')
144
170
  }
145
171
  }
146
172
  }
173
+ // === DRY RUN: show plan and exit ===
174
+ if (dryRun) {
175
+ p.log.info(`Scope(s): ${scopesToUninstall.join(', ')} (dry-run shows all detected scopes)`);
176
+ const assets = isSelectiveUninstall
177
+ ? computeAssetsToRemove(selectedPlugins, DEVFLOW_PLUGINS)
178
+ : computeAssetsToRemove(DEVFLOW_PLUGINS, DEVFLOW_PLUGINS);
179
+ // Detect extras that would be cleaned up (full uninstall only)
180
+ const extras = [];
181
+ if (!isSelectiveUninstall) {
182
+ const docsDir = path.join(process.cwd(), '.docs');
183
+ const memoryDir = path.join(process.cwd(), '.memory');
184
+ try {
185
+ await fs.access(docsDir);
186
+ extras.push('.docs/');
187
+ }
188
+ catch { /* noop */ }
189
+ try {
190
+ await fs.access(memoryDir);
191
+ extras.push('.memory/');
192
+ }
193
+ catch { /* noop */ }
194
+ extras.push('hooks in settings.json', 'scripts in ~/.devflow/');
195
+ }
196
+ const plan = formatDryRunPlan(assets, extras.length > 0 ? extras : undefined);
197
+ for (const line of plan.split('\n')) {
198
+ p.log.info(line);
199
+ }
200
+ p.outro(color.dim('No changes made (dry run)'));
201
+ return;
202
+ }
147
203
  const cliAvailable = isClaudeCliAvailable();
148
204
  // Uninstall from each scope
149
205
  for (const scope of scopesToUninstall) {
package/dist/plugins.js CHANGED
@@ -7,59 +7,59 @@
7
7
  export const DEVFLOW_PLUGINS = [
8
8
  {
9
9
  name: 'devflow-core-skills',
10
- description: 'Auto-activating quality enforcement (foundation layer)',
10
+ description: 'Auto-activating quality enforcement skills - foundation layer for all DevFlow plugins',
11
11
  commands: [],
12
12
  agents: [],
13
13
  skills: ['core-patterns', 'docs-framework', 'git-safety', 'git-workflow', 'github-patterns', 'input-validation', 'search-first', 'test-driven-development', 'test-patterns'],
14
14
  },
15
15
  {
16
16
  name: 'devflow-specify',
17
- description: 'Interactive feature specification',
17
+ description: 'Interactive feature specification - creates well-defined GitHub issues',
18
18
  commands: ['/specify'],
19
19
  agents: ['skimmer', 'synthesizer'],
20
20
  skills: ['agent-teams'],
21
21
  },
22
22
  {
23
23
  name: 'devflow-implement',
24
- description: 'Complete task implementation workflow',
24
+ description: 'Complete task implementation workflow with exploration, planning, and coding',
25
25
  commands: ['/implement'],
26
26
  agents: ['git', 'skimmer', 'synthesizer', 'coder', 'simplifier', 'scrutinizer', 'shepherd', 'validator'],
27
- skills: ['agent-teams', 'implementation-patterns', 'self-review'],
27
+ skills: ['agent-teams', 'implementation-patterns', 'knowledge-persistence', 'self-review'],
28
28
  },
29
29
  {
30
30
  name: 'devflow-code-review',
31
- description: 'Comprehensive code review',
31
+ description: 'Comprehensive code review with parallel specialized agents',
32
32
  commands: ['/code-review'],
33
33
  agents: ['git', 'reviewer', 'synthesizer'],
34
- skills: ['agent-teams', 'architecture-patterns', 'complexity-patterns', 'consistency-patterns', 'database-patterns', 'dependencies-patterns', 'documentation-patterns', 'performance-patterns', 'regression-patterns', 'review-methodology', 'security-patterns', 'test-patterns'],
34
+ skills: ['agent-teams', 'architecture-patterns', 'complexity-patterns', 'consistency-patterns', 'database-patterns', 'dependencies-patterns', 'documentation-patterns', 'knowledge-persistence', 'performance-patterns', 'regression-patterns', 'review-methodology', 'security-patterns', 'test-patterns'],
35
35
  },
36
36
  {
37
37
  name: 'devflow-resolve',
38
- description: 'Process and fix review issues',
38
+ description: 'Process and fix code review issues with risk assessment',
39
39
  commands: ['/resolve'],
40
40
  agents: ['git', 'resolver', 'simplifier'],
41
- skills: ['agent-teams', 'implementation-patterns', 'security-patterns'],
41
+ skills: ['agent-teams', 'implementation-patterns', 'knowledge-persistence', 'security-patterns'],
42
42
  },
43
43
  {
44
44
  name: 'devflow-debug',
45
- description: 'Debugging with competing hypotheses',
45
+ description: 'Debugging workflows with competing hypothesis investigation using agent teams',
46
46
  commands: ['/debug'],
47
- agents: ['git'],
48
- skills: ['agent-teams', 'git-safety'],
47
+ agents: ['git', 'synthesizer'],
48
+ skills: ['agent-teams', 'git-safety', 'knowledge-persistence'],
49
49
  },
50
50
  {
51
51
  name: 'devflow-self-review',
52
- description: 'Self-review workflow (Simplifier + Scrutinizer)',
52
+ description: 'Self-review workflow: Simplifier + Scrutinizer for code quality',
53
53
  commands: ['/self-review'],
54
54
  agents: ['simplifier', 'scrutinizer', 'validator'],
55
55
  skills: ['self-review', 'core-patterns'],
56
56
  },
57
57
  {
58
58
  name: 'devflow-ambient',
59
- description: 'Ambient mode — auto-loads relevant skills based on each prompt',
59
+ description: 'Ambient mode — intent classification with proportional agent orchestration',
60
60
  commands: ['/ambient'],
61
- agents: [],
62
- skills: ['ambient-router'],
61
+ agents: ['coder', 'validator', 'simplifier', 'scrutinizer', 'shepherd', 'skimmer', 'reviewer'],
62
+ skills: ['ambient-router', 'implementation-orchestration', 'debug-orchestration', 'plan-orchestration'],
63
63
  },
64
64
  {
65
65
  name: 'devflow-audit-claude',
@@ -71,7 +71,7 @@ export const DEVFLOW_PLUGINS = [
71
71
  },
72
72
  {
73
73
  name: 'devflow-typescript',
74
- description: 'TypeScript language patterns (type safety, generics, utility types)',
74
+ description: 'TypeScript language patterns - type safety, generics, utility types, type guards',
75
75
  commands: [],
76
76
  agents: [],
77
77
  skills: ['typescript'],
@@ -79,7 +79,7 @@ export const DEVFLOW_PLUGINS = [
79
79
  },
80
80
  {
81
81
  name: 'devflow-react',
82
- description: 'React framework patterns (hooks, state, composition, performance)',
82
+ description: 'React framework patterns - hooks, state management, composition, performance',
83
83
  commands: [],
84
84
  agents: [],
85
85
  skills: ['react'],
@@ -87,7 +87,7 @@ export const DEVFLOW_PLUGINS = [
87
87
  },
88
88
  {
89
89
  name: 'devflow-accessibility',
90
- description: 'Web accessibility patterns (WCAG, ARIA, keyboard navigation)',
90
+ description: 'Web accessibility patterns - WCAG compliance, ARIA roles, keyboard navigation, focus management',
91
91
  commands: [],
92
92
  agents: [],
93
93
  skills: ['accessibility'],
@@ -95,7 +95,7 @@ export const DEVFLOW_PLUGINS = [
95
95
  },
96
96
  {
97
97
  name: 'devflow-frontend-design',
98
- description: 'Frontend design patterns (typography, color, spacing, motion)',
98
+ description: 'Frontend design patterns - typography, color systems, spacing, motion, responsive design',
99
99
  commands: [],
100
100
  agents: [],
101
101
  skills: ['frontend-design'],
@@ -103,7 +103,7 @@ export const DEVFLOW_PLUGINS = [
103
103
  },
104
104
  {
105
105
  name: 'devflow-go',
106
- description: 'Go language patterns (error handling, interfaces, concurrency)',
106
+ description: 'Go language patterns - error handling, interfaces, concurrency, package design',
107
107
  commands: [],
108
108
  agents: [],
109
109
  skills: ['go'],
@@ -111,7 +111,7 @@ export const DEVFLOW_PLUGINS = [
111
111
  },
112
112
  {
113
113
  name: 'devflow-java',
114
- description: 'Java language patterns (records, sealed classes, composition)',
114
+ description: 'Java language patterns - records, sealed classes, composition, modern Java features',
115
115
  commands: [],
116
116
  agents: [],
117
117
  skills: ['java'],
@@ -119,7 +119,7 @@ export const DEVFLOW_PLUGINS = [
119
119
  },
120
120
  {
121
121
  name: 'devflow-python',
122
- description: 'Python language patterns (type hints, protocols, data modeling)',
122
+ description: 'Python language patterns - type hints, protocols, dataclasses, async programming',
123
123
  commands: [],
124
124
  agents: [],
125
125
  skills: ['python'],
@@ -127,7 +127,7 @@ export const DEVFLOW_PLUGINS = [
127
127
  },
128
128
  {
129
129
  name: 'devflow-rust',
130
- description: 'Rust language patterns (ownership, error handling, type system)',
130
+ description: 'Rust language patterns - ownership, borrowing, error handling, type-driven design',
131
131
  commands: [],
132
132
  agents: [],
133
133
  skills: ['rust'],
@@ -425,11 +425,16 @@ export async function createMemoryDir(verbose, cwd) {
425
425
  const memoryDir = path.join(cwd ?? process.cwd(), '.memory');
426
426
  try {
427
427
  await fs.mkdir(memoryDir, { recursive: true });
428
+ await fs.mkdir(path.join(memoryDir, 'knowledge'), { recursive: true });
428
429
  if (verbose) {
429
430
  p.log.success('.memory/ directory ready');
430
431
  }
431
432
  }
432
- catch { /* may already exist */ }
433
+ catch (e) {
434
+ if (verbose) {
435
+ p.log.warn(`Failed to create .memory/ directory: ${e instanceof Error ? e.message : String(e)}`);
436
+ }
437
+ }
433
438
  }
434
439
  /**
435
440
  * Migrate memory files from .docs/ to .memory/.
@@ -443,7 +448,6 @@ export async function migrateMemoryFiles(verbose, cwd) {
443
448
  const memoryDir = path.join(root, '.memory');
444
449
  const migrations = [
445
450
  { src: path.join(docsDir, 'WORKING-MEMORY.md'), dest: path.join(memoryDir, 'WORKING-MEMORY.md') },
446
- { src: path.join(docsDir, 'patterns.md'), dest: path.join(memoryDir, 'PROJECT-PATTERNS.md') },
447
451
  { src: path.join(docsDir, 'working-memory-backup.json'), dest: path.join(memoryDir, 'backup.json') },
448
452
  ];
449
453
  let migrated = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devflow-kit",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "description": "Agentic Development Toolkit for Claude Code - Enhance AI-assisted development with intelligent commands and workflows",
5
5
  "type": "module",
6
6
  "bin": {
@@ -4,7 +4,7 @@
4
4
  "author": {
5
5
  "name": "Dean0x"
6
6
  },
7
- "version": "1.5.0",
7
+ "version": "1.6.1",
8
8
  "homepage": "https://github.com/dean0x/devflow",
9
9
  "repository": "https://github.com/dean0x/devflow",
10
10
  "license": "MIT",
@@ -1,12 +1,33 @@
1
1
  {
2
2
  "name": "devflow-ambient",
3
- "description": "Ambient mode — auto-loads relevant skills for every prompt",
3
+ "description": "Ambient mode — intent classification with proportional agent orchestration",
4
4
  "author": {
5
5
  "name": "Dean0x"
6
6
  },
7
- "version": "1.5.0",
8
- "agents": [],
7
+ "version": "1.6.1",
8
+ "homepage": "https://github.com/dean0x/devflow",
9
+ "repository": "https://github.com/dean0x/devflow",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "ambient",
13
+ "intent",
14
+ "classification",
15
+ "orchestration",
16
+ "agents"
17
+ ],
18
+ "agents": [
19
+ "coder",
20
+ "validator",
21
+ "simplifier",
22
+ "scrutinizer",
23
+ "shepherd",
24
+ "skimmer",
25
+ "reviewer"
26
+ ],
9
27
  "skills": [
10
- "ambient-router"
28
+ "ambient-router",
29
+ "implementation-orchestration",
30
+ "debug-orchestration",
31
+ "plan-orchestration"
11
32
  ]
12
33
  }
@@ -1,23 +1,8 @@
1
1
  # devflow-ambient
2
2
 
3
- Ambient mode — auto-loads relevant skills based on each prompt, no explicit commands needed.
3
+ Ambient mode — classifies intent and applies proportional effort via a `UserPromptSubmit` hook. No slash command — ambient mode activates automatically on every prompt when enabled.
4
4
 
5
- ## Command
6
-
7
- ### `/ambient`
8
-
9
- Classify user intent and apply proportional skill enforcement to any prompt.
10
-
11
- ```bash
12
- /ambient add a login form # BUILD/GUIDED — loads TDD + implementation-patterns
13
- /ambient fix the auth error # DEBUG/GUIDED — loads test-patterns + core-patterns
14
- /ambient where is the config? # EXPLORE/QUICK — responds normally, zero overhead
15
- /ambient refactor the auth system # BUILD/ELEVATE — suggests /implement
16
- ```
17
-
18
- ## Always-On Mode
19
-
20
- Enable ambient classification on every prompt without typing `/ambient`:
5
+ ## Activation
21
6
 
22
7
  ```bash
23
8
  devflow ambient --enable # Register UserPromptSubmit hook
@@ -25,25 +10,59 @@ devflow ambient --disable # Remove hook
25
10
  devflow ambient --status # Check if enabled
26
11
  ```
27
12
 
28
- When enabled, a `UserPromptSubmit` hook injects a classification preamble before every prompt. Slash commands (`/implement`, `/code-review`, etc.) and short confirmations ("yes", "ok") are skipped automatically.
13
+ When enabled, the hook injects a classification preamble before every prompt. Slash commands (`/implement`, `/code-review`, etc.) and short confirmations ("yes", "ok") are skipped automatically. Git operations (`commit`, `push`, `merge`, etc.) are fast-pathed to zero overhead.
29
14
 
30
15
  ## How It Works
31
16
 
32
- 1. **Classify intent** — BUILD, DEBUG, REVIEW, PLAN, EXPLORE, or CHAT
33
- 2. **Classify depth** — QUICK (zero overhead), GUIDED (2-3 skills), or ELEVATE (workflow nudge)
17
+ 1. **Classify intent** — IMPLEMENT, DEBUG, REVIEW, PLAN, EXPLORE, or CHAT
18
+ 2. **Classify depth** — QUICK, GUIDED, or ORCHESTRATED (scope-based)
34
19
  3. **Apply proportionally**:
35
- - QUICK: respond normally
36
- - GUIDED: load relevant skills, enforce TDD for BUILD
37
- - ELEVATE: respond + recommend full workflow command
20
+ - QUICK: respond normally (zero overhead)
21
+ - GUIDED: load skills, implement in main session, spawn Simplifier after code changes
22
+ - ORCHESTRATED: load skills, orchestrate full agent pipeline
23
+
24
+ ## Three-Tier Classification
25
+
26
+ | Depth | When | What Happens |
27
+ |-------|------|-------------|
28
+ | QUICK | Chat, exploration, git ops, config, trivial edits | Zero overhead — respond normally |
29
+ | GUIDED | Small-scope IMPLEMENT (≤2 files), clear DEBUG, focused PLAN, REVIEW | Load skills → main session works → Simplifier cleanup |
30
+ | ORCHESTRATED | Large-scope IMPLEMENT (>2 files), vague DEBUG, system-level PLAN | Load skills → spawn agent pipeline |
31
+
32
+ ### Intent × Depth Matrix
33
+
34
+ | Intent | GUIDED | ORCHESTRATED |
35
+ |--------|--------|-------------|
36
+ | IMPLEMENT | ≤2 files, single module | >2 files, multi-module |
37
+ | DEBUG | Clear error with stack trace/location | Vague/cross-cutting bug |
38
+ | PLAN | Focused design question | System-level architecture |
39
+ | REVIEW | Always GUIDED | — |
40
+
41
+ ## GUIDED Behavior
42
+
43
+ Skills are loaded via the Skill tool and work happens in the main session:
44
+
45
+ | Intent | Skills | Main Session Work | Post-Work |
46
+ |--------|--------|-------------------|-----------|
47
+ | IMPLEMENT | test-driven-development, implementation-patterns, search-first | Implement with TDD | `Task(subagent_type="Simplifier")` |
48
+ | DEBUG | core-patterns, test-patterns | Investigate, diagnose, fix | `Task(subagent_type="Simplifier")` |
49
+ | PLAN | implementation-patterns, core-patterns | Explore and design | — |
50
+ | REVIEW | self-review, core-patterns | Review directly | — |
51
+
52
+ ## ORCHESTRATED Pipelines
38
53
 
39
- ## Depth Tiers
54
+ | Intent | Pipeline |
55
+ |--------|----------|
56
+ | IMPLEMENT | Pre-flight → Coder → Validator → Simplifier → Scrutinizer → Shepherd |
57
+ | DEBUG | Hypotheses → parallel Explores → convergence → report → offer fix |
58
+ | PLAN | Skimmer → Explores → Plan agent → gap validation |
40
59
 
41
- | Depth | When | Overhead |
42
- |-------|------|----------|
43
- | QUICK | Chat, simple exploration, git/devops ops, single-word confirmations | ~0 tokens |
44
- | GUIDED | BUILD/DEBUG/REVIEW/PLAN, 1-5 file scope | ~500-1000 tokens (skill reads) |
45
- | ELEVATE | Multi-file, architectural, system-wide scope | ~0 extra tokens (nudge only) |
60
+ These are lightweight variants of `/implement`, `/debug`, and the Plan phase of `/implement` — focused on the immediate task without full lifecycle features (PR creation, knowledge persistence, retry loops).
46
61
 
47
62
  ## Skills
48
63
 
49
64
  - `ambient-router` — Intent + depth classification, skill selection matrix
65
+ - `test-driven-development` — TDD enforcement for IMPLEMENT (GUIDED + ORCHESTRATED)
66
+ - `implementation-orchestration` — Agent pipeline for IMPLEMENT/ORCHESTRATED
67
+ - `debug-orchestration` — Agent pipeline for DEBUG/ORCHESTRATED
68
+ - `plan-orchestration` — Agent pipeline for PLAN/ORCHESTRATED