devflow-kit 1.2.0 → 1.3.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.
- package/CHANGELOG.md +39 -2
- package/dist/cli.js +2 -0
- package/dist/commands/ambient.js +5 -4
- package/dist/commands/init.js +4 -2
- package/dist/commands/memory.js +4 -4
- package/dist/commands/skills.d.ts +11 -0
- package/dist/commands/skills.js +116 -0
- package/dist/commands/uninstall.js +11 -1
- package/dist/utils/installer.js +20 -2
- package/package.json +3 -2
- package/plugins/devflow-accessibility/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-ambient/.claude-plugin/plugin.json +4 -2
- package/plugins/devflow-ambient/README.md +8 -8
- package/plugins/devflow-ambient/commands/ambient.md +14 -14
- package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +15 -8
- package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +2 -2
- package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/devflow-code-review/.claude-plugin/plugin.json +13 -3
- package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +1 -1
- package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +1 -1
- package/plugins/devflow-core-skills/.claude-plugin/plugin.json +9 -2
- package/plugins/devflow-core-skills/skills/test-driven-development/SKILL.md +5 -8
- package/plugins/devflow-debug/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-frontend-design/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-go/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-implement/.claude-plugin/plugin.json +19 -3
- package/plugins/devflow-implement/skills/self-review/SKILL.md +1 -1
- package/plugins/devflow-java/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-python/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-react/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-resolve/.claude-plugin/plugin.json +13 -3
- package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +1 -1
- package/plugins/devflow-rust/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-self-review/.claude-plugin/plugin.json +10 -3
- package/plugins/devflow-self-review/skills/self-review/SKILL.md +1 -1
- package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -4
- package/plugins/devflow-typescript/.claude-plugin/plugin.json +10 -3
- package/scripts/hooks/{ambient-prompt.sh → ambient-prompt} +4 -4
- package/scripts/hooks/{background-memory-update.sh → background-memory-update} +29 -9
- package/scripts/hooks/{ensure-memory-gitignore.sh → ensure-memory-gitignore} +1 -1
- package/scripts/hooks/{pre-compact-memory.sh → pre-compact-memory} +2 -2
- package/scripts/hooks/run-hook +23 -0
- package/scripts/hooks/session-start-memory +151 -0
- package/scripts/hooks/{stop-update-memory.sh → stop-update-memory} +4 -4
- package/shared/skills/ambient-router/SKILL.md +15 -8
- package/shared/skills/ambient-router/references/skill-catalog.md +2 -2
- package/shared/skills/architecture-patterns/SKILL.md +1 -1
- package/shared/skills/complexity-patterns/SKILL.md +1 -1
- package/shared/skills/consistency-patterns/SKILL.md +1 -1
- package/shared/skills/database-patterns/SKILL.md +1 -1
- package/shared/skills/dependencies-patterns/SKILL.md +1 -1
- package/shared/skills/documentation-patterns/SKILL.md +1 -1
- package/shared/skills/performance-patterns/SKILL.md +1 -1
- package/shared/skills/regression-patterns/SKILL.md +1 -1
- package/shared/skills/review-methodology/SKILL.md +1 -1
- package/shared/skills/security-patterns/SKILL.md +1 -1
- package/shared/skills/self-review/SKILL.md +1 -1
- package/shared/skills/test-driven-development/SKILL.md +5 -8
- package/src/templates/settings.json +3 -3
- package/scripts/hooks/session-start-memory.sh +0 -126
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: complexity-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing code for high cyclomatic complexity, deep nesting, or long functions.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: consistency-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing code for naming convention violations, pattern deviations, or inconsistent API styles.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: database-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing database queries, migrations, indexes, or schema changes.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dependencies-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing dependency changes, lock files, or package additions.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: documentation-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing for documentation drift, missing API docs, or stale comments.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: performance-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing code for N+1 queries, memory leaks, or I/O bottlenecks.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: regression-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing changes that may remove exports, change signatures, or alter behavior.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-methodology
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when performing a code review to apply the standard 6-step review process.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, Bash
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing code for injection flaws, auth bypasses, or hardcoded secrets.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"skills",
|
|
14
|
+
"quality",
|
|
15
|
+
"patterns",
|
|
16
|
+
"auto-activate",
|
|
17
|
+
"enforcement",
|
|
18
|
+
"foundation"
|
|
19
|
+
],
|
|
13
20
|
"agents": [],
|
|
14
21
|
"skills": [
|
|
15
22
|
"core-patterns",
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-driven-development
|
|
3
|
-
description:
|
|
4
|
-
Enforce RED-GREEN-REFACTOR cycle during implementation. Write failing tests before
|
|
5
|
-
production code. Distinct from test-patterns (which reviews test quality) — this
|
|
6
|
-
skill enforces the TDD workflow during code generation.
|
|
3
|
+
description: This skill should be used when implementing new features, fixing bugs, or writing new code. Enforces RED-GREEN-REFACTOR.
|
|
7
4
|
user-invocable: false
|
|
8
5
|
allowed-tools: Read, Grep, Glob
|
|
9
6
|
activation:
|
|
@@ -94,7 +91,7 @@ See `references/rationalization-prevention.md` for extended examples with code.
|
|
|
94
91
|
|
|
95
92
|
## Process Enforcement
|
|
96
93
|
|
|
97
|
-
When implementing any feature under ambient BUILD/
|
|
94
|
+
When implementing any feature under ambient BUILD/GUIDED:
|
|
98
95
|
|
|
99
96
|
1. **Identify the first behavior** — What is the simplest thing this feature must do?
|
|
100
97
|
2. **Write the test** — Describe that behavior as a failing test
|
|
@@ -133,7 +130,7 @@ When skipping TDD, never rationalize. State clearly: "Skipping TDD because: [spe
|
|
|
133
130
|
|
|
134
131
|
## Integration with Ambient Mode
|
|
135
132
|
|
|
136
|
-
- **BUILD/
|
|
133
|
+
- **BUILD/GUIDED** → TDD enforced. Every new function/method gets test-first treatment.
|
|
137
134
|
- **BUILD/QUICK** → TDD skipped (trivial single-file edit).
|
|
138
|
-
- **BUILD/
|
|
139
|
-
- **DEBUG/
|
|
135
|
+
- **BUILD/ELEVATE** → TDD mentioned in nudge toward `/implement`.
|
|
136
|
+
- **DEBUG/GUIDED** → TDD applies to the fix: write a test that reproduces the bug first, then fix.
|
|
@@ -5,12 +5,19 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
|
|
12
|
+
"keywords": [
|
|
13
|
+
"debugging",
|
|
14
|
+
"hypotheses",
|
|
15
|
+
"investigation",
|
|
16
|
+
"agent-teams"
|
|
17
|
+
],
|
|
18
|
+
"agents": [
|
|
19
|
+
"git"
|
|
20
|
+
],
|
|
14
21
|
"skills": [
|
|
15
22
|
"agent-teams",
|
|
16
23
|
"git-safety"
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"design",
|
|
14
|
+
"typography",
|
|
15
|
+
"color",
|
|
16
|
+
"css"
|
|
17
|
+
],
|
|
13
18
|
"agents": [],
|
|
14
|
-
"skills": [
|
|
19
|
+
"skills": [
|
|
20
|
+
"frontend-design"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"go",
|
|
14
|
+
"golang",
|
|
15
|
+
"concurrency",
|
|
16
|
+
"errors"
|
|
17
|
+
],
|
|
13
18
|
"agents": [],
|
|
14
|
-
"skills": [
|
|
19
|
+
"skills": [
|
|
20
|
+
"go"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
@@ -5,12 +5,28 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
|
|
12
|
+
"keywords": [
|
|
13
|
+
"implementation",
|
|
14
|
+
"coding",
|
|
15
|
+
"workflow",
|
|
16
|
+
"agents",
|
|
17
|
+
"agentic",
|
|
18
|
+
"pr"
|
|
19
|
+
],
|
|
20
|
+
"agents": [
|
|
21
|
+
"git",
|
|
22
|
+
"skimmer",
|
|
23
|
+
"synthesizer",
|
|
24
|
+
"coder",
|
|
25
|
+
"simplifier",
|
|
26
|
+
"scrutinizer",
|
|
27
|
+
"shepherd",
|
|
28
|
+
"validator"
|
|
29
|
+
],
|
|
14
30
|
"skills": [
|
|
15
31
|
"agent-teams",
|
|
16
32
|
"implementation-patterns",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: self-review
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when evaluating implementation quality before submission, checking correctness, security, and simplicity.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, Edit, Write, Bash
|
|
6
6
|
---
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"java",
|
|
14
|
+
"records",
|
|
15
|
+
"sealed-classes",
|
|
16
|
+
"composition"
|
|
17
|
+
],
|
|
13
18
|
"agents": [],
|
|
14
|
-
"skills": [
|
|
19
|
+
"skills": [
|
|
20
|
+
"java"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"python",
|
|
14
|
+
"type-hints",
|
|
15
|
+
"dataclasses",
|
|
16
|
+
"async"
|
|
17
|
+
],
|
|
13
18
|
"agents": [],
|
|
14
|
-
"skills": [
|
|
19
|
+
"skills": [
|
|
20
|
+
"python"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"react",
|
|
14
|
+
"hooks",
|
|
15
|
+
"state",
|
|
16
|
+
"components"
|
|
17
|
+
],
|
|
13
18
|
"agents": [],
|
|
14
|
-
"skills": [
|
|
19
|
+
"skills": [
|
|
20
|
+
"react"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
@@ -5,12 +5,22 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
|
|
12
|
+
"keywords": [
|
|
13
|
+
"issues",
|
|
14
|
+
"fixes",
|
|
15
|
+
"tech-debt",
|
|
16
|
+
"resolution",
|
|
17
|
+
"review"
|
|
18
|
+
],
|
|
19
|
+
"agents": [
|
|
20
|
+
"git",
|
|
21
|
+
"resolver",
|
|
22
|
+
"simplifier"
|
|
23
|
+
],
|
|
14
24
|
"skills": [
|
|
15
25
|
"implementation-patterns",
|
|
16
26
|
"security-patterns",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when reviewing code for injection flaws, auth bypasses, or hardcoded secrets.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"rust",
|
|
14
|
+
"ownership",
|
|
15
|
+
"borrowing",
|
|
16
|
+
"type-safety"
|
|
17
|
+
],
|
|
13
18
|
"agents": [],
|
|
14
|
-
"skills": [
|
|
19
|
+
"skills": [
|
|
20
|
+
"rust"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devflow-self-review",
|
|
3
3
|
"description": "Self-review workflow: Simplifier + Scrutinizer for code quality",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"agents": [
|
|
6
|
-
|
|
4
|
+
"version": "1.3.1",
|
|
5
|
+
"agents": [
|
|
6
|
+
"simplifier",
|
|
7
|
+
"scrutinizer",
|
|
8
|
+
"validator"
|
|
9
|
+
],
|
|
10
|
+
"skills": [
|
|
11
|
+
"self-review",
|
|
12
|
+
"core-patterns"
|
|
13
|
+
]
|
|
7
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: self-review
|
|
3
|
-
description:
|
|
3
|
+
description: This skill should be used when evaluating implementation quality before submission, checking correctness, security, and simplicity.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, Edit, Write, Bash
|
|
6
6
|
---
|
|
@@ -5,11 +5,22 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
"keywords": [
|
|
13
|
+
"specification",
|
|
14
|
+
"requirements",
|
|
15
|
+
"planning",
|
|
16
|
+
"issues",
|
|
17
|
+
"github"
|
|
18
|
+
],
|
|
19
|
+
"agents": [
|
|
20
|
+
"skimmer",
|
|
21
|
+
"synthesizer"
|
|
22
|
+
],
|
|
23
|
+
"skills": [
|
|
24
|
+
"agent-teams"
|
|
25
|
+
]
|
|
15
26
|
}
|
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
"name": "DevFlow Contributors",
|
|
6
6
|
"email": "dean@keren.dev"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.3.1",
|
|
9
9
|
"homepage": "https://github.com/dean0x/devflow",
|
|
10
10
|
"repository": "https://github.com/dean0x/devflow",
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"typescript",
|
|
14
|
+
"types",
|
|
15
|
+
"generics",
|
|
16
|
+
"type-safety"
|
|
17
|
+
],
|
|
13
18
|
"agents": [],
|
|
14
|
-
"skills": [
|
|
19
|
+
"skills": [
|
|
20
|
+
"typescript"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# relevant skill loading via the ambient-router skill.
|
|
6
6
|
# Zero file I/O beyond stdin — static injection only.
|
|
7
7
|
|
|
8
|
-
set -
|
|
8
|
+
set -e
|
|
9
9
|
|
|
10
10
|
# jq is required to parse hook input JSON — silently no-op if missing
|
|
11
11
|
if ! command -v jq &>/dev/null; then exit 0; fi
|
|
@@ -33,12 +33,12 @@ fi
|
|
|
33
33
|
# Inject classification preamble
|
|
34
34
|
PREAMBLE="AMBIENT MODE ACTIVE: Before responding, silently classify this prompt:
|
|
35
35
|
Intent: BUILD | DEBUG | REVIEW | PLAN | EXPLORE | CHAT
|
|
36
|
-
Depth: QUICK (no overhead) |
|
|
36
|
+
Depth: QUICK (no overhead) | GUIDED (load skills) | ELEVATE (suggest /command)
|
|
37
37
|
|
|
38
|
-
If
|
|
38
|
+
If GUIDED+: Use the ambient-router skill already in your session context for classification details and skill selection matrix. Then Read the selected skills from ~/.claude/skills/<name>/SKILL.md and apply their patterns. For BUILD tasks, also load test-driven-development skill and enforce RED-GREEN-REFACTOR.
|
|
39
39
|
|
|
40
40
|
If QUICK: Respond normally without stating classification.
|
|
41
|
-
Only state classification aloud for
|
|
41
|
+
Only state classification aloud for GUIDED/ELEVATE."
|
|
42
42
|
|
|
43
43
|
jq -n --arg ctx "$PREAMBLE" '{
|
|
44
44
|
"hookSpecificOutput": {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
3
|
# Background Working Memory Updater
|
|
4
|
-
# Called by stop-update-memory
|
|
4
|
+
# Called by stop-update-memory as a detached background process.
|
|
5
5
|
# Resumes the parent session headlessly to update .memory/WORKING-MEMORY.md.
|
|
6
6
|
# On failure: logs error, does nothing (no fallback).
|
|
7
7
|
|
|
8
|
-
set -
|
|
8
|
+
set -e
|
|
9
9
|
|
|
10
10
|
CWD="$1"
|
|
11
11
|
SESSION_ID="$2"
|
|
@@ -29,7 +29,7 @@ rotate_log() {
|
|
|
29
29
|
|
|
30
30
|
# --- Stale Lock Recovery ---
|
|
31
31
|
|
|
32
|
-
# Portable mtime in epoch seconds (same pattern as stop-update-memory
|
|
32
|
+
# Portable mtime in epoch seconds (same pattern as stop-update-memory:35-39)
|
|
33
33
|
get_mtime() {
|
|
34
34
|
if stat --version &>/dev/null 2>&1; then
|
|
35
35
|
stat -c %Y "$1"
|
|
@@ -96,8 +96,10 @@ rotate_log
|
|
|
96
96
|
|
|
97
97
|
# Read existing memory for merge context
|
|
98
98
|
EXISTING_MEMORY=""
|
|
99
|
+
PRE_UPDATE_MTIME=0
|
|
99
100
|
if [ -f "$MEMORY_FILE" ]; then
|
|
100
101
|
EXISTING_MEMORY=$(cat "$MEMORY_FILE")
|
|
102
|
+
PRE_UPDATE_MTIME=$(get_mtime "$MEMORY_FILE")
|
|
101
103
|
fi
|
|
102
104
|
|
|
103
105
|
# Build instruction
|
|
@@ -119,7 +121,7 @@ else
|
|
|
119
121
|
If recurring patterns were observed during this session (coding conventions, architectural decisions, team preferences, tooling quirks), create $PATTERNS_FILE with entries formatted as: - **Pattern name**: Brief description (discovered: YYYY-MM-DD). Only create this file if genuine patterns were observed — do not fabricate entries."
|
|
120
122
|
fi
|
|
121
123
|
|
|
122
|
-
INSTRUCTION="
|
|
124
|
+
INSTRUCTION="First, Read the file $MEMORY_FILE to satisfy Claude Code's read-before-write requirement. Then update it with working memory from this session. The file already has content — possibly from a concurrent session that just wrote it moments ago. Merge this session's context with the existing content to produce a single unified working memory snapshot. Both this session and the existing content represent fresh, concurrent work — integrate both fully. Working memory captures what's active now, not a changelog. Deduplicate overlapping information. Keep under 120 lines total. Use the same structure: ## Now, ## Progress, ## Decisions, ## Modified Files, ## Context, ## Session Log.
|
|
123
125
|
|
|
124
126
|
## Progress tracks Done (completed items), Remaining (next steps), and Blockers (if any). Keep each sub-list to 1-3 items. This section reflects current work state, not historical logs.
|
|
125
127
|
|
|
@@ -144,7 +146,7 @@ $EXISTING_PATTERNS"
|
|
|
144
146
|
If recurring patterns were observed during this session (coding conventions, architectural decisions, team preferences, tooling quirks), create $PATTERNS_FILE with entries formatted as: - **Pattern name**: Brief description (discovered: YYYY-MM-DD). Only create this file if genuine patterns were observed — do not fabricate entries."
|
|
145
147
|
fi
|
|
146
148
|
|
|
147
|
-
INSTRUCTION="
|
|
149
|
+
INSTRUCTION="First, Read the file $MEMORY_FILE if it exists (to satisfy Claude Code's read-before-write requirement). Then create it with working memory from this session. Keep under 120 lines. Use this structure:
|
|
148
150
|
|
|
149
151
|
# Working Memory
|
|
150
152
|
|
|
@@ -178,12 +180,20 @@ TIMEOUT=120 # Normal runtime 30-60s; 2x margin
|
|
|
178
180
|
DEVFLOW_BG_UPDATER=1 env -u CLAUDECODE "$CLAUDE_BIN" -p \
|
|
179
181
|
--resume "$SESSION_ID" \
|
|
180
182
|
--model haiku \
|
|
181
|
-
--tools "Write" \
|
|
182
|
-
--allowedTools
|
|
183
|
+
--tools "Read,Write,Bash" \
|
|
184
|
+
--allowedTools \
|
|
185
|
+
"Read($CWD/.memory/WORKING-MEMORY.md)" \
|
|
186
|
+
"Read($CWD/.memory/PROJECT-PATTERNS.md)" \
|
|
187
|
+
"Write($CWD/.memory/WORKING-MEMORY.md)" \
|
|
188
|
+
"Write($CWD/.memory/PROJECT-PATTERNS.md)" \
|
|
189
|
+
"Bash(git status:*)" \
|
|
190
|
+
"Bash(git log:*)" \
|
|
191
|
+
"Bash(git diff:*)" \
|
|
192
|
+
"Bash(git branch:*)" \
|
|
183
193
|
--no-session-persistence \
|
|
184
194
|
--output-format text \
|
|
185
195
|
"$INSTRUCTION" \
|
|
186
|
-
|
|
196
|
+
>> "$LOG_FILE" 2>&1 &
|
|
187
197
|
CLAUDE_PID=$!
|
|
188
198
|
|
|
189
199
|
# Watchdog: kill claude if it exceeds timeout
|
|
@@ -191,7 +201,17 @@ CLAUDE_PID=$!
|
|
|
191
201
|
WATCHDOG_PID=$!
|
|
192
202
|
|
|
193
203
|
if wait "$CLAUDE_PID" 2>/dev/null; then
|
|
194
|
-
|
|
204
|
+
# Validate the file was actually modified (detect silent Write failures)
|
|
205
|
+
if [ -f "$MEMORY_FILE" ]; then
|
|
206
|
+
NEW_MTIME=$(get_mtime "$MEMORY_FILE")
|
|
207
|
+
if [ "$NEW_MTIME" -gt "$PRE_UPDATE_MTIME" ]; then
|
|
208
|
+
log "Update completed for session $SESSION_ID"
|
|
209
|
+
else
|
|
210
|
+
log "Update finished but file was not modified for session $SESSION_ID (possible Write tool failure)"
|
|
211
|
+
fi
|
|
212
|
+
else
|
|
213
|
+
log "Update finished but file does not exist for session $SESSION_ID"
|
|
214
|
+
fi
|
|
195
215
|
else
|
|
196
216
|
EXIT_CODE=$?
|
|
197
217
|
if [ "$EXIT_CODE" -gt 128 ]; then
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Ensures .memory/ exists and .gitignore entries are configured.
|
|
3
3
|
# Called from stop and pre-compact hooks. Idempotent, ~1μs after first run.
|
|
4
|
-
# Usage: source ensure-memory-gitignore
|
|
4
|
+
# Usage: source ensure-memory-gitignore "$CWD"
|
|
5
5
|
|
|
6
6
|
_MEMORY_DIR="$1/.memory"
|
|
7
7
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# has something to inject after compaction.
|
|
7
7
|
# PreCompact hooks cannot block compaction — this is informational only.
|
|
8
8
|
|
|
9
|
-
set -
|
|
9
|
+
set -e
|
|
10
10
|
|
|
11
11
|
# jq is required to parse hook input JSON — silently no-op if missing
|
|
12
12
|
if ! command -v jq &>/dev/null; then exit 0; fi
|
|
@@ -19,7 +19,7 @@ if [ -z "$CWD" ]; then
|
|
|
19
19
|
fi
|
|
20
20
|
|
|
21
21
|
# Auto-create .memory/ and ensure .gitignore entries (idempotent after first run)
|
|
22
|
-
source "$(cd "$(dirname "$0")" && pwd)/ensure-memory-gitignore
|
|
22
|
+
source "$(cd "$(dirname "$0")" && pwd)/ensure-memory-gitignore" "$CWD" || exit 0
|
|
23
23
|
|
|
24
24
|
BACKUP_FILE="$CWD/.memory/backup.json"
|
|
25
25
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
: << 'CMDBLOCK'
|
|
2
|
+
@echo off
|
|
3
|
+
setlocal enabledelayedexpansion
|
|
4
|
+
set "SCRIPT_DIR=%~dp0"
|
|
5
|
+
set "HOOK_NAME=%~1"
|
|
6
|
+
shift
|
|
7
|
+
REM Try standard Git for Windows locations, then PATH
|
|
8
|
+
set "BASH_EXE="
|
|
9
|
+
if exist "C:\Program Files\Git\bin\bash.exe" set "BASH_EXE=C:\Program Files\Git\bin\bash.exe"
|
|
10
|
+
if not defined BASH_EXE if exist "C:\Program Files (x86)\Git\bin\bash.exe" set "BASH_EXE=C:\Program Files (x86)\Git\bin\bash.exe"
|
|
11
|
+
if not defined BASH_EXE (
|
|
12
|
+
where bash >nul 2>&1 && set "BASH_EXE=bash"
|
|
13
|
+
)
|
|
14
|
+
if defined BASH_EXE (
|
|
15
|
+
"%BASH_EXE%" "%SCRIPT_DIR%%HOOK_NAME%" %* & exit /b !errorlevel!
|
|
16
|
+
)
|
|
17
|
+
echo Warning: bash not found, DevFlow hooks require bash >&2
|
|
18
|
+
exit /b 0
|
|
19
|
+
CMDBLOCK
|
|
20
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
21
|
+
HOOK_NAME="$1"
|
|
22
|
+
shift
|
|
23
|
+
exec bash "$SCRIPT_DIR/${HOOK_NAME}" "$@"
|